crumbleesps
🧩 Syntax:
--[Main Variables]
local plrs = game["Players"]
local rs = game["RunService"]
local plr = plrs.LocalPlayer
local mouse = plr:GetMouse()
local camera = workspace.CurrentCamera
local worldToViewportPoint = camera.worldToViewportPoint
local emptyCFrame = CFrame.new();
local pointToObjectSpace = emptyCFrame.PointToObjectSpace
--[Optimisation Variables]
local Drawingnew = Drawing.new
local Color3fromRGB = Color3.fromRGB
local Vector3new = Vector3.new
local Vector2new = Vector2.new
local mathfloor = math.floor
local mathceil = math.ceil
local cross = Vector3new().Cross;
--[Setup Table]
local esp = {
players = {},
objects = {},
enabled = false,
teamcheck = false,
fontsize = 13,
font = 2,
maxdist = 0,
settings = {
name = {enabled = false, outline = true, displaynames = true, color = Color3fromRGB(255, 255, 255)},
box = {enabled = false, outline = true, color = Color3fromRGB(255, 255, 255)},
filledbox = {enabled = false, outline = true, transparency = 0.5, color = Color3fromRGB(255, 255, 255)},
healthbar = {enabled = false, size = 3, outline = true},
healthtext = {enabled = false, outline = true, color = Color3fromRGB(255, 255, 255)},
distance = {enabled = false, outline = true, color = Color3fromRGB(255, 255, 255)},
viewangle = {enabled = false, size = 6, color = Color3fromRGB(255, 255, 255)},
skeleton = {enabled = false, color = Color3fromRGB(255, 255, 255)},
tracer = {enabled = false, origin = "Middle", color = Color3fromRGB(255, 255, 255)},
arrow = {enabled = false, radius = 100, size = 25, filled = false, transparency = 1, color = Color3fromRGB(255, 255, 255)}
},
settings_chams = {
enabled = false,
teamcheck = false,
outline = false,
fill_color = Color3fromRGB(255, 255, 255),
outline_color = Color3fromRGB(0, 0, 0),
fill_transparency = 0,
outline_transparency = 0,
autocolor = true,
visible_Color = Color3fromRGB(0, 255, 0),
invisible_Color = Color3fromRGB(255, 0, 0),
},
customsettings = {
enabled = false,
corpse = {enabled = false, outline = true, size = 13, color = Color3fromRGB(255, 255, 255)},
ai = {enabled = false, outline = true, size = 13, color = Color3fromRGB(255, 255, 255)},
corpsechams = {enabled = false, color = Color3fromRGB(255, 255, 255)},
aichams = {enabled = false, color = Color3fromRGB(255, 255, 255)},
chams = {enabled = false, color = Color3fromRGB(255, 255, 255)},
corpsedistance = {enabled = false},
aidistance = {enabled = false},
aihealth = {enabled = false},
name = {enabled = false, outline = true, displaynames = true, color = Color3fromRGB(255, 255, 255)},
box = {enabled = false, outline = true, color = Color3fromRGB(255, 255, 255)},
filledbox = {enabled = false, outline = true, transparency = 0.5, color = Color3fromRGB(255, 255, 255)},
healthbar = {enabled = false, size = 3, outline = true},
healthtext = {enabled = false, outline = true, color = Color3fromRGB(255, 255, 255)},
distance = {enabled = false, outline = true, color = Color3fromRGB(255, 255, 255)},
viewangle = {enabled = false, size = 6, color = Color3fromRGB(255, 255, 255)},
skeleton = {enabled = false, color = Color3fromRGB(255, 255, 255)},
tracer = {enabled = false, origin = "Middle", color = Color3fromRGB(255, 255, 255)},
arrow = {enabled = false, radius = 100, size = 25, filled = false, transparency = 1, color = Color3fromRGB(255, 255, 255)},
names = {enabled = false, outline = true, displaynames = true, color = Color3fromRGB(255, 255, 255)},
}
}
esp.NewDrawing = function(type, properties)
local newDrawing = Drawingnew(type)
for i,v in next, properties or {} do
newDrawing[i] = v
end
return newDrawing
end
esp.NewCham = function(properties)
local newCham = Instance.new("Highlight", game.CoreGui)
for i,v in next, properties or {} do
newCham[i] = v
end
return newCham
end
esp.WallCheck = function(v)
local ray = Ray.new(camera.CFrame.p, (v.Position - camera.CFrame.p).Unit * 300)
local part, position = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(ray, {plr.Character, camera}, false, true)
if part then
local hum = part.Parent:FindFirstChildOfClass("Humanoid")
if not hum then
hum = part.Parent.Parent:FindFirstChildOfClass("Humanoid")
end
if hum and v and hum.Parent == v.Parent then
local Vector, Visible = camera:WorldToScreenPoint(v.Position)
if Visible then
return true
end
end
end
end
esp.TeamCheck = function(v)
if plr.TeamColor == v.TeamColor then
return false
end
return true
end
esp.NewPlayer = function(v)
esp.players[v] = {
name = esp.NewDrawing("Text", {Color = Color3fromRGB(255, 255, 255), Outline = true, Center = true, Size = 13, Font = 2}),
filledbox = esp.NewDrawing("Square", {Color = Color3fromRGB(255, 255, 255), Thickness = 1, Filled = true}),
boxOutline = esp.NewDrawing("Square", {Color = Color3fromRGB(0, 0, 0), Thickness = 3}),
box = esp.NewDrawing("Square", {Color = Color3fromRGB(255, 255, 255), Thickness = 1}),
healthBarOutline = esp.NewDrawing("Line", {Color = Color3fromRGB(0, 0, 0), Thickness = 3}),
healthBar = esp.NewDrawing("Line", {Color = Color3fromRGB(255, 255, 255), Thickness = 1}),
healthText = esp.NewDrawing("Text", {Color = Color3fromRGB(255, 255, 255), Outline = true, Center = true, Size = 13, Font = 2}),
distance = esp.NewDrawing("Text", {Color = Color3fromRGB(255, 255, 255), Outline = true, Center = true, Size = 13, Font = 2}),
viewAngle = esp.NewDrawing("Line", {Color = Color3fromRGB(255, 255, 255), Thickness = 1}),
weapon = esp.NewDrawing("Text", {Color = Color3fromRGB(255, 255, 255), Outline = true, Center = true, Size = 13, Font = 2}),
tracer = esp.NewDrawing("Line", {Color = Color3fromRGB(255, 255, 255), Thickness = 1}),
cham = esp.NewCham({FillColor = esp.settings_chams.fill_color, OutlineColor = esp.settings_chams.outline_color, FillTransparency = esp.settings_chams.fill_transparency, OutlineTransparency = esp.settings_chams.outline_transparency}),
arrow = esp.NewDrawing("Triangle", {Color = Color3fromRGB(255, 255, 255), Thickness = 1})
}
end
game:GetService("RunService").RenderStepped:Connect(function()
for i,v in pairs(esp.players) do
if i.Character and i.Character:FindFirstChild("Humanoid") and i.Character:FindFirstChild("HumanoidRootPart") and i.Character:FindFirstChild("Head") and i.Character:FindFirstChild("Humanoid").Health > 0 and (esp.maxdist == 0 or (i.Character.HumanoidRootPart.Position - plr.Character.HumanoidRootPart.Position).Magnitude < esp.maxdist) then
local hum = i.Character.Humanoid
local hrp = i.Character.HumanoidRootPart
local head = i.Character.Head
local Vector, onScreen = camera:WorldToViewportPoint(i.Character.HumanoidRootPart.Position)
local Size = (camera:WorldToViewportPoint(hrp.Position - Vector3new(0, 3, 0)).Y - camera:WorldToViewportPoint(hrp.Position + Vector3new(0, 2.6, 0)).Y) / 2
local BoxSize = Vector2new(mathfloor(Size * 1.5), mathfloor(Size * 1.9))
local BoxPos = Vector2new(mathfloor(Vector.X - Size * 1.5 / 2), mathfloor(Vector.Y - Size * 1.6 / 2))
local BottomOffset = BoxSize.Y + BoxPos.Y + 1
if onScreen and esp.settings_chams.enabled then
v.cham.Adornee = i.Character
v.cham.Enabled = esp.settings_chams.enabled
v.cham.OutlineTransparency = esp.settings_chams.outline and esp.settings_chams.outline_transparency or 1
v.cham.OutlineColor = esp.settings_chams.autocolor and esp.settings_chams.autocolor_outline and esp.WallCheck(i.Character.Head) and esp.settings_chams.visible_Color or esp.settings_chams.autocolor and esp.settings_chams.autocolor_outline and not esp.WallCheck(i.Character.Head) and esp.settings_chams.invisible_Color or esp.settings_chams.outline_color
v.cham.FillColor = esp.settings_chams.autocolor and esp.WallCheck(i.Character.Head) and esp.settings_chams.visible_Color or esp.settings_chams.autocolor and not esp.WallCheck(i.Character.Head) and esp.settings_chams.invisible_Color or esp.settings_chams.fill_color
v.cham.FillTransparency = esp.settings_chams.fill_transparency
if esp.settings_chams.teamcheck then
if not esp.TeamCheck(i) then
v.cham.Enabled = false
end
end
else
v.cham.Enabled = false
end
if esp.settings.tracer.enabled and esp.enabled then
if esp.settings.tracer.origin == "Bottom" then
v.tracer.From = Vector2new(workspace.CurrentCamera.ViewportSize.X / 2, workspace.CurrentCamera.ViewportSize.Y)
elseif esp.settings.tracer.origin == "Top" then
v.tracer.From = Vector2new(workspace.CurrentCamera.ViewportSize.X / 2,0)
elseif esp.settings.tracer.origin == "Middle" then
v.tracer.From = Vector2new(workspace.CurrentCamera.ViewportSize.X / 2, workspace.CurrentCamera.ViewportSize.Y / 2)
else
v.tracer.From = Vector2new(workspace.CurrentCamera.ViewportSize.X / 2, workspace.CurrentCamera.ViewportSize.Y / 2)
end
v.tracer.To = Vector2new(Vector.X, Vector.Y)
v.tracer.Color = esp.settings.tracer.color
v.tracer.Visible = true
else
v.tracer.Visible = false
end
if onScreen and esp.enabled then
if esp.settings.name.enabled then
v.name.Position = Vector2new(BoxSize.X / 2 + BoxPos.X, BoxPos.Y - 16)
v.name.Outline = esp.settings.name.outline
v.name.Color = esp.settings.name.color
v.name.Font = esp.font
v.name.Size = esp.fontsize
if esp.settings.name.displaynames then
v.name.Text = i.DisplayName
else
v.name.Text = i.Name
end
v.name.Visible = true
else
v.name.Visible = false
end
if esp.settings.distance.enabled and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
v.distance.Position = Vector2new(BoxSize.X / 2 + BoxPos.X, BottomOffset)
v.distance.Outline = esp.settings.distance.outline
v.distance.Text = "[" .. mathfloor((hrp.Position - plr.Character.HumanoidRootPart.Position).Magnitude / 3) .. "m]"
v.distance.Color = esp.settings.distance.color
BottomOffset = BottomOffset + 15
v.distance.Font = esp.font
v.distance.Size = esp.fontsize
v.distance.Visible = true
else
v.distance.Visible = false
end
if esp.settings.filledbox.enabled then
v.filledbox.Size = BoxSize + Vector2.new(-2, -2)
v.filledbox.Position = BoxPos + Vector2.new(1, 1)
v.filledbox.Color = esp.settings.filledbox.color
v.filledbox.Transparency = esp.settings.filledbox.transparency
v.filledbox.Visible = true
else
v.filledbox.Visible = false
end
if esp.settings.box.enabled then
v.boxOutline.Size = BoxSize
v.boxOutline.Position = BoxPos
v.boxOutline.Visible = esp.settings.box.outline
v.box.Size = BoxSize
v.box.Position = BoxPos
v.box.Color = esp.settings.box.color
v.box.Visible = true
else
v.boxOutline.Visible = false
v.box.Visible = false
end
if esp.settings.healthbar.enabled then
v.healthBar.From = Vector2new((BoxPos.X - 5), BoxPos.Y + BoxSize.Y)
v.healthBar.To = Vector2new(v.healthBar.From.X, v.healthBar.From.Y - (hum.Health / hum.MaxHealth) * BoxSize.Y)
v.healthBar.Color = Color3fromRGB(255 - 255 / (hum["MaxHealth"] / hum["Health"]), 255 / (hum["MaxHealth"] / hum["Health"]), 0)
v.healthBar.Visible = true
v.healthBar.Thickness = esp.settings.healthbar.size
v.healthBarOutline.From = Vector2new(v.healthBar.From.X, BoxPos.Y + BoxSize.Y + 1)
v.healthBarOutline.To = Vector2new(v.healthBar.From.X, (v.healthBar.From.Y - 1 * BoxSize.Y) -1)
v.healthBarOutline.Visible = esp.settings.healthbar.outline
v.healthBarOutline.Thickness = esp.settings.healthbar.size + 2
else
v.healthBarOutline.Visible = false
v.healthBar.Visible = false
end
if esp.settings.healthtext.enabled then
v.healthText.Text = tostring(mathfloor(hum.Health))
v.healthText.Position = Vector2new((BoxPos.X - 20), (BoxPos.Y + BoxSize.Y - 1 * BoxSize.Y) -1)
v.healthText.Color = esp.settings.healthtext.color
v.healthText.Outline = esp.settings.healthtext.outline
v.healthText.Font = esp.font
v.healthText.Size = esp.fontsize
v.healthText.Visible = true
else
v.healthText.Visible = false
end
if esp.settings.viewangle.enabled and head and head.CFrame then
v.viewAngle.From = Vector2new(camera:worldToViewportPoint(head.CFrame.p).X, camera:worldToViewportPoint(head.CFrame.p).Y)
v.viewAngle.To = Vector2new(camera:worldToViewportPoint((head.CFrame + (head.CFrame.lookVector * esp.settings.viewangle.size)).p).X, camera:worldToViewportPoint((head.CFrame + (head.CFrame.lookVector * esp.settings.viewangle.size)).p).Y)
v.viewAngle.Color = esp.settings.viewangle.color
v.viewAngle.Visible = true
else
v.viewAngle.Visible = false
end
v.arrow.Visible = false
--[[if esp.settings.weapon.enabled then
v.weapon.Visible = true
v.weapon.Position = Vector2new(BoxSize.X + BoxPos.X + v.weapon.TextBounds.X / 2 + 3, BoxPos.Y - 3)
v.weapon.Outline = esp.settings.name.outline
v.weapon.Color = esp.settings.name.color
v.weapon.Font = esp.font
v.weapon.Size = esp.fontsize
v.weapon.Text = esp.GetEquippedTool(i)
else
v.weapon.Visible = false
end]]
if esp.teamcheck then
if esp.TeamCheck(i) then
v.name.Visible = esp.settings.name.enabled
v.box.Visible = esp.settings.box.enabled
v.filledbox.Visible = esp.settings.box.enabled
v.healthBar.Visible = esp.settings.healthbar.enabled
v.healthText.Visible = esp.settings.healthtext.enabled
v.distance.Visible = esp.settings.distance.enabled
v.viewAngle.Visible = esp.settings.viewangle.enabled
v.weapon.Visible = esp.settings.weapon.enabled
v.tracer.Visible = esp.settings.tracer.enabled
v.arrow.Visible = esp.settings.arrow.enabled
else
v.name.Visible = false
v.boxOutline.Visible = false
v.box.Visible = false
v.filledbox.Visible = false
v.healthBarOutline.Visible = false
v.healthBar.Visible = false
v.healthText.Visible = false
v.distance.Visible = false
v.viewAngle.Visible = false
v.weapon.Visible = false
v.tracer.Visible = false
v.arrow.Visible = false
end
end
else
v.name.Visible = false
v.boxOutline.Visible = false
v.box.Visible = false
v.filledbox.Visible = false
v.healthBarOutline.Visible = false
v.healthBar.Visible = false
v.healthText.Visible = false
v.distance.Visible = false
v.viewAngle.Visible = false
v.weapon.Visible = false
v.tracer.Visible = false
if esp.enabled and esp.settings.arrow.enabled then
local currentCamera = workspace.CurrentCamera
local screenCenter = Vector2new(workspace.CurrentCamera.ViewportSize.X / 2, workspace.CurrentCamera.ViewportSize.Y / 2);
local objectSpacePoint = (pointToObjectSpace(currentCamera.CFrame, hrp.Position) * Vector3new(1, 0, 1)).Unit;
local crossVector = cross(objectSpacePoint, Vector3new(0, 1, 1));
local rightVector = Vector2new(crossVector.X, crossVector.Z);
local arrowRadius, arrowSize = esp.settings.arrow.radius, esp.settings.arrow.size;
local arrowPosition = screenCenter + Vector2new(objectSpacePoint.X, objectSpacePoint.Z) * arrowRadius;
local arrowDirection = (arrowPosition - screenCenter).Unit;
local pointA, pointB, pointC = arrowPosition, screenCenter + arrowDirection * (arrowRadius - arrowSize) + rightVector * arrowSize, screenCenter + arrowDirection * (arrowRadius - arrowSize) + -rightVector * arrowSize;
v.arrow.Visible = true
v.arrow.Filled = esp.settings.arrow.filled;
v.arrow.Transparency = esp.settings.arrow.transparency;
v.arrow.Color = esp.settings.arrow.color
v.arrow.PointA = pointA;
v.arrow.PointB = pointB;
v.arrow.PointC = pointC;
else
v.arrow.Visible = false
end
end
else
v.name.Visible = false
v.boxOutline.Visible = false
v.box.Visible = false
v.filledbox.Visible = false
v.healthBarOutline.Visible = false
v.healthBar.Visible = false
v.healthText.Visible = false
v.distance.Visible = false
v.viewAngle.Visible = false
v.cham.Enabled = false
v.weapon.Visible = false
v.tracer.Visible = false
v.arrow.Visible = false
end
end
end)
local function DrawLine()
local l = Drawing.new("Line")
l.Visible = false
l.From = Vector2.new(0, 0)
l.To = Vector2.new(1, 1)
l.Color = esp.settings.skeleton.color
l.Thickness = 1
l.Transparency = 1
return l
end
local function Skeletonesp(plr)
repeat wait() until plr.Character ~= nil and plr.Character:FindFirstChild("Humanoid") ~= nil
local limbs = {}
local R15 = (plr.Character.Humanoid.RigType == Enum.HumanoidRigType.R15) and true or false
limbs = {
-- Spine
Head_UpperTorso = DrawLine(),
UpperTorso_LowerTorso = DrawLine(),
-- Left Arm
UpperTorso_LeftUpperArm = DrawLine(),
LeftUpperArm_LeftLowerArm = DrawLine(),
LeftLowerArm_LeftHand = DrawLine(),
-- Right Arm
UpperTorso_RightUpperArm = DrawLine(),
RightUpperArm_RightLowerArm = DrawLine(),
RightLowerArm_RightHand = DrawLine(),
-- Left Leg
LowerTorso_LeftUpperLeg = DrawLine(),
LeftUpperLeg_LeftLowerLeg = DrawLine(),
LeftLowerLeg_LeftFoot = DrawLine(),
-- Right Leg
LowerTorso_RightUpperLeg = DrawLine(),
RightUpperLeg_RightLowerLeg = DrawLine(),
RightLowerLeg_RightFoot = DrawLine(),
}
local function Visibility(state)
for i, v in pairs(limbs) do
v.Visible = state
end
end
local function Colorize(color)
for i, v in pairs(limbs) do
v.Color = color
end
end
local function UpdaterR15()
local connection
connection = game:GetService("RunService").RenderStepped:Connect(function()
if plr.Character ~= nil and plr.Character:FindFirstChild("Humanoid") ~= nil and plr.Character:FindFirstChild("HumanoidRootPart") ~= nil and plr.Character.Humanoid.Health > 0 then
local HUM, vis = camera:WorldToViewportPoint(plr.Character.HumanoidRootPart.Position)
if vis and esp.settings.skeleton.enabled and esp.enabled then
-- Head
local H = camera:WorldToViewportPoint(plr.Character.Head.Position)
if limbs.Head_UpperTorso.From ~= Vector2.new(H.X, H.Y) then
--Spine
local UT = camera:WorldToViewportPoint(plr.Character.UpperTorso.Position)
local LT = camera:WorldToViewportPoint(plr.Character.LowerTorso.Position)
-- Left Arm
local LUA = camera:WorldToViewportPoint(plr.Character.LeftUpperArm.Position)
local LLA = camera:WorldToViewportPoint(plr.Character.LeftLowerArm.Position)
local LH = camera:WorldToViewportPoint(plr.Character.LeftHand.Position)
-- Right Arm
local RUA = camera:WorldToViewportPoint(plr.Character.RightUpperArm.Position)
local RLA = camera:WorldToViewportPoint(plr.Character.RightLowerArm.Position)
local RH = camera:WorldToViewportPoint(plr.Character.RightHand.Position)
-- Left leg
local LUL = camera:WorldToViewportPoint(plr.Character.LeftUpperLeg.Position)
local LLL = camera:WorldToViewportPoint(plr.Character.LeftLowerLeg.Position)
local LF = camera:WorldToViewportPoint(plr.Character.LeftFoot.Position)
-- Right leg
local RUL = camera:WorldToViewportPoint(plr.Character.RightUpperLeg.Position)
local RLL = camera:WorldToViewportPoint(plr.Character.RightLowerLeg.Position)
local RF = camera:WorldToViewportPoint(plr.Character.RightFoot.Position)
--Head
limbs.Head_UpperTorso.From = Vector2.new(H.X, H.Y)
limbs.Head_UpperTorso.To = Vector2.new(UT.X, UT.Y)
--Spine
limbs.UpperTorso_LowerTorso.From = Vector2.new(UT.X, UT.Y)
limbs.UpperTorso_LowerTorso.To = Vector2.new(LT.X, LT.Y)
-- Left Arm
limbs.UpperTorso_LeftUpperArm.From = Vector2.new(UT.X, UT.Y)
limbs.UpperTorso_LeftUpperArm.To = Vector2.new(LUA.X, LUA.Y)
limbs.LeftUpperArm_LeftLowerArm.From = Vector2.new(LUA.X, LUA.Y)
limbs.LeftUpperArm_LeftLowerArm.To = Vector2.new(LLA.X, LLA.Y)
limbs.LeftLowerArm_LeftHand.From = Vector2.new(LLA.X, LLA.Y)
limbs.LeftLowerArm_LeftHand.To = Vector2.new(LH.X, LH.Y)
-- Right Arm
limbs.UpperTorso_RightUpperArm.From = Vector2.new(UT.X, UT.Y)
limbs.UpperTorso_RightUpperArm.To = Vector2.new(RUA.X, RUA.Y)
limbs.RightUpperArm_RightLowerArm.From = Vector2.new(RUA.X, RUA.Y)
limbs.RightUpperArm_RightLowerArm.To = Vector2.new(RLA.X, RLA.Y)
limbs.RightLowerArm_RightHand.From = Vector2.new(RLA.X, RLA.Y)
limbs.RightLowerArm_RightHand.To = Vector2.new(RH.X, RH.Y)
-- Left Leg
limbs.LowerTorso_LeftUpperLeg.From = Vector2.new(LT.X, LT.Y)
limbs.LowerTorso_LeftUpperLeg.To = Vector2.new(LUL.X, LUL.Y)
limbs.LeftUpperLeg_LeftLowerLeg.From = Vector2.new(LUL.X, LUL.Y)
limbs.LeftUpperLeg_LeftLowerLeg.To = Vector2.new(LLL.X, LLL.Y)
limbs.LeftLowerLeg_LeftFoot.From = Vector2.new(LLL.X, LLL.Y)
limbs.LeftLowerLeg_LeftFoot.To = Vector2.new(LF.X, LF.Y)
-- Right Leg
limbs.LowerTorso_RightUpperLeg.From = Vector2.new(LT.X, LT.Y)
limbs.LowerTorso_RightUpperLeg.To = Vector2.new(RUL.X, RUL.Y)
limbs.RightUpperLeg_RightLowerLeg.From = Vector2.new(RUL.X, RUL.Y)
limbs.RightUpperLeg_RightLowerLeg.To = Vector2.new(RLL.X, RLL.Y)
limbs.RightLowerLeg_RightFoot.From = Vector2.new(RLL.X, RLL.Y)
limbs.RightLowerLeg_RightFoot.To = Vector2.new(RF.X, RF.Y)
end
Colorize(esp.settings.skeleton.color)
if limbs.Head_UpperTorso.Visible ~= true then
Visibility(true)
end
else
if limbs.Head_UpperTorso.Visible ~= false then
Visibility(false)
end
end
else
if limbs.Head_UpperTorso.Visible ~= false then
Visibility(false)
end
if game.Players:FindFirstChild(plr.Name) == nil then
for i, v in pairs(limbs) do
v:Remove()
end
connection:Disconnect()
end
end
end)
end
coroutine.wrap(UpdaterR15)()
end
--Bot Esp
function AddBotEsp(Path)
local BotEsp = Drawing.new("Text")
BotEsp.Visible = false
BotEsp.Center = true
BotEsp.Outline = true
BotEsp.Font = 2
BotEsp.Size = 10
local chamcham = esp.NewCham({FillColor = esp.customsettings.aichams.color, OutlineColor = Color3.new(0,0,0), FillTransparency = 0, OutlineTransparency = 1})
local renderstepped
renderstepped = game:GetService("RunService").RenderStepped:Connect(function()
if esp.customsettings.aichams.enabled then
chamcham.Enabled = true
chamcham.FillColor = esp.customsettings.aichams.color
else
chamcham.Enabled = false
end
if Path and Path:FindFirstChildOfClass("Humanoid") then
chamcham.Adornee = Path
if esp.customsettings.ai.enabled then
BotEsp.Color = esp.customsettings.ai.color
local drop_pos, drop_onscreen = game:GetService("Workspace").CurrentCamera:WorldToViewportPoint(Path:FindFirstChildOfClass("MeshPart").Position)
if drop_onscreen then
BotEsp.Position = Vector2.new(drop_pos.X, drop_pos.Y)
if not esp.customsettings.aidistance.enabled and not esp.customsettings.aihealth.enabled then
BotEsp.Text = Path.name
elseif esp.customsettings.aihealth.enabled then
BotEsp.Text = Path.Name.." || Health: " .. tostring(math.round(Path:FindFirstChildOfClass("Humanoid").Health))
elseif esp.customsettings.aidistance.enabled then
BotEsp.Text = Path.Name.." || Distance: " .. tostring(math.round((Path:FindFirstChildOfClass("MeshPart").Position-game.Players.LocalPlayer.Character.HumanoidRootPart.Position).Magnitude) / 3)
end
if esp.customsettings.aidistance.enabled and esp.customsettings.aihealth.enabled then
BotEsp.Text = Path.Name.." Health: " .. tostring(math.round(Path:FindFirstChildOfClass("Humanoid").Health)) .. "|| Distance: " .. tostring(math.round((Path:FindFirstChildOfClass("MeshPart").Position-game.Players.LocalPlayer.Character.HumanoidRootPart.Position).Magnitude) / 3)
end
BotEsp.Visible = true
else
BotEsp.Visible = false
end
end
else
BotEsp.Visible = false
BotEsp:Remove()
chamcham:Destroy()
renderstepped:Disconnect()
end
end)
end
for i,v in pairs(game:GetService("Workspace").AiZones:GetDescendants()) do
if v:FindFirstChild("Humanoid") then
AddBotEsp(v)
end
end
game:GetService("Workspace").AiZones.DescendantAdded:Connect(function(Child)
if Child:FindFirstChild("Humanoid") then
AddBotEsp(Child)
end
end)
--Corpse Esp
function AddCorpseESP(Corpse)
local CorpseEsp = Drawing.new("Text")
CorpseEsp.Visible = false
CorpseEsp.Center = true
CorpseEsp.Outline = true
CorpseEsp.Font = 2
CorpseEsp.Size = 10
local chamcham = esp.NewCham({FillColor = esp.customsettings.corpsechams.color, OutlineColor = Color3.new(0,0,0), FillTransparency = 0, OutlineTransparency = 1})
local renderstepped
renderstepped = game:GetService("RunService").RenderStepped:Connect(function()
if esp.customsettings.corpsechams.enabled then
chamcham.Enabled = true
chamcham.FillColor = esp.customsettings.corpsechams.color
else
chamcham.Enabled = false
end
if Corpse and Corpse:FindFirstChildOfClass("Humanoid") then
chamcham.Adornee = Corpse
if esp.customsettings.corpse.enabled then
CorpseEsp.Color = esp.customsettings.corpse.color
local drop_pos, drop_onscreen = game:GetService("Workspace").CurrentCamera:WorldToViewportPoint(Corpse:FindFirstChildOfClass("MeshPart").Position)
if drop_onscreen then
CorpseEsp.Position = Vector2.new(drop_pos.X, drop_pos.Y)
if not esp.customsettings.corpse.enabled then
CorpseEsp.Text = Corpse.Name.."'s ".."Corpse"
elseif esp.customsettings.corpse.enabled then
CorpseEsp.Text = Corpse.Name.."'s ".."Corpse" .. " || Distance: " .. tostring(math.round((Corpse:FindFirstChildOfClass("MeshPart").Position-game.Players.LocalPlayer.Character.HumanoidRootPart.Position).Magnitude) / 3)
end
CorpseEsp.Visible = true
else
CorpseEsp.Visible = false
end
end
else
CorpseEsp.Visible = false
CorpseEsp:Remove()
chamcham:Destroy()
renderstepped:Disconnect()
end
end)
end
for _,v in next, workspace.DroppedItems:GetChildren() do
if v:FindFirstChildOfClass("Humanoid") then
AddCorpseESP(v)
end
end
workspace.DroppedItems.DescendantAdded:Connect(function(Child)
if Child:FindFirstChildOfClass("Humanoid") then
AddCorpseESP(Child)
end
end)
for _,v in ipairs(plrs:GetPlayers()) do
if v ~= plr then
esp.NewPlayer(v)
Skeletonesp(v)
end
end
plrs.ChildAdded:Connect(function(v)
esp.NewPlayer(v)
Skeletonesp(v)
end)
plrs.PlayerRemoving:Connect(function(v)
for i2,v2 in pairs(esp.players[v]) do
pcall(function()
v2:Remove()
v2:Destroy()
end)
end
esp.players[v] = nil
end)
getgenv().esp = esp
return espWaffleManTheGreat
Member