Description

Made by maxovik777, press [ to open the menu, theres fly ,infinite jump, invisibility, noclip and wallspeed,jump power and tp to other players

Features

  • + Jump controller
  • + Flight and air controls
  • + Utilities
  • + Player teleport
  • + speed controller
  • + fly
  • + noclip
  • + invisibility

Supported Executors

Xeno Potassium Delta Solara

Script

Add Xeno Scripts as a preferred source
-- Script taken from https://xenoscripts.com website --

-- 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 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

local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 280, 0, 680)
mainFrame.Position = UDim2.new(0.5, -140, 0.5, -340)
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
mainFrame.BorderSizePixel = 0
mainFrame.Visible = false
mainFrame.Parent = screenGui

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

--------------------------------------------------------------------------------
-- 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 menu"
	notifText.TextColor3 = Color3.fromRGB(180, 180, 200)
	notifText.TextSize = 11
	notifText.Font = Enum.Font.Gotham
	notifText.TextXAlignment = Enum.TextXAlignment.Left
	notifText.Parent = notifFrame

	-- Click listener to show menu
	notifFrame.MouseButton1Click:Connect(function()
		mainFrame.Visible = true
	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 & MINIMIZE BUTTON (-)
--------------------------------------------------------------------------------
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -40, 0, 40)
titleLabel.Position = UDim2.new(0, 12, 0, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Movement Master"
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.TextSize = 16
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Parent = mainFrame

local minimizeBtn = Instance.new("TextButton")
minimizeBtn.Size = UDim2.new(0, 26, 0, 26)
minimizeBtn.Position = UDim2.new(1, -32, 0, 7)
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()
	mainFrame.Visible = false
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, 42)
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 = mainFrame

local function setSpeed(newSpeed)
	currentWalkSpeed = math.clamp(newSpeed, 0, 500)
	local char = player.Character
	if char then
		local humanoid = char:FindFirstChildOfClass("Humanoid")
		if humanoid then
			humanoid.WalkSpeed = currentWalkSpeed
		end
	end
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 = mainFrame

	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, 65, 75)
createSpeedButton("50 (Fast)", 50, 80, 65, 75)
createSpeedButton("100 (Super)", 100, 160, 65, 75)

local speedInput = Instance.new("TextBox")
speedInput.Size = UDim2.new(0.85, 0, 0, 30)
speedInput.Position = UDim2.new(0.075, 0, 0, 100)
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 = mainFrame

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, 142)
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 = mainFrame

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 = mainFrame

	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, 165, 75)
createJumpButton("100 (High)", 100, 80, 165, 75)
createJumpButton("200 (Super)", 200, 160, 165, 75)

local jumpInput = Instance.new("TextBox")
jumpInput.Size = UDim2.new(0.85, 0, 0, 30)
jumpInput.Position = UDim2.new(0.075, 0, 0, 200)
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 = mainFrame

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, 242)
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 = mainFrame

-- Fly Button + Keybind
local flyToggleBtn = Instance.new("TextButton")
flyToggleBtn.Size = UDim2.new(0.65, 0, 0, 32)
flyToggleBtn.Position = UDim2.new(0.075, 0, 0, 265)
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 = mainFrame

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

createKeybindButton(mainFrame, "Fly", 0.74, 265, 52, 32)

local flySpeedInput = Instance.new("TextBox")
flySpeedInput.Size = UDim2.new(0.85, 0, 0, 30)
flySpeedInput.Position = UDim2.new(0.075, 0, 0, 304)
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 = mainFrame

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.65, 0, 0, 32)
infJumpToggleBtn.Position = UDim2.new(0.075, 0, 0, 341)
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 = mainFrame

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

createKeybindButton(mainFrame, "InfJump", 0.74, 341, 52, 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, 388)
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 = mainFrame

-- Invisibility Button + Keybind
local invToggleBtn = Instance.new("TextButton")
invToggleBtn.Size = UDim2.new(0.65, 0, 0, 32)
invToggleBtn.Position = UDim2.new(0.075, 0, 0, 411)
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 = mainFrame

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

createKeybindButton(mainFrame, "Invisibility", 0.74, 411, 52, 32)

-- Noclip Button + Keybind
local noclipToggleBtn = Instance.new("TextButton")
noclipToggleBtn.Size = UDim2.new(0.65, 0, 0, 32)
noclipToggleBtn.Position = UDim2.new(0.075, 0, 0, 451)
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 = mainFrame

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

createKeybindButton(mainFrame, "Noclip", 0.74, 451, 52, 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, 498)
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 = mainFrame

local tpInput = Instance.new("TextBox")
tpInput.Size = UDim2.new(0.85, 0, 0, 28)
tpInput.Position = UDim2.new(0.075, 0, 0, 520)
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 = mainFrame

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, 552)
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 = mainFrame

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, 592)
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 = mainFrame

local menuKeyLabel = Instance.new("TextLabel")
menuKeyLabel.Size = UDim2.new(0.65, 0, 0, 28)
menuKeyLabel.Position = UDim2.new(0.075, 0, 0, 615)
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 = mainFrame

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

createKeybindButton(mainFrame, "MenuToggle", 0.74, 615, 52, 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
		mainFrame.Visible = not mainFrame.Visible
	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
Script worked? 🚀 Boost it to #1 so others find it too.

Changelog

  • + Added a fix for the mobile players!You can now trigger the menu by pressing the notification.

Comments (2)

Log in to add a comment.

CheekyBoy

CheekyBoy

9 hours ago

ty for adding mobile support

werrak53821

werrak53821

3 days ago

Yo catmax its me beka idk why i named my google acc werrak its not my real name