Movement Master script keyless (Fly, Jump, Teleport)
hard road Keyless
Movement Master script keyless (Fly, Jump, Teleport)
👤 alexriderr 👁 2 views ❤️ 0 likes ⏱ Oct 12, 2026
This script is made by **maxovik777** and includes useful features such as **Fly, Infinite Jump, Invisibility, Noclip, Wall Speed, Adjustable Jump Power**, and **Teleport to Other Players**. Press the **[ key** to open the menu and customize your settings. The latest update includes improved mobile support and a fix for games that reduce your movement speed. The script repeatedly applies your selected speed to help maintain faster movement. Mobile functionality may vary, so feedback and feature suggestions are welcome.
✨ Features
Jump controller Flight and air controls Utilities Player teleport Speed controller Fly Noclip Invisibility
📋 Script Code
-- All-in-One Movement Controller with Keybind Manager, Minimize Button & Respawn Preservation
-- Default Menu Toggle Key: [

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local TweenService = game:GetService("TweenService")

local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

-- Configuration Defaults
local DEFAULT_SPEED = 16
local DEFAULT_JUMP = 50
local DEFAULT_FLY_SPEED = 50

-- Feature Hotkeys (Customizable via GUI)
local Keybinds = {
	MenuToggle = Enum.KeyCode.LeftBracket,
	Fly = Enum.KeyCode.F,
	InfJump = Enum.KeyCode.J,
	Invisibility = Enum.KeyCode.V,
	Noclip = Enum.KeyCode.N,
	RandomTP = Enum.KeyCode.R
}

-- Persistent State Variables (Saved across deaths)
local currentWalkSpeed = DEFAULT_SPEED
local currentJumpPower = DEFAULT_JUMP
local flying = false
local isInvisible = false
local noclip = false
local infJump = false
local flySpeed = DEFAULT_FLY_SPEED
local selectedPlatform = nil -- Stores "Mobile" or "PC" once chosen
local currentScaleValue = 1.0 -- Current active scale multiplier

local bodyVelocity = nil
local bodyGyro = nil
local renderConnection = nil
local noclipConnection = nil
local bindingKeyFor = nil -- Tracks which feature is currently listening for a keypress

-- Core GUI Setup
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "MasterMovementMenuGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui

--------------------------------------------------------------------------------
-- PERSISTENT WALKSPEED LOOP (REPEATS EVERY 0.01s)
--------------------------------------------------------------------------------
task.spawn(function()
	while true do
		task.wait(0.01)
		local char = player.Character
		if char then
			local humanoid = char:FindFirstChildOfClass("Humanoid")
			if humanoid then
				humanoid.WalkSpeed = currentWalkSpeed
			end
		end
	end
end)

--------------------------------------------------------------------------------
-- PLATFORM SELECTOR MENU (MOBILE / PC) - ONE-TIME PROMPT
--------------------------------------------------------------------------------
local platformFrame = Instance.new("Frame")
platformFrame.Name = "PlatformFrame"
platformFrame.Size = UDim2.new(0, 240, 0, 180)
platformFrame.Position = UDim2.new(0.5, -120, 0.5, -90)
platformFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
platformFrame.BorderSizePixel = 0
platformFrame.Visible = false
platformFrame.Parent = screenGui

local pfCorner = Instance.new("UICorner")
pfCorner.CornerRadius = UDim.new(0, 10)
pfCorner.Parent = platformFrame

local pfStroke = Instance.new("UIStroke")
pfStroke.Color = Color3.fromRGB(80, 120, 220)
pfStroke.Thickness = 1.5
pfStroke.Parent = platformFrame

local pfTitle = Instance.new("TextLabel")
pfTitle.Size = UDim2.new(1, 0, 0, 40)
pfTitle.Position = UDim2.new(0, 0, 0, 10)
pfTitle.BackgroundTransparency = 1
pfTitle.Text = "Select Platform"
pfTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
pfTitle.TextSize = 16
pfTitle.Font = Enum.Font.GothamBold
pfTitle.Parent = platformFrame

--------------------------------------------------------------------------------
-- MAIN MENU SETUP (BOX SHAPE: 280x280 WITH ANIMATION & CORNER RESIZING)
--------------------------------------------------------------------------------
local BASE_SIZE = 280

local mainFrame = Instance.new("CanvasGroup")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, BASE_SIZE, 0, BASE_SIZE)
mainFrame.Position = UDim2.new(0.5, -140, 0.5, -140)
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
mainFrame.BorderSizePixel = 0
mainFrame.Visible = false
mainFrame.GroupTransparency = 1
mainFrame.ClipsDescendants = false
mainFrame.Parent = screenGui

local uiScale = Instance.new("UIScale")
uiScale.Scale = 1.0
uiScale.Parent = mainFrame

local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = UDim.new(0, 10)
uiCorner.Parent = mainFrame

local uiStroke = Instance.new("UIStroke")
uiStroke.Color = Color3.fromRGB(60, 60, 80)
uiStroke.Thickness = 1.5
uiStroke.Parent = mainFrame

-- Scrollable Container for Menu Content
local scrollFrame = Instance.new("ScrollingFrame")
scrollFrame.Name = "ContentScroll"
scrollFrame.Size = UDim2.new(1, 0, 1, -50)
scrollFrame.Position = UDim2.new(0, 0, 0, 50)
scrollFrame.BackgroundTransparency = 1
scrollFrame.BorderSizePixel = 0
scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 660)
scrollFrame.ScrollBarThickness = 4
scrollFrame.ScrollBarImageColor3 = Color3.fromRGB(80, 120, 220)
scrollFrame.Parent = mainFrame

--------------------------------------------------------------------------------
-- CORNER RESIZE HANDLES (LIKE PAINT IMAGE RESIZING)
--------------------------------------------------------------------------------
local function createCornerHandle(name, posScaleX, posScaleY, anchorX, anchorY)
	local handle = Instance.new("Frame")
	handle.Name = name
	handle.Size = UDim2.new(0, 12, 0, 12)
	handle.Position = UDim2.new(posScaleX, posScaleY == 0 and -6 or 6, posScaleY, posScaleY == 0 and -6 or -6)
	handle.AnchorPoint = Vector2.new(anchorX, anchorY)
	handle.BackgroundColor3 = Color3.fromRGB(80, 120, 220)
	handle.BorderSizePixel = 0
	handle.Parent = mainFrame

	local corner = Instance.new("UICorner")
	corner.CornerRadius = UDim.new(0, 3)
	corner.Parent = handle

	local stroke = Instance.new("UIStroke")
	stroke.Color = Color3.fromRGB(255, 255, 255)
	stroke.Thickness = 1
	stroke.Parent = handle

	return handle
end

local handles = {
	TopLeft = createCornerHandle("HandleTopLeft", 0, 0, 0.5, 0.5),
	TopRight = createCornerHandle("HandleTopRight", 1, 0, 0.5, 0.5),
	BottomLeft = createCornerHandle("HandleBottomLeft", 0, 1, 0.5, 0.5),
	BottomRight = createCornerHandle("HandleBottomRight", 1, 1, 0.5, 0.5),
}

-- Interactive Corner Drag Logic
for _, handle in pairs(handles) do
	local resizing = false
	local startInputPos = Vector2.zero
	local startScale = 1.0

	handle.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
			resizing = true
			startInputPos = Vector2.new(input.Position.X, input.Position.Y)
			startScale = currentScaleValue

			input.Changed:Connect(function()
				if input.UserInputState == Enum.UserInputState.End then
					resizing = false
				end
			end)
		end
	end)

	UserInputService.InputChanged:Connect(function(input)
		if resizing and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
			local currentPos = Vector2.new(input.Position.X, input.Position.Y)
			local delta = currentPos - startInputPos

			local deltaMagnitude = (delta.X + delta.Y) / 2
			if handle.Name == "HandleTopLeft" or handle.Name == "HandleBottomLeft" then
				deltaMagnitude = (-delta.X + delta.Y) / 2
			end

			local newScale = math.clamp(startScale + (deltaMagnitude / 200), 0.5, 2.2)
			currentScaleValue = newScale
			uiScale.Scale = newScale
		end
	end)
end

--------------------------------------------------------------------------------
-- MENU ANIMATION CONTROLLERS
--------------------------------------------------------------------------------
local isAnimating = false

local function openMainMenu()
	if isAnimating or mainFrame.Visible then return end
	isAnimating = true
	mainFrame.Visible = true
	mainFrame.GroupTransparency = 1
	uiScale.Scale = currentScaleValue * 0.85

	local tweenInfo = TweenInfo.new(0.35, Enum.EasingStyle.Back, Enum.EasingDirection.Out)
	local fadeInfo = TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)

	local scaleTween = TweenService:Create(uiScale, tweenInfo, { Scale = currentScaleValue })
	local fadeTween = TweenService:Create(mainFrame, fadeInfo, { GroupTransparency = 0 })

	scaleTween:Play()
	fadeTween:Play()

	fadeTween.Completed:Connect(function()
		isAnimating = false
	end)
end

local function closeMainMenu()
	if isAnimating or not mainFrame.Visible then return end
	isAnimating = true

	local tweenInfo = TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.In)

	local scaleTween = TweenService:Create(uiScale, tweenInfo, { Scale = currentScaleValue * 0.85 })
	local fadeTween = TweenService:Create(mainFrame, tweenInfo, { GroupTransparency = 1 })

	scaleTween:Play()
	fadeTween:Play()

	fadeTween.Completed:Connect(function()
		mainFrame.Visible = false
		isAnimating = false
	end)
end

-- Smart Menu Toggle Handler
local function toggleMenu()
	if not selectedPlatform then
		platformFrame.Visible = not platformFrame.Visible
	else
		if mainFrame.Visible then
			closeMainMenu()
		else
			openMainMenu()
		end
	end
end

local function selectPlatform(platform)
	selectedPlatform = platform
	platformFrame.Visible = false
	openMainMenu()
end

local function createPlatformButton(text, posY)
	local btn = Instance.new("TextButton")
	btn.Size = UDim2.new(0.8, 0, 0, 38)
	btn.Position = UDim2.new(0.1, 0, 0, posY)
	btn.BackgroundColor3 = Color3.fromRGB(45, 45, 60)
	btn.Text = text
	btn.TextColor3 = Color3.fromRGB(255, 255, 255)
	btn.TextSize = 13
	btn.Font = Enum.Font.GothamBold
	btn.BorderSizePixel = 0
	btn.Parent = platformFrame

	local corner = Instance.new("UICorner")
	corner.CornerRadius = UDim.new(0, 6)
	corner.Parent = btn

	btn.MouseButton1Click:Connect(function()
		selectPlatform(text)
	end)
	return btn
end

createPlatformButton("Mobile", 60)
createPlatformButton("PC", 115)

--------------------------------------------------------------------------------
-- STARTUP NOTIFICATION LOGIC (CLICKABLE)
--------------------------------------------------------------------------------
local function showStartupNotification()
	local notifFrame = Instance.new("TextButton")
	notifFrame.Name = "StartupNotif"
	notifFrame.Size = UDim2.new(0, 240, 0, 60)
	notifFrame.Position = UDim2.new(1, 20, 1, -80)
	notifFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
	notifFrame.BorderSizePixel = 0
	notifFrame.Text = ""
	notifFrame.AutoButtonColor = false
	notifFrame.Parent = screenGui

	local notifCorner = Instance.new("UICorner")
	notifCorner.CornerRadius = UDim.new(0, 8)
	notifCorner.Parent = notifFrame

	local notifStroke = Instance.new("UIStroke")
	notifStroke.Color = Color3.fromRGB(80, 120, 220)
	notifStroke.Thickness = 1.5
	notifStroke.Parent = notifFrame

	local notifTitle = Instance.new("TextLabel")
	notifTitle.Size = UDim2.new(1, -20, 0, 22)
	notifTitle.Position = UDim2.new(0, 10, 0, 8)
	notifTitle.BackgroundTransparency = 1
	notifTitle.Text = "Movement Master Loaded"
	notifTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
	notifTitle.TextSize = 13
	notifTitle.Font = Enum.Font.GothamBold
	notifTitle.TextXAlignment = Enum.TextXAlignment.Left
	notifTitle.Parent = notifFrame

	local notifText = Instance.new("TextLabel")
	notifText.Size = UDim2.new(1, -20, 0, 22)
	notifText.Position = UDim2.new(0, 10, 0, 28)
	notifText.BackgroundTransparency = 1
	notifText.Text = "Click here or press [ to open"
	notifText.TextColor3 = Color3.fromRGB(180, 180, 200)
	notifText.TextSize = 11
	notifText.Font = Enum.Font.Gotham
	notifText.TextXAlignment = Enum.TextXAlignment.Left
	notifText.Parent = notifFrame

	notifFrame.MouseButton1Click:Connect(function()
		toggleMenu()
	end)

	local slideIn = TweenService:Create(notifFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
		Position = UDim2.new(1, -260, 1, -80)
	})
	slideIn:Play()

	task.delay(5, function()
		if notifFrame and notifFrame.Parent then
			local slideOut = TweenService:Create(notifFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {
				Position = UDim2.new(1, 20, 1, -80)
			})
			slideOut:Play()
			slideOut.Completed:Connect(function()
				notifFrame:Destroy()
			end)
		end
	end)
end

showStartupNotification()

--------------------------------------------------------------------------------
-- DRAGGABLE MENU LOGIC
--------------------------------------------------------------------------------
local dragging = false
local dragInput, dragStart, startPos

local function updateInput(input)
	local delta = input.Position - dragStart
	mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end

mainFrame.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
		dragging = true
		dragStart = input.Position
		startPos = mainFrame.Position

		input.Changed:Connect(function()
			if input.UserInputState == Enum.UserInputState.End then
				dragging = false
			end
		end)
	end
end)

mainFrame.InputChanged:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
		dragInput = input
	end
end)

UserInputService.InputChanged:Connect(function(input)
	if input == dragInput and dragging then
		updateInput(input)
	end
end)

--------------------------------------------------------------------------------
-- TITLE HEADER & CREDITS & MINIMIZE BUTTON (-)
--------------------------------------------------------------------------------
local creditLabel = Instance.new("TextLabel")
creditLabel.Size = UDim2.new(1, -40, 0, 16)
creditLabel.Position = UDim2.new(0, 12, 0, 6)
creditLabel.BackgroundTransparency = 1
creditLabel.Text = "Made by: Maxovik777"
creditLabel.TextColor3 = Color3.fromRGB(120, 140, 180)
creditLabel.TextSize = 10
creditLabel.Font = Enum.Font.GothamMedium
creditLabel.TextXAlignment = Enum.TextXAlignment.Left
creditLabel.Parent = mainFrame

local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -40, 0, 26)
titleLabel.Position = UDim2.new(0, 12, 0, 18)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Movement Master"
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.TextSize = 15
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Parent = mainFrame

local minimizeBtn = Instance.new("TextButton")
minimizeBtn.Size = UDim2.new(0, 24, 0, 24)
minimizeBtn.Position = UDim2.new(1, -30, 0, 12)
minimizeBtn.BackgroundColor3 = Color3.fromRGB(45, 45, 55)
minimizeBtn.Text = "-"
minimizeBtn.TextColor3 = Color3.fromRGB(220, 220, 240)
minimizeBtn.TextSize = 18
minimizeBtn.Font = Enum.Font.GothamBold
minimizeBtn.BorderSizePixel = 0
minimizeBtn.Parent = mainFrame

local minimizeCorner = Instance.new("UICorner")
minimizeCorner.CornerRadius = UDim.new(0, 6)
minimizeCorner.Parent = minimizeBtn

minimizeBtn.MouseButton1Click:Connect(function()
	closeMainMenu()
end)

--------------------------------------------------------------------------------
-- KEYBIND BINDING SYSTEM
--------------------------------------------------------------------------------
local keybindButtons = {}

local function getKeyName(keyCode)
	if not keyCode or keyCode == Enum.KeyCode.Unknown then
		return "None"
	end
	return keyCode.Name
end

local function createKeybindButton(parentFrame, featureName, posX, posY, sizeX, sizeY)
	local btn = Instance.new("TextButton")
	btn.Size = UDim2.new(0, sizeX, 0, sizeY)
	btn.Position = UDim2.new(posX, 0, 0, posY)
	btn.BackgroundColor3 = Color3.fromRGB(45, 45, 60)
	btn.Text = "[" .. getKeyName(Keybinds[featureName]) .. "]"
	btn.TextColor3 = Color3.fromRGB(180, 200, 255)
	btn.TextSize = 10
	btn.Font = Enum.Font.GothamBold
	btn.BorderSizePixel = 0
	btn.Parent = parentFrame

	local btnCorner = Instance.new("UICorner")
	btnCorner.CornerRadius = UDim.new(0, 5)
	btnCorner.Parent = btn

	keybindButtons[featureName] = btn

	btn.MouseButton1Click:Connect(function()
		if bindingKeyFor == featureName then
			bindingKeyFor = nil
			btn.Text = "[" .. getKeyName(Keybinds[featureName]) .. "]"
			btn.BackgroundColor3 = Color3.fromRGB(45, 45, 60)
		else
			bindingKeyFor = featureName
			btn.Text = "[...]"
			btn.BackgroundColor3 = Color3.fromRGB(100, 100, 160)
		end
	end)

	return btn
end

--------------------------------------------------------------------------------
-- SECTION 1: WALKSPEED
--------------------------------------------------------------------------------
local speedHeader = Instance.new("TextLabel")
speedHeader.Size = UDim2.new(0.85, 0, 0, 20)
speedHeader.Position = UDim2.new(0.075, 0, 0, 5)
speedHeader.BackgroundTransparency = 1
speedHeader.Text = "WALKSPEED"
speedHeader.TextColor3 = Color3.fromRGB(150, 150, 170)
speedHeader.TextSize = 11
speedHeader.Font = Enum.Font.GothamBold
speedHeader.TextXAlignment = Enum.TextXAlignment.Left
speedHeader.Parent = scrollFrame

local function setSpeed(newSpeed)
	currentWalkSpeed = math.clamp(newSpeed, 0, 500)
end

local function createSpeedButton(text, speedValue, posX, posY, sizeX)
	local btn = Instance.new("TextButton")
	btn.Size = UDim2.new(0, sizeX, 0, 28)
	btn.Position = UDim2.new(0.075 + posX, 0, 0, posY)
	btn.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
	btn.Text = text
	btn.TextColor3 = Color3.fromRGB(220, 220, 240)
	btn.TextSize = 11
	btn.Font = Enum.Font.GothamMedium
	btn.BorderSizePixel = 0
	btn.Parent = scrollFrame

	local btnCorner = Instance.new("UICorner")
	btnCorner.CornerRadius = UDim.new(0, 6)
	btnCorner.Parent = btn

	btn.MouseButton1Click:Connect(function()
		setSpeed(speedValue)
	end)
end

createSpeedButton("16 (Norm)", 16, 0, 28, 70)
createSpeedButton("50 (Fast)", 50, 75, 28, 70)
createSpeedButton("100 (Super)", 100, 150, 28, 70)

local speedInput = Instance.new("TextBox")
speedInput.Size = UDim2.new(0.85, 0, 0, 30)
speedInput.Position = UDim2.new(0.075, 0, 0, 63)
speedInput.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
speedInput.Text = ""
speedInput.PlaceholderText = "Set custom speed..."
speedInput.PlaceholderColor3 = Color3.fromRGB(120, 120, 140)
speedInput.TextColor3 = Color3.fromRGB(255, 255, 255)
speedInput.TextSize = 12
speedInput.Font = Enum.Font.Gotham
speedInput.BorderSizePixel = 0
speedInput.Parent = scrollFrame

local speedInputCorner = Instance.new("UICorner")
speedInputCorner.CornerRadius = UDim.new(0, 6)
speedInputCorner.Parent = speedInput

speedInput.FocusLost:Connect(function(enterPressed)
	if enterPressed then
		local num = tonumber(speedInput.Text)
		if num then setSpeed(num) end
		speedInput.Text = ""
	end
end)

--------------------------------------------------------------------------------
-- SECTION 2: JUMP POWER
--------------------------------------------------------------------------------
local jumpHeader = Instance.new("TextLabel")
jumpHeader.Size = UDim2.new(0.85, 0, 0, 20)
jumpHeader.Position = UDim2.new(0.075, 0, 0, 105)
jumpHeader.BackgroundTransparency = 1
jumpHeader.Text = "JUMP POWER"
jumpHeader.TextColor3 = Color3.fromRGB(150, 150, 170)
jumpHeader.TextSize = 11
jumpHeader.Font = Enum.Font.GothamBold
jumpHeader.TextXAlignment = Enum.TextXAlignment.Left
jumpHeader.Parent = scrollFrame

local function setJumpPower(value)
	local numValue = tonumber(value)
	if not numValue then return end
	currentJumpPower = math.clamp(numValue, 0, 1000)

	local char = player.Character
	if char then
		local humanoid = char:FindFirstChildOfClass("Humanoid")
		if humanoid then
			humanoid.UseJumpPower = true
			humanoid.JumpPower = currentJumpPower
		end
	end
end

local function createJumpButton(text, jumpValue, posX, posY, sizeX)
	local btn = Instance.new("TextButton")
	btn.Size = UDim2.new(0, sizeX, 0, 28)
	btn.Position = UDim2.new(0.075 + posX, 0, 0, posY)
	btn.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
	btn.Text = text
	btn.TextColor3 = Color3.fromRGB(220, 220, 240)
	btn.TextSize = 11
	btn.Font = Enum.Font.GothamMedium
	btn.BorderSizePixel = 0
	btn.Parent = scrollFrame

	local btnCorner = Instance.new("UICorner")
	btnCorner.CornerRadius = UDim.new(0, 6)
	btnCorner.Parent = btn

	btn.MouseButton1Click:Connect(function()
		setJumpPower(jumpValue)
	end)
end

createJumpButton("50 (Norm)", 50, 0, 128, 70)
createJumpButton("100 (High)", 100, 75, 128, 70)
createJumpButton("200 (Super)", 200, 150, 128, 70)

local jumpInput = Instance.new("TextBox")
jumpInput.Size = UDim2.new(0.85, 0, 0, 30)
jumpInput.Position = UDim2.new(0.075, 0, 0, 163)
jumpInput.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
jumpInput.Text = ""
jumpInput.PlaceholderText = "Set custom jump power..."
jumpInput.PlaceholderColor3 = Color3.fromRGB(120, 120, 140)
jumpInput.TextColor3 = Color3.fromRGB(255, 255, 255)
jumpInput.TextSize = 12
jumpInput.Font = Enum.Font.Gotham
jumpInput.BorderSizePixel = 0
jumpInput.Parent = scrollFrame

local jumpInputCorner = Instance.new("UICorner")
jumpInputCorner.CornerRadius = UDim.new(0, 6)
jumpInputCorner.Parent = jumpInput

jumpInput.FocusLost:Connect(function(enterPressed)
	if enterPressed then
		setJumpPower(jumpInput.Text)
		jumpInput.Text = ""
	end
end)

--------------------------------------------------------------------------------
-- SECTION 3: FLIGHT & AIR CONTROLS
--------------------------------------------------------------------------------
local flyHeader = Instance.new("TextLabel")
flyHeader.Size = UDim2.new(0.85, 0, 0, 20)
flyHeader.Position = UDim2.new(0.075, 0, 0, 205)
flyHeader.BackgroundTransparency = 1
flyHeader.Text = "FLIGHT & AIR CONTROLS"
flyHeader.TextColor3 = Color3.fromRGB(150, 150, 170)
flyHeader.TextSize = 11
flyHeader.Font = Enum.Font.GothamBold
flyHeader.TextXAlignment = Enum.TextXAlignment.Left
flyHeader.Parent = scrollFrame

-- Fly Button + Keybind
local flyToggleBtn = Instance.new("TextButton")
flyToggleBtn.Size = UDim2.new(0.63, 0, 0, 32)
flyToggleBtn.Position = UDim2.new(0.075, 0, 0, 228)
flyToggleBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 50)
flyToggleBtn.Text = "Fly Mode: OFF"
flyToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
flyToggleBtn.TextSize = 12
flyToggleBtn.Font = Enum.Font.GothamBold
flyToggleBtn.BorderSizePixel = 0
flyToggleBtn.Parent = scrollFrame

local flyCorner = Instance.new("UICorner")
flyCorner.CornerRadius = UDim.new(0, 6)
flyCorner.Parent = flyToggleBtn

createKeybindButton(scrollFrame, "Fly", 0.72, 228, 48, 32)

local flySpeedInput = Instance.new("TextBox")
flySpeedInput.Size = UDim2.new(0.85, 0, 0, 30)
flySpeedInput.Position = UDim2.new(0.075, 0, 0, 267)
flySpeedInput.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
flySpeedInput.Text = tostring(DEFAULT_FLY_SPEED)
flySpeedInput.PlaceholderText = "Set fly speed..."
flySpeedInput.PlaceholderColor3 = Color3.fromRGB(120, 120, 140)
flySpeedInput.TextColor3 = Color3.fromRGB(255, 255, 255)
flySpeedInput.TextSize = 12
flySpeedInput.Font = Enum.Font.Gotham
flySpeedInput.BorderSizePixel = 0
flySpeedInput.Parent = scrollFrame

local flySpeedCorner = Instance.new("UICorner")
flySpeedCorner.CornerRadius = UDim.new(0, 6)
flySpeedCorner.Parent = flySpeedInput

-- Infinite Jump Button + Keybind
local infJumpToggleBtn = Instance.new("TextButton")
infJumpToggleBtn.Size = UDim2.new(0.63, 0, 0, 32)
infJumpToggleBtn.Position = UDim2.new(0.075, 0, 0, 304)
infJumpToggleBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 50)
infJumpToggleBtn.Text = "Infinite Jump: OFF"
infJumpToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
infJumpToggleBtn.TextSize = 12
infJumpToggleBtn.Font = Enum.Font.GothamBold
infJumpToggleBtn.BorderSizePixel = 0
infJumpToggleBtn.Parent = scrollFrame

local infJumpCorner = Instance.new("UICorner")
infJumpCorner.CornerRadius = UDim.new(0, 6)
infJumpCorner.Parent = infJumpToggleBtn

createKeybindButton(scrollFrame, "InfJump", 0.72, 304, 48, 32)

--------------------------------------------------------------------------------
-- SECTION 4: UTILITIES
--------------------------------------------------------------------------------
local miscHeader = Instance.new("TextLabel")
miscHeader.Size = UDim2.new(0.85, 0, 0, 20)
miscHeader.Position = UDim2.new(0.075, 0, 0, 351)
miscHeader.BackgroundTransparency = 1
miscHeader.Text = "UTILITIES"
miscHeader.TextColor3 = Color3.fromRGB(150, 150, 170)
miscHeader.TextSize = 11
miscHeader.Font = Enum.Font.GothamBold
miscHeader.TextXAlignment = Enum.TextXAlignment.Left
miscHeader.Parent = scrollFrame

-- Invisibility Button + Keybind
local invToggleBtn = Instance.new("TextButton")
invToggleBtn.Size = UDim2.new(0.63, 0, 0, 32)
invToggleBtn.Position = UDim2.new(0.075, 0, 0, 374)
invToggleBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 50)
invToggleBtn.Text = "Invisibility: OFF"
invToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
invToggleBtn.TextSize = 12
invToggleBtn.Font = Enum.Font.GothamBold
invToggleBtn.BorderSizePixel = 0
invToggleBtn.Parent = scrollFrame

local invCorner = Instance.new("UICorner")
invCorner.CornerRadius = UDim.new(0, 6)
invCorner.Parent = invToggleBtn

createKeybindButton(scrollFrame, "Invisibility", 0.72, 374, 48, 32)

-- Noclip Button + Keybind
local noclipToggleBtn = Instance.new("TextButton")
noclipToggleBtn.Size = UDim2.new(0.63, 0, 0, 32)
noclipToggleBtn.Position = UDim2.new(0.075, 0, 0, 414)
noclipToggleBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 50)
noclipToggleBtn.Text = "Noclip: OFF"
noclipToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
noclipToggleBtn.TextSize = 12
noclipToggleBtn.Font = Enum.Font.GothamBold
noclipToggleBtn.BorderSizePixel = 0
noclipToggleBtn.Parent = scrollFrame

local noclipCorner = Instance.new("UICorner")
noclipCorner.CornerRadius = UDim.new(0, 6)
noclipCorner.Parent = noclipToggleBtn

createKeybindButton(scrollFrame, "Noclip", 0.72, 414, 48, 32)

--------------------------------------------------------------------------------
-- SECTION 5: TELEPORTATION
--------------------------------------------------------------------------------
local tpHeader = Instance.new("TextLabel")
tpHeader.Size = UDim2.new(0.85, 0, 0, 20)
tpHeader.Position = UDim2.new(0.075, 0, 0, 461)
tpHeader.BackgroundTransparency = 1
tpHeader.Text = "PLAYER TELEPORT"
tpHeader.TextColor3 = Color3.fromRGB(150, 150, 170)
tpHeader.TextSize = 11
tpHeader.Font = Enum.Font.GothamBold
tpHeader.TextXAlignment = Enum.TextXAlignment.Left
tpHeader.Parent = scrollFrame

local tpInput = Instance.new("TextBox")
tpInput.Size = UDim2.new(0.85, 0, 0, 28)
tpInput.Position = UDim2.new(0.075, 0, 0, 483)
tpInput.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
tpInput.Text = ""
tpInput.PlaceholderText = "Username or 'random'..."
tpInput.PlaceholderColor3 = Color3.fromRGB(120, 120, 140)
tpInput.TextColor3 = Color3.fromRGB(255, 255, 255)
tpInput.TextSize = 11
tpInput.Font = Enum.Font.Gotham
tpInput.BorderSizePixel = 0
tpInput.Parent = scrollFrame

local tpInputCorner = Instance.new("UICorner")
tpInputCorner.CornerRadius = UDim.new(0, 6)
tpInputCorner.Parent = tpInput

local tpBtn = Instance.new("TextButton")
tpBtn.Size = UDim2.new(0.85, 0, 0, 26)
tpBtn.Position = UDim2.new(0.075, 0, 0, 515)
tpBtn.BackgroundColor3 = Color3.fromRGB(60, 120, 210)
tpBtn.Text = "Teleport to Player"
tpBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
tpBtn.TextSize = 11
tpBtn.Font = Enum.Font.GothamBold
tpBtn.BorderSizePixel = 0
tpBtn.Parent = scrollFrame

local tpBtnCorner = Instance.new("UICorner")
tpBtnCorner.CornerRadius = UDim.new(0, 6)
tpBtnCorner.Parent = tpBtn

--------------------------------------------------------------------------------
-- SECTION 6: HOTKEY SETTINGS
--------------------------------------------------------------------------------
local hotkeyHeader = Instance.new("TextLabel")
hotkeyHeader.Size = UDim2.new(0.85, 0, 0, 20)
hotkeyHeader.Position = UDim2.new(0.075, 0, 0, 555)
hotkeyHeader.BackgroundTransparency = 1
hotkeyHeader.Text = "MENU HOTKEY"
hotkeyHeader.TextColor3 = Color3.fromRGB(150, 150, 170)
hotkeyHeader.TextSize = 11
hotkeyHeader.Font = Enum.Font.GothamBold
hotkeyHeader.TextXAlignment = Enum.TextXAlignment.Left
hotkeyHeader.Parent = scrollFrame

local menuKeyLabel = Instance.new("TextLabel")
menuKeyLabel.Size = UDim2.new(0.63, 0, 0, 28)
menuKeyLabel.Position = UDim2.new(0.075, 0, 0, 578)
menuKeyLabel.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
menuKeyLabel.Text = "Toggle Menu Key"
menuKeyLabel.TextColor3 = Color3.fromRGB(220, 220, 240)
menuKeyLabel.TextSize = 11
menuKeyLabel.Font = Enum.Font.GothamMedium
menuKeyLabel.Parent = scrollFrame

local menuKeyCorner = Instance.new("UICorner")
menuKeyCorner.CornerRadius = UDim.new(0, 6)
menuKeyCorner.Parent = menuKeyLabel

createKeybindButton(scrollFrame, "MenuToggle", 0.72, 578, 48, 28)

--------------------------------------------------------------------------------
-- TELEPORT MECHANICS
--------------------------------------------------------------------------------
local function teleportToPlayer(targetName)
	if not targetName or targetName == "" then return end

	local myChar = player.Character
	if not myChar then return end

	local myRoot = myChar:FindFirstChild("HumanoidRootPart")
	if not myRoot then return end

	local targetPlayer = nil
	local searchTerm = string.lower(targetName)

	if searchTerm == "random" then
		local otherPlayers = {}
		for _, p in ipairs(Players:GetPlayers()) do
			if p ~= player and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
				table.insert(otherPlayers, p)
			end
		end

		if #otherPlayers > 0 then
			targetPlayer = otherPlayers[math.random(1, #otherPlayers)]
		end
	else
		for _, p in ipairs(Players:GetPlayers()) do
			if p ~= player then
				if string.find(string.lower(p.Name), searchTerm) or string.find(string.lower(p.DisplayName), searchTerm) then
					targetPlayer = p
					break
				end
			end
		end
	end

	if targetPlayer and targetPlayer.Character then
		local targetRoot = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
		if targetRoot then
			myRoot.CFrame = targetRoot.CFrame * CFrame.new(0, 0, -3)
		end
	end
end

tpBtn.MouseButton1Click:Connect(function()
	teleportToPlayer(tpInput.Text)
end)

tpInput.FocusLost:Connect(function(enterPressed)
	if enterPressed then
		teleportToPlayer(tpInput.Text)
	end
end)

--------------------------------------------------------------------------------
-- FEATURE CONTROLLERS
--------------------------------------------------------------------------------
local function updateInfiniteJumpUI()
	if infJump then
		infJumpToggleBtn.Text = "Infinite Jump: ON"
		infJumpToggleBtn.BackgroundColor3 = Color3.fromRGB(50, 180, 80)
	else
		infJumpToggleBtn.Text = "Infinite Jump: OFF"
		infJumpToggleBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 50)
	end
end

local function toggleInfiniteJump()
	infJump = not infJump
	updateInfiniteJumpUI()
end

UserInputService.JumpRequest:Connect(function()
	if infJump then
		local char = player.Character
		if char then
			local humanoid = char:FindFirstChildOfClass("Humanoid")
			if humanoid then
				humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
			end
		end
	end
end)

local function updateNoclipUI()
	if noclip then
		noclipToggleBtn.Text = "Noclip: ON"
		noclipToggleBtn.BackgroundColor3 = Color3.fromRGB(50, 180, 80)
	else
		noclipToggleBtn.Text = "Noclip: OFF"
		noclipToggleBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 50)
	end
end

local function startNoclipLoop()
	if noclipConnection then noclipConnection:Disconnect() end
	noclipConnection = RunService.Stepped:Connect(function()
		if not noclip then
			if noclipConnection then
				noclipConnection:Disconnect()
				noclipConnection = nil
			end
			return
		end

		local char = player.Character
		if char then
			for _, part in ipairs(char:GetDescendants()) do
				if part:IsA("BasePart") and part.CanCollide then
					part.CanCollide = false
				end
			end
		end
	end)
end

local function toggleNoclip()
	noclip = not noclip
	updateNoclipUI()
	if noclip then
		startNoclipLoop()
	end
end

local function setCharacterVisibility(visible)
	local char = player.Character
	if not char then return end

	for _, descendant in ipairs(char:GetDescendants()) do
		if descendant:IsA("BasePart") then
			if descendant.Name ~= "HumanoidRootPart" then
				descendant.Transparency = visible and 0 or 1
			end
		elseif descendant:IsA("Decal") or descendant:IsA("Texture") then
			descendant.Transparency = visible and 0 or 1
		end
	end
end

local function updateInvisibilityUI()
	if isInvisible then
		invToggleBtn.Text = "Invisibility: ON"
		invToggleBtn.BackgroundColor3 = Color3.fromRGB(50, 180, 80)
	else
		invToggleBtn.Text = "Invisibility: OFF"
		invToggleBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 50)
	end
end

local function toggleInvisibility()
	isInvisible = not isInvisible
	updateInvisibilityUI()
	setCharacterVisibility(not isInvisible)
end

local function stopFlyingInternal()
	if renderConnection then
		renderConnection:Disconnect()
		renderConnection = nil
	end

	if bodyVelocity then bodyVelocity:Destroy() bodyVelocity = nil end
	if bodyGyro then bodyGyro:Destroy() bodyGyro = nil end

	local char = player.Character
	if char then
		local humanoid = char:FindFirstChildOfClass("Humanoid")
		if humanoid then
			humanoid.PlatformStand = false
		end
	end
end

local function updateFlyUI()
	if flying then
		flyToggleBtn.Text = "Fly Mode: ON"
		flyToggleBtn.BackgroundColor3 = Color3.fromRGB(50, 180, 80)
	else
		flyToggleBtn.Text = "Fly Mode: OFF"
		flyToggleBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 50)
	end
end

local function startFlying()
	local char = player.Character
	if not char then return end

	local root = char:WaitForChild("HumanoidRootPart", 5)
	local humanoid = char:WaitForChild("Humanoid", 5)
	if not root or not humanoid then return end

	humanoid.PlatformStand = true

	if bodyVelocity then bodyVelocity:Destroy() end
	if bodyGyro then bodyGyro:Destroy() end

	bodyVelocity = Instance.new("BodyVelocity")
	bodyVelocity.MaxForce = Vector3.new(1e6, 1e6, 1e6)
	bodyVelocity.Velocity = Vector3.zero
	bodyVelocity.Parent = root

	bodyGyro = Instance.new("BodyGyro")
	bodyGyro.MaxTorque = Vector3.new(1e6, 1e6, 1e6)
	bodyGyro.P = 10000
	bodyGyro.CFrame = root.CFrame
	bodyGyro.Parent = root

	if renderConnection then renderConnection:Disconnect() end
	renderConnection = RunService.RenderStepped:Connect(function()
		if not flying or not root or not humanoid then
			stopFlyingInternal()
			return
		end

		local camera = Workspace.CurrentCamera
		local moveVector = Vector3.zero

		if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveVector = moveVector + camera.CFrame.LookVector end
		if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveVector = moveVector - camera.CFrame.LookVector end
		if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveVector = moveVector - camera.CFrame.RightVector end
		if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveVector = moveVector + camera.CFrame.RightVector end
		if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveVector = moveVector + Vector3.new(0, 1, 0) end
		if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then moveVector = moveVector - Vector3.new(0, 1, 0) end

		if moveVector.Magnitude > 0 then
			bodyVelocity.Velocity = moveVector.Unit * flySpeed
		else
			bodyVelocity.Velocity = Vector3.zero
		end

		bodyGyro.CFrame = camera.CFrame
	end)
end

local function toggleFly()
	flying = not flying
	updateFlyUI()
	if flying then
		startFlying()
	else
		stopFlyingInternal()
	end
end

--------------------------------------------------------------------------------
-- EVENT LISTENERS & KEYBIND INPUT LOGIC
--------------------------------------------------------------------------------
flyToggleBtn.MouseButton1Click:Connect(toggleFly)
infJumpToggleBtn.MouseButton1Click:Connect(toggleInfiniteJump)
invToggleBtn.MouseButton1Click:Connect(toggleInvisibility)
noclipToggleBtn.MouseButton1Click:Connect(toggleNoclip)

flySpeedInput.FocusLost:Connect(function()
	local val = tonumber(flySpeedInput.Text)
	if val then
		flySpeed = math.clamp(val, 1, 1000)
		flySpeedInput.Text = tostring(flySpeed)
	else
		flySpeedInput.Text = tostring(flySpeed)
	end
end)

UserInputService.InputBegan:Connect(function(input, processed)
	-- Key binding listening state
	if bindingKeyFor then
		if input.UserInputType == Enum.UserInputType.Keyboard then
			local key = input.KeyCode
			if key == Enum.KeyCode.Backspace or key == Enum.KeyCode.Escape then
				Keybinds[bindingKeyFor] = Enum.KeyCode.Unknown
			else
				Keybinds[bindingKeyFor] = key
			end

			local targetFeature = bindingKeyFor
			bindingKeyFor = nil

			if keybindButtons[targetFeature] then
				keybindButtons[targetFeature].Text = "[" .. getKeyName(Keybinds[targetFeature]) .. "]"
				keybindButtons[targetFeature].BackgroundColor3 = Color3.fromRGB(45, 45, 60)
			end
		end
		return
	end

	if processed then return end

	-- Hotkey Triggers
	if input.KeyCode == Keybinds.MenuToggle and Keybinds.MenuToggle ~= Enum.KeyCode.Unknown then
		toggleMenu()
	elseif input.KeyCode == Keybinds.Fly and Keybinds.Fly ~= Enum.KeyCode.Unknown then
		toggleFly()
	elseif input.KeyCode == Keybinds.InfJump and Keybinds.InfJump ~= Enum.KeyCode.Unknown then
		toggleInfiniteJump()
	elseif input.KeyCode == Keybinds.Invisibility and Keybinds.Invisibility ~= Enum.KeyCode.Unknown then
		toggleInvisibility()
	elseif input.KeyCode == Keybinds.Noclip and Keybinds.Noclip ~= Enum.KeyCode.Unknown then
		toggleNoclip()
	elseif input.KeyCode == Keybinds.RandomTP and Keybinds.RandomTP ~= Enum.KeyCode.Unknown then
		teleportToPlayer("random")
	end
end)

--------------------------------------------------------------------------------
-- RESPAWN STATE RESTORATION
--------------------------------------------------------------------------------
local function onCharacterAdded(char)
	stopFlyingInternal()
	if noclipConnection then
		noclipConnection:Disconnect()
		noclipConnection = nil
	end

	local humanoid = char:WaitForChild("Humanoid", 10)
	if not humanoid then return end

	humanoid.WalkSpeed = currentWalkSpeed
	humanoid.UseJumpPower = true
	humanoid.JumpPower = currentJumpPower

	if noclip then
		startNoclipLoop()
	end

	if isInvisible then
		task.defer(function()
			setCharacterVisibility(false)
		end)
	end

	if flying then
		task.defer(function()
			startFlying()
		end)
	end
end

player.CharacterAdded:Connect(onCharacterAdded)

if player.Character then
	onCharacterAdded(player.Character)
end
🎮 Similar Scripts
💬 Comments (0)
Login to post a comment
No comments yet. Be the first!
Script Info
Game hard road
TypeKeyless
Authoralexriderr
Views2
Likes0
PublishedOct 12, 2026
🎮 Play Game on Roblox
🕐 Recent Scripts
Pulse Hub Steal an Egg Instant steal and more
Pulse Hub Steal an Egg Instant steal and more
Steal An Egg • 👁 1
Keyless
Kick an Uma auto kick script by Moon Hub
Kick an Uma auto kick script by Moon Hub
Kick an Uma • 👁 2
Keyless
KHSaeed Drill for Eggs script OP
KHSaeed Drill for Eggs script OP
Drill for Eggs • 👁 4
Keyless
Egg esp Purple Hub
Egg esp Purple Hub
Save The Egg • 👁 3
Keyless
Naga Hub Sniper Arena script | Aimbot, Aim key
Naga Hub Sniper Arena script | Aimbot, Aim key
Sniper Arena • 👁 4
Keyless