
Key RequiredUniversal
local Workspace = game:GetService("Workspace")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local CoreGui = game:GetService("CoreGui")
local LocalPlayer = Players.LocalPlayer
local BotFolder = Workspace:WaitForChild("Players", 10)
local EffectsFolder = Workspace:WaitForChild("Effects", 10)
local TicketsFolder = Workspace:WaitForChild("Tickets", 10)
if not TicketsFolder and EffectsFolder then
TicketsFolder = EffectsFolder:WaitForChild("Tickets", 10)
end
if not BotFolder then return end
if not EffectsFolder then return end
if not TicketsFolder then return end
local abs, atan2, cos, sin, floor, clamp, max = math.abs, math.atan2, math.cos, math.sin, math.floor, math.clamp, math.max
local InstNew = Instance.new
local Col3RGB = Color3.fromRGB
local Col3New = Color3.new
local BOT_SPEED = 33
local DOWNED_HIDE_DISTANCE = 4
local DOWNED_HIDE_DURATION = 2
local ticketESPConnections = {}
local function getESPContainer()
local success, result = pcall(function()
local container = CoreGui:FindFirstChild("ESP_Container")
if not container then
container = InstNew("Folder")
container.Name = "ESP_Container"
container.Parent = CoreGui
end
return container
end)
if success and result then return result end
local pg = LocalPlayer:FindFirstChild("PlayerGui") or LocalPlayer:WaitForChild("PlayerGui", 5)
if pg then
local container = pg:FindFirstChild("ESP_Container")
if not container then
container = InstNew("Folder")
container.Name = "ESP_Container"
container.Parent = pg
end
return container
end
return nil
end
local espContainer = getESPContainer()
if not espContainer then return end
local activeESPElements = {}
local function cleanupESP(object)
local uniqueId = object:GetDebugId()
if activeESPElements[uniqueId] then
for _, element in ipairs(activeESPElements[uniqueId]) do
if element and element.Parent then element:Destroy() end
end
activeESPElements[uniqueId] = nil
end
for _, child in ipairs(espContainer:GetChildren()) do
if string.find(child.Name, "_" .. uniqueId) then child:Destroy() end
end
end
local function registerESPElement(object, element)
local uniqueId = object:GetDebugId()
if not activeESPElements[uniqueId] then activeESPElements[uniqueId] = {} end
table.insert(activeESPElements[uniqueId], element)
end
local function getModelBoundingBoxSize(model)
local cf, size = model:GetBoundingBox()
return size
end
local function applyTicketESP(object)
if not object or (not object:IsA("BasePart") and not object:IsA("Model")) then return end
local existingHighlight = object:FindFirstChild("TicketESP_Highlight")
local existingBillboard = object:FindFirstChild("TicketESP_Billboard")
if existingHighlight then existingHighlight:Destroy() end
if existingBillboard then existingBillboard:Destroy() end
if ticketESPConnections[object] then
ticketESPConnections[object]:Disconnect()
ticketESPConnections[object] = nil
end
local targetPart = object
if object:IsA("Model") then
targetPart = object:FindFirstChildWhichIsA("BasePart") or object.PrimaryPart
if not targetPart then return end
end
local highlight = InstNew("Highlight")
highlight.Name = "TicketESP_Highlight"
highlight.Adornee = object
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
highlight.FillColor = Col3RGB(0, 150, 255)
highlight.OutlineColor = Col3RGB(255, 255, 255)
highlight.FillTransparency = 0.6
highlight.OutlineTransparency = 0
highlight.Parent = espContainer
local bgui = InstNew("BillboardGui")
bgui.Name = "TicketESP_Billboard"
bgui.Adornee = targetPart
bgui.Size = UDim2.new(0, 100, 0, 25)
bgui.StudsOffset = Vector3.new(0, 2, 0)
bgui.AlwaysOnTop = true
bgui.Parent = espContainer
local textLabel = InstNew("TextLabel")
textLabel.BackgroundTransparency = 1
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.TextColor3 = Col3RGB(0, 150, 255)
textLabel.TextStrokeColor3 = Col3New(0, 0, 0)
textLabel.TextStrokeTransparency = 0
textLabel.TextSize = 12
textLabel.Font = Enum.Font.SourceSansBold
textLabel.Text = "bubbles"
textLabel.Parent = bgui
local conn = object.AncestryChanged:Connect(function(_, parent)
if not parent then
highlight:Destroy()
bgui:Destroy()
if ticketESPConnections[object] then
ticketESPConnections[object]:Disconnect()
ticketESPConnections[object] = nil
end
end
end)
ticketESPConnections[object] = conn
end
local function setupTicketsESP()
for _, child in ipairs(TicketsFolder:GetChildren()) do applyTicketESP(child) end
TicketsFolder.ChildAdded:Connect(function(child)
task.wait(0.1)
applyTicketESP(child)
end)
end
local function applyFinalHybridESP(object)
if object.Name == LocalPlayer.Name then return end
local root = object:FindFirstChild("HumanoidRootPart") or object:FindFirstChildWhichIsA("BasePart")
if not root then return end
cleanupESP(object)
local teamAttr = object:GetAttribute("Team")
if not teamAttr then
local attrSignal
attrSignal = object:GetAttributeChangedSignal("Team"):Connect(function()
teamAttr = object:GetAttribute("Team")
if teamAttr then attrSignal:Disconnect() end
end)
local elapsed = 0
while not teamAttr and elapsed < 2 and object and object.Parent do
task.wait(0.1)
elapsed += 0.1
teamAttr = object:GetAttribute("Team")
end
if attrSignal and attrSignal.Connected then attrSignal:Disconnect() end
end
local isNextbot = teamAttr == "Nextbot"
local isPlayerTeam = teamAttr == "PlayerTeam"
if not isNextbot and not isPlayerTeam then return end
if isPlayerTeam then
local uniqueId = object:GetDebugId()
local humanoid = object:FindFirstChildWhichIsA("Humanoid")
if not humanoid then
local hConn
hConn = object.ChildAdded:Connect(function(c)
if c:IsA("Humanoid") then humanoid = c; hConn:Disconnect() end
end)
local waitTime = 0
while not humanoid and waitTime < 3 and object and object.Parent do
task.wait(0.1); waitTime += 0.1
humanoid = object:FindFirstChildWhichIsA("Humanoid")
end
if hConn and hConn.Connected then hConn:Disconnect() end
end
local weldTarget = root
or object:FindFirstChild("Right Leg")
or object:FindFirstChild("RightLowerLeg")
or object:FindFirstChild("RightFoot")
local proxyPart = InstNew("Part")
proxyPart.Name = "ESP_Proxy_" .. uniqueId
proxyPart.Shape = Enum.PartType.Block
local baseSize = weldTarget.Size
proxyPart.Size = Vector3.new(
max(baseSize.X, 2) + 1,
max(baseSize.Y, 5) + 1,
max(baseSize.Z, 1) + 1
)
proxyPart.Transparency = 0.99
proxyPart.Material = Enum.Material.ForceField
proxyPart.CanCollide = false
proxyPart.Massless = true
proxyPart.Anchored = false
proxyPart.CFrame = weldTarget.CFrame
proxyPart.Parent = object
local weld = InstNew("WeldConstraint")
weld.Part0 = proxyPart
weld.Part1 = weldTarget
weld.Parent = proxyPart
registerESPElement(object, proxyPart)
local highlight = InstNew("Highlight")
highlight.Name = "BotHighlight_" .. uniqueId
highlight.Adornee = proxyPart
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
highlight.FillColor = Col3RGB(0, 255, 255)
highlight.OutlineColor = Col3RGB(255, 255, 255)
highlight.FillTransparency = 0.9
highlight.OutlineTransparency = 0
highlight.Parent = espContainer
registerESPElement(object, highlight)
local ancestryConn
ancestryConn = object.AncestryChanged:Connect(function(_, parent)
if not parent or not object:IsDescendantOf(Workspace) then
ancestryConn:Disconnect()
cleanupESP(object)
end
end)
local rootDestroyedConn
rootDestroyedConn = root.Destroying:Connect(function()
rootDestroyedConn:Disconnect()
cleanupESP(object)
end)
local healthConn
if humanoid then
healthConn = humanoid.HealthChanged:Connect(function(health)
if not highlight or not highlight.Parent then return end
if health <= 0 then
highlight.FillColor = Col3RGB(255, 0, 0)
highlight.OutlineColor = Col3RGB(255, 0, 0)
highlight.FillTransparency = 0.5
else
highlight.FillColor = Col3RGB(0, 255, 255)
highlight.OutlineColor = Col3RGB(255, 255, 255)
highlight.FillTransparency = 0.9
end
end)
if humanoid.Health <= 0 then
highlight.FillColor = Col3RGB(255, 0, 0)
highlight.OutlineColor = Col3RGB(255, 0, 0)
highlight.FillTransparency = 0.5
end
end
task.spawn(function()
local cam = Workspace.CurrentCamera
while not cam and object and object.Parent do
cam = Workspace.CurrentCamera
if not cam then task.wait(0.1) end
end
if not cam then return end
local nearbyTimer = 0
local downedLabelHidden = false
local accumulatedDownedTime = 0
local lastTickTime = nil
local timerPaused = true
while object and object.Parent and highlight and highlight.Parent
and object:IsDescendantOf(Workspace) and root and root.Parent do
local downed = humanoid and humanoid.Health <= 0
local isCarried = object:GetAttribute("Carried")
if downed then
highlight.FillColor = Col3RGB(255, 0, 0)
highlight.OutlineColor = Col3RGB(255, 0, 0)
highlight.FillTransparency = 0.5
if isCarried then
local dl = espContainer:FindFirstChild("DownedLabel_" .. uniqueId)
if dl then dl:Destroy() end
nearbyTimer = 0
downedLabelHidden = false
timerPaused = true
lastTickTime = nil
else
local closestNonDownedDist = math.huge
for _, otherObj in ipairs(BotFolder:GetChildren()) do
if otherObj ~= object and otherObj:GetAttribute("Team") == "PlayerTeam" then
local otherHumanoid = otherObj:FindFirstChildWhichIsA("Humanoid")
local otherRoot = otherObj:FindFirstChild("HumanoidRootPart")
if otherHumanoid and otherHumanoid.Health > 0 and otherRoot then
local dist = (root.Position - otherRoot.Position).Magnitude
if dist < closestNonDownedDist then
closestNonDownedDist = dist
end
end
end
end
if closestNonDownedDist <= DOWNED_HIDE_DISTANCE then
nearbyTimer += 0.5
else
nearbyTimer = 0
downedLabelHidden = false
end
if nearbyTimer >= DOWNED_HIDE_DURATION then
downedLabelHidden = true
end
if downedLabelHidden then
timerPaused = true
lastTickTime = nil
local dl = espContainer:FindFirstChild("DownedLabel_" .. uniqueId)
if dl then dl:Destroy() end
else
if timerPaused then
timerPaused = false
lastTickTime = os.clock()
end
if not espContainer:FindFirstChild("DownedLabel_" .. uniqueId) then
if object:GetAttribute("WasCarried") then
task.wait(2)
object:SetAttribute("WasCarried", nil)
if not (humanoid and humanoid.Health <= 0) or object:GetAttribute("Carried") then continue end
end
local screenGui = InstNew("ScreenGui")
screenGui.Name = "DownedLabel_" .. uniqueId
screenGui.IgnoreGuiInset = true
screenGui.Parent = espContainer
registerESPElement(object, screenGui)
local container = InstNew("Frame")
container.Name = "IndicatorContainer"
container.AnchorPoint = Vector2.new(0.5, 0.5)
container.BackgroundColor3 = Col3New(0, 0, 0)
container.BackgroundTransparency = 0.5
container.BorderSizePixel = 0
container.AutomaticSize = Enum.AutomaticSize.XY
container.Parent = screenGui
local layout = InstNew("UIListLayout")
layout.FillDirection = Enum.FillDirection.Horizontal
layout.VerticalAlignment = Enum.VerticalAlignment.Center
layout.Padding = UDim.new(0, 4)
layout.Parent = container
local padding = InstNew("UIPadding")
padding.PaddingLeft = UDim.new(0, 5)
padding.PaddingRight = UDim.new(0, 5)
padding.PaddingTop = UDim.new(0, 2)
padding.PaddingBottom = UDim.new(0, 2)
padding.Parent = container
local icon = InstNew("ImageLabel")
icon.Size = UDim2.new(0, 16, 0, 16)
icon.BackgroundTransparency = 1
icon.Image = "rbxassetid://134857111376422"
icon.ImageColor3 = Col3RGB(255, 0, 0)
icon.Parent = container
local textLabel = InstNew("TextLabel")
textLabel.BackgroundTransparency = 1
textLabel.AutomaticSize = Enum.AutomaticSize.XY
textLabel.TextColor3 = Col3RGB(255, 0, 0)
textLabel.TextStrokeTransparency = 0
textLabel.TextSize = 14
textLabel.Font = Enum.Font.SourceSansBold
textLabel.Parent = container
task.spawn(function()
while screenGui and screenGui.Parent and object and object.Parent
and humanoid and humanoid.Health <= 0 and not object:GetAttribute("Carried")
and object:IsDescendantOf(Workspace) and root and root.Parent do
if not timerPaused and lastTickTime then
local now = os.clock()
accumulatedDownedTime += (now - lastTickTime)
lastTickTime = now
end
textLabel.Text = string.format("%.0fs", accumulatedDownedTime)
if root and root.Parent then
local viewportSize = cam.ViewportSize
local pos, onScreen = cam:WorldToViewportPoint(root.Position)
if onScreen then
container.Position = UDim2.new(0, pos.X, 0, pos.Y)
else
local center = viewportSize / 2
local direction = (Vector2.new(pos.X, pos.Y) - center).Unit
if pos.Z < 0 then direction = -direction end
local rads = atan2(direction.Y, direction.X)
local c, s = cos(rads), sin(rads)
local m_x, m_y = (viewportSize.X / 2) - 45, (viewportSize.Y / 2) - 45
local x_val = m_y * (c / abs(s))
local y_val = m_x * (s / abs(c))
local finalPos = abs(x_val) < m_x and (center + Vector2.new(x_val, m_y * (s / abs(s)))) or (center + Vector2.new(m_x * (c / abs(c)), y_val))
container.Position = UDim2.new(0, finalPos.X, 0, finalPos.Y)
end
end
task.wait(0.03)
end
if screenGui and screenGui.Parent then screenGui:Destroy() end
end)
end
end
end
else
highlight.FillColor = Col3RGB(0, 255, 255)
highlight.OutlineColor = Col3RGB(255, 255, 255)
highlight.FillTransparency = 0.9
local dl = espContainer:FindFirstChild("DownedLabel_" .. uniqueId)
if dl then dl:Destroy() end
nearbyTimer = 0
downedLabelHidden = false
accumulatedDownedTime = 0
lastTickTime = nil
timerPaused = true
end
if isCarried then object:SetAttribute("WasCarried", true) end
pcall(function()
local currentBaseSize = weldTarget.Size
proxyPart.Size = Vector3.new(
max(currentBaseSize.X, 2) + 1,
max(currentBaseSize.Y, 5) + 1,
max(currentBaseSize.Z, 1) + 1
)
end)
task.wait(0.5)
end
if healthConn and healthConn.Connected then healthConn:Disconnect() end
cleanupESP(object)
end)
return
end
local isVisible = false
for _, part in ipairs(object:GetChildren()) do
if part:IsA("BasePart") and part.Transparency < 1 then isVisible = true; break end
end
local targetToAdorn
if isVisible then
targetToAdorn = object
else
local internalHitbox = object:FindFirstChild("Hitbox")
local nbProxy = InstNew("Part")
nbProxy.Name = "ESPHitbox"
nbProxy.Shape = Enum.PartType.Block
nbProxy.Size = (internalHitbox and internalHitbox:IsA("BasePart")) and internalHitbox.Size or Vector3.new(10, 10, 10)
nbProxy.Transparency = 0.99
nbProxy.Material = Enum.Material.ForceField
nbProxy.CanCollide = false
nbProxy.Massless = true
local weld = InstNew("WeldConstraint")
weld.Part0, weld.Part1 = nbProxy, root
nbProxy.CFrame = root.CFrame
weld.Parent, nbProxy.Parent = nbProxy, object
targetToAdorn = nbProxy
end
local highlight = InstNew("Highlight")
highlight.Name = "BotHighlight"
highlight.Adornee = targetToAdorn
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
highlight.FillColor = Col3RGB(255, 255, 0)
highlight.OutlineColor = Col3RGB(255, 255, 255)
highlight.FillTransparency = 0.92
highlight.OutlineTransparency = 0
highlight.Parent = object
local bgui = InstNew("BillboardGui")
bgui.Name = "BotLabels"
bgui.Adornee = root
bgui.Size = UDim2.new(0, 100, 0, 40)
bgui.AlwaysOnTop = true
bgui.ZIndexBehavior = Enum.ZIndexBehavior.Global
local textLabel = InstNew("TextLabel")
textLabel.BackgroundTransparency = 1
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.TextColor3 = Col3RGB(255, 255, 0)
textLabel.TextStrokeTransparency = 0
textLabel.TextSize = 10
textLabel.Font = Enum.Font.SourceSansBold
textLabel.Text = object.Name .. "\n[Checking...]"
textLabel.Parent = bgui
bgui.Parent = object
task.spawn(function()
local offScreenIndicator = nil
local cam = Workspace.CurrentCamera
while not cam and object and object.Parent do
cam = Workspace.CurrentCamera
if not cam then task.wait(0.1) end
end
if not cam then return end
while object and object.Parent and bgui and bgui.Parent do
local char = LocalPlayer.Character
local myRoot = char and char:FindFirstChild("HumanoidRootPart")
if myRoot then
local dist = (myRoot.Position - root.Position).Magnitude
local ping = LocalPlayer:GetNetworkPing()
local pingBuffer = clamp(ping * BOT_SPEED, 0, 50)
local dynamicDanger = 37 + pingBuffer
local dynamicWarning = 100 + pingBuffer
local currentColor = Col3RGB(255, 255, 0)
local currentHighlightColor = Col3RGB(255, 255, 0)
local currentOutlineColor = Col3RGB(255, 255, 255)
if dist <= dynamicDanger then
currentColor = Col3RGB(255, 0, 0)
currentHighlightColor = Col3RGB(255, 0, 0)
currentOutlineColor = Col3RGB(255, 0, 0)
elseif dist <= dynamicWarning then
currentColor = Col3RGB(255, 165, 0)
currentHighlightColor = Col3RGB(255, 165, 0)
currentOutlineColor = Col3RGB(255, 165, 0)
end
highlight.FillColor = currentHighlightColor
highlight.OutlineColor = currentOutlineColor
textLabel.TextColor3 = currentColor
textLabel.Text = string.format("%s\n[%d studs]", object.Name, floor(dist))
if dist <= dynamicWarning then
local viewportSize = cam.ViewportSize
local pos, onScreen = cam:WorldToViewportPoint(root.Position)
if not onScreen then
if not offScreenIndicator then
local screenGui = InstNew("ScreenGui")
screenGui.Name = "OffScreen_" .. object.Name
screenGui.IgnoreGuiInset = true
local success = pcall(function() screenGui.Parent = CoreGui end)
if not success then
local pg = LocalPlayer:FindFirstChild("PlayerGui") or LocalPlayer:WaitForChild("PlayerGui", 5)
if pg then screenGui.Parent = pg end
end
local indicator = InstNew("TextLabel")
indicator.Size = UDim2.new(0, 0, 0, 0)
indicator.AutomaticSize = Enum.AutomaticSize.XY
indicator.BackgroundTransparency = 0.5
indicator.BackgroundColor3 = Col3New(0, 0, 0)
indicator.TextSize = 12
indicator.Font = Enum.Font.SourceSansBold
indicator.AnchorPoint = Vector2.new(0.5, 0.5)
indicator.BorderSizePixel = 0
local padding = InstNew("UIPadding")
padding.PaddingLeft = UDim.new(0, 8)
padding.PaddingRight = UDim.new(0, 8)
padding.PaddingTop = UDim.new(0, 4)
padding.PaddingBottom = UDim.new(0, 4)
padding.Parent = indicator
indicator.Parent = screenGui
offScreenIndicator = screenGui
end
local indicatorLabel = offScreenIndicator:FindFirstChildWhichIsA("TextLabel")
if indicatorLabel then
indicatorLabel.TextColor3 = currentColor
indicatorLabel.Text = string.format("⚠ %s [%dm]", object.Name, floor(dist))
local center = viewportSize / 2
local direction = (Vector2.new(pos.X, pos.Y) - center).Unit
if pos.Z < 0 then direction = -direction end
local rads = atan2(direction.Y, direction.X)
local c, s = cos(rads), sin(rads)
local m_x, m_y = (viewportSize.X / 2) - 50, (viewportSize.Y / 2) - 50
local x_val = m_y * (c / abs(s))
local y_val = m_x * (s / abs(c))
local finalPos = abs(x_val) < m_x and (center + Vector2.new(x_val, m_y * (s / abs(s)))) or (center + Vector2.new(m_x * (c / abs(c)), y_val))
indicatorLabel.Position = UDim2.new(0, finalPos.X, 0, finalPos.Y)
end
elseif offScreenIndicator then
offScreenIndicator:Destroy()
offScreenIndicator = nil
end
elseif offScreenIndicator then
offScreenIndicator:Destroy()
offScreenIndicator = nil
end
end
task.wait(0.03)
end
if offScreenIndicator then offScreenIndicator:Destroy() end
end)
end
local function setupBot(child)
applyFinalHybridESP(child)
child:GetAttributeChangedSignal("Team"):Connect(function()
applyFinalHybridESP(child)
end)
end
for _, child in ipairs(BotFolder:GetChildren()) do setupBot(child) end
BotFolder.ChildAdded:Connect(function(child)
task.wait(0.5)
setupBot(child)
end)
BotFolder.ChildRemoved:Connect(function(child) cleanupESP(child) end)
setupTicketsESP()No comments yet for this script.



![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/script/0-1753093706828.png)