Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
UserInputService = :()
CollectionService = :()
LOCAL = Players.LocalPlayer
PlayerGui = LOCAL:()
(.UAI_StopMenu) ==
(.UAI_StopMenu)
(.UAI_StopDroneESP) ==
(.UAI_StopDroneESP)
(.UAI_StopAutoPantsir) ==
(.UAI_StopAutoPantsir)
(.UAI_StopAutoTor) ==
(.UAI_StopAutoTor)
(.UAI_StopAutoStrela) ==
(.UAI_StopAutoStrela)
oldGui = PlayerGui:()
oldGui
oldGui:()
(drone)
named = drone:()
(named) == named ~=
named
_, child (drone:())
child:() .(child.Name, , , )
child.Name
(drone)
drone
drone:()
ok, primary = (()
drone.PrimaryPart
)
ok primary
primary
body = drone:(, )
body body:()
body
drone:(, )
(model)
model model:()
model:() ~=
model:() ~=
model:() ~=
model:() ~=
(model)
model
CollectionService:(model, ) CollectionService:(model, )
name = (model:() )
lower = .(name)
.(lower, , , ) .(lower, , , )
_, child (model:())
child:()
n = .(child.Name)
.(n, , , )
(model)
model model.Parent model:()
model.Name ~=
model:() ==
model:() ==
(model)
(model) ~=
(model)
model
names = {}
(v)
(v) == v ~=
.(names, .(v))
(model:())
(model.Name)
_, child (model:())
child:() .(child.Name, , , )
(child.Name)
_, n (names)
.(n, , , ) (.(n, , , ) .(n, , , ))
.(n, , , ) n == .(n, , , )
.(n, , , ) n ==
.(n, , , )
.(n, , , )
.(n, , , )
()
out = {}
drones = :()
drones
out
(folder)
folder
_, child (folder:())
child:() child.Name == (child)
.(out, child)
(drones:())
scout = drones:()
(scout scout:())
out
()
out = {}
_, drone (())
(drone)
.(out, drone)
out
esp = {
on = ,
tracked = {},
updateConn = ,
hooks = {},
}
COLOR_BOT = .(, , )
COLOR_PLAYER = .(, , )
TEXT_BOT = .(, , )
TEXT_PLAYER = .(, , )
ESP_MAX_DIST =
(userId)
userId userId <=
plr = Players:(userId)
plr
plr.DisplayName ~= plr.DisplayName plr.Name
ok, name = (()
Players:(userId)
)
ok (name) ==
name
(userId)
(drone)
isPlayer = drone:() ==
ownerId = drone:()
(ownerId) ~=
ownerId =
ownerId ownerId >
isPlayer =
pilot = isPlayer (ownerId)
isPlayer, ownerId, pilot
(drone)
data = esp.tracked[drone]
data
_, c (data.conns {})
c:()
data.highlight
data.highlight:()
data.billboard
data.billboard:()
esp.tracked[drone] =
(drone)
esp.on esp.tracked[drone]
drone:() drone.Name ~=
oldHl = drone:()
oldHl
oldHl:()
oldBb = drone:()
oldBb
oldBb:()
anchor = (drone)
anchor
isPlayer = (, (drone))
hl = .()
hl.Name =
hl.Adornee = drone
hl.FillTransparency =
hl.OutlineTransparency =
hl.OutlineColor = .(, , )
hl.DepthMode = .HighlightDepthMode.AlwaysOnTop
hl.FillColor = isPlayer COLOR_PLAYER COLOR_BOT
hl.Parent = drone
bb = .()
bb.Name =
bb.Adornee = anchor
bb.AlwaysOnTop =
bb.Size = .(, )
bb.StudsOffset = .(, , )
bb.MaxDistance = ESP_MAX_DIST
bb.Parent = drone
label = .()
label.BackgroundTransparency =
label.Size = .(, )
label.Font = .Font.GothamBold
label.TextSize =
label.TextStrokeTransparency =
label.TextWrapped =
label.TextColor3 = isPlayer TEXT_PLAYER TEXT_BOT
label.Text = (drone)
label.Parent = bb
conns = {
drone.AncestryChanged:((_, parent)
parent ==
(drone)
),
}
esp.tracked[drone] = {
highlight = hl,
billboard = bb,
label = label,
isPlayer = isPlayer,
conns = conns,
}
()
drones = :()
drones
(folder)
folder
_, child (folder:())
child:() child.Name ==
(child)
(drones:())
scout = drones:()
(scout scout:())
()
_, c (esp.hooks)
c:()
esp.hooks = {}
drones = :()
drones
(folder)
folder
.(esp.hooks, folder.ChildAdded:((child)
.(()
esp.on child.Parent child:() child.Name ==
(child)
)
))
.(esp.hooks, folder.ChildRemoved:((child)
esp.tracked[child]
(child)
))
(drones:())
scout = drones:()
(scout scout:())
()
esp.on =
esp.updateConn
esp.updateConn:()
esp.updateConn =
_, c (esp.hooks)
c:()
esp.hooks = {}
drone (esp.tracked)
(drone)
()
()
esp.on =
()
()
esp.updateConn = RunService.Heartbeat:(()
char = LOCAL.Character
hrp = char char:()
root = hrp hrp.Position
root
drone, data (esp.tracked)
drone.Parent
(drone)
isPlayer, _, pilot = (drone)
typeName = (drone)
data.highlight.FillColor = isPlayer COLOR_PLAYER COLOR_BOT
data.label.TextColor3 = isPlayer TEXT_PLAYER TEXT_BOT
anchor = (drone)
anchor
dist = (anchor.Position - root).Magnitude
dist > ESP_MAX_DIST
data.highlight.Enabled =
data.billboard.Enabled =
data.highlight.Enabled =
data.billboard.Enabled =
who = isPlayer (pilot ( .. pilot) )
data.label.Text = .(, typeName, who, dist)
)
.UAI_StopDroneESP = stopEsp
people = {
on = ,
tracked = {},
updateConn = ,
hooks = {},
}
COLOR_CIV = .(, , )
COLOR_DEF = .(, , )
COLOR_OP = .(, , )
COLOR_UNK = .(, , )
TEXT_CIV = .(, , )
TEXT_DEF = .(, , )
TEXT_OP = .(, , )
TEXT_UNK = .(, , )
PEOPLE_MAX_DIST =
(plr)
plr
char = plr.Character
teamAttr = char char:()
(teamAttr) == teamAttr ~=
teamAttr
plr.Team plr.Team.Name ~=
plr.Team.Name
(faction)
f = .((faction ))
.(f, , , )
COLOR_CIV, TEXT_CIV,
.(f, , , )
COLOR_DEF, TEXT_DEF,
.(f, , , )
COLOR_OP, TEXT_OP,
COLOR_UNK, TEXT_UNK,
(plr)
data = people.tracked[plr]
data
_, c (data.conns {})
c:()
data.highlight
data.highlight:()
data.billboard
data.billboard:()
people.tracked[plr] =
(plr)
people.on plr plr == LOCAL people.tracked[plr]
char = plr.Character
char
hrp = char:() char:(, )
hum = char:()
hrp hum
oldHl = char:()
oldHl
oldHl:()
oldBb = char:()
oldBb
oldBb:()
faction = (plr)
fill, textCol, short = (faction)
hl = .()
hl.Name =
hl.Adornee = char
hl.FillTransparency =
hl.OutlineTransparency =
hl.OutlineColor = .(, , )
hl.DepthMode = .HighlightDepthMode.AlwaysOnTop
hl.FillColor = fill
hl.Parent = char
bb = .()
bb.Name =
bb.Adornee = hrp
bb.AlwaysOnTop =
bb.Size = .(, )
bb.StudsOffset = .(, , )
bb.MaxDistance = PEOPLE_MAX_DIST
bb.Parent = char
label = .()
label.BackgroundTransparency =
label.Size = .(, )
label.Font = .Font.GothamBold
label.TextSize =
label.TextStrokeTransparency =
label.TextWrapped =
label.TextColor3 = textCol
label.Text = .(, plr.DisplayName ~= plr.DisplayName plr.Name, short)
label.Parent = bb
conns = {
char.AncestryChanged:((_, parent)
parent ==
(plr)
),
hum.Died:(()
(plr)
),
}
people.tracked[plr] = {
highlight = hl,
billboard = bb,
label = label,
faction = faction,
conns = conns,
}
()
_, plr (Players:())
plr ~= LOCAL
people.tracked[plr] plr.Character ~= people.tracked[plr].highlight.Adornee
(plr)
people.tracked[plr]
(plr)
()
people.on =
people.updateConn
people.updateConn:()
people.updateConn =
_, c (people.hooks)
c:()
people.hooks = {}
plr (people.tracked)
(plr)
()
()
people.on =
.(people.hooks, Players.PlayerAdded:((plr)
.(people.hooks, plr.CharacterAdded:(()
.(()
people.on
(plr)
)
))
plr.Character
.(()
people.on
(plr)
)
))
.(people.hooks, Players.PlayerRemoving:((plr)
(plr)
))
_, plr (Players:())
plr ~= LOCAL
.(people.hooks, plr.CharacterAdded:(()
.(()
people.on
(plr)
(plr)
)
))
()
people.updateConn = RunService.Heartbeat:(()
people.on
myChar = LOCAL.Character
myHrp = myChar myChar:()
root = myHrp myHrp.Position
root
plr, data (people.tracked)
char = plr.Character
char char.Parent
(plr)
faction = (plr)
fill, textCol, short = (faction)
data.faction = faction
data.highlight.FillColor = fill
data.label.TextColor3 = textCol
hrp = char:()
hrp
dist = (hrp.Position - root).Magnitude
dist > PEOPLE_MAX_DIST
data.highlight.Enabled =
data.billboard.Enabled =
data.highlight.Enabled =
data.billboard.Enabled =
nick = plr.DisplayName ~= plr.DisplayName plr.Name
data.label.Text = .(, nick, short, dist)
)
.UAI_StopPeopleESP = stopPeople
auto = {
on = ,
conn = ,
status = ,
lastFire = ,
lastAim = ,
lastWeaponSwitch = ,
gunsHolding = ,
currentTarget = ,
firing = ,
firedIds = {},
gen = ,
setButton = ,
}
(.UAI_AutoGen) ~=
.UAI_AutoGen =
AIM_INTERVAL =
FIRE_INTERVAL_ROCKET =
FIRE_INTERVAL_BURST =
WEAPON_SWITCH_INTERVAL =
MAX_RANGE =
MAX_ACTIVE_PANTSIR_SAMS =
MIN_PITCH = -
MAX_PITCH =
()
_, gui (PlayerGui:())
gui:() .(gui.Name, , , )
obj = gui:()
obj obj:() obj.Value obj.Value.Parent
obj.Value, gui
char = LOCAL.Character
hum = char char:()
hum hum.SeatPart hum.SeatPart.Name ==
seat = hum.SeatPart
model = seat:()
model model.Parent
model:()
model,
model = model.Parent model.Parent:()
,
(pantsir)
remotes = pantsir:()
states = pantsir:()
main = pantsir:()
other = main main:()
mainBashnya = other other:()
camAtt = mainBashnya mainBashnya:()
bashnya = main main:()
radar = bashnya bashnya:()
radarPrimary = radar radar.PrimaryPart
remotes states camAtt
{
remotes = remotes,
states = states,
camAtt = camAtt,
radarPrimary = radarPrimary,
aim = remotes:(),
fire = remotes:(),
changeWeapon = remotes:(),
changeMode = remotes:(),
toggleRadar = remotes:(),
weapon = states:(),
gunsMode = states:(),
samMode = states:(),
radarEnabled = states:(),
samAmmo = states:(),
gunAmmo = states:(),
samCd = states:(),
gunCd = states:(),
samReloading = states:(),
gunsReloading = states:(),
pantsir = pantsir,
}
(pantsir)
pantsir
spawned = pantsir:()
spawned
n =
_, child (spawned:())
child:()
lower = .(child.Name)
.(lower, , , )
.(lower, , , )
.(lower, , , )
.(lower, , , )
n +=
n
(ctx, target)
ctx ctx.fire target
,
beforeAmmo = ctx.samAmmo ctx.samAmmo.Value
beforeCd = ctx.samCd ctx.samCd.Value
beforeActive = (ctx.pantsir)
(()
ctx.fire:(, target)
)
_ = ,
.()
ammoNow = ctx.samAmmo ctx.samAmmo.Value beforeAmmo
cdNow = ctx.samCd ctx.samCd.Value beforeCd
activeNow = (ctx.pantsir)
ammoNow < beforeAmmo cdNow > beforeCd activeNow > beforeActive
,
activeNow = (ctx.pantsir)
activeNow >= MAX_ACTIVE_PANTSIR_SAMS
,
,
(camAtt, targetPos)
offset = camAtt.WorldCFrame:(targetPos)
yaw = .(-offset.X, -offset.Z)
horiz = .(offset.X * offset.X + offset.Z * offset.Z)
pitch = .(offset.Y, .(horiz, ))
pitch = .(pitch, MIN_PITCH, MAX_PITCH)
cf = camAtt.WorldCFrame * .(, yaw, ) * .(pitch, , )
yaw, pitch, cf.Position, cf.LookVector
(drone)
id = drone:()
id ~=
(id)
(drone)
()
alive = {}
_, drone (())
alive[(drone)] =
key (auto.firedIds)
alive[key]
auto.firedIds[key] =
(drone)
drone
auto.firedIds[(drone)] = .()
(drone)
drone ~= auto.firedIds[(drone)] ~=
(fromPos)
()
best, bestDist
_, drone (())
(drone)
anchor = (drone)
anchor
dist = (anchor.Position - fromPos).Magnitude
dist <= MAX_RANGE ( bestDist dist < bestDist)
best = drone
bestDist = dist
best
(ctx)
auto.gunsHolding ctx ctx.fire
(()
ctx.fire:()
)
auto.gunsHolding =
()
auto.on =
auto.status =
auto.currentTarget =
auto.firing =
auto.firedIds = {}
auto.gen +=
.UAI_AutoGen = auto.gen
auto.conn
auto.conn:()
auto.conn =
pantsir = (, ())
pantsir
ctx = (pantsir)
(ctx)
(ctx)
ctx.radarEnabled ctx.radarEnabled.Value == ctx.toggleRadar
(()
ctx.toggleRadar:()
)
ctx.gunsMode ctx.gunsMode.Value == ctx.changeMode
(()
ctx.changeMode:()
)
ctx.samMode ctx.samMode.Value ~= ctx.changeMode
(()
ctx.changeMode:()
)
()
()
auto.on =
auto.status =
auto.gen +=
myGen = auto.gen
.UAI_AutoGen = myGen
auto.conn = RunService.Heartbeat:(()
auto.on myGen ~= .UAI_AutoGen
pantsir = (, ())
pantsir
auto.status =
auto.currentTarget =
ctx = (pantsir)
ctx ctx.aim ctx.fire
auto.status =
(ctx)
(ctx)
now = .()
weapon = ctx.weapon ctx.weapon.Value
samAmmo = ctx.samAmmo ctx.samAmmo.Value
samCd = ctx.samCd ctx.samCd.Value
samReloading = ctx.samReloading ctx.samReloading.Value
weapon ~=
auto.currentTarget =
ctx.changeWeapon now - auto.lastWeaponSwitch >= WEAPON_SWITCH_INTERVAL
auto.lastWeaponSwitch = now
(()
ctx.fire:()
)
(()
ctx.changeWeapon:()
)
auto.status =
samAmmo <= samReloading
auto.currentTarget =
auto.status = samReloading
origin = ctx.radarPrimary ctx.radarPrimary.Position ctx.camAtt.WorldPosition
target = (origin)
auto.currentTarget = target
target
auto.status =
anchor = (target)
anchor
auto.currentTarget =
dist = (anchor.Position - origin).Magnitude
typeName = (target)
who = (target:() == )
auto.status = .(, who, typeName, dist, samAmmo)
now - auto.lastAim >= AIM_INTERVAL
auto.lastAim = now
yaw, pitch, pos, look = (ctx.camAtt, anchor.Position)
(()
ctx.aim:(yaw, pitch, pos, look)
)
activeSams = (pantsir)
activeSams >= MAX_ACTIVE_PANTSIR_SAMS
auto.status = .(, activeSams)
samCd <= auto.firing now - auto.lastFire >= FIRE_INTERVAL_ROCKET
auto.firing =
auto.lastFire = now
shotTarget = target
(shotTarget)
auto.currentTarget =
.(()
ok, reason = (ctx, shotTarget)
ok
(()
ctx.fire:()
)
auto.status =
reason ==
auto.firedIds[(shotTarget)] =
auto.status =
auto.lastFire = now - (FIRE_INTERVAL_ROCKET - )
auto.status =
.()
auto.firing =
)
)
.UAI_StopAutoPantsir = stopAuto
tor = {
on = ,
conn = ,
status = ,
lastFire = ,
lastAim = ,
currentTarget = ,
lockSince = ,
firing = ,
firedIds = {},
gen = ,
smoothYaw = ,
smoothPitch = ,
lastSentYaw = ,
lastSentPitch = ,
}
(.UAI_TorGen) ~=
.UAI_TorGen =
TOR_AIM_INTERVAL =
TOR_FIRE_INTERVAL =
TOR_FIRE_RANGE =
TOR_DETECT_RANGE =
TOR_MAX_RANGE = TOR_FIRE_RANGE
TOR_AIM_SETTLE =
TOR_FIRE_RETRY =
TOR_AIM_DEADZONE =
TOR_AIM_SMOOTH =
TOR_MISS_GRACE =
TOR_MISS_MAX_WAIT =
()
_, guiObj (PlayerGui:())
guiObj:() .(guiObj.Name, , , )
obj = guiObj:()
obj obj:() obj.Value obj.Value.Parent
obj.Value, guiObj
char = LOCAL.Character
hum = char char:()
hum hum.SeatPart hum.SeatPart.Name ==
seat = hum.SeatPart
model = seat:()
model model.Parent
model.Name == model:()
model,
model = model.Parent model.Parent:()
aa = :()
map = aa aa:()
content = map map:()
antis = content content:()
torModel = antis antis:()
torModel
seat = torModel:()
seat seat:() seat.Occupant
occ = seat.Occupant
plr = Players:(occ.Parent)
plr == LOCAL
torModel,
,
(torModel)
remotes = torModel:()
states = torModel:()
corpus = torModel:()
main = corpus (corpus.PrimaryPart corpus:())
camAtt = main main:()
bashnya = torModel:()
radar = bashnya bashnya:()
radarPrimary = radar radar.PrimaryPart
remotes states camAtt
{
remotes = remotes,
states = states,
camAtt = camAtt,
radarPrimary = radarPrimary,
radarModel = radar,
aim = remotes:(),
fire = remotes:(),
toggleRadar = remotes:(),
changeSamMode = remotes:(),
samAmmo = states:(),
samCd = states:(),
samCdMax = states:(),
samReloading = states:(),
radarEnabled = states:(),
samMode = states:(),
torModel = torModel,
}
(drone)
id = drone:()
id ~=
(id)
(drone)
()
alive = {}
_, drone (())
alive[(drone)] =
key (tor.firedIds)
alive[key]
tor.firedIds[key] =
(drone, dist)
drone
anchor = (drone)
y = anchor anchor.Position.Y
tor.firedIds[(drone)] = {
t = .(),
dist = (dist) == dist ,
sawMissile = ,
alt = y,
lastY = y,
lastT = .(),
}
(drone)
drone
info = tor.firedIds[(drone)]
info ~=
(drone)
drone
info = tor.firedIds[(drone)]
(info) ==
{ t = info, dist = , sawMissile = }
(info) ==
info
(torModel)
torModel
spawned = torModel:()
spawned
n =
_, child (spawned:())
child:()
lower = .(child.Name)
.(lower, , , )
.(lower, , , )
.(lower, , , )
.(lower, , , )
.(lower, , , )
n +=
child:()
lower = .(child.Name)
.(lower, , , )
.(lower, , , )
.(lower, , , )
n +=
n
(drone, shotInfo)
drone drone.Parent
drone:() == drone:() ==
(shotInfo) ~=
drone:() ==
anchor = (drone)
anchor (shotInfo.alt) ==
drop = shotInfo.alt - anchor.Position.Y
drop >=
(shotInfo.lastY) == (shotInfo.lastT) ==
dt = .() - shotInfo.lastT
dt >
vy = (anchor.Position.Y - shotInfo.lastY) / dt
vy <= -
(drone, fromPos)
(drone, drone tor.firedIds[(drone)])
(drone)
(drone)
anchor = (drone)
anchor
fromPos
dist = (anchor.Position - fromPos).Magnitude
dist > TOR_DETECT_RANGE
(torModel)
_, guiObj (PlayerGui:())
guiObj:() .(guiObj.Name, , , )
obj = guiObj:()
obj obj:()
obj.Value == torModel obj.Value ==
guiObj
guiObj
torModel
embedded = torModel:()
embedded embedded:()
embedded
(torModel)
gui = (torModel)
gui
{}
display = gui:(, )
folder = display display:()
folder
{}
center = display.AbsolutePosition + display.AbsoluteSize *
radius = .(display.AbsoluteSize.X, display.AbsoluteSize.Y) *
radius <
radius =
blips = {}
_, child (folder:())
child.Name ~= child:() child.Visible
abs = child.AbsolutePosition + child.AbsoluteSize *
dx = abs.X - center.X
dy = abs.Y - center.Y
ang = .(dx, -dy)
rangeFrac = .(.(dx * dx + dy * dy) / radius, , )
.(blips, {
gui = child,
ang = ang,
rangeFrac = rangeFrac,
})
blips
(drone, fromPos, blips)
drone fromPos blips #blips ==
, .huge
anchor = (drone)
anchor
, .huge
offset = anchor.Position - fromPos
dist = offset.Magnitude
dist <
dist =
yaw = .(offset.X, offset.Z)
rangeFrac = dist / TOR_DETECT_RANGE
bestScore = .huge
_, blip (blips)
dang = .(yaw - blip.ang)
dang = .(dang, .(dang - .pi * ))
dr = .(rangeFrac - blip.rangeFrac)
score = dang * + dr *
score < bestScore
bestScore = score
bestScore <= , bestScore
(fromPos, torModel)
blips = (torModel)
out = {}
seen = {}
_, drone (())
anchor = (drone)
anchor
dist = (anchor.Position - fromPos).Magnitude
dist <= TOR_DETECT_RANGE
onRadar, radarScore = (drone, fromPos, blips)
.(out, {
drone = drone,
dist = dist,
onRadar = onRadar,
radarScore = radarScore,
})
seen[drone] =
out, #blips
(fromPos, torModel)
()
(tor.currentTarget, fromPos)
tor.currentTarget,
tor.currentTarget =
tor.lockSince =
candidates, blipCount = (fromPos, torModel)
best, bestScore
_, item (candidates)
drone = item.drone
(drone)
score = item.dist - (item.onRadar )
bestScore score < bestScore
best = drone
bestScore = score
best, blipCount
()
tor.on =
tor.status =
tor.currentTarget =
tor.lockSince =
tor.firing =
tor.firedIds = {}
tor.smoothYaw =
tor.smoothPitch =
tor.lastSentYaw =
tor.lastSentPitch =
tor.gen +=
.UAI_TorGen = tor.gen
tor.conn
tor.conn:()
tor.conn =
(ctx)
ctx.radarEnabled ctx.radarEnabled.Value == ctx.toggleRadar
(()
ctx.toggleRadar:()
)
ctx.samMode ctx.samMode.Value ~= ctx.changeSamMode
(()
ctx.changeSamMode:()
)
(ctx, target)
ctx ctx.fire target
,
beforeAmmo = ctx.samAmmo ctx.samAmmo.Value
beforeCd = ctx.samCd ctx.samCd.Value
beforeMissiles = (ctx.torModel)
(()
ctx.fire:(target)
)
_ = ,
.()
ammoNow = ctx.samAmmo ctx.samAmmo.Value beforeAmmo
cdNow = ctx.samCd ctx.samCd.Value beforeCd
missilesNow = (ctx.torModel)
ammoNow < beforeAmmo cdNow > beforeCd missilesNow > beforeMissiles
,
,
()
()
auto.on
()
tor.on =
tor.status =
tor.gen +=
myGen = tor.gen
.UAI_TorGen = myGen
tor.conn = RunService.Heartbeat:(()
tor.on myGen ~= .UAI_TorGen
torModel = (, ())
torModel
tor.status =
tor.currentTarget =
tor.lockSince =
ctx = (torModel)
ctx ctx.aim ctx.fire
tor.status =
(ctx)
now = .()
samAmmo = ctx.samAmmo ctx.samAmmo.Value
samCd = ctx.samCd ctx.samCd.Value
samReloading = ctx.samReloading ctx.samReloading.Value
samAmmo <= samReloading
tor.currentTarget =
tor.lockSince =
tor.status = samReloading
origin = ctx.radarPrimary ctx.radarPrimary.Position ctx.camAtt.WorldPosition
target, radarBlips = (origin, torModel)
target ~= tor.currentTarget
tor.currentTarget = target
tor.lockSince = target now
tor.smoothYaw =
tor.smoothPitch =
tor.lastSentYaw =
tor.lastSentPitch =
target
(radarBlips) == radarBlips >
tor.status = .(, radarBlips)
tor.status =
anchor = (target)
anchor
tor.currentTarget =
tor.lockSince =
dist = (anchor.Position - origin).Magnitude
typeName = (target)
who = (target:() == )
mode = ctx.samMode ctx.samMode.Value
inFireRange = dist <= TOR_FIRE_RANGE
onRadar =
blips = (torModel)
onRadar = (, (target, origin, blips))
shotInfo = (target)
waitingKill = shotInfo ~=
phase
waitingKill
phase =
inFireRange
phase = onRadar
phase = onRadar .(, TOR_FIRE_RANGE) .(, TOR_FIRE_RANGE)
tor.status = .(, who, typeName, dist, phase, samAmmo, mode)
now - tor.lastAim >= TOR_AIM_INTERVAL
tor.lastAim = now
yaw, pitch = (ctx.camAtt, anchor.Position)
tor.smoothYaw ==
tor.smoothYaw = yaw
tor.smoothPitch = pitch
a = TOR_AIM_SMOOTH
tor.smoothYaw += (yaw - tor.smoothYaw) * a
tor.smoothPitch += (pitch - tor.smoothPitch) * a
sendYaw = tor.smoothYaw
sendPitch = tor.smoothPitch
dy = tor.lastSentYaw .(sendYaw - tor.lastSentYaw) .huge
dp = tor.lastSentPitch .(sendPitch - tor.lastSentPitch) .huge
dy >= TOR_AIM_DEADZONE dp >= TOR_AIM_DEADZONE
cf = ctx.camAtt.WorldCFrame
* .(, sendYaw, )
* .(sendPitch, , )
(()
ctx.aim:(sendYaw, sendPitch, cf.Position, cf.LookVector)
)
tor.lastSentYaw = sendYaw
tor.lastSentPitch = sendPitch
waitingKill
age = now - shotInfo.t
activeMissiles = (torModel)
activeMissiles >
shotInfo.sawMissile =
anchorNow = (target)
anchorNow
shotInfo.lastY = anchorNow.Position.Y
shotInfo.lastT = now
(shotInfo.alt) ~=
shotInfo.alt = anchorNow.Position.Y
(target, shotInfo) (target, origin)
(target, dist)
tor.currentTarget =
tor.lockSince =
tor.status =
activeMissiles >
tor.status = .(, dist)
missReady =
shotInfo.sawMissile age >= TOR_MISS_GRACE
missReady =
age >= TOR_MISS_GRACE + age >= .(, TOR_MISS_MAX_WAIT)
missReady =
age >= TOR_MISS_MAX_WAIT
missReady =
missReady inFireRange samCd <= tor.firing now - tor.lastFire >= TOR_FIRE_INTERVAL
tor.firedIds[(target)] =
tor.status = .(, dist)
tor.status = .(, dist, age)
inFireRange
tor.status = .(, dist, TOR_FIRE_RANGE)
lockedFor = tor.lockSince (now - tor.lockSince)
lockedFor < TOR_AIM_SETTLE
tor.status = .(, dist)
samCd <= tor.firing now - tor.lastFire >= TOR_FIRE_INTERVAL
tor.firing =
tor.lastFire = now
shotTarget = target
shotDist = dist
.(()
ok = (ctx, shotTarget)
ok
(shotTarget, shotDist)
tor.status =
tor.firedIds[(shotTarget)] =
tor.lastFire = now - (TOR_FIRE_INTERVAL - TOR_FIRE_RETRY)
tor.status =
.()
tor.firing =
)
)
.UAI_StopAutoTor = stopTor
strela = {
on = ,
conn = ,
status = ,
lastFire = ,
lastAim = ,
currentTarget = ,
lockSince = ,
firing = ,
firedIds = {},
gen = ,
smoothYaw = ,
smoothPitch = ,
lastSentYaw = ,
lastSentPitch = ,
}
(.UAI_StrelaGen) ~=
.UAI_StrelaGen =
STRELA_AIM_INTERVAL =
STRELA_FIRE_INTERVAL =
STRELA_MAX_RANGE =
STRELA_AIM_SETTLE =
STRELA_FIRE_RETRY =
STRELA_AIM_DEADZONE =
STRELA_AIM_SMOOTH =
STRELA_MIN_PITCH = -
STRELA_MAX_PITCH =
()
_, guiObj (PlayerGui:())
guiObj:() .(guiObj.Name, , , )
obj = guiObj:() guiObj:() guiObj:()
obj obj:() obj.Value obj.Value.Parent
obj.Value, guiObj
char = LOCAL.Character
hum = char char:()
hum hum.SeatPart hum.SeatPart.Name ==
seat = hum.SeatPart
model = seat:()
model model.Parent
model.Name == model:()
model,
model = model.Parent model.Parent:()
aa = :()
map = aa aa:()
content = map map:()
antis = content content:()
strelaModel = antis antis:()
strelaModel
seat = strelaModel:()
seat seat:() seat.Occupant
occ = seat.Occupant
plr = Players:(occ.Parent)
plr == LOCAL
strelaModel,
,
(strelaModel)
gun = strelaModel:()
remotes = gun gun:()
states = gun gun:()
bashnya = strelaModel:()
pusk = bashnya bashnya:()
osnova = pusk pusk:()
camAtt = osnova osnova:()
camAtt pusk
camAtt = pusk:(, )
remotes states camAtt
{
remotes = remotes,
states = states,
camAtt = camAtt,
aim = remotes:(),
fire = remotes:(),
stop = remotes:(),
ammo = states:(),
cd = states:(),
reloading = states:(),
}
(drone)
id = drone:()
id ~=
(id)
(drone)
()
alive = {}
_, drone (())
alive[(drone)] =
key (strela.firedIds)
alive[key]
strela.firedIds[key] =
(drone)
drone
strela.firedIds[(drone)] = .()
(drone)
drone ~= strela.firedIds[(drone)] ~=
(fromPos)
()
best, bestDist
_, drone (())
(drone)
anchor = (drone)
anchor
dist = (anchor.Position - fromPos).Magnitude
dist <= STRELA_MAX_RANGE ( bestDist dist < bestDist)
best = drone
bestDist = dist
best
(camAtt, targetPos)
offset = camAtt.WorldCFrame:(targetPos)
yaw = .(-offset.X, -offset.Z)
horiz = .(offset.X * offset.X + offset.Z * offset.Z)
pitch = .(offset.Y, .(horiz, ))
pitch = .(pitch, STRELA_MIN_PITCH, STRELA_MAX_PITCH)
cf = camAtt.WorldCFrame * .(, yaw, ) * .(pitch, , )
yaw, pitch, cf.Position, cf.LookVector
()
strela.on =
strela.status =
strela.currentTarget =
strela.lockSince =
strela.firing =
strela.firedIds = {}
strela.smoothYaw =
strela.smoothPitch =
strela.lastSentYaw =
strela.lastSentPitch =
strela.gen +=
.UAI_StrelaGen = strela.gen
strela.conn
strela.conn:()
strela.conn =
(ctx, target)
ctx ctx.fire target
beforeAmmo = ctx.ammo ctx.ammo.Value
beforeCd = ctx.cd ctx.cd.Value
attempts = {
() ctx.fire:(target) ,
() ctx.fire:(, target) ,
() ctx.fire:(, target) ,
() ctx.fire:() ,
}
_, send (attempts)
(send)
.()
ammoNow = ctx.ammo ctx.ammo.Value beforeAmmo
cdNow = ctx.cd ctx.cd.Value beforeCd
ammoNow < beforeAmmo cdNow > beforeCd
()
()
auto.on
()
tor.on
()
strela.on =
strela.status =
strela.gen +=
myGen = strela.gen
.UAI_StrelaGen = myGen
strela.conn = RunService.Heartbeat:(()
strela.on myGen ~= .UAI_StrelaGen
strelaModel = (, ())
strelaModel
strela.status =
strela.currentTarget =
strela.lockSince =
ctx = (strelaModel)
ctx ctx.aim ctx.fire
strela.status =
now = .()
ammo = ctx.ammo ctx.ammo.Value
cd = ctx.cd ctx.cd.Value
reloading = ctx.reloading ctx.reloading.Value
ammo <= reloading
strela.currentTarget =
strela.lockSince =
strela.status = reloading
origin = ctx.camAtt.WorldPosition
target = (origin)
target ~= strela.currentTarget
strela.currentTarget = target
strela.lockSince = target now
strela.smoothYaw =
strela.smoothPitch =
strela.lastSentYaw =
strela.lastSentPitch =
target
strela.status =
anchor = (target)
anchor
strela.currentTarget =
strela.lockSince =
dist = (anchor.Position - origin).Magnitude
typeName = (target)
who = (target:() == )
strela.status = .(, who, typeName, dist, ammo)
( strela.firing) now - strela.lastAim >= STRELA_AIM_INTERVAL
strela.lastAim = now
yaw, pitch = (ctx.camAtt, anchor.Position)
strela.smoothYaw ==
strela.smoothYaw = yaw
strela.smoothPitch = pitch
a = STRELA_AIM_SMOOTH
strela.smoothYaw += (yaw - strela.smoothYaw) * a
strela.smoothPitch += (pitch - strela.smoothPitch) * a
sendYaw = .(strela.smoothYaw * + ) /
sendPitch = .(strela.smoothPitch * + ) /
dy = strela.lastSentYaw .(sendYaw - strela.lastSentYaw) .huge
dp = strela.lastSentPitch .(sendPitch - strela.lastSentPitch) .huge
dy >= STRELA_AIM_DEADZONE dp >= STRELA_AIM_DEADZONE
cf = ctx.camAtt.WorldCFrame
* .(, sendYaw, )
* .(sendPitch, , )
(()
ctx.aim:(sendYaw, sendPitch, cf.Position, cf.LookVector)
)
strela.lastSentYaw = sendYaw
strela.lastSentPitch = sendPitch
lockedFor = strela.lockSince (now - strela.lockSince)
lockedFor < STRELA_AIM_SETTLE
strela.status = .(, dist)
cd <= strela.firing now - strela.lastFire >= STRELA_FIRE_INTERVAL
strela.firing =
strela.lastFire = now
shotTarget = target
(shotTarget)
strela.currentTarget =
strela.lockSince =
.(()
ok = (ctx, shotTarget)
ok
strela.status =
strela.firedIds[(shotTarget)] =
strela.lastFire = now - (STRELA_FIRE_INTERVAL - STRELA_FIRE_RETRY)
strela.status =
.()
strela.firing =
)
)
.UAI_StopAutoStrela = stopStrela
gui = .()
gui.Name =
gui.ResetOnSpawn =
gui.ZIndexBehavior = .ZIndexBehavior.Sibling
gui.Parent = PlayerGui
frame = .()
frame.Name =
frame.Size = .(, )
frame.Position = .(, , , )
frame.BackgroundColor3 = .(, , )
frame.BackgroundTransparency =
frame.BorderSizePixel =
frame.Active =
frame.Parent = gui
corner = .()
corner.CornerRadius = .(, )
corner.Parent = frame
stroke = .()
stroke.Color = .(, , )
stroke.Thickness =
stroke.Parent = frame
title = .()
title.Size = .(, -, , )
title.Position = .(, )
title.BackgroundTransparency =
title.Font = .Font.GothamBold
title.TextSize =
title.TextXAlignment = .TextXAlignment.Left
title.TextColor3 = .(, , )
title.Text =
title.Parent = frame
hideBtn = .()
hideBtn.Size = .(, )
hideBtn.Position = .(, -, , )
hideBtn.BackgroundColor3 = .(, , )
hideBtn.Text =
hideBtn.TextColor3 = .(, , )
hideBtn.Font = .Font.GothamBold
hideBtn.TextSize =
hideBtn.Parent = frame
.(, hideBtn).CornerRadius = .(, )
body = .()
body.Name =
body.BackgroundTransparency =
body.Size = .(, -, , -)
body.Position = .(, )
body.Parent = frame
layout = .()
layout.Padding = .(, )
layout.Parent = body
(name, text)
btn = .()
btn.Name = name
btn.Size = .(, , , )
btn.BackgroundColor3 = .(, , )
btn.TextColor3 = .(, , )
btn.Font = .Font.GothamMedium
btn.TextSize =
btn.Text = text ..
btn.AutoButtonColor =
btn.Parent = body
.(, btn).CornerRadius = .(, )
btn
espBtn = (, )
peopleBtn = (, )
autoBtn = (, )
torBtn = (, )
strelaBtn = (, )
status = .()
status.Name =
status.Size = .(, , , )
status.BackgroundColor3 = .(, , )
status.TextColor3 = .(, , )
status.Font = .Font.Gotham
status.TextSize =
status.TextWrapped =
status.TextXAlignment = .TextXAlignment.Left
status.TextYAlignment = .TextYAlignment.Top
status.Text =
status.Parent = body
.(, status).CornerRadius = .(, )
pad = .()
pad.PaddingLeft = .(, )
pad.PaddingTop = .(, )
pad.Parent = status
(btn, on, label)
btn.Text = label .. ": " .. (on and "ON" or "OFF")
btn.BackgroundColor3 = on and Color3.fromRGB(40, 110, 70) or Color3.fromRGB(45, 52, 68)
end
espBtn.MouseButton1Click:Connect(function()
if esp.on then
stopEsp()
setToggleVisual(espBtn, false, "Drone ESP")
else
startEsp()
setToggleVisual(espBtn, true, "Drone ESP")
end
end)
peopleBtn.MouseButton1Click:Connect(function()
if people.on then
stopPeople()
setToggleVisual(peopleBtn, false, "People ESP")
else
startPeople()
setToggleVisual(peopleBtn, true, "People ESP")
end
end)
autoBtn.MouseButton1Click:Connect(function()
if auto.on then
stopAuto()
setToggleVisual(autoBtn, false, "Авто Панцирь")
status.Text = "Статус: авто выкл"
else
if tor.on then
stopTor()
setToggleVisual(torBtn, false, "Авто TOR-M1")
end
if strela.on then
stopStrela()
setToggleVisual(strelaBtn, false, "Авто Стрела-10")
end
auto.setButton = function(on)
setToggleVisual(autoBtn, on, "Авто Панцирь")
end
startAuto()
setToggleVisual(autoBtn, true, "Авто Панцирь")
end
end)
torBtn.MouseButton1Click:Connect(function()
if tor.on then
stopTor()
setToggleVisual(torBtn, false, "Авто TOR-M1")
status.Text = "Статус: TOR выкл"
else
if auto.on then
stopAuto()
setToggleVisual(autoBtn, false, "Авто Панцирь")
end
if strela.on then
stopStrela()
setToggleVisual(strelaBtn, false, "Авто Стрела-10")
end
startTor()
setToggleVisual(torBtn, true, "Авто TOR-M1")
end
end)
strelaBtn.MouseButton1Click:Connect(function()
if strela.on then
stopStrela()
setToggleVisual(strelaBtn, false, "Авто Стрела-10")
status.Text = "Статус: Стрела выкл"
else
if auto.on then
stopAuto()
setToggleVisual(autoBtn, false, "Авто Панцирь")
end
if tor.on then
stopTor()
setToggleVisual(torBtn, false, "Авто TOR-M1")
end
startStrela()
setToggleVisual(strelaBtn, true, "Авто Стрела-10")
end
end)
local collapsed = false
hideBtn.MouseButton1Click:Connect(function()
collapsed = not collapsed
body.Visible = not collapsed
frame.Size = collapsed and UDim2.fromOffset(230, 36) or UDim2.fromOffset(230, 290)
hideBtn.Text = collapsed and "+" or "–"
end)
-- drag
local dragging = false
local dragStart, startPos
title.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = frame.Position
end
end)
title.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if not dragging then
return
end
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
local delta = input.Position - dragStart
frame.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)
local statusConn = RunService.Heartbeat:Connect(function()
if strela.on then
status.Text = "Авто: " .. tostring(strela.status)
elseif tor.on then
status.Text = "Авто: " .. tostring(tor.status)
elseif auto.on then
status.Text = "Авто: " .. tostring(auto.status)
elseif esp.on then
local n = 0
for _ in pairs(esp.tracked) do
n += 1
end
status.Text = string.format("ESP: %d дронов", n)
elseif people.on then
local n = 0
for _ in pairs(people.tracked) do
n += 1
end
status.Text = string.format("People ESP: %d", n)
else
status.Text = "Статус: меню готово\nRightShift — показать/скрыть"
end
end)
local toggleMenuConn = UserInputService.InputBegan:Connect(function(input, gp)
if gp then
return
end
if input.KeyCode == Enum.KeyCode.RightShift then
gui.Enabled = not gui.Enabled
end
end)
_G.UAI_StopMenu = function()
stopEsp()
if type(stopPeople) == "function" then
pcall(stopPeople)
end
stopAuto()
stopTor()
stopStrela()
if statusConn then
statusConn:Disconnect()
end
if toggleMenuConn then
toggleMenuConn:Disconnect()
end
if gui then
gui:Destroy()
end
print("[UAI] Menu stopped")
end
-- restore ESP if previous script left highlights; start clean with ESP on for convenience? leave off
setToggleVisual(espBtn, false, "Drone ESP")
setToggleVisual(peopleBtn, false, "People ESP")
setToggleVisual(autoBtn, false, "Авто Панцирь")
setToggleVisual(torBtn, false, "Авто TOR-M1")
setToggleVisual(strelaBtn, false, "Авто Стрела-10")
print("[UAI] Гумаров секс ready — RightShift toggle. Buttons: Drone ESP, People ESP, Авто Панцирь, Авто TOR-M1, Авто Стрела-10")
return "Гумаров секс loaded"В стадии разроботки!!!
PANTSIR