
Keyless

-- ==================================================
-- Silent Assassins ESP Source code
-- made by yours truly eddy36.
-- remember to join my discord server cz why not c:
-- ==================================================
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
local ESP_ENABLED = true
local TOGGLE_KEY = Enum.KeyCode.H
local ESP_COLOR = Color3.fromRGB(0, 255, 255)
local bodyConnections = {
R15 = {
{"Head", "UpperTorso"}, {"UpperTorso", "LowerTorso"},
{"UpperTorso", "LeftUpperArm"}, {"LeftUpperArm", "LeftLowerArm"},
{"UpperTorso", "RightUpperArm"}, {"RightUpperArm", "RightLowerArm"},
{"LowerTorso", "LeftUpperLeg"}, {"LeftUpperLeg", "LeftLowerLeg"},
{"LowerTorso", "RightUpperLeg"}, {"RightUpperLeg", "RightLowerLeg"}
},
R6 = {
{"Head", "Torso"}, {"Torso", "Left Arm"}, {"Torso", "Right Arm"},
{"Torso", "Left Leg"}, {"Torso", "Right Leg"}
}
}
local ESP_Cache = {}
local function createDrawing(type, props)
local d = Drawing.new(type)
for k, v in pairs(props) do d[k] = v end
return d
end
local function removeESP(player)
local data = ESP_Cache[player]
if data then
data.Name:Remove()
data.Box:Remove()
for _, line in pairs(data.Skeleton) do line:Remove() end
ESP_Cache[player] = nil
end
end
local function setupESP(player)
if player == LocalPlayer then return end
local function onCharacter(char)
removeESP(player)
local data = {
Name = createDrawing("Text", {Size = 16, Center = true, Outline = true, Color = Color3.new(1,1,1), Visible = false}),
Box = createDrawing("Square", {Thickness = 1, Color = ESP_COLOR, Filled = false, Visible = false}),
Skeleton = {}
}
local humanoid = char:WaitForChild("Humanoid", 15)
if not humanoid then return end
local rig = (humanoid.RigType == Enum.HumanoidRigType.R15) and "R15" or "R6"
for _, conn in ipairs(bodyConnections[rig]) do
data.Skeleton[conn[1]..conn[2]] = createDrawing("Line", {Thickness = 1, Color = ESP_COLOR, Visible = false})
end
ESP_Cache[player] = data
end
player.CharacterAdded:Connect(onCharacter)
if player.Character then task.spawn(onCharacter, player.Character) end
end
RunService.RenderStepped:Connect(function()
local Camera = workspace.CurrentCamera
for player, data in pairs(ESP_Cache) do
local char = player.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
local hum = char and char:FindFirstChild("Humanoid")
if ESP_ENABLED and char and hrp and hum and hum.Health > 0 then
local hrpPos, onScreen = Camera:WorldToViewportPoint(hrp.Position)
if onScreen then
local factor = 1 / (hrpPos.Z * math.tan(math.rad(Camera.FieldOfView * 0.5)) * 2) * 100
local width, height = 40 * factor, 60 * factor
data.Box.Size = Vector2.new(width, height)
data.Box.Position = Vector2.new(hrpPos.X - width/2, hrpPos.Y - height/2)
data.Box.Visible = true
data.Name.Text = player.Name
data.Name.Position = Vector2.new(hrpPos.X, hrpPos.Y - height/2 - 15)
data.Name.Visible = true
local rig = (hum.RigType == Enum.HumanoidRigType.R15) and "R15" or "R6"
for _, conn in ipairs(bodyConnections[rig]) do
local p1, p2 = char:FindFirstChild(conn[1]), char:FindFirstChild(conn[2])
local line = data.Skeleton[conn[1]..conn[2]]
if p1 and p2 and line then
local pos1, vis1 = Camera:WorldToViewportPoint(p1.Position)
local pos2, vis2 = Camera:WorldToViewportPoint(p2.Position)
if vis1 and vis2 then
line.From = Vector2.new(pos1.X, pos1.Y)
line.To = Vector2.new(pos2.X, pos2.Y)
line.Visible = true
else
line.Visible = false
end
end
end
else
data.Name.Visible = false
data.Box.Visible = false
for _, l in pairs(data.Skeleton) do l.Visible = false end
end
else
data.Name.Visible = false
data.Box.Visible = false
for _, l in pairs(data.Skeleton) do l.Visible = false end
end
end
end)
for _, p in ipairs(Players:GetPlayers()) do setupESP(p) end
Players.PlayerAdded:Connect(setupESP)
Players.PlayerRemoving:Connect(removeESP)
UserInputService.InputBegan:Connect(function(input, processed)
if not processed and input.KeyCode == TOGGLE_KEY then
ESP_ENABLED = not ESP_ENABLED
end
end)
print("[eddy36] Enjoy the script gng - https://discord.gg/tesGDjJq5t")
Works very well, recommended.