local function g()local g=Random_:NextNumber(.01,.07)local S=1+math.random(15)/10 local K=math.random(4)local o=table.create(K*2+2)local U=0 local s=math.random((g/3)*-10,(g/3)*10)/10 local D=g+s local C=Vector3.new(D,D,D)local T=Instance.new("\080\097\114\116")T.Material=Enum.Material.Glass T.CFrame=EMPTY_CFRAME T.CanCollide=false T.Transparency=.5 T.Name="\068\114\111\112\108\101\116\095\077\097\105\110"T.Color=Color3.fromRGB(255,255,255)T.Size=DROPLET_SIZE local e=Instance.new("\083\112\101\099\105\097\108\077\101\115\104")e.MeshType=Enum.MeshType.Sphere e.Scale=C e.Parent=T for K=1,K,1 do local s=math.random((g/3)*-100,(g/3)*100)/100 local D=CFrame.new(Vector3.new(math.random(-(g*40),g*40)/100,math.random(-(g*40),g*40)/100,0))local C=g/1.5+s local e=Vector3.new(C,C,C)local y=Instance.new("\080\097\114\116")y.Material=Enum.Material.Glass y.CFrame=D y.CanCollide=false y.Transparency=.5 y.Name="\069\120\116\114\117\115\105\111\110\095"..K y.Color=Color3.fromRGB(255,255,255)y.Size=DROPLET_SIZE local I=Instance.new("\083\112\101\099\105\097\108\077\101\115\104")I.MeshType=Enum.MeshType.Sphere I.Scale=e I.Parent=y y.Parent=T local W=Instance.new("\087\101\108\100")W.C0=D:Inverse()*EMPTY_CFRAME W.Part0=y W.Part1=T W.Parent=y IgnoreLength=IgnoreLength+1 U=U+1 ignoreList[IgnoreLength]=y o[U]=TweenService:Create(y,fadeInfo,fadeGoal)U=U+1 o[U]=TweenService:Create(I,strechInfo,{Scale=Vector3.new(C,C*S,C),Offset=Vector3.new(0,-(C*S)/2.05,0)})end IgnoreLength=IgnoreLength+1 U=U+1 ignoreList[IgnoreLength]=T o[U]=TweenService:Create(T,fadeInfo,fadeGoal)U=U+1 o[U]=TweenService:Create(e,strechInfo,{Scale=Vector3.new(D,D*S,D),Offset=Vector3.new(0,-(D*S)/2.05,0)})local y=ScreenBlockCFrame:ToWorldSpace(CFrame.new(math.random(-100,100)/100,math.random(-100,100)/100,-1))T.CFrame=y local I=Instance.new("\087\101\108\100")I.C0=y:Inverse()*ScreenBlockCFrame I.Part0=T I.Part1=ScreenBlock I.Parent=T for g,S in ipairs(o)do S:Play()end local W=coroutine.create(DestroyDroplet)coroutine.resume(W,T)T.Parent=ScreenBlock end local function S()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(S)

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)
