-- CFrame Fly Script with Noclip - Executor Version -- Keybind: L to toggle flight/noclip -- Fixed speed: 50 -- Wait for game to load repeat task.wait() until game:IsLoaded() local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") local rootPart = character:WaitForChild("HumanoidRootPart") local flying = false local noclipEnabled = false local flySpeed = 50 -- Fixed speed local bodyVelocity = nil local bodyGyro = nil local noclipConnection = nil -- Create simple GUI indicator local screenGui = Instance.new("ScreenGui") screenGui.Name = "FlyScriptGUI" screenGui.Parent = player:FindFirstChild("PlayerGui") or Instance.new("PlayerGui", player) -- Flight status indicator (top left corner) local statusLabel = Instance.new("TextLabel") statusLabel.Size = UDim2.new(0, 200, 0, 30) statusLabel.Position = UDim2.new(0, 10, 0, 10) statusLabel.BackgroundColor3 = Color3.new(0, 0, 0) statusLabel.BackgroundTransparency = 0.3 statusLabel.TextColor3 = Color3.new(1, 1, 1) statusLabel.Text = "Flight: DISABLED | Noclip: OFF" statusLabel.Font = Enum.Font.GothamBold statusLabel.TextSize = 14 statusLabel.BorderSizePixel = 1 statusLabel.BorderColor3 = Color3.new(1, 1, 1) statusLabel.Parent = screenGui -- Noclip function local function enableNoclip() if noclipConnection then noclipConnection:Disconnect() end noclipConnection = game:GetService("RunService").Stepped:Connect(function() if noclipEnabled and character and character.Parent then for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end) end local function disableNoclip() if noclipConnection then noclipConnection:Disconnect() noclipConnection = nil end if character and character.Parent then for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end end end -- Toggle noclip local function toggleNoclip() noclipEnabled = not noclipEnabled if noclipEnabled then enableNoclip() player:Chat("Noclip ENABLED!") else disableNoclip() player:Chat("Noclip DISABLED!") end -- Update status label if flying then statusLabel.Text = "Flight: ENABLED | Noclip: " .. (noclipEnabled and "ON" or "OFF") else statusLabel.Text = "Flight: DISABLED | Noclip: " .. (noclipEnabled and "ON" or "OFF") end end -- Toggle flight function local function toggleFly() flying = not flying if flying then humanoid.PlatformStand = true bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.new(1, 1, 1) * 100000 bodyVelocity.Velocity = Vector3.new(0, 0, 0) bodyVelocity.Parent = rootPart bodyGyro = Instance.new("BodyGyro") bodyGyro.MaxTorque = Vector3.new(1, 1, 1) * 100000 bodyGyro.Parent = rootPart statusLabel.Text = "Flight: ENABLED (Speed: 50) | Noclip: " .. (noclipEnabled and "ON" or "OFF") statusLabel.TextColor3 = Color3.new(0, 1, 0) player:Chat("Flight ENABLED! Speed: 50") -- Auto-enable noclip when flight is enabled if not noclipEnabled then toggleNoclip() end else if bodyVelocity then bodyVelocity:Destroy() end if bodyGyro then bodyGyro:Destroy() end humanoid.PlatformStand = false statusLabel.Text = "Flight: DISABLED | Noclip: " .. (noclipEnabled and "ON" or "OFF") statusLabel.TextColor3 = Color3.new(1, 1, 1) player:Chat("Flight DISABLED!") -- Optional: Uncomment this if you want noclip to disable when flight is off -- if noclipEnabled then -- toggleNoclip() -- end end end -- Movement update local function updateMovement() if not flying or not bodyVelocity then return end local camera = workspace.CurrentCamera local moveDirection = Vector3.new(0, 0, 0) local userInputService = game:GetService("UserInputService") -- WASD controls with camera-relative movement (CFrame based) if userInputService:IsKeyDown(Enum.KeyCode.W) then moveDirection = moveDirection + camera.CFrame.LookVector end if userInputService:IsKeyDown(Enum.KeyCode.S) then moveDirection = moveDirection - camera.CFrame.LookVector end if userInputService:IsKeyDown(Enum.KeyCode.A) then moveDirection = moveDirection - camera.CFrame.RightVector end if userInputService:IsKeyDown(Enum.KeyCode.D) then moveDirection = moveDirection + camera.CFrame.RightVector end if userInputService:IsKeyDown(Enum.KeyCode.Space) then moveDirection = moveDirection + Vector3.new(0, 1, 0) end if userInputService:IsKeyDown(Enum.KeyCode.LeftControl) then moveDirection = moveDirection - Vector3.new(0, 1, 0) end -- Apply velocity if moveDirection.Magnitude > 0 then moveDirection = moveDirection.Unit bodyVelocity.Velocity = moveDirection * flySpeed else bodyVelocity.Velocity = Vector3.new(0, 0, 0) end -- Face camera direction (CFrame orientation) bodyGyro.CFrame = CFrame.new(rootPart.Position, rootPart.Position + camera.CFrame.LookVector) end -- Keybind detection (L key for flight, N key for noclip) local userInputService = game:GetService("UserInputService") userInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end -- Toggle flight with L key if input.KeyCode == Enum.KeyCode.L then toggleFly() end -- Toggle noclip with N key (independent toggle) if input.KeyCode == Enum.KeyCode.N then toggleNoclip() end end) -- Main loop local runService = game:GetService("RunService") runService.RenderStepped:Connect(function() updateMovement() end) -- Handle character respawn player.CharacterAdded:Connect(function(newCharacter) character = newCharacter humanoid = character:WaitForChild("Humanoid") rootPart = character:WaitForChild("HumanoidRootPart") -- Reset noclip state if noclipEnabled then disableNoclip() noclipEnabled = false end if flying then -- Re-enable flight after respawn task.wait(0.5) flying = false toggleFly() end end) -- Cleanup on player leave player:GetPropertyChangedSignal("Parent"):Connect(function() if not player.Parent then if noclipConnection then noclipConnection:Disconnect() end end end) player:Chat("CFrame Fly Script with Noclip Loaded!") player:Chat("Press L to toggle flight | Press N to toggle noclip") player:Chat("Speed: 50 | Controls: WASD to move, Space to go up, Ctrl to go down")