
Keyless

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local VirtualUser = game:GetService("VirtualUser")
local VIM = game:GetService("VirtualInputManager")
local LocalPlayer = Players.LocalPlayer
local ToolSequence = {
"Melee",
"Machine Gun",
"Laser",
"Rocket Launchers"
}
local Config = {
StopScripts = false,
-- Farm & Basic
TargetToolName = "", AutoEquip = false,
MultiAutoEquip = false, MultiEquipDelay = 1,
CoordX = 0, CoordY = 0, CoordZ = 0, TpDelay = 1, AutoTp = false,
AutoAttack = false, AutoSpawn = false, AntiAfk = false,
-- Auto Farm (Behind TP)
AutoFarm = false, FarmDistance = 5,
-- Speed
SpeedMult = 2, AutoSpeed = false, HoldQSpeed = false, IsQHeld = false,
-- Orbit
OrbitCenter = Vector3.new(0, 50, 0), OrbitRadius = 20, OrbitSpeed = 2, OrbitEnabled = false, OrbitClockwise = true, OrbitConnection = nil, OrbitAngle = 0,
-- Aim
AimToiletAuto = false, AimToiletHoldE = false,
AimPlayerAuto = false, AimPlayerHoldE = false, IsEHeld = false,
-- ESP
EspPlayer = false, EspToilet = false
}
local CachedToilets = {}
task.spawn(function()
while true do
if Config.StopScripts then break end
local tempCache = {}
-- Ищем папку с мобами в Workspace
local enemyFolder = workspace:FindFirstChild("Enemies") or workspace:FindFirstChild("Toilets")
if enemyFolder then
for _, obj in pairs(enemyFolder:GetDescendants()) do
if obj:IsA("Model") and obj ~= LocalPlayer.Character then
-- Проверяем наличие Humanoid, чтобы избежать захвата мусорных моделей
if obj:FindFirstChild("Humanoid") then
table.insert(tempCache, obj)
end
end
end
end
CachedToilets = tempCache
task.wait(1)
end
end)
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "ProHub_Ultimate"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
pcall(function() ScreenGui.Parent = game:GetService("CoreGui") end)
if not ScreenGui.Parent then ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") end
local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 380, 0, 500)
MainFrame.Position = UDim2.new(0.5, -190, 0.5, -250)
MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
MainFrame.BorderSizePixel = 0
MainFrame.ClipsDescendants = true
MainFrame.Parent = ScreenGui
Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 8)
local Header = Instance.new("Frame")
Header.Size = UDim2.new(1, 0, 0, 45)
Header.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
Header.BorderSizePixel = 0
Header.Parent = MainFrame
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, -100, 1, 0)
Title.Position = UDim2.new(0, 15, 0, 0)
Title.Text = "🛁 Pro Hub Ultimate"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.BackgroundTransparency = 1
Title.Font = Enum.Font.GothamBold
Title.TextSize = 16
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = Header
local MinBtn = Instance.new("TextButton")
MinBtn.Size = UDim2.new(0, 40, 1, 0)
MinBtn.Position = UDim2.new(1, -80, 0, 0)
MinBtn.BackgroundTransparency = 1
MinBtn.Text = "−"
MinBtn.Font = Enum.Font.GothamBold
MinBtn.TextSize = 24
MinBtn.TextColor3 = Color3.fromRGB(200, 200, 200)
MinBtn.Parent = Header
local CloseBtn = Instance.new("TextButton")
CloseBtn.Size = UDim2.new(0, 40, 1, 0)
CloseBtn.Position = UDim2.new(1, -40, 0, 0)
CloseBtn.BackgroundTransparency = 1
CloseBtn.Text = "×"
CloseBtn.Font = Enum.Font.GothamBold
CloseBtn.TextSize = 24
CloseBtn.TextColor3 = Color3.fromRGB(255, 100, 100)
CloseBtn.Parent = Header
local Holder = Instance.new("ScrollingFrame")
Holder.Size = UDim2.new(1, -20, 1, -55)
Holder.Position = UDim2.new(0, 10, 0, 50)
Holder.BackgroundTransparency = 1
Holder.BorderSizePixel = 0
Holder.ScrollBarThickness = 4
Holder.AutomaticCanvasSize = Enum.AutomaticSize.Y
Holder.Parent = MainFrame
local UIListLayout = Instance.new("UIListLayout")
UIListLayout.Padding = UDim.new(0, 8)
UIListLayout.Parent = Holder
local function CreateSection(title)
local Section = Instance.new("Frame")
Section.Size = UDim2.new(1, 0, 0, 0)
Section.BackgroundTransparency = 1
Section.AutomaticSize = Enum.AutomaticSize.Y
Section.Parent = Holder
local Label = Instance.new("TextLabel")
Label.Size = UDim2.new(1, 0, 0, 25)
Label.Text = title
Label.TextColor3 = Color3.fromRGB(150, 150, 180)
Label.BackgroundTransparency = 1
Label.Font = Enum.Font.GothamBold
Label.TextSize = 12
Label.TextXAlignment = Enum.TextXAlignment.Left
Label.Parent = Section
local Container = Instance.new("Frame")
Container.Size = UDim2.new(1, 0, 0, 0)
Container.Position = UDim2.new(0, 0, 0, 25)
Container.BackgroundTransparency = 1
Container.AutomaticSize = Enum.AutomaticSize.Y
Container.Parent = Section
local Layout = Instance.new("UIListLayout")
Layout.Padding = UDim.new(0, 5)
Layout.Parent = Container
return Container
end
local function CreateToggle(parent, name, defaultState, callback)
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(1, 0, 0, 40)
Frame.BackgroundColor3 = Color3.fromRGB(35, 35, 40)
Frame.BorderSizePixel = 0
Frame.Parent = parent
local Label = Instance.new("TextLabel")
Label.Size = UDim2.new(1, -60, 1, 0)
Label.Position = UDim2.new(0, 10, 0, 0)
Label.Text = name
Label.TextColor3 = Color3.fromRGB(220, 220, 220)
Label.BackgroundTransparency = 1
Label.Font = Enum.Font.Gotham
Label.TextSize = 14
Label.TextXAlignment = Enum.TextXAlignment.Left
Label.Parent = Frame
local Btn = Instance.new("TextButton")
Btn.Size = UDim2.new(0, 40, 0, 20)
Btn.Position = UDim2.new(1, -50, 0.5, -10)
Btn.Text = ""
Btn.BackgroundColor3 = Color3.fromRGB(60, 60, 65)
Btn.BorderSizePixel = 0
Btn.Parent = Frame
local Indicator = Instance.new("Frame")
Indicator.Size = UDim2.new(0, 16, 0, 16)
Indicator.Position = UDim2.new(0, 2, 0.5, -8)
Indicator.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Indicator.BorderSizePixel = 0
Indicator.Parent = Btn
local state = defaultState or false
Btn.BackgroundColor3 = state and Color3.fromRGB(70, 180, 100) or Color3.fromRGB(60, 60, 65)
Indicator.Position = state and UDim2.new(1, -18, 0.5, -8) or UDim2.new(0, 2, 0.5, -8)
Btn.MouseButton1Click:Connect(function()
state = not state
Btn.BackgroundColor3 = state and Color3.fromRGB(70, 180, 100) or Color3.fromRGB(60, 60, 65)
Indicator.Position = state and UDim2.new(1, -18, 0.5, -8) or UDim2.new(0, 2, 0.5, -8)
callback(state)
end)
return Frame
end
local function CreateInput(parent, placeholder, defaultText, callback)
local Input = Instance.new("TextBox")
Input.Size = UDim2.new(1, 0, 0, 35)
Input.BackgroundColor3 = Color3.fromRGB(35, 35, 40)
Input.BorderSizePixel = 0
Input.Text = defaultText or ""
Input.PlaceholderText = placeholder
Input.Font = Enum.Font.Gotham
Input.TextSize = 13
Input.TextColor3 = Color3.fromRGB(255, 255, 255)
Input.ClearTextOnFocus = false
Input.Parent = parent
Input.FocusLost:Connect(function() callback(Input.Text, Input) end)
return Input
end
local function CreateButton(parent, text, callback)
local Btn = Instance.new("TextButton")
Btn.Size = UDim2.new(1, 0, 0, 35)
Btn.BackgroundColor3 = Color3.fromRGB(50, 50, 60)
Btn.Text = text
Btn.Font = Enum.Font.GothamBold
Btn.TextSize = 13
Btn.TextColor3 = Color3.fromRGB(255, 255, 255)
Btn.BorderSizePixel = 0
Btn.Parent = parent
Btn.MouseButton1Click:Connect(callback)
return Btn
end
local BaseSec = CreateSection("⚔️ FARM & COMBAT")
CreateInput(BaseSec, "Farm Distance (Studs)", tostring(Config.FarmDistance), function(txt, obj)
local val = tonumber(txt)
if val then Config.FarmDistance = val else obj.Text = tostring(Config.FarmDistance) end
end)
CreateToggle(BaseSec, "🤖 Auto Farm (TP Behind)", Config.AutoFarm, function(state) Config.AutoFarm = state end)
CreateInput(BaseSec, "Single Tool Name", "", function(txt) Config.TargetToolName = txt end)
CreateToggle(BaseSec, "⚡ Single Auto-Equip", Config.AutoEquip, function(state) Config.AutoEquip = state end)
CreateInput(BaseSec, "Multi-Equip Delay (sec)", tostring(Config.MultiEquipDelay), function(txt, obj) local val = tonumber(txt); if val then Config.MultiEquipDelay = val else obj.Text = tostring(Config.MultiEquipDelay) end end)
CreateToggle(BaseSec, "🔄 Multi Auto-Equip", Config.MultiAutoEquip, function(state) Config.MultiAutoEquip = state end)
CreateToggle(BaseSec, "⚔️ Auto Attack", Config.AutoAttack, function(state) Config.AutoAttack = state end)
CreateToggle(BaseSec, "♻️ Auto Spawn", Config.AutoSpawn, function(state) Config.AutoSpawn = state end)
local TpSec = CreateSection("📍 TELEPORT (COORDS)")
CreateInput(TpSec, "X Coordinate", tostring(Config.CoordX), function(txt, obj) local val = tonumber(txt); if val then Config.CoordX = val else obj.Text = tostring(Config.CoordX) end end)
CreateInput(TpSec, "Y Coordinate", tostring(Config.CoordY), function(txt, obj) local val = tonumber(txt); if val then Config.CoordY = val else obj.Text = tostring(Config.CoordY) end end)
CreateInput(TpSec, "Z Coordinate", tostring(Config.CoordZ), function(txt, obj) local val = tonumber(txt); if val then Config.CoordZ = val else obj.Text = tostring(Config.CoordZ) end end)
CreateInput(TpSec, "Delay (seconds)", tostring(Config.TpDelay), function(txt, obj) local val = tonumber(txt); if val then Config.TpDelay = val else obj.Text = tostring(Config.TpDelay) end end)
CreateButton(TpSec, "📍 Телепортироваться", function()
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(Config.CoordX, Config.CoordY, Config.CoordZ)
end
end)
CreateToggle(TpSec, "Авто TP (с задержкой)", Config.AutoTp, function(state) Config.AutoTp = state end)
local SpeedSec = CreateSection("⚡ PLAYER SPEED")
CreateInput(SpeedSec, "Speed Multiplier", tostring(Config.SpeedMult), function(txt, obj) local val = tonumber(txt); if val then Config.SpeedMult = val else obj.Text = tostring(Config.SpeedMult) end end)
CreateToggle(SpeedSec, "🏃 Auto Speed", Config.AutoSpeed, function(state) Config.AutoSpeed = state end)
CreateToggle(SpeedSec, "⌨️ Hold Q Speed", Config.HoldQSpeed, function(state) Config.HoldQSpeed = state end)
local OrbitSec = CreateSection("🌀 ULTRA DODGE (ORBIT)")
local OrbitCoords = CreateInput(OrbitSec, "Center Coords (X, Y, Z)", "0, 50, 0", function(txt)
local x, y, z = txt:match("([^,]+),([^,]+),([^,]+)")
if x and y and z then Config.OrbitCenter = Vector3.new(tonumber(x), tonumber(y), tonumber(z)) end
end)
CreateButton(OrbitSec, "📍 Set Center to My Position", function()
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
local pos = LocalPlayer.Character.HumanoidRootPart.Position
Config.OrbitCenter = pos
OrbitCoords.Text = string.format("%d, %d, %d", math.floor(pos.X), math.floor(pos.Y), math.floor(pos.Z))
end
end)
CreateInput(OrbitSec, "Radius", tostring(Config.OrbitRadius), function(txt, obj) local val = tonumber(txt); if val then Config.OrbitRadius = val else obj.Text = tostring(Config.OrbitRadius) end end)
CreateInput(OrbitSec, "Speed", tostring(Config.OrbitSpeed), function(txt, obj) local val = tonumber(txt); if val then Config.OrbitSpeed = val else obj.Text = tostring(Config.OrbitSpeed) end end)
CreateToggle(OrbitSec, "🚀 Enable Ultra Dodge", Config.OrbitEnabled, function(state) Config.OrbitEnabled = state end)
local AimSec = CreateSection("🎯 AIMBOTS")
CreateToggle(AimSec, "👾 Toilet Autoaim", Config.AimToiletAuto, function(state) Config.AimToiletAuto = state end)
CreateToggle(AimSec, "⌨️ Hold E Toilet Aim", Config.AimToiletHoldE, function(state) Config.AimToiletHoldE = state end)
CreateToggle(AimSec, "👤 Player Autoaim", Config.AimPlayerAuto, function(state) Config.AimPlayerAuto = state end)
CreateToggle(AimSec, "⌨️ Hold E Player Aim", Config.AimPlayerHoldE, function(state) Config.AimPlayerHoldE = state end)
-- ESP SECTION
local ActivePlayerESP = {}
local ActiveToiletESP = {}
local function ClearPlayerESP()
for _, data in pairs(ActivePlayerESP) do
if data.Billboard then data.Billboard:Destroy() end
if data.Highlight then data.Highlight:Destroy() end
end
table.clear(ActivePlayerESP)
end
local function ClearToiletESP()
for _, data in pairs(ActiveToiletESP) do
if data.Billboard then data.Billboard:Destroy() end
if data.Highlight then data.Highlight:Destroy() end
end
table.clear(ActiveToiletESP)
end
local EspSec = CreateSection("👁️ VISUALS (ESP)")
CreateToggle(EspSec, "👤 Player ESP", Config.EspPlayer, function(state)
Config.EspPlayer = state
if not state then ClearPlayerESP() end
end)
CreateToggle(EspSec, "👾 Toilet ESP", Config.EspToilet, function(state)
Config.EspToilet = state
if not state then ClearToiletESP() end
end)
local MiscSec = CreateSection("🛡️ MISC")
CreateToggle(MiscSec, "💤 Anti-AFK", Config.AntiAfk, function(state) Config.AntiAfk = state end)
Instance.new("Frame", Holder).Size = UDim2.new(1, 0, 0, 10)
-- === 4. ЛОГИКА ОКНА ===
local isMinimized = false
MinBtn.MouseButton1Click:Connect(function()
isMinimized = not isMinimized
MainFrame:TweenSize(isMinimized and UDim2.new(0, 380, 0, 45) or UDim2.new(0, 380, 0, 500), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.2, true)
MinBtn.Text = isMinimized and "+" or "−"
end)
CloseBtn.MouseButton1Click:Connect(function()
Config.StopScripts = true
ClearPlayerESP()
ClearToiletESP()
ScreenGui:Destroy()
end)
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed or UserInputService:GetFocusedTextBox() then return end
if input.KeyCode == Enum.KeyCode.RightControl then ScreenGui.Enabled = not ScreenGui.Enabled
elseif input.KeyCode == Enum.KeyCode.Q then Config.IsQHeld = true
elseif input.KeyCode == Enum.KeyCode.E then Config.IsEHeld = true end
end)
UserInputService.InputEnded:Connect(function(input, gameProcessed)
if gameProcessed or UserInputService:GetFocusedTextBox() then return end
if input.KeyCode == Enum.KeyCode.Q then Config.IsQHeld = false
elseif input.KeyCode == Enum.KeyCode.E then Config.IsEHeld = false end
end)
local dragging, dragStart, startPos = false, nil, nil
Header.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true; dragStart = input.Position; startPos = MainFrame.Position end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
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
end)
UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end)
local function equipSingleTool()
local character = LocalPlayer.Character
if not character then return end
local humanoid = character:FindFirstChildOfClass("Humanoid")
if not humanoid or Config.TargetToolName == "" then return end
for _, item in pairs(character:GetChildren()) do
if item:IsA("Tool") and item.Name == Config.TargetToolName then return end
end
local tool = LocalPlayer.Backpack:FindFirstChild(Config.TargetToolName)
if tool and tool:IsA("Tool") then humanoid:EquipTool(tool) end
end
task.spawn(function()
while not Config.StopScripts do
if Config.AutoEquip then equipSingleTool() end
task.wait(0.3)
end
end)
task.spawn(function()
local currentIndex = 1
while not Config.StopScripts do
if Config.MultiAutoEquip and #ToolSequence > 0 then
local character = LocalPlayer.Character
if character then
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
local toolName = ToolSequence[currentIndex]
local tool = LocalPlayer.Backpack:FindFirstChild(toolName) or character:FindFirstChild(toolName)
if tool and tool:IsA("Tool") then
humanoid:EquipTool(tool)
end
currentIndex = currentIndex + 1
if currentIndex > #ToolSequence then
currentIndex = 1
end
end
end
task.wait(Config.MultiEquipDelay)
else
task.wait(0.5)
end
end
end)
LocalPlayer.CharacterAdded:Connect(function()
task.wait(0.5)
if Config.AutoEquip then equipSingleTool() end
end)
task.spawn(function()
while not Config.StopScripts do
if Config.AutoTp then
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(Config.CoordX, Config.CoordY, Config.CoordZ)
end
task.wait(Config.TpDelay)
else
task.wait(0.5)
end
end
end)
task.spawn(function()
while not Config.StopScripts do
if Config.AutoSpawn then
local PlayerGui = LocalPlayer:FindFirstChild("PlayerGui")
local mainUI = PlayerGui and PlayerGui:FindFirstChild("MainUI")
local menuBG = mainUI and mainUI:FindFirstChild("MenuBG")
if menuBG and menuBG.Visible then
pcall(function()
VIM:SendKeyEvent(true, Enum.KeyCode.BackSlash, false, game)
task.wait(0.25)
VIM:SendKeyEvent(false, Enum.KeyCode.BackSlash, false, game)
task.wait(0.25)
VIM:SendKeyEvent(true, Enum.KeyCode.Down, false, game)
task.wait(0.25)
VIM:SendKeyEvent(false, Enum.KeyCode.Down, false, game)
task.wait(0.25)
VIM:SendKeyEvent(true, Enum.KeyCode.Return, false, game)
task.wait(0.25)
VIM:SendKeyEvent(false, Enum.KeyCode.Return, false, game)
end)
task.wait(2)
end
end
task.wait(1)
end
end)
local function GetEffectiveMultiplier()
if Config.AutoSpeed then return Config.SpeedMult end
if Config.HoldQSpeed and Config.IsQHeld then return Config.SpeedMult end
return 1
end
local function accelerateModel(character)
for _, obj in pairs(character:GetDescendants()) do
if obj:IsA("Animator") then
local animController = obj.Parent
if animController:IsA("AnimationController") or animController:IsA("Humanoid") then
obj.AnimationPlayed:Connect(function(track) track:AdjustSpeed(GetEffectiveMultiplier()) end)
end
end
end
local root = character:WaitForChild("HumanoidRootPart", 5)
if root then
local lastCFrame = root.CFrame
local connection
connection = RunService.Heartbeat:Connect(function()
if Config.StopScripts or not character.Parent or not root.Parent or not ScreenGui.Parent then connection:Disconnect(); return end
local currentMultiplier = GetEffectiveMultiplier()
local movement = root.CFrame.Position - lastCFrame.Position
local horizontalMovement = Vector3.new(movement.X, 0, movement.Z) * (currentMultiplier - 1)
local verticalMovement = Vector3.new(0, movement.Y * (currentMultiplier - 1), 0)
if movement.Magnitude > 0.01 and movement.Magnitude < 50 then root.CFrame = root.CFrame + horizontalMovement + verticalMovement end
lastCFrame = root.CFrame
end)
end
end
if LocalPlayer.Character then accelerateModel(LocalPlayer.Character) end
LocalPlayer.CharacterAdded:Connect(function(character) task.wait(0.5); accelerateModel(character) end)
local function GetClosestToilet()
local closest, shortestDist = nil, math.huge
local lpChar = LocalPlayer.Character
if not lpChar or not lpChar.PrimaryPart then return nil end
local lpPos = lpChar.PrimaryPart.Position
for _, model in pairs(CachedToilets) do
if model.Parent then
local root = model.PrimaryPart or model:FindFirstChild("HumanoidRootPart")
local hum = model:FindFirstChild("Humanoid")
if root and (not hum or hum.Health > 0) then
local dist = (root.Position - lpPos).Magnitude
if dist < shortestDist then shortestDist = dist; closest = root end
end
end
end
return closest
end
local function GetClosestPlayer()
local closest, shortestDist = nil, math.huge
local lpChar = LocalPlayer.Character
if not lpChar or not lpChar.PrimaryPart then return nil end
local lpPos = lpChar.PrimaryPart.Position
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= LocalPlayer and plr.Character then
local root = plr.Character:FindFirstChild("HumanoidRootPart")
local hum = plr.Character:FindFirstChild("Humanoid")
if root and hum and hum.Health > 0 then
local dist = (root.Position - lpPos).Magnitude
if dist < shortestDist then shortestDist = dist; closest = root end
end
end
end
return closest
end
RunService.Heartbeat:Connect(function(deltaTime)
if Config.StopScripts then return end
if Config.AutoAttack then
local tool = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Tool")
if tool then tool:Activate() end
end
if Config.AutoFarm then
local target = GetClosestToilet()
local char = LocalPlayer.Character
if target and char and char:FindFirstChild("HumanoidRootPart") then
local hrp = char.HumanoidRootPart
local behindPosition = target.CFrame * CFrame.new(0, 0, Config.FarmDistance)
hrp.CFrame = CFrame.lookAt(behindPosition.Position, target.Position)
hrp.AssemblyLinearVelocity = Vector3.zero
hrp.AssemblyAngularVelocity = Vector3.zero
end
end
if not Config.OrbitEnabled then
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") and Config.OrbitConnection then
LocalPlayer.Character.HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
Config.OrbitConnection = false
end
return
end
if not Config.AutoFarm then
Config.OrbitConnection = true
local char = LocalPlayer.Character; local root = char and char:FindFirstChild("HumanoidRootPart")
if not char or not root then return end
local direction = Config.OrbitClockwise and -1 or 1
Config.OrbitAngle = Config.OrbitAngle + (Config.OrbitSpeed * deltaTime * direction)
local newX = Config.OrbitCenter.X + math.cos(Config.OrbitAngle) * Config.OrbitRadius
local newZ = Config.OrbitCenter.Z + math.sin(Config.OrbitAngle) * Config.OrbitRadius
char:PivotTo(CFrame.new(newX, Config.OrbitCenter.Y, newZ))
root.AssemblyLinearVelocity = Vector3.zero; root.AssemblyAngularVelocity = Vector3.zero
end
end)
RunService.RenderStepped:Connect(function()
if Config.StopScripts then return end
local camera = workspace.CurrentCamera
if not camera then return end
local targetToAim = nil
if Config.AimPlayerAuto or (Config.AimPlayerHoldE and Config.IsEHeld) then
targetToAim = GetClosestPlayer()
end
if not targetToAim and (Config.AimToiletAuto or (Config.AimToiletHoldE and Config.IsEHeld)) then
targetToAim = GetClosestToilet()
end
if targetToAim then
camera.CFrame = CFrame.lookAt(camera.CFrame.Position, targetToAim.Position)
end
if Config.EspPlayer then
local currentPlayers = {}
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= LocalPlayer and plr.Character then
local char = plr.Character
local root = char:FindFirstChild("HumanoidRootPart") or char.PrimaryPart
local hum = char:FindFirstChild("Humanoid")
if root and hum and hum.Health > 0 then
currentPlayers[char] = true
local espData = ActivePlayerESP[char]
if not espData then
local bg = Instance.new("BillboardGui")
bg.Size = UDim2.new(0, 200, 0, 50)
bg.AlwaysOnTop = true
bg.Adornee = root
bg.StudsOffset = Vector3.new(0, 3.5, 0)
bg.Parent = ScreenGui
local tl = Instance.new("TextLabel")
tl.Size = UDim2.new(1, 0, 1, 0)
tl.BackgroundTransparency = 1
tl.Font = Enum.Font.GothamBold
tl.TextSize = 12
tl.TextColor3 = Color3.fromRGB(63, 255, 0)
tl.TextStrokeTransparency = 0
tl.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
tl.Parent = bg
local hl = Instance.new("Highlight")
hl.FillColor = Color3.fromRGB(63, 255, 0)
hl.OutlineColor = Color3.fromRGB(255, 255, 255)
hl.FillTransparency = 0.5
hl.Parent = char
espData = {Billboard = bg, TextLabel = tl, Highlight = hl}
ActivePlayerESP[char] = espData
end
if LocalPlayer.Character and LocalPlayer.Character.PrimaryPart then
local dist = math.floor((root.Position - LocalPlayer.Character.PrimaryPart.Position).Magnitude)
local hp = math.floor(hum.Health)
local maxHp = math.floor(hum.MaxHealth)
espData.TextLabel.Text = string.format("%s\nHP: %d/%d\n[%d studs]", plr.Name, hp, maxHp, dist)
end
end
end
end
for char, data in pairs(ActivePlayerESP) do
if not currentPlayers[char] or not char.Parent then
if data.Billboard then data.Billboard:Destroy() end
if data.Highlight then data.Highlight:Destroy() end
ActivePlayerESP[char] = nil
end
end
end
if Config.EspToilet then
local currentToilets = {}
for _, model in pairs(CachedToilets) do
if model.Parent then
local root = model.PrimaryPart or model:FindFirstChild("HumanoidRootPart")
local hum = model:FindFirstChild("Humanoid")
if root and (not hum or hum.Health > 0) then
currentToilets[model] = true
local espData = ActiveToiletESP[model]
if not espData then
local bg = Instance.new("BillboardGui")
bg.Size = UDim2.new(0, 200, 0, 50)
bg.AlwaysOnTop = true
bg.Adornee = root
bg.StudsOffset = Vector3.new(0, 3.5, 0)
bg.Parent = ScreenGui
local tl = Instance.new("TextLabel")
tl.Size = UDim2.new(1, 0, 1, 0)
tl.BackgroundTransparency = 1
tl.Font = Enum.Font.GothamBold
tl.TextSize = 12
tl.TextColor3 = Color3.fromRGB(255, 60, 60)
tl.TextStrokeTransparency = 0
tl.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
tl.Parent = bg
local hl = Instance.new("Highlight")
hl.FillColor = Color3.fromRGB(255, 60, 60)
hl.OutlineColor = Color3.fromRGB(255, 255, 255)
hl.FillTransparency = 0.5
hl.Parent = model
espData = {Billboard = bg, TextLabel = tl, Highlight = hl}
ActiveToiletESP[model] = espData
end
if LocalPlayer.Character and LocalPlayer.Character.PrimaryPart then
local dist = math.floor((root.Position - LocalPlayer.Character.PrimaryPart.Position).Magnitude)
local hp = hum and math.floor(hum.Health) or 0
local maxHp = hum and math.floor(hum.MaxHealth) or 0
if hum then
espData.TextLabel.Text = string.format("%s\nHP: %d/%d\n[%d studs]", model.Name, hp, maxHp, dist)
else
espData.TextLabel.Text = string.format("%s\n[%d studs]", model.Name, dist)
end
end
end
end
end
for model, data in pairs(ActiveToiletESP) do
if not currentToilets[model] or not model.Parent then
if data.Billboard then data.Billboard:Destroy() end
if data.Highlight then data.Highlight:Destroy() end
ActiveToiletESP[model] = nil
end
end
end
end)
LocalPlayer.Idled:Connect(function()
if Config.AntiAfk and not Config.StopScripts then
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.new())
end
end)
How to use this
How do u even use ts what char equipped or smh like that
Ts is not working ts is useless
I will make new version with anticheat and instruction how to use
Or more precisely, hidden and modified code. Anti-cheat already exists.
And those who say it doesn't work, it did work. The reason is that because the code is open source, the developers created a script that interferes with the script's operation.