-- LocalScript (place inside StarterPlayerScripts) local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local UIS = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local ReplicatedStorage = game:GetService("ReplicatedStorage") -- Create RemoteEvent for server-wide effects local goodifyEvent = ReplicatedStorage:FindFirstChild("GoodifyEvent") if not goodifyEvent then goodifyEvent = Instance.new("RemoteEvent") goodifyEvent.Name = "GoodifyEvent" goodifyEvent.Parent = ReplicatedStorage end -- ScreenGui local screenGui = Instance.new("ScreenGui") screenGui.Name = "SpookyGUI" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") -- Frame local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 320, 0, 550) frame.Position = UDim2.new(0.5, -160, 0.5, -275) frame.BackgroundColor3 = Color3.fromRGB(255, 0, 0) frame.BorderSizePixel = 2 frame.Active = true frame.Draggable = true frame.Parent = screenGui -- Rainbow effect local hue = 0 RunService.RenderStepped:Connect(function(deltaTime) hue = hue + deltaTime * 0.5 if hue > 1 then hue = 0 end frame.BackgroundColor3 = Color3.fromHSV(hue, 1, 1) end) -- Title local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 30) title.Position = UDim2.new(0, 0, 0, 0) title.BackgroundTransparency = 1 title.Text = "SPOOKY SN" title.TextScaled = true title.TextColor3 = Color3.fromRGB(255, 255, 255) title.Font = Enum.Font.SourceSansBold title.Parent = frame -- ScrollingFrame local scrollFrame = Instance.new("ScrollingFrame") scrollFrame.Size = UDim2.new(1, 0, 1, -40) scrollFrame.Position = UDim2.new(0, 0, 0, 40) scrollFrame.BackgroundTransparency = 1 scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 900) scrollFrame.ScrollBarThickness = 6 scrollFrame.Parent = frame -- Button creation local function createButton(name, posY) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.8, 0, 0, 40) btn.Position = UDim2.new(0.1, 0, 0, posY) btn.BackgroundColor3 = Color3.fromRGB(255, 165, 0) btn.TextColor3 = Color3.fromRGB(0, 0, 0) btn.Font = Enum.Font.SourceSansBold btn.TextScaled = true btn.Text = name btn.Parent = scrollFrame return btn end -- Buttons local spookyBtn = createButton("SPOOKIFY", 0) local ultraBtn = createButton("ULTRAv2", 50) local threevBtn = createButton("THREEv", 100) local ghostBtn = createButton("GhostBlox", 150) local horrifyBtn = createButton("Horrify", 200) local crashBtn = createButton("CRASHIFY", 250) local goodifyBtn = createButton("GOODIFY", 300) local emoterBtn = createButton("Emoter", 350) -- SPOOKIFY spookyBtn.MouseButton1Click:Connect(function() local char = player.Character if not char then return end for _, part in pairs(char:GetChildren()) do if part:IsA("BasePart") then part.BrickColor = BrickColor.White() end end local humanoid = char:FindFirstChildOfClass("Humanoid") if humanoid then local anim = Instance.new("Animation") anim.AnimationId = "rbxassetid://107943796447040" local idleTrack = humanoid:LoadAnimation(anim) local walkTrack = humanoid:LoadAnimation(anim) idleTrack:Play() walkTrack:Play() end for _, part in pairs(char:GetChildren()) do if part:IsA("BasePart") then local emitter = Instance.new("ParticleEmitter") emitter.Texture = "rbxasset://textures/particles/sparkles_main.dds" emitter.Rate = 20 emitter.Lifetime = NumberRange.new(1) emitter.Speed = NumberRange.new(2) emitter.Size = NumberSequence.new(1.5) emitter.Color = ColorSequence.new(Color3.fromRGB(255, 0, 0)) emitter.LightEmission = 1 emitter.Parent = part end end end) -- ULTRAv2 ultraBtn.MouseButton1Click:Connect(function() local char = player.Character if not char then return end local root = char:FindFirstChild("HumanoidRootPart") if root then for i = 1, 5 do local offset = Vector3.new(math.random(-10,10), math.random(0,5), math.random(-10,10)) root.CFrame = root.CFrame + offset wait(0.1) end end end) -- THREEv threevBtn.MouseButton1Click:Connect(function() local char = player.Character if not char then return end local humanoid = char:FindFirstChildOfClass("Humanoid") if humanoid then humanoid.WalkSpeed = 40 end for _, part in pairs(char:GetChildren()) do if part.Name == "LeftLeg" or part.Name == "RightLeg" then part:Destroy() end end local sound = Instance.new("Sound") sound.SoundId = "rbxassetid://124977194976300" sound.Volume = 5 sound.Parent = char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") sound:Play() end) -- GhostBlox ghostBtn.MouseButton1Click:Connect(function() local char = player.Character if not char then return end local humanoid = char:FindFirstChildOfClass("Humanoid") if not humanoid then return end local root = char:FindFirstChild("HumanoidRootPart") if not root then return end local anim = Instance.new("Animation") anim.AnimationId = "rbxassetid://112760460380285" local track = humanoid:LoadAnimation(anim) track:Play() local sound = Instance.new("Sound") sound.SoundId = "rbxassetid://9043345732" sound.Volume = 5 sound.Looped = true sound.Parent = root sound:Play() local hoverHeight = 6 local hoverOffset = 0 local hoverDirection = 0.05 RunService.RenderStepped:Connect(function() if not root or not humanoid then return end local ray = Ray.new(root.Position, Vector3.new(0, -50, 0)) local hit, pos = workspace:FindPartOnRay(ray, char) if hit then local targetY = pos.Y + hoverHeight + hoverOffset local currentPos = root.Position root.CFrame = CFrame.new(currentPos.X, targetY, currentPos.Z) hoverOffset = hoverOffset + hoverDirection if hoverOffset > 1 or hoverOffset < -1 then hoverDirection = -hoverDirection end end end) end) -- Horrify horrifyBtn.MouseButton1Click:Connect(function() local decalId = "rbxassetid://10544517975" for _, part in pairs(Workspace:GetDescendants()) do if part:IsA("BasePart") then local decal = Instance.new("Decal") decal.Texture = decalId decal.Face = Enum.NormalId.Top decal.Parent = part end end local sound = Instance.new("Sound") sound.SoundId = "rbxassetid://73197482738150" sound.Volume = 5 sound.Looped = true sound.Parent = Workspace:FindFirstChild("Baseplate") or Workspace:FindFirstChildOfClass("Part") or Workspace sound:Play() end) -- CRASHIFY crashBtn.MouseButton1Click:Connect(function() local char = player.Character if not char then return end local root = char:FindFirstChild("HumanoidRootPart") if not root then return end local cubes = {} local duration = 10 local startTime = tick() local RunConn RunConn = RunService.RenderStepped:Connect(function() local elapsed = tick() - startTime if elapsed > duration then for _, cube in pairs(cubes) do if cube then cube:Destroy() end end RunConn:Disconnect() return end for i = 1, math.random(3,5) do local cube = Instance.new("Part") cube.Size = Vector3.new(1,1,1) cube.Anchored = true cube.CanCollide = false cube.Material = Enum.Material.Neon local colors = {Color3.fromRGB(255,0,0), Color3.fromRGB(0,0,0), Color3.fromRGB(255,165,0)} cube.Color = colors[math.random(1,#colors)] local offset = Vector3.new(math.random(-5,5), math.random(0,5), math.random(-5,5)) cube.CFrame = root.CFrame + offset cube.Parent = workspace table.insert(cubes, cube) local tweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut, -1, true) local goal = {CFrame = cube.CFrame * CFrame.Angles(math.random(), math.random(), math.random()) * CFrame.new(0,math.random()*0.5,0)} local tween = TweenService:Create(cube, tweenInfo, goal) tween:Play() end end) end) -- GOODIFY goodifyBtn.MouseButton1Click:Connect(function() -- Fire RemoteEvent goodifyEvent:FireServer() end) -- Emoter Button emoterBtn.MouseButton1Click:Connect(function() local char = player.Character if not char then return end local humanoid = char:FindFirstChildOfClass("Humanoid") if humanoid then local anim = Instance.new("Animation") anim.AnimationId = "rbxassetid://" -- replace with actual dance animation id local track = humanoid:LoadAnimation(anim) track:Play() end end)