-- Fly + Noclip GUI with Ray Field + Keybind System local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera -- ══════════════════════════════════════════ -- SCREEN GUI SETUP -- ══════════════════════════════════════════ local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "FlyGui" ScreenGui.ResetOnSpawn = false ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.DisplayOrder = 999 pcall(function() if gethui then ScreenGui.Parent = gethui(); return end if syn and syn.protect_gui then syn.protect_gui(ScreenGui) end ScreenGui.Parent = game:GetService("CoreGui") end) if not ScreenGui.Parent then ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") end -- ══════════════════════════════════════════ -- KEYBIND SYSTEM -- ══════════════════════════════════════════ local keybinds = { fly = Enum.KeyCode.F, noclip = Enum.KeyCode.N, gui = Enum.KeyCode.RightShift, } local keybindActions = {} -- filled after buttons exist local listeningFor = nil -- which slot is being rebound -- ══════════════════════════════════════════ -- MAIN FRAME -- ══════════════════════════════════════════ local Main = Instance.new("Frame") Main.Name = "Main" Main.BackgroundColor3 = Color3.fromRGB(22, 22, 26) Main.BorderSizePixel = 0 Main.Position = UDim2.new(0, 24, 0.5, -155) Main.Size = UDim2.new(0, 220, 0, 310) Main.Active = true Main.Draggable = true Main.ClipsDescendants = true Main.ZIndex = 10 Main.Parent = ScreenGui Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 10) -- ══════════════════════════════════════════ -- RAY FIELD CANVAS -- ══════════════════════════════════════════ local RayCanvas = Instance.new("Frame") RayCanvas.BackgroundTransparency = 1 RayCanvas.BorderSizePixel = 0 RayCanvas.Size = UDim2.fromScale(1, 1) RayCanvas.ZIndex = 10 RayCanvas.ClipsDescendants = false RayCanvas.Parent = Main local BgGrad = Instance.new("Frame") BgGrad.BackgroundColor3 = Color3.fromRGB(18, 18, 24) BgGrad.BorderSizePixel = 0 BgGrad.Size = UDim2.fromScale(1, 1) BgGrad.ZIndex = 10 BgGrad.Parent = RayCanvas Instance.new("UICorner", BgGrad).CornerRadius = UDim.new(0, 10) local BgUIG = Instance.new("UIGradient") BgUIG.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(30, 20, 50)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(20, 20, 35)), ColorSequenceKeypoint.new(1, Color3.fromRGB(15, 25, 45)), }) BgUIG.Rotation = 135 BgUIG.Parent = BgGrad local RAY_COUNT = 10 local rays = {} for i = 1, RAY_COUNT do local ray = Instance.new("Frame") ray.BorderSizePixel = 0 ray.BackgroundColor3 = Color3.fromRGB(255, 255, 255) ray.BackgroundTransparency = 0.88 ray.AnchorPoint = Vector2.new(0, 1) ray.Position = UDim2.new(0, 0, 1, 0) ray.Size = UDim2.new(0, 4, 3, 0) ray.ZIndex = 11 ray.ClipsDescendants = false ray.Parent = RayCanvas local baseAngle = -20 + (i - 1) * (130 / RAY_COUNT) ray.Rotation = baseAngle local rayGrad = Instance.new("UIGradient") rayGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(180, 100, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(80, 160, 255)), }) rayGrad.Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 0.5), NumberSequenceKeypoint.new(1, 1.0), }) rayGrad.Rotation = 90 rayGrad.Parent = ray rays[i] = {frame = ray, base = baseAngle, width = 3 + i * 1.5} end local rayTime = 0 RunService.RenderStepped:Connect(function(dt) rayTime = rayTime + dt for i, r in ipairs(rays) do local f = r.frame local pulse = 3 + r.width * (0.5 + 0.5 * math.sin(rayTime * 0.8 + i * 0.7)) local drift = math.sin(rayTime * 0.3 + i * 0.5) * 6 f.Size = UDim2.new(0, pulse, 3, 0) f.Rotation = r.base + drift local hue = ((rayTime * 0.08 + i / RAY_COUNT) % 1) local col = Color3.fromHSV(0.65 + hue * 0.2, 0.7, 1) local col2 = Color3.fromHSV(0.55 + hue * 0.2, 0.6, 1) local g = f:FindFirstChildOfClass("UIGradient") if g then g.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, col), ColorSequenceKeypoint.new(1, col2), }) end end end) local Orb = Instance.new("Frame") Orb.BackgroundColor3 = Color3.fromRGB(140, 80, 255) Orb.BorderSizePixel = 0 Orb.AnchorPoint = Vector2.new(0.5, 0.5) Orb.Position = UDim2.new(0, 0, 1, 0) Orb.Size = UDim2.new(0, 120, 0, 120) Orb.BackgroundTransparency = 0.6 Orb.ZIndex = 10 Orb.Parent = RayCanvas Instance.new("UICorner", Orb).CornerRadius = UDim.new(1, 0) Instance.new("UIGradient", Orb).Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(160, 100, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(80, 140, 255)), }) RunService.RenderStepped:Connect(function() local s = 110 + math.sin(tick() * 1.2) * 15 Orb.Size = UDim2.new(0, s, 0, s) Orb.BackgroundTransparency = 0.55 + math.sin(tick() * 1.2) * 0.1 end) -- ══════════════════════════════════════════ -- TITLE BAR -- ══════════════════════════════════════════ local TitleBar = Instance.new("Frame") TitleBar.BackgroundColor3 = Color3.fromRGB(0, 0, 0) TitleBar.BackgroundTransparency = 0.5 TitleBar.BorderSizePixel = 0 TitleBar.Size = UDim2.new(1, 0, 0, 34) TitleBar.ZIndex = 20 TitleBar.Parent = Main Instance.new("UICorner", TitleBar).CornerRadius = UDim.new(0, 10) Instance.new("UIGradient", TitleBar).Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(120, 60, 220)), ColorSequenceKeypoint.new(1, Color3.fromRGB(50, 100, 220)), }) local TitleLabel = Instance.new("TextLabel") TitleLabel.BackgroundTransparency = 1 TitleLabel.Size = UDim2.new(1, -10, 1, 0) TitleLabel.Position = UDim2.new(0, 12, 0, 0) TitleLabel.Font = Enum.Font.GothamBold TitleLabel.TextSize = 14 TitleLabel.Text = "✈ FLY & NOCLIP" TitleLabel.TextColor3 = Color3.new(1, 1, 1) TitleLabel.TextXAlignment = Enum.TextXAlignment.Left TitleLabel.ZIndex = 21 TitleLabel.Parent = TitleBar local AccentLine = Instance.new("Frame") AccentLine.BackgroundColor3 = Color3.fromRGB(150, 80, 255) AccentLine.BorderSizePixel = 0 AccentLine.Position = UDim2.new(0, 0, 0, 34) AccentLine.Size = UDim2.new(1, 0, 0, 1) AccentLine.ZIndex = 20 AccentLine.Parent = Main RunService.RenderStepped:Connect(function() AccentLine.BackgroundColor3 = Color3.fromHSV((tick() * 0.15) % 1, 0.8, 1) end) -- ══════════════════════════════════════════ -- SPEED CARD -- ══════════════════════════════════════════ local speedCard = Instance.new("Frame") speedCard.BackgroundColor3 = Color3.fromRGB(0, 0, 0) speedCard.BackgroundTransparency = 0.45 speedCard.BorderSizePixel = 0 speedCard.Position = UDim2.new(0, 10, 0, 44) speedCard.Size = UDim2.new(1, -20, 0, 44) speedCard.ZIndex = 20 speedCard.Parent = Main Instance.new("UICorner", speedCard).CornerRadius = UDim.new(0, 8) local spStripe = Instance.new("Frame") spStripe.BackgroundColor3 = Color3.fromRGB(255, 180, 40) spStripe.BorderSizePixel = 0 spStripe.Size = UDim2.new(0, 3, 1, -12) spStripe.Position = UDim2.new(0, 0, 0, 6) spStripe.ZIndex = 21 spStripe.Parent = speedCard Instance.new("UICorner", spStripe).CornerRadius = UDim.new(0, 4) local spLabel = Instance.new("TextLabel") spLabel.BackgroundTransparency = 1 spLabel.Position = UDim2.new(0, 12, 0, 4) spLabel.Size = UDim2.new(0.5, 0, 0, 16) spLabel.Font = Enum.Font.GothamBold spLabel.TextSize = 12 spLabel.Text = "⚡ Fly Speed" spLabel.TextColor3 = Color3.fromRGB(255, 200, 60) spLabel.TextXAlignment = Enum.TextXAlignment.Left spLabel.ZIndex = 21 spLabel.Parent = speedCard local SpeedBox = Instance.new("TextBox") SpeedBox.BackgroundColor3 = Color3.fromRGB(40, 40, 50) SpeedBox.BorderSizePixel = 0 SpeedBox.AnchorPoint = Vector2.new(1, 0.5) SpeedBox.Position = UDim2.new(1, -8, 0.5, 0) SpeedBox.Size = UDim2.new(0, 70, 0, 26) SpeedBox.Font = Enum.Font.GothamBold SpeedBox.TextSize = 13 SpeedBox.Text = "80" SpeedBox.TextColor3 = Color3.fromRGB(255, 200, 60) SpeedBox.ClearTextOnFocus = false SpeedBox.ZIndex = 22 SpeedBox.Parent = speedCard Instance.new("UICorner", SpeedBox).CornerRadius = UDim.new(0, 6) -- ══════════════════════════════════════════ -- CARD HELPER -- ══════════════════════════════════════════ local function makeCard(yPos, icon, label, accentCol) local card = Instance.new("Frame") card.BackgroundColor3 = Color3.fromRGB(0, 0, 0) card.BackgroundTransparency = 0.45 card.BorderSizePixel = 0 card.Position = UDim2.new(0, 10, 0, yPos) card.Size = UDim2.new(1, -20, 0, 52) card.ZIndex = 20 card.Parent = Main Instance.new("UICorner", card).CornerRadius = UDim.new(0, 8) local stripe = Instance.new("Frame") stripe.BackgroundColor3 = accentCol stripe.BorderSizePixel = 0 stripe.Size = UDim2.new(0, 3, 1, -12) stripe.Position = UDim2.new(0, 0, 0, 6) stripe.ZIndex = 21 stripe.Parent = card Instance.new("UICorner", stripe).CornerRadius = UDim.new(0, 4) local nameL = Instance.new("TextLabel") nameL.BackgroundTransparency = 1 nameL.Position = UDim2.new(0, 12, 0, 6) nameL.Size = UDim2.new(1, -70, 0, 18) nameL.Font = Enum.Font.GothamBold nameL.TextSize = 12 nameL.Text = icon .. " " .. label nameL.TextColor3 = Color3.fromRGB(220, 220, 220) nameL.TextXAlignment = Enum.TextXAlignment.Left nameL.ZIndex = 21 nameL.Parent = card local statusL = Instance.new("TextLabel") statusL.BackgroundTransparency = 1 statusL.Position = UDim2.new(0, 12, 0, 26) statusL.Size = UDim2.new(1, -70, 0, 16) statusL.Font = Enum.Font.Gotham statusL.TextSize = 11 statusL.Text = "Disabled" statusL.TextColor3 = Color3.fromRGB(160, 70, 70) statusL.TextXAlignment = Enum.TextXAlignment.Left statusL.ZIndex = 21 statusL.Parent = card local toggleBtn = Instance.new("TextButton") toggleBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 58) toggleBtn.BorderSizePixel = 0 toggleBtn.AnchorPoint = Vector2.new(1, 0.5) toggleBtn.Position = UDim2.new(1, -8, 0.5, 0) toggleBtn.Size = UDim2.new(0, 52, 0, 26) toggleBtn.Font = Enum.Font.GothamBold toggleBtn.TextSize = 11 toggleBtn.Text = "OFF" toggleBtn.TextColor3 = Color3.fromRGB(160, 160, 160) toggleBtn.ZIndex = 22 toggleBtn.Parent = card Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 6) return toggleBtn, statusL, stripe end local FlyBtn, FlyStatus, FlyStripe = makeCard(96, "✈", "FLY MODE", Color3.fromRGB(80, 140, 255)) local NoclipBtn, NoclipStatus, NoclipStripe = makeCard(156, "◈", "NOCLIP", Color3.fromRGB(60, 210, 130)) -- Keybind panel open button local KBOpenBtn = Instance.new("TextButton") KBOpenBtn.BackgroundColor3 = Color3.fromRGB(100, 50, 180) KBOpenBtn.BorderSizePixel = 0 KBOpenBtn.Position = UDim2.new(0, 10, 0, 216) KBOpenBtn.Size = UDim2.new(1, -20, 0, 30) KBOpenBtn.Font = Enum.Font.GothamBold KBOpenBtn.TextSize = 12 KBOpenBtn.Text = "⌨ KEYBINDS" KBOpenBtn.TextColor3 = Color3.new(1, 1, 1) KBOpenBtn.ZIndex = 22 KBOpenBtn.Parent = Main Instance.new("UICorner", KBOpenBtn).CornerRadius = UDim.new(0, 8) Instance.new("UIGradient", KBOpenBtn).Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(130, 60, 220)), ColorSequenceKeypoint.new(1, Color3.fromRGB(80, 80, 200)), }) local HintLabel = Instance.new("TextLabel") HintLabel.BackgroundTransparency = 1 HintLabel.Position = UDim2.new(0, 0, 1, -22) HintLabel.Size = UDim2.new(1, 0, 0, 18) HintLabel.Font = Enum.Font.Gotham HintLabel.TextSize = 10 HintLabel.Text = "WASD · SPACE · L-CTRL" HintLabel.TextColor3 = Color3.fromRGB(90, 90, 110) HintLabel.ZIndex = 20 HintLabel.Parent = Main -- ══════════════════════════════════════════ -- KEYBIND PANEL (separate window) -- ══════════════════════════════════════════ local KBPanel = Instance.new("Frame") KBPanel.Name = "KeybindPanel" KBPanel.BackgroundColor3 = Color3.fromRGB(22, 22, 26) KBPanel.BorderSizePixel = 0 KBPanel.Position = UDim2.new(0, 254, 0.5, -155) KBPanel.Size = UDim2.new(0, 220, 0, 230) KBPanel.Active = true KBPanel.Draggable = true KBPanel.ClipsDescendants = true KBPanel.ZIndex = 30 KBPanel.Visible = false KBPanel.Parent = ScreenGui Instance.new("UICorner", KBPanel).CornerRadius = UDim.new(0, 10) -- KB Ray background local KBBg = Instance.new("Frame") KBBg.BackgroundColor3 = Color3.fromRGB(18, 18, 24) KBBg.BorderSizePixel = 0 KBBg.Size = UDim2.fromScale(1, 1) KBBg.ZIndex = 30 KBBg.Parent = KBPanel Instance.new("UICorner", KBBg).CornerRadius = UDim.new(0, 10) local KBBgGrad = Instance.new("UIGradient") KBBgGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(25, 15, 45)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(18, 18, 32)), ColorSequenceKeypoint.new(1, Color3.fromRGB(12, 20, 40)), }) KBBgGrad.Rotation = 135 KBBgGrad.Parent = KBBg -- KB rays local kbRays = {} for i = 1, 8 do local r = Instance.new("Frame") r.BorderSizePixel = 0 r.BackgroundColor3 = Color3.fromRGB(255,255,255) r.BackgroundTransparency = 0.9 r.AnchorPoint = Vector2.new(1, 0) r.Position = UDim2.new(1, 0, 0, 0) r.Size = UDim2.new(0, 3, 3, 0) r.ZIndex = 31 r.Parent = KBPanel local baseAngle = 160 + (i-1) * (100/8) r.Rotation = baseAngle local g = Instance.new("UIGradient") g.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 200, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(60, 100, 255)), }) g.Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 0.5), NumberSequenceKeypoint.new(1, 1.0), }) g.Rotation = 90 g.Parent = r kbRays[i] = {frame = r, base = baseAngle, width = 2 + i * 1.2} end RunService.RenderStepped:Connect(function(dt) if not KBPanel.Visible then return end for i, r in ipairs(kbRays) do local f = r.frame local t = tick() local pulse = 2 + r.width * (0.5 + 0.5 * math.sin(t * 0.9 + i * 0.8)) local drift = math.sin(t * 0.35 + i * 0.6) * 5 f.Size = UDim2.new(0, pulse, 3, 0) f.Rotation = r.base + drift local hue = ((t * 0.1 + i / 8) % 1) local g = f:FindFirstChildOfClass("UIGradient") if g then g.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromHSV(0.55 + hue*0.15, 0.7, 1)), ColorSequenceKeypoint.new(1, Color3.fromHSV(0.65 + hue*0.15, 0.6, 1)), }) end end end) -- KB Title local KBTitle = Instance.new("Frame") KBTitle.BackgroundColor3 = Color3.fromRGB(0,0,0) KBTitle.BackgroundTransparency = 0.5 KBTitle.BorderSizePixel = 0 KBTitle.Size = UDim2.new(1, 0, 0, 34) KBTitle.ZIndex = 40 KBTitle.Parent = KBPanel Instance.new("UICorner", KBTitle).CornerRadius = UDim.new(0, 10) Instance.new("UIGradient", KBTitle).Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(60, 120, 220)), ColorSequenceKeypoint.new(1, Color3.fromRGB(100, 50, 200)), }) local KBTitleLabel = Instance.new("TextLabel") KBTitleLabel.BackgroundTransparency = 1 KBTitleLabel.Size = UDim2.new(1, -44, 1, 0) KBTitleLabel.Position = UDim2.new(0, 12, 0, 0) KBTitleLabel.Font = Enum.Font.GothamBold KBTitleLabel.TextSize = 13 KBTitleLabel.Text = "⌨ KEYBINDS" KBTitleLabel.TextColor3 = Color3.new(1,1,1) KBTitleLabel.TextXAlignment = Enum.TextXAlignment.Left KBTitleLabel.ZIndex = 41 KBTitleLabel.Parent = KBTitle -- Close KB panel button local KBClose = Instance.new("TextButton") KBClose.BackgroundColor3 = Color3.fromRGB(180, 50, 50) KBClose.BorderSizePixel = 0 KBClose.AnchorPoint = Vector2.new(1, 0.5) KBClose.Position = UDim2.new(1, -6, 0.5, 0) KBClose.Size = UDim2.new(0, 28, 0, 22) KBClose.Font = Enum.Font.GothamBold KBClose.TextSize = 12 KBClose.Text = "✕" KBClose.TextColor3 = Color3.new(1,1,1) KBClose.ZIndex = 42 KBClose.Parent = KBTitle Instance.new("UICorner", KBClose).CornerRadius = UDim.new(0, 6) KBClose.MouseButton1Click:Connect(function() KBPanel.Visible = false listeningFor = nil end) KBOpenBtn.MouseButton1Click:Connect(function() KBPanel.Visible = not KBPanel.Visible listeningFor = nil end) -- ══════════════════════════════════════════ -- KEYBIND ROW BUILDER -- ══════════════════════════════════════════ local kbRows = {} -- keyed by slot name local function makeKBRow(yPos, slotName, displayName, color) local row = Instance.new("Frame") row.BackgroundColor3 = Color3.fromRGB(0,0,0) row.BackgroundTransparency = 0.45 row.BorderSizePixel = 0 row.Position = UDim2.new(0, 8, 0, yPos) row.Size = UDim2.new(1, -16, 0, 48) row.ZIndex = 40 row.Parent = KBPanel Instance.new("UICorner", row).CornerRadius = UDim.new(0, 8) local stripe = Instance.new("Frame") stripe.BackgroundColor3 = color stripe.BorderSizePixel = 0 stripe.Size = UDim2.new(0, 3, 1, -12) stripe.Position = UDim2.new(0, 0, 0, 6) stripe.ZIndex = 41 stripe.Parent = row Instance.new("UICorner", stripe).CornerRadius = UDim.new(0, 4) local nameLabel = Instance.new("TextLabel") nameLabel.BackgroundTransparency = 1 nameLabel.Position = UDim2.new(0, 12, 0, 5) nameLabel.Size = UDim2.new(0.55, 0, 0, 16) nameLabel.Font = Enum.Font.GothamBold nameLabel.TextSize = 11 nameLabel.Text = displayName nameLabel.TextColor3 = Color3.fromRGB(210, 210, 210) nameLabel.TextXAlignment = Enum.TextXAlignment.Left nameLabel.ZIndex = 41 nameLabel.Parent = row local currentLabel = Instance.new("TextLabel") currentLabel.BackgroundTransparency = 1 currentLabel.Position = UDim2.new(0, 12, 0, 24) currentLabel.Size = UDim2.new(0.55, 0, 0, 14) currentLabel.Font = Enum.Font.Gotham currentLabel.TextSize = 10 currentLabel.Text = "[" .. keybinds[slotName].Name .. "]" currentLabel.TextColor3 = color currentLabel.TextXAlignment = Enum.TextXAlignment.Left currentLabel.ZIndex = 41 currentLabel.Parent = row local rebindBtn = Instance.new("TextButton") rebindBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 60) rebindBtn.BorderSizePixel = 0 rebindBtn.AnchorPoint = Vector2.new(1, 0.5) rebindBtn.Position = UDim2.new(1, -8, 0.5, 0) rebindBtn.Size = UDim2.new(0, 70, 0, 28) rebindBtn.Font = Enum.Font.GothamBold rebindBtn.TextSize = 10 rebindBtn.Text = "REBIND" rebindBtn.TextColor3 = Color3.fromRGB(200, 200, 200) rebindBtn.ZIndex = 42 rebindBtn.Parent = row Instance.new("UICorner", rebindBtn).CornerRadius = UDim.new(0, 6) kbRows[slotName] = { currentLabel = currentLabel, rebindBtn = rebindBtn, color = color, } rebindBtn.MouseButton1Click:Connect(function() -- Cancel any previous listen if listeningFor and listeningFor ~= slotName then local prev = kbRows[listeningFor] if prev then prev.rebindBtn.Text = "REBIND" TweenService:Create(prev.rebindBtn, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(50, 50, 60) }):Play() end end if listeningFor == slotName then -- Cancel this one listeningFor = nil rebindBtn.Text = "REBIND" TweenService:Create(rebindBtn, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(50, 50, 60) }):Play() else listeningFor = slotName rebindBtn.Text = "PRESS KEY" TweenService:Create(rebindBtn, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(160, 80, 20) }):Play() end end) return currentLabel end -- Build 3 rows makeKBRow(42, "fly", "✈ Fly Toggle", Color3.fromRGB(80, 140, 255)) makeKBRow(98, "noclip", "◈ Noclip Toggle", Color3.fromRGB(60, 210, 130)) makeKBRow(154, "gui", "☰ Hide / Show GUI", Color3.fromRGB(200, 120, 255)) -- Hint at bottom of KB panel local KBHint = Instance.new("TextLabel") KBHint.BackgroundTransparency = 1 KBHint.Position = UDim2.new(0, 0, 1, -20) KBHint.Size = UDim2.new(1, 0, 0, 16) KBHint.Font = Enum.Font.Gotham KBHint.TextSize = 10 KBHint.Text = "Click REBIND then press any key" KBHint.TextColor3 = Color3.fromRGB(80, 80, 100) KBHint.ZIndex = 40 KBHint.Parent = KBPanel -- ══════════════════════════════════════════ -- GLOBAL KEY LISTENER -- ══════════════════════════════════════════ UserInputService.InputBegan:Connect(function(input, gameProcessed) if input.UserInputType ~= Enum.UserInputType.Keyboard then return end -- If we are waiting for a rebind if listeningFor then local slot = listeningFor local row = kbRows[slot] keybinds[slot] = input.KeyCode row.currentLabel.Text = "[" .. input.KeyCode.Name .. "]" row.rebindBtn.Text = "REBIND" TweenService:Create(row.rebindBtn, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(50, 50, 60) }):Play() listeningFor = nil return -- don't also trigger the action end if gameProcessed then return end if input.KeyCode == keybinds.fly then FlyBtn:InvokeUserCallback("MouseButton1Click") -- call the fly toggle directly FlyBtn.MouseButton1Click:Fire() elseif input.KeyCode == keybinds.noclip then NoclipBtn.MouseButton1Click:Fire() elseif input.KeyCode == keybinds.gui then Main.Visible = not Main.Visible end end) -- ══════════════════════════════════════════ -- TOGGLE STYLE HELPER -- ══════════════════════════════════════════ local function setToggle(btn, stripe, status, on, color) if on then TweenService:Create(btn, TweenInfo.new(0.2), { BackgroundColor3 = color, TextColor3 = Color3.new(1,1,1) }):Play() btn.Text = "ON" status.Text = "Active" status.TextColor3 = Color3.fromRGB(80, 210, 110) stripe.BackgroundColor3 = color else TweenService:Create(btn, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(50, 50, 58), TextColor3 = Color3.fromRGB(160,160,160) }):Play() btn.Text = "OFF" status.Text = "Disabled" status.TextColor3 = Color3.fromRGB(160, 70, 70) end end -- ══════════════════════════════════════════ -- FLY LOGIC -- ══════════════════════════════════════════ local flying = false local flyConn = nil local bVel, bGyro local function getSpeed() local v = tonumber(SpeedBox.Text) return v and math.clamp(v, 1, 500) or 80 end local function enableFly() local char = LocalPlayer.Character if not char then return end local root = char:FindFirstChild("HumanoidRootPart") local hum = char:FindFirstChildOfClass("Humanoid") if not root or not hum then return end hum.PlatformStand = true bVel = Instance.new("BodyVelocity") bVel.Velocity = Vector3.zero bVel.MaxForce = Vector3.new(1e5, 1e5, 1e5) bVel.Parent = root bGyro = Instance.new("BodyGyro") bGyro.MaxTorque = Vector3.new(1e5, 1e5, 1e5) bGyro.P = 1e4 bGyro.CFrame = root.CFrame bGyro.Parent = root flyConn = RunService.RenderStepped:Connect(function() if not flying then return end local speed = getSpeed() local cf = Camera.CFrame local dir = Vector3.zero if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir += cf.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir -= cf.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir -= cf.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir += cf.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then dir += Vector3.yAxis end if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then dir -= Vector3.yAxis end if dir.Magnitude > 0 then bVel.Velocity = dir.Unit * speed bGyro.CFrame = CFrame.lookAt(Vector3.zero, dir.Unit) else bVel.Velocity = Vector3.zero end end) end local function disableFly() if flyConn then flyConn:Disconnect(); flyConn = nil end if bVel then bVel:Destroy(); bVel = nil end if bGyro then bGyro:Destroy(); bGyro = nil end local char = LocalPlayer.Character if char then local hum = char:FindFirstChildOfClass("Humanoid") if hum then hum.PlatformStand = false end end end local function toggleFly() flying = not flying if flying then enableFly() else disableFly() end setToggle(FlyBtn, FlyStripe, FlyStatus, flying, Color3.fromRGB(80, 140, 255)) end -- ══════════════════════════════════════════ -- NOCLIP LOGIC -- ══════════════════════════════════════════ local noclipping = false local noclipConn = nil local function enableNoclip() noclipConn = RunService.Stepped:Connect(function() local char = LocalPlayer.Character if not char then return end for _, p in ipairs(char:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end end) end local function disableNoclip() if noclipConn then noclipConn:Disconnect(); noclipConn = nil end local char = LocalPlayer.Character if not char then return end for _, p in ipairs(char:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = true end end end local function toggleNoclip() noclipping = not noclipping if noclipping then enableNoclip() else disableNoclip() end setToggle(NoclipBtn, NoclipStripe, NoclipStatus, noclipping, Color3.fromRGB(60, 210, 130)) end -- ══════════════════════════════════════════ -- BUTTON CONNECTIONS -- ══════════════════════════════════════════ FlyBtn.MouseButton1Click:Connect(toggleFly) NoclipBtn.MouseButton1Click:Connect(toggleNoclip) -- Fix the keybind fire to use the toggle functions directly UserInputService.InputBegan:Connect(function(input, gameProcessed) if input.UserInputType ~= Enum.UserInputType.Keyboard then return end if listeningFor then return end -- handled by first listener if gameProcessed then return end if input.KeyCode == keybinds.fly then toggleFly() elseif input.KeyCode == keybinds.noclip then toggleNoclip() elseif input.KeyCode == keybinds.gui then Main.Visible = not Main.Visible end end) -- ══════════════════════════════════════════ -- RESPAWN HANDLING -- ══════════════════════════════════════════ LocalPlayer.CharacterAdded:Connect(function() if flying then disableFly(); task.wait(0.5); enableFly() end if noclipping then if noclipConn then noclipConn:Disconnect(); noclipConn = nil end task.wait(0.5); enableNoclip() end end)