♥
38
likes
This script comes with adjustable fly speed and walk speed features, allowing you to customize movement based on your gameplay style. It also works smoothly with executors like Xeno and Solara.
🌟 Features
Fly Speed
Walk Speed
📋 Script Code
local player = game.Players.LocalPlayer
local char, hrp, humanoid
local flying = false
local speed = 50
local walkSpeed = 16
local bv, bg
-- Character setup
local function setupCharacter(character)
char = character
hrp = char:WaitForChild("HumanoidRootPart")
humanoid = char:WaitForChild("Humanoid")
humanoid.WalkSpeed = walkSpeed
flying = false
if bv then bv:Destroy() bv = nil end
if bg then bg:Destroy() bg = nil end
end
if player.Character then
setupCharacter(player.Character)
end
player.CharacterAdded:Connect(setupCharacter)
local uis = game:GetService("UserInputService")
local run = game:GetService("RunService")
local CAS = game:GetService("ContextActionService")
-- UI
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "keyth"
screenGui.ResetOnSpawn = false
screenGui.Parent = player:WaitForChild("PlayerGui")
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 260, 0, 260)
frame.Position = UDim2.new(0, 10, 0, 10)
frame.BackgroundColor3 = Color3.fromRGB(20,20,20)
frame.BorderSizePixel = 0
frame.Parent = screenGui
Instance.new("UICorner", frame).CornerRadius = UDim.new(0,10)
-- Top bar
local topBar = Instance.new("Frame")
topBar.Size = UDim2.new(1,0,0,30)
topBar.BackgroundColor3 = Color3.fromRGB(30,30,30)
topBar.Parent = frame
Instance.new("UICorner", topBar).CornerRadius = UDim.new(0,10)
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1,0,1,0)
title.BackgroundTransparency = 1
title.Text = "keyth"
title.Font = Enum.Font.GothamBold
title.TextSize = 18
title.Parent = topBar
-- Rainbow title
task.spawn(function()
while true do
for i = 0,1,0.01 do
title.TextColor3 = Color3.fromHSV(i,1,1)
task.wait(0.05)
end
end
end)
-- Tabs bar
local tabBar = Instance.new("Frame")
tabBar.Size = UDim2.new(1,0,0,30)
tabBar.Position = UDim2.new(0,0,0,30)
tabBar.BackgroundTransparency = 1
tabBar.Parent = frame
-- Container
local container = Instance.new("Frame")
container.Size = UDim2.new(1,0,1,-60)
container.Position = UDim2.new(0,0,0,60)
container.BackgroundTransparency = 1
container.Parent = frame
-- Style
local function style(obj)
obj.BackgroundColor3 = Color3.fromRGB(35,35,35)
obj.TextColor3 = Color3.new(1,1,1)
obj.BorderSizePixel = 0
obj.TextSize = 14
obj.Font = Enum.Font.Gotham
Instance.new("UICorner", obj).CornerRadius = UDim.new(0,6)
end
-- Tabs
local flyingTab = Instance.new("TextButton")
flyingTab.Size = UDim2.new(0.5, -5, 1, 0)
flyingTab.Position = UDim2.new(0, 5, 0, 0)
flyingTab.Text = "Flying"
flyingTab.Parent = tabBar
style(flyingTab)
local walkTab = Instance.new("TextButton")
walkTab.Size = UDim2.new(0.5, -5, 1, 0)
walkTab.Position = UDim2.new(0.5, 0, 0, 0)
walkTab.Text = "WalkSpeed"
walkTab.Parent = tabBar
style(walkTab)
-- Pages
local flyingPage = Instance.new("Frame")
flyingPage.Size = UDim2.new(1,0,1,0)
flyingPage.BackgroundTransparency = 1
flyingPage.Parent = container
local walkPage = Instance.new("Frame")
walkPage.Size = UDim2.new(1,0,1,0)
walkPage.BackgroundTransparency = 1
walkPage.Visible = false
walkPage.Parent = container
-- Switching
flyingTab.MouseButton1Click:Connect(function()
flyingPage.Visible = true
walkPage.Visible = false
end)
walkTab.MouseButton1Click:Connect(function()
flyingPage.Visible = false
walkPage.Visible = true
end)
-- ===== FLYING =====
local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(1,-20,0,35)
toggleBtn.Position = UDim2.new(0,10,0,35)
toggleBtn.Parent = flyingPage
style(toggleBtn)
local function updateFlyUI()
if flying then
toggleBtn.Text = "Fly: ON (F)"
toggleBtn.BackgroundColor3 = Color3.fromRGB(40,120,40)
else
toggleBtn.Text = "Fly: OFF (F)"
toggleBtn.BackgroundColor3 = Color3.fromRGB(35,35,35)
end
end
local function toggleFly()
flying = not flying
if flying and hrp then
bv = Instance.new("BodyVelocity")
bv.MaxForce = Vector3.new(1e5,1e5,1e5)
bv.Parent = hrp
bg = Instance.new("BodyGyro")
bg.MaxTorque = Vector3.new(1e5,1e5,1e5)
bg.CFrame = hrp.CFrame
bg.Parent = hrp
else
if bv then bv:Destroy() bv = nil end
if bg then bg:Destroy() bg = nil end
end
updateFlyUI()
end
toggleBtn.MouseButton1Click:Connect(toggleFly)
uis.InputBegan:Connect(function(input, gp)
if gp then return end
if input.KeyCode == Enum.KeyCode.F then
toggleFly()
end
end)
-- Controller toggle (A / Cross)
CAS:BindAction("ToggleFlyController", function(_, state)
if state == Enum.UserInputState.Begin then
toggleFly()
end
end, false, Enum.KeyCode.ButtonA)
-- Fly Speed UI
local speedLabel = Instance.new("TextLabel")
speedLabel.Size = UDim2.new(1, -20, 0, 20)
speedLabel.Position = UDim2.new(0, 10, 0, 75)
speedLabel.BackgroundTransparency = 1
speedLabel.Text = "Fly Speed"
speedLabel.TextColor3 = Color3.new(1,1,1)
speedLabel.Parent = flyingPage
local speedFrame = Instance.new("Frame")
speedFrame.Size = UDim2.new(1,-20,0,30)
speedFrame.Position = UDim2.new(0,10,0,95)
speedFrame.BackgroundTransparency = 1
speedFrame.Parent = flyingPage
local minusBtn = Instance.new("TextButton")
minusBtn.Size = UDim2.new(0.3,0,1,0)
minusBtn.Text = "-"
minusBtn.Parent = speedFrame
style(minusBtn)
local speedDisplay = Instance.new("TextLabel")
speedDisplay.Size = UDim2.new(0.4,0,1,0)
speedDisplay.Position = UDim2.new(0.3,0,0,0)
speedDisplay.BackgroundColor3 = Color3.fromRGB(25,25,25)
speedDisplay.TextColor3 = Color3.new(1,1,1)
speedDisplay.Parent = speedFrame
Instance.new("UICorner", speedDisplay)
local plusBtn = Instance.new("TextButton")
plusBtn.Size = UDim2.new(0.3,0,1,0)
plusBtn.Position = UDim2.new(0.7,0,0,0)
plusBtn.Text = "+"
plusBtn.Parent = speedFrame
style(plusBtn)
local function updateSpeedUI()
speedDisplay.Text = tostring(speed)
end
minusBtn.MouseButton1Click:Connect(function()
speed = math.max(10, speed - 5)
updateSpeedUI()
end)
plusBtn.MouseButton1Click:Connect(function()
speed = math.min(200, speed + 5)
updateSpeedUI()
end)
updateSpeedUI()
-- ===== WALK SPEED =====
local wsFrame = Instance.new("Frame")
wsFrame.Size = UDim2.new(1,-20,0,30)
wsFrame.Position = UDim2.new(0,10,0,40)
wsFrame.BackgroundTransparency = 1
wsFrame.Parent = walkPage
local wsMinus = Instance.new("TextButton")
wsMinus.Size = UDim2.new(0.3,0,1,0)
wsMinus.Text = "-"
wsMinus.Parent = wsFrame
style(wsMinus)
local wsDisplay = Instance.new("TextLabel")
wsDisplay.Size = UDim2.new(0.4,0,1,0)
wsDisplay.Position = UDim2.new(0.3,0,0,0)
wsDisplay.BackgroundColor3 = Color3.fromRGB(25,25,25)
wsDisplay.TextColor3 = Color3.new(1,1,1)
wsDisplay.Parent = wsFrame
Instance.new("UICorner", wsDisplay)
local wsPlus = Instance.new("TextButton")
wsPlus.Size = UDim2.new(0.3,0,1,0)
wsPlus.Position = UDim2.new(0.7,0,0,0)
wsPlus.Text = "+"
wsPlus.Parent = wsFrame
style(wsPlus)
local function updateWS()
wsDisplay.Text = tostring(walkSpeed)
if humanoid then
humanoid.WalkSpeed = walkSpeed
end
end
wsMinus.MouseButton1Click:Connect(function()
walkSpeed = math.max(8, walkSpeed - 2)
updateWS()
end)
wsPlus.MouseButton1Click:Connect(function()
walkSpeed = math.min(200, walkSpeed + 2)
updateWS()
end)
updateWS()
-- ===== FLY MOVEMENT =====
run.RenderStepped:Connect(function()
if flying and bv and bg and hrp then
local cam = workspace.CurrentCamera
bg.CFrame = cam.CFrame
local moveDir = Vector3.zero
-- Keyboard
if uis:IsKeyDown(Enum.KeyCode.W) then moveDir += cam.CFrame.LookVector end
if uis:IsKeyDown(Enum.KeyCode.S) then moveDir -= cam.CFrame.LookVector end
if uis:IsKeyDown(Enum.KeyCode.A) then moveDir -= cam.CFrame.RightVector end
if uis:IsKeyDown(Enum.KeyCode.D) then moveDir += cam.CFrame.RightVector end
-- Controller (FIXED Y AXIS)
local thumbstick = uis:GetGamepadState(Enum.UserInputType.Gamepad1)
for _, input in ipairs(thumbstick) do
if input.KeyCode == Enum.KeyCode.Thumbstick1 then
local x = input.Position.X
local y = input.Position.Y
moveDir += cam.CFrame.LookVector * y
moveDir += cam.CFrame.RightVector * x
end
end
bv.Velocity = moveDir * speed
end
end)
updateFlyUI()
-- ===== DRAGGING =====
local dragging = false
local dragInput, mousePos, framePos
topBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
mousePos = input.Position
framePos = frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
topBar.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
uis.InputChanged:Connect(function(input)
if input == dragInput and dragging then
local delta = input.Position - mousePos
frame.Position = UDim2.new(
framePos.X.Scale,
framePos.X.Offset + delta.X,
framePos.Y.Scale,
framePos.Y.Offset + delta.Y
)
end
end)
