Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Envision "Raider"
- --
- -- Version: 2.3-3
- -- Last edited: 5/21/23 3:19 PM -- canceled 8/2/23
- -- Last added: changed global var from _G to shared
- --
- --[[
- removelimbs:bot:all, rl
- removehats:bot:[make hats fly], rh
- orbit:bot:me:spiral, shield, staircase
- staircase:all:spiral, straight, offX, offY, offZ
- trip:all
- --]]
- local TextChatService = game:GetService("TextChatService");
- local UserService = game:GetService("UserService");
- local HttpService = game:GetService("HttpService");
- local RunService = game:GetService("RunService");
- local ReplicatedStorage = game:GetService("ReplicatedStorage");
- local Players = game:GetService("Players");
- local Bot = Players.LocalPlayer;
- local BotNumber = table.find(shared["raider/dictionary"]["config/dictionary"]["setup/alts"], Bot.UserId) or 0;
- local Form = string.format;
- function Or(Variable, Checks)
- for Int, Value in pairs(Checks) do
- if Variable == Value then
- return true;
- end;
- end;
- return false;
- end;
- function StringFind(String, Pattern)
- local Results = {};
- if String == Pattern then
- Results[#Results+1] = {["Start"] = 1, ["End"] = #String};
- else
- for Int = 1, #String-#Pattern+1, 1 do
- if string.sub(String, Int, Int+#Pattern-1) == Pattern then
- Results[#Results+1] = {["Start"] = Int, ["End"] = Int+#Pattern-1};
- end;
- end;
- end;
- return Results;
- end;
- function Gsub(String, Table)
- for Replacing, Replacement in pairs(Table) do
- local Results = StringFind(String, Replacing);
- for Int, Value in pairs(Results) do
- String = string.sub(String, 0, Value.Start-1)..Replacement..string.sub(String, Value.End+1, -1);
- end;
- end;
- return String;
- end;
- function RemoveExtraSpaces(String)
- while string.find(String, " ") ~= nil do
- String = string.gsub(String, " ", " ");
- end;
- return String;
- end;
- function IsFiltered(String)
- if #StringFind(game:GetService("Chat"):FilterStringForBroadcast(String, Bot), "#") == 0 then
- return false;
- end;
- return true;
- end;
- function Token(Layout, Library)
- local Token = "";
- local Library = string.split(Library or "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", "");
- for Int, String in pairs(string.split(Layout, "")) do
- if String == "#" then
- String = Library[math.random(1, #Library)];
- end;
- Token ..= String;
- end;
- return Token;
- end;
- function TryToken(Layout, Library)
- local Tries = 0;
- while true do
- Tries += 1;
- if Tries >= 20 then
- return "Generated tokens were filtered.";
- end;
- local Token = Token(Layout, Library);
- if IsFiltered(Token) == false then
- return Token;
- end;
- RunService.Heartbeat:Wait();
- end;
- end;
- function TableFind(Table1, Index, By)
- local Loop = nil;
- Loop = function(Table2)
- for Int, Value in pairs(Table2) do
- if By == "Value" then
- if typeof(Value) == "table" then
- return Loop(Value);
- elseif Value == Index then
- return true, Int;
- end;
- elseif By == "Int" then
- if Int == Index then
- return true, Value;
- end;
- end;
- end;
- return false, nil;
- end;
- return Loop(Table1);
- end;
- function RandomizeTable(Table)
- local Results = {};
- for Int, Value in pairs(Table) do
- Results[tonumber(Form("%s.%s", math.random(1, #Table), math.random(1, 999)))] = Value;
- end;
- return Results;
- end;
- function Request(Contents)
- if Contents.Method == "POST" then
- return game:HttpPost(Contents.Url, HttpService:JSONEncode(Contents.Body), HttpService:JSONEncode(Contents.Headers));
- end;
- end;
- function Say(String)
- if Or(RemoveExtraSpaces(String), {"", " "}) == false then
- if ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") then
- ReplicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest:FireServer(String, "All");
- else
- TextChatService.TextChannels.RBXGeneral:SendAsync(String);
- end;
- end;
- end;
- function Animate(Parent, Time, Style, Direction, Animation) --! REMOVE FROM PATHFIND
- game:GetService("TweenService"):Create(Parent, TweenInfo.new(Time, Style, Direction, 0, false, 0), Animation):Play();
- end;
- function CreateTempPart(Properties)
- local Part = Instance.new("Part", workspace.Camera);
- Part.Name = Token("##############################", "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
- Part.Size = Vector3.new(1, 1, 1);
- Part.Anchored = true;
- Part.CanCollide = false;
- Part.Transparency = 0.5;
- if Properties ~= nil then
- for Property, Value in pairs(Properties) do
- Part[Property] = Value;
- end;
- end;
- return Part;
- end;
- function GetUserShortenedName(String)
- for Index = 1, 2 do
- for Int2, User in pairs(Players:GetPlayers()) do
- local Results = StringFind(string.lower(User[Index == 1 and "Name" or "DisplayName"]), string.lower(String));
- if Results and #Results > 0 then
- return User;
- end;
- end;
- end;
- return nil;
- end;
- function GetUserBy(String)
- local Shortened = GetUserShortenedName(String);
- if not Shortened then
- for Int, Player in pairs(Players:GetPlayers()) do
- if typeof(tonumber(String)) == "number" then
- if Player.UserId == tonumber(String) then
- return Player;
- end;
- end;
- end;
- else
- return Shortened;
- end;
- return;
- end;
- function GetPlayerPart(User, Part, WaitForPart, WaitForRespawn)
- if User ~= nil and User.Character ~= nil then
- if User.Character:FindFirstChild("Humanoid") ~= nil and User.Character.Humanoid.Health <= 0 then
- if WaitForRespawn == true then
- while User.Character.Humanoid.Health <= 0 do
- task.wait();
- end;
- end;
- end;
- if WaitForPart == true then
- if User.Character == nil or User.Character:FindFirstChild(Part) == nil then
- while task.wait() do
- if User.Character ~= nil then
- if User.Character:FindFirstChild(Part) ~= nil then
- break;
- end;
- end;
- end;
- end;
- end;
- if User.Character ~= nil and User.Character:FindFirstChild(Part) ~= nil then
- return User.Character:FindFirstChild(Part);
- end;
- return nil;
- end;
- end;
- function GetClosestUser(originUser, list)
- local lowest = math.huge
- local closest = nil
- local players = list or Players:GetPlayers()
- local originRoot = GetPlayerPart(originUser, "HumanoidRootPart", false, false)
- if not originRoot then return nil end
- for _, otherUser in pairs(players) do
- if otherUser ~= originUser then
- local otherRoot = GetPlayerPart(otherUser, "HumanoidRootPart", false, false)
- if otherRoot then
- local distance = (originRoot.Position - otherRoot.Position).Magnitude
- if distance < lowest then
- lowest = distance
- closest = otherUser
- end
- end
- end
- end
- return closest
- end
- function GetUsersExcludingBots()
- local Results = {};
- for Int, User in pairs(Players:GetPlayers()) do
- local Found, Value = TableFind(GetOnlineBots(false), User, "Value");
- if Found == false then
- table.insert(Results, User);
- end;
- end;
- return Results;
- end;
- function GetRandomUser()
- local User = nil;
- local Tries = 0;
- while true do
- if Tries == #Players:GetPlayers() then
- break;
- end;
- User = Players:GetPlayers()[math.random(1, #Players:GetPlayers())];
- if table.find(GetOnlineBots(false), User.Name) == nil then
- break;
- end;
- Tries += 1;
- end;
- return User;
- end;
- function FixSelectedUser(SelectedUser, User)
- if SelectedUser ~= nil then
- return (string.lower(SelectedUser) == "me" and User)
- or (string.lower(SelectedUser) == "c" and GetClosestUser())
- or (string.lower(SelectedUser) == "r" and GetUsersExcludingBots()[math.random(1, #GetUsersExcludingBots())])
- or GetUserBy(SelectedUser);
- end;
- return nil;
- end;
- function GetOnlineBots(Ordered) --! !not working with 1 bot?
- local BotsList = {}; --! dont think works
- if Ordered == false then
- for _, User in pairs(Players:GetPlayers()) do
- if typeof(tonumber(table.find(shared["raider/dictionary"]["config/dictionary"]["setup/alts"], User.UserId))) == "number" then
- table.insert(BotsList, User);
- end;
- end;
- elseif Ordered == true then
- for _, UserId in pairs(shared["raider/dictionary"]["config/dictionary"]["setup/alts"]) do
- local User = Players:GetPlayerByUserId(UserId);
- if User ~= nil then
- table.insert(BotsList, User);
- end;
- end;
- end;
- return BotsList;
- end;
- function IsBot(SelectedBot, User)
- for _, Value in pairs(GetArgumentStacking(SelectedBot)) do
- local BotIdentity = (typeof(tonumber(Value)) == "number" and tonumber(Value) == BotNumber)
- or (string.lower(Value) == "all")
- or (string.lower(Value) == "c" and GetClosestUser(User, GetOnlineBots(false)).Name == Bot.Name)
- or (string.lower(Value) == string.lower(Bot.Name));
- if BotIdentity == true then
- return BotIdentity or string.lower(Value);
- end;
- end;
- end;
- function GetBotOrder()
- for Index, User in pairs(GetOnlineBots(true)) do
- if table.find(shared["raider/dictionary"]["config/dictionary"]["setup/alts"], User.UserId) == BotNumber then
- return Index;
- end;
- end;
- return 0;
- end;
- function HasPermission(UserId, RequiredLevel)
- local Found, Level = TableFind(shared["raider/dictionary"]["config/dictionary"]["setup/whitelisted"], UserId, "Int");
- local UserLevel = Found == true and Level or shared["raider/dictionary"]["config/dictionary"]["setup/whitelisted"].Everyone;
- --! check if Level is > group level then set to group level
- for GroupId, Ranks in pairs(shared["raider/dictionary"]["config/dictionary"]["setup/whitelisted/groups"]) do
- local UserRank = Players:GetPlayerByUserId(UserId):GetRoleInGroup(GroupId);
- if UserRank ~= nil then
- for Rank, Level in pairs(Ranks) do
- UserLevel = UserRank == Rank and Level or UserLevel;
- break;
- end;
- else break end;
- end;
- return (RequiredLevel == "A" and Or(UserLevel, {"A", "B", "C"}))
- or (RequiredLevel == "B" and Or(UserLevel, {"B", "C"}))
- or (RequiredLevel == "C" and UserLevel == "C");
- end;
- function Register(User, Message, CommandAliases)
- for Int1, Command1 in pairs(CommandAliases) do
- if (string.lower(string.sub(Message, 1, #Command1+1)) == Command1..shared["raider/dictionary"]["config/dictionary"]["setup/command/seperator"]) then
- local Found, Level = TableFind((function()
- local Results = {};
- for Command2, Level in pairs(shared["raider/dictionary"]["config/dictionary"]["setup/commands/permissionlevels"]) do
- for Int2, Value in pairs(string.split(string.lower(Command2), "/")) do
- Results[string.lower(Value)] = Level;
- end;
- end;
- return Results;
- end)(), Command1, "Int");
- return Found and HasPermission(User.UserId, Level);
- end;
- end;
- return false;
- end;
- function GetArguments(String, Required)
- local Arguments, Results = {}, {};
- local QuoteCharacter, InQuotes, CombinedArg = "", false, "";
- for Int, Value in pairs(string.split(String, shared["raider/dictionary"]["config/dictionary"]["setup/command/seperator"])) do
- if Or(string.sub(Value, 1, 1), {"\"", "\'"}) then
- InQuotes = true;
- end;
- if InQuotes == true then
- CombinedArg ..= Value..shared["raider/dictionary"]["config/dictionary"]["setup/command/seperator"];
- else
- Arguments[#Arguments+1] = Value;
- end;
- if Or(string.sub(Value, #Value, -1), {"\"", "\'"}) then
- InQuotes = false;
- CombinedArg = string.sub(CombinedArg, #CombinedArg, -1) == shared["raider/dictionary"]["config/dictionary"]["setup/command/seperator"] and string.sub(CombinedArg, 1, #CombinedArg-1) or CombinedArg;
- Arguments[#Arguments+1] = string.sub(CombinedArg, 2, #CombinedArg-1);
- CombinedArg = "";
- end;
- end;
- for Int, Value in pairs(Arguments) do
- if Int > 1 and Int <= Required+1 then
- Results[#Results+1] = Value;
- end;
- end;
- return table.unpack(Results)
- end;
- function GetArgumentStacking(Argument)
- local Results = {};
- local Separator = nil;
- for Int, Value in pairs(shared["raider/dictionary"]["config/dictionary"]["setup/command/stackingseperator"]) do
- if string.find(Argument, Value) ~= nil then
- Separator = Value;
- break;
- end;
- end;
- if Separator ~= nil then
- for Int, Value in pairs(string.split(Argument, Separator)) do
- table.insert(Results, Value);
- end;
- else
- table.insert(Results, Argument);
- end;
- return Results;
- end;
- shared["raider/dictionary"]["config/dictionary"]["general/commands"] = {};
- local Directory = {
- ["Functions"] = {
- ["AddCommand"] = function(Aliases, Description, Arguments)
- shared["raider/dictionary"]["config/dictionary"]["general/commands"][#shared["raider/dictionary"]["config/dictionary"]["general/commands"]+1] = {
- ["Aliases"] = Aliases;
- ["Description"] = Description,
- ["Arguments"] = Arguments,
- };
- end,
- ["Disconnect"] = function(Service)
- if Service ~= nil and Service.Connected == true then
- Service:Disconnect();
- end;
- end,
- },
- ["Utility"] = {
- ["Disabled"] = false,
- ["Services"] = {},
- ["LastMessage"] = "",
- ["DefaultGravity"] = workspace.Gravity;
- ["Frames"] = {["Value"] = 0, ["Start"] = (RunService:IsRunning() and time or os.clock)(), ["Updates"] = {}, ["Iteration"] = 0},
- },
- ["Commands"] = {
- ["Spam"] = {["Running"] = false},
- ["Mock"] = {["User"] = nil},
- ["Sing"] = {["Running"] = false},
- ["Reply"] = {["Running"] = false, ["Answering"] = false, ["ChatDistance"] = 15, ["LastQuestion"] = "", ["History"] = {}},
- ["Advertise"] = {["Running"] = false},
- ["Orbit"] = {["Service"] = nil, ["Part"] = nil, ["Following"] = false, ["Tick"] = tick()},
- ["Spin"] = {["Service"] = nil, ["Thrust"] = nil},
- ["Stack"] = {["Service"] = nil},
- ["Fling"] = {["Running"] = false},
- ["Antifling"] = {["Running"] = false, ["Position"] = nil},
- ["Lookat"] = {["User"] = nil},
- ["Annoy"] = {["Running"] = false, ["Service"] = nil},
- ["Roam"] = {["Running"] = false},
- ["Pathfind"] = {["Running"] = false, ["SessionId"] = Token("##############################", "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")},
- ["Follow"] = {["Service"] = nil},
- ["Server"] = {
- ["RateMyAvatar"] = {
- ["Claimbooth"] = {
- ["Waiting"] = false,
- },
- ["Blacklist"] = {
- ["Looping"] = false,
- },
- },
- },
- ["Dance"] = {["Looping"] = false},
- ["Jump"] = {["Looping"] = false},
- },
- };
- local OnlineBots = #GetOnlineBots(false);
- Players.PlayerAdded:Connect(function()OnlineBots = #GetOnlineBots(false)end);
- Players.PlayerRemoving:Connect(function(User)
- OnlineBots = #GetOnlineBots(false);
- for Int, Value in pairs(Directory.Commands) do
- if Value.User ~= nil and Value.User == User then
- Value.User = nil;
- end;
- end;
- end);
- for _, UserId in shared["raider/dictionary"]["config/dictionary"]["setup/alts"] do
- shared["raider/dictionary"]["config/dictionary"]["setup/whitelisted"][UserId] = "C";
- end;
- function DisableBot()
- shared["raider/dictionary"]["config/dictionary"]["setup/antichatlag"] = false;
- Directory.Utility.Disabled = true;
- Directory.Commands.Spam.Running = false;
- Directory.Commands.Mock.User = nil;
- Directory.Commands.Sing.Running = false;
- Directory.Commands.Reply.Running = false;
- Directory.Commands.Advertise.Running = false;
- Directory.Functions.Disconnect(Directory.Commands.Orbit.Service);
- if Directory.Commands.Orbit.Part ~= nil then
- Directory.Commands.Orbit.Part:Remove();
- end;
- Directory.Functions.Disconnect(Directory.Commands.Stack.Service);
- Directory.Functions.Disconnect(Directory.Commands.Spin.Service);
- if Directory.Commands.Spin.Thrust ~= nil then
- Directory.Commands.Spin.Thrust:Remove();
- end;
- Directory.Commands.Fling.Running = false;
- Directory.Commands.Antifling.Running = false;
- Directory.Commands.Lookat.User = nil;
- Directory.Commands.Annoy.Running = false;
- Directory.Commands.Roam.Running = false;
- Directory.Commands.Pathfind.Running = false;
- Directory.Functions.Disconnect(Directory.Commands.Follow.Service);
- Directory.Commands.Dance.Looping = false;
- Directory.Commands.Jump.Looping = false;
- for Int, Signal in pairs(Directory.Utility.Services) do
- Directory.Functions.Disconnect(Signal);
- end;
- workspace.CurrentCamera.CameraSubject = Bot.Character.Humanoid;
- workspace.Gravity = Directory.Utility.DefaultGravity;
- end;
- function RunFlingChecksOn(User)
- RunService.Heartbeat:Connect(function()
- if Directory.Commands.Antifling.Running == true then
- local RootPart = GetPlayerPart(User, "HumanoidRootPart", false, false);
- if RootPart ~= nil then
- if RootPart.AssemblyAngularVelocity.Magnitude > 50 or RootPart.AssemblyLinearVelocity.Magnitude > 100 then
- for Int, Value in ipairs(User.Character:GetDescendants()) do
- if Value.ClassName == "BasePart" then
- Value.CanCollide = false;
- Value.AssemblyAngularVelocity = Vector3.new(0, 0, 0);
- Value.AssemblyLinearVelocity = Vector3.new(0, 0, 0);
- Value.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0);
- end;
- end;
- RootPart.CanCollide = false;
- RootPart.AssemblyAngularVelocity = Vector3.new(0, 0, 0);
- RootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0);
- RootPart.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0);
- end;
- end;
- end;
- end);
- end;
- --Directory.Functions.AddCommand({"Say"}, "Tell the bots to say something.", {
- -- [1] = {
- -- ["Aliases"] = {"Message"},
- -- ["Expects"] = {"__aliases"},
- -- [1] = {
- -- ["Aliases"] = {"Sequence"},
- -- ["Types"] = {"string", "number"},
- -- [1] = {
- -- ["Aliases"] = {"Delay"},
- -- ["Types"] = {"number"},
- -- },
- -- },
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Script"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- [3] = {
- -- ["Aliases"] = {"Frames", "Fps"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- [4] = {
- -- ["Aliases"] = {"Ping", "Ms"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- [5] = {
- -- ["Aliases"] = {"Whitelist", "Wl"},
- -- ["Expects"] = {"__aliases"},
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- },
- -- },
- -- [6] = {
- -- ["Aliases"] = {"Indentity", "Id"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- [7] = {
- -- ["Aliases"] = {"Bots"},
- -- ["Expects"] = {"__aliases"},
- -- [1] = {
- -- ["Aliases"] = {"Status"},
- -- ["Expects"] = {"Online", "Offline"},
- -- [1] = {
- -- ["Aliases"] = {"Type"},
- -- ["Expects"] = {"Disp", "Id"},
- -- },
- -- },
- -- },
- -- [8] = {
- -- ["Aliases"] = {"Random", "Stuff", "Rs"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- [9] = {
- -- ["Aliases"] = {"Last"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- [10] = {
- -- ["Aliases"] = {"Token"},
- -- ["Expects"] = {"__aliases"},
- -- [1] = {
- -- ["Aliases"] = {"Pattern"},
- -- ["Types"] = {"string"},
- -- [1] = {
- -- ["Aliases"] = {"Array"},
- -- ["Types"] = {"string"},
- -- },
- -- },
- -- },
- -- [11] = {
- -- ["Aliases"] = {"Solve"},
- -- ["Expects"] = {"__aliases"},
- -- [1] = {
- -- ["Aliases"] = {"Equation"},
- -- ["Types"] = {"string"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Spam"}, "Tell the bots to repeatedly say something.", {
- -- [1] = {
- -- ["Aliases"] = {"Message"},
- -- ["Types"] = {"string"},
- -- [1] = {
- -- ["Aliases"] = {"Amount"},
- -- ["Types"] = {"number"},
- -- [1] = {
- -- ["Aliases"] = {"Delay"},
- -- ["Types"] = {"number"},
- -- },
- -- },
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Last"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- [3] = {
- -- ["Aliases"] = {"Frames", "Fps"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- [4] = {
- -- ["Aliases"] = {"Ping", "Ms"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- [5] = {
- -- ["Aliases"] = {"Random", "Stuff", "Rs"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- [6] = {
- -- ["Aliases"] = {"Token"},
- -- ["Expects"] = {"__aliases"},
- -- },
- --});
- --Directory.Functions.AddCommand({"Reply"}, "Chat with ChatGPT.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"Toggle"},
- -- ["Expects"] = {"Yes", "True", "1"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Mock", "Swis", "Repeat"}, "Tell the bots to mock a user.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Sing", "Lyrics"}, "Tell the bots sing a song.", {
- -- [1] = {
- -- ["Aliases"] = {"Song"},
- -- ["Expects"] = (function()
- -- local Table = {};
- -- for Song, Value in pairs(shared["raider/dictionary"]["config/dictionary"]["setup/songlyrics"]) do
- -- table.insert(Table, Song);
- -- end;
- -- return Table;
- -- end)(),
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- --});
- --Directory.Functions.AddCommand({"Freeze"}, "Freeze the bots in place.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Teleport", "Tp"}, "Teleport the bots to a specific player.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Advertise", "Ad"}, "Tell the bots to advertise anything or random strings.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Delay"},
- -- ["Types"] = {"number"},
- -- },
- -- [3] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Line"}, "Line the bots behind a specific player.", {
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- [1] = {
- -- ["Aliases"] = {"PerRow"},
- -- ["Types"] = {"number"},
- -- [1] = {
- -- ["Aliases"] = {"SpacingX"},
- -- ["Types"] = {"number"},
- -- [1] = {
- -- ["Aliases"] = {"SpacingZ"},
- -- ["Types"] = {"number"},
- -- },
- -- },
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Orbit"}, "Tell the bots to orbit a specific player.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- [1] = {
- -- ["Aliases"] = {"Radius"},
- -- ["Types"] = {"number"},
- -- [1] = {
- -- ["Aliases"] = {"Speed"},
- -- ["Types"] = {"number"},
- -- [1] = {
- -- ["Aliases"] = {"SpeedIncreasementValue"},
- -- ["Types"] = {"number"},
- -- },
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Mode"},
- -- ["Expects"] = {"m1"},
- -- [1] = {
- -- ["Aliases"] = {"XIncreasement"},
- -- ["Types"] = {"number"},
- -- [1] = {
- -- ["Aliases"] = {"YIncreasement"},
- -- ["Types"] = {"number"},
- -- [1] = {
- -- ["Aliases"] = {"ZIncreasement"},
- -- ["Types"] = {"number"},
- -- },
- -- },
- -- },
- -- },
- -- },--! m2
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Stay"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- [3] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Spin"}, "Tell the bots to spin with a set speed.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"Speed"},
- -- ["Types"] = {"number"},
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Stack"}, "Stack the bots on a specific player.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- [1] = {
- -- ["Aliases"] = {"Sitting"},
- -- ["Expects"] = {"Yes", "True", "1"},
- -- [1] = {
- -- ["Aliases"] = {"YOffset"}, --!
- -- ["Types"] = {"number"},
- -- [1] = {
- -- ["Aliases"] = {"ZOffset"},
- -- ["Types"] = {"number"},
- -- },
- -- },
- -- },
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Walk"}, "Tell the bots to walk in a direction for a specific amount of studs.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"Direction"},
- -- ["Expects"] = {"F", "Forward", "B", "Backward", "L", "Left", "R", "Right"}, --!
- -- [1] = {
- -- ["Aliases"] = {"Studs"},
- -- ["Types"] = {"numbers"},
- -- },
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Fling"}, "Fling a specific player with the bots.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- [1] = {
- -- ["Aliases"] = {"Mode"},
- -- ["Expects"] = {"R15", "1", "R6", "2"},
- -- [1] = {
- -- ["Aliases"] = {"Time"},
- -- ["Types"] = {"number"},
- -- },
- -- },
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Antifling", "Nofling"}, "Try to stop flings from other exploiters for the bots.", {
- -- [1] = {
- -- ["Aliases"] = {"Toggle"},
- -- ["Expects"] = {"On", "Yes", "True", "1"},
- -- },
- --});
- --Directory.Functions.AddCommand({"Lookat", "Stare"}, "Make the bots look at a specific player.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Annoy"}, "Annoy a specific player with the bots.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- [1] = {
- -- ["Aliases"] = {"Radius"},
- -- ["Types"] = {"number"},
- -- [1] = {
- -- ["Aliases"] = {"Delay"},
- -- ["Types"] = {"number"},
- -- },
- -- },
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Rocket"}, "Rocket the bots into the air and watch them explode.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Roam"}, "Tell the bots to walk around aimlessly.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"RandomJumps"},
- -- ["Expects"] = {"Tp", "Yes", "True", "1"},
- -- [1] = {
- -- ["Aliases"] = {"MoveSize"},
- -- ["Types"] = {"number"},
- -- [1] = {
- -- ["Aliases"] = {"MinMoveWait"},
- -- ["Types"] = {"number"},
- -- [1] = {
- -- ["Aliases"] = {"MaxMoveWait"},
- -- ["Types"] = {"number"},
- -- },
- -- },
- -- },
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Pathfind", "Path", "Goto"}, "Find a player with pathfind.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- [1] = {
- -- ["Aliases"] = {"Spacing"},
- -- ["Types"] = {"number"},
- -- },
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Follow"}, "Tell the bots to follow a specific player.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- [1] = {
- -- ["Aliases"] = {"MinFollowDistance"},
- -- ["Types"] = {"number"},
- -- [1] = {
- -- ["Aliases"] = {"SnakeMode"},
- -- ["Expects"] = {"Yes", "True", "1"},
- -- },
- -- },
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- --});
- --if game.PlaceId == 118049678120741 then
- -- Directory.Functions.AddCommand({"Server", "S"}, "This command is only available for certain games/servers.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"Claimbooth", "Claim", "Cb"},
- -- ["Expects"] = {"__aliases"},
- -- [1] = {
- -- ["Aliases"] = {"Message"},
- -- ["Types"] = {"string"},
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Abandombooth", "Abondon", "Ab"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- [3] = {
- -- ["Aliases"] = {"Teleport", "Tp"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- [4] = {
- -- ["Aliases"] = {"Blacklist", "Bl"},
- -- ["Expects"] = {"__aliases"},
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- [1] = {
- -- ["Aliases"] = {"PlayerJoinedAutoBlacklist"},
- -- ["Expects"] = {"Auto", "Loop"},
- -- [1] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- -- },
- -- },
- -- [5] = {
- -- ["Aliases"] = {"Whitelist", "Wl"},
- -- ["Expects"] = {"__aliases"},
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- },
- -- },
- -- [6] = {
- -- ["Aliases"] = {"Change", "Update", "U"},
- -- ["Types"] = {"string"},
- -- },
- -- [7] = {
- -- ["Aliases"] = {"Rate", "R"},
- -- ["Expects"] = {"__aliases"},
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- [1] = {
- -- ["Aliases"] = {"Rating"},
- -- ["Types"] = {"number"},
- -- },
- -- },
- -- },
- -- },
- -- });
- --end;
- --Directory.Functions.AddCommand({"Speed"}, "Sets the speed of the bots.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {""},
- -- ["Types"] = {"number"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Jump"}, "Tells the bots to jump.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"Power"},
- -- ["Types"] = {"number"},
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Auto"},
- -- ["Expects"] = {"__aliases"}, --?
- -- },
- -- [3] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Sit"}, "Tells the bots to sit.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- },
- --});
- --Directory.Functions.AddCommand({"Autorotate", "Ar"}, "Enables or disables auto-rotation for the bots.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"Toggle"},
- -- ["Expects"] = {"Off", "No", "False", "0"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Emote", "e"}, "Makes the bots do a specific emote.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"Emote"},
- -- ["Expects"] = {"Random", "Cheer", "Laugh", "Point", "Wave"},
- -- [1] = {
- -- ["Aliases"] = {"Loop"},
- -- ["Expects"] = {"Yes", "True", "1"},
- -- },
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Dance"}, "Makes the bots do a specific dance.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"Dance"},
- -- ["Expects"] = {"Random", "Dance1", "Dance2", "Dance3"},
- -- [1] = {
- -- ["Aliases"] = {"Loop"},
- -- ["Expects"] = {"Yes", "True", "1"},
- -- },
- -- },
- -- [2] = {
- -- ["Aliases"] = {"Stop"},
- -- ["Expects"] = {"__aliases"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Whitelist", "Wl"}, "Sets the whitelist level of a specific player.", {
- -- [1] = {
- -- ["Aliases"] = {"User"},
- -- ["Types"] = {"player"},
- -- [1] = {
- -- ["Aliases"] = {"Level"},
- -- ["Expects"] = {"A", "B", "C", "D"}, --! d?
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Render"}, "Enables or disables 3D rendering and all gui elements on the clients/bots side.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- [1] = {
- -- ["Aliases"] = {"Toggle"},
- -- ["Expects"] = {"Off", "No", "False", "0"},
- -- },
- -- },
- --});
- --Directory.Functions.AddCommand({"Fpscap", "Capfps", "Setfps"}, "Sets the max fps for all bots.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- },
- --});
- --Directory.Functions.AddCommand({"Reset"}, "Resets the bots.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- },
- --});
- --Directory.Functions.AddCommand({"Reload"}, "Reloads the bots.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- },
- --});
- --Directory.Functions.AddCommand({"Disable"}, "Disables the bots.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- },
- --});
- --Directory.Functions.AddCommand({"Rejoin"}, "Makes the bots rejoin.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- },
- --});
- --Directory.Functions.AddCommand({"Leave"}, "Makes the bots leave.", {
- -- [1] = {
- -- ["Aliases"] = {"Bot"},
- -- ["Types"] = {"bot"},
- -- },
- --});
- --[[ Commands
- server:all
- [! L1389, WHEN USING AUTO BLACKLIST ALL AND USING WHITELIST IT WILL JUST BLACKLIST THE WHITELISTED PLAYER AGAIN, USE A TABLE !
- say:bots:[bot]:info OR say:info
- ]]--
- shared["raider/dictionary"]["config/dictionary"]["general/sessionid"] = Token("##############################", "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
- --! DONT NEED ^
- Directory.Utility.Services[#Directory.Utility.Services+1] = RunService.Heartbeat:Connect(function()
- Directory.Utility.Frames.Iteration = (RunService:IsRunning() and time or os.clock)();
- for Index = #Directory.Utility.Frames.Updates, 1, -1 do
- Directory.Utility.Frames.Updates[Index+1] = Directory.Utility.Frames.Updates[Index] >= Directory.Utility.Frames.Iteration-1 and Directory.Utility.Frames.Updates[Index] or nil;
- end;
- Directory.Utility.Frames.Updates[1] = Directory.Utility.Frames.Iteration;
- Directory.Utility.Frames.Value = tostring(math.floor((RunService:IsRunning() and time or os.clock)()-Directory.Utility.Frames.Start >= 1 and #Directory.Utility.Frames.Updates or #Directory.Utility.Frames.Updates/((RunService:IsRunning() and time or os.clock)()-Directory.Utility.Frames.Start)));
- end); --! check if fps is <= 15 (maxfps); if so then say the fps is at max fps
- Bot.Idled:Connect(function()
- game:GetService("VirtualUser"):CaptureController();
- game:GetService("VirtualUser"):ClickButton2(Vector2.new());
- end);
- function Run(User, Message)
- if Register(User, Message, {"say"}) then
- local String, Arg1, Arg2 = GetArguments(Message, 3);
- if String ~= nil then
- String = (function()
- if string.lower(String) == "last" then
- return Directory.Utility.LastMessage
- elseif string.lower(String) == "frames" or string.lower(String) == "fps" then
- return Form("Raider-%s's fps is %.2f", tostring(BotNumber), Directory.Utility.Frames.Value)
- elseif string.lower(String) == "ping" or string.lower(String) == "ms" then
- return Form("Raider-%s's ping is %.2f", tostring(BotNumber), math.ceil(game:GetService("Stats").Network.ServerStatsItem["Data Ping"]:GetValue()))
- elseif string.lower(String) == "identity" or string.lower(String) == "id" then
- return Form("Raider-%s \"%s\"", tostring(BotNumber), Bot.Name)
- elseif string.lower(String) == "random" or string.lower(String) == "stuff" or string.lower(String) == "rs" then
- local randomSentences = shared["raider/dictionary"]["config/dictionary"]["setup/randomsentences"]
- return randomSentences[math.random(1, #randomSentences)]
- elseif string.lower(String) == "whitelist" or string.lower(String) == "wl" then
- if Arg1 ~= nil then
- local displayName = FixSelectedUser(Arg1, User).DisplayName
- local whitelisted = shared["raider/dictionary"]["config/dictionary"]["setup/whitelisted"][FixSelectedUser(Arg1, User).UserId] or shared["raider/dictionary"]["config/dictionary"]["setup/whitelisted"].Everyone
- return Form("Whitelist level of \"%s\" is \"%s\"", displayName, whitelisted)
- end
- elseif string.lower(String) == "token" then
- return TryToken(Arg1 or "################################", Arg2 or "abcdefghijklmnopqrstuvwxyz")
- elseif string.lower(String) == "bots" then
- if string.lower(Arg1) == "online" then
- local onlineBots = GetOnlineBots(true)
- local v0 = ""
- for v1, v2 in pairs(onlineBots) do
- v0 ..= ((Arg2 ~= nil) and (string.lower(Arg2) == "id") and table.find(shared["raider/dictionary"]["config/dictionary"]["setup/alts"], v2.UserId or ((string.lower(Arg2) == "disp") and v2.DisplayName))) or (v2.Name .. ", ")
- end
- delay(0.5, function()
- Say(string.sub(v0, 0, #v0 - 2))
- end)
- elseif string.lower(String) == "offline" then
- local v0 = {}
- local v1 = ""
- for v2, v3 in pairs(shared["raider/dictionary"]["config/dictionary"]["setup/alts"]) do
- if GetUserBy(v3) == nil then
- table.insert(v0, v3)
- end
- end
- for v4, v5 in pairs(v0) do
- v1 ..= Form("%s, ", ((Arg2 ~= nil) and (string.lower(Arg2) == "id") and table.find(shared["raider/dictionary"]["config/dictionary"]["setup/alts"], v5)) or v5)
- end
- delay(0.5, function()
- Say(string.sub(v1, 0, #v1 - 2))
- end)
- end
- elseif string.lower(String) == "lyric" then
- return shared["raider/dictionary"]["config/dictionary"]["setup/songlyrics"][Arg1][tonumber(Arg2)].Lyric
- elseif string.lower(String) == "solve" then
- if Arg1 ~= nil then
- return tostring(loadstring("return " .. Arg1)())
- end
- end
- return String
- end)();
- if Arg1 ~= nil and Or(string.lower(Arg1), {"yes", "true", "1"}) then
- task.wait(GetBotOrder()-1/10*((Arg2 ~= nil and typeof(tonumber(Arg2)) == "number" and tonumber(Arg2)) or 0.2));
- end;
- if typeof(String) == "string" and Or(string.lower(String), {"cmds", "cmd", "commands", "command"}) then
- --! closest bot says cmd
- local Commands = "";
- local function FormatArray(Types, IncludeQuotes)
- local Results = "{ ";
- for Int, Type in pairs(Types) do
- Results ..= (IncludeQuotes == true and "\"" or "")..Type..(IncludeQuotes == true and "\", " or ", ");
- end;
- return string.sub(Results, 0, #Results-2).." }";
- end;
- if Arg1 == nil then
- --! after 5 lines let another bot say the other 5 lines (for OnlineBots & GetBotOrder()*Line?)
- --! if not enough bots then the chat will have cooldown, (then print?)
- --! split message by \n and let bot say
- for Int1 = 1, #shared["raider/dictionary"]["config/dictionary"]["general/commands"], 1 do
- local Command = shared["raider/dictionary"]["config/dictionary"]["general/commands"][Int1];
- Commands ..= Form("%s\n %s\n", table.concat(Command.Aliases, ", "), Form("\"%s\"", Command.Description));
- for Int2, Value in pairs(Command.Arguments) do
- if Int2 == 4 then
- Commands ..= " ...\n";
- break;
- end;
- Commands ..= Form(" %s%s\n", table.concat(Value.Aliases, ", "), (Value.Expects ~= nil and Value.Expects[1] == "__aliases") and " : "..FormatArray(Value.Aliases, true) or " : "..FormatArray((Value.Types ~= nil and Value.Types or Value.Expects), Value.Types == nil));
- end;
- end;
- print("\n"..Commands);
- else --! lookat all closest doesnt work
- for Int1 = 1, #shared["raider/dictionary"]["config/dictionary"]["general/commands"], 1 do
- local Found = TableFind(string.split(string.lower(table.concat(shared["raider/dictionary"]["config/dictionary"]["general/commands"][Int1].Aliases, "/")), "/"), Arg1, "Value");
- if Found == true then
- print("found comand");
- local Command = shared["raider/dictionary"]["config/dictionary"]["general/commands"][Int1];
- local Tabs = 0;
- Commands = Form("%s\n %s\n", table.concat(Command.Aliases, ", "), Form("\"%s\"", Command.Description));
- local Loop = nil Loop = function(Table)
- Tabs += 1;
- for Int, Value in pairs(Table) do -- table.concat = nil;
- Commands ..= Form("%s%s%s\n", table.concat(table.create(Tabs, " ")), table.concat(Value.Aliases, ", "), " : "..FormatArray((Value.Types ~= nil and Value.Types or Value.Expects), Value.Types == nil));
- if typeof(tonumber(Int)) == "number" then
- Loop(Value);
- Tabs -= 1;
- end;
- end;
- end;
- Loop(Command.Arguments);
- print("\n"..Commands);
- break;
- end;
- end;
- end;
- else
- if typeof(String) == "function" then
- String();
- else
- Say(String);
- end;
- end;
- end;
- elseif Register(User, Message, {"spam"}) then
- local String, Messages, TimeForEachMsg = GetArguments(Message, 3);
- Directory.Commands.Spam.Running = not (string.lower(String) == "stop"); --? redo this
- if string.lower(String) ~= "stop" then
- for Int = 1, (typeof(tonumber(Messages)) == "number" and tonumber(Messages)) or 5, 1 do
- if Directory.Commands.Spam.Running == false then break end;
- Say((string.lower(String) == "last" and Directory.Utility.LastMessage) or
- ((string.lower(String) == "frames" or string.lower(String) == "fps") and "Fps: "..tostring(Directory.Utility.Frames.Value)) or
- ((string.lower(String) == "ping" or string.lower(String) == "ms") and "Ping: "..tostring(math.ceil(game:GetService("Stats").Network.ServerStatsItem["Data Ping"]:GetValue()))) or
- ((string.lower(String) == "random" or string.lower(String) == "rs") and shared["raider/dictionary"]["config/dictionary"]["setup/randomsentences"][math.random(1, #shared["raider/dictionary"]["config/dictionary"]["setup/randomsentences"])]) or
- (string.lower(String) == "token" and TryToken("################################", "abcdefghijklmnopqrstuvwxyz")) or String);
- task.wait((typeof(tonumber(TimeForEachMsg)) == "number" and tonumber(TimeForEachMsg)) or 0.5);
- end;
- end;
- elseif Register(User, Message, {"mock", "swis", "repeat"}) then --! ! stopping doesnt work
- local SelectedBot, SelectedUser = GetArguments(Message, 2)
- local lower = SelectedUser and string.lower(SelectedUser)
- if lower == "stop" then
- Directory.Commands.Mock.User = nil
- elseif lower == "all" then
- Directory.Commands.Mock.User = "all"
- else
- SelectedUser = FixSelectedUser(SelectedUser, User)
- if SelectedUser and SelectedUser.Character then
- if IsBot(SelectedBot, User) and typeof(SelectedUser) == "Instance" then
- Directory.Commands.Mock.User = SelectedUser
- end
- end
- end
- elseif Register(User, Message, {"sing", "lyrics"}) then
- local Lyric = GetArguments(Message, 1);
- Directory.Commands.Sing.Running = not (string.lower(Lyric) == "stop");
- if typeof(shared["raider/dictionary"]["config/dictionary"]["setup/songlyrics"][Lyric]) == "table" then
- local Stopped = false;
- for Int = 1, #shared["raider/dictionary"]["config/dictionary"]["setup/songlyrics"][Lyric], 1 do
- coroutine.resume(coroutine.create(function()
- task.wait(shared["raider/dictionary"]["config/dictionary"]["setup/songlyrics"][Lyric][Int].task.wait);
- if Directory.Commands.Sing.Running == true and Stopped == false then
- Say(shared["raider/dictionary"]["config/dictionary"]["setup/songlyrics"][Lyric][Int].Lyric);
- if #shared["raider/dictionary"]["config/dictionary"]["setup/songlyrics"][Lyric] == Int then
- Directory.Commands.Sing.Running = false;
- end;
- else
- Stopped = true;
- end;
- end));
- end;
- end;
- elseif Register(User, Message, {"reply", "chatbot"}) then
- local SelectedBot, Toggle, ChatDistance = GetArguments(Message, 3);
- if IsBot(SelectedBot, User) then
- Say(Or(string.lower(Toggle), {"yes", "true", "1"}) and Directory.Commands.Reply.Running == false and "You can now chat with me." or "Chatting is now disabled.");
- Directory.Commands.Reply.Running = Or(string.lower(Toggle), {"yes", "true", "1"});
- Directory.Commands.Reply.ChatDistance = (typeof(tonumber(ChatDistance)) == "number" and (tonumber(ChatDistance) > 0 and tonumber(ChatDistance))) or 15;
- end;
- elseif Register(User, Message, {"freeze"}) then --! add perm level
- local SelectedBot, Arg2 = GetArguments(Message, 2);
- Bot.Character.HumanoidRootPart.Anchored = IsBot(SelectedBot, User) and string.lower(Arg2) ~= "stop";
- elseif Register(User, Message, {"teleport", "tp"}) then
- local SelectedBot, SelectedUser = GetArguments(Message, 2);
- SelectedUser = FixSelectedUser(SelectedUser, User);
- if IsBot(SelectedBot, User) then
- if SelectedUser ~= nil and SelectedUser.Character ~= nil then
- if SelectedUser.Character and SelectedUser.Character:FindFirstChild("HumanoidRootPart") then
- Bot.Character.HumanoidRootPart.CFrame = SelectedUser.Character.HumanoidRootPart.CFrame;
- end;
- end;
- end;
- elseif Register(User, Message, {"advertise", "ad"}) then
- local SelectedBot, SelectedUser, String = GetArguments(Message, 3);
- if IsBot(SelectedBot, User) then
- if SelectedUser ~= nil and string.lower(SelectedUser) == "stop" then
- Directory.Commands.Advertise.Running = false;
- else
- Directory.Commands.Advertise.Running = false;
- SelectedUser = FixSelectedUser(SelectedUser, User);
- task.wait(0.1);
- Directory.Commands.Advertise.Running = true;
- if SelectedUser == nil or SelectedUser.Character == nil then
- coroutine.resume(coroutine.create(function()
- while Directory.Commands.Advertise.Running == true do
- for Int, User in pairs(RandomizeTable(GetUsersExcludingBots())) do
- if Directory.Commands.Advertise.Running ~= true then break end;
- local Signal = nil Signal = RunService.Heartbeat:Connect(function()
- if (Bot.Character ~= nil and Bot.Character:FindFirstChild("HumanoidRootPart") ~= nil) and (User.Character ~= nil and User.Character:FindFirstChild("HumanoidRootPart") ~= nil) then
- Bot.Character.HumanoidRootPart.CFrame = User.Character.HumanoidRootPart.CFrame;
- end;
- if Directory.Commands.Advertise.Running ~= true then
- Directory.Functions.Disconnect(Signal);
- end;
- end);
- task.wait(0.1);
- Say(String == nil and Form(shared["raider/dictionary"]["config/dictionary"]["setup/adspamlines"][math.random(1, #shared["raider/dictionary"]["config/dictionary"]["setup/adspamlines"])], User.DisplayName) or String);
- task.wait((SelectedUser ~= nil and tonumber(SelectedUser)) or 1.9);
- Directory.Functions.Disconnect(Signal);
- end;
- RunService.Heartbeat:Wait();
- end;
- end));
- else
- local Signal = nil;
- Signal = RunService.Heartbeat:Connect(function()
- if Directory.Commands.Advertise.Running == false then Directory.Functions.Disconnect(Signal)end;
- if (Bot.Character ~= nil and Bot.Character:FindFirstChild("HumanoidRootPart") ~= nil) and (SelectedUser.Character ~= nil and SelectedUser.Character:FindFirstChild("HumanoidRootPart") ~= nil) then
- Bot.Character.HumanoidRootPart.CFrame = SelectedUser.Character.HumanoidRootPart.CFrame;
- end;
- end);
- end;
- end;
- end;
- elseif Register(User, Message, {"line"}) then
- local SelectedUser, PerRow, SpacingX, SpacingZ = GetArguments(Message, 4);
- SelectedUser = FixSelectedUser(SelectedUser, User);
- PerRow, SpacingX, SpacingZ = PerRow and tonumber(PerRow) or (OnlineBots < 5 and OnlineBots or 5), tonumber(SpacingX) or 4, tonumber(SpacingZ) or 3;
- if SelectedUser ~= nil and SelectedUser.Character ~= nil then
- local LastCFrame = SelectedUser.Character.HumanoidRootPart.CFrame*CFrame.new(-(SpacingX*(PerRow/2))-(SpacingX/2), 0, SpacingZ);
- local MathZ = math.floor((GetBotOrder()+((GetBotOrder()-1)/PerRow))/(PerRow+1)); --? ?
- local MathX = (GetBotOrder()*SpacingX-((MathZ*PerRow)*SpacingX));
- LastCFrame = LastCFrame*CFrame.new(Vector3.new(MathX, 0, MathZ*SpacingZ));
- if Bot.Character == nil or Bot.Character:FindFirstChild("HumanoidRootPart") == nil then
- while true do
- if Bot.Character ~= nil and Bot.Character:FindFirstChild("HumanoidRootPart") ~= nil then
- task.wait(1);
- break;
- end;
- task.wait();
- end;
- end;
- Bot.Character.HumanoidRootPart.CFrame = LastCFrame;
- end;
- elseif Register(User, Message, {"orbit"}) then
- local SelectedBot, SelectedUser, Radius, Arg4, Arg5, Arg6, Arg7 = GetArguments(Message, 7);
- local Speed = 0;
- if IsBot(SelectedBot, User) then
- if SelectedUser ~= nil and string.lower(SelectedUser) == "stop" then
- if Directory.Commands.Orbit.Service ~= nil and Directory.Commands.Orbit.Service.Connected == true then
- Directory.Functions.Disconnect(Directory.Commands.Orbit.Service);
- Directory.Commands.Orbit.Part:Remove();
- workspace.CurrentCamera.CameraSubject = Bot.Character.Humanoid;
- workspace.Gravity = Directory.Utility.DefaultGravity;
- end;
- elseif SelectedUser ~= nil and string.lower(SelectedUser) == "stay" then
- Directory.Commands.Orbit.Following = false;
- else
- SelectedUser = FixSelectedUser(SelectedUser, User);
- if SelectedUser ~= nil and SelectedUser.Character ~= nil then
- if Directory.Commands.Orbit.Service ~= nil and Directory.Commands.Orbit.Service.Connected == true then
- Directory.Functions.Disconnect(Directory.Commands.Orbit.Service);
- Directory.Commands.Orbit.Part:Remove();
- workspace.CurrentCamera.CameraSubject = Bot.Character.Humanoid;
- end;
- task.wait(0.1);
- Directory.Commands.Orbit.Part = CreateTempPart();
- local BodyThrust = nil;
- if Arg4 ~= nil and string.lower(Arg4) == "m1" then
- BodyThrust = Instance.new("BodyThrust", Directory.Commands.Orbit.Part);
- BodyThrust.Force = Vector3.new((tonumber(Arg5) or 1)/1000, (tonumber(Arg6) or 0.5)/1000, (tonumber(Arg7) or 0.4)/1000);
- Directory.Commands.Orbit.Part.Anchored = false;
- end; --> orbit all me 20 m1 5 5 5
- Directory.Commands.Orbit.Following = true;
- Directory.Commands.Orbit.Tick = tick();
- Directory.Commands.Orbit.Service = RunService.Heartbeat:Connect(function(DeltaTime)
- if (SelectedUser.Character ~= nil and SelectedUser.Character:FindFirstChild("HumanoidRootPart") ~= nil) and (Bot.Character ~= nil and Bot.Character:FindFirstChild("Humanoid") ~= nil and Bot.Character:FindFirstChild("HumanoidRootPart") ~= nil) and Directory.Commands.Orbit.Part ~= nil then
- if (Arg4 ~= nil and string.lower(Arg4) == "m1") and BodyThrust ~= nil then
- BodyThrust.Location = Directory.Commands.Orbit.Part.Position;
- else
- Speed += Speed < ((Arg4 ~= nil and typeof(tonumber(Arg4)) == "number" and tonumber(Arg4)) or 60) and 0.1 or 0;
- end;
- if Directory.Commands.Orbit.Following == true then
- if Arg4 ~= nil and (string.lower(Arg4) == "m2") then
- Speed = tonumber(Arg5) or 60;
- -- orbit all me 10 m2 <bot_speed> <part_speed> <part_radius>
- -- orbit all me 10 m1 <speed_x> <speed_y> <speed_z>
- Directory.Commands.Orbit.Part.CFrame = SelectedUser.Character.HumanoidRootPart.CFrame*CFrame.Angles(0, math.rad((tick()-Directory.Commands.Orbit.Tick)*((typeof(tonumber(Arg6)) == "number" and tonumber(Arg6)) or Speed)), 0)*CFrame.new(0, 0, ((typeof(tonumber(Arg7)) == "number" and tonumber(Arg7)) or (tonumber(Radius/2))));
- else
- Directory.Commands.Orbit.Part.Position = SelectedUser.Character.HumanoidRootPart.Position;
- end;
- end;
- workspace.Gravity = 0;
- Bot.Character.Humanoid.Sit = false; --! orbit all stay with m1 goes down
- Bot.Character.HumanoidRootPart.CFrame = Directory.Commands.Orbit.Part.CFrame*CFrame.Angles(0, math.rad((360/(OnlineBots or 1)*GetBotOrder())+((tick()-Directory.Commands.Orbit.Tick)*(typeof(tonumber(Arg5)) == "number" and tonumber(Arg5) or Speed))), 0)*CFrame.new(0, 0, tonumber(Radius) or 10);
- workspace.CurrentCamera.CameraSubject = Directory.Commands.Orbit.Part;
- end;
- end);
- end;
- end;
- end;
- elseif Register(User, Message, {"spin"}) then
- local SelectedBot, Speed = GetArguments(Message, 2);
- if IsBot(SelectedBot, User) then
- Directory.Functions.Disconnect(Directory.Commands.Spin.Service);
- if Directory.Commands.Spin.Thrust ~= nil then
- Directory.Commands.Spin.Thrust:Remove();
- end;
- if Speed == nil or (typeof(tonumber(Speed)) == "number" or string.lower(Speed) ~= "stop") then
- Speed = Speed ~= nil and Speed*10 or 600;
- delay(0.1, function()
- Directory.Commands.Spin.Thrust = Instance.new("BodyThrust", Bot.Character.HumanoidRootPart);
- Directory.Commands.Spin.Thrust.Force = Vector3.new(Speed, 0, 0);
- Directory.Commands.Spin.Thrust.Location = Bot.Character.HumanoidRootPart.Position;
- end);
- Directory.Commands.Spin.Service = RunService.Stepped:Connect(function()
- if Bot.Character ~= nil and Bot.Character:FindFirstChild("Head") ~= nil then
- Bot.Character.Head.CanCollide = false;
- Bot.Character.HumanoidRootPart.CanCollide = false;
- if Bot.Character.Humanoid.RigType == Enum.HumanoidRigType.R15 then
- Bot.Character.UpperTorso.CanCollide = false;
- Bot.Character.LowerTorso.CanCollide = false;
- else
- Bot.Character["Left Leg"].CanCollide = false;
- Bot.Character["Right Leg"].CanCollide = false;
- end;
- end;
- end);
- end;
- end;
- elseif Register(User, Message, {"stack"}) then
- local SelectedBot, SelectedUser, Sitting, ZOffset, YOffset = GetArguments(Message, 5);
- if IsBot(SelectedBot, User) then
- if string.lower(SelectedUser) == "stop" then
- local LastPosition = Bot.Character.HumanoidRootPart.CFrame;
- Directory.Functions.Disconnect(Directory.Commands.Stack.Service);
- task.wait(1);
- Bot.Character.Humanoid.Sit = false;
- Bot.Character.HumanoidRootPart.CFrame = LastPosition;
- workspace.Gravity = Directory.Utility.DefaultGravity;
- else
- SelectedUser = FixSelectedUser(SelectedUser, User);
- if SelectedUser ~= nil and SelectedUser.Character ~= nil then
- Directory.Functions.Disconnect(Directory.Commands.Stack.Service);
- task.wait(0.1);
- Directory.Commands.Stack.Service = RunService.Heartbeat:Connect(function()
- if Bot.Character ~= nil and Bot.Character:FindFirstChild("Humanoid") ~= nil and (SelectedUser.Character ~= nil and SelectedUser.Character:FindFirstChild("HumanoidRootPart") ~= nil) then
- Bot.Character.Humanoid.Sit = Sitting == nil or Or(string.lower(Sitting), {"yes", "true", "1"});
- Bot.Character.HumanoidRootPart.CFrame = ((GetBotOrder() == 1 and SelectedUser.Character.HumanoidRootPart.CFrame) or GetOnlineBots(true)[GetBotOrder()-1].Character.HumanoidRootPart.CFrame)*CFrame.new(0, tonumber(YOffset) or 1.1, tonumber(ZOffset) or 1);
- workspace.Gravity = 0;
- end;
- end);
- end;
- end;
- end;
- elseif Register(User, Message, {"walk"}) then --! change lrfb
- local SelectedBot, Direction, Studs = GetArguments(Message, 3);
- if IsBot(SelectedBot, User) then
- Direction, Studs = string.lower(Direction) or "f", Studs or 10;
- Studs = Or(Direction, {"left", "l", "forward", "f"}) and -Studs or Or(Direction, {"right", "r", "backward", "b"}) and Studs;
- local Part = CreateTempPart{
- ["CFrame"] = Bot.Character.HumanoidRootPart.CFrame*CFrame.new(Vector3.new(Or(Direction, {"left", "l", "right", "r"}) and Studs or 0, 0, Or(Direction, {"forward", "f", "backward", "b"}) and Studs or 0));
- };
- Bot.Character.Humanoid:MoveTo(Part.Position, Part);
- Bot.Character.Humanoid.MoveToFinished:Wait();
- Part:Remove();
- end;
- elseif Register(User, Message, {"fling"}) then
- local SelectedBot, SelectedUser, Method, Time = GetArguments(Message, 4);
- SelectedUser = FixSelectedUser(SelectedUser, User);
- Method, Time = (Method ~= nil and typeof(tonumber(Method)) == "number" and Method) or 2, (Time ~= nil and typeof(tonumber(Time)) == "number" and Time) or 5;
- if IsBot(SelectedBot, User) then
- local OriginalPos = Bot.Character.HumanoidRootPart.CFrame;
- if tonumber(Method) == 1 and Bot.Character.Humanoid.RigType == Enum.HumanoidRigType.R6 then
- local Part = CreateTempPart{
- ["Parent"] = Bot.Character,
- ["Position"] = Bot.Character.Head.Position,
- };
- _G.ReanimationType = "PDeath";
- _G.Velocity = Vector3.new(36, 0, 0);
- _G.FlingBlock = true;
- _G.FlingBlockTransparency = 0;
- _G.HighlightFlingBlock = false;
- _G.FlingBlockPosition = Part.Name;
- xpcall(function()
- loadstring(game:HttpGet("https://raw.githubusercontent.com/GelatekWasTaken/Reanimation.lua/main/Main/Main.lua"))();
- end, warn);
- task.wait(1);
- local Signal = nil;
- Signal = RunService.Heartbeat:Connect(function()
- xpcall(function()
- Bot.Character.Reanimate[Part.Name].Position = SelectedUser.Character.HumanoidRootPart.Position;
- end, warn);
- end);
- delay(tonumber(Time), function()
- Directory.Functions.Disconnect(Signal);
- Bot.Character:Remove();
- GetPlayerPart(Bot, "HumanoidRootPart", true, true).CFrame = OriginalPos;
- end);
- elseif tonumber(Method) == 2 then
- local OriginalPos = Bot.Character.HumanoidRootPart.CFrame;
- local Thrust = Instance.new("BodyThrust", Bot.Character.Humanoid.RigType == Enum.HumanoidRigType.R6 and Bot.Character.Torso or Bot.Character.UpperTorso);
- local Signal = nil;
- Signal = RunService.Heartbeat:Connect(function()
- xpcall(function()
- if Bot.Character.Humanoid.RigType == Enum.HumanoidRigType.R6 then
- Bot.Character.HumanoidRootPart.CFrame = SelectedUser.Character.HumanoidRootPart.CFrame+SelectedUser.Character.HumanoidRootPart.Velocity*game:GetService("Stats").Network.ServerStatsItem["Data Ping"]:GetValue()/150;
- else
- Bot.Character.HumanoidRootPart.CFrame = SelectedUser.Character.HumanoidRootPart.CFrame*CFrame.new(0, 0, 0.3)+SelectedUser.Character.HumanoidRootPart.Velocity*game:GetService("Stats").Network.ServerStatsItem["Data Ping"]:GetValue()/150;
- end;
- Bot.Character.Head.CanCollide = false;
- Bot.Character.HumanoidRootPart.CanCollide = false;
- (Bot.Character.Humanoid.RigType == Enum.HumanoidRigType.R6 and Bot.Character.Torso or Bot.Character.UpperTorso).CanCollide = false;
- Bot.Character.Humanoid.Sit = false;
- end, warn);
- end);
- Thrust.Force = Vector3.new(2100, 0, 0);
- Thrust.Location = Vector3.new(0, 0, 2100);
- delay(tonumber(Time), function()
- Directory.Functions.Disconnect(Signal);
- Bot.Character.Humanoid.Health = 0;
- GetPlayerPart(Bot, "HumanoidRootPart", true, true).CFrame = OriginalPos;
- GetPlayerPart(Bot, "HumanoidRootPart", true, true).Velocity = Vector3.new(0, 0, 0);
- end);
- end;
- end;
- elseif Register(User, Message, {"antifling"}) then
- local Toggle = GetArguments(Message, 1);
- Directory.Commands.Antifling.Running = Or(string.lower(Toggle), {"on", "yes", "true", "1"});
- elseif Register(User, Message, {"rocket"}) then
- local SelectedBot, SelectedUser = GetArguments(Message, 2);
- SelectedUser = FixSelectedUser(SelectedUser, User);
- if IsBot(SelectedBot, User) then
- if SelectedUser ~= nil then
- Bot.Character.HumanoidRootPart.CFrame = SelectedUser.Character.HumanoidRootPart.CFrame;
- end;
- if Directory.Commands.Spin.Thrust ~= nil then
- Directory.Commands.Spin.Thrust:Remove();
- Directory.Commands.Spin.Service:Disconnect();
- end;
- delay(0.1, function()
- Directory.Commands.Spin.Thrust = Instance.new("BodyThrust", Bot.Character.HumanoidRootPart);
- Directory.Commands.Spin.Thrust.Force = Vector3.new(4000, 0, 0);
- Directory.Commands.Spin.Thrust.Location = Bot.Character.HumanoidRootPart.Position;
- end);
- delay(1.1, function()
- Directory.Commands.Spin.Thrust:Remove();
- Bot.Character.Humanoid.Health = 0;
- task.wait(0.2);
- Directory.Commands.Spin.Service:Disconnect();
- task.wait(0.4);
- workspace.Gravity = Directory.Utility.DefaultGravity;
- end);
- Directory.Commands.Spin.Service = RunService.Stepped:Connect(function()
- workspace.Gravity = -(workspace.Gravity*2.2);
- Bot.Character.Humanoid.Jump = true;
- Bot.Character.Head.CanCollide = false;
- Bot.Character.HumanoidRootPart.CanCollide = false;
- if Bot.Character.Humanoid.RigType == Enum.HumanoidRigType.R15 then
- Bot.Character.UpperTorso.CanCollide = false;
- Bot.Character.LowerTorso.CanCollide = false;
- else
- Bot.Character["Left Leg"].CanCollide = false;
- Bot.Character["Right Leg"].CanCollide = false;
- end;
- end);
- end;
- elseif Register(User, Message, {"lookat", "stare"}) then
- if HasPermission(User.UserId, "A") then
- local SelectedBot, SelectedUser = GetArguments(Message, 2);
- if IsBot(SelectedBot, User) then
- local lower = string.lower(SelectedUser)
- if lower == "stop" then
- Directory.Commands.Lookat.User = nil -- or false, your choice
- elseif lower == "c" then
- Directory.Commands.Lookat.User = "c"
- else
- Directory.Commands.Lookat.User = FixSelectedUser(SelectedUser, User) or Directory.Commands.Lookat.User
- end
- end;
- end;
- elseif Register(User, Message, {"annoy"}) then
- local SelectedBot, SelectedUser, Radius, WaitDelay = GetArguments(Message, 4);
- Radius = typeof(tonumber(Radius)) == "number" and Radius or 10;
- WaitDelay = typeof(tonumber(WaitDelay)) == "number" and WaitDelay or 0.1;
- if IsBot(SelectedBot, User) then
- if string.lower(SelectedUser) == "stop" then --! ? == stop?
- Directory.Commands.Annoy.Running = false;
- end;
- SelectedUser = FixSelectedUser(SelectedUser, User);
- if SelectedUser ~= nil and SelectedUser.Character ~= nil then
- Directory.Commands.Annoy.Running = false;
- task.wait(0.1);
- Directory.Commands.Annoy.Running = true;
- Directory.Commands.Annoy.Service = RunService.Stepped:Connect(function()
- workspace.Gravity = 0;
- Bot.Character.Head.CanCollide = false;
- Bot.Character.HumanoidRootPart.CanCollide = false;
- if Bot.Character.Humanoid.RigType == Enum.HumanoidRigType.R15 then
- Bot.Character.UpperTorso.CanCollide = false;
- Bot.Character.LowerTorso.CanCollide = false;
- else
- Bot.Character["Left Leg"].CanCollide = false;
- Bot.Character["Right Leg"].CanCollide = false;
- end;
- end);
- while Directory.Commands.Annoy.Running == true do
- Bot.Character.HumanoidRootPart.CFrame = CFrame.new(SelectedUser.Character.HumanoidRootPart.Position+Vector3.new(math.random(-Radius, Radius), math.random(-Radius, Radius), math.random(-Radius, Radius)), SelectedUser.Character.HumanoidRootPart.Position);
- task.wait(WaitDelay);
- end;
- Directory.Commands.Annoy.Service:Disconnect();
- workspace.Gravity = Directory.Utility.DefaultGravity;
- end;
- end;
- elseif Register(User, Message, {"roam", "npc"}) then
- local SelectedBot, RandomJumps, MoveSize, MoveWaitMin, MoveWaitMax = GetArguments(Message, 5);
- MoveSize, MoveWaitMin, MoveWaitMax = MoveSize or 10, MoveWaitMin or 1, MoveWaitMax or 3;
- if IsBot(SelectedBot, User) then
- if string.lower(RandomJumps) == "stop" then
- Directory.Commands.Roam.Running = false;
- else
- Directory.Commands.Roam.Running = false
- task.wait(0.1);
- Directory.Commands.Roam.Running = true;
- while Directory.Commands.Roam.Running == true do
- task.wait(math.random(tonumber(MoveWaitMin), tonumber(MoveWaitMax)));
- local MovePosX = math.random(1, 3) == 1 and MoveSize or math.random(1, 2) == 1 and -MoveSize or 0;
- local MovePosZ = math.random(1, 3) == 1 and MoveSize or math.random(1, 2) == 1 and -MoveSize or 0;
- if Or(string.lower(RandomJumps), {"yes", "true", "1"}) then
- if math.random(1, 5) == 2 then
- Bot.Character.Humanoid.Jump = true;
- end;
- end;
- if string.lower(RandomJumps) == "tp" then
- Bot.Character.HumanoidRootPart.CFrame *= CFrame.new(Vector3.new(MovePosX, 0, MovePosZ));
- else
- Bot.Character.Humanoid:MoveTo(Bot.Character.HumanoidRootPart.Position+Vector3.new(MovePosX, 0, MovePosZ));
- end;
- end;
- end;
- end;
- elseif Register(User, Message, {"pathfind", "path", "goto"}) then
- local SelectedBot, SelectedUser, Spacing = GetArguments(Message, 3);
- if IsBot(SelectedBot, User) then
- if string.lower(SelectedUser) == "stop" and Directory.Commands.Pathfind.Running == true and workspace.Camera:FindFirstChild(Directory.Commands.Pathfind.SessionId) ~= nil then
- Directory.Commands.Pathfind.Running = false;
- workspace.Camera[Directory.Commands.Pathfind.SessionId]:Remove();
- else
- Directory.Commands.Pathfind.Running = true;
- SelectedUser = FixSelectedUser(SelectedUser, User);
- if SelectedUser ~= nil and SelectedUser.Character ~= nil then
- Spacing = Spacing ~= nil and (typeof(tonumber(Spacing)) == "number" and Spacing) or 3;
- if workspace.Camera:FindFirstChild(Directory.Commands.Pathfind.SessionId) ~= nil then
- workspace.Camera:FindFirstChild(Directory.Commands.Pathfind.SessionId):Remove();
- end;
- local function Create(Position, Parent)
- local Part = CreateTempPart{
- ["CastShadow"] = false,
- ["Color"] = Color3.fromRGB(255, 70, 80),
- ["Material"] = Enum.Material.Neon,
- ["Size"] = Vector3.new(0, 0, 0),
- ["Position"] = Position,
- ["Shape"] = Enum.PartType.Ball,
- };
- local Index = Instance.new("IntValue", Part);
- Index.Name = "Index";
- Index.Value = Parent.Index.Value+1;
- Animate(Part, 0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.Out, {
- Transparency = 0.8,
- Size = Vector3.new(1, 1, 1),
- });
- return Part;
- end;
- local Start = CreateTempPart{
- ["Name"] = Directory.Commands.Pathfind.SessionId,
- ["Color"] = Color3.fromRGB(255, 120, 60),
- ["Material"] = Enum.Material.Neon,
- ["Transparency"] = 0,
- ["Size"] = Vector3.new(1.3, 1.3, 1.3),
- ["Position"] = Bot.Character.HumanoidRootPart.Position,
- ["Shape"] = Enum.PartType.Ball,
- };
- Instance.new("IntValue", Start).Name = "Index";
- local Goal = SelectedUser.Character.HumanoidRootPart;
- local Opened = {Start};
- local Closed = {};
- local OrderedLast = {};
- local Directions = {Vector3.new(1, 0, 0), Vector3.new(-1, 0, 0), Vector3.new(1, 0, 1), Vector3.new(-1, 0, -1), Vector3.new(1, 0, -1), Vector3.new(-1, 0, 1), Vector3.new(0, 0, 1), Vector3.new(0, 0, -1),Vector3.new(1, 1, 0), Vector3.new(-1, -1, 0), Vector3.new(1, 1, 1), Vector3.new(-1, -1, -1), Vector3.new(1, 1, -1), Vector3.new(-1, -1, 1), Vector3.new(0, 1, 1), Vector3.new(0, -1, -1), Vector3.new(0, 1, 0), Vector3.new(0, -1, 0)};
- local function Trace(Final)
- local Current = Final
- local LagTime = 0
- while true do
- LagTime += 1
- if LagTime % 25 == 0 then
- LagTime = 0
- task.wait()
- end
- coroutine.resume(coroutine.create(function()
- local Me = Current
- Animate(Me, 0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out, {
- Transparency = 0,
- Size = Vector3.new(1.4, 1.4, 1.4),
- Position = Me.Position + Vector3.new(0, 0.6, 0),
- })
- task.wait(0.4)
- Animate(Me, 0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut, {
- Color = Color3.fromRGB(80, 255, 155),
- Size = Vector3.new(1, 1, 1),
- Position = Me.Position - Vector3.new(0, 0.6, 0),
- })
- end))
- OrderedLast[#OrderedLast + 1] = Current
- -- Fixed: Check if Current is the Start part before trying to get parent
- if Current == Start then
- break
- end
- Current = Current.Parent
- -- Additional safety check in case Parent is nil
- if not Current or not Current:IsA("BasePart") then
- break
- end
- end
- end
- local Final = nil;
- local LagTime = 0;
- repeat
- LagTime += 1;
- if LagTime%25 == 0 then
- LagTime = 0;
- task.wait();
- end;
- local Lowest = math.huge;
- local Best = {};
- for Int, Node in ipairs(Opened) do
- local Distance = (Node.Position-Goal.Position).Magnitude*Spacing;
- if Node.Index.Value+Distance < Lowest then
- Lowest = Node.Index.Value+Distance;
- Best = {Node, Int};
- end;
- end;
- table.insert(Closed, Best[1]);
- if Best[1] ~= Start then
- Best[1].Color = Color3.fromRGB(230, 230, 230);
- Best[1].Transparency = 0;
- end;
- table.remove(Opened, Best[2]);
- for Int, Vector in ipairs(Directions) do
- local RayPart, RayPosition = workspace:FindPartOnRay(Ray.new(Best[1].Position, Vector*Spacing));
- if RayPart == nil then
- table.insert(Opened, Create(RayPosition, Best[1]));
- end;
- end;
- Final = Best[1];
- until #Opened <= 0 or (Best[1].Position-Goal.Position).Magnitude <= Spacing*1.5;
- Trace(Final);
- for Int, Node in pairs(Start:GetDescendants()) do
- if Node.ClassName == "Part" then
- if Node.Color == Color3.fromRGB(255, 70, 80) then
- Node:Remove();
- end;
- end;
- end;
- task.wait(0.3);
- for Int1 = 0, #OrderedLast, 1 do
- if Directory.Commands.Pathfind.Running == false then break end;
- xpcall(function()
- local Int2 = #OrderedLast-Int1;
- Int2 = OrderedLast[Int2 < 0 and -Int2 or Int2];
- local Int2P = Int2.Position;
- Bot.Character.Humanoid:MoveTo(Int2P, Int2);
- Animate(Int2, 0.5, Enum.EasingStyle.Back, Enum.EasingDirection.Out, {Position = Int2.Position+Vector3.new(0, 0.6, 0)});
- Bot.Character.Humanoid.MoveToFinished:Wait();
- Animate(Int2, 0.4, Enum.EasingStyle.Back, Enum.EasingDirection.In, {Position = Int2P});
- end, function()end);
- end;
- task.wait(1);
- workspace.Camera:FindFirstChild(Directory.Commands.Pathfind.SessionId):Remove();
- Directory.Commands.Pathfind.Running = false;
- end;
- end;
- end;
- elseif Register(User, Message, {"follow"}) then
- local SelectedBot, SelectedUser, MinFollowDistance, Snake = GetArguments(Message, 4);
- if IsBot(SelectedBot, User) then
- if string.lower(SelectedUser) == "stop" then
- Directory.Functions.Disconnect(Directory.Commands.Follow.Service);
- Bot.Character.Humanoid:MoveTo(Bot.Character.HumanoidRootPart.Position, Bot.Character.HumanoidRootPart);
- else
- SelectedUser = FixSelectedUser(SelectedUser, User);
- MinFollowDistance = MinFollowDistance ~= nil and (typeof(tonumber(MinFollowDistance)) == "number" and tonumber(MinFollowDistance)) or 4;
- if SelectedUser ~= nil and SelectedUser.Character ~= nil then
- Directory.Functions.Disconnect(Directory.Commands.Follow.Service);
- local Following = SelectedUser.Character.HumanoidRootPart;
- if Snake ~= nil and Or(string.lower(Snake), {"yes", "true", "1"}) then
- Following = ((GetBotOrder() == 1 and SelectedUser.Character.HumanoidRootPart) or GetOnlineBots(true)[GetBotOrder()-1].Character.HumanoidRootPart);
- end;
- Directory.Commands.Follow.Service = RunService.Heartbeat:Connect(function()
- if GetPlayerPart(SelectedUser, "HumanoidRootPart", false, false) ~= nil and GetPlayerPart(Bot, "HumanoidRootPart", false, false) ~= nil then
- local Distance = (Bot.Character.HumanoidRootPart.Position-Following.Position).Magnitude;
- if Distance > MinFollowDistance then
- Bot.Character.Humanoid:MoveTo(Following.Position, Following);
- Bot.Character.Humanoid:ChangeState(Enum.HumanoidStateType.None);
- elseif Distance > 15+(MinFollowDistance-4) then
- Bot.Character.HumanoidRootPart.CFrame = Following.CFrame;
- end;
- end;
- end);
- end;
- end;
- end;
- elseif Register(User, Message, {"server", "s"}) then
- local SelectedBot, Command, Arg3, Arg4 = GetArguments(Message, 4);
- if IsBot(SelectedBot, User) then
- if Or(game.PlaceId, {112851296174239, 118049678120741}) then
- local function GetMyBooth()
- for _, Booth in pairs(workspace.Booths:GetChildren()) do
- if Booth:GetAttribute("Owner") == Bot.Name then
- return Booth;
- end;
- end;
- return nil;
- end;
- local Booth = GetMyBooth();
- if not Booth and Or(string.lower(Command), {"claimbooth", "claim", "cb"}) then
- if not Directory.Commands.Server.RateMyAvatar.Claimbooth.Waiting then
- if Arg3 and string.lower(Arg3) == "stop" then
- Directory.Commands.Server.RateMyAvatar.Claimbooth.Waiting = false;
- else
- Directory.Commands.Server.RateMyAvatar.Claimbooth.Waiting = true;
- end;
- local SayDelay = 0;
- while task.wait(1) do
- if not Directory.Commands.Server.RateMyAvatar.Claimbooth.Waiting then
- break;
- end;
- SayDelay += 1;
- if SayDelay == 15 then
- Say("Waiting for an unclaimed booth...");
- SayDelay = 0;
- end;
- for _, Booth in pairs(workspace.Booths:GetChildren()) do
- -- Fixed: Check if booth does NOT have an owner (unclaimed)
- if not Booth:GetAttribute("Owner") then
- task.wait(GetBotOrder() - 1);
- Bot.Character.HumanoidRootPart.CFrame = Booth.Carpet.CFrame * CFrame.new(0, 4, 0) * CFrame.Angles(math.rad(-90), 0, 0);
- task.wait(0.2);
- fireclickdetector(Booth.Banner.ClickDetector, 32);
- --workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
- --workspace.CurrentCamera.CFrame = targetPart.CFrame * CFrame.new(0, 5, 10)
- task.wait(0.2);
- Bot.PlayerGui.BoothCustomizer.Visible = false;
- local descText = "envision";
- if Arg3 then
- local lower = string.lower(Arg3);
- if lower == "r" then
- local sentences = shared["raider/dictionary"]["config/dictionary"]["setup/randomsentences"];
- descText = sentences[math.random(1, #sentences)];
- else
- descText = Arg3;
- end;
- end;
- ReplicatedStorage.Remotes.UpdateBooth:FireServer{
- ["desc"] = descText,
- ["image"] = tonumber(string.sub(Booth.Banner.SurfaceGui.Frame.Icon.Image, 13, -1)) or 0,
- ["primaryColor"] = Bot.Character.Torso.Color,
- ["accentColor"] = Color3.fromRGB(27, 42, 53),
- };
- Directory.Commands.Server.RateMyAvatar.Claimbooth.Waiting = false;
- break;
- end;
- end;
- end;
- end;
- elseif Booth and Or(string.lower(Command), {"abandonbooth", "abandon", "ab"}) then
- --ReplicatedStorage.CustomiseBooth:FireServer("Abandon");
- ReplicatedStorage.AbandonBooth:FireServer();
- --elseif Or(string.lower(Command), {"blacklist", "bl", "b"}) then
- -- local SelectedUser = string.lower(Arg3) == "all" and Arg3 or FixSelectedUser(Arg3, User);
- -- if SelectedUser ~= false and SelectedUser == "all" then
- -- if Or(string.lower(Arg4), {"loop", "auto"}) then
- -- Directory.Commands.Server.RateMyAvatar.Blacklist.Looping = true;
- -- elseif string.lower(Arg4) == "stop" then
- -- Directory.Commands.Server.RateMyAvatar.Blacklist.Looping = false;
- -- Directory.Functions.Disconnect(Directory.Utility.Services["BoothBlacklistPlayerAdded"]);
- -- end;
- -- for Int, User in pairs(GetUsersExcludingBots()) do
- -- ReplicatedStorage.CustomiseBooth:FireServer("AddBlacklist", User.Name);
- -- end;
- -- if Directory.Commands.Server.RateMyAvatar.Blacklist.Looping == true then
- -- Directory.Utility.Services["BoothBlacklistPlayerAdded"] = Players.PlayerAdded:Connect(function(User)
- -- delay(1, function()
- -- ReplicatedStorage.CustomiseBooth:FireServer("AddBlacklist", User.Name);
- -- end);
- -- end);
- -- end;
- -- elseif SelectedUser ~= nil and SelectedUser.Character ~= nil then
- -- ReplicatedStorage.CustomiseBooth:FireServer("AddBlacklist", SelectedUser.Name);
- -- end;
- --elseif Or(string.lower(Command), {"whitelist", "wl"}) then
- -- local SelectedUser = string.lower(Arg3) == "all" and Arg3 or FixSelectedUser(Arg3, User);
- -- if SelectedUser ~= false and SelectedUser == "all" then
- -- Directory.Commands.Server.RateMyAvatar.Blacklist.Looping = false;
- -- Directory.Functions.Disconnect(Directory.Utility.Services["BoothBlacklistPlayerAdded"]);
- -- for Int, User in pairs(GetUsersExcludingBots()) do
- -- ReplicatedStorage.CustomiseBooth:FireServer("RemoveBlacklist", User.Name);
- -- end;
- -- elseif SelectedUser ~= nil and SelectedUser.Character ~= nil then
- -- ReplicatedStorage.CustomiseBooth:FireServer("RemoveBlacklist", User.Name);
- -- end;
- --elseif Or(string.lower(Command), {"change", "update", "u"}) then
- -- if GetMyBooth() ~= nil then
- -- ReplicatedStorage.CustomiseBooth:FireServer("Update", {
- -- ["DescriptionText"] = Arg3 == nil and "" or ((string.lower(Arg3) == "random" or string.lower(Arg3) == "stuff" or string.lower(Arg3) == "rs") and shared["raider/dictionary"]["config/dictionary"]["setup/randomsentences"][math.random(1, #shared["raider/dictionary"]["config/dictionary"]["setup/randomsentences"])]) or Arg3,
- -- ["ImageId"] = tonumber(string.sub(GetMyBooth().Banner.SurfaceGui.Frame.Icon.Image, 13, -1)) or 0,
- -- });
- -- end;
- --elseif Or(string.lower(Command), {"block", "b"}) then
- -- ReplicatedStorage.Remotes.BlockedUser:FireServer(Directory.Commands.Server.RateMyAvatar.Blacklist.List)
- --elseif Or(string.lower(Command), {"unblock", "unb"}) then
- -- ReplicatedStorage.Remotes.BlockedUser:FireServer(Directory.Commands.Server.RateMyAvatar.Blacklist.List)
- elseif Booth and Or(string.lower(Command), {"teleport", "tp"}) then
- Bot.Character.HumanoidRootPart.CFrame = Booth.Carpet.CFrame*CFrame.new(Vector3.new(0, 4, 0), Vector3.new(-90, 0, 0));
- --elseif Or(string.lower(Command), {"rate", "r"}) then --! no work
- -- local SelectedUser, Rating = FixSelectedUser(Arg3, User), (Arg4 ~= nil and typeof(tonumber(Arg4)) == "number" and Arg4) or 5;
- -- if SelectedUser ~= nil and SelectedUser.Character ~= nil then
- -- Bot.Character.HumanoidRootPart.CFrame = SelectedUser.Character.HumanoidRootPart.CFrame;
- -- task.wait(0.1);
- -- fireproximityprompt(SelectedUser.Character.HumanoidRootPart.ProximityPrompt, 10);
- -- task.wait(0.1);
- -- ReplicatedStorage.PostRating:FireServer(SelectedUser, Rating);
- -- Say(Form("Rated %s %d stars.", SelectedUser.DisplayName, Rating));
- -- end;
- elseif Booth and Or(string.lower(Command), {"update", "u"}) then
- local descText = "envision";
- if Arg3 then
- local lower = string.lower(Arg3);
- if lower == "r" then
- local sentences = shared["raider/dictionary"]["config/dictionary"]["setup/randomsentences"];
- descText = sentences[math.random(1, #sentences)];
- else
- descText = Arg3;
- end;
- end;
- ReplicatedStorage.Remotes.UpdateBooth:FireServer{
- ["desc"] = descText,
- ["image"] = tonumber(string.sub(Booth.Banner.SurfaceGui.Frame.Icon.Image, 13, -1)) or 0,
- ["primaryColor"] = Bot.Character.Torso.Color,
- ["accentColor"] = Color3.fromRGB(27, 42, 53),
- };
- end;
- end;
- end;
- elseif Register(User, Message, {"speed"}) then
- local SelectedBot, Speed = GetArguments(Message, 2);
- if IsBot(SelectedBot, User) then
- if typeof(tonumber(Speed)) == "number" then
- Bot.Character.Humanoid.WalkSpeed = Speed;
- end;
- end;
- elseif Register(User, Message, {"jump"}) then
- local SelectedBot, Power = GetArguments(Message, 2);
- if IsBot(SelectedBot, User) then
- if Power ~= nil and typeof(tonumber(Power)) == "number" then
- Bot.Character.Humanoid.JumpPower = tonumber(Power);
- elseif Power ~= nil and string.lower(Power) == "auto" then
- Directory.Commands.Jump.Looping = true;
- while Directory.Commands.Jump.Looping == true do
- Bot.Character.Humanoid.Jump = true;
- task.wait();
- end;
- elseif Power ~= nil and string.lower(Power) == "stop" then
- Directory.Commands.Jump.Looping = false;
- else
- Bot.Character.Humanoid.Jump = true;
- end;
- end;
- elseif Register(User, Message, {"sit"}) then
- local SelectedBot = GetArguments(Message, 1);
- if IsBot(SelectedBot, User) then
- Bot.Character.Humanoid.Sit = true;
- end;
- --elseif Register(User, Message, {"autorotate", "ar"}) then --! fix. (shiftlock)
- -- local SelectedBot, Toggle = GetArguments(Message, 2);
- -- Bot.Character.Humanoid.AutoRotate = IsBot(SelectedBot, User) and (not Or(string.lower(Toggle), {"stop", "off", "no", "false", "0"}));
- elseif Register(User, Message, {"emote", "e"}) then
- local SelectedBot, Emote, Looped = GetArguments(Message, 3);
- if IsBot(SelectedBot, User) then
- if string.lower(Emote) == "stop" then
- for Int, Track in pairs(Bot.Character.Humanoid.Animator:GetPlayingAnimationTracks()) do
- Track:Stop(0);
- Track:Destroy();
- end;
- else
- Say(`/e {Emote}`);
- end;
- end;
- elseif Register(User, Message, {"whitelist", "wl"}) then
- local SelectedUser, Level = GetArguments(Message, 2);
- shared["raider/dictionary"]["config/dictionary"]["setup/whitelisted"][string.lower(SelectedUser) == "all" and "Everyone" or GetUserBy(SelectedUser) ~= nil and GetUserBy(SelectedUser).UserId or "null"] = Level;
- elseif Register(User, Message, {"render"}) then
- local Toggle = GetArguments(Message, 1);
- if Toggle ~= nil then
- RunService:Set3dRenderingEnabled(not Or(Toggle, {"off", "no", "false", "0"}));
- if Or(Toggle, {"off", "no", "false", "0"}) == false then
- for Int, Value in pairs(Bot.PlayerGui:GetDescendants()) do
- if Value.ClassName == "ScreenGui" then
- Value:SetAttribute("Enabled", Value.Enabled);
- Value.Enabled = false;
- end;
- end;
- else
- for Int, Value in pairs(Bot.PlayerGui:GetDescendants()) do --! no work?
- if Value.ClassName == "ScreenGui" then
- Value.Enabled = Value:GetAttribute("Enabled");
- Value:SetAttribute("Enabled", nil);
- end;
- end;
- end;
- end;
- elseif Register(User, Message, {"capfps", "fpscap", "setfpscap"}) then
- local SelectedBot, SelectedNumber = GetArguments(Message, 2);
- if IsBot(SelectedBot, User) then
- if SelectedNumber ~= nil and typeof(tonumber(SelectedNumber)) == "number" then
- if setfpscap ~= nil and typeof(setfpscap) == "function" then
- setfpscap(tonumber(SelectedNumber));
- end;
- end;
- end;
- elseif Register(User, Message, {"reset"}) then
- local SelectedBot = GetArguments(Message, 1);
- if IsBot(SelectedBot, User) then
- Bot.Character.Humanoid.Health = 0;
- end;
- elseif Register(User, Message, {"reload"}) then
- local SelectedBot = GetArguments(Message, 1);
- if IsBot(SelectedBot, User) then
- local LastSessionID = shared["raider/dictionary"]["config/dictionary"]["general/sessionid"];
- DisableBot();
- Say("Reloading...");
- for Int = 1, 5, 1 do
- xpcall(function()
- loadstring(game:HttpGet("https://pastebin.com/raw/Y6br7a4J"))();
- end, function()
- Say(Form("Failed to reload. Retrying... (%d/5)", Int));
- end);
- if shared["raider/dictionary"]["config/dictionary"]["general/sessionid"] ~= LastSessionID then
- break;
- end;
- task.wait(1);
- end;
- end;
- elseif Register(User, Message, {"disable"}) then
- local SelectedBot = GetArguments(Message, 1);
- if IsBot(SelectedBot, User) then
- DisableBot();
- Say("Disabled.");
- end;
- elseif Register(User, Message, {"rejoin"}) then
- local SelectedBot = GetArguments(Message, 1);
- if IsBot(SelectedBot, User) then
- game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId, game.JobId, Bot);
- end;
- elseif Register(User, Message, {"leave"}) then
- local SelectedBot = GetArguments(Message, 1);
- if IsBot(SelectedBot, User) then
- game:Shutdown();
- end;
- else
- Directory.Utility.LastMessage = Message;
- if Directory.Commands.Mock.User and (Directory.Commands.Mock.User == User or (typeof(Directory.Commands.Mock.User) == "string" and string.lower(Directory.Commands.Mock.User) == "all")) then
- local Found, Value = TableFind(GetOnlineBots(false), User, "Value");
- if Found == false then
- Say(Message);
- end;
- end;
- --if Directory.Commands.Reply.Running == true then
- -- if (Bot.Character.HumanoidRootPart.Position-User.Character.HumanoidRootPart.Position).Magnitude <= Directory.Commands.Reply.ChatDistance then
- -- local Found, Value = TableFind(GetOnlineBots(false), User.Name, "Value");
- -- if Found == false and Bot ~= User and HasPermission(User.UserId, "A") then
- -- if #Message > 1 and Directory.Commands.Reply.Answering == false then
- -- if string.lower(Directory.Commands.Reply.LastQuestion) ~= string.lower(Message) then
- -- Directory.Commands.Reply.LastQuestion = Message;
- -- Directory.Commands.Reply.Answering = true;
- -- local Request = Request{
- -- ["Url"] = "https://api.openai.com/v1/completions",
- -- ["Method"] = "POST",
- -- ["Headers"] = {
- -- ["Content-Type"] = "application/json",
- -- ["Authorization"] = "Bearer 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",
- -- },
- -- ["Body"] = {
- -- ["model"] = "text-davinci-003",
- -- ["prompt"] = Form("%s\n%s", table.concat(Directory.Commands.Reply.History, "\n"), Message),
- -- ["temperature"] = 0.2,
- -- ["max_tokens"] = 128,
- -- ["top_p"] = 1,
- -- ["frequency_penalty"] = 1,
- -- ["presence_penalty"] = 1,
- -- };
- -- };
- -- if Request.choices == nil or #Request.choices == 0 then
- -- Say("Failed to generate answer.");
- -- else
- -- local Response = RemoveExtraSpaces(Request.choices[1].text);
- -- Response = ({string.gsub(Response, "\n", "")})[1];
- -- table.insert(Directory.Commands.Reply.History, Message);
- -- table.insert(Directory.Commands.Reply.History, Response);
- -- if #Response > 128 then
- -- local LastBreak = 0;
- -- local Parts = {};
- -- for Int = 1, #Response, 1 do
- -- if Int%128 == 0 then
- -- table.insert(Parts, string.sub(Response, LastBreak+1, Int));
- -- LastBreak = Int;
- -- elseif Int == #Response then
- -- table.insert(Parts, string.sub(Response, LastBreak+1, -1)..(Or(string.sub(Response, #Response, -1), {".", "?", "!"}) == false and "." or ""));
- -- end;
- -- end;
- -- for Int, Value in pairs(Parts) do
- -- if IsFiltered(Value) == false then
- -- Say(Value);
- -- task.wait(3);
- -- else
- -- Say("Some parts of the message were filtered.");
- -- break;
- -- end;
- -- end;
- -- else
- -- Say(Response);
- -- end;
- -- delay(0.5, function()
- -- Directory.Commands.Reply.Answering = false;
- -- end);
- -- end;
- -- else
- -- Say("Try and think of something else to ask.");
- -- end;
- -- end;
- -- end;
- -- end;
- --end;
- end;
- end;
- Directory.Utility.Services[#Directory.Utility.Services+1] = RunService.Heartbeat:Connect(function()
- if Directory.Commands.Antifling.Running == true then
- if Bot.Character.HumanoidRootPart.AssemblyLinearVelocity.Magnitude > 250 or Bot.Character.HumanoidRootPart.AssemblyAngularVelocity.Magnitude > 250 then
- Bot.Character.HumanoidRootPart.AssemblyAngularVelocity = Vector3.new(0, 0, 0);
- Bot.Character.HumanoidRootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0);
- Bot.Character.HumanoidRootPart.CFrame = Directory.Commands.Antifling.Position;
- elseif Bot.Character.HumanoidRootPart.AssemblyLinearVelocity.Magnitude < 50 or Bot.Character.HumanoidRootPart.AssemblyAngularVelocity.Magnitude > 50 then
- Directory.Commands.Antifling.Position = Bot.Character.HumanoidRootPart.CFrame;
- end;
- end;
- if Directory.Commands.Lookat.User then
- if Directory.Commands.Lookat.User == "c" then
- local ClosestUser = GetClosestUser();
- if ClosestUser and ClosestUser.Character and ClosestUser.Character:FindFirstChild("HumanoidRootPart") then
- local Pos = ClosestUser.Character.HumanoidRootPart.Position;
- Bot.Character.HumanoidRootPart.CFrame = CFrame.new(Bot.Character.HumanoidRootPart.Position, Vector3.new(Pos.X, Bot.Character.HumanoidRootPart.Position.Y, Pos.Z));
- end;
- elseif GetPlayerPart(Directory.Commands.Lookat.User, "HumanoidRootPart", false, false) ~= nil then
- local Pos = Directory.Commands.Lookat.User.Character.HumanoidRootPart.Position;
- Bot.Character.HumanoidRootPart.CFrame = CFrame.new(Bot.Character.HumanoidRootPart.Position, Vector3.new(Pos.X, Bot.Character.HumanoidRootPart.Position.Y, Pos.Z));
- end;
- end;
- if shared["raider/dictionary"]["config/dictionary"]["setup/antichatlag"] then
- Bot:Chat("/e clear");
- end;
- end);
- for Int, User in pairs(GetUsersExcludingBots()) do
- RunFlingChecksOn(User);
- end;
- Directory.Utility.Services[#Directory.Utility.Services+1] = Players.PlayerAdded:Connect(RunFlingChecksOn);
- for Int, User in pairs(game.Players:GetPlayers()) do
- Directory.Utility.Services[#Directory.Utility.Services+1] = User.Chatted:Connect(function(Message)
- if Directory.Utility.Disabled == false then
- Run(User, Message);
- end;
- end);
- end;
- Directory.Utility.Services[#Directory.Utility.Services+1] = Players.PlayerAdded:Connect(function(User)
- Directory.Utility.Services[#Directory.Utility.Services+1] = User.Chatted:Connect(function(Message)
- if Directory.Utility.Disabled == false then
- Run(User, Message);
- end;
- end);
- end);
- if string.lower(shared["raider/dictionary"]["config/dictionary"]["setup/loaded/responsetype"]) == "say" then
- Say(Form("Raider-%s loaded. (%s/%s)", tostring(BotNumber), tostring(OnlineBots or 1), tostring(#shared["raider/dictionary"]["config/dictionary"]["setup/alts"] or 1)));
- elseif string.lower(shared["raider/dictionary"]["config/dictionary"]["setup/loaded/responsetype"]) == "console" then
- warn("envision/raider: Loaded on client.");
- end;
- Run(Bot, Gsub(shared["raider/dictionary"]["config/dictionary"]["setup/loaded/aftercmd"], {
- ["${id}"] = BotNumber,
- ["${bots}"] = OnlineBots,
- }));
- coroutine.resume(coroutine.create(function()
- xpcall(shared["raider/dictionary"]["config/dictionary"]["setup/loaded/afterfunction"], function(Message)
- warn("envision/raider: Error running \"afterfunction\";");
- warn(Message);
- end);
- end));
Advertisement
Add Comment
Please, Sign In to add comment