local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local Debris = game:GetService("Debris") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") local hrp = character:WaitForChild("HumanoidRootPart") player.CharacterAdded:Connect(function(char) character = char humanoid = char:WaitForChild("Humanoid") hrp = char:WaitForChild("HumanoidRootPart") end) -- SCREEN GUI local gui = Instance.new("ScreenGui") gui.Name = "purpgui" gui.ResetOnSpawn = false gui.Parent = player:WaitForChild("PlayerGui") -- THANK YOU LABEL local thankLabel = Instance.new("TextLabel", gui) thankLabel.Size = UDim2.new(0,400,0,50) thankLabel.Position = UDim2.new(0.5,-200,0.3,0) thankLabel.BackgroundTransparency = 1 thankLabel.TextScaled = true thankLabel.TextWrapped = true thankLabel.Font = Enum.Font.GothamBold thankLabel.Text = "Thank you for using my GUI! :D" -- Rainbow text every 0.5 sec local colors = { Color3.fromRGB(255,0,0), Color3.fromRGB(255,127,0), Color3.fromRGB(255,255,0), Color3.fromRGB(0,255,0), Color3.fromRGB(0,0,255), Color3.fromRGB(75,0,130), Color3.fromRGB(148,0,211) } task.spawn(function() local idx = 1 while thankLabel.Parent do thankLabel.TextColor3 = colors[idx] idx = idx + 1 if idx > #colors then idx = 1 end task.wait(0.5) end end) task.delay(3,function() thankLabel:Destroy() end) -- MAIN FRAME local frame = Instance.new("Frame", gui) frame.Size = UDim2.new(0, 260,0,510) frame.Position = UDim2.new(0,20,0.35,0) frame.BackgroundColor3 = Color3.fromRGB(90,40,140) frame.Active = true frame.Draggable = true frame.BorderSizePixel = 0 Instance.new("UICorner", frame) local grad = Instance.new("UIGradient", frame) grad.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(130,70,220)), ColorSequenceKeypoint.new(1, Color3.fromRGB(60,20,120)) } local stroke = Instance.new("UIStroke", frame) stroke.Color = Color3.fromRGB(200,150,255) stroke.Thickness = 2 -- TITLE local title = Instance.new("TextLabel", frame) title.Size = UDim2.new(1,-40,0,40) title.Position = UDim2.new(0,10,0,0) title.Text = "purpgui" title.BackgroundTransparency = 1 title.TextColor3 = Color3.fromRGB(235,200,255) title.Font = Enum.Font.GothamBlack title.TextSize = 22 -- MINIMIZE BUTTON local mini = Instance.new("TextButton", frame) mini.Size = UDim2.new(0,30,0,30) mini.Position = UDim2.new(1,-35,0,5) mini.Text = "-" mini.BackgroundColor3 = Color3.fromRGB(150,90,220) mini.TextColor3 = Color3.new(1,1,1) mini.Font = Enum.Font.GothamBold mini.TextSize = 20 Instance.new("UICorner", mini) local minimized = false local guiElements = {} -- HELPER: SLIDER CREATOR local function makeSlider(text,y,maxValue,callback) local label = Instance.new("TextLabel", frame) label.Position = UDim2.new(0,15,0,y) label.Size = UDim2.new(1,-30,0,20) label.BackgroundTransparency = 1 label.TextColor3 = Color3.fromRGB(240,220,255) label.Font = Enum.Font.GothamBold label.TextSize = 14 label.Text = text..": 0" local bg = Instance.new("Frame", frame) bg.Position = UDim2.new(0,15,0,y+22) bg.Size = UDim2.new(0,230,0,10) bg.BackgroundColor3 = Color3.fromRGB(80,40,130) bg.BorderSizePixel = 0 Instance.new("UICorner", bg) local fill = Instance.new("Frame", bg) fill.Size = UDim2.new(0,0,1,0) fill.BackgroundColor3 = Color3.fromRGB(200,150,255) fill.BorderSizePixel = 0 Instance.new("UICorner", fill) local dragging = false bg.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging=true end end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging=false end end) RunService.RenderStepped:Connect(function() if dragging then local x = math.clamp((UserInputService:GetMouseLocation().X-bg.AbsolutePosition.X)/bg.AbsoluteSize.X,0,1) fill.Size = UDim2.new(x,0,1,0) local value = math.floor(x*maxValue) label.Text = text..": "..value callback(value) end end) table.insert(guiElements,label) table.insert(guiElements,bg) end -- SLIDERS makeSlider("WalkSpeed",50,1000,function(v) if humanoid then humanoid.WalkSpeed=v end end) makeSlider("JumpPower",120,1000,function(v) if humanoid then humanoid.JumpPower=v end end) local flySpeed = 60 makeSlider("Flight Speed Adjuster",280,300,function(v) flySpeed=v end) -- BUTTON CREATOR local function makeButton(text,y) local btn = Instance.new("TextButton", frame) btn.Position = UDim2.new(0,15,0,y) btn.Size = UDim2.new(0,230,0,36) btn.Text = text btn.BackgroundColor3 = Color3.fromRGB(140,80,220) btn.TextColor3 = Color3.new(1,1,1) btn.Font = Enum.Font.GothamBold btn.TextSize = 14 Instance.new("UICorner", btn) table.insert(guiElements,btn) return btn end -- BUTTONS local noclipBtn = makeButton("Noclip: OFF",190) local flyBtn = makeButton("Fly: OFF",235) local ragdollBtn = makeButton("Ragdoll + Respawn",325) local destroyBtn = makeButton("GUI Self Destruct",370) local tpToolBtn = makeButton("Give Teleport Tool",415) local bringBtn = makeButton("Give Bring All Tool",460) -- NOCOLIP local noclip=false RunService.Stepped:Connect(function() if noclip and character then for _,v in pairs(character:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide=false end end end end) noclipBtn.MouseButton1Click:Connect(function() noclip = not noclip noclipBtn.Text = noclip and "Noclip: ON" or "Noclip: OFF" end) -- FLY local flying=false local bv,bgFly local control={F=0,B=0,L=0,R=0,U=0,D=0} local function startFly() bv = Instance.new("BodyVelocity",hrp) bgFly = Instance.new("BodyGyro",hrp) bv.MaxForce=Vector3.new(9e9,9e9,9e9) bgFly.MaxTorque=Vector3.new(9e9,9e9,9e9) RunService.RenderStepped:Connect(function() if flying then local cam = workspace.CurrentCamera local move = Vector3.new(control.R-control.L,control.U-control.D,control.F-control.B) bv.Velocity = cam.CFrame:VectorToWorldSpace(move*flySpeed) bgFly.CFrame = cam.CFrame end end) end flyBtn.MouseButton1Click:Connect(function() flying = not flying flyBtn.Text = flying and "Fly: ON" or "Fly: OFF" if humanoid then humanoid.PlatformStand=flying end if flying then startFly() else if bv then bv:Destroy() end if bgFly then bgFly:Destroy() end end) UserInputService.InputBegan:Connect(function(i,g) if g then return end if i.KeyCode==Enum.KeyCode.W then control.F=1 end if i.KeyCode==Enum.KeyCode.S then control.B=1 end if i.KeyCode==Enum.KeyCode.A then control.L=1 end if i.KeyCode==Enum.KeyCode.D then control.R=1 end if i.KeyCode==Enum.KeyCode.Space then control.U=1 end if i.KeyCode==Enum.KeyCode.LeftControl then control.D=1 end end) UserInputService.InputEnded:Connect(function(i) if i.KeyCode==Enum.KeyCode.W then control.F=0 end if i.KeyCode==Enum.KeyCode.S then control.B=0 end if i.KeyCode==Enum.KeyCode.A then control.L=0 end if i.KeyCode==Enum.KeyCode.D then control.R=0 end if i.KeyCode==Enum.KeyCode.Space then control.U=0 end if i.KeyCode==Enum.KeyCode.LeftControl then control.D=0 end end) -- RAGDOLL + RESPAWN ragdollBtn.MouseButton1Click:Connect(function() if humanoid then humanoid:ChangeState(Enum.HumanoidStateType.Physics) humanoid.PlatformStand=true task.delay(3,function() if humanoid then humanoid.Health=0 end end) end end) -- SELF DESTRUCT destroyBtn.MouseButton1Click:Connect(function() gui:Destroy() end) -- TELEPORT TOOL tpToolBtn.MouseButton1Click:Connect(function() if player.Backpack:FindFirstChild("purps not so stable click to teleporter") then return end local tool=Instance.new("Tool") tool.Name="purps not so stable click to teleporter" tool.RequiresHandle=false tool.CanBeDropped=true tool.Parent=player.Backpack tool.Activated:Connect(function() local mouse = player:GetMouse() if mouse and mouse.Hit then hrp.CFrame=CFrame.new(mouse.Hit.Position+Vector3.new(0,3,0)) end end) end) -- BRING ALL TOOL WITH PARTICLES bringBtn.MouseButton1Click:Connect(function() if player.Backpack:FindFirstChild("Bring All") then return end local tool=Instance.new("Tool") tool.Name="Bring All" tool.RequiresHandle=false tool.CanBeDropped=true tool.Parent=player.Backpack tool.Activated:Connect(function() for _,plr in pairs(Players:GetPlayers()) do if plr~=player and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then local oldPos = plr.Character.HumanoidRootPart.Position local part = Instance.new("Part") part.Size=Vector3.new(1,1,1) part.Anchored=true part.CanCollide=false part.Transparency=1 part.Position=oldPos part.Parent=workspace local emitter = Instance.new("ParticleEmitter") emitter.Texture="rbxassetid://244221613" emitter.Lifetime=NumberRange.new(0.5) emitter.Rate=100 emitter.Speed=NumberRange.new(5) emitter.Parent=part Debris:AddItem(part,1) plr.Character.HumanoidRootPart.CFrame = hrp.CFrame + Vector3.new(0,0,3) end end end) end) -- MINIMIZE/MAXIMIZE mini.MouseButton1Click:Connect(function() minimized = not minimized mini.Text = minimized and "+" or "-" for _,v in pairs(guiElements) do v.Visible=not minimized end local targetSize = minimized and UDim2.new(0,260,0,45) or UDim2.new(0,260,0,510) local tween = TweenService:Create(frame,TweenInfo.new(0.3),{Size=targetSize}) tween:Play() end) -- GUI TOGGLE WITH M KEY local visible=true UserInputService.InputBegan:Connect(function(i,g) if g then return end if i.KeyCode==Enum.KeyCode.M then visible = not visible gui.Enabled = visible end end)