
KeylessUniversal

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local ContextActionService = game:GetService("ContextActionService")
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera
-- Configuration
local FLY_SPEED = 50
local FLY_BUTTON_NAME = "ToggleFly"
-- State
local isFlying = false
local bodyGyro
local bodyVelocity
-- UI Setup (Creates a button for Mobile/PC)
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "FlyGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = player:WaitForChild("PlayerGui")
local flyButton = Instance.new("TextButton")
flyButton.Name = "FlyButton"
flyButton.Size = UDim2.new(0, 100, 0, 50)
flyButton.Position = UDim2.new(0.8, -10, 0.7, -10) -- Bottom right, above jump button
flyButton.AnchorPoint = Vector2.new(1, 1)
flyButton.BackgroundColor3 = Color3.fromRGB(0, 170, 255)
flyButton.TextColor3 = Color3.new(1, 1, 1)
flyButton.TextScaled = true
flyButton.Text = "FLY: OFF"
flyButton.Font = Enum.Font.GothamBold
flyButton.Parent = screenGui
-- Rounds the corners for a better look
local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = UDim.new(0, 10)
uiCorner.Parent = flyButton
-- Helper Functions
local function getCharacter()
return player.Character or player.CharacterAdded:Wait()
end
local function getRoot(character)
return character:WaitForChild("HumanoidRootPart")
end
local function getHumanoid(character)
return character:WaitForChild("Humanoid")
end
-- Toggle Flight Function
local function toggleFlight()
isFlying = not isFlying
local character = getCharacter()
local root = getRoot(character)
local humanoid = getHumanoid(character)
if isFlying then
flyButton.Text = "FLY: ON"
flyButton.BackgroundColor3 = Color3.fromRGB(0, 255, 100)
-- Disable default physics roughly
humanoid.PlatformStand = true
-- Create Flight Forces
bodyGyro = Instance.new("BodyGyro")
bodyGyro.P = 9e4
bodyGyro.MaxTorque = Vector3.new(9e9, 9e9, 9e9)
bodyGyro.CFrame = root.CFrame
bodyGyro.Parent = root
bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.Velocity = Vector3.new(0, 0, 0)
bodyVelocity.MaxForce = Vector3.new(9e9, 9e9, 9e9)
bodyVelocity.Parent = root
else
flyButton.Text = "FLY: OFF"
flyButton.BackgroundColor3 = Color3.fromRGB(0, 170, 255)
humanoid.PlatformStand = false
-- Destroy forces
if bodyGyro then bodyGyro:Destroy() end
if bodyVelocity then bodyVelocity:Destroy() end
end
end
-- Flight Physics Loop
RunService.RenderStepped:Connect(function()
if isFlying then
local character = getCharacter()
if character and bodyGyro and bodyVelocity then
local root = getRoot(character)
local humanoid = getHumanoid(character)
-- Rotate character to look where the camera looks
bodyGyro.CFrame = camera.CFrame
-- Calculate velocity based on MoveDirection (Works for WASD + Mobile Stick)
-- We map the MoveDirection (relative to character) to the Camera's CFrame
local moveDir = humanoid.MoveDirection
-- If the player is giving input (moveDir is not 0,0,0)
if moveDir.Magnitude > 0 then
-- We multiply the Camera's LookVector by speed
-- However, Humanoid.MoveDirection is flattened on the Y axis usually.
-- To fly UP/DOWN based on Camera pitch, we use the Camera's vectors directly.
local travelVector = (camera.CFrame.RightVector * ((moveDir.X * moveDir.X > 0.01 and (moveDir.X > 0 and 1 or -1)) or 0))
+ (camera.CFrame.LookVector * ((moveDir.Z * moveDir.Z > 0.01 and (moveDir.Z < 0 and 1 or -1)) or 0))
-- Simplification: Just allow the camera look vector to dictate forward movement
-- The Humanoid.MoveDirection is already relative to the camera in 'ShiftLock' or First Person,
-- but in standard mode, we want "Forward" input to mean "Go where camera looks".
bodyVelocity.Velocity = camera.CFrame.LookVector * (moveDir.Magnitude * FLY_SPEED)
else
bodyVelocity.Velocity = Vector3.new(0, 0, 0)
end
end
end
end)
-- Connect Input
flyButton.MouseButton1Click:Connect(toggleFlight)
-- Optional: Keyboard Shortcut (F key)
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.F then
toggleFlight()
end
end)
-- Cleanup on respawn to prevent errors
player.CharacterRemoving:Connect(function()
isFlying = false
flyButton.Text = "FLY: OFF"
flyButton.BackgroundColor3 = Color3.fromRGB(0, 170, 255)
end)
![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)


"Gemini pro" there is no such thing as a real programmer anymore AI killed it 💔😭
* * ai
Rat man isn't happy
L ai