Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local module = {}
- local Players = game:GetService("Players")
- local TweenService = game:GetService("TweenService")
- local RunService = game:GetService("RunService")
- local SoundService = game:GetService("SoundService")
- local UserInputService = game:GetService("UserInputService")
- local Debris = game:GetService("Debris")
- local Lighting = game:GetService("Lighting")
- local ReplicatedStorage = game:GetService("ReplicatedStorage")
- local player = Players.LocalPlayer
- local playerGui = player:WaitForChild("PlayerGui")
- local mouse = player:GetMouse()
- local screenGui = Instance.new("ScreenGui")
- screenGui.Name = "WelcomeGui"
- screenGui.ResetOnSpawn = false
- screenGui.IgnoreGuiInset = true
- screenGui.DisplayOrder = 999999
- screenGui.Parent = playerGui
- local backgroundFrame = Instance.new("Frame")
- backgroundFrame.Size = UDim2.new(1, 0, 1, 0)
- backgroundFrame.Position = UDim2.new(0, 0, 0, 0)
- backgroundFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 15)
- backgroundFrame.BorderSizePixel = 0
- backgroundFrame.Parent = screenGui
- local backgroundGradient = Instance.new("UIGradient")
- backgroundGradient.Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, Color3.fromRGB(8, 8, 12)),
- ColorSequenceKeypoint.new(0.3, Color3.fromRGB(15, 15, 20)),
- ColorSequenceKeypoint.new(0.7, Color3.fromRGB(20, 20, 25)),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(5, 5, 8))
- }
- backgroundGradient.Rotation = 45
- backgroundGradient.Parent = backgroundFrame
- local particleSystemContainer = Instance.new("Frame")
- particleSystemContainer.Size = UDim2.new(1, 0, 1, 0)
- particleSystemContainer.BackgroundTransparency = 1
- particleSystemContainer.Parent = backgroundFrame
- local noiseParticles = {}
- local particleSystem = {}
- for i = 1, 150 do
- local particle = Instance.new("Frame")
- particle.Size = UDim2.new(0, math.random(1, 4), 0, math.random(1, 4))
- particle.Position = UDim2.new(math.random(), 0, math.random(), 0)
- particle.BackgroundColor3 = Color3.fromHSV(
- math.random(200, 260) / 360,
- math.random(30, 80) / 100,
- math.random(60, 100) / 100
- )
- particle.BorderSizePixel = 0
- particle.BackgroundTransparency = math.random(40, 85) / 100
- particle.Parent = particleSystemContainer
- local corner = Instance.new("UICorner")
- corner.CornerRadius = UDim.new(1, 0)
- corner.Parent = particle
- table.insert(noiseParticles, {
- element = particle,
- velocity = {
- x = (math.random() - 0.5) * 0.002,
- y = (math.random() - 0.5) * 0.001
- },
- originalTransparency = particle.BackgroundTransparency
- })
- end
- local function updateParticleSystem()
- for _, particle in ipairs(noiseParticles) do
- local currentPos = particle.element.Position
- local newX = currentPos.X.Scale + particle.velocity.x
- local newY = currentPos.Y.Scale + particle.velocity.y
- if newX > 1.1 or newX < -0.1 then
- particle.velocity.x = -particle.velocity.x
- end
- if newY > 1.1 or newY < -0.1 then
- particle.velocity.y = -particle.velocity.y
- end
- particle.element.Position = UDim2.new(
- math.clamp(newX, -0.1, 1.1),
- 0,
- math.clamp(newY, -0.1, 1.1),
- 0
- )
- local time = tick()
- particle.element.BackgroundTransparency = particle.originalTransparency +
- math.sin(time * 2 + particle.element.Position.X.Scale * 10) * 0.15
- end
- end
- local particleConnection = RunService.Heartbeat:Connect(updateParticleSystem)
- local dynamicLightEffect = Instance.new("Frame")
- dynamicLightEffect.Size = UDim2.new(2, 0, 2, 0)
- dynamicLightEffect.Position = UDim2.new(-0.5, 0, -0.5, 0)
- dynamicLightEffect.BackgroundTransparency = 0.8
- dynamicLightEffect.BorderSizePixel = 0
- dynamicLightEffect.Parent = backgroundFrame
- local lightGradient = Instance.new("UIGradient")
- lightGradient.Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 50, 200)),
- ColorSequenceKeypoint.new(0.5, Color3.fromRGB(50, 100, 255)),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(200, 50, 150))
- }
- lightGradient.Transparency = NumberSequence.new{
- NumberSequenceKeypoint.new(0, 1),
- NumberSequenceKeypoint.new(0.3, 0.9),
- NumberSequenceKeypoint.new(0.7, 0.9),
- NumberSequenceKeypoint.new(1, 1)
- }
- lightGradient.Parent = dynamicLightEffect
- local lightRotationTween = TweenService:Create(
- lightGradient,
- TweenInfo.new(8, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut, -1),
- {Rotation = 360}
- )
- lightRotationTween:Play()
- local rotatingText = Instance.new("TextLabel")
- rotatingText.Size = UDim2.new(0, 300, 0, 80)
- rotatingText.Position = UDim2.new(0.5, -150, 0.25, 0)
- rotatingText.BackgroundTransparency = 1
- rotatingText.Text = "WELCOME!"
- rotatingText.TextColor3 = Color3.fromRGB(255, 255, 255)
- rotatingText.TextScaled = true
- rotatingText.Font = Enum.Font.GothamBold
- rotatingText.TextStrokeTransparency = 0.5
- rotatingText.TextStrokeColor3 = Color3.fromRGB(100, 150, 255)
- rotatingText.TextTransparency = 1
- rotatingText.Parent = backgroundFrame
- local textGlow = Instance.new("UIStroke")
- textGlow.Color = Color3.fromRGB(150, 200, 255)
- textGlow.Thickness = 3
- textGlow.Transparency = 0.3
- textGlow.Parent = rotatingText
- local glowAnimation = TweenService:Create(
- textGlow,
- TweenInfo.new(1.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true),
- {Transparency = 0.7, Thickness = 6}
- )
- glowAnimation:Play()
- local titleContainer = Instance.new("Frame")
- titleContainer.Size = UDim2.new(0, 600, 0, 100)
- titleContainer.Position = UDim2.new(0.5, -300, 0.5, -50)
- titleContainer.BackgroundTransparency = 1
- titleContainer.Parent = backgroundFrame
- local titleWords = {"SLAP", "BATTLES", "BUT", "VERY", "BAD", "REWORK"}
- local titleLabels = {}
- for i, word in ipairs(titleWords) do
- local wordContainer = Instance.new("Frame")
- wordContainer.Size = UDim2.new(0, 95, 0, 100)
- wordContainer.Position = UDim2.new(0, (i-1) * 100, 0, 0)
- wordContainer.BackgroundTransparency = 1
- wordContainer.Parent = titleContainer
- local wordLabel = Instance.new("TextLabel")
- wordLabel.Size = UDim2.new(1, 0, 1, 0)
- wordLabel.Position = UDim2.new(0, 0, 0, 0)
- wordLabel.BackgroundTransparency = 1
- wordLabel.Text = word
- wordLabel.TextColor3 = Color3.fromRGB(255, 120, 120)
- wordLabel.TextScaled = true
- wordLabel.Font = Enum.Font.GothamBold
- wordLabel.TextTransparency = 1
- wordLabel.Parent = wordContainer
- local wordStroke = Instance.new("UIStroke")
- wordStroke.Color = Color3.fromRGB(255, 50, 50)
- wordStroke.Thickness = 2
- wordStroke.Transparency = 1
- wordStroke.Parent = wordLabel
- table.insert(titleLabels, {label = wordLabel, stroke = wordStroke, container = wordContainer})
- end
- local playButton = Instance.new("TextButton")
- playButton.Size = UDim2.new(0, 250, 0, 80)
- playButton.Position = UDim2.new(0.5, -125, 0.75, 0)
- playButton.BackgroundColor3 = Color3.fromRGB(0, 180, 0)
- playButton.Text = "PLAY"
- playButton.TextColor3 = Color3.fromRGB(255, 255, 255)
- playButton.TextScaled = true
- playButton.Font = Enum.Font.GothamBold
- playButton.BorderSizePixel = 0
- playButton.Visible = false
- playButton.Parent = backgroundFrame
- local buttonGradient = Instance.new("UIGradient")
- buttonGradient.Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 200, 0)),
- ColorSequenceKeypoint.new(0.5, Color3.fromRGB(50, 255, 50)),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 180, 0))
- }
- buttonGradient.Rotation = 45
- buttonGradient.Parent = playButton
- local buttonCorner = Instance.new("UICorner")
- buttonCorner.CornerRadius = UDim.new(0, 15)
- buttonCorner.Parent = playButton
- local buttonStroke = Instance.new("UIStroke")
- buttonStroke.Color = Color3.fromRGB(255, 255, 255)
- buttonStroke.Thickness = 2
- buttonStroke.Transparency = 0.5
- buttonStroke.Parent = playButton
- local whiteScreen = Instance.new("Frame")
- whiteScreen.Size = UDim2.new(1, 0, 1, 0)
- whiteScreen.Position = UDim2.new(0, 0, 0, 0)
- whiteScreen.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- whiteScreen.BorderSizePixel = 0
- whiteScreen.Visible = false
- whiteScreen.Parent = screenGui
- local soundEffects = {
- theme = Instance.new("Sound"),
- spinning = Instance.new("Sound"),
- word = Instance.new("Sound"),
- shatter = Instance.new("Sound"),
- broke = Instance.new("Sound"),
- ambient = Instance.new("Sound")
- }
- soundEffects.theme.SoundId = "rbxassetid://118119627057792"
- soundEffects.theme.Volume = 0.5
- soundEffects.theme.Looped = true
- soundEffects.theme.Parent = screenGui
- soundEffects.spinning.SoundId = "rbxassetid://131961136"
- soundEffects.spinning.Volume = 0.4
- soundEffects.spinning.Parent = screenGui
- soundEffects.word.SoundId = "rbxassetid://132359585205773"
- soundEffects.word.Volume = 4
- soundEffects.word.Parent = screenGui
- soundEffects.shatter.SoundId = "rbxassetid://9103909576"
- soundEffects.shatter.Volume = 0.6
- soundEffects.shatter.Parent = screenGui
- soundEffects.broke.SoundId = "rbxassetid://9127760446"
- soundEffects.broke.Volume = 0.7
- soundEffects.broke.Parent = screenGui
- soundEffects.ambient.SoundId = "rbxassetid://172313730"
- soundEffects.ambient.Volume = 0.3
- soundEffects.ambient.Looped = true
- soundEffects.ambient.Parent = screenGui
- local isMuted = false
- local muteButton = Instance.new("TextButton")
- muteButton.Size = UDim2.new(0, 85, 0, 85)
- muteButton.Position = UDim2.new(0, 30, 0, 120)
- muteButton.BackgroundColor3 = Color3.fromRGB(12, 12, 18)
- muteButton.Text = ""
- muteButton.TextColor3 = Color3.fromRGB(255, 255, 255)
- muteButton.TextScaled = true
- muteButton.Font = Enum.Font.GothamBold
- muteButton.BorderSizePixel = 0
- muteButton.Parent = screenGui
- local muteCorner = Instance.new("UICorner")
- muteCorner.CornerRadius = UDim.new(0, 25)
- muteCorner.Parent = muteButton
- local muteGradient = Instance.new("UIGradient")
- muteGradient.Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, Color3.fromRGB(35, 35, 55)),
- ColorSequenceKeypoint.new(0.3, Color3.fromRGB(20, 20, 35)),
- ColorSequenceKeypoint.new(0.7, Color3.fromRGB(45, 45, 70)),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(12, 12, 18))
- }
- muteGradient.Rotation = 135
- muteGradient.Parent = muteButton
- local muteStroke = Instance.new("UIStroke")
- muteStroke.Color = Color3.fromRGB(100, 150, 255)
- muteStroke.Thickness = 4
- muteStroke.Transparency = 0.2
- muteStroke.Parent = muteButton
- local muteStrokeGradient = Instance.new("UIGradient")
- muteStrokeGradient.Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, Color3.fromRGB(120, 180, 255)),
- ColorSequenceKeypoint.new(0.5, Color3.fromRGB(80, 120, 255)),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(60, 100, 220))
- }
- muteStrokeGradient.Rotation = 45
- muteStrokeGradient.Parent = muteStroke
- local muteShadow = Instance.new("Frame")
- muteShadow.Size = UDim2.new(1, 12, 1, 12)
- muteShadow.Position = UDim2.new(0, -6, 0, -6)
- muteShadow.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
- muteShadow.BackgroundTransparency = 0.6
- muteShadow.BorderSizePixel = 0
- muteShadow.ZIndex = muteButton.ZIndex - 1
- muteShadow.Parent = muteButton
- local muteShadowCorner = Instance.new("UICorner")
- muteShadowCorner.CornerRadius = UDim.new(0, 31)
- muteShadowCorner.Parent = muteShadow
- local muteShadowGradient = Instance.new("UIGradient")
- muteShadowGradient.Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 0, 0)),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(5, 5, 15))
- }
- muteShadowGradient.Rotation = 45
- muteShadowGradient.Parent = muteShadow
- local muteGlow = Instance.new("Frame")
- muteGlow.Size = UDim2.new(1, 24, 1, 24)
- muteGlow.Position = UDim2.new(0, -12, 0, -12)
- muteGlow.BackgroundColor3 = Color3.fromRGB(100, 150, 255)
- muteGlow.BackgroundTransparency = 0.8
- muteGlow.BorderSizePixel = 0
- muteGlow.ZIndex = muteButton.ZIndex - 2
- muteGlow.Parent = muteButton
- local muteGlowCorner = Instance.new("UICorner")
- muteGlowCorner.CornerRadius = UDim.new(0, 37)
- muteGlowCorner.Parent = muteGlow
- local muteGlowGradient = Instance.new("UIGradient")
- muteGlowGradient.Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, Color3.fromRGB(150, 200, 255)),
- ColorSequenceKeypoint.new(0.5, Color3.fromRGB(100, 150, 255)),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(60, 100, 220))
- }
- muteGlowGradient.Rotation = 90
- muteGlowGradient.Parent = muteGlow
- local muteIcon = Instance.new("ImageLabel")
- muteIcon.Size = UDim2.new(0, 45, 0, 45)
- muteIcon.Position = UDim2.new(0.5, -22.5, 0.5, -22.5)
- muteIcon.BackgroundTransparency = 1
- muteIcon.Image = "rbxasset://textures/ui/Controls/DesktopEmotes/unmute.png"
- muteIcon.ImageColor3 = Color3.fromRGB(255, 255, 255)
- muteIcon.Parent = muteButton
- spawn(function()
- while muteButton.Parent do
- local glowPulse = TweenService:Create(
- muteGlow,
- TweenInfo.new(2.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true),
- {BackgroundTransparency = 0.9}
- )
- glowPulse:Play()
- local strokePulse = TweenService:Create(
- muteStroke,
- TweenInfo.new(3, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true),
- {Transparency = 0.05}
- )
- strokePulse:Play()
- wait(2.5)
- end
- end)
- muteButton.MouseButton1Click:Connect(function()
- isMuted = not isMuted
- local clickEffect = TweenService:Create(
- muteButton,
- TweenInfo.new(0.08, Enum.EasingStyle.Back, Enum.EasingDirection.InOut),
- {Size = UDim2.new(0, 78, 0, 78)}
- )
- clickEffect:Play()
- clickEffect.Completed:Connect(function()
- local clickBack = TweenService:Create(
- muteButton,
- TweenInfo.new(0.18, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
- {Size = UDim2.new(0, 85, 0, 85)}
- )
- clickBack:Play()
- end)
- local iconScale = TweenService:Create(
- muteIcon,
- TweenInfo.new(0.15, Enum.EasingStyle.Back),
- {Size = UDim2.new(0, 38, 0, 38)}
- )
- iconScale:Play()
- iconScale.Completed:Connect(function()
- local iconScaleBack = TweenService:Create(
- muteIcon,
- TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
- {Size = UDim2.new(0, 45, 0, 45)}
- )
- iconScaleBack:Play()
- end)
- if isMuted then
- muteIcon.Image = "rbxasset://textures/ui/Controls/DesktopEmotes/mute.png"
- local mutedGradient = TweenService:Create(
- muteGradient,
- TweenInfo.new(0.4, Enum.EasingStyle.Quad),
- {Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, Color3.fromRGB(55, 20, 20)),
- ColorSequenceKeypoint.new(0.3, Color3.fromRGB(35, 12, 12)),
- ColorSequenceKeypoint.new(0.7, Color3.fromRGB(70, 25, 25)),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(18, 8, 8))
- }}
- )
- mutedGradient:Play()
- local mutedStrokeGradient = TweenService:Create(
- muteStrokeGradient,
- TweenInfo.new(0.4, Enum.EasingStyle.Quad),
- {Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 120, 120)),
- ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 80, 80)),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(220, 60, 60))
- }}
- )
- mutedStrokeGradient:Play()
- local mutedGlowGradient = TweenService:Create(
- muteGlowGradient,
- TweenInfo.new(0.4, Enum.EasingStyle.Quad),
- {Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 150, 150)),
- ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 100, 100)),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(220, 60, 60))
- }}
- )
- mutedGlowGradient:Play()
- local iconColor = TweenService:Create(
- muteIcon,
- TweenInfo.new(0.3, Enum.EasingStyle.Quad),
- {ImageColor3 = Color3.fromRGB(255, 180, 180)}
- )
- iconColor:Play()
- soundEffects.theme.Volume = 0
- soundEffects.spinning.Volume = 0
- soundEffects.word.Volume = 0
- soundEffects.shatter.Volume = 0
- soundEffects.broke.Volume = 0
- else
- muteIcon.Image = "rbxasset://textures/ui/Controls/DesktopEmotes/unmute.png"
- local unmutedGradient = TweenService:Create(
- muteGradient,
- TweenInfo.new(0.4, Enum.EasingStyle.Quad),
- {Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, Color3.fromRGB(35, 35, 55)),
- ColorSequenceKeypoint.new(0.3, Color3.fromRGB(20, 20, 35)),
- ColorSequenceKeypoint.new(0.7, Color3.fromRGB(45, 45, 70)),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(12, 12, 18))
- }}
- )
- unmutedGradient:Play()
- local unmutedStrokeGradient = TweenService:Create(
- muteStrokeGradient,
- TweenInfo.new(0.4, Enum.EasingStyle.Quad),
- {Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, Color3.fromRGB(120, 180, 255)),
- ColorSequenceKeypoint.new(0.5, Color3.fromRGB(80, 120, 255)),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(60, 100, 220))
- }}
- )
- unmutedStrokeGradient:Play()
- local unmutedGlowGradient = TweenService:Create(
- muteGlowGradient,
- TweenInfo.new(0.4, Enum.EasingStyle.Quad),
- {Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, Color3.fromRGB(150, 200, 255)),
- ColorSequenceKeypoint.new(0.5, Color3.fromRGB(100, 150, 255)),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(60, 100, 220))
- }}
- )
- unmutedGlowGradient:Play()
- local iconColor = TweenService:Create(
- muteIcon,
- TweenInfo.new(0.3, Enum.EasingStyle.Quad),
- {ImageColor3 = Color3.fromRGB(255, 255, 255)}
- )
- iconColor:Play()
- soundEffects.theme.Volume = 0.5
- soundEffects.spinning.Volume = 0.4
- soundEffects.word.Volume = 4
- soundEffects.shatter.Volume = 0.6
- soundEffects.broke.Volume = 0.7
- end
- end)
- muteButton.MouseEnter:Connect(function()
- local hoverTween = TweenService:Create(
- muteButton,
- TweenInfo.new(0.25, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
- {Size = UDim2.new(0, 95, 0, 95)}
- )
- hoverTween:Play()
- local hoverStroke = TweenService:Create(
- muteStroke,
- TweenInfo.new(0.25, Enum.EasingStyle.Quad),
- {Thickness = 6, Transparency = 0.05}
- )
- hoverStroke:Play()
- local hoverGlow = TweenService:Create(
- muteGlow,
- TweenInfo.new(0.25, Enum.EasingStyle.Quad),
- {BackgroundTransparency = 0.65, Size = UDim2.new(1, 35, 1, 35), Position = UDim2.new(0, -17.5, 0, -17.5)}
- )
- hoverGlow:Play()
- local hoverIcon = TweenService:Create(
- muteIcon,
- TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
- {Size = UDim2.new(0, 52, 0, 52), Position = UDim2.new(0.5, -26, 0.5, -26)}
- )
- hoverIcon:Play()
- local hoverShadow = TweenService:Create(
- muteShadow,
- TweenInfo.new(0.25, Enum.EasingStyle.Quad),
- {BackgroundTransparency = 0.4, Size = UDim2.new(1, 18, 1, 18), Position = UDim2.new(0, -9, 0, -9)}
- )
- hoverShadow:Play()
- end)
- muteButton.MouseLeave:Connect(function()
- local leaveTween = TweenService:Create(
- muteButton,
- TweenInfo.new(0.25, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
- {Size = UDim2.new(0, 85, 0, 85)}
- )
- leaveTween:Play()
- local leaveStroke = TweenService:Create(
- muteStroke,
- TweenInfo.new(0.25, Enum.EasingStyle.Quad),
- {Thickness = 4, Transparency = 0.2}
- )
- leaveStroke:Play()
- local leaveGlow = TweenService:Create(
- muteGlow,
- TweenInfo.new(0.25, Enum.EasingStyle.Quad),
- {BackgroundTransparency = 0.8, Size = UDim2.new(1, 24, 1, 24), Position = UDim2.new(0, -12, 0, -12)}
- )
- leaveGlow:Play()
- local leaveIcon = TweenService:Create(
- muteIcon,
- TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
- {Size = UDim2.new(0, 45, 0, 45), Position = UDim2.new(0.5, -22.5, 0.5, -22.5)}
- )
- leaveIcon:Play()
- local leaveShadow = TweenService:Create(
- muteShadow,
- TweenInfo.new(0.25, Enum.EasingStyle.Quad),
- {BackgroundTransparency = 0.6, Size = UDim2.new(1, 12, 1, 12), Position = UDim2.new(0, -6, 0, -6)}
- )
- leaveShadow:Play()
- end)
- local rotationSpeed = 0
- local targetRotation = 0
- local isAnimating = true
- local spinCount = 0
- soundEffects.theme:Play()
- soundEffects.ambient:Play()
- local rotationConnection = RunService.Heartbeat:Connect(function()
- if isAnimating then
- rotationSpeed = rotationSpeed + 0.25
- rotatingText.Rotation = rotatingText.Rotation + rotationSpeed
- local time = tick()
- rotatingText.TextColor3 = Color3.fromHSV(
- (math.sin(time * 2) + 1) / 2 * 0.2 + 0.7,
- 0.3,
- 1
- )
- end
- end)
- local function playSpinningSound()
- if soundEffects.spinning then
- soundEffects.spinning:Play()
- spinCount = spinCount + 1
- if spinCount < 3 then
- spawn(function()
- wait(soundEffects.spinning.TimeLength or 1)
- if spinCount < 3 then
- playSpinningSound()
- end
- end)
- end
- end
- end
- local function createDynamicParticleExplosion(position, count, colors)
- for i = 1, count do
- local particle = Instance.new("Frame")
- particle.Size = UDim2.new(0, math.random(3, 8), 0, math.random(3, 8))
- particle.Position = UDim2.new(0, position.X, 0, position.Y)
- particle.BackgroundColor3 = colors[math.random(1, #colors)]
- particle.BorderSizePixel = 0
- particle.Parent = backgroundFrame
- local corner = Instance.new("UICorner")
- corner.CornerRadius = UDim.new(1, 0)
- corner.Parent = particle
- local angle = math.rad(math.random(0, 360))
- local speed = math.random(100, 300)
- local endX = position.X + math.cos(angle) * speed
- local endY = position.Y + math.sin(angle) * speed
- local moveTween = TweenService:Create(
- particle,
- TweenInfo.new(math.random(150, 250) / 100, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
- {
- Position = UDim2.new(0, endX, 0, endY),
- BackgroundTransparency = 1,
- Rotation = math.random(-360, 360),
- Size = UDim2.new(0, 0, 0, 0)
- }
- )
- moveTween:Play()
- Debris:AddItem(particle, 3)
- end
- end
- local function startWelcomeSequence()
- local welcomeFadeIn = TweenService:Create(
- rotatingText,
- TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
- {TextTransparency = 0}
- )
- welcomeFadeIn:Play()
- playSpinningSound()
- spawn(function()
- for i = 1, 5 do
- createDynamicParticleExplosion(
- {X = math.random(100, 1820), Y = math.random(100, 980)},
- 15,
- {Color3.fromRGB(255, 100, 100), Color3.fromRGB(100, 255, 100), Color3.fromRGB(100, 100, 255)}
- )
- wait(0.5)
- end
- end)
- wait(3)
- spawn(function()
- wait(3)
- local slowDownTime = 1.5
- local startTime = tick()
- local initialSpeed = rotationSpeed
- while tick() - startTime < slowDownTime do
- local progress = (tick() - startTime) / slowDownTime
- rotationSpeed = initialSpeed * (1 - progress)^3
- wait(0.01)
- end
- isAnimating = false
- rotationSpeed = 0
- if rotationConnection then
- rotationConnection:Disconnect()
- rotationConnection = nil
- end
- end)
- local moveToFinalTween = TweenService:Create(
- rotatingText,
- TweenInfo.new(2.5, Enum.EasingStyle.Elastic, Enum.EasingDirection.Out),
- {Position = UDim2.new(0.5, -150, 0.9, 0)}
- )
- moveToFinalTween:Play()
- moveToFinalTween.Completed:Wait()
- local fadeOutTween = TweenService:Create(
- rotatingText,
- TweenInfo.new(0.8, Enum.EasingStyle.Quad),
- {TextTransparency = 1}
- )
- local glowFadeOut = TweenService:Create(
- textGlow,
- TweenInfo.new(0.8, Enum.EasingStyle.Quad),
- {Transparency = 1}
- )
- fadeOutTween:Play()
- glowFadeOut:Play()
- fadeOutTween.Completed:Wait()
- for i, wordData in ipairs(titleLabels) do
- soundEffects.word:Play()
- createDynamicParticleExplosion(
- {X = wordData.container.AbsolutePosition.X + 50, Y = wordData.container.AbsolutePosition.Y + 50},
- 25,
- {Color3.fromRGB(255, 120, 120), Color3.fromRGB(255, 80, 80)}
- )
- local appearTween = TweenService:Create(
- wordData.label,
- TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
- {TextTransparency = 0, Size = UDim2.new(1.2, 0, 1.2, 0)}
- )
- local strokeTween = TweenService:Create(
- wordData.stroke,
- TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
- {Transparency = 0.3}
- )
- local scaleTween = TweenService:Create(
- wordData.container,
- TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
- {Size = UDim2.new(0, 110, 0, 110)}
- )
- appearTween:Play()
- strokeTween:Play()
- scaleTween:Play()
- spawn(function()
- wait(0.2)
- local bounceBack = TweenService:Create(
- wordData.label,
- TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
- {Size = UDim2.new(1, 0, 1, 0)}
- )
- bounceBack:Play()
- end)
- wait(0.25)
- end
- wait(1.5)
- playButton.Visible = true
- createDynamicParticleExplosion(
- {X = playButton.AbsolutePosition.X + 125, Y = playButton.AbsolutePosition.Y + 40},
- 40,
- {Color3.fromRGB(0, 255, 0), Color3.fromRGB(100, 255, 100)}
- )
- local buttonAppearTween = TweenService:Create(
- playButton,
- TweenInfo.new(0.8, Enum.EasingStyle.Elastic, Enum.EasingDirection.Out),
- {Size = UDim2.new(0, 280, 0, 90)}
- )
- buttonAppearTween:Play()
- local hoverConnection
- hoverConnection = playButton.MouseEnter:Connect(function()
- local hoverTween = TweenService:Create(
- playButton,
- TweenInfo.new(0.2, Enum.EasingStyle.Quad),
- {Size = UDim2.new(0, 300, 0, 95), BackgroundColor3 = Color3.fromRGB(0, 220, 0)}
- )
- hoverTween:Play()
- end)
- playButton.MouseLeave:Connect(function()
- local leaveTween = TweenService:Create(
- playButton,
- TweenInfo.new(0.2, Enum.EasingStyle.Quad),
- {Size = UDim2.new(0, 280, 0, 90), BackgroundColor3 = Color3.fromRGB(0, 180, 0)}
- )
- leaveTween:Play()
- end)
- end
- local function createAdvancedShatterEffect()
- local originalSize = playButton.Size
- local originalPos = playButton.Position
- local buttonWidth = originalSize.X.Offset
- local buttonHeight = originalSize.Y.Offset
- local function createShockwave(centerX, centerY, radius, color)
- local shockwave = Instance.new("Frame")
- shockwave.Size = UDim2.new(0, 0, 0, 0)
- shockwave.Position = UDim2.new(0, centerX, 0, centerY)
- shockwave.BackgroundTransparency = 0.5
- shockwave.BackgroundColor3 = color
- shockwave.BorderSizePixel = 0
- shockwave.AnchorPoint = Vector2.new(0.5, 0.5)
- shockwave.Parent = backgroundFrame
- local corner = Instance.new("UICorner")
- corner.CornerRadius = UDim.new(1, 0)
- corner.Parent = shockwave
- local expandTween = TweenService:Create(
- shockwave,
- TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
- {
- Size = UDim2.new(0, radius * 2, 0, radius * 2),
- BackgroundTransparency = 1
- }
- )
- expandTween:Play()
- Debris:AddItem(shockwave, 1.5)
- end
- local function createCrackLine(startX, startY, endX, endY, thickness)
- local crack = Instance.new("Frame")
- local length = math.sqrt((endX - startX)^2 + (endY - startY)^2)
- local angle = math.deg(math.atan2(endY - startY, endX - startX))
- crack.Size = UDim2.new(0, length, 0, thickness)
- crack.Position = UDim2.new(0, startX, 0, startY)
- crack.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
- crack.BorderSizePixel = 0
- crack.BackgroundTransparency = 0
- crack.Rotation = angle
- crack.AnchorPoint = Vector2.new(0, 0.5)
- crack.ZIndex = 15
- crack.Parent = playButton
- local appearTween = TweenService:Create(
- crack,
- TweenInfo.new(0.1, Enum.EasingStyle.Quad),
- {BackgroundTransparency = 0}
- )
- appearTween:Play()
- return crack
- end
- local allCracks = {}
- local shatterPhases = 6
- spawn(function()
- for phase = 1, shatterPhases do
- soundEffects.shatter:Play()
- createShockwave(
- originalPos.X.Offset + buttonWidth/2,
- originalPos.Y.Offset + buttonHeight/2,
- 50 + phase * 30,
- Color3.fromRGB(255, 100 - phase * 10, 100 - phase * 10)
- )
- local newCracks = {}
- local cracksPerPhase = math.random(8, 12)
- for i = 1, cracksPerPhase do
- local startX, startY, endX, endY
- if phase <= 2 then
- startX = math.random(0, buttonWidth/2)
- startY = math.random(0, buttonHeight/2)
- endX = math.random(buttonWidth/2, buttonWidth)
- endY = math.random(buttonHeight/2, buttonHeight)
- elseif phase <= 4 then
- local centerX, centerY = buttonWidth/2, buttonHeight/2
- local angle = math.random(0, 360)
- local radius = math.random(20, 60)
- startX = centerX
- startY = centerY
- endX = centerX + math.cos(math.rad(angle)) * radius
- endY = centerY + math.sin(math.rad(angle)) * radius
- else
- startX = math.random(0, buttonWidth)
- startY = math.random(0, buttonHeight)
- endX = math.random(0, buttonWidth)
- endY = math.random(0, buttonHeight)
- end
- local crack = createCrackLine(startX, startY, endX, endY, math.random(2, 5))
- table.insert(newCracks, crack)
- end
- for _, crack in ipairs(newCracks) do
- table.insert(allCracks, crack)
- end
- for shake = 1, 15 do
- playButton.Position = UDim2.new(
- originalPos.X.Scale,
- originalPos.X.Offset + math.random(-6, 6),
- originalPos.Y.Scale,
- originalPos.Y.Offset + math.random(-6, 6)
- )
- playButton.Rotation = math.random(-2, 2)
- wait(0.03)
- end
- playButton.Position = originalPos
- playButton.Rotation = 0
- wait(0.2)
- end
- wait(0.8)
- soundEffects.broke:Play()
- createDynamicParticleExplosion(
- {X = originalPos.X.Offset + buttonWidth/2, Y = originalPos.Y.Offset + buttonHeight/2},
- 100,
- {Color3.fromRGB(0, 200, 0), Color3.fromRGB(50, 255, 50), Color3.fromRGB(0, 150, 0)}
- )
- for _, crack in ipairs(allCracks) do
- crack:Destroy()
- end
- local shatterPieces = {}
- local buttonX = originalPos.X.Offset
- local buttonY = originalPos.Y.Offset
- local centerX = buttonX + buttonWidth / 2
- local centerY = buttonY + buttonHeight / 2
- local function createGlassFragment(x, y, width, height, shape)
- local piece = Instance.new("Frame")
- piece.Size = UDim2.new(0, width, 0, height)
- piece.Position = UDim2.new(0, x, 0, y)
- piece.BackgroundColor3 = Color3.fromRGB(
- math.random(0, 80),
- math.random(160, 255),
- math.random(0, 80)
- )
- piece.BorderSizePixel = 0
- piece.Parent = backgroundFrame
- if shape == "triangle" then
- local points = {
- Vector2.new(0.5, 0),
- Vector2.new(0, 1),
- Vector2.new(1, 1)
- }
- local triangle = Instance.new("UICorner")
- triangle.CornerRadius = UDim.new(0, 2)
- triangle.Parent = piece
- elseif shape == "hexagon" then
- local corner = Instance.new("UICorner")
- corner.CornerRadius = UDim.new(0, math.random(3, 8))
- corner.Parent = piece
- else
- local corner = Instance.new("UICorner")
- corner.CornerRadius = UDim.new(0, math.random(1, 5))
- corner.Parent = piece
- end
- return piece
- end
- local fragmentShapes = {"triangle", "hexagon", "rectangle", "square"}
- local fragmentCount = 45
- for i = 1, fragmentCount do
- local angle = (i / fragmentCount) * 360 + math.random(-30, 30)
- local distance = math.random(20, 80)
- local x = centerX + math.cos(math.rad(angle)) * distance
- local y = centerY + math.sin(math.rad(angle)) * distance
- local shape = fragmentShapes[math.random(1, #fragmentShapes)]
- local width = math.random(8, 25)
- local height = math.random(8, 25)
- local piece = createGlassFragment(x, y, width, height, shape)
- table.insert(shatterPieces, piece)
- end
- playButton.Visible = false
- for i, piece in ipairs(shatterPieces) do
- local delay = (i - 1) * 0.03
- spawn(function()
- wait(delay)
- local centerDistance = math.sqrt((piece.Position.X.Offset - centerX)^2 + (piece.Position.Y.Offset - centerY)^2)
- local direction = math.atan2(piece.Position.Y.Offset - centerY, piece.Position.X.Offset - centerX)
- local fallDistance = 500 + math.random(0, 300)
- local fallX = piece.Position.X.Offset + math.cos(direction) * fallDistance
- local fallY = piece.Position.Y.Offset + math.sin(direction) * fallDistance + 400
- local fallSpeed = math.random(200, 350) / 100
- local rotationAmount = math.random(-900, 900)
- local fallTween = TweenService:Create(
- piece,
- TweenInfo.new(fallSpeed, Enum.EasingStyle.Quad, Enum.EasingDirection.In),
- {
- Position = UDim2.new(0, fallX, 0, fallY),
- Rotation = rotationAmount,
- Size = UDim2.new(0, piece.Size.X.Offset * 0.2, 0, piece.Size.Y.Offset * 0.2),
- BackgroundTransparency = 1
- }
- )
- fallTween:Play()
- end)
- end
- spawn(function()
- wait(5)
- for _, piece in ipairs(shatterPieces) do
- if piece.Parent then
- piece:Destroy()
- end
- end
- end)
- spawn(function()
- wait(1.5)
- for i = 1, 8 do
- createDynamicParticleExplosion(
- {X = math.random(200, 1720), Y = math.random(200, 880)},
- 20,
- {Color3.fromRGB(0, 255, 0), Color3.fromRGB(150, 255, 150), Color3.fromRGB(50, 200, 50)}
- )
- wait(0.3)
- end
- end)
- local distortionFrames = {}
- for i = 1, 12 do
- local distortion = Instance.new("Frame")
- distortion.Size = UDim2.new(0, math.random(50, 200), 0, math.random(20, 100))
- distortion.Position = UDim2.new(math.random(), 0, math.random(), 0)
- distortion.BackgroundColor3 = Color3.fromRGB(
- math.random(0, 100),
- math.random(150, 255),
- math.random(0, 100)
- )
- distortion.BorderSizePixel = 0
- distortion.BackgroundTransparency = 0.4
- distortion.Parent = backgroundFrame
- local distortionCorner = Instance.new("UICorner")
- distortionCorner.CornerRadius = UDim.new(0, math.random(5, 15))
- distortionCorner.Parent = distortion
- table.insert(distortionFrames, distortion)
- local glitchTween = TweenService:Create(
- distortion,
- TweenInfo.new(math.random(100, 300) / 100, Enum.EasingStyle.Quart, Enum.EasingDirection.Out),
- {
- Position = UDim2.new(
- distortion.Position.X.Scale + (math.random() - 0.5) * 2,
- 0,
- distortion.Position.Y.Scale + (math.random() - 0.5) * 2,
- 0
- ),
- BackgroundTransparency = 1,
- Rotation = math.random(-180, 180),
- Size = UDim2.new(0, 0, 0, 0)
- }
- )
- glitchTween:Play()
- end
- spawn(function()
- wait(4)
- for _, frame in ipairs(distortionFrames) do
- if frame.Parent then
- frame:Destroy()
- end
- end
- end)
- end)
- end
- local function createScreenShake(intensity, duration)
- local originalPosition = backgroundFrame.Position
- local shakeConnection
- local shakeTime = 0
- shakeConnection = RunService.Heartbeat:Connect(function(deltaTime)
- shakeTime = shakeTime + deltaTime
- if shakeTime >= duration then
- backgroundFrame.Position = originalPosition
- shakeConnection:Disconnect()
- return
- end
- local currentIntensity = intensity * (1 - (shakeTime / duration))
- local shakeX = (math.random() - 0.5) * currentIntensity * 20
- local shakeY = (math.random() - 0.5) * currentIntensity * 20
- backgroundFrame.Position = UDim2.new(
- originalPosition.X.Scale,
- originalPosition.X.Offset + shakeX,
- originalPosition.Y.Scale,
- originalPosition.Y.Offset + shakeY
- )
- end)
- end
- local buttonHoverConnections = {}
- local function setupButtonHoverEffects()
- local pulseRing = Instance.new("Frame")
- pulseRing.Size = UDim2.new(0, 300, 0, 100)
- pulseRing.Position = UDim2.new(0.5, -150, 0.75, -10)
- pulseRing.BackgroundTransparency = 1
- pulseRing.BorderSizePixel = 0
- pulseRing.Parent = backgroundFrame
- local pulseStroke = Instance.new("UIStroke")
- pulseStroke.Color = Color3.fromRGB(0, 255, 0)
- pulseStroke.Thickness = 0
- pulseStroke.Transparency = 1
- pulseStroke.Parent = pulseRing
- local pulseCorner = Instance.new("UICorner")
- pulseCorner.CornerRadius = UDim.new(0, 20)
- pulseCorner.Parent = pulseRing
- buttonHoverConnections.enter = playButton.MouseEnter:Connect(function()
- soundEffects.word:Play()
- createDynamicParticleExplosion(
- {X = playButton.AbsolutePosition.X + 140, Y = playButton.AbsolutePosition.Y + 45},
- 15,
- {Color3.fromRGB(0, 255, 0), Color3.fromRGB(100, 255, 100), Color3.fromRGB(150, 255, 150)}
- )
- local buttonHoverTween = TweenService:Create(
- playButton,
- TweenInfo.new(0.3, Enum.EasingStyle.Elastic, Enum.EasingDirection.Out),
- {
- Size = UDim2.new(0, 320, 0, 105),
- BackgroundColor3 = Color3.fromRGB(50, 255, 50),
- Rotation = 2
- }
- )
- buttonHoverTween:Play()
- local pulseAnimation = TweenService:Create(
- pulseStroke,
- TweenInfo.new(0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.Out),
- {Thickness = 4, Transparency = 0.3}
- )
- pulseAnimation:Play()
- local buttonTextGlow = TweenService:Create(
- playButton,
- TweenInfo.new(0.3, Enum.EasingStyle.Quad),
- {TextStrokeTransparency = 0, TextStrokeColor3 = Color3.fromRGB(255, 255, 255)}
- )
- buttonTextGlow:Play()
- end)
- buttonHoverConnections.leave = playButton.MouseLeave:Connect(function()
- local buttonLeaveTween = TweenService:Create(
- playButton,
- TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
- {
- Size = UDim2.new(0, 280, 0, 90),
- BackgroundColor3 = Color3.fromRGB(0, 180, 0),
- Rotation = 0
- }
- )
- buttonLeaveTween:Play()
- local pulseReset = TweenService:Create(
- pulseStroke,
- TweenInfo.new(0.3, Enum.EasingStyle.Quad),
- {Thickness = 0, Transparency = 1}
- )
- pulseReset:Play()
- local textGlowReset = TweenService:Create(
- playButton,
- TweenInfo.new(0.2, Enum.EasingStyle.Quad),
- {TextStrokeTransparency = 1}
- )
- textGlowReset:Play()
- end)
- end
- local function createAdvancedLightingEffects()
- local lightSources = {}
- for i = 1, 6 do
- local lightSource = Instance.new("Frame")
- lightSource.Size = UDim2.new(0, math.random(100, 300), 0, math.random(100, 300))
- lightSource.Position = UDim2.new(math.random(), 0, math.random(), 0)
- lightSource.BackgroundTransparency = 0.85
- lightSource.BorderSizePixel = 0
- lightSource.Parent = backgroundFrame
- local lightGradient = Instance.new("UIGradient")
- lightGradient.Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, Color3.fromHSV(math.random(200, 300) / 360, 0.8, 1)),
- ColorSequenceKeypoint.new(0.5, Color3.fromHSV(math.random(200, 300) / 360, 0.6, 0.8)),
- ColorSequenceKeypoint.new(1, Color3.fromHSV(math.random(200, 300) / 360, 0.4, 0.6))
- }
- lightGradient.Transparency = NumberSequence.new{
- NumberSequenceKeypoint.new(0, 1),
- NumberSequenceKeypoint.new(0.3, 0.7),
- NumberSequenceKeypoint.new(0.7, 0.8),
- NumberSequenceKeypoint.new(1, 1)
- }
- lightGradient.Parent = lightSource
- local lightCorner = Instance.new("UICorner")
- lightCorner.CornerRadius = UDim.new(1, 0)
- lightCorner.Parent = lightSource
- table.insert(lightSources, {element = lightSource, gradient = lightGradient})
- local lightMoveTween = TweenService:Create(
- lightSource,
- TweenInfo.new(math.random(8, 15), Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true),
- {
- Position = UDim2.new(
- math.random() * 0.8 + 0.1,
- 0,
- math.random() * 0.8 + 0.1,
- 0
- ),
- Size = UDim2.new(
- 0,
- lightSource.Size.X.Offset + math.random(-50, 50),
- 0,
- lightSource.Size.Y.Offset + math.random(-50, 50)
- )
- }
- )
- lightMoveTween:Play()
- local lightRotationTween = TweenService:Create(
- lightGradient,
- TweenInfo.new(math.random(5, 10), Enum.EasingStyle.Linear, Enum.EasingDirection.InOut, -1),
- {Rotation = 360}
- )
- lightRotationTween:Play()
- end
- return lightSources
- end
- local hasBeenClicked = false
- playButton.MouseButton1Click:Connect(function()
- if hasBeenClicked then
- return
- end
- hasBeenClicked = true
- playButton.Active = false
- for _, connection in pairs(buttonHoverConnections) do
- connection:Disconnect()
- end
- local musicFadeOut = TweenService:Create(
- soundEffects.theme,
- TweenInfo.new(1.5, Enum.EasingStyle.Quad),
- {Volume = 0}
- )
- musicFadeOut:Play()
- musicFadeOut.Completed:Connect(function()
- soundEffects.theme:Stop()
- end)
- createScreenShake(1, 3)
- local warningText = Instance.new("TextLabel")
- warningText.Size = UDim2.new(0, 400, 0, 60)
- warningText.Position = UDim2.new(0.5, -200, 0.2, 0)
- warningText.BackgroundTransparency = 1
- warningText.Text = "SYSTEM OVERLOAD!"
- warningText.TextColor3 = Color3.fromRGB(255, 50, 50)
- warningText.TextScaled = true
- warningText.Font = Enum.Font.GothamBold
- warningText.TextStrokeTransparency = 0.3
- warningText.TextStrokeColor3 = Color3.fromRGB(255, 255, 255)
- warningText.TextTransparency = 1
- warningText.Parent = backgroundFrame
- local warningAppear = TweenService:Create(
- warningText,
- TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
- {TextTransparency = 0, Size = UDim2.new(0, 450, 0, 70)}
- )
- warningAppear:Play()
- spawn(function()
- for i = 1, 10 do
- local flash = TweenService:Create(
- warningText,
- TweenInfo.new(0.1, Enum.EasingStyle.Quad),
- {TextColor3 = Color3.fromRGB(255, 255, 0)}
- )
- flash:Play()
- wait(0.1)
- local flashBack = TweenService:Create(
- warningText,
- TweenInfo.new(0.1, Enum.EasingStyle.Quad),
- {TextColor3 = Color3.fromRGB(255, 50, 50)}
- )
- flashBack:Play()
- wait(0.1)
- end
- local warningFade = TweenService:Create(
- warningText,
- TweenInfo.new(0.5, Enum.EasingStyle.Quad),
- {TextTransparency = 1}
- )
- warningFade:Play()
- end)
- createAdvancedShatterEffect()
- local lightingSources = createAdvancedLightingEffects()
- spawn(function()
- for i = 1, 50 do
- createDynamicParticleExplosion(
- {X = math.random(100, 1820), Y = math.random(100, 980)},
- math.random(20, 40),
- {
- Color3.fromRGB(255, math.random(0, 100), math.random(0, 100)),
- Color3.fromRGB(math.random(0, 100), 255, math.random(0, 100)),
- Color3.fromRGB(math.random(0, 100), math.random(0, 100), 255),
- Color3.fromRGB(255, 255, 255)
- }
- )
- wait(0.1)
- end
- end)
- if particleConnection then
- particleConnection:Disconnect()
- end
- wait(8)
- whiteScreen.Visible = true
- whiteScreen.BackgroundTransparency = 1
- whiteScreen.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- local epicFlash = TweenService:Create(
- whiteScreen,
- TweenInfo.new(0.05, Enum.EasingStyle.Quad),
- {BackgroundTransparency = 0}
- )
- epicFlash:Play()
- wait(1)
- local finalFade = TweenService:Create(
- whiteScreen,
- TweenInfo.new(3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
- {BackgroundTransparency = 1}
- )
- finalFade:Play()
- spawn(function()
- wait(1)
- for _, sound in pairs(soundEffects) do
- if sound.IsPlaying then
- sound:Stop()
- end
- end
- for _, lightData in ipairs(lightingSources) do
- if lightData.element.Parent then
- lightData.element:Destroy()
- end
- end
- local backgroundFinalFade = TweenService:Create(
- backgroundFrame,
- TweenInfo.new(2, Enum.EasingStyle.Quad),
- {BackgroundTransparency = 1}
- )
- backgroundFinalFade:Play()
- end)
- finalFade.Completed:Wait()
- wait(1)
- screenGui:Destroy()
- end)
- spawn(startWelcomeSequence)
- setupButtonHoverEffects()
- return module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement