Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
UserInputService = :()
(.UAI_DestroyDroneESP) ==
(.UAI_DestroyDroneESP)
(.UAI_StopDroneESP) ==
(.UAI_StopDroneESP)
LOCAL = Players.LocalPlayer
PLAYER_GUI = LOCAL:()
FOLDER_MAIN = :():()
FOLDER_SCOUT = .Drones:()
.Drones.Scout:()
COLOR_BOT = .(, , )
COLOR_PLAYER = .(, , )
OUTLINE = .(, , )
TEXT_BOT = .(, , )
TEXT_PLAYER = .(, , )
MAX_DIST =
tracked = {}
folderConns = {}
updateConn: RBXScriptConnection? =
espEnabled =
guiConns = {}
screenGui: ScreenGui? =
(drone: Model):
named = drone:()
(named) == named ~=
named
_, child (drone:())
child:() child.Name ~=
child.Name
(drone: Model): BasePart?
drone.PrimaryPart
drone.PrimaryPart
body = drone:(, )
body body:()
body
drone:(, )
(): ?
char = LOCAL.Character
char
hrp = char:()
hrp hrp.Position
(userId: number?): ?
userId userId <=
plr = Players:(userId)
plr
plr.DisplayName ~= plr.DisplayName plr.Name
ok, name = (()
Players:(userId)
)
ok (name) ==
name
(userId)
(drone: Model)
isPlayer = drone:() ==
ownerId = drone:()
(ownerId) ~=
ownerId =
ownerId ownerId >
isPlayer =
pilot = isPlayer (ownerId)
isPlayer, ownerId, pilot
(data, isPlayer: boolean)
fill = isPlayer COLOR_PLAYER COLOR_BOT
text = isPlayer TEXT_PLAYER TEXT_BOT
data.highlight.FillColor = fill
data.highlight.OutlineColor = OUTLINE
data.label.TextColor3 = text
data.isPlayer = isPlayer
(): (number, number, number)
bots, players, total = , ,
_, data (tracked)
total +=
data.isPlayer
players +=
bots +=
total, bots, players
statusLabel: TextLabel? =
toggleBtn: TextButton? =
()
total, bots, players = ()
statusLabel
espEnabled
statusLabel.Text = .(, total, bots, players)
statusLabel.TextColor3 = .(, , )
statusLabel.Text =
statusLabel.TextColor3 = .(, , )
toggleBtn
espEnabled
toggleBtn.Text =
toggleBtn.BackgroundColor3 = .(, , )
toggleBtn.Text =
toggleBtn.BackgroundColor3 = .(, , )
(drone: Model)
data = tracked[drone]
data
_, c (data.conns {})
c:()
data.highlight
data.highlight:()
data.billboard
data.billboard:()
tracked[drone] =
()
drone (tracked)
(drone)
(drone: Model)
espEnabled
tracked[drone]
drone:() drone.Name ~=
oldHl = drone:()
oldHl
oldHl:()
oldBb = drone:()
oldBb
oldBb:()
anchor = (drone)
anchor
isPlayer, ownerId, pilot = (drone)
typeName = (drone)
hl = .()
hl.Name =
hl.Adornee = drone
hl.FillTransparency =
hl.OutlineTransparency =
hl.DepthMode = .HighlightDepthMode.AlwaysOnTop
hl.Parent = drone
bb = .()
bb.Name =
bb.Adornee = anchor
bb.AlwaysOnTop =
bb.Size = .(, )
bb.StudsOffset = .(, , )
bb.MaxDistance = MAX_DIST
bb.Parent = drone
label = .()
label.Name =
label.BackgroundTransparency =
label.Size = .(, )
label.Font = .Font.GothamBold
label.TextSize =
label.TextStrokeTransparency =
label.TextWrapped =
label.Parent = bb
conns = {}
.(conns, drone.AncestryChanged:((_, parent)
parent ==
(drone)
()
))
data = {
highlight = hl,
billboard = bb,
label = label,
typeName = typeName,
isPlayer = isPlayer,
ownerId = ownerId,
pilot = pilot,
conns = conns,
}
(data, isPlayer)
tracked[drone] = data
(folder: ?)
folder
_, child (folder:())
child:() child.Name ==
(child)
()
_, c (folderConns)
c:()
.(folderConns)
(folder: ?)
folder
(folder)
.(folderConns, folder.ChildAdded:((child)
.(()
espEnabled child.Parent child:() child.Name ==
(child)
()
)
))
.(folderConns, folder.ChildRemoved:((child)
tracked[child]
(child)
()
))
()
updateConn
updateConn:()
updateConn =
()
()
updateConn = RunService.Heartbeat:(()
espEnabled
root = ()
root
drone, data (tracked)
drone.Parent data.label
isPlayer, ownerId, pilot = (drone)
data.typeName = (drone)
isPlayer ~= data.isPlayer ownerId ~= data.ownerId pilot ~= data.pilot
data.ownerId = ownerId
data.pilot = pilot
(data, isPlayer)
anchor = (drone)
anchor
dist = (anchor.Position - root).Magnitude
MAX_DIST dist > MAX_DIST
data.highlight.Enabled =
data.billboard.Enabled =
data.highlight.Enabled =
data.billboard.Enabled =
who
isPlayer
who = pilot ( .. pilot)
who =
data.label.Text = .(, data.typeName, who, dist)
(drone)
)
(on: boolean)
on == espEnabled
()
espEnabled = on
on
()
(FOLDER_MAIN)
(FOLDER_SCOUT)
()
()
()
()
()
()
_, c (guiConns)
c:()
.(guiConns)
screenGui
screenGui:()
screenGui =
statusLabel =
toggleBtn =
(parent: , radius: number)
c = .()
c.CornerRadius = .(, radius)
c.Parent = parent
c
(parent: , color: , thickness: number)
s = .()
s.Color = color
s.Thickness = thickness
s.ApplyStrokeMode = .ApplyStrokeMode.Border
s.Parent = parent
s
()
()
old = PLAYER_GUI:()
old
old:()
gui = .()
gui.Name =
gui.ResetOnSpawn =
gui.ZIndexBehavior = .ZIndexBehavior.Sibling
gui.DisplayOrder =
gui.Parent = PLAYER_GUI
screenGui = gui
panel = .()
panel.Name =
panel.Size = .(, )
panel.Position = .(, , , )
panel.BackgroundColor3 = .(, , )
panel.BackgroundTransparency =
panel.BorderSizePixel =
panel.Active =
panel.Parent = gui
(panel, )
(panel, .(, , ), )
title = .()
title.Name =
title.BackgroundTransparency =
title.Position = .(, )
title.Size = .(, -, , )
title.Font = .Font.GothamBold
title.TextSize =
title.TextXAlignment = .TextXAlignment.Left
title.TextColor3 = .(, , )
title.Text =
title.Parent = panel
hideBtn = .()
hideBtn.Name =
hideBtn.Size = .(, )
hideBtn.Position = .(, -, , )
hideBtn.BackgroundColor3 = .(, , )
hideBtn.Text =
hideBtn.Font = .Font.GothamBold
hideBtn.TextSize =
hideBtn.TextColor3 = .(, , )
hideBtn.AutoButtonColor =
hideBtn.Parent = panel
(hideBtn, )
statusLabel = .()
statusLabel.Name =
statusLabel.BackgroundTransparency =
statusLabel.Position = .(, )
statusLabel.Size = .(, -, , )
statusLabel.Font = .Font.Gotham
statusLabel.TextSize =
statusLabel.TextXAlignment = .TextXAlignment.Left
statusLabel.Text =
statusLabel.Parent = panel
toggleBtn = .()
toggleBtn.Name =
toggleBtn.Size = .(, -, , )
toggleBtn.Position = .(, )
toggleBtn.Font = .Font.GothamBold
toggleBtn.TextSize =
toggleBtn.TextColor3 = .(, , )
toggleBtn.AutoButtonColor =
toggleBtn.Parent = panel
(toggleBtn, )
hint = .()
hint.Name =
hint.BackgroundTransparency =
hint.Position = .(, )
hint.Size = .(, -, , )
hint.Font = .Font.Gotham
hint.TextSize =
hint.TextXAlignment = .TextXAlignment.Left
hint.TextColor3 = .(, , )
hint.Text =
hint.Parent = panel
openBtn = .()
openBtn.Name =
openBtn.Visible =
openBtn.Size = .(, )
openBtn.Position = .(, , , )
openBtn.BackgroundColor3 = .(, , )
openBtn.BackgroundTransparency =
openBtn.Font = .Font.GothamBold
openBtn.TextSize =
openBtn.TextColor3 = .(, , )
openBtn.Text =
openBtn.AutoButtonColor =
openBtn.Parent = gui
(openBtn, )
(openBtn, .(, , ), )
.(guiConns, toggleBtn.MouseButton1Click:(()
( espEnabled)
))
.(guiConns, hideBtn.MouseButton1Click:(()
panel.Visible =
openBtn.Visible =
))
.(guiConns, openBtn.MouseButton1Click:(()
openBtn.Visible =
panel.Visible =
))
dragging =
dragStart: ? =
startPos: ? =
.(guiConns, panel.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPos = panel.Position
))
.(guiConns, UserInputService.InputChanged:((input)
dragging dragStart startPos
input.UserInputType == .UserInputType.MouseMovement
input.UserInputType == .UserInputType.Touch
delta = input.Position - dragStart
panel.Position = .(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
openBtn.Position = panel.Position
))
.(guiConns, UserInputService.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
dragging =
))
()
()
()
()
()
()
()
.UAI_StopDroneESP =
.UAI_DestroyDroneESP =
.UAI_SetDroneESP =
()
.UAI_StopDroneESP = ()
()
()
.UAI_SetDroneESP = setEspEnabled
.UAI_DestroyDroneESP = destroyAll
()
()
total, bots, players = ()
(.(
,
total,
bots,
players
))
.(, total, bots, players)In this script there is only one function to see drones and to see a bot is it flying or a human
PANTSIR