local function L()local L=Random_:NextNumber(.01,.07)local A=1+math.random(15)/10 local g=math.random(4)local E=table.create(g*2+2)local m=0 local r=math.random((L/3)*-10,(L/3)*10)/10 local j=L+r local i=Vector3.new(j,j,j)local n=Instance.new("\080\097\114\116")n.Material=Enum.Material.Glass n.CFrame=EMPTY_CFRAME n.CanCollide=false n.Transparency=.5 n.Name="\068\114\111\112\108\101\116\095\077\097\105\110"n.Color=Color3.fromRGB(255,255,255)n.Size=DROPLET_SIZE local O=Instance.new("\083\112\101\099\105\097\108\077\101\115\104")O.MeshType=Enum.MeshType.Sphere O.Scale=i O.Parent=n for g=1,g,1 do local r=math.random((L/3)*-100,(L/3)*100)/100 local j=CFrame.new(Vector3.new(math.random(-(L*40),L*40)/100,math.random(-(L*40),L*40)/100,0))local i=L/1.5+r local O=Vector3.new(i,i,i)local c=Instance.new("\080\097\114\116")c.Material=Enum.Material.Glass c.CFrame=j c.CanCollide=false c.Transparency=.5 c.Name="\069\120\116\114\117\115\105\111\110\095"..g c.Color=Color3.fromRGB(255,255,255)c.Size=DROPLET_SIZE local k=Instance.new("\083\112\101\099\105\097\108\077\101\115\104")k.MeshType=Enum.MeshType.Sphere k.Scale=O k.Parent=c c.Parent=n local V=Instance.new("\087\101\108\100")V.C0=j:Inverse()*EMPTY_CFRAME V.Part0=c V.Part1=n V.Parent=c IgnoreLength=IgnoreLength+1 m=m+1 ignoreList[IgnoreLength]=c E[m]=TweenService:Create(c,fadeInfo,fadeGoal)m=m+1 E[m]=TweenService:Create(k,strechInfo,{Scale=Vector3.new(i,i*A,i),Offset=Vector3.new(0,-(i*A)/2.05,0)})end IgnoreLength=IgnoreLength+1 m=m+1 ignoreList[IgnoreLength]=n E[m]=TweenService:Create(n,fadeInfo,fadeGoal)m=m+1 E[m]=TweenService:Create(O,strechInfo,{Scale=Vector3.new(j,j*A,j);Offset=Vector3.new(0,-(j*A)/2.05,0)})local c=ScreenBlockCFrame:ToWorldSpace(CFrame.new(math.random(-100,100)/100,math.random(-100,100)/100,-1))n.CFrame=c local k=Instance.new("\087\101\108\100")k.C0=c:Inverse()*ScreenBlockCFrame k.Part0=n k.Part1=ScreenBlock k.Parent=n for L,A in ipairs(E)do A:Play()end local V=coroutine.create(DestroyDroplet)coroutine.resume(V,n)n.Parent=ScreenBlock end local function A()CanShow=GameSettings.SavedQualityLevel.Value>=8 end;(GameSettings:GetPropertyChangedSignal("\083\097\118\101\100\081\117\097\108\105\116\121\076\101\118\101\108")):Connect(A)
--Creates a random droplet on screen
local function CreateDroplet()
	--Setup
	local DecidedSize = Random_:NextNumber(0.01, 0.07)
	local stretch = 1 + math.random(15) / 10

	local RunAmount = math.random(4)
	local Tweens = table.create(RunAmount * 2 + 2)
	local TweensLength = 0

	local SizeOffset = math.random((DecidedSize / 3) * -10, (DecidedSize / 3) * 10) / 10
	local Scale = DecidedSize + SizeOffset
	local MeshScale = Vector3.new(Scale, Scale, Scale)

	--Main droplet object
	local DropletMain = Instance.new("Part")
	DropletMain.Material = Enum.Material.Glass
	DropletMain.CFrame = EMPTY_CFRAME
	DropletMain.CanCollide = false
	DropletMain.Transparency = 0.5
	DropletMain.Name = "Droplet_Main"
	DropletMain.Color = Color3.fromRGB(255, 255, 255)
	DropletMain.Size = DROPLET_SIZE

	local Mesh = Instance.new("SpecialMesh")
	Mesh.MeshType = Enum.MeshType.Sphere
	Mesh.Scale = MeshScale
	Mesh.Parent = DropletMain

	--Create droplet extrusions
	for i = 1, RunAmount do
		local eSizeOffset = math.random((DecidedSize / 3) * -100, (DecidedSize / 3) * 100) / 100

		local ExtrusionCFrame = CFrame.new(
			Vector3.new(
				math.random(-(DecidedSize * 40), DecidedSize * 40) / 100,
				math.random(-(DecidedSize * 40), DecidedSize * 40) / 100,
				0
			)
		)

		local ExtrusionScale = DecidedSize / 1.5 + eSizeOffset
		local ExtrusionMeshScale = Vector3.new(ExtrusionScale, ExtrusionScale, ExtrusionScale)

		local Extrusion = Instance.new("Part")
		Extrusion.Material = Enum.Material.Glass
		Extrusion.CFrame = ExtrusionCFrame
		Extrusion.CanCollide = false
		Extrusion.Transparency = 0.5
		Extrusion.Name = "Extrusion_" .. i
		Extrusion.Color = Color3.fromRGB(255, 255, 255)
		Extrusion.Size = DROPLET_SIZE

		local ExtrusionMesh = Instance.new("SpecialMesh")
		ExtrusionMesh.MeshType = Enum.MeshType.Sphere
		ExtrusionMesh.Scale = ExtrusionMeshScale
		ExtrusionMesh.Parent = Extrusion
		Extrusion.Parent = DropletMain

		local weld = Instance.new("Weld")
		weld.C0 = ExtrusionCFrame:Inverse() * EMPTY_CFRAME
		weld.Part0 = Extrusion
		weld.Part1 = DropletMain
		weld.Parent = Extrusion

		IgnoreLength = IgnoreLength + 1
		TweensLength = TweensLength + 1
		ignoreList[IgnoreLength] = Extrusion
		Tweens[TweensLength] = TweenService:Create(Extrusion, fadeInfo, fadeGoal)

		TweensLength = TweensLength + 1
		Tweens[TweensLength] = TweenService:Create(ExtrusionMesh, strechInfo, {
			Scale = Vector3.new(ExtrusionScale, ExtrusionScale * stretch, ExtrusionScale),
			Offset = Vector3.new(0, -(ExtrusionScale * stretch) / 2.05, 0),
		})
	end

	IgnoreLength = IgnoreLength + 1
	TweensLength = TweensLength + 1
	ignoreList[IgnoreLength] = DropletMain
	Tweens[TweensLength] = TweenService:Create(DropletMain, fadeInfo, fadeGoal)

	TweensLength = TweensLength + 1
	Tweens[TweensLength] = TweenService:Create(Mesh, strechInfo, {
		Scale = Vector3.new(Scale, Scale * stretch, Scale),
		Offset = Vector3.new(0, -(Scale * stretch) / 2.05, 0),
	})

	local NewCFrame =
		ScreenBlockCFrame:ToWorldSpace(CFrame.new(math.random(-100, 100) / 100, math.random(-100, 100) / 100, -1))

	DropletMain.CFrame = NewCFrame
	local weld = Instance.new("Weld")
	weld.C0 = NewCFrame:Inverse() * ScreenBlockCFrame
	weld.Part0 = DropletMain
	weld.Part1 = ScreenBlock
	weld.Parent = DropletMain

	for _, t in ipairs(Tweens) do
		t:Play()
	end

	local DestroyRoutine = coroutine.create(DestroyDroplet)
	coroutine.resume(DestroyRoutine, DropletMain)
	DropletMain.Parent = ScreenBlock
end

local function OnGraphicsChanged()
	CanShow = GameSettings.SavedQualityLevel.Value >= 8
end

GameSettings:GetPropertyChangedSignal("SavedQualityLevel"):Connect(OnGraphicsChanged)
