
Key Required
ESP Bypass VAC(RAC) on 18.04(still ud by RAC on 02.09.25)
Lua Script•209 lines (7065 chars)
-- Stealth ESP with Visibility Toggle
--test
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera
-- Configuration
local ESP = {
Enabled = true,
TeamCheck = true,
BoxColor = Color3.fromRGB(255, 70, 70),
TextColor = Color3.fromRGB(255, 255, 255),
BoxThickness = 1,
TextSize = 14,
MaxDistance = 8000,
VisibilityCheck = false, -- Toggle for raycast checks
UpdateInterval = 0.01,
UseRandomOffset = true -- Makes patterns less detectable
}
-- Storage
local ESPStore = {}
local LastUpdate = 0
-- Create stealthy ESP elements
local function CreateStealthESP(player)
if ESPStore[player] then return end
local drawings = {
box = Drawing.new("Quad"),
name = Drawing.new("Text"),
health = Drawing.new("Text"),
lastSeen = 0,
lastPos = Vector3.new()
}
-- Configure elements to look natural
drawings.box.Thickness = ESP.BoxThickness
drawings.box.Filled = false
drawings.box.ZIndex = 2
drawings.name.Size = ESP.TextSize
drawings.name.Center = true
drawings.name.Outline = true
drawings.name.ZIndex = 3
drawings.health.Size = ESP.TextSize - 2
drawings.health.Center = true
drawings.health.ZIndex = 3
ESPStore[player] = drawings
end
-- Check if player is visible
local function IsVisible(character, origin)
if not ESP.VisibilityCheck then return true end
local params = RaycastParams.new()
params.FilterDescendantsInstances = {character, LocalPlayer.Character}
params.FilterType = Enum.RaycastFilterType.Blacklist
local result = workspace:Raycast(origin, (character.HumanoidRootPart.Position - origin).Unit * 1000, params)
return result and result.Instance:IsDescendantOf(character)
end
-- Update ESP elements with random variations
local function UpdateStealthESP()
if not ESP.Enabled then
for _, drawings in pairs(ESPStore) do
drawings.box.Visible = false
drawings.name.Visible = false
drawings.health.Visible = false
end
return
end
local currentTime = tick()
local cameraPos = Camera.CFrame.Position
for player, drawings in pairs(ESPStore) do
if player and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
local character = player.Character
local rootPart = character.HumanoidRootPart
local humanoid = character:FindFirstChildOfClass("Humanoid")
-- Skip teammates if TeamCheck enabled
if ESP.TeamCheck and player.Team == LocalPlayer.Team then
drawings.box.Visible = false
drawings.name.Visible = false
drawings.health.Visible = false
continue
end
-- Distance check
local distance = (rootPart.Position - cameraPos).Magnitude
if distance > ESP.MaxDistance then
drawings.box.Visible = false
drawings.name.Visible = false
drawings.health.Visible = false
continue
end
-- Visibility check
local visible = IsVisible(character, cameraPos)
local onScreen = true
-- Position calculations with random offset
if ESP.UseRandomOffset then
drawings.lastPos = rootPart.Position + Vector3.new(
math.random() * 0.2 - 0.1,
math.random() * 0.2 - 0.1,
math.random() * 0.2 - 0.1
)
else
drawings.lastPos = rootPart.Position
end
local rootPos, onScreen = Camera:WorldToViewportPoint(drawings.lastPos)
if onScreen and (visible or not ESP.VisibilityCheck) then
-- Update box
local headPos = character:FindFirstChild("Head") and Camera:WorldToViewportPoint(character.Head.Position) or rootPos
local boxSize = Vector2.new(
math.abs(headPos.X - rootPos.X) * 2.2,
math.abs(headPos.Y - rootPos.Y) * 3.5
)
drawings.box.PointA = Vector2.new(rootPos.X - boxSize.X/2, rootPos.Y - boxSize.Y/2)
drawings.box.PointB = Vector2.new(rootPos.X + boxSize.X/2, rootPos.Y - boxSize.Y/2)
drawings.box.PointC = Vector2.new(rootPos.X + boxSize.X/2, rootPos.Y + boxSize.Y/2)
drawings.box.PointD = Vector2.new(rootPos.X - boxSize.X/2, rootPos.Y + boxSize.Y/2)
drawings.box.Color = ESP.BoxColor
drawings.box.Visible = true
-- Update name
drawings.name.Text = player.Name
drawings.name.Position = Vector2.new(rootPos.X, rootPos.Y - boxSize.Y/2 - 18)
drawings.name.Color = ESP.TextColor
drawings.name.Visible = true
-- Update health
if humanoid then
drawings.health.Text = math.floor(humanoid.Health) .. " HP"
drawings.health.Position = Vector2.new(rootPos.X, rootPos.Y + boxSize.Y/2 + 5)
drawings.health.Color = Color3.fromHSV(humanoid.Health/humanoid.MaxHealth * 0.3, 1, 1)
drawings.health.Visible = true
end
drawings.lastSeen = currentTime
else
drawings.box.Visible = false
drawings.name.Visible = false
drawings.health.Visible = false
end
else
drawings.box.Visible = false
drawings.name.Visible = false
drawings.health.Visible = false
end
end
end
-- Initialize
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
CreateStealthESP(player)
end
end
-- Player management
Players.PlayerAdded:Connect(function(player)
CreateStealthESP(player)
end)
Players.PlayerRemoving:Connect(function(player)
if ESPStore[player] then
ESPStore[player].box:Remove()
ESPStore[player].name:Remove()
ESPStore[player].health:Remove()
ESPStore[player] = nil
end
end)
-- Optimized update loop
RunService.Heartbeat:Connect(function()
if tick() - LastUpdate > ESP.UpdateInterval then
UpdateStealthESP()
LastUpdate = tick()
end
end)
-- Control interface
return {
Toggle = function(state)
ESP.Enabled = state
end,
SetVisibilityCheck = function(state)
ESP.VisibilityCheck = state
end,
Destroy = function()
for _, drawings in pairs(ESPStore) do
drawings.box:Remove()
drawings.name:Remove()
drawings.health:Remove()
end
ESPStore = {}
end
}Features & Information
Works on solara and other executors(not tested, but should work), skidded from deepseek ai so it is obviously open source. At the time i am releasing this it is undetected(used on main and other accounts, got banned only manually for semiraging). I also used aimbot script but you can use any that has no ui. Good luck.
____My discord to contact is crcecknedev. It is also pretty buggy but works. It was pretty hard to get cuz of the ai and detection by vac.____
You can edit it as you want without crediting me, make it look nicer, etc. if you want.

very poorly coded so don't blame me, blame the ai
"vac" LMAOO
that is not my problem that they renamed rac to vac xd