-- ================================================== -- 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")