
Key RequiredUniversal

--it is all open source and marware free
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Lighting = game:GetService("Lighting")
local TweenService = game:GetService("TweenService")
local lp = Players.LocalPlayer
local camera = workspace.CurrentCamera
-- Settings
local settings = {
ESP = true,
ESPBoxes = true,
ESPNames = true,
ESPDistance = true,
ESPHealth = true,
ESPDistanceValue = 1000,
Aimbot = true,
FOVCircle = true,
AimbotFOV = 150,
AimbotSmoothness = 0,
Fullbright = true,
FOV = 70,
AntiAFK = true,
RageMode = false,
Wallbang = false,
SilentAim = false,
AutoShoot = false,
TargetPart = "Head",
PenetrationDepth = math.huge
}
-- UI Creation
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "CheatUI"
ScreenGui.Parent = game:GetService("CoreGui")
local MainContainer = Instance.new("Frame")
MainContainer.Name = "MainContainer"
MainContainer.Size = UDim2.new(0, 400, 0, 450)
MainContainer.Position = UDim2.new(0.5, -200, 0.5, -225)
MainContainer.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
MainContainer.BackgroundTransparency = 0.2
MainContainer.BorderSizePixel = 0
MainContainer.Parent = ScreenGui
local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 12)
MainCorner.Parent = MainContainer
-- Title bar
local TitleBar = Instance.new("Frame")
TitleBar.Name = "TitleBar"
TitleBar.Size = UDim2.new(1, 0, 0, 30)
TitleBar.Position = UDim2.new(0, 0, 0, 0)
TitleBar.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainContainer
local TitleLabel = Instance.new("TextLabel")
TitleLabel.Name = "TitleLabel"
TitleLabel.Size = UDim2.new(1, -80, 1, 0)
TitleLabel.Position = UDim2.new(0, 15, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "SYSTEM HUB"
TitleLabel.TextColor3 = Color3.fromRGB(0, 255, 255)
TitleLabel.TextScaled = true
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.Parent = TitleBar
-- Draggable
local dragging, dragInput, dragStart, startPos
local function updateInput(input)
local Delta = input.Position - dragStart
local Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + Delta.X, startPos.Y.Scale, startPos.Y.Offset + Delta.Y)
MainContainer.Position = Position
end
TitleBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = MainContainer.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
TitleBar.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
updateInput(input)
end
end)
-- Control buttons
local CloseButton = Instance.new("TextButton")
CloseButton.Name = "CloseButton"
CloseButton.Size = UDim2.new(0, 25, 0, 25)
CloseButton.Position = UDim2.new(1, -30, 0.5, -12.5)
CloseButton.BackgroundColor3 = Color3.fromRGB(220, 20, 60)
CloseButton.BorderSizePixel = 0
CloseButton.Text = "×"
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.TextScaled = true
CloseButton.Font = Enum.Font.GothamBold
CloseButton.Parent = TitleBar
local MinimizeButton = Instance.new("TextButton")
MinimizeButton.Name = "MinimizeButton"
MinimizeButton.Size = UDim2.new(0, 25, 0, 25)
MinimizeButton.Position = UDim2.new(1, -60, 0.5, -12.5)
MinimizeButton.BackgroundColor3 = Color3.fromRGB(255, 165, 0)
MinimizeButton.BorderSizePixel = 0
MinimizeButton.Text = "−"
MinimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
MinimizeButton.TextScaled = true
MinimizeButton.Font = Enum.Font.GothamBold
MinimizeButton.Parent = TitleBar
-- Tab system
local TabContainer = Instance.new("Frame")
TabContainer.Name = "TabContainer"
TabContainer.Size = UDim2.new(0, 120, 1, -40)
TabContainer.Position = UDim2.new(0, 0, 0, 40)
TabContainer.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
TabContainer.BorderSizePixel = 0
TabContainer.Parent = MainContainer
local ContentContainer = Instance.new("Frame")
ContentContainer.Name = "ContentContainer"
ContentContainer.Size = UDim2.new(1, -130, 1, -50)
ContentContainer.Position = UDim2.new(0, 130, 0, 40)
ContentContainer.BackgroundColor3 = Color3.fromRGB(18, 18, 18)
ContentContainer.BorderSizePixel = 0
ContentContainer.Parent = MainContainer
-- Create tabs
local tabs = {"ESP", "Aimbot", "Rage", "Visuals", "Misc"}
local currentTab = "ESP"
local tabButtons = {}
local tabContents = {}
local function createTab(name, index)
local TabButton = Instance.new("TextButton")
TabButton.Name = name .. "Tab"
TabButton.Size = UDim2.new(1, -10, 0, 25)
TabButton.Position = UDim2.new(0, 5, 0, 5 + (index-1) * 30)
TabButton.BackgroundColor3 = index == 1 and Color3.fromRGB(0, 255, 255) or Color3.fromRGB(30, 30, 30)
TabButton.BorderSizePixel = 0
TabButton.Text = name
TabButton.TextColor3 = Color3.fromRGB(255, 255, 255)
TabButton.TextScaled = true
TabButton.Font = Enum.Font.Gotham
TabButton.Parent = TabContainer
local TabContent = Instance.new("ScrollingFrame")
TabContent.Name = name .. "Content"
TabContent.Size = UDim2.new(1, -10, 1, -10)
TabContent.Position = UDim2.new(0, 5, 0, 5)
TabContent.BackgroundTransparency = 1
TabContent.BorderSizePixel = 0
TabContent.ScrollBarThickness = 3
TabContent.ScrollBarImageColor3 = Color3.fromRGB(0, 255, 255)
TabContent.Visible = index == 1
TabContent.Parent = ContentContainer
local UIListLayout = Instance.new("UIListLayout")
UIListLayout.Padding = UDim.new(0, 8)
UIListLayout.Parent = TabContent
tabButtons[name] = TabButton
tabContents[name] = TabContent
TabButton.MouseButton1Click:Connect(function()
currentTab = name
for tabName, content in pairs(tabContents) do
content.Visible = (tabName == name)
end
for tabName, button in pairs(tabButtons) do
button.BackgroundColor3 = (tabName == name) and Color3.fromRGB(0, 255, 255) or Color3.fromRGB(30, 30, 30)
end
end)
return TabContent
end
-- Create toggle function
local function createToggle(name, parent, description)
local ToggleFrame = Instance.new("Frame")
ToggleFrame.Name = name .. "Toggle"
ToggleFrame.Size = UDim2.new(1, 0, 0, 35)
ToggleFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
ToggleFrame.BorderSizePixel = 0
ToggleFrame.Parent = parent
local ToggleLabel = Instance.new("TextLabel")
ToggleLabel.Name = "Label"
ToggleLabel.Size = UDim2.new(0.7, 0, 0.6, 0)
ToggleLabel.Position = UDim2.new(0, 10, 0, 2)
ToggleLabel.BackgroundTransparency = 1
ToggleLabel.Text = name
ToggleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
ToggleLabel.TextScaled = true
ToggleLabel.Font = Enum.Font.Gotham
ToggleLabel.TextXAlignment = Enum.TextXAlignment.Left
ToggleLabel.Parent = ToggleFrame
local ToggleButton = Instance.new("TextButton")
ToggleButton.Name = "Button"
ToggleButton.Size = UDim2.new(0, 35, 0, 20)
ToggleButton.Position = UDim2.new(1, -40, 0.5, -10)
ToggleButton.BackgroundColor3 = settings[name] and Color3.fromRGB(0, 255, 255) or Color3.fromRGB(200, 50, 50)
ToggleButton.BorderSizePixel = 0
ToggleButton.Text = ""
ToggleButton.Parent = ToggleFrame
local ToggleIndicator = Instance.new("Frame")
ToggleIndicator.Name = "Indicator"
ToggleIndicator.Size = UDim2.new(0, 15, 0, 15)
ToggleIndicator.Position = UDim2.new(settings[name] and 1 or 0, settings[name] and -17 or 2, 0.5, -7.5)
ToggleIndicator.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ToggleIndicator.BorderSizePixel = 0
ToggleIndicator.Parent = ToggleButton
ToggleButton.MouseButton1Click:Connect(function()
settings[name] = not settings[name]
local tween = TweenService:Create(ToggleButton, TweenInfo.new(0.2), {
BackgroundColor3 = settings[name] and Color3.fromRGB(0, 255, 255) or Color3.fromRGB(200, 50, 50)
})
tween:Play()
local indicatorTween = TweenService:Create(ToggleIndicator, TweenInfo.new(0.2), {
Position = UDim2.new(settings[name] and 1 or 0, settings[name] and -17 or 2, 0.5, -7.5)
})
indicatorTween:Play()
end)
return ToggleFrame
end
-- Create slider function
local function createSlider(name, parent, min, max, default, description)
local SliderFrame = Instance.new("Frame")
SliderFrame.Name = name .. "Slider"
SliderFrame.Size = UDim2.new(1, 0, 0, 50)
SliderFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
SliderFrame.BorderSizePixel = 0
SliderFrame.Parent = parent
local SliderLabel = Instance.new("TextLabel")
SliderLabel.Name = "Label"
SliderLabel.Size = UDim2.new(1, -30, 0, 25)
SliderLabel.Position = UDim2.new(0, 15, 0, 5)
SliderLabel.BackgroundTransparency = 1
SliderLabel.Text = name .. ": " .. default
SliderLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
SliderLabel.TextScaled = true
SliderLabel.Font = Enum.Font.Gotham
SliderLabel.TextXAlignment = Enum.TextXAlignment.Left
SliderLabel.Parent = SliderFrame
local SliderBar = Instance.new("Frame")
SliderBar.Name = "Bar"
SliderBar.Size = UDim2.new(1, -30, 0, 6)
SliderBar.Position = UDim2.new(0, 15, 0, 35)
SliderBar.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
SliderBar.BorderSizePixel = 0
SliderBar.Parent = SliderFrame
local SliderFill = Instance.new("Frame")
SliderFill.Name = "Fill"
SliderFill.Size = UDim2.new((default - min) / (max - min), 0, 1, 0)
SliderFill.Position = UDim2.new(0, 0, 0, 0)
SliderFill.BackgroundColor3 = Color3.fromRGB(0, 150, 255)
SliderFill.BorderSizePixel = 0
SliderFill.Parent = SliderBar
local SliderButton = Instance.new("TextButton")
SliderButton.Name = "Button"
SliderButton.Size = UDim2.new(0, 16, 0, 16)
SliderButton.Position = UDim2.new((default - min) / (max - min), -8, 0, -5)
SliderButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SliderButton.BorderSizePixel = 0
SliderButton.Text = ""
SliderButton.Parent = SliderBar
local dragging = false
local function updateSlider(input)
local percent = math.clamp((input.Position.X - SliderBar.AbsolutePosition.X) / SliderBar.AbsoluteSize.X, 0, 1)
local value = min + (max - min) * percent
settings[name] = math.floor(value)
local fillTween = TweenService:Create(SliderFill, TweenInfo.new(0.1), {
Size = UDim2.new(percent, 0, 1, 0)
})
fillTween:Play()
local buttonTween = TweenService:Create(SliderButton, TweenInfo.new(0.1), {
Position = UDim2.new(percent, -8, 0, -5)
})
buttonTween:Play()
SliderLabel.Text = name .. ": " .. settings[name]
end
SliderButton.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
end
end)
SliderButton.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
SliderBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
updateSlider(input)
end
end)
UserInputService.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement and dragging then
updateSlider(input)
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
return SliderFrame
end
-- Create tabs and content
local espTab = createTab("ESP", 1)
local aimbotTab = createTab("Aimbot", 2)
local rageTab = createTab("Rage", 3)
local visualsTab = createTab("Visuals", 4)
local miscTab = createTab("Misc", 5)
-- ESP tab content
createToggle("ESP", espTab, "Enable ESP features")
createToggle("ESPBoxes", espTab, "Show bounding boxes around players")
createToggle("ESPNames", espTab, "Display player names")
createToggle("ESPDistance", espTab, "Show distance to players")
createToggle("ESPHealth", espTab, "Display player health")
createSlider("ESPDistanceValue", espTab, 100, 2000, settings.ESPDistanceValue, "Maximum ESP render distance")
-- Aimbot tab content
createToggle("Aimbot", aimbotTab, "Enable aimbot assistance")
createToggle("FOVCircle", aimbotTab, "Show aimbot FOV circle")
createSlider("AimbotFOV", aimbotTab, 50, 300, settings.AimbotFOV, "Aimbot field of view")
createSlider("AimbotSmoothness", aimbotTab, 0, 20, settings.AimbotSmoothness, "Aimbot smoothness")
-- Rage tab content
createToggle("RageMode", rageTab, "Enable rage mode (overrides aimbot)")
createToggle("Wallbang", rageTab, "Shoot through walls")
createToggle("SilentAim", rageTab, "Silent aim (no visible crosshair movement)")
createToggle("AutoShoot", rageTab, "Automatically shoot when target acquired")
-- Visuals tab content
createToggle("Fullbright", visualsTab, "Remove darkness from the game")
createSlider("FOV", visualsTab, 50, 120, settings.FOV, "Camera field of view")
-- Misc tab content
createToggle("AntiAFK", miscTab, "Prevent AFK kick")
-- Minimize functionality
local minimized = false
MinimizeButton.MouseButton1Click:Connect(function()
minimized = not minimized
if minimized then
MainContainer.Size = UDim2.new(0, 400, 0, 40)
MinimizeButton.Text = "+"
TabContainer.Visible = false
ContentContainer.Visible = false
else
MainContainer.Size = UDim2.new(0, 400, 0, 450)
MinimizeButton.Text = "−"
TabContainer.Visible = true
ContentContainer.Visible = true
end
end)
-- K key toggle for UI
local uiVisible = true
UserInputService.InputBegan:Connect(function(input, gpe)
if not gpe and input.KeyCode == Enum.KeyCode.K then
uiVisible = not uiVisible
MainContainer.Visible = uiVisible
end
end)
CloseButton.MouseButton1Click:Connect(function()
ScreenGui:Destroy()
end)
-- Core functionality
RunService.RenderStepped:Connect(function()
camera.FieldOfView = settings.FOV
end)
-- Fullbright
local function enableFullbright()
Lighting.Ambient = Color3.new(1, 1, 1)
Lighting.OutdoorAmbient = Color3.new(1, 1, 1)
Lighting.Brightness = 5
Lighting.GlobalShadows = false
Lighting.ClockTime = 14
Lighting.FogEnd = 100000
end
local function disableFullbright()
Lighting.Ambient = Color3.new(0.5, 0.5, 0.5)
Lighting.OutdoorAmbient = Color3.new(0.5, 0.5, 0.5)
Lighting.Brightness = 1
Lighting.GlobalShadows = true
Lighting.ClockTime = 12
Lighting.FogEnd = 1000
end
RunService.RenderStepped:Connect(function()
if settings.Fullbright then
enableFullbright()
else
disableFullbright()
end
end)
if settings.Fullbright then
enableFullbright()
end
-- FOV Circle
local fovCircle = Drawing.new("Circle")
fovCircle.Radius = settings.AimbotFOV
fovCircle.Thickness = 1
fovCircle.Color = Color3.fromRGB(0, 150, 255)
fovCircle.Transparency = 1
fovCircle.NumSides = 100
fovCircle.Filled = false
fovCircle.Visible = settings.FOVCircle
RunService.RenderStepped:Connect(function()
local mousePos = UserInputService:GetMouseLocation()
fovCircle.Position = Vector2.new(mousePos.X, mousePos.Y)
fovCircle.Radius = settings.AimbotFOV
fovCircle.Visible = settings.FOVCircle
end)
-- Aimbot Logic (Extracted)
local Aimbot = {}
Aimbot.Enabled = true
Aimbot.AimRadius = 150
Aimbot.Aiming = false
Aimbot.CurrentTarget = nil
function Aimbot.GetClosestTarget()
local mousePos = UserInputService:GetMouseLocation()
local closest = nil
local minDist = settings.AimbotFOV
for _, model in ipairs(workspace:GetDescendants()) do
if model:IsA("Model") and model ~= lp.Character then
local humanoid = model:FindFirstChildOfClass("Humanoid")
local head = model:FindFirstChild("Head")
if humanoid and head and humanoid.Health > 0 then
local screenPos, onScreen = camera:WorldToViewportPoint(head.Position)
if onScreen then
local dist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
if dist < minDist then
minDist = dist
closest = head
end
end
end
end
end
return closest
end
function Aimbot.Update()
if settings.Aimbot and Aimbot.Aiming then
if Aimbot.CurrentTarget and Aimbot.CurrentTarget:IsDescendantOf(workspace) then
local screenPos, onScreen = camera:WorldToViewportPoint(Aimbot.CurrentTarget.Position)
local dist = (Vector2.new(screenPos.X, screenPos.Y) - UserInputService:GetMouseLocation()).Magnitude
local char = Aimbot.CurrentTarget:FindFirstAncestorOfClass("Model")
local humanoid = char and char:FindFirstChildOfClass("Humanoid")
if not onScreen or dist > settings.AimbotFOV or not humanoid or humanoid.Health <= 0 then
Aimbot.CurrentTarget = nil
end
else
Aimbot.CurrentTarget = nil
end
if not Aimbot.CurrentTarget then
Aimbot.CurrentTarget = Aimbot.GetClosestTarget()
end
if Aimbot.CurrentTarget and Aimbot.CurrentTarget:IsA("BasePart") then
local targetPos = Aimbot.CurrentTarget.Position
local currentPos = camera.CFrame.Position
local newCFrame = CFrame.new(currentPos, targetPos)
local smoothness = settings.AimbotSmoothness
if smoothness > 0 then
camera.CFrame = camera.CFrame:Lerp(newCFrame, 1/smoothness)
else
camera.CFrame = newCFrame
end
end
end
end
function Aimbot.Init()
RunService.RenderStepped:Connect(Aimbot.Update)
UserInputService.InputBegan:Connect(function(input, gpe)
if not gpe and input.UserInputType == Enum.UserInputType.MouseButton2 then
Aimbot.Aiming = true
end
end)
UserInputService.InputEnded:Connect(function(input, gpe)
if not gpe and input.UserInputType == Enum.UserInputType.MouseButton2 then
Aimbot.Aiming = false
Aimbot.CurrentTarget = nil
end
end)
end
-- Initialize Aimbot
Aimbot.Init()
-- ESP Setup
local highlights = {}
local boxDrawings = {}
local nameLabels = {}
local distanceLabels = {}
local healthLabels = {}
local processedModels = {}
local function setupESP(character)
if processedModels[character] then return end
processedModels[character] = true
local humanoid = character:FindFirstChildOfClass("Humanoid")
local head = character:FindFirstChild("Head")
local hrp = character:FindFirstChild("HumanoidRootPart")
if not humanoid or not head or not hrp then return end
local isPlayer = Players:GetPlayerFromCharacter(character) ~= nil
local baseColor = isPlayer and Color3.fromRGB(0, 170, 255) or Color3.fromRGB(255, 0, 0)
local visibleColor = Color3.fromRGB(255, 255, 0)
local highlight = Instance.new("Highlight")
highlight.Adornee = character
highlight.FillColor = baseColor
highlight.OutlineColor = Color3.new(0, 0, 0)
highlight.Parent = character
highlights[character] = highlight
local box = Drawing.new("Square")
box.Thickness = 1
box.Transparency = 0
box.Filled = false
box.Color = baseColor
boxDrawings[character] = box
local nameLabel = Drawing.new("Text")
nameLabel.Size = 8
nameLabel.Center = true
nameLabel.Outline = true
nameLabel.Color = baseColor
nameLabel.Text = character.Name
nameLabels[character] = nameLabel
local distanceLabel = Drawing.new("Text")
distanceLabel.Size = 8
distanceLabel.Center = true
distanceLabel.Outline = true
distanceLabel.Color = baseColor
distanceLabels[character] = distanceLabel
local healthLabel = Drawing.new("Text")
healthLabel.Size = 8
healthLabel.Center = true
healthLabel.Outline = true
healthLabel.Color = baseColor
healthLabels[character] = healthLabel
local function cleanup()
if highlights[character] then highlights[character]:Destroy() end
if box then box.Visible = false box:Remove() end
if nameLabel then nameLabel.Visible = false nameLabel:Remove() end
if distanceLabel then distanceLabel.Visible = false distanceLabel:Remove() end
if healthLabel then healthLabel.Visible = false healthLabel:Remove() end
highlights[character] = nil
boxDrawings[character] = nil
nameLabels[character] = nil
distanceLabels[character] = nil
healthLabels[character] = nil
end
character.AncestryChanged:Connect(function(_, parent)
if not parent then cleanup() end
end)
humanoid.Died:Connect(cleanup)
RunService.RenderStepped:Connect(function()
if not settings.ESP then
highlight.Enabled = false
box.Visible = false
nameLabel.Visible = false
distanceLabel.Visible = false
healthLabel.Visible = false
return
end
if humanoid.Health <= 0 then
highlight.Enabled = false
box.Visible = false
nameLabel.Visible = false
distanceLabel.Visible = false
healthLabel.Visible = false
return
end
local dist = (lp.Character and lp.Character:FindFirstChild("HumanoidRootPart") and (lp.Character.HumanoidRootPart.Position - hrp.Position).Magnitude) or 0
if dist > settings.ESPDistanceValue then
highlight.Enabled = false
box.Visible = false
nameLabel.Visible = false
distanceLabel.Visible = false
healthLabel.Visible = false
return
end
local onscreen, visible = false, false
local pos
if hrp and head then
pos, onscreen = camera:WorldToViewportPoint(hrp.Position)
local origin = camera.CFrame.Position
local direction = (head.Position - origin)
local raycastParams = RaycastParams.new()
raycastParams.FilterDescendantsInstances = {lp.Character}
raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
raycastParams.IgnoreWater = true
local result = workspace:Raycast(origin, direction.Unit * direction.Magnitude, raycastParams)
visible = result and (result.Instance:IsDescendantOf(head.Parent))
end
local col = visible and visibleColor or baseColor
highlight.Enabled = true
highlight.FillColor = col
box.Color = col
nameLabel.Color = col
distanceLabel.Color = col
healthLabel.Color = col
if onscreen then
-- Simple box calculation
local size = 3
local topLeft = camera:WorldToViewportPoint(hrp.Position + Vector3.new(-size, size * 1.5, 0))
local bottomRight = camera:WorldToViewportPoint(hrp.Position + Vector3.new(size, -size, 0))
box.Position = Vector2.new(topLeft.X, topLeft.Y)
box.Size = Vector2.new(bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y)
box.Visible = settings.ESPBoxes
nameLabel.Position = Vector2.new(pos.X, pos.Y - 20)
nameLabel.Visible = settings.ESPNames
distanceLabel.Position = Vector2.new(pos.X, pos.Y + 25)
distanceLabel.Text = string.format("%.1fm", dist)
distanceLabel.Visible = settings.ESPDistance
healthLabel.Position = Vector2.new(pos.X, pos.Y + 40)
healthLabel.Text = string.format("HP: %d", humanoid.Health)
healthLabel.Visible = settings.ESPHealth
else
highlight.Enabled = false
box.Visible = false
nameLabel.Visible = false
distanceLabel.Visible = false
healthLabel.Visible = false
end
end)
end
-- Setup ESP for existing players
for _, model in ipairs(workspace:GetDescendants()) do
if model:IsA("Model") and not processedModels[model] and model ~= lp.Character then
if model:FindFirstChildOfClass("Humanoid") then
setupESP(model)
end
end
end
workspace.DescendantAdded:Connect(function(desc)
local model = desc:FindFirstAncestorOfClass("Model")
if model and not processedModels[model] and model ~= lp.Character and model:FindFirstChildOfClass("Humanoid") then
task.delay(0.1, function()
setupESP(model)
end)
end
end)
local function onPlayer(player)
local function onCharacterAdded(character)
task.delay(0.2, function()
if character and character:FindFirstChildOfClass("Humanoid") then
setupESP(character)
end
end)
end
if player.Character then
onCharacterAdded(player.Character)
end
player.CharacterAdded:Connect(onCharacterAdded)
end
for _, p in ipairs(Players:GetPlayers()) do
if p ~= lp then
onPlayer(p)
end
end
Players.PlayerAdded:Connect(onPlayer)



i need help testing this script on Project detla, and other games with weak anti-cheat
this script is very detectable so use at ur own risk
Thank you ChatGPT
its not chatgpt cant make scripts over 500 lines long
at least working scripts that are 500 lines long