Back to Scripts
ANTICHEAT BYP*ER
ScriptBlox
Free
Game: Tower of Hell
1,243
Views
3
Likes
0
Dislikes
ultisyrox9
offline
Features
New Features Added:
โ
Resizable GUI
Drag the bottom-right corner (โคก) to resize the window
Minimum size: 300x300 pixels
Smooth resizing with mouse
โ
Close Button (โ)
Red close button in top-right corner
Click to hide the GUI
GUI remains in memory, just hidden
โ
Vertical Speed Slider (Fixed)
Horizontal slider for fly speed control
Range: 10-100 speed units
Smooth dragging without GUI movement
Real-time speed updates
โ
Settings Tab
Customizable Fly Keybind (default: F)
Customizable GUI Toggle Keybind (default: RightShift)
Stop Animations on Fly toggle (default: ON)
Real-time keybind display
โ
Animation Control
"Stop Animations on Fly" toggle in Settings
ON: Animations stop while flying
OFF: Animations continue while flying
Smooth character appearance control
โ
Keybind System
Click "Change" button to rebind keys
Press any key to set new keybind
Yellow text shows "Waiting..." while binding
Automatic keybind validation
โ
English UI
Entire interface in English
All comments removed
Clean code structure
Professional appearance
โ
Improved Player Display
Shows Display Names instead of Usernames
Works in both Troll and Spectate tabs
Better user identification
โ
ESP System
Red box adorns around players
0.3 transparency
ON/OFF toggle in Misc tab
Updates every frame
โ
Spectate System
Watch other players in real-time
Camera follows spectated player
Selectable from player list
Stop button to exit
โ
6 Organized Tabs
Main: Fly, Noclip, Rejoin, Speed
Troll: Player list with Loop TP
Waypoint: Save/Load locations
Misc: ESP and Spectate
Settings: Keybinds and Animation control
Credits: Developer info
โ
Pathfinding System
Automatic obstacle avoidance
Tests 4 alternative directions
Raycast-based collision detection
Smooth target following
โ
Waypoint Management
Save current location
Display coordinates
Click waypoint to teleport
ScrollingFrame for multiple waypoints
โ
Drag & Drop GUI
Main frame is draggable by title bar
Dragging disabled while using slider
Smooth movement
โ
Dynamic Player List
Auto-refreshes when players join/leave
Scroll support for many players
UIListLayout for clean organization
CanvasSize auto-adjustment
Tags
Script Code
local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TeleportService = game:GetService("TeleportService")
local player = Players.LocalPlayer
local flying = false
local noclip = false
local speed = 35
local targetPos = nil
local targetPlayer = nil
local loopTP = false
local spectating = false
local spectatePlayer = nil
local espEnabled = false
local stopAnimOnFly = true
local lastStuckPos = nil
local stuckTimer = 0
local espBoxes = {}
game:GetService("Chat"):Chat(player.Character.Head, "Script made by Arouwa", Enum.ChatColor.Blue)
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "ExploitGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = player:WaitForChild("PlayerGui")
local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 400, 0, 500)
mainFrame.Position = UDim2.new(0.5, -200, 0.5, -250)
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Parent = screenGui
local resizeHandle = Instance.new("Frame")
resizeHandle.Name = "ResizeHandle"
resizeHandle.Size = UDim2.new(0, 15, 0, 15)
resizeHandle.Position = UDim2.new(1, -15, 1, -15)
resizeHandle.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
resizeHandle.BorderSizePixel = 0
resizeHandle.Parent = mainFrame
local resizeIcon = Instance.new("TextLabel")
resizeIcon.Size = UDim2.new(1, 0, 1, 0)
resizeIcon.BackgroundTransparency = 1
resizeIcon.TextColor3 = Color3.fromRGB(150, 150, 150)
resizeIcon.TextScaled = true
resizeIcon.Text = "โคก"
resizeIcon.Parent = resizeHandle
local resizing = false
local startSize = mainFrame.Size
local startPos = resizeHandle.AbsolutePosition
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -40, 0, 40)
titleLabel.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
titleLabel.TextColor3 = Color3.new(1, 1, 1)
titleLabel.TextScaled = true
titleLabel.Text = "EXPLOIT SCRIPT"
titleLabel.BorderSizePixel = 0
titleLabel.Parent = mainFrame
local closeBtn = Instance.new("TextButton")
closeBtn.Name = "CloseBtn"
closeBtn.Size = UDim2.new(0, 40, 0, 40)
closeBtn.Position = UDim2.new(1, -40, 0, 0)
closeBtn.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
closeBtn.TextColor3 = Color3.new(1, 1, 1)
closeBtn.TextScaled = true
closeBtn.Text = "โ"
closeBtn.BorderSizePixel = 0
closeBtn.Parent = mainFrame
closeBtn.MouseButton1Click:Connect(function()
mainFrame.Visible = false
end)
local tabButtons = Instance.new("Frame")
tabButtons.Name = "TabButtons"
tabButtons.Size = UDim2.new(1, 0, 0, 40)
tabButtons.Position = UDim2.new(0, 0, 0, 40)
tabButtons.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
tabButtons.BorderSizePixel = 0
tabButtons.Parent = mainFrame
local mainBtn = Instance.new("TextButton")
mainBtn.Name = "MainBtn"
mainBtn.Size = UDim2.new(0.2, -1, 1, 0)
mainBtn.Position = UDim2.new(0, 0, 0, 0)
mainBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
mainBtn.TextColor3 = Color3.new(1, 1, 1)
mainBtn.TextScaled = true
mainBtn.Text = "Main"
mainBtn.BorderSizePixel = 0
mainBtn.Parent = tabButtons
local trollBtn = Instance.new("TextButton")
trollBtn.Name = "TrollBtn"
trollBtn.Size = UDim2.new(0.2, -1, 1, 0)
trollBtn.Position = UDim2.new(0.2, 1, 0, 0)
trollBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
trollBtn.TextColor3 = Color3.new(1, 1, 1)
trollBtn.TextScaled = true
trollBtn.Text = "Troll"
trollBtn.BorderSizePixel = 0
trollBtn.Parent = tabButtons
local waypointBtn = Instance.new("TextButton")
waypointBtn.Name = "WaypointBtn"
waypointBtn.Size = UDim2.new(0.2, -1, 1, 0)
waypointBtn.Position = UDim2.new(0.4, 2, 0, 0)
waypointBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
waypointBtn.TextColor3 = Color3.new(1, 1, 1)
waypointBtn.TextScaled = true
waypointBtn.Text = "Waypoint"
waypointBtn.BorderSizePixel = 0
waypointBtn.Parent = tabButtons
local miscBtn = Instance.new("TextButton")
miscBtn.Name = "MiscBtn"
miscBtn.Size = UDim2.new(0.15, -1, 1, 0)
miscBtn.Position = UDim2.new(0.6, 3, 0, 0)
miscBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
miscBtn.TextColor3 = Color3.new(1, 1, 1)
miscBtn.TextScaled = true
miscBtn.Text = "Misc"
miscBtn.BorderSizePixel = 0
miscBtn.Parent = tabButtons
local settingsBtn = Instance.new("TextButton")
settingsBtn.Name = "SettingsBtn"
settingsBtn.Size = UDim2.new(0.15, -1, 1, 0)
settingsBtn.Position = UDim2.new(0.75, 4, 0, 0)
settingsBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
settingsBtn.TextColor3 = Color3.new(1, 1, 1)
settingsBtn.TextScaled = true
settingsBtn.Text = "Settings"
settingsBtn.BorderSizePixel = 0
settingsBtn.Parent = tabButtons
local creditsBtn = Instance.new("TextButton")
creditsBtn.Name = "CreditsBtn"
creditsBtn.Size = UDim2.new(0.1, -1, 1, 0)
creditsBtn.Position = UDim2.new(0.9, 5, 0, 0)
creditsBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
creditsBtn.TextColor3 = Color3.new(1, 1, 1)
creditsBtn.TextScaled = true
creditsBtn.Text = "Credits"
creditsBtn.BorderSizePixel = 0
creditsBtn.Parent = tabButtons
local pageContainer = Instance.new("Frame")
pageContainer.Name = "PageContainer"
pageContainer.Size = UDim2.new(1, 0, 1, -80)
pageContainer.Position = UDim2.new(0, 0, 0, 80)
pageContainer.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
pageContainer.BorderSizePixel = 0
pageContainer.Parent = mainFrame
local mainPage = Instance.new("Frame")
mainPage.Name = "MainPage"
mainPage.Size = UDim2.new(1, 0, 1, 0)
mainPage.BackgroundTransparency = 1
mainPage.Parent = pageContainer
local flyLabel = Instance.new("TextLabel")
flyLabel.Size = UDim2.new(1, -20, 0, 30)
flyLabel.Position = UDim2.new(0, 10, 0, 10)
flyLabel.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
flyLabel.TextColor3 = Color3.new(1, 1, 1)
flyLabel.TextScaled = true
flyLabel.Text = "FLY: OFF"
flyLabel.BorderSizePixel = 0
flyLabel.Parent = mainPage
local flyToggle = Instance.new("TextButton")
flyToggle.Size = UDim2.new(0, 80, 0, 30)
flyToggle.Position = UDim2.new(1, -100, 0, 10)
flyToggle.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
flyToggle.TextColor3 = Color3.new(1, 1, 1)
flyToggle.TextScaled = true
flyToggle.Text = "OFF"
flyToggle.BorderSizePixel = 0
flyToggle.Parent = mainPage
local noclipLabel = Instance.new("TextLabel")
noclipLabel.Size = UDim2.new(1, -20, 0, 30)
noclipLabel.Position = UDim2.new(0, 10, 0, 50)
noclipLabel.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
noclipLabel.TextColor3 = Color3.new(1, 1, 1)
noclipLabel.TextScaled = true
noclipLabel.Text = "NOCLIP: OFF"
noclipLabel.BorderSizePixel = 0
noclipLabel.Parent = mainPage
local noclipToggle = Instance.new("TextButton")
noclipToggle.Size = UDim2.new(0, 80, 0, 30)
noclipToggle.Position = UDim2.new(1, -100, 0, 50)
noclipToggle.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
noclipToggle.TextColor3 = Color3.new(1, 1, 1)
noclipToggle.TextScaled = true
noclipToggle.Text = "OFF"
noclipToggle.BorderSizePixel = 0
noclipToggle.Parent = mainPage
local rejoinBtn = Instance.new("TextButton")
rejoinBtn.Size = UDim2.new(1, -20, 0, 30)
rejoinBtn.Position = UDim2.new(0, 10, 0, 90)
rejoinBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
rejoinBtn.TextColor3 = Color3.new(1, 1, 1)
rejoinBtn.TextScaled = true
rejoinBtn.Text = "REJOIN"
rejoinBtn.BorderSizePixel = 0
rejoinBtn.Parent = mainPage
local stopBtn = Instance.new("TextButton")
stopBtn.Size = UDim2.new(1, -20, 0, 30)
stopBtn.Position = UDim2.new(0, 10, 0, 130)
stopBtn.BackgroundColor3 = Color3.fromRGB(170, 170, 0)
stopBtn.TextColor3 = Color3.new(0, 0, 0)
stopBtn.TextScaled = true
stopBtn.Text = "STOP GOING"
stopBtn.BorderSizePixel = 0
stopBtn.Parent = mainPage
local speedLabel = Instance.new("TextLabel")
speedLabel.Size = UDim2.new(1, -20, 0, 20)
speedLabel.Position = UDim2.new(0, 10, 0, 170)
speedLabel.BackgroundTransparency = 1
speedLabel.TextColor3 = Color3.new(1, 1, 1)
speedLabel.TextScaled = true
speedLabel.Text = "Speed: 35"
speedLabel.BorderSizePixel = 0
speedLabel.Parent = mainPage
local speedBar = Instance.new("Frame")
speedBar.Size = UDim2.new(1, -20, 0, 10)
speedBar.Position = UDim2.new(0, 10, 0, 195)
speedBar.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
speedBar.BorderSizePixel = 0
speedBar.Parent = mainPage
local speedFill = Instance.new("Frame")
speedFill.Size = UDim2.new(0.3, 0, 1, 0)
speedFill.BackgroundColor3 = Color3.fromRGB(0, 170, 255)
speedFill.BorderSizePixel = 0
speedFill.Parent = speedBar
local speedKnob = Instance.new("Frame")
speedKnob.Size = UDim2.new(0, 14, 0, 18)
speedKnob.Position = UDim2.new(0.3, -7, -0.4, 0)
speedKnob.BackgroundColor3 = Color3.new(1, 1, 1)
speedKnob.BorderSizePixel = 0
speedKnob.AnchorPoint = Vector2.new(0.5, 0.5)
speedKnob.Parent = speedBar
local draggingSpeed = false
local trollPage = Instance.new("Frame")
trollPage.Name = "TrollPage"
trollPage.Size = UDim2.new(1, 0, 1, 0)
trollPage.BackgroundTransparency = 1
trollPage.Visible = false
trollPage.Parent = pageContainer
local playerListFrame = Instance.new("ScrollingFrame")
playerListFrame.Size = UDim2.new(1, -20, 1, -60)
playerListFrame.Position = UDim2.new(0, 10, 0, 10)
playerListFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
playerListFrame.BorderSizePixel = 0
playerListFrame.ScrollBarThickness = 8
playerListFrame.CanvasSize = UDim2.new(1, 0, 0, 0)
playerListFrame.Parent = trollPage
local playerListScroll = Instance.new("UIListLayout")
playerListScroll.Parent = playerListFrame
playerListScroll.Padding = UDim.new(0, 5)
playerListScroll.ChildAdded:Connect(function()
playerListFrame.CanvasSize = UDim2.new(0, 0, 0, playerListScroll.AbsoluteContentSize.Y)
end)
playerListScroll.ChildRemoved:Connect(function()
playerListFrame.CanvasSize = UDim2.new(0, 0, 0, playerListScroll.AbsoluteContentSize.Y)
end)
local loopTPLabel = Instance.new("TextLabel")
loopTPLabel.Size = UDim2.new(1, -20, 0, 30)
loopTPLabel.Position = UDim2.new(0, 10, 1, -40)
loopTPLabel.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
loopTPLabel.TextColor3 = Color3.new(1, 1, 1)
loopTPLabel.TextScaled = true
loopTPLabel.Text = "LOOP TP: OFF"
loopTPLabel.BorderSizePixel = 0
loopTPLabel.Parent = trollPage
local loopTPToggle = Instance.new("TextButton")
loopTPToggle.Size = UDim2.new(0, 80, 0, 30)
loopTPToggle.Position = UDim2.new(1, -100, 1, -40)
loopTPToggle.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
loopTPToggle.TextColor3 = Color3.new(1, 1, 1)
loopTPToggle.TextScaled = true
loopTPToggle.Text = "OFF"
loopTPToggle.BorderSizePixel = 0
loopTPToggle.Parent = trollPage
local waypointPage = Instance.new("Frame")
waypointPage.Name = "WaypointPage"
waypointPage.Size = UDim2.new(1, 0, 1, 0)
waypointPage.BackgroundTransparency = 1
waypointPage.Visible = false
waypointPage.Parent = pageContainer
local waypointListFrame = Instance.new("Frame")
waypointListFrame.Size = UDim2.new(1, -20, 1, -60)
waypointListFrame.Position = UDim2.new(0, 10, 0, 10)
waypointListFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
waypointListFrame.BorderSizePixel = 0
waypointListFrame.ClipsDescendants = true
waypointListFrame.Parent = waypointPage
local waypointLayout = Instance.new("UIListLayout")
waypointLayout.Padding = UDim.new(0, 5)
waypointLayout.Parent = waypointListFrame
local addWaypointBtn = Instance.new("TextButton")
addWaypointBtn.Size = UDim2.new(1, -20, 0, 40)
addWaypointBtn.Position = UDim2.new(0, 10, 1, -50)
addWaypointBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
addWaypointBtn.TextColor3 = Color3.new(1, 1, 1)
addWaypointBtn.TextScaled = true
addWaypointBtn.Text = "ADD LOCATION"
addWaypointBtn.BorderSizePixel = 0
addWaypointBtn.Parent = waypointPage
local miscPage = Instance.new("Frame")
miscPage.Name = "MiscPage"
miscPage.Size = UDim2.new(1, 0, 1, 0)
miscPage.BackgroundTransparency = 1
miscPage.Visible = false
miscPage.Parent = pageContainer
local espLabel = Instance.new("TextLabel")
espLabel.Size = UDim2.new(1, -20, 0, 30)
espLabel.Position = UDim2.new(0, 10, 0, 10)
espLabel.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
espLabel.TextColor3 = Color3.new(1, 1, 1)
espLabel.TextScaled = true
espLabel.Text = "ESP: OFF"
espLabel.BorderSizePixel = 0
espLabel.Parent = miscPage
local espToggle = Instance.new("TextButton")
espToggle.Size = UDim2.new(0, 80, 0, 30)
espToggle.Position = UDim2.new(1, -100, 0, 10)
espToggle.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
espToggle.TextColor3 = Color3.new(1, 1, 1)
espToggle.TextScaled = true
espToggle.Text = "OFF"
espToggle.BorderSizePixel = 0
espToggle.Parent = miscPage
local spectateLabel = Instance.new("TextLabel")
spectateLabel.Size = UDim2.new(1, -20, 0, 30)
spectateLabel.Position = UDim2.new(0, 10, 0, 50)
spectateLabel.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
spectateLabel.TextColor3 = Color3.new(1, 1, 1)
spectateLabel.TextScaled = true
spectateLabel.Text = "SPECTATE: None"
spectateLabel.BorderSizePixel = 0
spectateLabel.Parent = miscPage
local spectateBtn = Instance.new("TextButton")
spectateBtn.Size = UDim2.new(1, -20, 0, 30)
spectateBtn.Position = UDim2.new(0, 10, 0, 90)
spectateBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
spectateBtn.TextColor3 = Color3.new(1, 1, 1)
spectateBtn.TextScaled = true
spectateBtn.Text = "STOP SPECTATING"
spectateBtn.BorderSizePixel = 0
spectateBtn.Parent = miscPage
local spectateListFrame = Instance.new("Frame")
spectateListFrame.Size = UDim2.new(1, -20, 1, -160)
spectateListFrame.Position = UDim2.new(0, 10, 0, 130)
spectateListFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
spectateListFrame.BorderSizePixel = 0
spectateListFrame.ClipsDescendants = true
spectateListFrame.Parent = miscPage
local spectateLayout = Instance.new("UIListLayout")
spectateLayout.Padding = UDim.new(0, 5)
spectateLayout.Parent = spectateListFrame
local settingsPage = Instance.new("Frame")
settingsPage.Name = "SettingsPage"
settingsPage.Size = UDim2.new(1, 0, 1, 0)
settingsPage.BackgroundTransparency = 1
settingsPage.Visible = false
settingsPage.Parent = pageContainer
local flyKeyLabel = Instance.new("TextLabel")
flyKeyLabel.Size = UDim2.new(1, -20, 0, 25)
flyKeyLabel.Position = UDim2.new(0, 10, 0, 10)
flyKeyLabel.BackgroundTransparency = 1
flyKeyLabel.TextColor3 = Color3.new(1, 1, 1)
flyKeyLabel.TextScaled = true
flyKeyLabel.Text = "Fly Keybind:"
flyKeyLabel.BorderSizePixel = 0
flyKeyLabel.Parent = settingsPage
local flyKeyDisplay = Instance.new("TextLabel")
flyKeyDisplay.Size = UDim2.new(1, -20, 0, 30)
flyKeyDisplay.Position = UDim2.new(0, 10, 0, 35)
flyKeyDisplay.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
flyKeyDisplay.TextColor3 = Color3.new(1, 1, 1)
flyKeyDisplay.TextScaled = true
flyKeyDisplay.Text = "F"
flyKeyDisplay.BorderSizePixel = 0
flyKeyDisplay.Parent = settingsPage
local flyKeyBtn = Instance.new("TextButton")
flyKeyBtn.Size = UDim2.new(1, -20, 0, 30)
flyKeyBtn.Position = UDim2.new(0, 10, 0, 70)
flyKeyBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
flyKeyBtn.TextColor3 = Color3.new(1, 1, 1)
flyKeyBtn.TextScaled = true
flyKeyBtn.Text = "Change"
flyKeyBtn.BorderSizePixel = 0
flyKeyBtn.Parent = settingsPage
local guiToggleKeyLabel = Instance.new("TextLabel")
guiToggleKeyLabel.Size = UDim2.new(1, -20, 0, 25)
guiToggleKeyLabel.Position = UDim2.new(0, 10, 0, 110)
guiToggleKeyLabel.BackgroundTransparency = 1
guiToggleKeyLabel.TextColor3 = Color3.new(1, 1, 1)
guiToggleKeyLabel.TextScaled = true
guiToggleKeyLabel.Text = "GUI Toggle Keybind:"
guiToggleKeyLabel.BorderSizePixel = 0
guiToggleKeyLabel.Parent = settingsPage
local guiToggleKeyDisplay = Instance.new("TextLabel")
guiToggleKeyDisplay.Size = UDim2.new(1, -20, 0, 30)
guiToggleKeyDisplay.Position = UDim2.new(0, 10, 0, 135)
guiToggleKeyDisplay.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
guiToggleKeyDisplay.TextColor3 = Color3.new(1, 1, 1)
guiToggleKeyDisplay.TextScaled = true
guiToggleKeyDisplay.Text = "RightShift"
guiToggleKeyDisplay.BorderSizePixel = 0
guiToggleKeyDisplay.Parent = settingsPage
local guiToggleKeyBtn = Instance.new("TextButton")
guiToggleKeyBtn.Size = UDim2.new(1, -20, 0, 30)
guiToggleKeyBtn.Position = UDim2.new(0, 10, 0, 170)
guiToggleKeyBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
guiToggleKeyBtn.TextColor3 = Color3.new(1, 1, 1)
guiToggleKeyBtn.TextScaled = true
guiToggleKeyBtn.Text = "Change"
guiToggleKeyBtn.BorderSizePixel = 0
guiToggleKeyBtn.Parent = settingsPage
local stopAnimLabel = Instance.new("TextLabel")
stopAnimLabel.Size = UDim2.new(1, -20, 0, 25)
stopAnimLabel.Position = UDim2.new(0, 10, 0, 210)
stopAnimLabel.BackgroundTransparency = 1
stopAnimLabel.TextColor3 = Color3.new(1, 1, 1)
stopAnimLabel.TextScaled = true
stopAnimLabel.Text = "Stop Animations on Fly:"
stopAnimLabel.BorderSizePixel = 0
stopAnimLabel.Parent = settingsPage
local stopAnimToggle = Instance.new("TextButton")
stopAnimToggle.Size = UDim2.new(0, 80, 0, 30)
stopAnimToggle.Position = UDim2.new(1, -100, 0, 210)
stopAnimToggle.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
stopAnimToggle.TextColor3 = Color3.new(1, 1, 1)
stopAnimToggle.TextScaled = true
stopAnimToggle.Text = "ON"
stopAnimToggle.BorderSizePixel = 0
stopAnimToggle.Parent = settingsPage
stopAnimToggle.MouseButton1Click:Connect(function()
stopAnimOnFly = not stopAnimOnFly
if stopAnimOnFly then
stopAnimToggle.Text = "ON"
stopAnimToggle.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
else
stopAnimToggle.Text = "OFF"
stopAnimToggle.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
end
end)
local creditsPage = Instance.new("Frame")
creditsPage.Name = "CreditsPage"
creditsPage.Size = UDim2.new(1, 0, 1, 0)
creditsPage.BackgroundTransparency = 1
creditsPage.Visible = false
creditsPage.Parent = pageContainer
local creditLabel = Instance.new("TextLabel")
creditLabel.Size = UDim2.new(0.8, 0, 0.6, 0)
creditLabel.Position = UDim2.new(0.1, 0, 0.2, 0)
creditLabel.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
creditLabel.TextColor3 = Color3.new(1, 1, 1)
creditLabel.TextScaled = true
creditLabel.TextWrapped = true
creditLabel.Text = "Made by Arouwa\n\nRoblox: youtubeamahhh\n\nDiscord: discord.gg/Tqph6drF9c"
creditLabel.BorderSizePixel = 0
creditLabel.Parent = creditsPage
local function switchTab(page, button)
mainPage.Visible = false
trollPage.Visible = false
waypointPage.Visible = false
miscPage.Visible = false
settingsPage.Visible = false
creditsPage.Visible = false
page.Visible = true
mainBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
trollBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
waypointBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
miscBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
settingsBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
creditsBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
button.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
end
mainBtn.MouseButton1Click:Connect(function()
switchTab(mainPage, mainBtn)
end)
trollBtn.MouseButton1Click:Connect(function()
switchTab(trollPage, trollBtn)
end)
waypointBtn.MouseButton1Click:Connect(function()
switchTab(waypointPage, waypointBtn)
end)
miscBtn.MouseButton1Click:Connect(function()
switchTab(miscPage, miscBtn)
end)
settingsBtn.MouseButton1Click:Connect(function()
switchTab(settingsPage, settingsBtn)
end)
creditsBtn.MouseButton1Click:Connect(function()
switchTab(creditsPage, creditsBtn)
end)
local waypoints = {}
local waypointCount = 0
local function addWaypoint()
local hrp = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
if not hrp then return end
waypointCount = waypointCount + 1
waypoints[waypointCount] = hrp.Position
local id = waypointCount
local wpBtn = Instance.new("TextButton")
wpBtn.Size = UDim2.new(1, -10, 0, 30)
wpBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
wpBtn.TextColor3 = Color3.new(1, 1, 1)
wpBtn.TextScaled = true
wpBtn.Text = "WP " .. id .. " - (" .. math.floor(hrp.Position.X) .. ", " .. math.floor(hrp.Position.Y) .. ", " .. math.floor(hrp.Position.Z) .. ")"
wpBtn.BorderSizePixel = 0
wpBtn.Parent = waypointListFrame
wpBtn.MouseButton1Click:Connect(function()
targetPos = waypoints[id]
targetPlayer = nil
flying = true
lastStuckPos = nil
stuckTimer = 0
end)
end
addWaypointBtn.MouseButton1Click:Connect(addWaypoint)
local function createESP(plr)
if plr == player or espBoxes[plr] then return end
local box = Instance.new("BoxHandleAdornment")
box.Name = "ESPBox"
box.Adornee = plr.Character and plr.Character:FindFirstChild("HumanoidRootPart")
box.Size = Vector3.new(4, 6, 4)
box.Color3 = Color3.fromRGB(255, 0, 0)
box.Transparency = 0.3
box.Parent = plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") or nil
espBoxes[plr] = box
end
local function removeESP(plr)
if espBoxes[plr] then
espBoxes[plr]:Destroy()
espBoxes[plr] = nil
end
end
local function updateESP()
if not espEnabled then return end
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= player and plr.Character then
createESP(plr)
end
end
end
flyToggle.MouseButton1Click:Connect(function()
flying = not flying
if flying then
flyLabel.Text = "FLY: ON"
flyToggle.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
flyToggle.Text = "ON"
lastStuckPos = nil
stuckTimer = 0
else
flyLabel.Text = "FLY: OFF"
flyToggle.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
flyToggle.Text = "OFF"
end
end)
noclipToggle.MouseButton1Click:Connect(function()
noclip = not noclip
if noclip then
noclipLabel.Text = "NOCLIP: ON"
noclipToggle.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
noclipToggle.Text = "ON"
else
noclipLabel.Text = "NOCLIP: OFF"
noclipToggle.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
noclipToggle.Text = "OFF"
end
end)
rejoinBtn.MouseButton1Click:Connect(function()
TeleportService:Teleport(game.PlaceId, player)
end)
stopBtn.MouseButton1Click:Connect(function()
targetPos = nil
targetPlayer = nil
lastStuckPos = nil
stuckTimer = 0
end)
loopTPToggle.MouseButton1Click:Connect(function()
loopTP = not loopTP
if loopTP then
loopTPLabel.Text = "LOOP TP: ON"
loopTPToggle.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
loopTPToggle.Text = "ON"
else
loopTPLabel.Text = "LOOP TP: OFF"
loopTPToggle.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
loopTPToggle.Text = "OFF"
end
end)
espToggle.MouseButton1Click:Connect(function()
espEnabled = not espEnabled
if espEnabled then
espLabel.Text = "ESP: ON"
espToggle.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
espToggle.Text = "ON"
updateESP()
else
espLabel.Text = "ESP: OFF"
espToggle.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
espToggle.Text = "OFF"
for _, plr in pairs(Players:GetPlayers()) do
removeESP(plr)
end
end
end)
spectateBtn.MouseButton1Click:Connect(function()
spectating = false
spectatePlayer = nil
spectateLabel.Text = "SPECTATE: None"
local cam = workspace.CurrentCamera
cam.CFrame = player.Character and player.Character:FindFirstChild("HumanoidRootPart") and CFrame.new(player.Character.HumanoidRootPart.Position + Vector3.new(0, 5, 0)) or CFrame.new(0, 0, 0)
end)
speedKnob.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingSpeed = true
mainFrame.Draggable = false
end
end)
UIS.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingSpeed = false
mainFrame.Draggable = true
end
end)
UIS.InputChanged:Connect(function(input)
if draggingSpeed and input.UserInputType == Enum.UserInputType.MouseMovement then
local x = math.clamp((input.Position.X - speedBar.AbsolutePosition.X) / speedBar.AbsoluteSize.X, 0, 1)
speedFill.Size = UDim2.new(x, 0, 1, 0)
speedKnob.Position = UDim2.new(x, -7, -0.4, 0)
speed = math.floor(10 + (100 - 10) * x)
speedLabel.Text = "Speed: " .. speed
end
end)
local function getDisplayName(plr)
local displayName = plr.Name
pcall(function()
displayName = plr.DisplayName or plr.Name
end)
return displayName
end
local function refreshPlayers()
for _, btn in pairs(playerListFrame:GetChildren()) do
if btn:IsA("TextButton") then
btn:Destroy()
end
end
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= player then
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -10, 0, 30)
btn.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
btn.TextColor3 = Color3.new(1, 1, 1)
btn.TextScaled = true
btn.Text = getDisplayName(plr)
btn.BorderSizePixel = 0
btn.Parent = playerListFrame
btn.MouseButton1Click:Connect(function()
targetPlayer = plr
targetPos = nil
flying = true
lastStuckPos = nil
stuckTimer = 0
end)
end
end
end
local function refreshSpectateList()
for _, btn in pairs(spectateListFrame:GetChildren()) do
if btn:IsA("TextButton") then
btn:Destroy()
end
end
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= player then
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -10, 0, 30)
btn.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
btn.TextColor3 = Color3.new(1, 1, 1)
btn.TextScaled = true
btn.Text = getDisplayName(plr)
btn.BorderSizePixel = 0
btn.Parent = spectateListFrame
btn.MouseButton1Click:Connect(function()
spectating = true
spectatePlayer = plr
spectateLabel.Text = "SPECTATE: " .. getDisplayName(plr)
end)
end
end
end
refreshPlayers()
refreshSpectateList()
Players.PlayerAdded:Connect(function()
refreshPlayers()
refreshSpectateList()
if espEnabled then
updateESP()
end
end)
Players.PlayerRemoving:Connect(function(plr)
refreshPlayers()
refreshSpectateList()
removeESP(plr)
end)
local function isPathClear(startPos, endPos)
if not startPos or not endPos then return true end
local direction = (endPos - startPos)
local distance = direction.Magnitude
if distance < 1 then return true end
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
if player.Character then
raycastParams.FilterDescendantsInstances = {player.Character}
end
pcall(function()
local result = workspace:Raycast(startPos, direction.Unit * math.min(distance, 50), raycastParams)
return result == nil
end)
return true
end
local function findBestDirection(hrp, targetDir, cam)
if targetDir.Magnitude < 0.1 then return targetDir end
if isPathClear(hrp.Position, hrp.Position + targetDir.Unit * 30) then
return targetDir
end
local alternatives = {
cam.CFrame.RightVector,
-cam.CFrame.RightVector,
Vector3.new(0, 1, 0),
Vector3.new(0, -1, 0),
}
for _, dir in ipairs(alternatives) do
if isPathClear(hrp.Position, hrp.Position + dir * 30) then
return dir
end
end
return targetDir
end
local function stopAnimations(char)
if not char then return end
local humanoid = char:FindFirstChild("Humanoid")
if not humanoid then return end
for _, track in pairs(humanoid:GetPlayingAnimationTracks()) do
track:Stop()
end
end
local flyKey = Enum.KeyCode.F
local guiToggleKey = Enum.KeyCode.RightShift
local bindingFlyKey = false
local bindingGuiToggle = false
local function keyCodeToString(keyCode)
local keyString = tostring(keyCode):split(".")[3]
return keyString or "Unknown"
end
flyKeyBtn.MouseButton1Click:Connect(function()
bindingFlyKey = true
flyKeyDisplay.Text = "Waiting..."
flyKeyDisplay.TextColor3 = Color3.fromRGB(255, 255, 0)
end)
guiToggleKeyBtn.MouseButton1Click:Connect(function()
bindingGuiToggle = true
guiToggleKeyDisplay.Text = "Waiting..."
guiToggleKeyDisplay.TextColor3 = Color3.fromRGB(255, 255, 0)
end)
UIS.InputBegan:Connect(function(input, gp)
if gp then return end
if bindingFlyKey then
flyKey = input.KeyCode
flyKeyDisplay.Text = keyCodeToString(flyKey)
flyKeyDisplay.TextColor3 = Color3.new(1, 1, 1)
bindingFlyKey = false
return
end
if bindingGuiToggle then
guiToggleKey = input.KeyCode
guiToggleKeyDisplay.Text = keyCodeToString(guiToggleKey)
guiToggleKeyDisplay.TextColor3 = Color3.new(1, 1, 1)
bindingGuiToggle = false
return
end
if input.KeyCode == flyKey then
flying = not flying
if flying then
flyLabel.Text = "FLY: ON"
flyToggle.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
flyToggle.Text = "ON"
lastStuckPos = nil
stuckTimer = 0
else
flyLabel.Text = "FLY: OFF"
flyToggle.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
flyToggle.Text = "OFF"
end
end
if input.KeyCode == guiToggleKey then
mainFrame.Visible = not mainFrame.Visible
end
end)
resizeHandle.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
resizing = true
startSize = mainFrame.Size
startPos = resizeHandle.AbsolutePosition
mainFrame.Draggable = false
end
end)
UIS.InputChanged:Connect(function(input)
if resizing and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - startPos
local newWidth = math.max(300, startSize.X.Offset + delta.X)
local newHeight = math.max(300, startSize.Y.Offset + delta.Y)
mainFrame.Size = UDim2.new(0, newWidth, 0, newHeight)
end
end)
RunService.RenderStepped:Connect(function()
if espEnabled then
updateESP()
end
if spectating and spectatePlayer and spectatePlayer.Character then
local cam = workspace.CurrentCamera
local th = spectatePlayer.Character:FindFirstChild("HumanoidRootPart")
if th then
cam.CFrame = CFrame.new(th.Position + Vector3.new(0, 5, 10), th.Position)
end
end
if not flying then return end
local hrp = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
if not hrp then return end
if stopAnimOnFly then
stopAnimations(player.Character)
end
local cam = workspace.CurrentCamera
local dir = Vector3.zero
if targetPlayer and targetPlayer.Character then
local th = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
if th then
dir = th.Position - hrp.Position
if not isPathClear(hrp.Position, th.Position) then
dir = findBestDirection(hrp, dir, cam)
end
end
elseif targetPos then
dir = targetPos - hrp.Position
if not isPathClear(hrp.Position, targetPos) then
dir = findBestDirection(hrp, dir, cam)
end
else
if UIS:IsKeyDown(Enum.KeyCode.W) then dir = dir + cam.CFrame.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.S) then dir = dir - cam.CFrame.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.A) then dir = dir - cam.CFrame.RightVector end
if UIS:IsKeyDown(Enum.KeyCode.D) then dir = dir + cam.CFrame.RightVector end
if UIS:IsKeyDown(Enum.KeyCode.Space) then dir = dir + Vector3.new(0, 1, 0) end
if UIS:IsKeyDown(Enum.KeyCode.LeftControl) then dir = dir - Vector3.new(0, 1, 0) end
end
if dir.Magnitude > 0.5 then
hrp.Velocity = dir.Unit * speed
else
if not loopTP then
targetPlayer = nil
targetPos = nil
end
hrp.Velocity = Vector3.zero
end
end)
RunService.Stepped:Connect(function()
if not noclip then return end
if not player.Character then return end
for _, v in pairs(player.Character:GetDescendants()) do
if v:IsA("BasePart") then
v.CanCollide = false
end
end
end)
Comments (0)
Please login to comment
Login with Discord
Loading comments...