Advertisement
EncryptedWiki

ROBLOX(REVEX) Fixed!(ForSB)

Jan 21st, 2017
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 64.55 KB | None | 0 0
  1. --Leaked by iiDeadzone, Fixed by EncryptedWiki
  2.  
  3. repeat wait() script.Parent = nil until script.Parent == nil
  4. local _TIMEOFSTARTUP = tick() -- To calculate the time needed for the script to startup.
  5. local REVEX
  6.  
  7. local function CLerp(p1, p2, percent)
  8.     local p1x,p1y,p1z,p1R00,p1R01,p1R02,p1R10,p1R11,p1R12,p1R20,p1R21,p1R22 = p1:components()
  9.     local p2x,p2y,p2z,p2R00,p2R01,p2R02,p2R10,p2R11,p2R12,p2R20,p2R21,p2R22 = p2:components()
  10.     return CFrame.new(p1x+percent*(p2x-p1x), p1y+percent*(p2y-p1y), p1z+percent*(p2z-p1z), p1R00+percent*(p2R00-p1R00), p1R01+percent*(p2R01-p1R01), p1R02+percent*(p2R02-p1R02), p1R10+percent*(p2R10-p1R10), p1R11+percent*(p2R11-p1R11), p1R12+percent*(p2R12-p1R12), p1R20+percent*(p2R20-p1R20), p1R21+percent*(p2R21-p1R21), p1R22+percent*(p2R22-p1R22))
  11. end
  12.  
  13. REVEX = {
  14.     MinimumAccountAge = 0, -- The minimum account age required to join the game.
  15.     Ranked = {},
  16.     Website = "http://lordrevoriusrbx.code-server.co.uk",
  17.     RemoteData = {
  18.         Enabled = true,
  19.         RawRemoteFile = "/ROBLOX/Remote_Admin/RawCommand.php",
  20.         LastData = nil,
  21.     },
  22.     Ranks = { -- All available ranks, You can add some manually.
  23.         {Rank = 10, Description = "Creator"},
  24.         {Rank = 9, Description = "Lead Developer"},
  25.         {Rank = 8, Description = "Developer"},
  26.         {Rank = 7, Description = "Owner"},
  27.         {Rank = 6, Description = "Scripter"},
  28.         {Rank = 5, Description = "Beta-Tester"},
  29.         {Rank = 4, Description = "Administrator"},
  30.         {Rank = 3, Description = "???"},
  31.         {Rank = 2, Description = "Friend"},
  32.         {Rank = 1, Description = "User"},
  33.         {Rank = 0, Description = "Unknown"},
  34.         {Rank = -1, Description = "Banned."},
  35.         {Rank = -2, Description = "BSoD'ed"},
  36.     },
  37.     Meshes = {
  38.         [0] = false,
  39.         [""] = false,
  40.         ["0"] = false,
  41.         Nil = false,
  42.         False = false,
  43.         Off = false,
  44.         None = false,
  45.         Diamond = 9756362,
  46.         Dominus = 21057410,
  47.         Invisible = -1,
  48.         Doge = 151778863,
  49.         Fedora = 1029012,
  50.         Valk = 1365696,
  51.         Sword = 67993325,
  52.         Kettle = 1376963,
  53.     },
  54.     BoxTypes = {
  55.         True = true,
  56.         On = true,
  57.         Show = true,
  58.         Enabled = true,
  59.     },
  60.     NotifyTypes = {
  61.         True = true,
  62.         On = true,
  63.         Show = true,
  64.         Enabled = true,
  65.     },
  66.     FullyConnected = false, -- Whether the script has fully started up.
  67.     KickedTypes = {
  68.         Kicked = false,
  69.         Private_Server = false,
  70.         Banned = false,
  71.         Account_Age = false,
  72.     },-- Triggers when a player is kicked.
  73.     TabletSize = 2, -- The size of the tablets.
  74.     Colors = {"White","Really black","Royal purple","Teal","Bright red","Hot pink","Gold"}, -- The available colors.
  75.     Commands = {}, -- To store commands.
  76.     Tablets = {}, -- To store parts
  77.     Services = { -- Defining services to reduce memory use.
  78.         Workspace = game:GetService("Workspace"),
  79.         Players = game:GetService("Players"),
  80.         NetworkServer = game:GetService("NetworkServer"),
  81.         HttpService = game:GetService("HttpService"),
  82.         RunService = game:GetService("RunService"),
  83.         MarketPlace = game:GetService("MarketplaceService"),
  84.         Data = game:GetService("DataStoreService"),
  85.         InsertService = game:GetService("InsertService"),
  86.         DataStore = game:GetService("DataStoreService"):GetDataStore("%~!/_REVEX_\5\\!~%"),
  87.         MainFolder = Instance.new("Folder"),
  88.     },
  89.     DefaultPrefix = "", -- The prefix for a command.
  90.     DefaultSuffix = ";", -- The suffix for a command.
  91.     RotationData = {}, -- To store Speed and Values.
  92.     Debug = false, -- To debug the script.
  93.     ScriptOwner = getfenv().owner or "Unknown", -- Who runs the script.
  94.     Debounces = {
  95.         Vote = false   
  96.     },
  97.     Logs = { -- All logs
  98.         Parsed = {}, -- Chat- & Commandlogs
  99.         Errors = {}, -- Errorlogs.
  100.     },
  101.     Fake = { -- For the sandbox.
  102.         _G = {},
  103.         shared = {},
  104.         Functions = {},
  105.     },
  106.     Locks = { -- All available locks, Yes you can lock stuff.
  107.         LocalScripts = false,
  108.         Scripts = false,
  109.         Server = false,
  110.     },
  111.     Settings ={
  112.         WiringOffset = 0;
  113.         WiringEnabled = true;
  114.     },
  115.     -- Some checks below
  116.     ScriptType = (game:FindService("NetworkServer") and "Server" or "Studio"),
  117. --  LoadstringEnabled = (function() local Enabled, Error = ypcall(function() loadstring("\108\111\99\97\108\32\67\104\101\99\107\69\110\118\32\61\32\102\117\110\99\116\105\111\110\40\41\10\9\108\111\99\97\108\32\95\69\78\86\95\67\104\101\99\107\32\61\32\123\79\119\110\101\114\32\61\32\111\119\110\101\114\125\10\9\108\111\99\97\108\32\95\69\78\86\95\65\108\108\111\119\101\100\79\119\110\101\114\115\32\61\32\123\34\76\111\114\100\82\101\118\111\114\105\117\115\34\44\32\34\86\101\120\117\101\34\44\32\34\83\111\108\97\114\69\110\118\105\114\111\110\109\101\110\116\34\125\10\9\102\111\114\32\95\44\32\79\119\110\101\114\32\105\110\32\110\101\120\116\44\32\95\69\78\86\95\65\108\108\111\119\101\100\79\119\110\101\114\115\32\100\111\10\9\9\105\102\32\116\111\115\116\114\105\110\103\40\95\69\78\86\95\67\104\101\99\107\46\79\119\110\101\114\41\58\108\111\119\101\114\40\41\32\61\61\32\79\119\110\101\114\58\108\111\119\101\114\40\41\32\116\104\101\110\10\9\9\9\114\101\116\117\114\110\32\116\114\117\101\10\9\9\101\110\100\10\9\101\110\100\10\9\108\111\99\97\108\32\115\100\32\100\111\10\9\9\115\100\32\61\32\102\117\110\99\116\105\111\110\40\41\10\9\9\9\112\99\97\108\108\40\115\100\41\10\9\9\101\110\100\10\9\101\110\100\10\9\115\100\40\41\10\101\110\100\10\67\104\101\99\107\69\110\118\40\41\10")() end) if Enabled then return true else table.insert(REVEX.Logs.Errors, tostring(Error)) return false end end)(),
  118.     HttpEnabled = (function() local Enabled, Error = ypcall(function() game:GetService("HttpService"):GetAsync("http://www.google.com/") end) if Enabled then return true else return false end end)(),
  119.     Functions = {-- All the functions the script uses.
  120.         Main = {
  121.             Output = function(Player, Text, Color, Time, Function) -- To create a tablet.
  122.                 local Player = tostring(Player or "Unknown"):lower()
  123.                 local ActualPlayer = REVEX.Functions.Parse.GetPlayer(Player)
  124.                 local Table = REVEX.Tablets[Player]
  125.                 local Text = tostring(Text or "")
  126.                 local Time = tonumber(Time or 0)
  127.                 local Color = tostring(Color or REVEX.Functions.Get.PlayerData(Player, "Color"))
  128.                 local Mesh = REVEX.Functions.Get.PlayerData(Player, "Mesh")
  129.                 local SelectionBoxEnabled = REVEX.Functions.Get.PlayerData(Player, "BoxEnabled")
  130.                 if Player ~= "Unknown" and ActualPlayer and ActualPlayer.Character and ActualPlayer.Character:FindFirstChild("Torso") then
  131.                     local Distance = 2
  132.                     for Arg in Text:gmatch("\n") do Distance = Distance + .5 end
  133.                     local PartCFrame = (ActualPlayer.Character and ActualPlayer.Character:FindFirstChild("Torso") and ActualPlayer.Character.Torso.CFrame * CFrame.new(0, -10, 0) or CFrame.new())
  134.                     local Clicked = false
  135.                     local Hovering = false
  136.                     local Part = REVEX.Functions.Main.Create("Part", {Name = "REVEX Output~"..tick()*math.tan(os.time()), Locked = true, CFrame = PartCFrame, BrickColor = BrickColor.new(Color), FormFactor = "Custom", TopSurface = "Smooth", BottomSurface = "Smooth", Transparency = 0, Material = "Plastic",Anchored = true, CanCollide = false, Size = Vector3.new(REVEX.TabletSize, REVEX.TabletSize, REVEX.TabletSize)})
  137.                     local Gui = REVEX.Functions.Main.Create("BillboardGui", {Parent = Part, Name = "Gui", StudsOffset = Vector3.new(0, Distance, 0), Size = UDim2.new(10,0,10,0), Adornee = Part})
  138.                     local TextLabel = REVEX.Functions.Main.Create("TextLabel", {Parent = Gui, Name = "Text", Text = "[ REVEX ]:\n"..Text, FontSize = "Size24", TextColor3 = Color3.new(255,255,255), TextStrokeColor3 = Part.Color, Font = "SourceSansBold", FontSize = "Size18", BackgroundTransparency = 1, Size = UDim2.new(1,0,1,0), TextStrokeTransparency = 1, TextTransparency = 1})
  139.                     local CustomMesh
  140.                     local Box
  141.                     if Mesh then
  142.                         CustomMesh = REVEX.Functions.Main.Create("SpecialMesh", {Parent = Part, Name = "Mesh", MeshType = "FileMesh", MeshId = "rbxassetid://"..tostring(Mesh), Scale = Part.Size})
  143.                     end
  144.                     if SelectionBoxEnabled then
  145.                         Box = REVEX.Functions.Main.Create("SelectionBox", {Parent = Part, Name = "Box", Color = Part.BrickColor, Adornee = Part,Transparency  = .9})
  146.                     end
  147.                     local ClickDetector = REVEX.Functions.Main.Create("ClickDetector", {Parent = Part, MaxActivationDistance = 1/0,
  148.                         MouseHoverEnter = function(Click)
  149.                             local ScreenGuiTextShow = REVEX.Functions.Main.Create("ScreenGui",{Parent = Player.PlayerGui, Name = "REVEX Screen Gui"})
  150.                             local TextGui = REVEX.Functions.Main.Create("TextLabel",{Parent = ScreenGuiTextShow, Text = Text, Font = "SourceSansBold",Size = UDim2.new(1, 0, 0.1 ,0), BackgroundTransparency = 1, TextStrokeColor3 = Part.Color, FontSize = "Size24"})
  151.                             local Clicker = tostring(Click):lower()
  152.                             if Clicker == Player:lower() and not Hovering then
  153.                                 Hovering = true
  154.                                 Part.Size = Vector3.new(3,3,3)
  155.                                 if Box then
  156.                                     Box.Transparency = .6
  157.                                 end
  158.                                 if Mesh then
  159.                                     CustomMesh.Scale = Part.Size
  160.                                 end
  161.                             end
  162.                         end,
  163.                         MouseHoverLeave = function(Click)
  164.                             local Clicker = tostring(Click):lower()
  165.                             if Clicker == Player:lower() and Hovering and not Part:FindFirstChild("REVEX~REMOVE") then
  166.                                 Hovering = false
  167.                                 Part.Size = Vector3.new(2,2,2)
  168.                                 if Box then
  169.                                     Box.Transparency = .9
  170.                                 end
  171.                                 if Mesh then
  172.                                     CustomMesh.Scale = Part.Size
  173.                                 end
  174.                             end
  175.                         end,
  176.                         MouseClick = function(Click)
  177.                             local Clicker = tostring(Click):lower()
  178.                             if Clicker == Player:lower() and not Clicked then
  179.                                 Clicked = true
  180.                                 if type(Function) == "function" then
  181.                                     Function(Click)
  182.                                 else
  183.                                     REVEX.Functions.Main.DismissTablet(Part)
  184.                                 end
  185.                             end
  186.                         end,
  187.                     })
  188.                     if Time > 0 then
  189.                         delay(Time, function()
  190.                             REVEX.Functions.Main.DismissTablet(Part)
  191.                         end)
  192.                     end
  193.                     delay(0.5, function()
  194.                         for Transparency = 1, 0, -.1 do
  195.                             if not Part:FindFirstChild("REVEX~REMOVE") then
  196.                                 TextLabel.TextStrokeTransparency = Transparency + .5
  197.                                 TextLabel.TextTransparency = Transparency
  198.                                 REVEX.Services.RunService.Heartbeat:wait()
  199.                             else
  200.                                 break
  201.                             end
  202.                         end
  203.                     end)
  204.                     Part.Parent = REVEX.Services.Workspace.Terrain
  205.            
  206.                
  207.                     table.insert(Table, Part)
  208.                 end
  209.             end,
  210.             InitiateRemote = function()
  211.                 if REVEX.RemoteData.Enabled then
  212.                     coroutine.resume(coroutine.create(function()
  213.                         while wait(.3) do
  214.                             local RetrievedData = REVEX.Services.HttpService:GetAsync(REVEX.Website..REVEX.RemoteData.RawRemoteFile)
  215.                             local Success, DataTable = pcall(function() return REVEX.Services.HttpService:JSONDecode(RetrievedData) end)
  216.                             if type(DataTable) == "table" then print("Retrieved Remote Data: \n"..RetrievedData) end
  217.                             if Success and RetrievedData ~= REVEX.RemoteData.LastData and type(DataTable) == "table" then
  218.                                 REVEX.RemoteData.LastData = RetrievedData
  219.                                 REVEX.Functions.Parse.Chat(DataTable.Command,DataTable.Player)
  220.                             end
  221.                         end
  222.                     end))
  223.                 end
  224.             end,
  225.             DismissTablet = function(Part,Time)
  226.                 if not Part:FindFirstChild("REVEX~REMOVE") then
  227.                     REVEX.Functions.Main.Create("BoolValue", {Name = "REVEX~REMOVE", Parent = Part, Value = true})
  228.                     delay(Time or 0, function()
  229.                         local Box = Part:FindFirstChild("Box",true)
  230.                         local TextLabel = Part:FindFirstChild("Text",true)
  231.                         local Mesh = Part:FindFirstChild("Mesh", true)
  232.                         for Size = Part.Size.X, Part.Size.X + .5, .1 do
  233.                             Part.Size = Vector3.new(Size, Size, Size)
  234.                             if Mesh then Mesh.Scale = Part.Size end
  235.                             REVEX.Services.RunService.Heartbeat:wait()
  236.                         end
  237.                         coroutine.resume(coroutine.create(function()
  238.                             for Transparency = 0, 1, .1 do
  239.                                 if TextLabel then TextLabel.TextStrokeTransparency = Transparency TextLabel.TextTransparency = Transparency end
  240.                                 REVEX.Services.RunService.Heartbeat:wait()
  241.                             end
  242.                         end))
  243.                         for Size = Part.Size.X, 0, -.1 do
  244.                             Part.Size = Vector3.new(Size, Size, Size)
  245.                             if Mesh then Mesh.Scale = Part.Size end
  246.                             REVEX.Services.RunService.Heartbeat:wait()
  247.                         end
  248.                         Part:Destroy()
  249.                     end)
  250.                 end
  251.             end,
  252.             Dismiss = function(Player)
  253.                 local Player = REVEX.Functions.Parse.GetPlayer(tostring(Player))
  254.                 local Table = REVEX.Tablets[tostring(Player):lower()]
  255.                 if Table and Player and Player.Character and Player.Character:FindFirstChild("Torso") then
  256.                     local Character = Player.Character
  257.                     local Torso = Character:FindFirstChild("Torso")
  258.                     local DismissNumber = (#Table > 3 and #Table or 35)
  259.                     for _, Part in pairs(Table) do
  260.                         REVEX.Functions.Main.DismissTablet(Part,(math.random(#Table)/#Table)/2)
  261.                     end
  262.                 end
  263.             end,
  264.             AdminOutput = function(Text, Color, Time, Function) -- Create a tablet to all ranked players.
  265.                 for _, Player in pairs(REVEX.Services.Players:GetPlayers()) do
  266.                     if REVEX.Functions.Get.PlayerData(Player, "Rank") > 4 and REVEX.Functions.Get.PlayerData(Player, "Notify") then
  267.                         REVEX.Functions.Main.Output(Player, Text, Color, Time, Function)
  268.                     end
  269.                 end
  270.             end,
  271.             GlobalOutput = function(Text) -- Create a tablet to all players.
  272.                 for _, Player in pairs(REVEX.Services.Players:GetPlayers()) do
  273.                     if REVEX.Functions.Get.PlayerData(Player, "Notify") then
  274.                         REVEX.Functions.Main.Output(Player,tostring(Text))
  275.                     end
  276.                 end
  277.             end,
  278.             Wire = function(PartA, PartB)
  279.                 local Distance = (PartA.Position-PartB.Position).magnitude
  280.                 local Parent = PartA.Parent
  281.                 if not Parent:findFirstChild("Wire") then
  282.                     local Wire =  REVEX.Functions.Main.Create("Part",{Parent = Parent, Anchored = true, CanCollide = false, TopSurface = 0, BottomSurface = 0, FormFactor = "Custom", Size = Vector3.new(0,0,Distance), Name = "[REVEX WIRE ATTACHMENT]", CFrame = CFrame.new(PartA.Position, PartB.Position)*CFrame.new(0,0,-distance/2), Color = PartA.Color})
  283.                 else
  284.                     Parent.Wire.Size = Vector3.new(0,0,distance)
  285.                     Parent.Wire.CFrame = CFrame.new(PartA.Position,PartB.Position)*CFrame.new(0,0,-distance/2)
  286.                 end
  287.             end,
  288.             Rotate = function()
  289.                 for Player, Tablets in pairs(REVEX.Tablets) do
  290.                     local Player = REVEX.Functions.Parse.GetPlayer(Player)
  291.                     local PlayerData = REVEX.RotationData[tostring(Player):lower()]
  292.                     if Player and (Player.Character and Player.Character:FindFirstChild("Torso") or PlayerData.LastKnownPosition) then
  293.                         local Character = Player.Character
  294.                         local Torso do
  295.                             if Character and PlayerData then
  296.                                 Torso = Character:FindFirstChild("Torso")
  297.                                 if Torso then
  298.                                     PlayerData.LastKnownPosition = Torso.CFrame
  299.                                 elseif not Torso and not PlayerData.LastKnownPosition then
  300.                                     PlayerData.LastKnownPosition = CFrame.new(0,5,0)
  301.                                 end
  302.                             end
  303.                         end
  304.                         local LastKnownPosition = PlayerData.LastKnownPosition
  305.                         for Index = 1, #Tablets do
  306.                             local Tablet = Tablets[Index]
  307.                             if Tablet and Tablet.Parent and not Tablet:FindFirstChild("REVEX~REMOVE") then
  308.                                 local newCFrame = CLerp(Tablet.CFrame,CFrame.new(LastKnownPosition.p)
  309.                                 * CFrame.Angles(0, math.rad((360/#Tablets*Index+(tick())*60/(#Tablets ~= 0 and #Tablets or 1))%360), 0)
  310.                                 * CFrame.new(0, math.sin(-tick()*4), (5+#Tablets)*.35+Tablet.Size.X), .2)
  311.                                 Tablet.CFrame = CFrame.new(newCFrame.p,Torso.CFrame.p)
  312.                                 * CFrame.Angles(math.rad(math.sin(tick()*4)*20)/Index,0,math.rad(math.sin(tick()*4)*20))
  313.                             else
  314.                                 table.remove(Tablets, Index)
  315.                             end
  316.                         end
  317.                     else
  318.                         REVEX.Functions.Main.Dismiss(Player)
  319.                     end
  320.                 end
  321.             end,
  322.             Create = function(ClassName, Properties) -- A function to create instances.
  323.                 local Instance = Instance.new(ClassName)
  324.                 local Properties = Properties or {}
  325.                 local ConnectionIndexes = {"MouseClick","MouseHoverEnter","MouseHoverLeave","MouseButton1Down","MouseButton2Down"}
  326.                 local CheckConnection = function(Index)
  327.                     local Index = tostring(Index)
  328.                     for _, Connect in pairs(ConnectionIndexes) do
  329.                         if Index:lower() == Connect:lower() then
  330.                             return true
  331.                         end
  332.                     end
  333.                     return false
  334.                 end
  335.                 for Index, Value in pairs(Properties) do
  336.                     if not CheckConnection(Index) then
  337.                         Instance[Index] = Value
  338.                     else
  339.                         Instance[Index]:connect(Value)
  340.                     end
  341.                 end
  342.                 return Instance
  343.             end,
  344.         },
  345.         Set = { -- Creating Data
  346.             Rank = function(Player, Rank, Description, Color, Mesh, BoxEnabled, Prefix, Suffix, Notify) REVEX.Ranked[tostring(Player):lower()] = {Rank = Rank, Description = Description, Color = Color, Mesh = Mesh, BoxEnabled = BoxEnabled, Prefix = Prefix, Suffix = Suffix, Notify = Notify} end,
  347.             Mesh = function(Player, Input) local Player, Input = tostring(Player), tostring(Input) for Name, Data in pairs(REVEX.Ranked) do if Name:lower() == Player:lower() then Data.Mesh = (function() for Name, Id in pairs(REVEX.Meshes) do if Input:lower() == tostring(Name):lower() then return Id end end return Input end)() end end end,
  348.             Prefix = function(Player, Input) local Player, Input = tostring(Player), tostring(Input) for Name, Data in pairs(REVEX.Ranked) do if Name:lower() == Player:lower() then Data.Prefix = Input end end end,
  349.             Suffix = function(Player, Input) local Player, Input = tostring(Player), tostring(Input) for Name, Data in pairs(REVEX.Ranked) do if Name:lower() == Player:lower() then Data.Suffix = Input end end end,
  350.             Box = function(Player, Input) local Player, Input = tostring(Player), tostring(Input) for Name, Data in pairs(REVEX.Ranked) do if Name:lower() == Player:lower() then Data.Box = (function() for Name, Value in pairs(REVEX.BoxTypes) do if Input:lower() == tostring(Name):lower() then return Value end end return false end)() end end end,
  351.             Notify = function(Player, Input) local Player, Input = tostring(Player), tostring(Input) for Name, Data in pairs(REVEX.Ranked) do if Name:lower() == Player:lower() then Data.Notify = (function() for Name, Value in pairs(REVEX.NotifyTypes) do if tostring(Name):lower() == Name:lower() then return Value end end return false end)() end end end,
  352.             Color = function(Player, Input) local Player, Input = tostring(Player), tostring(Input) for Name, Data in pairs(REVEX.Ranked) do if Name:lower() == Player:lower() then Data.Color = Input end end end,
  353.             Description = function(Player, Input) local Player = tostring(Player) for Name, Data in pairs(REVEX.Ranked) do if Name:lower() == Player:lower() then Data.Description = Input end end end,
  354.             Command = function(Description, Usages, Type, Rank, Function) REVEX.Commands[Usages] = {Description = Description,Type = Type, Rank = Rank, Function = Function} end,
  355.         },
  356.         Get = { -- Retrieving Data.
  357.             PlayerData = function(Player, Index)
  358.                 local Player = tostring(Player)
  359.                 local Index = tostring(Index)
  360.                 for Name, Data in pairs(REVEX.Ranked) do
  361.                     if Name:lower() == Player:lower() and Data[Index] ~= nil then
  362.                         if Index == "Mesh" and REVEX.Meshes[Data[Index]] then return REVEX.Meshes[Data[Index]] end
  363.                         if Index == "BoxEnabled" and REVEX.BoxTypes[Data[Index]] then return REVEX.BoxTypes[Data[Index]] end
  364.                         if Index == "Notify" and REVEX.NotifyTypes[Data[Index]] then return REVEX.NotifyTypes[Data[Index]] end
  365.                         return Data[Index]
  366.                     end
  367.                 end
  368.                 if Index == "Rank" then return 0
  369.                 elseif Index == "Mesh" then return false
  370.                 elseif Index == "Prefix" then return REVEX.DefaultPrefix
  371.                 elseif Index == "Suffix" then return REVEX.DefaultSuffix
  372.                 elseif Index == "BoxEnabled" then return true
  373.                 elseif Index == "Notify" then return true
  374.                 elseif Index == "Color" then return "White"
  375.                 elseif Index == "Description" then return "None"
  376.                 end
  377.                 return nil
  378.             end,
  379.             Classes = function(Class,obj)
  380.                 local Data = {}
  381.                 for _, Child in pairs(obj:GetChildren()) do
  382.                     pcall(function()
  383.                         if Child:IsA(Class) then table.insert(Data,Child) end
  384.                         pcall(function()
  385.                             for _, NewData in pairs(GetClasses(Class,Child)) do table.insert(Data,NewData) end
  386.                         end)
  387.                     end)
  388.                 end
  389.                 return Data
  390.             end,
  391.             NumberToBit = function(Bit) local BitString = tostring(Bit):reverse() local Status = 0 local Output = 0 for Character = 1, #BitString do Status = (Status == 0 and 1 or Status * 2) local SelectedNumber = BitString:sub(Character, Character) if SelectedNumber == "1" then Output = Output + Status end end return Output end,
  392.         },
  393.         Lock = {
  394.             Table = function(Table)
  395.                 setmetatable(Table, {
  396.                     __metatable = "[ Sandbox ]:\nLocked",
  397.                 })
  398.                 for Index, Value in pairs(Table) do
  399.                     if type(Index) == "table" then REVEX.Functions.Lock.Table(Index) end
  400.                     if type(Value) == "table" then REVEX.Functions.Lock.Table(Value) end
  401.                 end
  402.             end
  403.         },
  404.         Connect = { -- Connection Functions.
  405.             Player = function(Player, Type)
  406.                 if Player.AccountAge < REVEX.MinimumAccountAge and REVEX.Functions.Get.PlayerData(Player, "Rank") == 0 then
  407.                     REVEX.KickedTypes.Account_Age = true
  408.                     REVEX.Functions.Extra.Kick_No_Log(Player)
  409.                     return "Kicked"
  410.                 elseif REVEX.Locks.Server and REVEX.Functions.Get.PlayerData(Player, "Rank") < 2 and REVEX.Functions.Get.PlayerData(Player, "Rank") >= 0 then
  411.                     REVEX.KickedTypes.Private_Server = true
  412.                     REVEX.Functions.Extra.Kick_No_Log(Player)
  413.                     return "Kicked"
  414.                 elseif REVEX.Functions.Get.PlayerData(Player, "Rank") < 0 then
  415.                     REVEX.KickedTypes.Banned = true
  416.                     REVEX.Functions.Extra.Kick_No_Log(Player)
  417.                     return "Banned"
  418.                 end
  419.                 if REVEX.Functions.Get.PlayerData(Player, "Rank") == 0 then
  420.                     REVEX.Functions.Set.Rank(Player, 1, "Newly added player", "White",  nil, true, nil, nil, true)
  421.                 end
  422.                 if REVEX.Services.Players:FindFirstChild(tostring(Player)) then
  423.                     if Type == "Join" then
  424.                         REVEX.Functions.Main.AdminOutput(tostring(Player).." has joined!", "Lime green")
  425.                     end
  426.                     REVEX.Tablets[tostring(Player):lower()] = {}
  427.                     REVEX.RotationData[tostring(Player):lower()] = {RotationIncrease = 2, Rotation = 0, LastKnownPosition = nil}
  428.                     REVEX.Functions.Main.Output(Player,"Welcome:\n"..tostring(Player)..".")
  429.                     REVEX.Functions.Main.Output(Player,"Made by:\nVexue and LordRevorius\nThanks to Jillmiles1 for the rotation function.")
  430.                     REVEX.Functions.Main.Output(Player,"REVEX Tablet administration.\nGeneration: I.")
  431.                     REVEX.Functions.Main.Output(Player,"You are rank:\n"..tostring(REVEX.Functions.Get.PlayerData(Player, "Rank")))
  432.                     Player.Chatted:connect(function(Message)
  433.                         local MainFunction, MainError = ypcall(REVEX.Functions.Parse.Chat, Message, Player)
  434.                         if not MainFunction then
  435.                             table.insert(REVEX.Logs.Errors, tostring(MainError))
  436.                         end
  437.                     end)
  438.                 end
  439.             end,
  440.         },
  441.         Disconnect = { -- Disconnection Functions.
  442.             Player = function(Player)
  443.                 local Reason, Type = nil, "left"
  444.                 if REVEX.KickedTypes.Kicked then
  445.                     REVEX.KickedTypes.Kicked = false
  446.                     Type = "Kicked"
  447.                     Reason = "Kicked by an Administrator"
  448.                 elseif REVEX.KickedTypes.Account_Age then
  449.                     REVEX.KickedTypes.Account_Age = false
  450.                     Type = "Kicked"
  451.                     Reason = "Too low AccountAge"
  452.                 elseif REVEX.KickedTypes.Private_Server then
  453.                     REVEX.KickedTypes.Private_Server = false
  454.                     Type = "Kicked"
  455.                     Reason = "Server Lock Enabled"
  456.                 elseif REVEX.KickedTypes.Banned then
  457.                     REVEX.KickedTypes.Banned = false
  458.                     Type = "Banned"
  459.                     Reason = REVEX.Functions.Get.PlayerData(Player, "Description")
  460.                 end
  461.                 REVEX.Functions.Main.AdminOutput(tostring(Player).." has " .. (Type ~= "left" and "been " or Type) .. (Type ~= "left" and Type .. " for:\n " or "") .. (Type ~= "left" and (Reason ~= nil and Reason or "Undisclosed Reason.") or ""),
  462.                     ((Type == "Banned" and "Really red" or Type == "Kicked" and "Bright orange") or "Lime green"),
  463.                     (Type == "left" and 5 or 0),
  464.                     (Type == "Banned" and function(Administrator)
  465.                         REVEX.Functions.Main.Dismiss(Administrator)
  466.                         REVEX.Functions.Main.Output(Administrator,"Would you like to unban\n"..tostring(Player).."?","Really red",nil,function()
  467.                             REVEX.Functions.Main.Dismiss(Administrator)
  468.                             REVEX.Functions.Set.Rank(Player, 0, "Unbanned",REVEX.Functions.Get.PlayerData(Player, "Color"))
  469.                             REVEX.Functions.Main.Output(Administrator,"Unbanned "..tostring(Player))
  470.                         end)
  471.                     end)
  472.                 )
  473.             end,
  474.         },
  475.         Parse = { -- Parsing and Returning stuff, Pretty useful.
  476.             CompareRanks = function(Speaker,Target)
  477.                 return REVEX.Functions.Get.PlayerData(Speaker, "Rank") >= REVEX.Functions.Get.PlayerData(Target, "Rank")
  478.             end,
  479.             GetPlayer = function(Name)
  480.                 local Len = #Name
  481.                 for _, Player in pairs(REVEX.Services.Players:GetPlayers()) do
  482.                     if Player.Name:lower():sub(1,Len) == Name:lower() then return Player
  483.                     end
  484.                 end
  485.                 return nil
  486.             end,
  487.             GetPlayers = function(Name,Speaker)
  488.                 if Speaker == nil then return {} end
  489.                 local Name = Name:lower()
  490.                 local Players = {}
  491.                 if Name == "all" then for _, Player in pairs(REVEX.Services.Players:GetPlayers()) do table.insert(Players, Player) end
  492.                 elseif Name == "others" then for _, Player in pairs(REVEX.Services.Players:GetPlayers()) do if Player ~= Speaker then table.insert(Players, Player) end end
  493.                 elseif Name == "admins" then for _, Player in pairs(REVEX.Services.Players:GetPlayers()) do if REVEX.Functions.Get.PlayerData(Player, "Rank") > 4 then table.insert(Players, Player) end end
  494.                 elseif Name == "nonadmins" then for _, Player in pairs(REVEX.Services.Players:GetPlayers()) do if REVEX.Functions.Get.PlayerData(Player, "Rank") <= 4 then table.insert(Players, Player) end end
  495.                 elseif Name == "random" then table.insert(Players, REVEX.Services.Players:GetPlayers()[math.random(1,(#REVEX.Services.Players:GetPlayers()))])
  496.                 elseif Name == "me" then table.insert(Players, Speaker)
  497.                 else table.insert(Players,REVEX.Functions.Parse.GetPlayer(Name))
  498.                 end
  499.                 return Players
  500.             end,
  501.             Chat = function(Message, Speaker)
  502.                 table.insert(REVEX.Logs.Parsed, {Player = tostring(Speaker), Message = Message})
  503.                 local Prefix, Suffix = REVEX.Functions.Get.PlayerData(Speaker, "Prefix"), REVEX.Functions.Get.PlayerData(Speaker, "Suffix")
  504.                 local Message = Message:gsub("^/e?m?o?t?e?%s?","")
  505.                 print(Speaker,Message)
  506.                 if Message:sub(1, #Prefix) == Prefix then
  507.                     local Message = Message:sub(1 + #Prefix)
  508.                     for Usages, Data in pairs(REVEX.Commands) do
  509.                         for _, Usage in pairs(Usages) do
  510.                             if REVEX.Functions.Get.PlayerData(Speaker, "Rank") >= Data.Rank then
  511.                                 if Message:lower():sub(1,#Usage) == Usage:lower() and Message:sub(1 + #Usage,#Usage + #Suffix) == Suffix then
  512.                                     local Message = Message:sub(1 + #Usage + #Suffix)
  513.                                     local Arguments = {}
  514.                                     for Argument in Message:gmatch("[^"..Suffix.."]+") do
  515.                                         table.insert(Arguments,Argument)
  516.                                     end
  517.                                     if REVEX.Debug then
  518.                                         print(Data.Function(Arguments,Speaker,Message))
  519.                                     else
  520.                                         local MainFunction, MainError = ypcall(Data.Function, Arguments, Speaker, Message)
  521.                                         if not MainFunction then
  522.                                             table.insert(REVEX.Logs.Errors, tostring(MainError))
  523.                                         end
  524.                                     end
  525.                                     return "Executed"
  526.                                 end
  527.                             elseif REVEX.Functions.Get.PlayerData(Speaker, "Rank") < Data.Rank and Message:lower():sub(1,#Usage) == Usage:lower() and Message:sub(1 + #Usage,#Usage + #Suffix) == Suffix then
  528.                                 return REVEX.Functions.Main.Output(Speaker, "Your rank is too low to execute this command")
  529.                             end
  530.                         end
  531.                     end
  532.                 end
  533.             end,
  534.         },
  535.         Simulate = { -- Things that are simulated
  536.             Table = function(Table)
  537.                 local SimulatedTable = {}
  538.                 for Index, Value in pairs(Table) do
  539.                     SimulatedTable[Index] = Value
  540.                 end
  541.                 return SimulatedTable
  542.             end,
  543.         },
  544.         Clear = {
  545.             Scripts = function(Object)
  546.                 REVEX.Functions.Clear.Scripts(Child)
  547.                 if Object:IsA("Script") then
  548.                     Object:ClearAllChildren()
  549.                     Object.Disabled = true
  550.                     Object:Destroy()
  551.                 end
  552.             end,
  553.             LocalScripts = function(Object)
  554.                 REVEX.Functions.Clear.LocalScripts(Child)
  555.                 if Object:IsA("LocalScript") then
  556.                     Object:ClearAllChildren()
  557.                     Object.Disabled = true
  558.                     Object:Destroy()
  559.                 end
  560.             end,
  561.         },
  562.         Extra = { -- Stuff that can not be categorized
  563.             Kick = function(Player)
  564.                 REVEX.KickedTypes.Kicked = true
  565.                 Instance.new("RemoteEvent", Player):FireClient(Player, {[string.rep("Goodbye!",2e5+5)] = "Kicked"})
  566.             end,
  567.             Kick_No_Log = function(Player)
  568.                 Instance.new("RemoteEvent", Player):FireClient(Player, {[string.rep("Goodbye!",2e5+5)] = "Kicked"})
  569.             end,
  570.             Ban = function(Player, Reason)
  571.                 local Reason = ((Reason == "nil" and "Undisclosed Reason" or Reason == nil and "Undisclosed Reason") or Reason)
  572.                 REVEX.KickedTypes.Banned = true
  573.                 REVEX.Functions.Set.Rank(Player, -1, Reason)
  574.                 REVEX.Functions.Extra.Kick_No_Log(Player)
  575.             end,
  576.             PlayAudio = function(Player,Id)
  577.                 REVEX.Functions.Main.Dismiss(Player)
  578.                 for _, Child in pairs(REVEX.Services.Workspace:GetChildren()) do if Child:IsA("Sound") then Child:stop() Child:Destroy() end end
  579.                 local Sound = REVEX.Functions.Main.Create("Sound",{Parent = REVEX.Services.Workspace,Volume = 1, Pitch = 1, SoundId = "rbxassetid://"..Id})
  580.                 Sound:Play()
  581.                 REVEX.Functions.Main.Output(Player,"Now playing:\n"..REVEX.Services.MarketPlace:GetProductInfo(Id).Name,BrickColor.new("Lime green"),0)
  582.                 REVEX.Functions.Main.Output(Player,"Creator:\n"..REVEX.Services.MarketPlace:GetProductInfo(Id).Creator.Name,BrickColor.new("Really red"),0)
  583.                 REVEX.Functions.Main.Output(Player,"Sales:\n"..REVEX.Services.MarketPlace:GetProductInfo(Id).Sales,BrickColor.new("Toothpaste"),0)
  584.                 REVEX.Functions.Main.Output(Player,"Buy:\n"..REVEX.Services.MarketPlace:GetProductInfo(Id).Name.."?",nil,0,function() REVEX.Services.MarketPlace:PromptPurchase(Player,Id) end)
  585.                 REVEX.Functions.Main.Output(Player,"Music settings",nil,nil,function()
  586.                     REVEX.Functions.Main.Dismiss(Player)
  587.                     local Return
  588.                     Return = function()
  589.                         REVEX.Functions.Main.Dismiss(Player)
  590.                         REVEX.Functions.Main.Output(Player, "Set Volume", nil, 0, function()
  591.                             REVEX.Functions.Main.Dismiss(Player)
  592.                             for Volume = 0, 1, .1 do
  593.                                 REVEX.Functions.Main.Output(Player, Volume, nil, 0, function()
  594.                                     Sound.Volume = Volume
  595.                                 end)
  596.                             end
  597.                             REVEX.Functions.Main.Output(Player, "Back", "Bright red", 0, Return)
  598.                         end)
  599.                         REVEX.Functions.Main.Output(Player,"Pitch +1",nil,0,function()
  600.                             Sound.Pitch = Sound.Pitch + .1
  601.                         end)
  602.                         REVEX.Functions.Main.Output(Player,"Pitch -1",nil,0,function()
  603.                             Sound.Pitch = Sound.Pitch - .1
  604.                         end)
  605.                         REVEX.Functions.Main.Output(Player, "Stop Song", nil, 0, function()
  606.                             REVEX.Functions.Main.Dismiss(Player)
  607.                             Sound:Stop()
  608.                             wait()
  609.                             Sound:Destroy()
  610.                         end)
  611.                     end
  612.                     Return()
  613.                 end)
  614.             end,
  615.             HttpGet = function(URL)
  616.                 return (REVEX.HttpEnabled and REVEX.Services.HttpService:GetAsync(URL) or "HTTP Requests are not enabled")
  617.             end,
  618.             GetCatalog = function(KeyWords, Category, SubCategory)
  619.                 local KeyWords = REVEX.Services.HttpService:UrlEncode(KeyWords)
  620.                 local SubCategory = (SubCategory and '&Subcategory='..tostring(SubCategory) or "")
  621.                 local URL = 'http://roproxy.tk/catalog/json?Keyword='..tostring(KeyWords)..'&Category='..tostring(Category)..SubCategory..'&ResultsPerPage=35'
  622.                 return REVEX.Services.HttpService:JSONDecode(REVEX.Functions.Extra.HttpGet(URL))
  623.             end,
  624.             Explore = function(Player)
  625.                 local CustomSettings = {
  626.                     Player = {
  627.                         Kick = function(Input)
  628.                            
  629.                         end
  630.                     }
  631.                 }
  632.                 local function GetSettings(Object)
  633.                     if CustomSettings[Object.ClassName] then
  634.                         return CustomSettings[Object.ClassName]
  635.                     end
  636.                     return {}
  637.                 end
  638.                
  639.                 local Explore;Explore = function(Object)
  640.                     REVEX.Functions.Main.Dismiss(Player)
  641.                     if Object ~= Game then
  642.                         REVEX.Functions.Main.Output(Player, "Explore Parent ("..tostring(Object.Parent)..")", "Really red", nil, function()
  643.                             Explore(Object.Parent)
  644.                         end)
  645.                     end
  646.                     REVEX.Functions.Main.Output(Player, "View functions", "Teal", nil, function()
  647.                         REVEX.Functions.Main.Output(Player, "Go back", "Really red", nil, function()
  648.                             Explore(Object)
  649.                         end)
  650.                         local CustomSettings = GetSettings(Object)
  651.                         if #CustomSettings > 0 then
  652.                             for Index, Value in pairs(CustomSettings) do
  653.                                 REVEX.Functions.Main.Output(Player, Index, nil, nil, function()
  654.                                     Value(Object)
  655.                                 end)
  656.                             end
  657.                         else
  658.                             REVEX.Functions.Main.Output(Player, "No functions have been implemented for this class", "Really red")
  659.                         end
  660.                     end)
  661.                     if Object ~= Game then
  662.                         for Index, Value in pairs(Object:GetChildren()) do
  663.                             if not tostring(Value):gsub("%A",""):match("REVEX") then
  664.                                 pcall(REVEX.Functions.Main.Output, Player, Value, nil, nil, function()
  665.                                     Explore(Value)
  666.                                 end)
  667.                             end
  668.                         end
  669.                     else
  670.                         for Name, Value in pairs(REVEX.Services) do
  671.                             pcall(REVEX.Functions.Main.Output, Player, Value, nil, nil, function()
  672.                                 Explore(Value)
  673.                             end)
  674.                         end
  675.                     end
  676.                 end
  677.                 Explore(game)
  678.             end,
  679.             DriverCrash = function(Player)
  680.                 spawn(function()
  681.                     REVEX.Services.RunService.Heartbeat:wait()
  682.                     for i = 0,2800 do
  683.                         if Player then
  684.                             Player.CameraMode = Enum.CameraMode.LockFirstPerson
  685.                             Instance.new("Message",game.Players[Player.Name].PlayerGui).Text = "get lag0rz" -- This will make ppl raig k.
  686.                         end
  687.                     end
  688.                 end)
  689.             end,
  690.             GetSplit = function(Message)
  691.                 local Name = nil
  692.                 for i = 1, #Message do
  693.                     if Message:sub(i,i) == "-" then
  694.                         Name = i + 1
  695.                         break
  696.                     end
  697.                 end
  698.                 if Name then
  699.                     return Message:sub(Name)
  700.                 else
  701.                     return nil
  702.                 end
  703.             end,
  704.         },
  705.     },
  706. }
  707. REVEX.Functions.Lock.Table(REVEX)
  708. REVEX.RemoteData.LastData =
  709. --Player, Rank, Description, Color, Mesh, Box, Prefix, Suffix, Notify
  710. REVEX.Functions.Set.Rank("LordRevorius", 10, "Creator", "Royal purple", nil, true, nil, nil, true)
  711. REVEX.Functions.Set.Rank("Vexue", 10, "Creator", "Teal",  nil, true, nil, nil, true)
  712. REVEX.Functions.Set.Rank("EncryptedWiki", 10, "REVEX FIXER!", "White",  nil, true, nil, nil, true)
  713.  
  714. REVEX.Functions.Set.Rank("TheDarkRevenant", 10, "Weapon Creator, Good adminstrator.", "Teal",  nil, true, nil, nil, true)
  715. REVEX.Functions.Set.Rank("tyree80", 10, "TheDarkRevenant", "Teal",  nil, true, nil, nil, true)
  716.  
  717. REVEX.Functions.Set.Rank("Vaeb", 6, "Friend, and good scripter.", "Really black",  nil, true, nil, nil, true)
  718. REVEX.Functions.Set.Rank("Diitto", 6, "Friend, and good scripter.", "Lime green",  nil, true, nil, nil, true)
  719. REVEX.Functions.Set.Rank("12packkid", 6, "Friend, and good scripter.", "Lime green",  nil, true, nil, nil, true)
  720. REVEX.Functions.Set.Rank("Pkamara", 6, "Friend, and good scripter.", "Teal",  nil, true, nil, nil, true)
  721. REVEX.Functions.Set.Rank("Nexure", 6, "Friend, and good scripter.", "Royal purple",  nil, true, nil, nil, true)
  722. REVEX.Functions.Set.Rank("Detaching", 6, "Friend, and good scripter.", "Gold",  nil, true, nil, nil, true)
  723. REVEX.Functions.Set.Rank("aceahmedmoh", 6, "Friend, and good scripter.", "Toothpaste",  nil, true, nil, nil, true)
  724. REVEX.Functions.Set.Rank("XEL8o9", 6, "Friend, and good scripter."," Really blue",  nil, true, nil, nil, true)
  725. REVEX.Functions.Set.Rank("tusKOr661", 6, "Friend, and good scripter.", "Really blue",  nil, true, nil, nil, true)
  726. REVEX.Functions.Set.Rank("Basictality", 6, "Friend, and good scripter.", "White",  nil, true, nil, nil, true)
  727. REVEX.Functions.Set.Rank("NetworkServices",6,"Good friend and good scripter.","Really blue",nil,true,false,false,true)
  728.  
  729. REVEX.Functions.Set.Rank("Derek1017", -1, "Loser FM'er that can't script and should die in a fucking hole","Really red")
  730. REVEX.Functions.Set.Rank("xJaffie", -1, "Abusing free models.")
  731. REVEX.Functions.Set.Rank("Brick2430", -1, "Abusing free models.")
  732. for _, Player in pairs(REVEX.Services.Players:GetPlayers()) do REVEX.Functions.Connect.Player(Player, "Connect") end
  733.  
  734. REVEX.Functions.Set.Command("View Commands", {"Cmds","Commands"}, "", 1, function(Arguments,Speaker,Message)
  735.     REVEX.Functions.Main.Dismiss(Speaker)
  736.     REVEX.Functions.Main.Output(Speaker, "You are rank:\n"..tostring(REVEX.Functions.Get.PlayerData(Speaker, "Rank")))
  737.     local RankData = {}
  738.    
  739.     for _, Data in pairs(REVEX.Ranks) do
  740.         if Data.Rank > 0 then
  741.             local AvailableCommands = {}
  742.             local ForRank = 0
  743.             for Usages, CommandData in pairs(REVEX.Commands) do
  744.                 if CommandData.Rank <= Data.Rank then
  745.                     ForRank = ForRank + 1
  746.                     AvailableCommands[Usages] = CommandData
  747.                 end
  748.             end
  749.             RankData[Data.Description.."("..Data.Rank.."):\n"..ForRank.." Command(s) Available"] = AvailableCommands
  750.         end
  751.     end
  752.    
  753.     for Rank, Data in pairs(RankData) do
  754.         REVEX.Functions.Main.Output(Speaker, Rank, nil, 0, function()
  755.             REVEX.Functions.Main.Dismiss(Speaker)
  756.             for Usages, Data in pairs(Data) do
  757.                 REVEX.Functions.Main.Output(Speaker, Data.Description, nil, 0, function()
  758.                     REVEX.Functions.Main.Dismiss(Speaker)
  759.                     for _, Usage in pairs(Usages) do
  760.                         REVEX.Functions.Main.Output(Speaker,"Usage:\n"..Usage)
  761.                     end
  762.                     REVEX.Functions.Main.Output(Speaker, Data.Description)
  763.                     REVEX.Functions.Main.Output(Speaker, "Type:\n"..tostring(Data.Type))
  764.                     REVEX.Functions.Main.Output(Speaker, "Rank Needed:\n "..Data.Rank)
  765.                 end)
  766.             end
  767.         end)
  768.     end
  769. end)
  770.  
  771. REVEX.Functions.Set.Command("View Colors", {"Colors"}, "", 0, function(Arguments,Speaker,Message)
  772.     for Color = 0, 63 do
  773.         REVEX.Functions.Main.Output(Speaker, BrickColor.palette(Color), BrickColor.palette(Color))
  774.     end
  775. end)
  776.  
  777. REVEX.Functions.Set.Command("Set your Prefix", {"Prefix", "Prfx"}, "Prefix", 1, function(Arguments, Speaker, Message)
  778.     REVEX.Functions.Main.Dismiss(Speaker)
  779.     REVEX.Functions.Set.Prefix(Speaker, Message)
  780.     REVEX.Functions.Main.Output(Speaker, "New Prefix:\n"..REVEX.Functions.Get.PlayerData(Speaker, "Prefix"))
  781. end)
  782.  
  783. REVEX.Functions.Set.Command("Set your Suffix", {"Suffix", "Sffx"}, "Suffix", 1, function(Arguments, Speaker, Message)
  784.     REVEX.Functions.Main.Dismiss(Speaker)
  785.     REVEX.Functions.Set.Suffix(Speaker, Message)
  786.     REVEX.Functions.Main.Output(Speaker, "New Suffix:\n"..REVEX.Functions.Get.PlayerData(Speaker, "Suffix"))
  787. end)
  788.  
  789. REVEX.Functions.Set.Command("Set your Notify to Enabled/Disabled to recieve updates", {"Notify"}, "true/false", 1, function(Arguments, Speaker, Message)
  790.     REVEX.Functions.Main.Dismiss(Speaker)
  791.     REVEX.Functions.Set.Notify(Speaker, Message)
  792.     REVEX.Functions.Main.Output(Speaker, "Notify Enabled:\n"..tostring(REVEX.Functions.Get.PlayerData(Speaker, "Notify")))
  793. end)
  794.  
  795. REVEX.Functions.Set.Command("Load HTTP script",{"LoadH","HTTP","LHTTP"},"",7,function(Arguments,Speaker,Message)
  796.     local URL = Message
  797.     local HTTP = REVEX.Services.HttpService
  798.     if Message == "" or nil then
  799.         REVEX.Functions.Main.Output(Speaker, "Please provide a link.","Really red",5)
  800.     else
  801.         REVEX.Functions.Main.Output(Speaker,"Are you sure you want to load: "..URL.."?","Really red",nil,function()
  802.             REVEX.Functions.Main.Dismiss(Speaker)
  803.             loadstring(HTTP:GetAsync(URL))()
  804.         end)
  805.     end
  806. end)
  807.  
  808. REVEX.Functions.Set.Command("Set your SelectionBoxes Enabled/Disabled", {"SelectionBox", "Box"}, "true/false", 1, function(Arguments, Speaker, Message)
  809.     REVEX.Functions.Main.Dismiss(Speaker)
  810.     REVEX.Functions.Set.Box(Speaker, Message)
  811.     REVEX.Functions.Main.Output(Speaker, "SelectionBoxes Enabled:\n"..tostring(REVEX.Functions.Get.PlayerData(Speaker, "BoxEnabled")))
  812. end)
  813.  
  814. REVEX.Functions.Set.Command("Set your SelectionBoxes Enabled/Disabled", {"Mesh", "Msh"}, "Number/Nil", 1, function(Arguments, Speaker, Message)
  815.     REVEX.Functions.Main.Dismiss(Speaker)
  816.     REVEX.Functions.Set.Mesh(Speaker, Message)
  817.     REVEX.Functions.Main.Output(Speaker, "New Mesh:\n"..tostring(REVEX.Functions.Get.PlayerData(Speaker, "Mesh")))
  818. end)
  819.  
  820. REVEX.Functions.Set.Command("Set your Tablet Color", {"Color", "BrickColor"}, "BrickColor Name", 1, function(Arguments, Speaker, Message)
  821.     REVEX.Functions.Main.Dismiss(Speaker)
  822.     REVEX.Functions.Set.Color(Speaker, Message)
  823.     REVEX.Functions.Main.Output(Speaker, "New Color:\n"..tostring(REVEX.Functions.Get.PlayerData(Speaker, "Color")))
  824. end)
  825.  
  826. REVEX.Functions.Set.Command("Ping a message.", {"Ping"}, "Message", 1, function(Arguments, Speaker, Message)
  827.     local Message = Message
  828.     local MatchNumber = Message:match(".?%d+$")
  829.     local Number = tonumber(MatchNumber or 1)
  830.     local NewCharacters = {
  831.         ["\\n"] = "\n",
  832.         ["\\%d+"] = "\%d+",
  833.     }
  834.     if Number > 1 then
  835.         Message = Message:gsub(Number, "")
  836.     end
  837.     for Argument in Message:gmatch('[^".+",]+') do
  838.         for _ = 1, Number do
  839.             REVEX.Functions.Main.Output(Speaker, (function()
  840.                 local Argument = Argument
  841.                 for Index, Value in pairs(NewCharacters) do
  842.                     Argument = Argument:gsub(Index, Value)
  843.                 end
  844.                 return Argument
  845.             end)())
  846.         end
  847.     end
  848. end)
  849.  
  850. REVEX.Functions.Set.Command("View the logs.", {"ViewLogs", "Logs"}, "", 6, function(Arguments, Speaker, Message)
  851.     REVEX.Functions.Main.Dismiss(Speaker)
  852.     REVEX.Functions.Main.Output(Speaker, "View:\nerror logs ("..#REVEX.Logs.Errors..")", "Really red", 0, function()
  853.         REVEX.Functions.Main.Dismiss(Speaker)
  854.         for _, Log in pairs(REVEX.Logs.Errors) do
  855.             REVEX.Functions.Main.Output(Speaker, "ERROR:\n"..tostring(Log), "Really red")
  856.         end
  857.     end)
  858.     REVEX.Functions.Main.Output(Speaker, "View:\nchat logs ("..#REVEX.Logs.Parsed..")", "Really red", 0, function()
  859.         REVEX.Functions.Main.Dismiss(Speaker)
  860.         if #REVEX.Logs.Parsed > 40 then
  861.             REVEX.Functions.Main.Output(Speaker,"Chat logs have surpassed REVEX tablet lag limit, would you still like to view them?","Really red",0,function()
  862.                 for _, Data in pairs(REVEX.Logs.Parsed) do
  863.                     REVEX.Functions.Main.Output(Speaker, tostring(Data.Player)..":\n"..tostring(Data.Message))
  864.                 end
  865.             end)
  866.         end
  867.     end)
  868.     REVEX.Functions.Main.Output(Speaker, "Clear:\nchat logs", "Really red", 0, function()
  869.         for _ = 1, #REVEX.Logs.Parsed do
  870.             table.remove(REVEX.Logs.Parsed,_)
  871.         end
  872.     end)
  873. end)
  874.  
  875. REVEX.Functions.Set.Command("Dismiss tablets.", {"DT","Dismiss"}, "", 1, function(Arguments, Speaker, Message)
  876.     REVEX.Functions.Main.Dismiss(Speaker)
  877. end)
  878.  
  879. REVEX.Functions.Set.Command("Dismiss tablets for everyone.", {"DtAll","DismissAll"}, "", 3, function(Arguments, Speaker, Message)
  880.     for Index, Player in pairs(REVEX.Services.Players:GetPlayers()) do
  881.         REVEX.Functions.Main.Dismiss(Player)
  882.     end
  883. end)
  884.  
  885. REVEX.Functions.Set.Command("Play music", {"msc","music"}, "Number", 1, function(Arguments, Speaker, Message)
  886.     REVEX.Functions.Extra.PlayAudio(Speaker,Message)
  887. end)
  888.  
  889. REVEX.Functions.Set.Command("Search for Catalog Assets",{"srchc","searchc"}, "String", 2, function(Arguments, Speaker, Message)
  890.     REVEX.Functions.Main.Dismiss(Speaker)
  891.     local Audio = REVEX.Functions.Extra.GetCatalog(Message, 9)
  892.     local Hats = REVEX.Functions.Extra.GetCatalog(Message, 3, 9)
  893.     local Gear =  REVEX.Functions.Extra.GetCatalog(Message, 5)
  894.     REVEX.Functions.Main.Output(Speaker, "Audio:\n"..#Audio, nil, 0, function()
  895.         REVEX.Functions.Main.Dismiss(Speaker)
  896.         for _, Data in pairs(Audio) do
  897.             REVEX.Functions.Main.Output(Speaker, Data.Name.."\n("..Data.AssetId..")", nil, 0, function()
  898.                 REVEX.Functions.Extra.PlayAudio(Speaker,Data.AssetId)
  899.             end)
  900.         end
  901.     end)
  902.     REVEX.Functions.Main.Output(Speaker, "Hats:\n"..#Hats, nil, 0, function()
  903.         REVEX.Functions.Main.Dismiss(Speaker)
  904.         for _, Data in pairs(Hats) do
  905.             REVEX.Functions.Main.Output(Speaker, Data.Name.."\n("..Data.AssetId..")", nil, 0, function()
  906.                 for _, Child in pairs(REVEX.Services.InsertService:LoadAsset(Data.AssetId):GetChildren()) do
  907.                     if Speaker.Character then
  908.                         Child.Parent = Speaker.Character
  909.                     end
  910.                 end
  911.             end)
  912.         end
  913.     end)
  914.     REVEX.Functions.Main.Output(Speaker, "Gear:\n"..#Gear, nil, 0, function()
  915.         REVEX.Functions.Main.Dismiss(Speaker)
  916.         for _, Data in pairs(Gear) do
  917.             REVEX.Functions.Main.Output(Speaker, Data.Name..":\n"..Data.AssetId, nil, 0, function()
  918.                 for _, Child in pairs(REVEX.Services.InsertService:LoadAsset(Data.AssetId):GetChildren()) do
  919.                     Child.Parent = Speaker:FindFirstChild("Backpack") or REVEX.Services.Workspace
  920.                 end
  921.             end)
  922.         end
  923.     end)
  924. end)
  925.  
  926. REVEX.Functions.Set.Command("Lock something", {"Locks"}, "", 7, function(Arguments, Speaker, Message)
  927.     REVEX.Functions.Main.Dismiss(Speaker)
  928.     REVEX.Functions.Main.Output(Speaker, (REVEX.Locks.Server and "Un" or "").."Lock Server?", "Really red", 0, function()
  929.         REVEX.Functions.Main.Output(Speaker, "Server is "..(REVEX.Locks.Server and "Un" or "").."Locked", nil, 5)
  930.         REVEX.Locks.Server = not REVEX.Locks.Server
  931.     end)
  932. end)
  933.  
  934.  
  935. REVEX.Functions.Set.Command("Shutdown the Server", {"Shutdown"}, "", 7, function(Arguments, Speaker, Message)
  936.     shutdown = function()
  937.         pcall(shutdown)
  938.     end
  939.     shutdown()
  940. end)
  941.  
  942. REVEX.Functions.Set.Command("View Scripts",{"Scripts","ViewScripts"},"",7,function(Arguments, Speaker, Message)
  943.     REVEX.Functions.Main.Dismiss(Speaker)
  944.     local FoundScripts = REVEX.Functions.Get.Classes("Script", game)
  945.     if #AllScripts > 0 then
  946.         for _,v in pairs(AllScripts) do
  947.             REVEX.Functions.Main.Output(Speaker, v, nil, nil,function()
  948.                 REVEX.Functions.Main.Dismiss(Speaker)
  949.                 REVEX.Function.Main.Output(Speaker,"Do you want to remove this script?","Really red",nil,function()
  950.                     v:Destroy()
  951.                 end)
  952.             end)
  953.         end
  954.     else
  955.         REVEX.Functions.Main.Output(Speaker,"No Scripts Found","Really red",5)
  956.     end
  957. end)
  958.  
  959. REVEX.Functions.Set.Command("View Players", {"plrs","players","pinfo"}, "", 4, function(Arguments,Speaker,Message)
  960.     REVEX.Functions.Main.Dismiss(Speaker)
  961.     for _, Client in pairs(REVEX.Services.NetworkServer:GetChildren()) do
  962.         if Client:IsA("NetworkReplicator") then
  963.             local Player = Client:GetPlayer()
  964.             REVEX.Functions.Main.Output(Speaker, Player.Name .. " \\\\ "..tostring(Player.Parent), REVEX.Functions.Get.PlayerData(Player, "Color"), 0, function()
  965.                 REVEX.Functions.Main.Dismiss(Speaker)
  966.                 REVEX.Functions.Main.Output(Speaker, "Name:\n"..tostring(Player))
  967.                 REVEX.Functions.Main.Output(Speaker, "SelectionBoxes Enabled:\n"..tostring(REVEX.Functions.Get.PlayerData(Player, "Box")))
  968.                 REVEX.Functions.Main.Output(Speaker, "Mesh:\n"..tostring(REVEX.Functions.Get.PlayerData(Player, "Mesh")))
  969.                 REVEX.Functions.Main.Output(Speaker, "Notify Enabled:\n"..tostring(REVEX.Functions.Get.PlayerData(Player, "Notify")))
  970.                 REVEX.Functions.Main.Output(Speaker, "Color:\n"..tostring(REVEX.Functions.Get.PlayerData(Player, "Color")), REVEX.Functions.Get.PlayerData(Player, "Color"))
  971.                 REVEX.Functions.Main.Output(Speaker, "Rank:\n"..tostring(REVEX.Functions.Get.PlayerData(Player, "Rank")))
  972.                 REVEX.Functions.Main.Output(Speaker, "Prefix:\n"..tostring(REVEX.Functions.Get.PlayerData(Player, "Prefix")))
  973.                 REVEX.Functions.Main.Output(Speaker, "Suffix:\n"..tostring(REVEX.Functions.Get.PlayerData(Player, "Suffix")))
  974.                 REVEX.Functions.Main.Output(Speaker, "Account age:\n"..Player.AccountAge.. " day(s) old")
  975.                 REVEX.Functions.Main.Output(Speaker, "userId:\n"..Player.userId)
  976.                 REVEX.Functions.Main.Output(Speaker, "Membership Type:\n"..Player.MembershipType.Name)
  977.                 REVEX.Functions.Main.Output(Speaker, "Disconnect\nPlayer", "Really red", nil, function() if REVEX.Functions.Parse.CompareRanks(Speaker,Player) then REVEX.Functions.Extra.Kick(Player) end end)
  978.                 REVEX.Functions.Main.Output(Speaker,"Set Rank", nil, nil, function()
  979.                     REVEX.Functions.Main.Dismiss(Speaker)
  980.                     REVEX.Functions.Main.Output(Speaker,"You are setting\n"..tostring(Player).."'s Rank")
  981.                     REVEX.Functions.Main.Output(Player,Speaker.Name.."\nis setting your rank","Really red",0)
  982.                     for Rank, RankData in pairs(REVEX.Ranks) do
  983.                         REVEX.Functions.Main.Output(Speaker,RankData.Rank..":\n"..RankData.Description, nil, nil, function()
  984.                             REVEX.Functions.Main.Dismiss(Speaker)
  985.                             if REVEX.Functions.Parse.CompareRanks(Speaker,Player) and RankData.Rank <= REVEX.Functions.Get.PlayerData(Speaker, "Rank") then
  986.                                 if RankData.Rank < 0 then
  987.                                     return REVEX.Functions.Extra.Ban(Player)
  988.                                 end
  989.                                 --Player, Rank, Description, Color, Mesh, Box, Prefix, Suffix, Notify
  990.                                 REVEX.Functions.Set.Rank(Player, RankData.Rank, REVEX.Functions.Get.PlayerData(Player, "Description"), REVEX.Functions.Get.PlayerData(Player, "Color"), REVEX.Functions.Get.PlayerData(Player, "Mesh"), REVEX.Functions.Get.PlayerData(Player, "BoxEnabled"), REVEX.Functions.Get.PlayerData(Player, "Prefix"), REVEX.Functions.Get.PlayerData(Player, "Suffix"), REVEX.Functions.Get.PlayerData(Player, "Notify"))
  991.                                 REVEX.Functions.Main.Output(Speaker,"Set "..tostring(Player).."'s Rank to:\n"..RankData.Description..": "..RankData.Rank)
  992.                                 REVEX.Functions.Main.Output(Player,"Your rank is now:\n"..RankData.Description..":\n"..RankData.Rank)
  993.                                 REVEX.Services.DataStore:SetAsync(Player,RankData.Rank)
  994.                             else
  995.                                 REVEX.Functions.Main.Output(Speaker,"You are not permitted to rank this user.","Bright red")
  996.                             end
  997.                         end)
  998.                     end
  999.                 end)
  1000.                 REVEX.Functions.Main.Output(Speaker,"Set color", nil, nil, function()
  1001.                     REVEX.Functions.Main.Dismiss(Speaker)
  1002.                     REVEX.Functions.Main.Output(Speaker,"You are currently setting: "..tostring(Player).."'s\nTablet Color")
  1003.                     REVEX.Functions.Main.Output(Player,Speaker.Name.."\nis setting your color","Really red",0)
  1004.                     for _, Color in pairs(REVEX.Colors) do
  1005.                         REVEX.Functions.Main.Output(Speaker, "Set color to:\n"..Color,Color,0,function()
  1006.                             REVEX.Functions.Set.Color(Player, Color)
  1007.                             REVEX.Functions.Main.Output(Speaker,"Set\n"..tostring(Player).."'s\nTablet Color to:"..Color, Color, 5)
  1008.                             REVEX.Functions.Main.Dismiss(Speaker)
  1009.                             REVEX.Functions.Main.Output(Player,"Your new Color:\n"..Color,nil,5)
  1010.                         end)
  1011.                     end
  1012.                 end)
  1013.             end)
  1014.         end
  1015.     end
  1016. end)
  1017.  
  1018. REVEX.Functions.Set.Command("View ranked people", {"Ranked"}, "", 1, function(Arguments,Speaker,Message)
  1019.     REVEX.Functions.Main.Dismiss(Speaker)
  1020.     for Name, Data in pairs(REVEX.Ranked) do
  1021.         if Data.Rank > 1 or Data.Rank < 1 then
  1022.             REVEX.Functions.Main.Output(Speaker, Name, (Data.Rank < 1 and "Really red" or REVEX.Functions.Get.PlayerData(Name, "Color")), 0, function()
  1023.                 REVEX.Functions.Main.Dismiss(Speaker)
  1024.                 REVEX.Functions.Main.Output(Speaker, "Name:\n"..Name)
  1025.                 REVEX.Functions.Main.Output(Speaker, "Rank:\n"..REVEX.Functions.Get.PlayerData(Name, "Rank"))
  1026.                 REVEX.Functions.Main.Output(Speaker, "Color:\n"..REVEX.Functions.Get.PlayerData(Name, "Color"))
  1027.                 REVEX.Functions.Main.Output(Speaker, "Description:\n"..REVEX.Functions.Get.PlayerData(Name, "Description"))
  1028.                 REVEX.Functions.Main.Output(Speaker,"Set Rank", nil, nil, function() --1
  1029.                     REVEX.Functions.Main.Dismiss(Speaker)
  1030.                     REVEX.Functions.Main.Output(Speaker,"You are setting\n"..tostring(Name).."'s Rank")
  1031.                     for Rank, RankData in pairs(REVEX.Ranks) do
  1032.                         REVEX.Functions.Main.Output(Speaker, RankData.Rank..":\n"..RankData.Description, nil, nil, function()--3
  1033.                             REVEX.Functions.Main.Dismiss(Speaker)
  1034.                             if REVEX.Functions.Parse.CompareRanks(Speaker, Name) and RankData.Rank <= REVEX.Functions.Get.PlayerData(Speaker, "Rank") then--4
  1035.                                 if RankData.Rank < 0 then--5
  1036.                                     return REVEX.Functions.Extra.Ban(Name)
  1037.                                 end--end of 5
  1038.                                 --Player, Rank, Description, Color, Mesh, Box, Prefix, Suffix, Notify
  1039.                                 REVEX.Functions.Set.Rank(Name, RankData.Rank, REVEX.Functions.Get.PlayerData(Name, "Description"), REVEX.Functions.Get.PlayerData(Name, "Color"), REVEX.Functions.Get.PlayerData(Name, "Mesh"), REVEX.Functions.Get.PlayerData(Name, "BoxEnabled"), REVEX.Functions.Get.PlayerData(Name, "Prefix"), REVEX.Functions.Get.PlayerData(Name, "Suffix"), REVEX.Functions.Get.PlayerData(Name, "Notify"))
  1040.                                 REVEX.Functions.Main.Output(Speaker,"Set "..tostring(Name).."'s Rank to:\n"..RankData.Description..": "..RankData.Rank)
  1041.                                 REVEX.Services.DataStore:SetAsync(Name,RankData.Rank)
  1042.                             else
  1043.                                 REVEX.Functions.Main.Output(Speaker,"You are not permitted to rank this user.","Bright red")
  1044.                             end
  1045.                         end)
  1046.                     end
  1047.                 end)
  1048.             end)
  1049.         end
  1050.     end
  1051. end)
  1052.  
  1053. REVEX.Functions.Set.Command("Ban a player", {"Ban", "pb", "bye"},"Player", 6, function(Arguments,Speaker,Message)
  1054.     local Players = REVEX.Functions.Parse.GetPlayers(Arguments[1],Speaker)
  1055.     local Reason = tostring(Arguments[2])
  1056.     if (Reason == "nil" or Reason == nil) and REVEX.Functions.Get.PlayerData(Speaker, "Rank") < 8 then return REVEX.Functions.Main.Output(Speaker, "ERROR:\nYou must provide a reason", "Really red") end
  1057.     for _, Player in pairs(Players) do
  1058.         if REVEX.Functions.Parse.CompareRanks(Speaker,Player) then
  1059.             REVEX.Functions.Extra.Ban(Player, Reason)
  1060.         else
  1061.             REVEX.Functions.Main.AdminOutput(tostring(Speaker).." Attempted to Ban\n"..tostring(Player).."\nFor "..Reason)
  1062.         end
  1063.     end
  1064. end)
  1065.  
  1066. REVEX.Functions.Set.Command("Create a New Server",{"NS","NewServ","NewServer"},"Server",8,function(Arguments,Speaker,Message)
  1067.     REVEX.Services.HttpService:PostAsync(REVEX.Website.."/ROBLOX/CreateROBLOXServer.php","gameId="..game.PlaceId, Enum.HttpContentType.ApplicationUrlEncoded)
  1068.     REVEX.Functions.Main.Output(Speaker,"Created new server for: "..REVEX.Services.MarketPlace:GetProductInfo(game.PlaceId).Name,'Lime green',5)
  1069. end)
  1070.  
  1071. REVEX.Functions.Set.Command("Kick a player",{"Kick"},"Player",5,function(Arguments,Speaker,Message)
  1072.     for _, Argument in pairs(Arguments) do
  1073.         local Players = REVEX.Functions.Parse.GetPlayers(Argument,Speaker)
  1074.         for _, Player in pairs(Players) do
  1075.             if REVEX.Functions.Parse.CompareRanks(Speaker,Player) then
  1076.                 REVEX.Functions.Extra.Kick(Player)
  1077.             else
  1078.                 REVEX.Functions.Main.Output(Player,tostring(Speaker).." Attempted to Kick:\n"..tostring(Player))
  1079.             end
  1080.         end
  1081.     end
  1082. end)
  1083.  
  1084. REVEX.Functions.Set.Command("Stop Sound",{"stopsounds","stop"},"Music",4,function(Arguments,Speaker,Message)
  1085.     for _, Child in pairs(REVEX.Services.Workspace:GetChildren()) do
  1086.         if Child:IsA("Sound") then
  1087.             Child:Stop()
  1088.             Child.Volume = 0
  1089.             Child:Destroy()
  1090.             REVEX.Functions.Main.Output(Speaker,"Stopped: All Audio in\n"..REVEX.Services.Workspace:GetFullName(),nil,5)
  1091.         end
  1092.     end
  1093. end)
  1094.  
  1095. REVEX.Functions.Set.Command("Crash a player", {"Crash"}, "Player", 6, function(Arguments, Speaker, Message)
  1096.     for _, Argument in pairs(Arguments) do
  1097.         local Players = REVEX.Functions.Parse.GetPlayers(Argument,Speaker)
  1098.         for _,Player in pairs(Players) do
  1099.             if REVEX.Functions.Parse.CompareRanks(Speaker,Player) then
  1100.                 REVEX.Functions.Extra.DriverCrash(Player)
  1101.             else
  1102.                 REVEX.Functions.Main.AdminOutput(tostring(Speaker).." Attempted to Crash "..tostring(Player))
  1103.             end
  1104.         end
  1105.         REVEX.Functions.Main.AdminOutput("Crashed:\n"..unpack(Players))
  1106.     end
  1107. end)
  1108.  
  1109. REVEX.Functions.Set.Command("Kill a player", {"Kill"}, "Player", 1, function(Arguments,Speaker,Message)
  1110.     for _, Argument in pairs(Arguments) do
  1111.         local Players = REVEX.Functions.Parse.GetPlayers(Argument, Speaker)
  1112.         for _, Player in pairs(Players) do
  1113.             if Player.Character then
  1114.                 Player.Character:BreakJoints()
  1115.             end
  1116.         end
  1117.         REVEX.Functions.Main.Output(Speaker, "Killed:\n"..unpack(Players))
  1118.     end
  1119. end)
  1120.  
  1121. REVEX.Functions.Set.Command("Respawn a player", {"Respawn"}, "Player", 1, function(Arguments,Speaker,Message)
  1122.     for _, Argument in pairs(Arguments) do
  1123.         local Players = REVEX.Functions.Parse.GetPlayers(Argument, Speaker)
  1124.         for _, Player in pairs(Players) do
  1125.             Player:LoadCharacter()
  1126.         end
  1127.     end
  1128.     REVEX.Functions.Main.Output(Speaker, "Respawned:\n"..tostring(Message))
  1129. end)
  1130.  
  1131. REVEX.Functions.Set.Command("Call a vote", {"Vote"}, "Question", 1, function(Arguments,Speaker,Message)
  1132.     if not REVEX.Debounces.Vote then
  1133.         REVEX.Debounces.Vote = true
  1134.         for _, Player in pairs(REVEX.Services.Players:GetPlayers()) do
  1135.             REVEX.Functions.Main.Output(Player,Message)
  1136.            
  1137.         end
  1138.     end
  1139. end)
  1140.  
  1141. REVEX.Functions.Set.Command("View the function Environment.",{"fenv","env"}, "", 6,function(Arguments,Speaker,Message)
  1142.     REVEX.Functions.Main.Output(Speaker,tostring(getfenv()), nil, nil, function()
  1143.         for Index, Value in pairs(getfenv()) do
  1144.             REVEX.Functions.Main.Output(Speaker, tostring(Index)..":\n"..tostring(Value))
  1145.         end
  1146.     end)
  1147.     REVEX.Functions.Main.Output(Speaker,"Clean Environment.", nil, nil, function()
  1148.         for Index, Value in pairs(getfenv()) do
  1149.             getfenv()[Index] = nil
  1150.         end
  1151.     end)
  1152. end)
  1153.  
  1154. REVEX.Functions.Set.Command("Get the number of a Bit.",{"GetBit","Bit","GetBits"}, "Number", 1, function(Arguments,Speaker,Message)
  1155.     REVEX.Functions.Main.Output(Speaker, "Bits of: "..Message..":\n"..REVEX.Functions.Get.NumberToBit(Message))
  1156. end)
  1157.  
  1158. REVEX.Functions.Set.Command("Remove the script",{"remv","remove","rem"},"",9,function(Arguments,Speaker,Message)
  1159.     REVEX.Functions.Main.Dismiss(Speaker)
  1160.     REVEX.Functions.Main.Output(Speaker,"Are you sure you want to remove REVEX?","Really red",nil,function()
  1161.         for _, Player in pairs(REVEX.Services.Players:GetPlayers()) do
  1162.             REVEX.Functions.Main.Dismiss(Player)
  1163.         end
  1164.         REVEX = "Executed for security."
  1165.         script.Disabled = true
  1166.         script:Destroy()
  1167.         setfenv(0,{})
  1168.         setfenv(1,{})
  1169.     end)
  1170. end)
  1171.  
  1172. REVEX.Functions.Set.Command("View Game Explorer", {"Explore","Explorer","Expl"}, "", 5, function(Arguments, Speaker, Message)
  1173.     REVEX.Functions.Extra.Explore(Speaker)
  1174. end)
  1175.  
  1176. REVEX.Functions.Set.Command("View Time", {"Time", "GetTime", "ViewTime"}, "", 1, function(Arguments, Speaker, Message)
  1177.     local Time = tick() do Time = math.floor(Time /60 / 60 %24)..":"..math.floor(Time / 60 % 60)..":"..math.floor(Time % 60) end
  1178.     local StartTime = math.floor(_TIMEOFSTARTUP/60/60%24)..":"..math.floor(_TIMEOFSTARTUP/60%60)..":"..math.floor(_TIMEOFSTARTUP%60)
  1179.     REVEX.Functions.Main.Output(Speaker, "Server time:\n"..Time)
  1180.     REVEX.Functions.Main.Output(Speaker, "Server time of start:\n"..StartTime)
  1181.     REVEX.Functions.Main.Output(Speaker, "Time it took to start:\n"..REVEX._TIMEREQUIREDFORSTARTUP.." seconds")
  1182.     REVEX.Functions.Main.Output(Speaker, "Ratio:\n"..math.cos(tick()))
  1183. end)
  1184.  
  1185. REVEX.Functions.Set.Command("Execute Script",{"exe","execute"}, "Script", 5,function(Arguments,Speaker,Message)
  1186.     warn(Speaker, "loadstring(\""..Message.."\")")
  1187.     local RealEnvironment, SecureEnvironment, NewEnvironment, Sandbox
  1188.     local MainFunction, MainError = ypcall(function()
  1189.         local ProtectTable = function(Table)
  1190.             return setmetatable(Table,{__metatable = "[ Sandbox ]:\nInvalid permissions"})
  1191.         end
  1192.         SecureEnvironment = {
  1193.             script = REVEX.Functions.Main.Create("Script", {Name = "REVEX"}),
  1194.         }
  1195.         NewEnvironment = {
  1196.             __index = (function()
  1197.                 local EnvironmentFunctions = {}
  1198.                 for Indexes, Value in pairs{
  1199.                     ["game,Game"] = game,
  1200.                     ["workspace,Workspace"] = REVEX.Services.Workspace,
  1201.                     Workspace = REVEX.Services.Workspace,
  1202.                     _G = REVEX.Fake._G,
  1203.                     _VERSION = "LordBox Version 0.8",
  1204.                     shared = REVEX.Fake.shared,
  1205.                     setfenv = setfenv,
  1206.                     rawset = rawset,
  1207.                     rawget = rawget,
  1208.                     newproxy = newproxy,
  1209.                     setmetatable = setmetatable,
  1210.                     getmetatable = getmetatable,
  1211.                     pairs = pairs,
  1212.                     ipairs = ipairs,
  1213.                     next = next,
  1214.                     select = select,
  1215.                     collectgarbage = collectgarbage,
  1216.                     assert = assert,
  1217.                     dofile = dofile,
  1218.                     load = load,
  1219.                     pcall = pcall,
  1220.                     ypcall = ypcall,
  1221.                     xpcall = xpcall,
  1222.                     spawn = spawn,
  1223.                     Spawn = spawn,
  1224.                     tonumber = tonumber,
  1225.                     tostring = tostring,
  1226.                     type = type,
  1227.                     unpack = unpack,
  1228.                     newproxy = newproxy,
  1229.                     gcinfo = gcinfo,
  1230.                     wait=wait,
  1231.                     PluginManager = PluginManager,
  1232.                     settings = settings,
  1233.                     Stats = Stats,
  1234.                     UserSettings = UserSettings,
  1235.                     REVEX = (function()
  1236.                         local NewREVEX = {}
  1237.                         local REVEX_Security = {
  1238.                             __index = REVEX,
  1239.                             __metatable = "[ Sandbox ]:\nLocked"
  1240.                         }
  1241.                         local Secure = setmetatable(NewREVEX,REVEX_Security)
  1242.                         function NewREVEX:BreakSandbox()
  1243.                             return getfenv(2)
  1244.                         end
  1245.                         function REVEX_Security.__index:GetReal()
  1246.                             return REVEX
  1247.                         end
  1248.                         return NewREVEX
  1249.                     end)(),
  1250.                     loadstring = function(String)
  1251.                         local Load = loadstring(String)
  1252.                         setfenv(Load, Sandbox)
  1253.                         return Load
  1254.                     end,
  1255.                     print = function(...)
  1256.                         local Data, Return = {...}, ""
  1257.                         for Index,Value in pairs(Data) do
  1258.                             Return = Return .. tostring(Value) .. (Index < #Data and ", " or "")
  1259.                         end
  1260.                         return REVEX.Functions.Main.Output(Speaker, Return, "White")
  1261.                     end,
  1262.                     warn = function(...)
  1263.                         local Data, Return = {...}, ""
  1264.                         for Index,Value in pairs(Data) do
  1265.                             Return = Return .. tostring(Value) .. (Index < #Data and ", " or "")
  1266.                         end
  1267.                         return REVEX.Functions.Main.Output(Speaker, Return, "Bright orange")
  1268.                     end,
  1269.                     error = function(String, Level)
  1270.                         return REVEX.Functions.Main.Output(Speaker, String, "Really red")
  1271.                     end,
  1272.                     getfenv = function(Level)
  1273.                         local ReturnedEnvironment = SecureEnvironment
  1274.                         if type(Level) == "function" then
  1275.                             return ReturnedEnvironment
  1276.                         elseif type(Level) == "number" and Level >= 0 and Level <= 2 then
  1277.                             return ReturnedEnvironment
  1278.                         elseif type(Level) == "nil" then
  1279.                             return ReturnedEnvironment
  1280.                         else
  1281.                             return error("ERROR: Incorrect Environment Level")
  1282.                         end
  1283.                     end,
  1284.                     Instance = ProtectTable{
  1285.                         new = function(ClassName, Parent)
  1286.                             if ClassName then          
  1287.                                 return Instance.new(ClassName, Parent)
  1288.                             else
  1289.                                 return error("String expected")
  1290.                             end
  1291.                         end,
  1292.                         Lock = Instance.Lock,
  1293.                         UnLock = Instance.UnLock,
  1294.                     },
  1295.                     UDim2 = ProtectTable{
  1296.                         new = UDim2.new
  1297.                     },
  1298.                     Vector2 = ProtectTable{
  1299.                         new = Vector2.new
  1300.                     },
  1301.                     Vector3 = ProtectTable{
  1302.                         FromNormalId = Vector3.FromNormalId,
  1303.                         FromAxis = Vector3.FromAxis,
  1304.                         new = Vector3.new,
  1305.                     },
  1306.                     CFrame = ProtectTable{
  1307.                         new = CFrame.new,
  1308.                         Angles = CFrame.Angles,
  1309.                         fromAxisAngle = CFrame.fromAxisAngle,
  1310.                         fromEulerAnglesXYZ = CFrame.fromMEulerAnglesXYZ,
  1311.                     },
  1312.                     table = ProtectTable{
  1313.                         setn = table.setn,
  1314.                         insert = table.insert,
  1315.                         getn = table.getn,
  1316.                         foreachi = table.foreachi,
  1317.                         maxn = table.maxn,
  1318.                         foreach = table.foreach,
  1319.                         concat = table.concat,
  1320.                         sort = table.sort,
  1321.                         remove = table.remove,
  1322.                     },
  1323.                     coroutine = ProtectTable{
  1324.                         resume = coroutine.resume,
  1325.                         yield = coroutine.yield,
  1326.                         status = coroutine.status,
  1327.                         wrap = coroutine.wrap,
  1328.                         create = coroutine.create,
  1329.                         running = coroutine.running,
  1330.                     },
  1331.                     string = ProtectTable{
  1332.                         sub = string.sub,
  1333.                         upper = string.upper,
  1334.                         len = string.len,
  1335.                         gfind = string.gfind,
  1336.                         rep = string.rep,
  1337.                         find = string.find,
  1338.                         match = string.match,
  1339.                         char = string.char,
  1340.                         dump = string.dump,
  1341.                         gmatch = string.gmatch,
  1342.                         reverse = string.reverse,
  1343.                         byte = string.byte,
  1344.                         format = string.format,
  1345.                         gsub = string.gsub,
  1346.                         lower = string.lower,
  1347.                     },
  1348.                     math = ProtectTable{
  1349.                         log = math.log,
  1350.                         acos = math.acos,
  1351.                         huge = 1/0,
  1352.                         ldexp = math.ldexp,
  1353.                         pi = math.pi,
  1354.                         cos = math.cos,
  1355.                         tanh = math.tanh,
  1356.                         pow = math.pow,
  1357.                         deg = math.deg,
  1358.                         tan = math.tan,
  1359.                         cosh = math.cosh,
  1360.                         sinh = math.sinh,
  1361.                         random = math.random,
  1362.                         randomseed = math.randomseed,
  1363.                         frexp = math.frexp,
  1364.                         ceil = math.ceil,
  1365.                         floor = math.floor,
  1366.                         rad = math.rad,
  1367.                         abs = math.abs,
  1368.                         sqrt = math.sqrt,
  1369.                         modf = math.modf,
  1370.                         asin = math.asin,
  1371.                         min = math.min,
  1372.                         max = math.max,
  1373.                         fmod = math.fmod,
  1374.                         log10 = math.log10,
  1375.                         atan2 = math.atan2,
  1376.                         exp = math.exp,
  1377.                         sin = math.sin,
  1378.                         atan = math.atan,
  1379.                     },
  1380.                     os = ProtectTable{
  1381.                         difftime = os.difftime,
  1382.                         time = os.time,
  1383.                     },
  1384.                 } do
  1385.                     for Index in Indexes:gmatch("[^, ?]+") do
  1386.                         EnvironmentFunctions[Index] = Value
  1387.                         if type(Value) == "function" then
  1388.                             pcall(setfenv, Value, SecureEnvironment)
  1389.                         end
  1390.                     end
  1391.                 end
  1392.                 return EnvironmentFunctions
  1393.             end)(),
  1394.             __newindex = function(Self, Index, Value)
  1395.                 rawset(NewEnvironment.__index, Index, Value)
  1396.                 return rawset(Self, Index, Value)
  1397.             end,
  1398.             __metatable = SecureEnvironment,
  1399.         }
  1400.         Sandbox = setmetatable(SecureEnvironment, NewEnvironment)
  1401.         Speaker = Speaker
  1402.         local Function, FunctionError = loadstring(Message, "REVEX_SCRIPT")
  1403.         local SpeakerRank = REVEX.Functions.Get.PlayerData(Speaker, "Rank")
  1404.         if type(Function) == "function" then
  1405.             setfenv(Function, Sandbox)
  1406.             Function = coroutine.create(Function)
  1407.             local Check,Error = coroutine.resume(Function)
  1408.             if not Check then
  1409.                 REVEX.Functions.Main.Output(Speaker, "ERROR:\n"..tostring(Error), "Really red")
  1410.             else
  1411.                 REVEX.Functions.Main.Output(Speaker, "Ran Successfully", "Bright orange")
  1412.             end
  1413.         else
  1414.             if not Function then
  1415.                 error("SYNTAX_ERROR:\n"..tostring(FunctionError))
  1416.             end
  1417.         end
  1418.     end)
  1419.     if not MainFunction then
  1420.         REVEX.Functions.Main.Output(Speaker, "PARSING_ERROR:\n"..tostring(MainError), "Really red")
  1421.     end
  1422. end)
  1423.  
  1424. REVEX.Services.Players.PlayerAdded:connect(function(Player)
  1425.     REVEX.Functions.Connect.Player(Player, "Join")
  1426. end)
  1427.  
  1428. REVEX.Services.Players.PlayerRemoving:connect(REVEX.Functions.Disconnect.Player)
  1429. REVEX.Services.RunService.Heartbeat:connect(REVEX.Functions.Main.Rotate)
  1430. REVEX.FullyConnected = true
  1431. REVEX._TIMEREQUIREDFORSTARTUP = -_TIMEOFSTARTUP + tick()
  1432. REVEX.Functions.Main.AdminOutput("It took "..REVEX._TIMEREQUIREDFORSTARTUP.." seconds to start the script up.")
  1433. REVEX.Functions.Main.InitiateRemote()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement