local Lighting = game:GetService("Lighting")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera
local SKY_ID = "rbxassetid://93362504723753"
local RAIN_SOUND_ID = "rbxassetid://9064263922"
local GLOBAL_VOL = 0.1
local function purgeEnvironment()
for _, obj in pairs(Lighting:GetChildren()) do
if obj:IsA("Sky") or obj:IsA("Atmosphere") or obj:IsA("Clouds") or obj:IsA("Skybox") then
obj:Destroy()
end
end
Lighting.Brightness = 0.2
Lighting.OutdoorAmbient = Color3.fromRGB(50, 50, 60)
Lighting.ClockTime = 18
end
purgeEnvironment()
local function applyRainSky()
local sky = Instance.new("Sky")
sky.Name = "VisualRainSky_Fixed"
sky.SkyboxBk = SKY_ID
sky.SkyboxDn = SKY_ID
sky.SkyboxFt = SKY_ID
sky.SkyboxLf = SKY_ID
sky.SkyboxRt = SKY_ID
sky.SkyboxUp = SKY_ID
sky.SunTextureId = ""
sky.MoonTextureId = ""
sky.Parent = Lighting
end
applyRainSky()
local rainSound = Instance.new("Sound", camera)
rainSound.Name = "PROTECTED_RAIN_SOUND"
rainSound.SoundId = RAIN_SOUND_ID
rainSound.Volume = 0.5
rainSound.Looped = true
rainSound:Play()
local function mix()
for _, s in pairs(game:GetDescendants()) do
if s:IsA("Sound") and s ~= rainSound then
s.Volume = GLOBAL_VOL
end
end
end
game.DescendantAdded:Connect(function(d)
if d:IsA("Sound") and d ~= rainSound then
d.Volume = GLOBAL_VOL
end
end)
mix()
local folder = Instance.new("Folder", camera)
local function spawnDrop()
local char = player.Character
if not char or not char:FindFirstChild("HumanoidRootPart") then return end
local drop = Instance.new("Part")
drop.Size = Vector3.new(0.06, 7, 0.06)
drop.Color = Color3.fromRGB(180, 180, 200)
drop.Transparency = 0.7
drop.Material = Enum.Material.Neon
drop.CanCollide, drop.CanQuery, drop.CastShadow = false, false, false
drop.CFrame = CFrame.new(char.HumanoidRootPart.Position + Vector3.new(math.random(-80, 80), 60, math.random(-80, 80)))
drop.AssemblyLinearVelocity = Vector3.new(0, -140, 0)
drop.Parent = folder
task.delay(1.1, function() drop:Destroy() end)
end
RunService.RenderStepped:Connect(function()
for i = 1, 8 do spawnDrop() end
end)
print("Rain Loaded")