
KeylessUniversal

--==================================================
-- JETT'S UNIVERSAL SCRIPT
-- Mobile Fly + Noclip + Speed + Shift Lock
--==================================================
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
--==================================================
-- SETTINGS
--==================================================
local flyEnabled = false
local noclipEnabled = false
local speedEnabled = false
local shiftLockEnabled = false
local menuClear = false
local FLY_SPEED = 60
local NORMAL_SPEED = 16
local FAST_SPEED = 50
local colors = {
Color3.fromRGB(35,35,40),
Color3.fromRGB(35,80,150),
Color3.fromRGB(100,45,150),
Color3.fromRGB(30,130,90),
Color3.fromRGB(160,70,40),
Color3.fromRGB(150,40,90)
}
local colorIndex = 1
--==================================================
-- CHARACTER
--==================================================
local character
local humanoid
local root
local function getCharacter()
character = player.Character or player.CharacterAdded:Wait()
humanoid = character:WaitForChild("Humanoid")
root = character:WaitForChild("HumanoidRootPart")
return character, humanoid, root
end
getCharacter()
--==================================================
-- GUI
--==================================================
local gui = Instance.new("ScreenGui")
gui.Name = "JettsUniversalScript"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.Parent = player:WaitForChild("PlayerGui")
local main = Instance.new("Frame")
main.Name = "Main"
main.Size = UDim2.fromOffset(300,380)
main.Position = UDim2.new(0.5,-150,0.5,-190)
main.BackgroundColor3 = colors[colorIndex]
main.BackgroundTransparency = 0.08
main.BorderSizePixel = 0
main.Active = true
main.Parent = gui
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0,14)
corner.Parent = main
local outline = Instance.new("UIStroke")
outline.Thickness = 2
outline.Transparency = 0.2
outline.Parent = main
--==================================================
-- TITLE
--==================================================
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1,-60,0,45)
title.Position = UDim2.fromOffset(15,5)
title.BackgroundTransparency = 1
title.Text = "Jett's Universal Script"
title.TextColor3 = Color3.new(1,1,1)
title.TextSize = 20
title.Font = Enum.Font.GothamBold
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = main
--==================================================
-- CLOSE BUTTON
--==================================================
local closeButton = Instance.new("TextButton")
closeButton.Size = UDim2.fromOffset(35,35)
closeButton.Position = UDim2.new(1,-43,0,8)
closeButton.BackgroundColor3 = Color3.fromRGB(200,50,50)
closeButton.Text = "X"
closeButton.TextColor3 = Color3.new(1,1,1)
closeButton.TextSize = 18
closeButton.Font = Enum.Font.GothamBold
closeButton.Parent = main
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0,10)
closeCorner.Parent = closeButton
--==================================================
-- REOPEN BUTTON
--==================================================
local reopenButton = Instance.new("TextButton")
reopenButton.Size = UDim2.fromOffset(55,55)
reopenButton.Position = UDim2.fromOffset(20,200)
reopenButton.BackgroundColor3 = colors[colorIndex]
reopenButton.Text = "J"
reopenButton.TextColor3 = Color3.new(1,1,1)
reopenButton.TextSize = 24
reopenButton.Font = Enum.Font.GothamBold
reopenButton.Visible = false
reopenButton.Parent = gui
local reopenCorner = Instance.new("UICorner")
reopenCorner.CornerRadius = UDim.new(1,0)
reopenCorner.Parent = reopenButton
--==================================================
-- BUTTON FUNCTION
--==================================================
local buttons = {}
local function createButton(text, y)
local button = Instance.new("TextButton")
button.Size = UDim2.new(1,-30,0,42)
button.Position = UDim2.fromOffset(15,y)
button.BackgroundColor3 =
Color3.fromRGB(45,45,50)
button.BorderSizePixel = 0
button.Text = text
button.TextColor3 = Color3.new(1,1,1)
button.TextSize = 16
button.Font = Enum.Font.GothamSemibold
button.AutoButtonColor = true
button.Parent = main
local c = Instance.new("UICorner")
c.CornerRadius = UDim.new(0,10)
c.Parent = button
table.insert(buttons,button)
return button
end
local flyButton =
createButton("✈️ Fly: OFF",55)
local noclipButton =
createButton("👻 Noclip: OFF",105)
local speedButton =
createButton("⚡ Speed: OFF",155)
local shiftLockButton =
createButton("🔒 Shift Lock: OFF",205)
local colorButton =
createButton("🎨 Change Color",255)
local clearButton =
createButton("🔲 Clear Menu",305)
--==================================================
-- MOBILE DRAGGING
--==================================================
local dragging = false
local dragInput
local dragStart
local startPosition
main.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPosition = main.Position
dragInput = input
end
end)
main.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if not dragging then
return
end
if input.UserInputType ~= Enum.UserInputType.MouseMovement
and input.UserInputType ~= Enum.UserInputType.Touch then
return
end
local delta =
input.Position - dragStart
main.Position = UDim2.new(
startPosition.X.Scale,
startPosition.X.Offset + delta.X,
startPosition.Y.Scale,
startPosition.Y.Offset + delta.Y
)
end)
--==================================================
-- SHIFT LOCK
--==================================================
local function setShiftLock(enabled)
shiftLockEnabled = enabled
if shiftLockEnabled then
shiftLockButton.Text =
"🔒 Shift Lock: ON"
if humanoid then
humanoid.AutoRotate = false
humanoid.CameraOffset =
Vector3.new(1.75,0,0)
end
else
shiftLockButton.Text =
"🔓 Shift Lock: OFF"
if humanoid then
humanoid.CameraOffset =
Vector3.zero
if not flyEnabled then
humanoid.AutoRotate = true
end
end
end
end
shiftLockButton.Activated:Connect(function()
setShiftLock(not shiftLockEnabled)
end)
--==================================================
-- GET CAMERA DIRECTION
--==================================================
local function getCameraDirection()
local camera =
workspace.CurrentCamera
if not camera then
return Vector3.zero, Vector3.zero
end
local look =
camera.CFrame.LookVector
local right =
camera.CFrame.RightVector
local flatLook =
Vector3.new(
look.X,
0,
look.Z
)
local flatRight =
Vector3.new(
right.X,
0,
right.Z
)
if flatLook.Magnitude > 0 then
flatLook = flatLook.Unit
end
if flatRight.Magnitude > 0 then
flatRight = flatRight.Unit
end
return look, flatLook, flatRight
end
--==================================================
-- FLY
--==================================================
local flyConnection
local savedCollision = {}
local savedAnchored = false
local savedWalkSpeed = NORMAL_SPEED
local savedAutoRotate = true
local function startFly()
getCharacter()
if not humanoid or not root then
return
end
-- Save settings
savedWalkSpeed = humanoid.WalkSpeed
savedAutoRotate = humanoid.AutoRotate
savedAnchored = root.Anchored
-- IMPORTANT:
-- Keep WalkSpeed above 0 so the mobile joystick
-- continues giving us Humanoid.MoveDirection.
humanoid.WalkSpeed =
speedEnabled and FAST_SPEED or NORMAL_SPEED
humanoid.AutoRotate = false
-- Disable collisions
savedCollision = {}
for _,part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
savedCollision[part] =
part.CanCollide
part.CanCollide = false
end
end
-- Anchor root so stairs/gravity cannot mess up flight
root.Anchored = true
if flyConnection then
flyConnection:Disconnect()
end
flyConnection =
RunService.RenderStepped:Connect(function(dt)
if not flyEnabled then
return
end
if not character
or not character.Parent
or not humanoid
or not root then
return
end
local camera =
workspace.CurrentCamera
if not camera then
return
end
-- Mobile joystick direction
local move =
humanoid.MoveDirection
local look =
camera.CFrame.LookVector
local right =
camera.CFrame.RightVector
local flatLook =
Vector3.new(
look.X,
0,
look.Z
)
local flatRight =
Vector3.new(
right.X,
0,
right.Z
)
if flatLook.Magnitude > 0 then
flatLook = flatLook.Unit
end
if flatRight.Magnitude > 0 then
flatRight = flatRight.Unit
end
-- Convert joystick movement into
-- camera-relative movement
local forwardAmount =
move:Dot(flatLook)
local rightAmount =
move:Dot(flatRight)
local direction =
flatLook * forwardAmount
+
flatRight * rightAmount
-- Up/down comes from camera angle
if math.abs(forwardAmount) > 0.01 then
direction += Vector3.new(
0,
look.Y * forwardAmount,
0
)
end
-- Move
if direction.Magnitude > 0.01 then
direction =
direction.Unit
local newPosition =
root.Position
+
direction * FLY_SPEED * dt
--==================================================
-- FIXED ROTATION
--==================================================
-- ALWAYS face the direction of the camera
-- while flying.
local facing =
Vector3.new(
look.X,
0,
look.Z
)
if facing.Magnitude > 0.01 then
facing =
facing.Unit
root.CFrame =
CFrame.lookAt(
newPosition,
newPosition + facing
)
else
root.CFrame =
CFrame.new(newPosition)
end
else
-- Even when standing still,
-- keep looking wherever the camera looks.
local facing =
Vector3.new(
look.X,
0,
look.Z
)
if facing.Magnitude > 0.01 then
facing =
facing.Unit
root.CFrame =
CFrame.lookAt(
root.Position,
root.Position + facing
)
end
end
-- Completely stop physics
root.AssemblyLinearVelocity =
Vector3.zero
root.AssemblyAngularVelocity =
Vector3.zero
-- Keep all body parts non-collidable
for _,part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end)
end
local function stopFly()
if flyConnection then
flyConnection:Disconnect()
flyConnection = nil
end
if not character
or not character.Parent then
return
end
-- Restore collision
for part,oldCollision in pairs(savedCollision) do
if part and part.Parent then
if noclipEnabled then
part.CanCollide = false
else
part.CanCollide =
oldCollision
end
end
end
savedCollision = {}
if root then
root.Anchored =
savedAnchored
root.AssemblyLinearVelocity =
Vector3.zero
root.AssemblyAngularVelocity =
Vector3.zero
end
if humanoid then
if speedEnabled then
humanoid.WalkSpeed =
FAST_SPEED
else
humanoid.WalkSpeed =
NORMAL_SPEED
end
if shiftLockEnabled then
humanoid.AutoRotate = false
else
humanoid.AutoRotate =
savedAutoRotate
end
end
end
flyButton.Activated:Connect(function()
flyEnabled =
not flyEnabled
if flyEnabled then
flyButton.Text =
"✈️ Fly: ON"
startFly()
else
flyButton.Text =
"✈️ Fly: OFF"
stopFly()
end
end)
--==================================================
-- NOCLIP
--==================================================
noclipButton.Activated:Connect(function()
noclipEnabled =
not noclipEnabled
if noclipEnabled then
noclipButton.Text =
"👻 Noclip: ON"
else
noclipButton.Text =
"👻 Noclip: OFF"
end
if not flyEnabled then
getCharacter()
for _,part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide =
not noclipEnabled
end
end
end
end)
RunService.Stepped:Connect(function()
if flyEnabled then
return
end
if not character then
return
end
if noclipEnabled then
for _,part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end
end)
--==================================================
-- SPEED
--==================================================
speedButton.Activated:Connect(function()
speedEnabled =
not speedEnabled
getCharacter()
if speedEnabled then
speedButton.Text =
"⚡ Speed: ON"
if not flyEnabled then
humanoid.WalkSpeed =
FAST_SPEED
end
else
speedButton.Text =
"⚡ Speed: OFF"
if not flyEnabled then
humanoid.WalkSpeed =
NORMAL_SPEED
end
end
end)
--==================================================
-- COLOR
--==================================================
colorButton.Activated:Connect(function()
colorIndex += 1
if colorIndex > #colors then
colorIndex = 1
end
main.BackgroundColor3 =
colors[colorIndex]
reopenButton.BackgroundColor3 =
colors[colorIndex]
end)
--==================================================
-- CLEAR MENU
--==================================================
clearButton.Activated:Connect(function()
menuClear =
not menuClear
if menuClear then
main.BackgroundTransparency =
0.65
clearButton.Text =
"🔲 Solid Menu"
for _,button in ipairs(buttons) do
button.BackgroundTransparency =
0.35
end
else
main.BackgroundTransparency =
0.08
clearButton.Text =
"🔲 Clear Menu"
for _,button in ipairs(buttons) do
button.BackgroundTransparency =
0
end
end
end)
--==================================================
-- CLOSE / REOPEN
--==================================================
closeButton.Activated:Connect(function()
main.Visible = false
reopenButton.Visible = true
end)
reopenButton.Activated:Connect(function()
main.Visible = true
reopenButton.Visible = false
end)
--==================================================
-- CHARACTER RESPAWN
--==================================================
player.CharacterAdded:Connect(function(newCharacter)
character = newCharacter
humanoid =
newCharacter:WaitForChild("Humanoid")
root =
newCharacter:WaitForChild("HumanoidRootPart")
task.wait(0.5)
-- Restore speed
if speedEnabled then
humanoid.WalkSpeed =
FAST_SPEED
else
humanoid.WalkSpeed =
NORMAL_SPEED
end
-- Restore Shift Lock
if shiftLockEnabled then
humanoid.AutoRotate = false
humanoid.CameraOffset =
Vector3.new(1.75,0,0)
else
humanoid.AutoRotate = true
humanoid.CameraOffset =
Vector3.zero
end
-- Restore fly
if flyEnabled then
task.wait(0.2)
startFly()
end
end)
--==================================================
-- SHIFT LOCK ROTATION WHEN NOT FLYING
--==================================================
RunService.RenderStepped:Connect(function()
if not shiftLockEnabled then
return
end
if flyEnabled then
return
end
if not root or not humanoid then
return
end
local camera =
workspace.CurrentCamera
if not camera then
return
end
local look =
camera.CFrame.LookVector
local flatLook =
Vector3.new(
look.X,
0,
look.Z
)
if flatLook.Magnitude > 0.01 then
flatLook =
flatLook.Unit
root.CFrame =
CFrame.lookAt(
root.Position,
root.Position + flatLook
)
end
end)
![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)


--================================================== -- JETT'S UNIVERSAL SCRIPT -- Mobile Fly + Noclip + Speed + Shift Lock --================================================== you already know its over 💔