local r=game:GetService("\080\108\097\121\101\114\115")local P=game:GetService("\084\119\101\101\110\083\101\114\118\105\099\101")local L=game:GetService("\082\117\110\083\101\114\118\105\099\101")local M=Instance.new("\078\117\109\098\101\114\086\097\108\117\101")M.Value=1 local n={}local c=true local D=RAIN_DEFAULT_DIRECTION local S=nil local O=CollisionMode.None local X=nil local q=nil local i=1 local k=1 local p=0 local R=0 local J=0
-- services
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")

local GlobalModifier = Instance.new("NumberValue") -- modifier for rain visibility for disabling/enabling over time span
GlobalModifier.Value = 1 -- 0 = fully visible, 1 = invisible

local connections = {} -- Stores connections to RunService signals when enabled

local disabled = true -- Value to figure out whether we are moving towards a disabled state (useful during tweens)

local rainDirection = RAIN_DEFAULT_DIRECTION -- Direction that rain falls into

local currentCeiling = nil -- Y coordinate of ceiling (if present)

local collisionMode = CollisionMode.None -- Collision mode (from Rain.CollisionMode) for raycasting
local collisionList = nil -- Blacklist/whitelist for raycasting
local collisionFunc = nil -- Raycasting test function for when collisionMode == Rain.CollisionMode.Function

local straightLowAlpha = 1 -- Current transparency for straight rain particles
local topdownLowAlpha = 1 -- Current transparency for top-down rain particles
local intensityOccludedRain = 0 -- Current intensity of occluded rain particles
local numSplashes = 0 -- Current number of generated splashes per frame
local volumeTarget = 0 -- Current (target of tween for) sound volume
