--// super trash RIVALS esp local settings = { enabled = true, teamCheck = false, } local Players = game:GetService("Players") local RunService = game:GetService("RunService") local wtf = {} function esp(player) if not settings.enabled then return end if settings.teamCheck and player.Team == Players.LocalPlayer.Team then return end if player == Players.LocalPlayer then return end local character = player.Character or player.CharacterAdded:Wait() local humanoidRootPart = character:WaitForChild("HumanoidRootPart") local Box = Drawing.new("Square") Box.Color = Color3.new(1, 0, 0) Box.Thickness = 2 Box.Transparency = 1 Box.Filled = false local tracer = Drawing.new("Line") tracer.Color = Color3.new(1, 0, 0) tracer.Thickness = 1 tracer.Transparency = 1 local name = Drawing.new("Text") name.Text = player.Name name.Color = Color3.new(1, 1, 1) name.Size = 20 name.Center = true name.Outline = true name.Transparency = 1 wtf[player] = {box = Box, tracer = tracer, name = name} local function loop() if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then Box.Visible = false tracer.Visible = false name.Visible = false return end local hrpPosition, onScreen = workspace.CurrentCamera:WorldToViewportPoint(humanoidRootPart.Position) if onScreen then local top = workspace.CurrentCamera:WorldToViewportPoint(humanoidRootPart.Position + Vector3.new(0, 3, 0)) local bottom = workspace.CurrentCamera:WorldToViewportPoint(humanoidRootPart.Position - Vector3.new(0, 3, 0)) local size = Vector2.new(math.abs(top.X - bottom.X) * 1.5, math.abs(top.Y - bottom.Y) * 1.5) Box.Size = size Box.Position = Vector2.new(hrpPosition.X - size.X / 2, hrpPosition.Y - size.Y / 2) Box.Visible = true tracer.From = Vector2.new(workspace.CurrentCamera.ViewportSize.X / 2, workspace.CurrentCamera.ViewportSize.Y) tracer.To = Vector2.new(hrpPosition.X, hrpPosition.Y) tracer.Visible = true name.Position = Vector2.new(hrpPosition.X, hrpPosition.Y - size.Y / 2 - 20) name.Visible = true else Box.Visible = false tracer.Visible = false name.Visible = false end end RunService.RenderStepped:Connect(loop) end function remove(player) if wtf[player] then wtf[player].box:Remove() wtf[player].tracer:Remove() wtf[player].name:Remove() wtf[player] = nil end end function add(player) player.CharacterAdded:Connect(function(character) esp(player) end) player.CharacterRemoving:Connect(function(character) remove(player) end) if player.Character then esp(player) end end Players.PlayerAdded:Connect(add) for _, player in pairs(Players:GetPlayers()) do add(player) end function toggle(state) settings.enabled = state if not state then for _, player in pairs(Players:GetPlayers()) do remove(player) end else for _, player in pairs(Players:GetPlayers()) do if player.Character then esp(player) end end end end function this_is_stupid(state) settings.teamCheck = state end