MayWeEnjoy

1

Feb 15th, 2025 (edited)
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 131.02 KB | None | 0 0
  1. local dur = tick()
  2.  
  3. local prefix = "."
  4. local commands, aliases = { }, { }
  5.  
  6. local ver = "2.7 Version"
  7.  
  8. local replicatedStorage = game:GetService("ReplicatedStorage")
  9. local textChat = game:GetService("TextChatService")
  10. local players = game:GetService("Players")
  11. local teleport = game:GetService("TeleportService")
  12. local pathfinding = game:GetService("PathfindingService")
  13. local tween = game:GetService("TweenService")
  14.  
  15. local chatType = textChat.ChatVersion
  16.  
  17. local accounts = {7977674123, 7611128807, 8021403344}
  18. local disallowed = false
  19. local host = 3405556236
  20. local model = players:GetPlayerByUserId(host)
  21. local localPlayer = players.LocalPlayer
  22. local controllerUser = "Primederrickrose4"
  23.  
  24. local whitelistedPlayers = {}
  25. local blacklistedPlayers = {}
  26.  
  27. local bodyguardTarget = nil
  28. local bodyguardingBots = {}
  29. local bodyguardRadius = 10
  30. local detectionRadius = 7
  31. local cooldowns = {}
  32. local tweenService = game:GetService("TweenService")
  33.  
  34. local standOffset = Vector3.new(-5, 0, 5)
  35. local attackOffset = Vector3.new(0, 0, -15)
  36.  
  37. local isTowerActive = false
  38. local towerConnections = {}
  39. local noclipBots = {}
  40. local wormConnections = {}
  41. local isWormActive = false
  42. local isTableActive = false
  43. local liftingTargets = {}
  44. local liftConnections = {}
  45. local liftHeight = 0.1
  46. local lifting = false
  47.  
  48. local loops = {
  49. invisible = false,
  50. stare = false,
  51. ragdoll = false,
  52. freeze = false,
  53. jojo = false,
  54. table = false,
  55. chair = false
  56. }
  57. local originalPositions = {}
  58. local staringTargets = {}
  59. local ragdollState = {}
  60. local frozenBots = {}
  61.  
  62. local npcChat = {
  63. idle = {
  64. "😃",
  65. "Hmhmhm 🎶🎵",
  66. "🤔",
  67. "Beautifull view.",
  68. "Just walking.",
  69. "LaLaLa 🎵",
  70. "What a nice day.",
  71. "hmmm",
  72. "uh",
  73. ":)"
  74. },
  75. freaky = {
  76. "show me your feets",
  77. "hehe😏",
  78. "i feel freaky",
  79. "i was with didi",
  80. "come to my basement",
  81. "aaaaahhh😫😩",
  82. "😛show me these",
  83. "sus 😏"
  84. },
  85. brainrot = {
  86. "skibidi dop dop yes yes 🚽",
  87. "skibidi riz",
  88. "gyat",
  89. "mewing rn",
  90. "im the rizler",
  91. "ohio fanum tax",
  92. "only in ohio",
  93. "mewing 100 streak 🤫🧏‍♂️",
  94. "im a sigma",
  95. "i feel sigma",
  96. "+100 aura 😏",
  97. "🤫🧏‍♂️",
  98. "still water 🥶🥶",
  99. "stop the cap🧢",
  100. "+1000000 auras"
  101. },
  102. damage = {
  103. "leave me alone",
  104. "stop it",
  105. "please stop it",
  106. "i wish i couldnt feel pain",
  107. "ouch",
  108. "ow",
  109. ":(",
  110. "ahhhhh"
  111. },
  112. freakydamage = {
  113. "ahhh😫🤭",
  114. "ow😩",
  115. "stop it dadi",
  116. "stop it didi!",
  117. "dont come to my basement",
  118. "aaaaahhh😫😩",
  119. "😏no thanks, stop",
  120. "😭😫😭"
  121. },
  122. brainrotdamage = {
  123. "skibidi dop dop no no please 🚽",
  124. "stoo ruining my riz",
  125. "stappp😠",
  126. "im mewing!!! stop",
  127. "my riz 😭",
  128. "my ohio😩",
  129. "stop hurting me, only in ohio",
  130. "you broke my mewing streak 😡",
  131. "stop it sigma",
  132. "im not sigma anymore",
  133. "🤫🧏‍♂️, 😭",
  134. "stop the cap🧢, i cant take it😢",
  135. "-1000000 auras"
  136. }
  137. }
  138.  
  139. local function find(string)
  140. if (string == "me" or not string or string == nil) then
  141. return model
  142. else
  143. if not string then
  144. return
  145. end
  146.  
  147. local saved = {}
  148.  
  149. for _, v in ipairs(players:GetPlayers()) do
  150. if (string.lower(v.Name):match(string.lower(string))) or (string.lower(v.DisplayName):match(string.lower(string))) then
  151. table.insert(saved, v)
  152. end
  153. end
  154.  
  155. if #saved > 0 then
  156. print(type(saved[1]))
  157. return saved[1]
  158. else
  159. return nil
  160. end
  161. end
  162. end
  163.  
  164. local function index()
  165. local found, indexes = { }, 1
  166.  
  167. for i,uID in ipairs(accounts) do
  168. if players:GetPlayerByUserId(uID) then
  169. found[indexes] = i
  170. indexes = indexes + 1
  171. end
  172. end
  173. return found
  174. end
  175.  
  176. local add = function(aliases, functions)
  177. for _,name in ipairs(aliases) do
  178. if (type(name)) == "string" then
  179. if not (commands[name]) and not (aliases[name]) then
  180. commands[name] = {
  181. functions = functions,
  182. aliases = aliases
  183. }
  184. else
  185. aliases[name] = {
  186. functions = functions,
  187. aliases = aliases
  188. }
  189. end
  190. else
  191. print("Improper alias type: " .. type(name))
  192. end
  193. end
  194. end
  195.  
  196. local version = function()
  197. if (chatType) == Enum.ChatVersion.TextChatService then
  198. return "New"
  199. else
  200. return "Legacy"
  201. end
  202. end
  203.  
  204. local message = function(res)
  205. if (version()) == "New" then
  206. local textChannels = textChat.TextChannels
  207. local RBX = textChannels.RBXGeneral
  208.  
  209. if (RBX) then
  210. RBX:SendAsync(tostring(res))
  211. end
  212. else
  213. local defaultChatSystemChatEvents = replicatedStorage:FindFirstChild("DefaultChatSystemChatEvents")
  214. local messageRequest = defaultChatSystemChatEvents:FindFirstChild("SayMessageRequest")
  215.  
  216. messageRequest:FireServer(tostring(res), "All")
  217. end
  218. end
  219.  
  220. -- Enhanced global helper function to find a player by name or display name
  221. local function findPlayerByName(targetName)
  222. targetName = string.lower(targetName) -- Convert targetName to lowercase for case-insensitive matching
  223.  
  224. -- Try exact match first
  225. for _, player in ipairs(players:GetPlayers()) do
  226. if string.lower(player.Name) == targetName or string.lower(player.DisplayName) == targetName then
  227. return player
  228. end
  229. end
  230.  
  231. -- If exact match not found, try partial match
  232. for _, player in ipairs(players:GetPlayers()) do
  233. if string.find(string.lower(player.Name), targetName, 1, true) or
  234. string.find(string.lower(player.DisplayName), targetName, 1, true) then
  235. return player
  236. end
  237. end
  238.  
  239. return nil -- Return nil if no match is found
  240. end
  241.  
  242. if (model) then
  243. add({ "performance", "example", "debug" }, function()
  244. message("Identified in " .. string.format("%.2f", tick() - dur) .. " seconds.")
  245. end)
  246.  
  247. add({ "rejoin", "rj", "rej", "reconnect" }, function()
  248. local gameId = game.PlaceId
  249. local jobId = game.JobId
  250.  
  251. teleport:TeleportToPlaceInstance(gameId, jobId, localPlayer)
  252. end)
  253.  
  254. add({ "bring", "b" }, function()
  255. local found = index()
  256. for i, index in ipairs(found) do
  257. local bot = players:GetPlayerByUserId(accounts[index])
  258. if (bot) then
  259. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.25, Enum.EasingStyle.Sine), {CFrame = model.Character.HumanoidRootPart.CFrame * CFrame.new((i - (#found / 2) - 0.5) * 4, 0, 3)}):Play()
  260. end
  261. end
  262. end)
  263.  
  264. -- Assuming these are already initialized somewhere in your code
  265. local whitelistedPlayers = {}
  266. local blacklistedPlayers = {}
  267.  
  268. -- Function to check if a user is the host
  269. local function isHost(player)
  270. return player.UserId == model.UserId -- Ensure the player using the command is the host
  271. end
  272.  
  273. -- Function to check if a user is whitelisted
  274. local function isWhitelisted(player)
  275. return whitelistedPlayers[player.UserId] ~= nil
  276. end
  277.  
  278. -- Function to check if a user is blacklisted
  279. local function isBlacklisted(player)
  280. return blacklistedPlayers[player.UserId] ~= nil
  281. end
  282.  
  283. -- Helper function to find a player by name
  284. local function findPlayer(targetName)
  285. for _, player in ipairs(players:GetPlayers()) do
  286. if player.Name:lower() == targetName:lower() then
  287. return player
  288. end
  289. end
  290. return nil
  291. end
  292.  
  293. -- Whitelist Command: Adds players to the whitelist
  294. add({ "whitelist", "allow" }, function(speaker, targetName)
  295. local targetPlayer = findPlayer(targetName)
  296. if targetPlayer then
  297. -- Add player to the whitelist and remove from the blacklist if present
  298. whitelistedPlayers[targetPlayer.UserId] = true
  299. blacklistedPlayers[targetPlayer.UserId] = nil
  300. message(targetPlayer.Name .. " has been whitelisted.")
  301. print(targetPlayer.Name .. " has been whitelisted.") -- Debugging output
  302. else
  303. message("Player not found.")
  304. end
  305. end)
  306.  
  307. -- Blacklist Command: Adds players to the blacklist
  308. add({ "blacklist", "block" }, function(speaker, targetName)
  309. local targetPlayer = findPlayer(targetName)
  310. if targetPlayer then
  311. -- Add player to the blacklist and remove from the whitelist if present
  312. blacklistedPlayers[targetPlayer.UserId] = true
  313. whitelistedPlayers[targetPlayer.UserId] = nil
  314. message(targetPlayer.Name .. " has been blacklisted.")
  315. print(targetPlayer.Name .. " has been blacklisted.") -- Debugging output
  316. else
  317. message("Player not found.")
  318. end
  319. end)
  320.  
  321. -- Helper function to process player interaction with bots
  322. function canInteract(player)
  323. -- Whitelisted players can always interact
  324. if isWhitelisted(player) then
  325. return true
  326. end
  327.  
  328. -- Blacklisted players cannot interact
  329. if isBlacklisted(player) then
  330. return false
  331. end
  332.  
  333. -- Default behavior for non-listed players (allowed by default if not blacklisted)
  334. return true
  335. end
  336.  
  337. local looping = false -- Flag to control the loop
  338.  
  339. -- Loopline command to continuously move bots to a specified position
  340. add({ "go" }, function(...)
  341. local args = {...}
  342. table.remove(args, 1) -- Remove "loopline" from the arguments
  343. local pos = table.concat(args, " "):lower() -- Get the position (e.g., "left", "right")
  344.  
  345. -- Ensure the loop isn't already running
  346. if looping then
  347. message("Loopline is already running. Use 'unloopline' to stop it first.")
  348. return
  349. end
  350.  
  351. looping = true
  352.  
  353. local model = players.LocalPlayer -- Reference point (central model or player)
  354.  
  355. coroutine.wrap(function()
  356. while looping do
  357. local found = index() -- Refresh list of active bots
  358. for i, botIndex in ipairs(found) do
  359. local bot = players:GetPlayerByUserId(accounts[botIndex])
  360. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  361. local offset = i * 4 -- Calculate each bot's offset
  362.  
  363. -- Determine the target CFrame based on the specified position
  364. local targetCFrame
  365. if pos == "left" or pos == "l" then
  366. targetCFrame = model.Character.HumanoidRootPart.CFrame * CFrame.new(-offset, 0, 0)
  367. elseif pos == "right" or pos == "r" then
  368. targetCFrame = model.Character.HumanoidRootPart.CFrame * CFrame.new(offset, 0, 0)
  369. elseif pos == "back" or pos == "b" then
  370. targetCFrame = model.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, offset)
  371. elseif pos == "front" or pos == "f" then
  372. targetCFrame = model.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, -offset)
  373. end
  374.  
  375. -- Apply the tween if a valid direction is specified
  376. if targetCFrame then
  377. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.25, Enum.EasingStyle.Sine), {CFrame = targetCFrame}):Play()
  378. end
  379. end
  380. end
  381. wait(1) -- Adjust the interval between each loop cycle if needed
  382. end
  383. end)()
  384. end)
  385.  
  386. -- Unloopline command to stop the loopline
  387. add({ "ungo" }, function()
  388. if looping then
  389. looping = false
  390. else
  391. message("Loopline is not running.")
  392. end
  393. end)
  394.  
  395. add({ "cmds", "cmd", "commands" }, function()
  396. message("Classic: chat - dance - bring - re - walk - sky - go - invis - noclip - freeze - npc, brainrot, freaky - hat - lay - nameless - exit")
  397.  
  398. task.wait(1)
  399. message("rain - rainloop - bat - lineloop - badword - stand - hollowpurple - kahmehameha - normalpunch - songs - boostfps - online - about - credits")
  400.  
  401. task.wait(2)
  402. message("copychat - helicopter - support - ")
  403.  
  404. task.wait(3)
  405. message("Targets: fw - look - carpet - worm - liftup - guard - tower - orbit - fling - joe - fling - flingall - whitelist")
  406.  
  407. task.wait(2)
  408. message("Forms: chair - table - bed - box, lift - triangle - circle - square - tool - ")
  409. end)
  410.  
  411. add({ "namelesscmds", "namelesscmd", "ncmds" }, function()
  412. message("Nameless admin, prefix ; , bang, spin, glue, fling, fling2, seizure, commitoof, sit, lay, joke, fcd, fti, fpp, (loops)")
  413. end)
  414.  
  415. add({ "about", "altcontroller", "altcontrol" }, function()
  416. message("Alt Control " .. ver .. ", made by Pyst, 200 bobux.")
  417. end)
  418.  
  419. add({ "songs" }, function()
  420. message("ksisong - symphony - odetari - rickroll - eminem")
  421. end)
  422.  
  423. add({ "thickofit", "ksi", "ksisong" }, function()
  424. message("From screen📱, To the ring🥊, To the pen📝, To the king💎")
  425.  
  426. task.wait(4)
  427. message("Where's my crown👑? That's my bling💍")
  428.  
  429. task.wait(3)
  430. message("Always drama😢 when I ring🔔")
  431.  
  432. task.wait(3)
  433. message("See, I believe that if I see it in my heart♥️")
  434.  
  435. task.wait(3)
  436. message("Smash through the ceiling💥 'cause I'm reaching for the stars⭐️")
  437.  
  438. task.wait(3)
  439. message("Woah-oh-oh🗣️")
  440.  
  441. task.wait(4)
  442. message("This is how the story goes📈")
  443. end)
  444.  
  445. add({ "symphony", "sing" }, function()
  446. message("I just🤔")
  447.  
  448. task.wait(2)
  449. message("wanna😢")
  450.  
  451. task.wait(1)
  452. message("be a part🎶")
  453.  
  454. task.wait(2)
  455. message("of your🎵")
  456.  
  457. task.wait(1)
  458. message("SYMPHONYYYYYYYYYYYYYYYYYYY !!🎶AHHH")
  459. end)
  460.  
  461. add({ "odetari", "keepup" }, function()
  462. message("Give me everything you Took From Me🎵")
  463.  
  464. task.wait(4)
  465. message("-give me everything you took from me-")
  466.  
  467. task.wait(4)
  468. message("keep up📈")
  469.  
  470. task.wait(1)
  471. message("I'm too fast🎶")
  472.  
  473. task.wait(1)
  474. message("I'm too fa-ast🎶")
  475.  
  476. task.wait(2)
  477. message("Push my foot up on that pedal,")
  478.  
  479. task.wait(2)
  480. message("then I'm gone🌚")
  481.  
  482. task.wait(3)
  483. message("G-g-g-gone, g-g-gone, gone")
  484. end)
  485.  
  486. add({ "rickroll", "rickastley" }, function()
  487. message("Never gonna give you up🔗")
  488.  
  489. task.wait(3)
  490. message("Never gonna let you down📉")
  491.  
  492. task.wait(3)
  493. message("Never gonna run around and desert you🏃")
  494.  
  495. task.wait(3)
  496. message("Never gonna make you cry😭")
  497.  
  498. task.wait(3)
  499. message("Never gonna say goodbye👋")
  500.  
  501. task.wait(3)
  502. message("Never gonna tell a lie and hurt you🤫🤕")
  503. end)
  504.  
  505. add({ "eminem", "mms" }, function()
  506. message("Let me show you the Super sonic speed😏")
  507.  
  508. task.wait(4)
  509. message("AHHH🤯")
  510.  
  511. task.wait(1)
  512. message("sAanenanenannnnamennenane🗣️")
  513.  
  514. task.wait(1)
  515. message("sAmemennenenannennennannenennnamennenane🗣️")
  516.  
  517. task.wait(1)
  518. message("saNenenennenemnemennenane🗣️")
  519.  
  520. task.wait(1)
  521. message("Sanemanemenammnamnenman🗣️")
  522.  
  523. task.wait(1)
  524. message("sanemNenmananmennamnenmmanmmenmmamnemmamemman🗣️")
  525.  
  526. task.wait(1)
  527. message("sAmemennenenannennennannenennnamennenane🗣️")
  528. end)
  529.  
  530. -- Variables to control the lineloop behavior
  531. local lineloopActive = false
  532.  
  533. -- Lineloop command: Continuously align bots in a line based on the specified direction
  534. add({ "lineloop", "lp" }, function(...)
  535. local args = {...}
  536. table.remove(args, 1) -- Remove the command name from arguments
  537.  
  538. -- Direction input (e.g., "front", "back", etc.)
  539. local pos = table.concat(args, " "):lower()
  540.  
  541. -- Validate direction
  542. if pos ~= "front" and pos ~= "f" and pos ~= "back" and pos ~= "b" and pos ~= "left" and pos ~= "l" and pos ~= "right" and pos ~= "r" then
  543. message("Invalid direction specified. Use: front, back, left, or right.")
  544. return
  545. end
  546.  
  547. lineloopActive = true
  548.  
  549. coroutine.wrap(function()
  550. while lineloopActive do
  551. local found = index() -- Get the list of bot accounts
  552. local hostPlayer = players:GetPlayerByUserId(hostId) -- Assuming hostId is defined somewhere in your code
  553. if hostPlayer and hostPlayer.Character and hostPlayer.Character:FindFirstChild("HumanoidRootPart") then
  554. local hostPosition = hostPlayer.Character.HumanoidRootPart.Position -- Use position instead of CFrame
  555.  
  556. for i, botIndex in ipairs(found) do
  557. local bot = players:GetPlayerByUserId(accounts[botIndex])
  558. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  559. local offset = (i - 1) * 4 -- Adjust spacing between bots
  560. local targetPosition
  561.  
  562. -- Determine the target position based on the specified direction
  563. if pos == "front" or pos == "f" then
  564. targetPosition = hostPosition + hostPlayer.Character.HumanoidRootPart.CFrame.LookVector * -offset
  565. elseif pos == "back" or pos == "b" then
  566. targetPosition = hostPosition + hostPlayer.Character.HumanoidRootPart.CFrame.LookVector * offset
  567. elseif pos == "left" or pos == "l" then
  568. targetPosition = hostPosition + hostPlayer.Character.HumanoidRootPart.CFrame.RightVector * -offset
  569. elseif pos == "right" or pos == "r" then
  570. targetPosition = hostPosition + hostPlayer.Character.HumanoidRootPart.CFrame.RightVector * offset
  571. end
  572.  
  573. -- Tween the bot to the calculated position
  574. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.5, Enum.EasingStyle.Sine), {Position = targetPosition}):Play()
  575. end
  576. end
  577. end
  578. task.wait(0.5) -- Wait before updating the positions again
  579. end
  580. end)()
  581. end)
  582.  
  583. -- Unlineloop command: Stops the lineloop behavior
  584. add({ "unlineloop", "unlp" }, function()
  585. lineloopActive = false
  586. end)
  587.  
  588. -- Default values for orbit speed and offset
  589. local orbitSpeed = 5 -- Default orbit speed
  590. local orbitOffset = 10 -- Default orbit offset (distance from the target)
  591. local orbitActive = false -- Flag to track if the orbit is active
  592.  
  593. -- Command to set the target and start the orbit
  594. add({ "orbit" }, function(...)
  595. local args = {...}
  596. table.remove(args, 1) -- Remove the command name from arguments
  597.  
  598. local target = find(args[1]) -- Locate target using the `find` function
  599. local found = index() -- Locate active bots using the `index` function
  600.  
  601. if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then
  602. orbitActive = true -- Activate orbit loop
  603.  
  604. -- Orbit coroutine
  605. coroutine.wrap(function()
  606. while orbitActive do
  607. local time = tick() -- Track time for calculating angle
  608. local targetPosition = target.Character.HumanoidRootPart.Position -- Update target's position each loop
  609.  
  610. for i, botIndex in ipairs(found) do
  611. local bot = players:GetPlayerByUserId(accounts[botIndex])
  612. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  613. local angle = (time * orbitSpeed + i * (360 / #found)) % 360
  614. local rad = math.rad(angle)
  615. local xOffset = math.cos(rad) * orbitOffset
  616. local zOffset = math.sin(rad) * orbitOffset
  617. local newCFrame = CFrame.new(targetPosition + Vector3.new(xOffset, 0, zOffset))
  618.  
  619. -- Move bot to the calculated orbit position
  620. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.25), { CFrame = newCFrame }):Play()
  621. end
  622. end
  623. task.wait(0.1)
  624. end
  625. end)()
  626. else
  627. message("Target not found for orbit.")
  628. end
  629. end)
  630.  
  631. -- Command to set the orbit speed
  632. add({ "orbitspeed" }, function(...)
  633. local args = {...}
  634. table.remove(args, 1) -- Remove the command name from arguments
  635. local speed = args[1] -- Get the speed argument
  636.  
  637. local newSpeed = tonumber(speed)
  638. if newSpeed and newSpeed > 0 then
  639. orbitSpeed = newSpeed
  640. else
  641. message("Invalid speed value. Please provide a positive number.")
  642. end
  643. end)
  644.  
  645. -- Command to set the orbit offset (distance from the target)
  646. add({ "offset" }, function(...)
  647. local args = {...}
  648. table.remove(args, 1) -- Remove the command name from arguments
  649. local offset = args[1] -- Get the offset argument
  650.  
  651. local newOffset = tonumber(offset)
  652. if newOffset and newOffset > 0 then
  653. orbitOffset = newOffset
  654. else
  655. message("Invalid offset value. Please provide a positive number.")
  656. end
  657. end)
  658.  
  659. -- Command to stop the orbit
  660. add({ "unorbit" }, function()
  661. orbitActive = false
  662. end)
  663.  
  664. add({ "walk", "w" }, function()
  665. loops.walk = true
  666.  
  667. coroutine.wrap(function()
  668. while loops.walk do
  669. local found = index()
  670. for _, index in ipairs(found) do
  671. local bot = players:GetPlayerByUserId(accounts[index])
  672. if bot then
  673. local randomDirection = Vector3.new(math.random(-10, 10), 0, math.random(-10, 10))
  674. bot.Character.Humanoid:MoveTo(model.Character.HumanoidRootPart.Position + randomDirection)
  675. end
  676. end
  677. task.wait(1)
  678. end
  679. end)()
  680. end)
  681.  
  682. add({ "unwalk", "unw" }, function()
  683. loops.walk = false
  684. end)
  685.  
  686. -- Follow command (line formation behind target)
  687. add({ "follow", "fw" }, function(...)
  688. local args = {...}
  689. table.remove(args, 1) -- Remove the command name from arguments
  690.  
  691. local target = find(args[1]) -- Find the target based on the provided name
  692. if target then
  693. loops.follow = true
  694.  
  695. coroutine.wrap(function()
  696. while loops.follow do
  697. local found = index() -- Get the list of bot accounts
  698. for i, index in ipairs(found) do
  699. local bot = players:GetPlayerByUserId(accounts[index])
  700. if bot and bot.Character and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then
  701. -- Calculate the position behind the target
  702. local offset = (i - (#found / 2) - 0.5) * 4 -- Adjust spacing between bots
  703. local targetPosition = target.Character.HumanoidRootPart.Position + Vector3.new(0, 0, -offset) -- Move back along the Z-axis
  704.  
  705. -- Move the bot to the calculated position
  706. bot.Character.Humanoid:MoveTo(targetPosition)
  707. end
  708. end
  709. task.wait(1) -- Wait before the next position update
  710. end
  711. end)()
  712. else
  713. message("Target not found.")
  714. end
  715. end)
  716.  
  717. -- Unfollow command
  718. add({ "unfollow", "unfw" }, function()
  719. loops.follow = false -- Stop following
  720. end)
  721.  
  722. -- Sky command
  723. add({ "sky", "skydive" }, function()
  724. local found = index()
  725. for i, index in ipairs(found) do
  726. local bot = players:GetPlayerByUserId(accounts[index])
  727. if bot then
  728. local skyPosition = model.Character.HumanoidRootPart.Position + Vector3.new(0, 100, 0)
  729. bot.Character:SetPrimaryPartCFrame(CFrame.new(skyPosition))
  730. end
  731. end
  732. end) -- HERE HAS been the added line limit YEASSSSSS
  733.  
  734. -- Function to make bots say random sentences using the message() function
  735. local function randomChat(bot, type)
  736. if type == "idle" then
  737. local sentence = npcChat.idle[math.random(1, #npcChat.idle)]
  738. message(sentence) -- Use message() to chat
  739. elseif type == "damage" then
  740. local sentence = npcChat.damage[math.random(1, #npcChat.damage)]
  741. message(sentence) -- Use message() to chat
  742. elseif type == "question" then
  743. local questionResponses = {
  744. "Idk.",
  745. "I don't know.",
  746. "Excuse me, I am unable to answer questions.",
  747. "Sorry, I cannot answer questions.",
  748. "I can't answer, sorry.",
  749. "Unable to answer, sorry.",
  750. "Apologies, I cannot answer.",
  751. "That's a good question!",
  752. "Who knows?",
  753. "Maybe try asking someone else.",
  754. "I'm not sure about that.",
  755. "I wish I could help.",
  756. "Let me think... Nope, I can't help.",
  757. "Ask me something else!",
  758. "Your guess is as good as mine.",
  759. "I'm just a bot, after all.",
  760. "My knowledge is limited!",
  761. "I can't say for certain.",
  762. "That's beyond my understanding."
  763. }
  764. local sentence = questionResponses[math.random(1, #questionResponses)]
  765. message(sentence) -- Use message() to chat
  766. elseif type == "freaky" then
  767. local sentence = npcChat.freaky[math.random(1, #npcChat.freaky)]
  768. message(sentence) -- Use message() to chat
  769. elseif type == "brainrot" then
  770. local sentence = npcChat.brainrot[math.random(1, #npcChat.brainrot)]
  771. message(sentence) -- Use message() to chat
  772. elseif type == "freakydamage" then
  773. local sentence = npcChat.freakydamage[math.random(1, #npcChat.freakydamage)]
  774. message(sentence) -- Use message() to chat
  775. elseif type == "brainrotdamage" then
  776. local sentence = npcChat.brainrotdamage[math.random(1, #npcChat.brainrotdamage)]
  777. message(sentence) -- Use message() to chat
  778. end
  779. end
  780.  
  781. -- Function for the bots to stare at players
  782. local function stareAtPlayer(bot, target)
  783. if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then
  784. -- Calculate the CFrame facing the target's position
  785. local botRootPart = bot.Character.HumanoidRootPart
  786. local targetPosition = target.Character.HumanoidRootPart.Position
  787. local lookAtCFrame = CFrame.new(botRootPart.Position, targetPosition)
  788.  
  789. -- Smoothly rotate the bot to face the target
  790. local tweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
  791. local tween = tweenService:Create(botRootPart, tweenInfo, {CFrame = lookAtCFrame})
  792. tween:Play()
  793. end
  794. end
  795.  
  796. -- NPC command: Bots walk randomly, jump, and chat
  797. add({ "npc", "npcs" }, function()
  798. loops.npc = true -- Flag to keep track of npc behavior
  799.  
  800. local found = index() -- Find active bots
  801. for _, index in ipairs(found) do
  802. local bot = players:GetPlayerByUserId(accounts[index])
  803.  
  804. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  805. local lastChatTime = 0 -- Track last chat time for cooldown
  806. local stareDistance = 20 -- Distance for bots to notice players
  807.  
  808. coroutine.wrap(function()
  809. while loops.npc do
  810. -- Random walking within a 100-stud radius, more frequent (every 3-10 seconds)
  811. local randomPos = Vector3.new(
  812. bot.Character.HumanoidRootPart.Position.X + math.random(-100, 100),
  813. bot.Character.HumanoidRootPart.Position.Y,
  814. bot.Character.HumanoidRootPart.Position.Z + math.random(-100, 100)
  815. )
  816. bot.Character.Humanoid:MoveTo(randomPos)
  817.  
  818. -- Random walk frequency (every 3-10 seconds)
  819. task.wait(math.random(3, 10))
  820.  
  821. -- Check for nearby players
  822. local playersNearby = {}
  823. for _, player in ipairs(players:GetPlayers()) do
  824. if player ~= bot and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
  825. local distance = (bot.Character.HumanoidRootPart.Position - player.Character.HumanoidRootPart.Position).Magnitude
  826. if distance <= stareDistance then
  827. table.insert(playersNearby, player)
  828. end
  829. end
  830. end
  831.  
  832. -- If there are nearby players, stop moving and stare
  833. if #playersNearby > 0 then
  834. bot.Character.Humanoid:MoveTo(bot.Character.HumanoidRootPart.Position) -- Stop moving
  835. for _, player in ipairs(playersNearby) do
  836. -- Stare at the first nearby player
  837. stareAtPlayer(bot, player)
  838. end
  839. else
  840. -- Random chat every 10-30 seconds, with cooldown
  841. if os.clock() - lastChatTime >= math.random(3, 5) then
  842. if math.random(1, 3) == 1 then -- Chat sometimes, not every loop
  843. local messageType = "idle"
  844. if math.random(1, 3) == 1 then -- Random chance for a question response
  845. messageType = "question"
  846. end
  847. randomChat(bot, messageType)
  848. lastChatTime = os.clock() -- Update last chat time
  849. end
  850. end
  851. end
  852.  
  853. -- Random jumping every 15-30 seconds
  854. if math.random(1, 2) == 1 then -- 50% chance to jump
  855. task.wait(math.random(15, 30))
  856. bot.Character.Humanoid.Jump = true -- Jump command
  857. end
  858. end
  859. end)() -- Closing the coroutine
  860.  
  861. -- Handle damage response (react if damaged)
  862. bot.Character.Humanoid.HealthChanged:Connect(function(health)
  863. if loops.npc and health < bot.Character.Humanoid.MaxHealth then
  864. -- Say damage response every 5 seconds while bot is being damaged
  865. coroutine.wrap(function()
  866. while loops.npc and health < bot.Character.Humanoid.MaxHealth do
  867. randomChat(bot, "damage")
  868. task.wait(5)
  869. end
  870. end)() -- Closing the coroutine
  871. end
  872. end) -- Closing the HealthChanged event
  873. end -- Closing the if condition
  874. end -- Closing the for loop
  875.  
  876. message("ok")
  877. end) -- Closing the add function
  878.  
  879. -- Unnpc command: Stop the npc behavior and reset bots
  880. add({ "unnpc", "unnpcs", "normal" }, function()
  881. loops.npc = false -- Stop the npc loop
  882. message("Back to normal state.")
  883. end)
  884.  
  885. -- NPC command: Bots walk randomly, jump, and chat
  886. add({ "freakynpc", "freaky", "freak" }, function()
  887. print("Starting freakynpc command.") -- Debug print
  888.  
  889. loops.freakynpc = true -- Flag to keep track of npc behavior
  890. local found = index() -- Find active bots
  891. print("Found bots: " .. #found) -- Print the number of bots found
  892.  
  893. for _, index in ipairs(found) do
  894. local bot = players:GetPlayerByUserId(accounts[index])
  895.  
  896. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  897. print("Starting behavior for bot: " .. tostring(bot.Name)) -- Print bot name
  898.  
  899. coroutine.wrap(function()
  900. while loops.freakynpc do
  901. -- Random walking within a 100-stud radius, more frequent (every 3-10 seconds)
  902. local randomPos = Vector3.new(
  903. bot.Character.HumanoidRootPart.Position.X + math.random(-100, 100),
  904. bot.Character.HumanoidRootPart.Position.Y,
  905. bot.Character.HumanoidRootPart.Position.Z + math.random(-100, 100)
  906. )
  907. bot.Character.Humanoid:MoveTo(randomPos)
  908. print("Moving bot to position: " .. tostring(randomPos)) -- Print new position
  909.  
  910. -- Random wait frequency (every 3-10 seconds)
  911. task.wait(math.random(3, 10))
  912.  
  913. -- Random chat every 10-30 seconds
  914. if math.random(1, 3) == 1 then -- Chat sometimes, not every loop
  915. randomChat(bot, "freaky")
  916. print("Bot " .. tostring(bot.Name) .. " says: freaky") -- Print chat
  917. end
  918.  
  919. -- Random jumping every 15-30 seconds
  920. if math.random(1, 2) == 1 then -- 50% chance to jump
  921. task.wait(math.random(15, 30))
  922. bot.Character.Humanoid.Jump = true -- Jump command
  923. print("Bot " .. tostring(bot.Name) .. " jumped.") -- Print jump action
  924. end
  925. end
  926. end)() -- Closing the coroutine
  927.  
  928. -- Handle damage response (react if damaged)
  929. bot.Character.Humanoid.HealthChanged:Connect(function(health)
  930. if loops.freakynpc and health < bot.Character.Humanoid.MaxHealth then
  931. print("Bot " .. tostring(bot.Name) .. " is damaged: " .. health) -- Print health status
  932. coroutine.wrap(function()
  933. while loops.freakynpc and health < bot.Character.Humanoid.MaxHealth do
  934. randomChat(bot, "freakydamage")
  935. print("Bot " .. tostring(bot.Name) .. " says: freakydamage") -- Print damage chat
  936. task.wait(5)
  937. end
  938. end)() -- Closing the coroutine
  939. end
  940. end) -- Closing the HealthChanged event
  941. end -- Closing the if condition
  942. end -- Closing the for loop
  943.  
  944. message("ok😏")
  945. print("Freakynpc command completed.") -- Debug print
  946. end) -- Closing the add function
  947.  
  948. -- Command to start brainrotnpc behavior
  949. add({ "brainrotnpc", "brainrot", "skibidi" }, function()
  950. print("Starting brainrotnpc command.") -- Debug print
  951.  
  952. loops.brainrotnpc = true -- Flag to keep track of npc behavior
  953. local found = index() -- Find active bots
  954. print("Found bots: " .. #found) -- Print the number of bots found
  955.  
  956. for _, index in ipairs(found) do
  957. local bot = players:GetPlayerByUserId(accounts[index])
  958.  
  959. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  960. print("Starting behavior for bot: " .. tostring(bot.Name)) -- Print bot name
  961.  
  962. coroutine.wrap(function()
  963. while loops.brainrotnpc do
  964. -- Random walking within a 100-stud radius, more frequent (every 3-10 seconds)
  965. local randomPos = Vector3.new(
  966. bot.Character.HumanoidRootPart.Position.X + math.random(-100, 100),
  967. bot.Character.HumanoidRootPart.Position.Y,
  968. bot.Character.HumanoidRootPart.Position.Z + math.random(-100, 100)
  969. )
  970. bot.Character.Humanoid:MoveTo(randomPos)
  971. print("Moving bot to position: " .. tostring(randomPos)) -- Print new position
  972.  
  973. -- Random wait frequency (every 3-10 seconds)
  974. task.wait(math.random(3, 10))
  975.  
  976. -- Random chat every 10-30 seconds
  977. if math.random(1, 3) == 1 then -- Chat sometimes, not every loop
  978. randomChat(bot, "brainrot")
  979. print("Bot " .. tostring(bot.Name) .. " says: brainrot") -- Print chat
  980. end
  981.  
  982. -- Random jumping every 15-30 seconds
  983. if math.random(1, 2) == 1 then -- 50% chance to jump
  984. task.wait(math.random(15, 30))
  985. bot.Character.Humanoid.Jump = true -- Jump command
  986. print("Bot " .. tostring(bot.Name) .. " jumped.") -- Print jump action
  987. end
  988. end
  989. end)() -- Closing the coroutine
  990.  
  991. -- Handle damage response (react if damaged)
  992. bot.Character.Humanoid.HealthChanged:Connect(function(health)
  993. if loops.brainrotnpc and health < bot.Character.Humanoid.MaxHealth then
  994. print("Bot " .. tostring(bot.Name) .. " is damaged: " .. health) -- Print health status
  995. coroutine.wrap(function()
  996. while loops.brainrotnpc and health < bot.Character.Humanoid.MaxHealth do
  997. randomChat(bot, "brainrotdamage")
  998. print("Bot " .. tostring(bot.Name) .. " says: brainrotdamage") -- Print damage chat
  999. task.wait(5)
  1000. end
  1001. end)() -- Closing the coroutine
  1002. end
  1003. end) -- Closing the HealthChanged event
  1004. end -- Closing the if condition
  1005. end -- Closing the for loop
  1006.  
  1007. message("skibidi")
  1008. print("Brainrotnpc command completed.") -- Debug print
  1009. end) -- Closing the add function
  1010.  
  1011. -- Unnpc command: Stop the npc behavior and reset bots
  1012. add({ "unfreakynpc", "unfreaky", "unfreak" }, function()
  1013. loops.freakynpc = false -- Stop the npc loop
  1014. message("Back to normal state.")
  1015. end)
  1016.  
  1017. -- Unnpc command: Stop the npc behavior and reset bots
  1018. add({ "unbrainrotnpc", "unbrainrot", "unskibidi" }, function()
  1019. loops.brainrotnpc = false -- Stop the npc loop
  1020. message("Back to normal state.")
  1021. end)
  1022.  
  1023. add({ "line" }, function(...)
  1024. local args = {...}
  1025. table.remove(args, 1)
  1026.  
  1027. local pos = table.concat(args, " ")
  1028.  
  1029. local found = index()
  1030. for i, index in ipairs(found) do
  1031. local bot = players:GetPlayerByUserId(accounts[index])
  1032. if (bot) then
  1033. if (pos) == "left" or (pos) == "l" then
  1034. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.25, Enum.EasingStyle.Sine), {CFrame = model.Character.HumanoidRootPart.CFrame * CFrame.new(-index * 4, 0, 0)}):Play()
  1035. elseif (pos) == "right" or (pos) == "r" then
  1036. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.25, Enum.EasingStyle.Sine), {CFrame = model.Character.HumanoidRootPart.CFrame * CFrame.new(index * 4, 0, 0)}):Play()
  1037. elseif (pos) == "back" or (pos) == "b" then
  1038. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.25, Enum.EasingStyle.Sine), {CFrame = model.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, index * 4)}):Play()
  1039. elseif (pos) == "front" or (pos) == "f" then
  1040. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.25, Enum.EasingStyle.Sine), {CFrame = model.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, -index * 4)}):Play()
  1041. end
  1042. end
  1043. end
  1044. end)
  1045.  
  1046. -- Helper function to tween bot positions
  1047. function tweenBotToPosition(bot, targetPosition, index, totalBots)
  1048. -- Calculate the circular position around the target using angle
  1049. local angle = (index / totalBots) * math.pi * 2
  1050. local offsetX = math.cos(angle) * bodyguardRadius
  1051. local offsetZ = math.sin(angle) * bodyguardRadius
  1052. local newPosition = targetPosition + Vector3.new(offsetX, 0, offsetZ)
  1053.  
  1054. -- Create the tween to smoothly move the bot to the calculated position
  1055. local tween = tweenService:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.25, Enum.EasingStyle.Sine), {CFrame = CFrame.new(newPosition)})
  1056. tween:Play()
  1057. end
  1058.  
  1059. add({ "bodyguard", "guard" }, function(_, targetName)
  1060. local targetPlayer = find(targetName) -- Find the target player based on the name input
  1061. if not targetPlayer then
  1062. message("Target player not found.")
  1063. return
  1064. end
  1065.  
  1066. bodyguardTarget = targetPlayer -- Set the target player for bodyguarding
  1067. message("Bodyguarding " .. targetPlayer.Name)
  1068.  
  1069. local found = index() -- Get the list of bot accounts
  1070. local numBots = #found -- Number of bots to use for bodyguarding
  1071. local angleStep = (2 * math.pi) / numBots -- Angle increment for bot placement around the target
  1072.  
  1073. -- Coroutine to constantly reposition the bots around the target
  1074. coroutine.wrap(function()
  1075. while bodyguardTarget == targetPlayer do
  1076. for i, index in ipairs(found) do
  1077. local bot = players:GetPlayerByUserId(accounts[index])
  1078. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  1079. local angle = angleStep * (i - 1) -- Calculate the angle for each bot
  1080. local xOffset = math.cos(angle) * bodyguardRadius
  1081. local zOffset = math.sin(angle) * bodyguardRadius
  1082. local newCFrame = targetPlayer.Character.HumanoidRootPart.CFrame * CFrame.new(xOffset, 0, zOffset)
  1083.  
  1084. -- Tween the bots to smoothly follow the target in a circle
  1085. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.5, Enum.EasingStyle.Sine), { CFrame = newCFrame }):Play()
  1086. end
  1087. end
  1088. task.wait(0.5) -- Wait before repositioning the bots again to maintain the circle
  1089. end
  1090. end)()
  1091.  
  1092. -- Threat detection: Bots will react if a player comes too close
  1093. coroutine.wrap(function()
  1094. while bodyguardTarget == targetPlayer do
  1095. for i, index in ipairs(found) do
  1096. local bot = players:GetPlayerByUserId(accounts[index])
  1097. if bot and bot.Character and bot.Character:FindFirstChild("Humanoid") then
  1098. -- Detect nearby players who are not the target and are within the detection radius
  1099. for _, otherPlayer in pairs(players:GetPlayers()) do
  1100. if otherPlayer ~= targetPlayer and otherPlayer.Character and otherPlayer.Character:FindFirstChild("HumanoidRootPart") then
  1101. local distance = (otherPlayer.Character.HumanoidRootPart.Position - targetPlayer.Character.HumanoidRootPart.Position).Magnitude
  1102. if distance <= detectionRadius then
  1103. -- Move the bot to stand between the target and the approaching player
  1104. local direction = (otherPlayer.Character.HumanoidRootPart.Position - targetPlayer.Character.HumanoidRootPart.Position).unit
  1105. local guardPosition = targetPlayer.Character.HumanoidRootPart.Position + direction * 5 -- Adjust guard position
  1106.  
  1107. bot.Character.Humanoid:MoveTo(guardPosition)
  1108. end
  1109. end
  1110. end
  1111. end
  1112. end
  1113. task.wait(1) -- Wait before scanning for threats again
  1114. end
  1115. end)()
  1116. end)
  1117.  
  1118. -- Command to stop bodyguarding
  1119. add({ "unbodyguard", "unguard" }, function()
  1120. bodyguardTarget = nil
  1121. message("No longer bodyguarding.")
  1122. end)
  1123.  
  1124. -- Invisible Command
  1125. add({ "invisible", "invis" }, function()
  1126. loops.invisible = true
  1127. local found = index()
  1128. for _, index in ipairs(found) do
  1129. local bot = players:GetPlayerByUserId(accounts[index])
  1130. if bot then
  1131. originalPositions[bot] = bot.Character.HumanoidRootPart.Position -- Save original position
  1132. local farAwayPos = Vector3.new(0, 10000, 0) -- Far away position above the map
  1133. bot.Character.HumanoidRootPart.CFrame = CFrame.new(farAwayPos)
  1134. bot.Character.Humanoid.PlatformStand = true -- Prevent falling
  1135.  
  1136. end
  1137. end
  1138. end)
  1139.  
  1140. -- Visible Command
  1141. add({ "visible", "vis" }, function()
  1142. loops.invisible = false
  1143. local found = index()
  1144. for _, index in ipairs(found) do
  1145. local bot = players:GetPlayerByUserId(accounts[index])
  1146. if bot then
  1147. bot.Character.HumanoidRootPart.CFrame = CFrame.new(originalPositions[bot]) -- Return to original position
  1148. bot.Character.Humanoid.PlatformStand = false
  1149. end
  1150. end -- End for loop
  1151. end) -- Closing the add function
  1152.  
  1153. -- Require RunService for consistent loop management
  1154. local RunService = game:GetService("RunService")
  1155.  
  1156. -- Variable to track the connection
  1157. local stareConnection
  1158.  
  1159. -- Stare at Target Command
  1160. add({ "stare", "look" }, function(...)
  1161. local args = {...}
  1162. table.remove(args, 1) -- Remove the command name from arguments
  1163.  
  1164. local target = find(args[1]) -- Find the target based on the provided name
  1165. if target then
  1166. loops.stare = true
  1167.  
  1168. coroutine.wrap(function()
  1169. while loops.stare do
  1170. local found = index() -- Get the list of bot accounts
  1171. for _, index in ipairs(found) do
  1172. local bot = players:GetPlayerByUserId(accounts[index])
  1173. if bot and bot.Character and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then
  1174. -- Calculate the CFrame facing the target's position
  1175. local botRootPart = bot.Character.HumanoidRootPart
  1176. local targetPosition = target.Character.HumanoidRootPart.Position
  1177. local lookAtCFrame = CFrame.new(botRootPart.Position, targetPosition)
  1178.  
  1179. -- Smoothly rotate the bot to face the target
  1180. local tweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
  1181. local tween = tweenService:Create(botRootPart, tweenInfo, {CFrame = lookAtCFrame})
  1182. tween:Play()
  1183. end
  1184. end
  1185. task.wait(0.5) -- Wait before updating the stare direction
  1186. end
  1187. end)()
  1188. else
  1189. message("Target not found.")
  1190. end
  1191. end)
  1192.  
  1193. -- Unstare Command
  1194. add({ "unstare", "unlook" }, function()
  1195. loops.stare = false -- Stop staring
  1196. end)
  1197.  
  1198. -- Ragdoll Command
  1199. add({ "ragdoll", "lay" }, function()
  1200. loops.ragdoll = true
  1201. local found = index()
  1202. for _, index in ipairs(found) do
  1203. local bot = players:GetPlayerByUserId(accounts[index])
  1204. if bot then
  1205. ragdollState[bot] = true
  1206. bot.Character.Humanoid.PlatformStand = true -- Make them fall
  1207. end
  1208. end -- End for loop
  1209. end) -- Closing the add function
  1210.  
  1211. -- Unragdoll Command
  1212. add({ "unragdoll", "unlay" }, function()
  1213. loops.ragdoll = false
  1214. local found = index()
  1215. for _, index in ipairs(found) do
  1216. local bot = players:GetPlayerByUserId(accounts[index])
  1217. if bot then
  1218. ragdollState[bot] = false
  1219. bot.Character.Humanoid.PlatformStand = false -- Restore control
  1220. end
  1221. end -- End for loop
  1222. end) -- Closing the add function
  1223.  
  1224. -- Freeze Command
  1225. add({ "freeze", "fr" }, function()
  1226. loops.freeze = true
  1227. local found = index()
  1228. for _, index in ipairs(found) do
  1229. local bot = players:GetPlayerByUserId(accounts[index])
  1230. if bot then
  1231. frozenBots[bot] = bot.Character.HumanoidRootPart.Position -- Save position
  1232. bot.Character.HumanoidRootPart.Anchored = true -- Freeze in place
  1233. end
  1234. end -- End for loop
  1235. end) -- Closing the add function
  1236.  
  1237. -- Unfreeze Command
  1238. add({ "unfreeze", "thaw" }, function()
  1239. loops.freeze = false
  1240. local found = index()
  1241. for _, index in ipairs(found) do
  1242. local bot = players:GetPlayerByUserId(accounts[index])
  1243. if bot then
  1244. bot.Character.HumanoidRootPart.Anchored = false -- Unfreeze
  1245. end
  1246. end -- End for loop
  1247. end) -- Closing the add function
  1248.  
  1249. -- Respawn Command
  1250. add({ "respawn", "re" }, function()
  1251. local found = index()
  1252. for _, index in ipairs(found) do
  1253. local bot = players:GetPlayerByUserId(accounts[index])
  1254. if bot then
  1255. originalPositions[bot] = bot.Character.HumanoidRootPart.Position -- Save original position
  1256. bot.Character.Humanoid.Health = 0 -- Reset the bot (kill it)
  1257. task.wait(5) -- Wait for 5 seconds before teleporting back
  1258. bot.Character:SetPrimaryPartCFrame(CFrame.new(originalPositions[bot])) -- Return to original position
  1259. end
  1260. end -- End for loop
  1261. end) -- Closing the add function
  1262.  
  1263. -- JoJo stand follow function
  1264. add({ "jojo", "stand" }, function()
  1265. if loops.jojo then return end -- Prevent the loop from restarting if already running
  1266. loops.jojo = true
  1267.  
  1268. -- Store original bot positions
  1269. for _, bot in pairs(accounts) do
  1270. local botPlayer = players:GetPlayerByUserId(bot)
  1271. if botPlayer and botPlayer.Character and botPlayer.Character:FindFirstChild("HumanoidRootPart") then
  1272. originalPositions[bot] = botPlayer.Character.HumanoidRootPart.Position
  1273. end
  1274. end
  1275.  
  1276. -- Start JoJo follow loop
  1277. coroutine.wrap(function()
  1278. while loops.jojo do
  1279. local hostPosition = model.Character.HumanoidRootPart.Position
  1280. local standPosition = hostPosition + standOffset -- Behind and to the right of the host
  1281.  
  1282. -- Move each bot behind and slightly to the right of the host
  1283. for _, bot in pairs(accounts) do
  1284. local botPlayer = players:GetPlayerByUserId(bot)
  1285. if botPlayer and botPlayer.Character and botPlayer.Character:FindFirstChild("HumanoidRootPart") then
  1286. local botRootPart = botPlayer.Character.HumanoidRootPart
  1287.  
  1288. -- Tween the bot's position smoothly
  1289. local tweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
  1290. local targetPosition = CFrame.new(standPosition)
  1291. local tween = tweenService:Create(botRootPart, tweenInfo, {CFrame = targetPosition})
  1292. tween:Play()
  1293. end
  1294. end
  1295. task.wait(0.5) -- Bots adjust position every 0.5 seconds
  1296. end
  1297. end)()
  1298. end)
  1299.  
  1300. -- Unstand (stop following)
  1301. add({ "unjojo", "unstand" }, function()
  1302. if not loops.jojo then return end
  1303. loops.jojo = false
  1304.  
  1305. -- Return bots to their original positions
  1306. for _, bot in pairs(accounts) do
  1307. local botPlayer = players:GetPlayerByUserId(bot)
  1308. if botPlayer and botPlayer.Character and botPlayer.Character:FindFirstChild("HumanoidRootPart") then
  1309. local originalPosition = originalPositions[bot]
  1310. if originalPosition then
  1311. local botRootPart = botPlayer.Character.HumanoidRootPart
  1312. local tweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
  1313. local tween = tweenService:Create(botRootPart, tweenInfo, {Position = originalPosition})
  1314. tween:Play()
  1315. end
  1316. end
  1317. end
  1318. end)
  1319.  
  1320. -- Function to apply flinging state to a bot
  1321. local function applyFlingState(botPlayer)
  1322. if botPlayer and botPlayer.Character and botPlayer.Character:FindFirstChild("HumanoidRootPart") then
  1323. -- Create a BodyVelocity instance to simulate the fling
  1324. local bodyVelocity = Instance.new("BodyVelocity")
  1325. bodyVelocity.MaxForce = Vector3.new(1e6, 1e6, 1e6) -- Apply strong force in all directions
  1326. bodyVelocity.Velocity = Vector3.new(0, 500, 0) -- Set a strong upward velocity for flinging
  1327.  
  1328. -- Add the BodyVelocity to the bot's HumanoidRootPart
  1329. bodyVelocity.Parent = botPlayer.Character.HumanoidRootPart
  1330. return bodyVelocity -- Return the BodyVelocity to remove it later
  1331. end
  1332. end
  1333.  
  1334. -- Function to remove the flinging state from a bot
  1335. local function removeFlingState(bodyVelocity)
  1336. if bodyVelocity then
  1337. bodyVelocity:Destroy() -- Remove the BodyVelocity to stop flinging
  1338. end
  1339. end
  1340.  
  1341. -- Attack command (move bots further in front of the host and apply flinging state)
  1342. add({ "attack", "at" }, function()
  1343. if not loops.jojo then return end
  1344.  
  1345. local hostCharacter = model.Character
  1346. local hostPosition = hostCharacter.HumanoidRootPart.Position
  1347. local hostLookVector = hostCharacter.HumanoidRootPart.CFrame.LookVector -- Get the direction the host is facing
  1348.  
  1349. local attackDistance = 10 -- Customize this value to control how far in front the bots should go
  1350. local attackPosition = hostPosition + hostLookVector * attackDistance -- Calculate the attack position in front of the host
  1351.  
  1352. local bodyVelocities = {} -- Table to store the BodyVelocity instances for each bot
  1353.  
  1354. -- Move each bot to the attack position farther in front of the host
  1355. for _, bot in pairs(accounts) do
  1356. local botPlayer = players:GetPlayerByUserId(bot)
  1357. if botPlayer and botPlayer.Character and botPlayer.Character:FindFirstChild("HumanoidRootPart") then
  1358. local botRootPart = botPlayer.Character.HumanoidRootPart
  1359. local targetPosition = attackPosition + Vector3.new(math.random(-2, 2), 0, math.random(-2, 2)) -- Slight random offset for each bot
  1360. local tweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
  1361. local tween = tweenService:Create(botRootPart, tweenInfo, {CFrame = CFrame.new(targetPosition)})
  1362. tween:Play()
  1363.  
  1364. -- Apply flinging state to the bot
  1365. bodyVelocities[bot] = applyFlingState(botPlayer)
  1366. end
  1367. end
  1368.  
  1369. -- Stay in the attack position for 3 seconds while flinging
  1370. task.wait(3)
  1371.  
  1372. -- Remove the flinging state after 3 seconds
  1373. for _, bot in pairs(accounts) do
  1374. removeFlingState(bodyVelocities[bot])
  1375. end
  1376.  
  1377. -- After removing the flinging state, return bots to their follow position
  1378. local standOffset = Vector3.new(0, 0, -5) -- Adjust this to control follow distance behind the host
  1379. local standPosition = hostPosition + hostLookVector * standOffset.Z
  1380. for _, bot in pairs(accounts) do
  1381. local botPlayer = players:GetPlayerByUserId(bot)
  1382. if botPlayer and botPlayer.Character and botPlayer.Character:FindFirstChild("HumanoidRootPart") then
  1383. local botRootPart = botPlayer.Character.HumanoidRootPart
  1384. local tweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
  1385. local tween = tweenService:Create(botRootPart, tweenInfo, {CFrame = CFrame.new(standPosition)})
  1386. tween:Play()
  1387. end
  1388. end
  1389. end)
  1390.  
  1391. -- Leave Command
  1392. add({ "leave", "quit", "exit" }, function()
  1393. local found = index()
  1394. for _, index in ipairs(found) do
  1395. local bot = players:GetPlayerByUserId(accounts[index])
  1396. if bot then
  1397. bot:Kick("Force leave initiated.")
  1398. end
  1399. end
  1400. end)
  1401.  
  1402. -- HollowPurple/Gojo attack sequence
  1403. add({ "hollowpurple", "gojo" }, function()
  1404. local baseplate = Instance.new("Part")
  1405. baseplate.Size = Vector3.new(200, 1, 200) -- Ensure it's large enough for all bots
  1406. baseplate.Position = model.Character.HumanoidRootPart.Position + Vector3.new(0, 300, 0)
  1407. baseplate.Anchored = true
  1408. baseplate.Parent = workspace
  1409. baseplate.Transparency = 1 -- Invisible to the host but exists
  1410.  
  1411. local found = index() -- Get all bots
  1412. local firstBot = players:GetPlayerByUserId(accounts[found[1]])
  1413. local secondBot = players:GetPlayerByUserId(accounts[found[2]])
  1414. local thirdBot = players:GetPlayerByUserId(accounts[found[3]])
  1415.  
  1416. -- step 1: Teleport all bots to the baseplate
  1417. for _, index in ipairs(found) do
  1418. local bot = players:GetPlayerByUserId(accounts[index])
  1419. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  1420. bot.Character.HumanoidRootPart.CFrame = baseplate.CFrame * CFrame.new((index - (#found / 2)) * 10, 0, 0) -- Spread out on baseplate
  1421. end
  1422. end
  1423.  
  1424. task.wait(2)
  1425.  
  1426. -- step 2: First bot teleporting near the host
  1427. if firstBot and firstBot.Character and firstBot.Character:FindFirstChild("HumanoidRootPart") then
  1428. firstBot.Character.HumanoidRootPart.CFrame = model.Character.HumanoidRootPart.CFrame * CFrame.new(-5, 0, -5) -- Adjusted left and forward
  1429. end
  1430.  
  1431. task.wait(2)
  1432.  
  1433. -- step 3: Second bot teleporting near the host and slow approach
  1434. if secondBot and secondBot.Character and secondBot.Character:FindFirstChild("HumanoidRootPart") then
  1435. secondBot.Character.HumanoidRootPart.CFrame = model.Character.HumanoidRootPart.CFrame * CFrame.new(5, 0, -5) -- Adjusted right and forward
  1436. end
  1437.  
  1438. -- Slow approach of first and second bot towards each other
  1439. spawn(function()
  1440. local approaching = true
  1441. while approaching do
  1442. if firstBot and firstBot.Character and secondBot and secondBot.Character then
  1443. local firstBotPos = firstBot.Character.HumanoidRootPart.Position
  1444. local secondBotPos = secondBot.Character.HumanoidRootPart.Position
  1445. local distance = (firstBotPos - secondBotPos).Magnitude
  1446.  
  1447. -- Move first bot slightly closer to second bot
  1448. firstBot.Character.HumanoidRootPart.CFrame = firstBot.Character.HumanoidRootPart.CFrame:Lerp(
  1449. CFrame.new(secondBotPos), 0.01)
  1450.  
  1451. -- Move second bot slightly closer to first bot
  1452. secondBot.Character.HumanoidRootPart.CFrame = secondBot.Character.HumanoidRootPart.CFrame:Lerp(
  1453. CFrame.new(firstBotPos), 0.01)
  1454.  
  1455. -- Stop approaching if they are close enough
  1456. if distance < 1 then
  1457. approaching = false
  1458. end
  1459. end
  1460. task.wait(0.1) -- Slow approach
  1461. end
  1462. end)
  1463.  
  1464. task.wait(3)
  1465.  
  1466. -- step 4: Spin both the first and second bots during the approach
  1467. local spinLoopRunning = true
  1468. local function spinCharacter(bot)
  1469. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  1470. coroutine.wrap(function()
  1471. while spinLoopRunning do
  1472. bot.Character:SetPrimaryPartCFrame(bot.Character.PrimaryPart.CFrame * CFrame.Angles(0, math.rad(15), 0)) -- Spin
  1473. task.wait(0.1) -- Fast spinning
  1474. end
  1475. end)()
  1476. end
  1477. end
  1478.  
  1479. spinCharacter(firstBot)
  1480. spinCharacter(secondBot)
  1481.  
  1482. task.wait(3)
  1483.  
  1484. -- step 5: First and second bots return to the baseplate
  1485. if firstBot and firstBot.Character and firstBot.Character:FindFirstChild("HumanoidRootPart") then
  1486. firstBot.Character.HumanoidRootPart.CFrame = baseplate.CFrame * CFrame.new(-5, 0, -5)
  1487. end
  1488. if secondBot and secondBot.Character and secondBot.Character:FindFirstChild("HumanoidRootPart") then
  1489. secondBot.Character.HumanoidRootPart.CFrame = baseplate.CFrame * CFrame.new(5, 0, -5)
  1490. end
  1491.  
  1492. task.wait(1)
  1493.  
  1494. -- step 6: Third bot teleports to the interaction point (where the first two bots were)
  1495. if thirdBot and thirdBot.Character and thirdBot.Character:FindFirstChild("HumanoidRootPart") then
  1496. thirdBot.Character.HumanoidRootPart.CFrame = model.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, -5) -- Teleport in front
  1497. end
  1498.  
  1499. -- step 7: Spin the third bot during its movement forward
  1500. spinCharacter(thirdBot)
  1501.  
  1502. task.wait(3)
  1503.  
  1504. -- step 8: Third bot moves faster and faster in front (in the direction the host is looking)
  1505. local hostLookVector = model.Character.HumanoidRootPart.CFrame.LookVector -- Get the direction host is looking
  1506. local startPos = thirdBot.Character.HumanoidRootPart.Position
  1507. for i = 1, 8 do
  1508. if thirdBot and thirdBot.Character and thirdBot.Character:FindFirstChild("HumanoidRootPart") then
  1509. thirdBot.Character.HumanoidRootPart.CFrame = CFrame.new(startPos + hostLookVector * i * 10) -- Move forward based on look direction
  1510. task.wait(0.5) -- Speeding up
  1511. end
  1512. end
  1513.  
  1514. -- step 9: After 8 seconds, reset all bots and stop spinning
  1515. task.wait(8)
  1516. spinLoopRunning = false -- Stop the spin loop
  1517.  
  1518. -- Explicitly reset bot CFrames to stop spinning entirely
  1519. for _, index in ipairs(found) do
  1520. local bot = players:GetPlayerByUserId(accounts[index])
  1521. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  1522. -- Reset rotation by using CFrame without any rotation (LookVector keeps them stable)
  1523. local currentPos = bot.Character.HumanoidRootPart.Position
  1524. bot.Character.HumanoidRootPart.CFrame = CFrame.new(currentPos) -- Reset the orientation
  1525. end
  1526. end
  1527. end)
  1528.  
  1529. -- Kahmehameha attack sequence
  1530. add({ "kahmehameha", "kahmeha", "goku" }, function()
  1531. local found = index() -- Locate active bots using the `index` function
  1532.  
  1533. -- Ensure there are bots available for the sequence
  1534. if #found >= 1 then
  1535. local host = players.LocalPlayer -- Assuming this command is triggered by the host
  1536. local hostPosition = host.Character.HumanoidRootPart.CFrame
  1537. local attackInProgress = true
  1538.  
  1539. -- Step 1: Teleport bots in front of the host and start spinning
  1540. for i, botIndex in ipairs(found) do
  1541. local bot = players:GetPlayerByUserId(accounts[botIndex])
  1542. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  1543. local botRoot = bot.Character.HumanoidRootPart
  1544. botRoot.CFrame = hostPosition * CFrame.new(0, 0, -3 - i * 3) -- Position bots in a line in front of host
  1545.  
  1546. -- Start a high-speed spin
  1547. spawn(function()
  1548. while attackInProgress do
  1549. botRoot.CFrame = botRoot.CFrame * CFrame.Angles(0, math.rad(90), 0)
  1550. wait(0.05) -- Spin speed
  1551. end
  1552. end)
  1553. end
  1554. end
  1555.  
  1556. -- Step 2: Timed chat sequence
  1557. spawn(function()
  1558. wait(3)
  1559. for _, botIndex in ipairs(found) do
  1560. local bot = players:GetPlayerByUserId(accounts[botIndex])
  1561. if bot then message("kah-") end
  1562. end
  1563.  
  1564. wait(3)
  1565. for _, botIndex in ipairs(found) do
  1566. local bot = players:GetPlayerByUserId(accounts[botIndex])
  1567. if bot then message("meh-") end
  1568. end
  1569.  
  1570. wait(2)
  1571. for _, botIndex in ipairs(found) do
  1572. local bot = players:GetPlayerByUserId(accounts[botIndex])
  1573. if bot then message("ah-") end
  1574. end
  1575.  
  1576. wait(1)
  1577. for _, botIndex in ipairs(found) do
  1578. local bot = players:GetPlayerByUserId(accounts[botIndex])
  1579. if bot then message("meh-") end
  1580. end
  1581.  
  1582. -- Step 3: High-speed dash and scream
  1583. for _, botIndex in ipairs(found) do
  1584. local bot = players:GetPlayerByUserId(accounts[botIndex])
  1585. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  1586. local botRoot = bot.Character.HumanoidRootPart
  1587. spawn(function()
  1588. message("AHHHHHHH")
  1589. local dashDirection = host.Character.HumanoidRootPart.CFrame.LookVector -- Host's forward direction
  1590. for i = 1, 80 do
  1591. botRoot.CFrame = botRoot.CFrame + (dashDirection * 1.5) -- High-speed forward movement
  1592. wait(0.05) -- Adjust for speed
  1593. end
  1594. end)
  1595. end
  1596. end
  1597.  
  1598. -- Step 4: Reset after 8 seconds
  1599. wait(8)
  1600. attackInProgress = false -- Stop spinning
  1601.  
  1602. for _, botIndex in ipairs(found) do
  1603. local bot = players:GetPlayerByUserId(accounts[botIndex])
  1604. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  1605. -- Reset position and orientation
  1606. bot.Character.HumanoidRootPart.CFrame = hostPosition * CFrame.new(0, 0, -10) -- Move bots back to a neutral position
  1607. bot.Character:SetPrimaryPartCFrame(CFrame.new(bot.Character.PrimaryPart.Position))
  1608. end
  1609. end
  1610. end)
  1611. else
  1612. message("Not enough bots available to execute the 'Kahmehameha' command.")
  1613. end
  1614. end)
  1615.  
  1616. -- Punch configuration
  1617. local punchForce = 50 -- Distance bots will be punched back
  1618. local downTime = 4 -- Time bots will stay down
  1619.  
  1620. -- Command to execute the "normalpunch" or "saitama" command
  1621. add({ "normalpunch", "saitama" }, function()
  1622. local found = index() -- Locate active bots using the `index` function
  1623. local hostPosition = model.Character.HumanoidRootPart.Position -- Host's position
  1624. local hostCFrame = model.Character.HumanoidRootPart.CFrame -- Host's CFrame (facing direction)
  1625.  
  1626. -- Store original positions of bots for restoration later
  1627. local originalPositions = {}
  1628.  
  1629. -- Punch coroutine
  1630. for i, botIndex in ipairs(found) do
  1631. local bot = players:GetPlayerByUserId(accounts[botIndex])
  1632. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  1633. -- Store the bot's original position
  1634. local originalPosition = bot.Character.HumanoidRootPart.Position
  1635. table.insert(originalPositions, { bot = bot, position = originalPosition })
  1636.  
  1637. coroutine.wrap(function()
  1638. -- Calculate the position in front of the host based on the host's facing direction
  1639. local direction = hostCFrame.LookVector -- Get the direction the host is facing
  1640. local targetPosition = hostPosition + direction * 4 * (i - 1) -- Adjust position for each bot
  1641.  
  1642. -- Frame 1: Move the bot to the target position in front of the host
  1643. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.25), { CFrame = CFrame.new(targetPosition) }):Play()
  1644. task.wait(0.25)
  1645.  
  1646. -- Frame 2: Punch the bot backward with force
  1647. local punchBack = bot.Character.HumanoidRootPart.CFrame * CFrame.new(-direction * punchForce)
  1648. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.2), { CFrame = punchBack }):Play()
  1649. task.wait(0.2)
  1650.  
  1651. -- Frame 3: Tilt the bot mid-air
  1652. local tiltFrame = punchBack * CFrame.Angles(math.rad(30), 0, 0)
  1653. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.2), { CFrame = tiltFrame }):Play()
  1654. task.wait(0.2)
  1655.  
  1656. -- Frame 4: Land the bot on the ground
  1657. local landFrame = tiltFrame * CFrame.new(0, -3, 0) -- Lower bot to simulate falling
  1658. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.3), { CFrame = landFrame }):Play()
  1659. task.wait(0.3)
  1660.  
  1661. -- Make the bot lay on the ground for `downTime` seconds
  1662. task.wait(downTime)
  1663.  
  1664. -- Stand the bot back up to its original position
  1665. local standUp = bot.Character.HumanoidRootPart.CFrame * CFrame.new(0, 3, 0) -- Raise the bot back up
  1666. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.3), { CFrame = standUp }):Play()
  1667. end)()
  1668. end
  1669. end
  1670.  
  1671. -- Restore original positions after the actions
  1672. task.wait(downTime + 1) -- Wait until all bots have finished their actions
  1673. for _, data in ipairs(originalPositions) do
  1674. local bot = data.bot
  1675. local originalPosition = data.position
  1676. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  1677. -- Tween the bot back to its original position
  1678. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(0.5, Enum.EasingStyle.Sine), { CFrame = CFrame.new(originalPosition) }):Play()
  1679. end
  1680. end
  1681. end)
  1682.  
  1683. -- Table to store active tower connections
  1684. local towerConnections = {}
  1685.  
  1686. -- Tower Command with Target Parameter
  1687. add({ "tower", "top" }, function(_, targetName)
  1688. if isTowerActive then
  1689. message("Tower is already active.")
  1690. return
  1691. end
  1692.  
  1693. -- Locate the target player using `find` or use the host model if no target is specified
  1694. local targetPlayer = targetName and find(targetName) or model
  1695. local targetCharacter = targetPlayer and targetPlayer.Character
  1696.  
  1697. -- Validate the target character and its position
  1698. if not targetCharacter or not targetCharacter:FindFirstChild("HumanoidRootPart") then
  1699. message("Invalid target for the tower.")
  1700. return
  1701. end
  1702.  
  1703. local targetPosition = targetCharacter.HumanoidRootPart.Position
  1704. isTowerActive = true
  1705.  
  1706. -- Loop through each bot and position them in a stack above the target
  1707. local foundBots = index()
  1708. for i, botId in ipairs(foundBots) do
  1709. local bot = players:GetPlayerByUserId(accounts[botId])
  1710. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  1711. local botCharacter = bot.Character
  1712.  
  1713. -- Calculate and set the initial tower position for each bot
  1714. local offset = Vector3.new(0, 5 * i, 0) -- Stack each bot 5 studs above the previous
  1715. botCharacter.HumanoidRootPart.CFrame = targetCharacter.HumanoidRootPart.CFrame * CFrame.new(offset)
  1716.  
  1717. -- Create a BodyPosition instance to keep each bot in place above the target
  1718. local bodyPosition = Instance.new("BodyPosition")
  1719. bodyPosition.MaxForce = Vector3.new(1e6, 1e6, 1e6) -- Hold bot in place
  1720. bodyPosition.Position = botCharacter.HumanoidRootPart.Position
  1721. bodyPosition.Parent = botCharacter.HumanoidRootPart
  1722.  
  1723. -- Continuously update the bot’s position relative to the target if it moves
  1724. local followConnection = game:GetService("RunService").Heartbeat:Connect(function()
  1725. if isTowerActive and targetCharacter and botCharacter and botCharacter:FindFirstChild("HumanoidRootPart") then
  1726. bodyPosition.Position = targetCharacter.HumanoidRootPart.Position + offset
  1727. end
  1728. end)
  1729.  
  1730. -- Store connection and body position to reset later
  1731. table.insert(towerConnections, { connection = followConnection, bodyPosition = bodyPosition })
  1732. end
  1733. end
  1734.  
  1735. message("🏢")
  1736. end)
  1737.  
  1738. -- Untower Command: Dismantle the active tower
  1739. add({ "untower", "untop" }, function()
  1740. if not isTowerActive then
  1741. message("No active tower to dismantle.")
  1742. return
  1743. end
  1744.  
  1745. -- Disconnect all connections and remove BodyPosition instances
  1746. for _, botInfo in ipairs(towerConnections) do
  1747. if botInfo.connection then
  1748. botInfo.connection:Disconnect()
  1749. end
  1750. if botInfo.bodyPosition then
  1751. botInfo.bodyPosition:Destroy()
  1752. end
  1753. end
  1754.  
  1755. -- Reset tower state and clear connections
  1756. towerConnections = {}
  1757. isTowerActive = false
  1758. end)
  1759.  
  1760. -- Command to create the bat-like formation with bots attached to the host's right arm
  1761. add({ "bat", "metalbat", "stick" }, function()
  1762. if isBatActive then
  1763. message("Bat formation is already active.")
  1764. return
  1765. end
  1766.  
  1767. local found = index() -- Get the list of bot accounts
  1768. if #found == 0 then
  1769. message("No bots found to form a bat.")
  1770. return
  1771. end
  1772.  
  1773. local hostCharacter = model.Character
  1774. local rightArm = hostCharacter:FindFirstChild("Right Arm") or hostCharacter:FindFirstChild("RightHand")
  1775.  
  1776. if not rightArm then
  1777. message("Host does not have a right arm to attach bots to.")
  1778. return
  1779. end
  1780.  
  1781. isBatActive = true -- Mark the bat formation as active
  1782.  
  1783. -- Loop through all bots and arrange them attached to the host's right arm
  1784. for i, index in ipairs(found) do
  1785. local bot = players:GetPlayerByUserId(accounts[index])
  1786. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  1787. local botCharacter = bot.Character
  1788.  
  1789. -- Position the bot relative to the right arm (line them vertically above each other)
  1790. local offset = Vector3.new(0, 3 * i, 0) -- Adjust the vertical spacing (3 studs above each other)
  1791. botCharacter.HumanoidRootPart.CFrame = rightArm.CFrame * CFrame.new(offset)
  1792.  
  1793. -- Create a BodyPosition to lock the bot in place relative to the right arm
  1794. local bodyPosition = Instance.new("BodyPosition")
  1795. bodyPosition.MaxForce = Vector3.new(1e6, 1e6, 1e6) -- Strong enough force to hold the bot in place
  1796. bodyPosition.Position = botCharacter.HumanoidRootPart.Position
  1797. bodyPosition.Parent = botCharacter.HumanoidRootPart
  1798.  
  1799. -- Attach the bot to the right arm so it follows the arm's movements
  1800. local followConnection = game:GetService("RunService").Heartbeat:Connect(function()
  1801. if isBatActive and hostCharacter and botCharacter and botCharacter:FindFirstChild("HumanoidRootPart") and rightArm then
  1802. bodyPosition.Position = rightArm.Position + rightArm.CFrame:VectorToWorldSpace(Vector3.new(0, 3 * i, 0))
  1803. end
  1804. end)
  1805.  
  1806. -- Store the connection and body position to reset later
  1807. table.insert(batConnections, { connection = followConnection, bodyPosition = bodyPosition })
  1808. end
  1809. end
  1810.  
  1811. message("🔨")
  1812. end)
  1813.  
  1814. -- Command to cancel the bat formation
  1815. add({ "unbat", "unmetalbat", "unstick" }, function()
  1816. if not isBatActive then
  1817. message("No active bat formation to cancel.")
  1818. return
  1819. end
  1820.  
  1821. -- Reset all BodyPositions and disconnect follow connections
  1822. for _, entry in ipairs(batConnections) do
  1823. entry.connection:Disconnect()
  1824. if entry.bodyPosition then
  1825. entry.bodyPosition:Destroy()
  1826. end
  1827. end
  1828. batConnections = {} -- Clear the connection table
  1829. isBatActive = false -- Mark the bat formation as inactive
  1830.  
  1831. end)
  1832.  
  1833. -- "p", "sus", "what" Command
  1834. add({ "p", "carpet", "what" }, function()
  1835. loops.sus = true -- Activate the "sus" mode
  1836.  
  1837. local found = index() -- Get list of active bots
  1838.  
  1839. if #found < 3 then
  1840. message("Not enough bots available to form the 'sus' formation.")
  1841. return
  1842. end
  1843.  
  1844. -- Continuously update bots' positions to form the specific layout
  1845. coroutine.wrap(function()
  1846. while loops.sus do
  1847. -- Find the host's torso and legs
  1848. local torso = model.Character:FindFirstChild("Torso") or model.Character:FindFirstChild("UpperTorso")
  1849. local rightLeg = model.Character:FindFirstChild("Right Leg") or model.Character:FindFirstChild("RightUpperLeg")
  1850. local leftLeg = model.Character:FindFirstChild("Left Leg") or model.Character:FindFirstChild("LeftUpperLeg")
  1851.  
  1852. if torso and rightLeg and leftLeg then
  1853. -- Get torso and legs CFrame (position and orientation)
  1854. local torsoCFrame = torso.CFrame
  1855. local rightLegCFrame = rightLeg.CFrame
  1856. local leftLegCFrame = leftLeg.CFrame
  1857.  
  1858. -- Position the first bot between torso and right leg
  1859. local firstBot = players:GetPlayerByUserId(accounts[found[1]])
  1860. if firstBot and firstBot.Character and firstBot.Character:FindFirstChild("HumanoidRootPart") then
  1861. local botRootPart = firstBot.Character.HumanoidRootPart
  1862. local botCFrame = torsoCFrame:Lerp(rightLegCFrame, 0.5) * CFrame.new(0, -1, 0) -- Midpoint between torso and right leg
  1863. botRootPart.CFrame = botCFrame * CFrame.Angles(math.rad(90), 0, 0) -- Lay the bot flat (looking down)
  1864. end
  1865.  
  1866. -- Position the second bot between torso and left leg
  1867. local secondBot = players:GetPlayerByUserId(accounts[found[2]])
  1868. if secondBot and secondBot.Character and secondBot.Character:FindFirstChild("HumanoidRootPart") then
  1869. local botRootPart = secondBot.Character.HumanoidRootPart
  1870. local botCFrame = torsoCFrame:Lerp(leftLegCFrame, 0.5) * CFrame.new(0, -1, 0) -- Midpoint between torso and left leg
  1871. botRootPart.CFrame = botCFrame * CFrame.Angles(math.rad(90), 0, 0) -- Lay the bot flat (looking down)
  1872. end
  1873.  
  1874. -- Position the third bot horizontally between the heads of the first two bots
  1875. local thirdBot = players:GetPlayerByUserId(accounts[found[3]])
  1876. if thirdBot and thirdBot.Character and thirdBot.Character:FindFirstChild("HumanoidRootPart") then
  1877. local botRootPart = thirdBot.Character.HumanoidRootPart
  1878.  
  1879. -- Calculate the midpoint between the first and second bots' positions
  1880. local firstBotPos = firstBot.Character.HumanoidRootPart.Position
  1881. local secondBotPos = secondBot.Character.HumanoidRootPart.Position
  1882. local midPoint = (firstBotPos + secondBotPos) / 2
  1883.  
  1884. -- Position the third bot's legs between the heads of the first two bots
  1885. local botCFrame = CFrame.new(midPoint) * CFrame.new(0, -2, 0) -- Lower it slightly
  1886. botRootPart.CFrame = botCFrame * CFrame.Angles(math.rad(90), 0, 0) -- Lay flat, horizontally
  1887. end
  1888. end
  1889.  
  1890. task.wait(0.1) -- Continuously update every 0.1 seconds
  1891. end
  1892. end)()
  1893. end)
  1894.  
  1895. -- "unp", "unsus", "unwhat" Command to cancel the sus formation
  1896. add({ "unp", "uncarpet", "unwhat" }, function()
  1897. if not loops.sus then
  1898. message("No active 'sus' formation to cancel.")
  1899. return
  1900. end
  1901.  
  1902. loops.sus = false
  1903. end)
  1904.  
  1905. -- Helper function to enable noclip on a bot
  1906. local function enableNoclip(bot)
  1907. if bot and bot.Character then
  1908. noclipBots[bot.UserId] = true -- Mark this bot as being in noclip mode
  1909. -- Disable the collision for all parts except the floor
  1910. for _, part in pairs(bot.Character:GetDescendants()) do
  1911. if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then
  1912. part.CanCollide = false
  1913. end
  1914. end
  1915. end
  1916. end
  1917.  
  1918. -- Helper function to disable noclip on a bot
  1919. local function disableNoclip(bot)
  1920. if bot and bot.Character then
  1921. noclipBots[bot.UserId] = nil -- Remove the bot from noclip mode
  1922. -- Re-enable the collision for all parts
  1923. for _, part in pairs(bot.Character:GetDescendants()) do
  1924. if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then
  1925. part.CanCollide = true
  1926. end
  1927. end
  1928. end
  1929. end
  1930.  
  1931. -- "noclip" / "nc" Command: Enables noclip for all bots
  1932. add({ "noclip", "nc" }, function()
  1933. local found = index() -- Get the list of bot accounts
  1934.  
  1935. -- Apply noclip to each bot
  1936. for _, index in ipairs(found) do
  1937. local bot = players:GetPlayerByUserId(accounts[index])
  1938. if bot then
  1939. enableNoclip(bot) -- Enable noclip for this bot
  1940. end
  1941. end
  1942.  
  1943. message("Noclip on.")
  1944. end)
  1945.  
  1946. -- "clip" / "c" Command: Disables noclip for all bots
  1947. add({ "clip", "c" }, function()
  1948. local found = index() -- Get the list of bot accounts
  1949.  
  1950. -- Remove noclip from each bot
  1951. for _, index in ipairs(found) do
  1952. local bot = players:GetPlayerByUserId(accounts[index])
  1953. if bot then
  1954. disableNoclip(bot) -- Disable noclip for this bot
  1955. end
  1956. end
  1957.  
  1958. message("Noclip disabled.")
  1959. end)
  1960.  
  1961. -- Hook into the reset command to automatically disable noclip on reset
  1962. local function resetBots()
  1963. local found = index() -- Get the list of bot accounts
  1964.  
  1965. -- Ensure noclip is disabled for all bots upon reset
  1966. for _, index in ipairs(found) do
  1967. local bot = players:GetPlayerByUserId(accounts[index])
  1968. if bot then
  1969. disableNoclip(bot) -- Disable noclip if the bot was in noclip mode
  1970. bot:LoadCharacter() -- Reset the bot
  1971. end
  1972. end
  1973.  
  1974. message("Noclip off.")
  1975. end
  1976.  
  1977. -- Worm / Slither / Snake Command with a target parameter
  1978. local isWormActive = false
  1979. local wormConnections = {}
  1980.  
  1981. -- Worm/Slither/Snake Formation Command
  1982. add({ "worm", "slither", "snake" }, function(targetName)
  1983. if isWormActive then
  1984. return -- Exit if worm formation is already active
  1985. end
  1986.  
  1987. local found = index() -- Get the list of bot accounts
  1988. if #found < 2 then
  1989. return -- Exit if there are not enough bots available (at least 2 to form a chain)
  1990. end
  1991.  
  1992. isWormActive = true
  1993.  
  1994. -- Determine the initial target character using `find`
  1995. local initialTargetPlayer = find(targetName) -- Locate the target player using `find`
  1996. local initialTargetCharacter = initialTargetPlayer and initialTargetPlayer.Character
  1997.  
  1998. if not initialTargetCharacter or not initialTargetCharacter:FindFirstChild("HumanoidRootPart") then
  1999. isWormActive = false -- Reset if the target is invalid
  2000. return
  2001. end
  2002.  
  2003. -- Set up each bot to follow its assigned target in a chain formation
  2004. local targetCharacters = {}
  2005. targetCharacters[1] = initialTargetCharacter -- The first bot follows the initial target
  2006.  
  2007. -- Create a list of bots to follow in sequence
  2008. for i = 1, #found do
  2009. local bot = players:GetPlayerByUserId(accounts[found[i]])
  2010. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2011. if i > 1 then
  2012. -- Each bot (after the first) follows the bot ahead in the sequence
  2013. targetCharacters[i] = players:GetPlayerByUserId(accounts[found[i - 1]]).Character
  2014. else
  2015. -- The first bot follows the target player
  2016. targetCharacters[i] = initialTargetCharacter
  2017. end
  2018. end
  2019. end
  2020.  
  2021. -- Continuously make each bot follow its assigned target
  2022. for i, botIndex in ipairs(found) do
  2023. local bot = players:GetPlayerByUserId(accounts[botIndex])
  2024. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2025. local assignedTarget = targetCharacters[i]
  2026.  
  2027. -- Create a loop for each bot to follow its target continuously
  2028. local followConnection = game:GetService("RunService").Heartbeat:Connect(function()
  2029. if isWormActive and assignedTarget and assignedTarget:FindFirstChild("HumanoidRootPart") then
  2030. local botRootPart = bot.Character.HumanoidRootPart
  2031. local targetRootPart = assignedTarget.HumanoidRootPart
  2032.  
  2033. -- Move the bot towards the target's current position, staying slightly behind it
  2034. local targetPosition = targetRootPart.Position - targetRootPart.CFrame.LookVector * 3 -- Stay 3 studs behind the target
  2035. botRootPart.CFrame = CFrame.new(targetPosition) -- Set bot's position directly (or use tween if needed)
  2036. end
  2037. end)
  2038.  
  2039. -- Store the connection to disconnect later
  2040. table.insert(wormConnections, followConnection)
  2041. end
  2042. end
  2043. end)
  2044.  
  2045. -- Unworm / Unsnake / Unslither Command
  2046. add({ "unworm", "unslither", "unsnake" }, function()
  2047. if not isWormActive then
  2048. return -- Exit if there is no active worm formation
  2049. end
  2050.  
  2051. -- Stop the worm formation by disconnecting all the follow loops
  2052. for _, connection in ipairs(wormConnections) do
  2053. connection:Disconnect()
  2054. end
  2055.  
  2056. -- Clear the connections and deactivate the worm formation
  2057. wormConnections = {}
  2058. isWormActive = false
  2059. end)
  2060.  
  2061. local joeActive = false -- Flag to control if the bots should be surrounding
  2062.  
  2063. -- Helper function to get a random chat message
  2064. local function getRandomJoeMessage()
  2065. local messages = {
  2066. "can i have a joe?",
  2067. "can i have joe?",
  2068. "can i hav a joe?",
  2069. "can i heve a joe?"
  2070. }
  2071. return messages[math.random(#messages)]
  2072. end
  2073.  
  2074. -- Joe formation command
  2075. add({ "joe", "canihavejoe" }, function(targetName)
  2076. local found = index() -- Locate active bots using the `index` function
  2077. local target = find(targetName) -- Use the `find` function to locate the target
  2078.  
  2079. if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") and #found >= 1 then
  2080. local targetPosition = target.Character.HumanoidRootPart.Position
  2081. joeActive = true
  2082.  
  2083. -- Step 1: Position bots in a circular formation around the target
  2084. for i, botIndex in ipairs(found) do
  2085. local bot = players:GetPlayerByUserId(accounts[botIndex])
  2086. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2087. local botRoot = bot.Character.HumanoidRootPart
  2088. local angle = (2 * math.pi / #found) * i -- Calculate angle for each bot
  2089.  
  2090. -- Determine position in circle
  2091. local xOffset = math.cos(angle) * 6 -- Radius of 6 studs
  2092. local zOffset = math.sin(angle) * 6
  2093. local targetPositionCFrame = CFrame.new(targetPosition + Vector3.new(xOffset, 0, zOffset))
  2094.  
  2095. -- Move bot to the circle position
  2096. tween:Create(botRoot, TweenInfo.new(2, Enum.EasingStyle.Linear), {CFrame = targetPositionCFrame}):Play()
  2097.  
  2098. -- Make bot face the target
  2099. botRoot.CFrame = CFrame.new(botRoot.Position, targetPosition)
  2100. end
  2101. end
  2102.  
  2103. -- Step 2: Bots randomly chat messages every 5-15 seconds
  2104. spawn(function()
  2105. while joeActive do
  2106. wait(math.random(5, 15))
  2107. if not joeActive then break end -- Exit if unjoe/stopjoe is called
  2108.  
  2109. -- Pick a random bot to chat
  2110. local randomBotIndex = found[math.random(#found)]
  2111. local randomBot = players:GetPlayerByUserId(accounts[randomBotIndex])
  2112.  
  2113. if randomBot then
  2114. message(getRandomJoeMessage()) -- Only chat the random message, without bot's name
  2115. end
  2116. end
  2117. end)
  2118. else
  2119. message("Target not found or not specified.")
  2120. end
  2121. end)
  2122.  
  2123. -- Unjoe/Stopjoe command to cancel the joe formation
  2124. add({ "unjoe", "stopjoe" }, function()
  2125. joeActive = false -- Stop the active Joe formation
  2126. local found = index()
  2127.  
  2128. -- Reset each bot's position and orientation
  2129. for _, botIndex in ipairs(found) do
  2130. local bot = players:GetPlayerByUserId(accounts[botIndex])
  2131. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2132. -- Cancel any active tween to allow them to reset
  2133. tween:Create(bot.Character.HumanoidRootPart, TweenInfo.new(1, Enum.EasingStyle.Linear), {CFrame = bot.Character.HumanoidRootPart.CFrame}):Cancel()
  2134. end
  2135. end
  2136.  
  2137. message("i need a joe") -- Message when 'joe' is canceled
  2138. end)
  2139.  
  2140. -- Rain Command
  2141. add({ "rain", "raining", "partfall" }, function()
  2142. local hostPlayer = game.Players.LocalPlayer -- Get the player who invoked the command
  2143.  
  2144. if not hostPlayer or not hostPlayer.Character or not hostPlayer.Character:FindFirstChild("HumanoidRootPart") then
  2145. message("Host not found.")
  2146. return
  2147. end
  2148.  
  2149. local found = index() -- Get the list of bot accounts
  2150. if #found < 1 then
  2151. message("No bots available.")
  2152. return
  2153. end
  2154.  
  2155. -- Teleport bots above the host in a line formation
  2156. local hostPosition = hostPlayer.Character.HumanoidRootPart.Position -- Get host position
  2157. for i, index in ipairs(found) do
  2158. local bot = players:GetPlayerByUserId(accounts[index])
  2159. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2160. -- Calculate the position above the host in a line formation
  2161. local offset = (i - (#found / 2) - 0.5) * 4 -- Adjust spacing between bots
  2162. local skyPosition = hostPosition + Vector3.new(offset, 100, 0) -- 100 studs above the host
  2163.  
  2164. -- Teleport the bot to the calculated position
  2165. bot.Character:SetPrimaryPartCFrame(CFrame.new(skyPosition))
  2166.  
  2167. -- Reset the bot's character by setting Humanoid health to 0
  2168. local humanoid = bot.Character:FindFirstChild("Humanoid")
  2169. if humanoid then
  2170. humanoid.Health = 0
  2171. end
  2172. end
  2173. end
  2174. end)
  2175.  
  2176. -- Rainloop / Looprain Command
  2177. add({ "rainloop", "looprain" }, function()
  2178. local hostPlayer = game.Players.LocalPlayer -- Get the player who invoked the command
  2179.  
  2180. if not hostPlayer or not hostPlayer.Character or not hostPlayer.Character:FindFirstChild("HumanoidRootPart") then
  2181. message("Host not found.")
  2182. return
  2183. end
  2184.  
  2185. local found = index() -- Get the list of bot accounts
  2186. if #found < 1 then
  2187. message("No bots available.")
  2188. return
  2189. end
  2190.  
  2191. loops.rain = true -- Flag to track the rain loop
  2192.  
  2193. -- Continuously teleport bots above the host
  2194. coroutine.wrap(function()
  2195. while loops.rain do
  2196. local hostPosition = hostPlayer.Character.HumanoidRootPart.Position -- Get host position
  2197. for i, index in ipairs(found) do
  2198. local bot = players:GetPlayerByUserId(accounts[index])
  2199. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2200. -- Calculate the position above the host in a line formation
  2201. local offset = (i - (#found / 2) - 0.5) * 4 -- Adjust spacing between bots
  2202. local skyPosition = hostPosition + Vector3.new(offset, 100, 0) -- 100 studs above the host
  2203.  
  2204. -- Teleport the bot to the calculated position
  2205. bot.Character:SetPrimaryPartCFrame(CFrame.new(skyPosition))
  2206. end
  2207. end
  2208.  
  2209. task.wait(1) -- Wait time before the next teleportation
  2210. end
  2211. end)()
  2212.  
  2213. -- Check for respawned bots and continue the loop
  2214. local function checkForRespawns()
  2215. while loops.rain do
  2216. task.wait(1) -- Check every second
  2217. for _, index in ipairs(found) do
  2218. local bot = players:GetPlayerByUserId(accounts[index])
  2219. if bot and bot.Character then
  2220. -- If the bot is not alive, restart the loop
  2221. if not bot.Character:FindFirstChild("Humanoid") or bot.Character.Humanoid.Health <= 0 then
  2222. bot.CharacterAdded:Wait() -- Wait for the bot to respawn
  2223. end
  2224. end
  2225. end
  2226. end
  2227. end
  2228.  
  2229. -- Start checking for respawns
  2230. coroutine.wrap(checkForRespawns)()
  2231. end)
  2232.  
  2233. -- Unrain / Unrainloop / Unlooprain Command
  2234. add({ "unrain", "unrainloop", "unlooprain" }, function()
  2235. if not loops.rain then
  2236. message("No rain loop is active.")
  2237. return
  2238. end
  2239.  
  2240. loops.rain = false
  2241. end)
  2242.  
  2243. -- Table to store connections for chat copying
  2244. local chatCopyConnections = {}
  2245. local copyChatActive = false
  2246.  
  2247. -- Command to enable chat copying from the specified target
  2248. add({ "copychat", "chatcopy" }, function(...)
  2249. local args = {...}
  2250. table.remove(args, 1) -- Remove the command name from arguments
  2251.  
  2252. -- Locate target using the `find` function
  2253. local targetPlayer = find(args[1])
  2254.  
  2255. -- Validate the target player
  2256. if not targetPlayer then
  2257. message("Target player not found.")
  2258. return
  2259. end
  2260.  
  2261. -- Clear any existing chat copying connections
  2262. for _, conn in ipairs(chatCopyConnections) do
  2263. conn:Disconnect()
  2264. end
  2265. chatCopyConnections = {}
  2266. copyChatActive = true
  2267.  
  2268. -- Listen for the target player's chat messages
  2269. local connection = targetPlayer.Chatted:Connect(function(message)
  2270. if copyChatActive then
  2271. -- Make each bot chat the same message
  2272. local foundBots = index()
  2273. for _, botIndex in ipairs(foundBots) do
  2274. local bot = players:GetPlayerByUserId(accounts[botIndex])
  2275. if bot then
  2276. bot:Chat(message)
  2277. end
  2278. end
  2279. end
  2280. end)
  2281.  
  2282. -- Store the connection so it can be disconnected later
  2283. table.insert(chatCopyConnections, connection)
  2284. end)
  2285.  
  2286. -- Command to disable chat copying
  2287. add({ "uncopychat", "unchatcopy" }, function()
  2288. if not copyChatActive then
  2289. message("Chat copying is not active.")
  2290. return
  2291. end
  2292.  
  2293. -- Disconnect all chat copying connections
  2294. for _, conn in ipairs(chatCopyConnections) do
  2295. conn:Disconnect()
  2296. end
  2297. chatCopyConnections = {}
  2298. copyChatActive = false
  2299. end)
  2300.  
  2301. -- Variables to control rotor behavior
  2302. local rotorActive = false
  2303. local rotorConnections = {}
  2304.  
  2305. -- Rotor command: Makes bots spin in a line formation, imitating a rotor
  2306. add({ "rotor", "helicopter" }, function()
  2307. if rotorActive then
  2308. message("Rotor is already active.")
  2309. return
  2310. end
  2311.  
  2312. rotorActive = true
  2313.  
  2314. -- Initialize the rotor effect
  2315. coroutine.wrap(function()
  2316. local foundBots = index() -- Get the list of active bot accounts
  2317. local hostPlayer = players:GetPlayerByUserId(hostId) -- Assuming hostId is defined
  2318. if not hostPlayer or not hostPlayer.Character or not hostPlayer.Character:FindFirstChild("HumanoidRootPart") then
  2319. message("Host player not found.")
  2320. return
  2321. end
  2322.  
  2323. -- Get the initial position and orientation for the line
  2324. local hostCFrame = hostPlayer.Character.HumanoidRootPart.CFrame
  2325. local spacing = 4 -- Spacing between each bot in the line
  2326.  
  2327. -- Setup each bot in a line formation and continuously rotate them
  2328. for i, botIndex in ipairs(foundBots) do
  2329. local bot = players:GetPlayerByUserId(accounts[botIndex])
  2330. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2331. local botCharacter = bot.Character
  2332. local offset = (i - 1) * spacing -- Adjust each bot's position in the line
  2333. local targetPosition = hostCFrame * CFrame.new(0, 0, offset)
  2334.  
  2335. -- Set bot to horizontal line position
  2336. botCharacter.HumanoidRootPart.CFrame = targetPosition
  2337.  
  2338. -- Spin the bot rapidly in place
  2339. local connection = game:GetService("RunService").Heartbeat:Connect(function()
  2340. if rotorActive then
  2341. local rotation = CFrame.Angles(0, math.rad(45), 0) -- Set rotation speed (e.g., 45 degrees per frame)
  2342. botCharacter.HumanoidRootPart.CFrame = botCharacter.HumanoidRootPart.CFrame * rotation
  2343. end
  2344. end)
  2345.  
  2346. -- Store connection for later disconnection
  2347. table.insert(rotorConnections, connection)
  2348. end
  2349. end
  2350. end)()
  2351. end)
  2352.  
  2353. -- Unrotor command: Stops the rotor effect
  2354. add({ "unrotor", "unhelicopter" }, function()
  2355. if not rotorActive then
  2356. message("Rotor is not active.")
  2357. return
  2358. end
  2359.  
  2360. -- Disconnect all rotor connections to stop spinning
  2361. for _, conn in ipairs(rotorConnections) do
  2362. conn:Disconnect()
  2363. end
  2364. rotorConnections = {}
  2365. rotorActive = false
  2366. end)
  2367.  
  2368. -- Function to check if lifting is in progress
  2369. local function isLifting(targetPlayer)
  2370. return liftingTargets[targetPlayer.UserId] ~= nil
  2371. end
  2372.  
  2373. -- Lift Up Command: Makes bots lift under the specified target
  2374. add({ "liftup", "goup", "lf" }, function(_, targetName)
  2375. -- Locate the target player using the `find` method
  2376. local targetPlayer = find(targetName)
  2377. if not targetPlayer or not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then
  2378. message("Target player not found or does not have a character.")
  2379. return
  2380. end
  2381.  
  2382. -- Check if bots are already lifting this target
  2383. if liftingTargets[targetPlayer.UserId] then
  2384. message("Already lifting this target.")
  2385. return
  2386. end
  2387.  
  2388. -- Mark the target as currently being lifted
  2389. liftingTargets[targetPlayer.UserId] = true
  2390.  
  2391. -- List of bots to arrange in formation under the target
  2392. local foundBots = index()
  2393. local targetPosition = targetPlayer.Character.HumanoidRootPart.Position
  2394.  
  2395. -- Loop to place each bot under the target
  2396. for i, botId in ipairs(foundBots) do
  2397. local bot = players:GetPlayerByUserId(accounts[botId])
  2398. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2399. -- Arrange bots in a line beneath the target
  2400. local botPosition = targetPosition + Vector3.new(0, -5, (i - 1) * 3) -- Adjust vertical and spacing
  2401. bot.Character:SetPrimaryPartCFrame(CFrame.new(botPosition) * CFrame.Angles(math.rad(90), 0, 0))
  2402. bot.Character.HumanoidRootPart.Anchored = true
  2403.  
  2404. -- Heartbeat connection for lifting
  2405. local connection = game:GetService("RunService").Heartbeat:Connect(function()
  2406. if liftingTargets[targetPlayer.UserId] then
  2407. -- Smooth lifting movement for each bot
  2408. local botRootPart = bot.Character.HumanoidRootPart
  2409. bot.Character:SetPrimaryPartCFrame(botRootPart.CFrame + Vector3.new(0, 0.1, 0)) -- Adjust lift speed
  2410. end
  2411. end)
  2412.  
  2413. -- Store connection to disconnect later
  2414. table.insert(liftConnections, connection)
  2415. end
  2416. end
  2417. end)
  2418.  
  2419. -- Unlift Command: Stops lifting bots under a specific target
  2420. add({ "unliftup", "ungoup", "unlf" }, function(_, targetName)
  2421. -- Find the target player using the `find` method
  2422. local targetPlayer = find(targetName)
  2423. if not targetPlayer or not liftingTargets[targetPlayer.UserId] then
  2424. message("No lifting in progress for this target.")
  2425. return
  2426. end
  2427.  
  2428. -- Stop lifting for this target
  2429. liftingTargets[targetPlayer.UserId] = nil
  2430.  
  2431. -- Disconnect all connections for bots lifting this target
  2432. for _, connection in ipairs(liftConnections) do
  2433. connection:Disconnect()
  2434. end
  2435. liftConnections = {}
  2436.  
  2437. -- Reset bots' anchored status
  2438. local foundBots = index()
  2439. for _, botId in ipairs(foundBots) do
  2440. local bot = players:GetPlayerByUserId(accounts[botId])
  2441. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2442. bot.Character.HumanoidRootPart.Anchored = false
  2443. end
  2444. end
  2445. end)
  2446.  
  2447. -- Define the untable command
  2448. add({ "untable" }, function()
  2449. local found = index() -- Get the indices of the bots
  2450. if #found < 3 then
  2451. print("Not enough bots to execute untable command.")
  2452. return
  2453. end
  2454.  
  2455. local bot3 = players:GetPlayerByUserId(accounts[found[3]]) -- Get the third bot
  2456.  
  2457. if bot3 and bot3.Character then
  2458. -- Remove BodyPosition and BodyGyro to stop floating
  2459. for _, v in pairs(bot3.Character.HumanoidRootPart:GetChildren()) do
  2460. if v:IsA("BodyPosition") or v:IsA("BodyGyro") then
  2461. v:Destroy() -- Remove them to cancel the floating effect
  2462. end
  2463. end
  2464. end
  2465. end)
  2466.  
  2467. -- Add the chair command
  2468. add({ "chair" }, function()
  2469. local found = index() -- Get the indices of the bots
  2470. if #found < 2 then
  2471. print("Not enough bots to execute chair command.")
  2472. return
  2473. end
  2474.  
  2475. local host = game.Players.LocalPlayer -- Assuming the host is the local player
  2476. local bot1 = players:GetPlayerByUserId(accounts[found[1]])
  2477. local bot2 = players:GetPlayerByUserId(accounts[found[2]])
  2478.  
  2479. if bot1 and bot1.Character and bot2 and bot2.Character then
  2480. -- Teleport both bots in front of the host
  2481. local hostPosition = host.Character.HumanoidRootPart.Position
  2482. local teleportOffset = host.Character.HumanoidRootPart.CFrame.LookVector * 5 -- Teleport in front of the host
  2483. bot1.Character:SetPrimaryPartCFrame(CFrame.new(hostPosition + teleportOffset))
  2484. bot2.Character:SetPrimaryPartCFrame(CFrame.new(hostPosition + teleportOffset))
  2485.  
  2486. -- Make bot1 lay down
  2487. bot1.Character.Humanoid:MoveTo(bot1.Character.HumanoidRootPart.Position) -- Ensure the bot is at its current position
  2488. bot1.Character.Humanoid.Sit = true -- Make the first bot sit (which we will use to lay it down)
  2489. bot1.Character:SetPrimaryPartCFrame(CFrame.new(bot1.Character.HumanoidRootPart.Position) * CFrame.Angles(-math.pi / 2, 0, 0)) -- Lay it down facing down
  2490. bot1.Character.Humanoid.PlatformStand = true -- Fix its position so it doesn't move
  2491.  
  2492. -- Make bot2 stand on bot1's head
  2493. bot2.Character:SetPrimaryPartCFrame(bot1.Character.PrimaryPart.CFrame * CFrame.new(0, 2, 0)) -- Position it on top of bot1's head
  2494. bot2.Character.Humanoid.PlatformStand = true -- Fix bot2's position as well
  2495. end
  2496. end)
  2497.  
  2498. -- Add the unchair command
  2499. add({ "unchair" }, function()
  2500. local found = index() -- Get the indices of the bots
  2501. if #found < 2 then
  2502. print("Not enough bots to execute unchair command.")
  2503. return
  2504. end
  2505.  
  2506. local bot1 = players:GetPlayerByUserId(accounts[found[1]])
  2507. local bot2 = players:GetPlayerByUserId(accounts[found[2]])
  2508.  
  2509. if bot1 and bot1.Character and bot2 and bot2.Character then
  2510. -- Unlay bot1
  2511. bot1.Character.Humanoid.PlatformStand = false -- Allow movement again
  2512. bot1.Character.Humanoid.Sit = false -- Make the bot stand again
  2513. bot1.Character:SetPrimaryPartCFrame(CFrame.new(bot1.Character.HumanoidRootPart.Position.X, bot1.Character.HumanoidRootPart.Position.Y + 2, bot1.Character.HumanoidRootPart.Position.Z)) -- Adjust position slightly above ground
  2514.  
  2515. -- Unstand bot2
  2516. bot2.Character.Humanoid.PlatformStand = false -- Allow movement again
  2517. bot2.Character:SetPrimaryPartCFrame(CFrame.new(bot2.Character.HumanoidRootPart.Position.X, bot2.Character.HumanoidRootPart.Position.Y + 2, bot2.Character.HumanoidRootPart.Position.Z)) -- Adjust position slightly above ground
  2518. end
  2519. end)
  2520.  
  2521. add({ "bed" }, function()
  2522. local found = index() -- Locate active bots using the `index` function
  2523.  
  2524. -- Reference to the host's position as the starting point of the line
  2525. local host = players.LocalPlayer
  2526. local hostPosition = host.Character.HumanoidRootPart.CFrame
  2527.  
  2528. -- Iterate over each bot and position them in a line
  2529. for i, botIndex in ipairs(found) do
  2530. local bot = players:GetPlayerByUserId(accounts[botIndex])
  2531.  
  2532. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2533. -- Calculate the bot's position based on its index in the line
  2534. local offset = i * 4 -- Distance between each bot
  2535. local targetPosition = hostPosition * CFrame.new(0, 0, -offset)
  2536.  
  2537. -- Position the bot at the calculated position with a laying-down orientation
  2538. bot.Character.HumanoidRootPart.CFrame = targetPosition * CFrame.Angles(math.rad(90), 0, 0)
  2539. end
  2540. end
  2541. end)
  2542.  
  2543. add({ "unbed" }, function()
  2544. local found = index() -- Locate active bots using the `index` function
  2545.  
  2546. -- Reset each bot to an upright position
  2547. for i, botIndex in ipairs(found) do
  2548. local bot = players:GetPlayerByUserId(accounts[botIndex])
  2549.  
  2550. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2551. -- Reset the bot's orientation to standing (upright position)
  2552. bot.Character.HumanoidRootPart.CFrame = bot.Character.HumanoidRootPart.CFrame * CFrame.Angles(math.rad(-90), 0, 0)
  2553. end
  2554. end
  2555. end)
  2556.  
  2557. -- Triangle Command: Positions bots in a triangle formation around the host
  2558. add({ "triangle" }, function(speaker)
  2559. local found = index() -- Get the relevant bot indexes
  2560. local hostPlayer = players:GetPlayerByUserId(speaker.UserId) -- Get the speaker as host
  2561.  
  2562. if hostPlayer and hostPlayer.Character and hostPlayer.Character:FindFirstChild("HumanoidRootPart") and #found >= 3 then
  2563. local hostPosition = hostPlayer.Character.HumanoidRootPart.Position
  2564.  
  2565. -- Define triangle positions around the host
  2566. local distance = 5 -- Adjust distance as needed
  2567. local positions = {
  2568. hostPosition + Vector3.new(-distance, 0, -distance), -- Bottom left
  2569. hostPosition + Vector3.new(distance, 0, -distance), -- Bottom right
  2570. hostPosition + Vector3.new(0, 0, distance) -- Top
  2571. }
  2572.  
  2573. -- Place each bot at a triangle vertex
  2574. for i = 1, 3 do
  2575. local bot = players:GetPlayerByUserId(accounts[found[i]])
  2576. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2577. bot.Character:SetPrimaryPartCFrame(CFrame.new(positions[i])) -- Set position
  2578. bot.Character.HumanoidRootPart.Anchored = true -- Anchor in place
  2579. end
  2580. end
  2581. message("🔺 Triangle formation active.")
  2582. else
  2583. message("Need at least 3 bots for a triangle formation.")
  2584. end
  2585. end)
  2586.  
  2587. -- Square Command: Positions bots in a square formation around the host
  2588. add({ "square" }, function(speaker)
  2589. local found = index() -- Get the relevant bot indexes
  2590. local hostPlayer = players:GetPlayerByUserId(speaker.UserId) -- Get the speaker as host
  2591.  
  2592. if hostPlayer and hostPlayer.Character and hostPlayer.Character:FindFirstChild("HumanoidRootPart") and #found >= 4 then
  2593. local hostPosition = hostPlayer.Character.HumanoidRootPart.Position
  2594.  
  2595. -- Define square positions around the host
  2596. local distance = 5 -- Adjust distance as needed
  2597. local positions = {
  2598. hostPosition + Vector3.new(-distance, 0, -distance), -- Bottom left
  2599. hostPosition + Vector3.new(distance, 0, -distance), -- Bottom right
  2600. hostPosition + Vector3.new(-distance, 0, distance), -- Top left
  2601. hostPosition + Vector3.new(distance, 0, distance) -- Top right
  2602. }
  2603.  
  2604. -- Place each bot at a square vertex
  2605. for i = 1, 4 do
  2606. local bot = players:GetPlayerByUserId(accounts[found[i]])
  2607. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2608. bot.Character:SetPrimaryPartCFrame(CFrame.new(positions[i])) -- Set position
  2609. bot.Character.HumanoidRootPart.Anchored = true -- Anchor in place
  2610. end
  2611. end
  2612. message("🟥 Square formation active.")
  2613. else
  2614. message("Need at least 4 bots for a square formation.")
  2615. end
  2616. end)
  2617.  
  2618. -- Circle Command: Surrounds the host in a circular formation
  2619. add({ "circle" }, function(speaker)
  2620. local found = index() -- Get the indices of the bots
  2621. local numBots = #found
  2622. if numBots < 1 then
  2623. message("No bots available to form a circle.")
  2624. return
  2625. end
  2626.  
  2627. local hostPlayer = players:GetPlayerByUserId(speaker.UserId)
  2628. if not hostPlayer or not hostPlayer.Character or not hostPlayer.Character:FindFirstChild("HumanoidRootPart") then
  2629. message("Host not found or is not in the game.")
  2630. return
  2631. end
  2632.  
  2633. local hostPosition = hostPlayer.Character.HumanoidRootPart.Position
  2634. local radius = 10 -- Set the radius for the circle
  2635.  
  2636. for i, index in ipairs(found) do
  2637. local bot = players:GetPlayerByUserId(accounts[index])
  2638. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2639. local angle = (i - 1) * (2 * math.pi / numBots) -- Calculate angle in radians
  2640. local offsetX = radius * math.cos(angle) -- X offset for the circle
  2641. local offsetZ = radius * math.sin(angle) -- Z offset for the circle
  2642.  
  2643. -- Set the bot's position around the circle
  2644. local newPosition = hostPosition + Vector3.new(offsetX, 0, offsetZ)
  2645. bot.Character:SetPrimaryPartCFrame(CFrame.new(newPosition)) -- Position bot
  2646. bot.Character.HumanoidRootPart.Anchored = true -- Anchor in place
  2647. end
  2648. end
  2649. message("🔴 Circle formation active.")
  2650. end)
  2651.  
  2652. -- Helper Command to Release Bots from Anchors
  2653. add({ "unsquare", "untriangle", "uncircle" }, function()
  2654. local found = index()
  2655. for _, index in ipairs(found) do
  2656. local bot = players:GetPlayerByUserId(accounts[index])
  2657. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2658. bot.Character.HumanoidRootPart.Anchored = false
  2659. end
  2660. end
  2661. message("Bots have been released from formations.")
  2662. end)
  2663.  
  2664. -- Variables to control "lift" effect
  2665. local lifting = false
  2666. local liftHeight = 0.1 -- The rate of lift for the "lift" command
  2667. local liftConnections = {}
  2668.  
  2669. -- Box Command: Sets up the box formation around the host
  2670. add({ "box" }, function(speaker)
  2671. local found = index() -- Get the indices of the bots
  2672. local hostPlayer = players:GetPlayerByUserId(speaker.UserId)
  2673. if not hostPlayer or not hostPlayer.Character or not hostPlayer.Character:FindFirstChild("HumanoidRootPart") then
  2674. message("Host not found or is not in the game.")
  2675. return
  2676. end
  2677.  
  2678. -- Get host position and teleport bots in front of them
  2679. local hostPosition = hostPlayer.Character.HumanoidRootPart.Position + Vector3.new(0, 0, -10)
  2680.  
  2681. -- Place the first bot horizontally on the ground
  2682. local firstBot = players:GetPlayerByUserId(accounts[found[1]])
  2683. if firstBot and firstBot.Character and firstBot.Character:FindFirstChild("HumanoidRootPart") then
  2684. firstBot.Character:SetPrimaryPartCFrame(CFrame.new(hostPosition) * CFrame.Angles(0, 0, math.rad(90))) -- Horizontal
  2685. firstBot.Character.HumanoidRootPart.Anchored = true -- Fixed to ground
  2686. end
  2687.  
  2688. -- Position other bots around the first bot to form a "box"
  2689. local boxOffsets = {
  2690. Vector3.new(5, 0, 0),
  2691. Vector3.new(-5, 0, 0),
  2692. Vector3.new(0, 0, 5),
  2693. Vector3.new(0, 0, -5)
  2694. }
  2695. for i = 2, #found do
  2696. local bot = players:GetPlayerByUserId(accounts[found[i]])
  2697. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2698. local boxPosition = hostPosition + boxOffsets[(i - 1) % 4 + 1]
  2699. bot.Character:SetPrimaryPartCFrame(CFrame.new(boxPosition))
  2700. bot.Character.HumanoidRootPart.Anchored = true -- Fix to position
  2701. end
  2702. end
  2703.  
  2704. message("📦")
  2705. end)
  2706.  
  2707. -- Lift Command: Gradually lifts the "box" formation upwards
  2708. add({ "lift" }, function(speaker)
  2709. if lifting then
  2710. message("Already lifting.")
  2711. return
  2712. end
  2713.  
  2714. lifting = true
  2715. -- Begin lifting all bots gradually
  2716. for _, botId in ipairs(index()) do
  2717. local bot = players:GetPlayerByUserId(accounts[botId])
  2718. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2719. local connection = game:GetService("RunService").Heartbeat:Connect(function()
  2720. if lifting then
  2721. local currentCFrame = bot.Character.HumanoidRootPart.CFrame
  2722. bot.Character:SetPrimaryPartCFrame(currentCFrame + Vector3.new(0, liftHeight, 0))
  2723. end
  2724. end)
  2725. table.insert(liftConnections, connection)
  2726. end
  2727. end
  2728. message("👆")
  2729. end)
  2730.  
  2731. -- Unlift Command: Stops the lift effect, keeping bots in place
  2732. add({ "unlift" }, function(speaker)
  2733. lifting = false
  2734. for _, connection in ipairs(liftConnections) do
  2735. connection:Disconnect()
  2736. end
  2737. liftConnections = {}
  2738. message("🤚")
  2739. end)
  2740.  
  2741. -- Unbox Command: Resets all bots to default position and cancels box, lift, and unlift commands
  2742. add({ "unbox" }, function(speaker)
  2743. -- Reset lifting state
  2744. lifting = false
  2745. for _, connection in ipairs(liftConnections) do
  2746. connection:Disconnect()
  2747. end
  2748. liftConnections = {}
  2749.  
  2750. -- Reset all bots to unfixed positions
  2751. for _, botId in ipairs(index()) do
  2752. local bot = players:GetPlayerByUserId(accounts[botId])
  2753. if bot and bot.Character and bot.Character:FindFirstChild("HumanoidRootPart") then
  2754. bot.Character.HumanoidRootPart.Anchored = false -- Remove anchor
  2755. end
  2756. end
  2757. end)
  2758.  
  2759. -- Fling Target Command for Bots
  2760.  
  2761. -- Function to get a target player by name
  2762. local GetPlayer = function(Name)
  2763. Name = Name:lower()
  2764. for _, x in next, players:GetPlayers() do
  2765. if x ~= Player then
  2766. if x.Name:lower():match("^"..Name) then
  2767. return x;
  2768. elseif x.DisplayName:lower():match("^"..Name) then
  2769. return x;
  2770. end
  2771. end
  2772. end
  2773. return nil -- Return nil if no player is found
  2774. end
  2775.  
  2776. -- Bot Fling function (Bots will fling the target)
  2777. local FlingTargetWithBots = function(TargetPlayer, bots)
  2778. local TCharacter = TargetPlayer.Character
  2779. local THumanoid
  2780. local TRootPart
  2781. local THead
  2782.  
  2783. if TCharacter and TCharacter:FindFirstChildOfClass("Humanoid") then
  2784. THumanoid = TCharacter:FindFirstChildOfClass("Humanoid")
  2785. TRootPart = THumanoid.RootPart
  2786. THead = TCharacter:FindFirstChild("Head")
  2787. else
  2788. return -- Exit if target player is not valid
  2789. end
  2790.  
  2791. -- Fling each bot at the target
  2792. for i, bot in ipairs(bots) do
  2793. local BotCharacter = bot.Character
  2794. local BotHumanoid = BotCharacter and BotCharacter:FindFirstChildOfClass("Humanoid")
  2795. local BotRootPart = BotHumanoid and BotHumanoid.RootPart
  2796.  
  2797. if BotCharacter and BotHumanoid and BotRootPart and TRootPart then
  2798. -- Fling logic for bots
  2799. local FPos = function(BasePart)
  2800. BotRootPart.CFrame = CFrame.new(BasePart.Position) * CFrame.new(0, 1.5, 0)
  2801. BotRootPart.Velocity = Vector3.new(9e8, 9e8 * 10, 9e8) -- Huge fling velocity
  2802. BotRootPart.RotVelocity = Vector3.new(9e8, 9e8, 9e8) -- Rapid rotation
  2803. end
  2804.  
  2805. -- Make the bots repeatedly fling themselves towards the target's root part
  2806. coroutine.wrap(function()
  2807. local startTime = tick()
  2808. while (tick() - startTime < 2) do -- 2 seconds of flinging
  2809. FPos(TRootPart) -- Fling toward the target's RootPart
  2810. task.wait(0.1)
  2811. end
  2812. end)()
  2813. end
  2814. end
  2815. end
  2816.  
  2817. -- Command to initiate bot fling
  2818. add({"fling"}, function(_, target)
  2819. local TargetPlayer = GetPlayer(target)
  2820. local bots = index() -- Assuming `index()` retrieves the bot instances
  2821.  
  2822. if TargetPlayer then
  2823. FlingTargetWithBots(TargetPlayer, bots)
  2824. end
  2825. end)
  2826.  
  2827. add({ "credits", "madeby", "share", "advertise", "ad" }, function(...)
  2828. local args = {...}
  2829. table.remove(args, 1)
  2830.  
  2831. local found = index()
  2832. for i, index in ipairs(found) do
  2833. local bot = players:GetPlayerByUserId(accounts[index])
  2834. if (bot) then
  2835. message("Alt control " .. ver .. " by Pyst")
  2836. break
  2837. end
  2838. end
  2839. end)
  2840.  
  2841. add({ "index", "ingame", "online" }, function()
  2842. local count = 0
  2843. for _,uID in ipairs(accounts) do
  2844. if players:GetPlayerByUserId(uID) then
  2845. count = count + 1
  2846. end
  2847. end
  2848. message("Controlling " .. count .. " accounts.")
  2849. end)
  2850.  
  2851. add({ "antilag", "boostfps", "removelag" }, function()
  2852. loadstring(game:HttpGet("https://pastebin.com/raw/MGSbKm7y"))()
  2853. message("FPS has been succesfully boosted.")
  2854. end)
  2855.  
  2856. add({ "tool", "grab" }, function()
  2857. loadstring(game:HttpGet("https://raw.githubusercontent.com/Azuaruas/thingik/refs/heads/main/thingik"))()
  2858. end)
  2859.  
  2860. add({ "hat", "hatorbit" }, function()
  2861. loadstring(game:HttpGet("https://raw.githubusercontent.com/BingusWR/Fe-Spinning-Hat-Script/refs/heads/main/Fe%20Spinning%20Hats%20Script"))()
  2862.  
  2863. task.wait(5)
  2864. message(";givecmd " .. controllerUser)
  2865.  
  2866. task.wait(1)
  2867. message(";h " .. controllerUser)
  2868.  
  2869. task.wait(1)
  2870. message(";speed 5")
  2871. end)
  2872.  
  2873. add({ "nameless", "extend" }, function()
  2874. loadstring(game:HttpGet("https://raw.githubusercontent.com/ltseverydayyou/Nameless-Admin/main/Source"))();
  2875.  
  2876. task.wait(12)
  2877. message(";admin " .. controllerUser)
  2878.  
  2879. task.wait(1)
  2880. message(":admin " .. controllerUser)
  2881.  
  2882. task.wait(1)
  2883. message("Say .ncmds or .namelesscmds to view the commands.")
  2884. end)
  2885.  
  2886. add({ "flingall" }, function()
  2887. message("Flinging All.")
  2888. loadstring(game:HttpGet("https://pastebin.com/raw/zqyDSUWX"))()
  2889. end)
  2890.  
  2891. add({ "end", "stop" }, function()
  2892. disallowed = true
  2893.  
  2894. message("Alt control successfully closed.")
  2895. end)
  2896.  
  2897. add({ "dance", "groove" }, function(...)
  2898. local args = {...}
  2899. table.remove(args, 1)
  2900.  
  2901. local dance = table.concat(args, " ")
  2902.  
  2903. if (dance) == "1" then
  2904. players:Chat("/e dance")
  2905. else
  2906. players:Chat("/e dance" .. dance)
  2907. end
  2908. end)
  2909.  
  2910. add({ "wave", "hello" }, function()
  2911. players:Chat("/e wave")
  2912. end)
  2913.  
  2914. add({ "cheer", "hooray" }, function()
  2915. players:Chat("/e cheer")
  2916. end)
  2917.  
  2918. add({ "applaud", "clap" }, function()
  2919. players:Chat("/e applaud")
  2920. end)
  2921.  
  2922. add({ "shrug", "idk", "confused" }, function()
  2923. players:Chat("/e shrug")
  2924. end)
  2925.  
  2926. add({ "point", "pointout" }, function()
  2927. players:Chat("/e point")
  2928. end)
  2929.  
  2930. add({ "laugh", "excite", "lol" }, function()
  2931. players:Chat("/e laugh")
  2932. end)
  2933.  
  2934. add({ "emote", "e" }, function(...)
  2935. local args = {...}
  2936. table.remove(args, 1)
  2937.  
  2938. local emote = table.concat(args, " ")
  2939.  
  2940. players:Chat("/e " .. emote)
  2941. end)
  2942.  
  2943. add({ "reset", "kill", "oof" }, function()
  2944. local found = index()
  2945. for _,index in ipairs(found) do
  2946. local bot = players:GetPlayerByUserId(accounts[index])
  2947. if (bot) then
  2948. bot.Character.Humanoid.Health = 0
  2949. end
  2950. end
  2951. end)
  2952.  
  2953. add({ "say", "chat", "m", "msg", "s" }, function(...)
  2954. local args = {...}
  2955. table.remove(args, 1)
  2956.  
  2957. local found = index()
  2958. for _,index in ipairs(found) do
  2959. local bot = players:GetPlayerByUserId(accounts[index])
  2960. if (bot) then
  2961. message(table.concat(args, " "))
  2962. break
  2963. end
  2964. end
  2965. end)
  2966.  
  2967. add({ "bad", "badword", "notgood" }, function()
  2968. local found = index() -- Locate active bots using the `index` function
  2969.  
  2970. -- Ensure there are at least three bots available
  2971. if #found >= 3 then
  2972. local firstBot = players:GetPlayerByUserId(accounts[found[1]])
  2973. local secondBot = players:GetPlayerByUserId(accounts[found[2]])
  2974. local thirdBot = players:GetPlayerByUserId(accounts[found[3]])
  2975.  
  2976. -- Make the first bot chat "n - k - co - f"
  2977. if firstBot and firstBot.Character and firstBot.Character:FindFirstChild("HumanoidRootPart") then
  2978. message("n - k - co - f") -- Only the first bot chats
  2979. end
  2980.  
  2981. -- Make the second bot chat "sh - a - sl - bo - test"
  2982. if secondBot and secondBot.Character and secondBot.Character:FindFirstChild("HumanoidRootPart") then
  2983. message("sh - a - sl - bo - test - d - p") -- Only the second bot chats
  2984. end
  2985.  
  2986. -- Make the third bot chat "mi - ne - ra - sp - mia - i don't give"
  2987. if thirdBot and thirdBot.Character and thirdBot.Character:FindFirstChild("HumanoidRootPart") then
  2988. message("mi - ne - ra - sp - mia - shut") -- Only the third bot chats
  2989. end
  2990. end
  2991. end)
  2992.  
  2993. add({ "mia" }, function()
  2994. local found = index() -- Locate active bots using the `index` function
  2995.  
  2996. -- Ensure there are at least two bots available
  2997. if #found >= 2 then
  2998. local firstBot = players:GetPlayerByUserId(accounts[found[1]])
  2999. local secondBot = players:GetPlayerByUserId(accounts[found[2]])
  3000.  
  3001. -- Make the first bot chat "kha"
  3002. if firstBot and firstBot.Character and firstBot.Character:FindFirstChild("HumanoidRootPart") then
  3003. message("kha") -- Only the first bot chats
  3004. end
  3005.  
  3006. -- Make the second bot chat "lifa"
  3007. if secondBot and secondBot.Character and secondBot.Character:FindFirstChild("HumanoidRootPart") then
  3008. message("lifa") -- Only the second bot chats
  3009. end
  3010. end
  3011. end)
  3012.  
  3013. add({ "shut" }, function()
  3014. local found = index() -- Locate active bots using the `index` function
  3015.  
  3016. -- Ensure there are at least three bots available
  3017. if #found >= 3 then
  3018. local firstBot = players:GetPlayerByUserId(accounts[found[1]])
  3019. local secondBot = players:GetPlayerByUserId(accounts[found[2]])
  3020. local thirdBot = players:GetPlayerByUserId(accounts[found[3]])
  3021.  
  3022. -- Make the first bot chat "a"
  3023. if firstBot and firstBot.Character and firstBot.Character:FindFirstChild("HumanoidRootPart") then
  3024. message("the") -- Only the first bot chats
  3025. end
  3026.  
  3027. -- Make the second bot chat "f"
  3028. if secondBot and secondBot.Character and secondBot.Character:FindFirstChild("HumanoidRootPart") then
  3029. message("f") -- Only the second bot chats
  3030. end
  3031.  
  3032. -- Make the third bot chat "ck"
  3033. if thirdBot and thirdBot.Character and thirdBot.Character:FindFirstChild("HumanoidRootPart") then
  3034. message("up") -- Only the third bot chats
  3035. end
  3036. end
  3037. end)
  3038.  
  3039. add({ "ra" }, function()
  3040. local found = index() -- Locate active bots using the `index` function
  3041.  
  3042. -- Ensure there is at least one bot available
  3043. if #found >= 1 then
  3044. local firstBot = players:GetPlayerByUserId(accounts[found[1]])
  3045.  
  3046. -- Make the first bot chat "pe"
  3047. if firstBot and firstBot.Character and firstBot.Character:FindFirstChild("HumanoidRootPart") then
  3048. message("pe") -- Only the first bot chats
  3049. end
  3050. end
  3051. end)
  3052.  
  3053. add({ "ne" }, function()
  3054. local found = index() -- Locate active bots using the `index` function
  3055.  
  3056. -- Ensure there is at least one bot available
  3057. if #found >= 1 then
  3058. local firstBot = players:GetPlayerByUserId(accounts[found[1]])
  3059.  
  3060. -- Make the first bot chat "gg"
  3061. if firstBot then
  3062. message("gg") -- Only the first bot chats
  3063. end
  3064. end
  3065.  
  3066. -- Ensure there is a second bot available
  3067. if #found >= 2 then
  3068. local secondBot = players:GetPlayerByUserId(accounts[found[2]])
  3069.  
  3070. -- Make the second bot chat "er"
  3071. if secondBot then
  3072. message("er") -- Only the second bot chats
  3073. end
  3074. end
  3075. end)
  3076.  
  3077. add({ "mi" }, function()
  3078. local found = index() -- Locate active bots using the `index` function
  3079.  
  3080. -- Ensure there is at least one bot available
  3081. if #found >= 1 then
  3082. local firstBot = players:GetPlayerByUserId(accounts[found[1]])
  3083.  
  3084. -- Make the first bot chat "lf"
  3085. if firstBot then
  3086. message("lf") -- Only the first bot chats without username
  3087. end
  3088. else
  3089. message("No bots available to execute 'mi' command.")
  3090. end
  3091. end)
  3092.  
  3093. add({ "sp" }, function()
  3094. local found = index() -- Locate active bots using the `index` function
  3095.  
  3096. -- Ensure there is at least one bot available
  3097. if #found >= 1 then
  3098. local firstBot = players:GetPlayerByUserId(accounts[found[1]])
  3099.  
  3100. -- Make the first bot chat "erm"
  3101. if firstBot then
  3102. message("erm") -- Only the first bot chats without username
  3103. end
  3104. else
  3105. message("No bots available to execute 'sp' command.")
  3106. end
  3107. end)
  3108.  
  3109. add({ "test" }, function()
  3110. local found = index() -- Locate active bots using the `index` function
  3111.  
  3112. -- Ensure there are at least two bots available
  3113. if #found >= 2 then
  3114. local firstBot = players:GetPlayerByUserId(accounts[found[1]])
  3115. local secondBot = players:GetPlayerByUserId(accounts[found[2]])
  3116.  
  3117. -- Make the first bot chat "ic"
  3118. if firstBot then
  3119. message("ic") -- Only the first bot chats without username
  3120. end
  3121.  
  3122. -- Make the second bot chat "les"
  3123. if secondBot then
  3124. message("les") -- Only the second bot chats without username
  3125. end
  3126. else
  3127. message("Not enough bots available to execute 'test' command.")
  3128. end
  3129. end)
  3130.  
  3131. add({ "bo" }, function()
  3132. local found = index() -- Locate active bots using the `index` function
  3133.  
  3134. -- Ensure there is at least one bot available
  3135. if #found >= 1 then
  3136. local firstBot = players:GetPlayerByUserId(accounts[found[1]])
  3137.  
  3138. -- Make the first bot chat "obs"
  3139. if firstBot then
  3140. message("obs") -- Only the first bot chats without username
  3141. end
  3142. else
  3143. message("No bots available to execute 'bo' command.")
  3144. end
  3145. end)
  3146.  
  3147. add({ "sl" }, function()
  3148. local found = index() -- Locate active bots using the `index` function
  3149.  
  3150. -- Ensure there are at least three bots available
  3151. if #found >= 3 then
  3152. local firstBot = players:GetPlayerByUserId(accounts[found[1]])
  3153. local secondBot = players:GetPlayerByUserId(accounts[found[2]])
  3154. local thirdBot = players:GetPlayerByUserId(accounts[found[3]])
  3155.  
  3156. -- Make each bot chat their assigned letter
  3157. if firstBot then
  3158. message("a") -- Only the first bot chats "a"
  3159. end
  3160. if secondBot then
  3161. message("v") -- Only the second bot chats "v"
  3162. end
  3163. if thirdBot then
  3164. message("e") -- Only the third bot chats "e"
  3165. end
  3166. else
  3167. message("Not enough bots available to execute 'sl' command.")
  3168. end
  3169. end)
  3170.  
  3171. add({ "a" }, function()
  3172. local found = index() -- Locate active bots using the `index` function
  3173.  
  3174. -- Ensure there is at least one bot available for this command
  3175. if #found >= 1 then
  3176. local firstBot = players:GetPlayerByUserId(accounts[found[1]])
  3177.  
  3178. -- Make only the first bot chat "ss"
  3179. if firstBot then
  3180. message("ss") -- Only the first bot chats "ss"
  3181. end
  3182. else
  3183. message("No bots available to execute 'a' command.")
  3184. end
  3185. end)
  3186.  
  3187. add({ "k" }, function()
  3188. local found = index() -- Locate active bots using the `index` function
  3189.  
  3190. -- Ensure there are at least two bots available for this command
  3191. if #found >= 2 then
  3192. local firstBot = players:GetPlayerByUserId(accounts[found[1]])
  3193. local secondBot = players:GetPlayerByUserId(accounts[found[2]])
  3194.  
  3195. -- Make only the first and second bots chat "k"
  3196. if firstBot then
  3197. message("k") -- First bot chats "k"
  3198. end
  3199. if secondBot then
  3200. message("k") -- Second bot chats "k"
  3201. end
  3202. else
  3203. message("Not enough bots available to execute 'k' command.")
  3204. end
  3205. end)
  3206.  
  3207. add({ "co" }, function()
  3208. local found = index() -- Locate active bots using the `index` function
  3209.  
  3210. -- Ensure there's at least one bot to execute the command
  3211. if #found >= 1 then
  3212. local firstBotIndex = found[1] -- Get the first bot in the list
  3213. local firstBot = players:GetPlayerByUserId(accounts[firstBotIndex])
  3214.  
  3215. if firstBot then
  3216. message("ck") -- Make only the first bot say "ck"
  3217. end
  3218. else
  3219. message("No bots available to execute 'co' command.")
  3220. end
  3221. end)
  3222.  
  3223. add({ "sh" }, function()
  3224. local found = index() -- Locate active bots using the `index` function
  3225.  
  3226. -- Ensure there's at least one bot to execute the command
  3227. if #found >= 1 then
  3228. local firstBotIndex = found[1] -- Get the first bot in the list
  3229. local firstBot = players:GetPlayerByUserId(accounts[firstBotIndex])
  3230.  
  3231. if firstBot then
  3232. message("it") -- Make only the first bot say "it"
  3233. end
  3234. else
  3235. message("No bots available to execute 'sh' command.")
  3236. end
  3237. end)
  3238.  
  3239. add({ "d" }, function()
  3240. local found = index() -- Locate active bots using the `index` function
  3241. local letters = { "i", "sc", "ord" }
  3242.  
  3243. -- Ensure there are enough bots for each letter
  3244. if #found >= #letters then
  3245. -- For each letter, make the corresponding bot say it
  3246. for i, letter in ipairs(letters) do
  3247. local botIndex = found[i]
  3248. local bot = players:GetPlayerByUserId(accounts[botIndex])
  3249. if bot then
  3250. message(letter) -- Make only the bot output the letter without the username
  3251. end
  3252. end
  3253. else
  3254. message("Not enough bots to execute 'n' command.")
  3255. end
  3256. end)
  3257.  
  3258. add({ "f" }, function()
  3259. local found = index() -- Locate active bots using the `index` function
  3260. local letters = { "u", "c", "k" }
  3261.  
  3262. -- Ensure there are enough bots for each letter
  3263. if #found >= #letters then
  3264. -- For each letter, make the corresponding bot say it
  3265. for i, letter in ipairs(letters) do
  3266. local botIndex = found[i]
  3267. local bot = players:GetPlayerByUserId(accounts[botIndex])
  3268. if bot then
  3269. message(letter) -- Each bot outputs only the letter, without its username
  3270. end
  3271. end
  3272. else
  3273. message("Not enough bots to execute 'f' command.")
  3274. end
  3275. end)
  3276.  
  3277. add({ "p" }, function()
  3278. local found = index() -- Locate active bots using the `index` function
  3279. local letters = { "o", "r", "n" }
  3280.  
  3281. -- Ensure there are enough bots for each letter
  3282. if #found >= #letters then
  3283. -- For each letter, make the corresponding bot say it
  3284. for i, letter in ipairs(letters) do
  3285. local botIndex = found[i]
  3286. local bot = players:GetPlayerByUserId(accounts[botIndex])
  3287. if bot then
  3288. message(letter) -- Each bot outputs only the letter, without its username
  3289. end
  3290. end
  3291. else
  3292. message("Not enough bots to execute 'p' command.")
  3293. end
  3294. end)
  3295.  
  3296. add({ "undance", "jump", "stopdance", "j" }, function()
  3297. localPlayer.Character.Humanoid.Jump = true
  3298. end)
  3299.  
  3300. local response = function(input: string)
  3301. if not (disallowed) then
  3302. dur = tick()
  3303.  
  3304. if (string.sub(input, 1, #prefix)) == prefix then
  3305. local command = string.sub(input, #prefix + 1)
  3306. local args = { }
  3307.  
  3308. for arg in string.gmatch(command, "%S+") do
  3309. table.insert(args, arg)
  3310. end
  3311.  
  3312. local functions = commands[args[1]]
  3313. if (functions) then
  3314. functions.functions(unpack(args))
  3315. else
  3316. message('Command "' .. command .. '" not found.')
  3317. end
  3318. end
  3319. end
  3320. end
  3321.  
  3322. if (version()) == "New" then
  3323. textChat.MessageReceived:Connect(function(textChatMessage)
  3324. local author = tostring(textChatMessage.TextSource)
  3325.  
  3326. if (author) == model.Name then
  3327. response(textChatMessage.Text)
  3328. end
  3329. end)
  3330. else
  3331. model.Chatted:Connect(function(input: string)
  3332. response(input)
  3333. end)
  3334. end
  3335.  
  3336. message("Alt control " .. ver .. " loaded in " .. string.format("%.2f", tick() - dur) .. " seconds, say .cmds to view the commands.")
  3337. else
  3338. message("Main Account not found, cannot use Alt control.")
  3339. end
Add Comment
Please, Sign In to add comment