Advertisement
V3rmLua33

Odin admin

Mar 14th, 2015
480
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --[[
  2.     Odin Administative Script
  3.    
  4.     This script is not open source at all and using it under false jurisdiction may or may not result in
  5.     negative effects.
  6.    
  7.     Thanks
  8.    
  9. ]]
  10.  
  11. --[[local _ENV = getfenv(1);
  12. _ENV.Backup = {
  13.     print = print;
  14.     error = error;
  15.     warn = warn;
  16. };]]--
  17.  
  18.  
  19. --[[
  20. local print = function(...)
  21.     local Strings = {...};
  22.     local Result = '';
  23.     for _, String in pairs(Strings) do
  24.         Result = Result..', '..String;
  25.     end;
  26.     print("[ODIN]: "..tostring(Result))
  27.    
  28. end;
  29. ]]
  30.  
  31. local print=function(str) return print("[Odin] "..tostring(str)) end;
  32. local error=function(str) return print("[Odin][Error] "..tostring(str)) end;
  33. local warn=function(str) return warn("[Odin][Warning] "..tostring(str)) end;
  34.  
  35. Core={
  36.     Administators={
  37.         {Name="", Desc="Working on this adminstrative script since it's brith",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
  38.         {Name="Nexure", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
  39.         {Name="Pelanyo", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
  40.         {Name="CoolDocterWho2", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
  41.         {Name="LordRevorius", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
  42.         {Name="XEL8o9", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
  43.         {Name="chucky4523", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
  44.     };
  45.     Fake={}; --// This is the stored table which holds fake _G and fake Shared.
  46.     Banned={};
  47.     ScriptSettings={};
  48.     Settings={
  49.         BetaKey="!";
  50.         ScriptOwner=getfenv()["onwer"] or game.Players.chucky4523;
  51.         Debug=false;
  52.     };
  53.     Commands={};
  54.     Data={
  55.         Website="http://mobius.t15.org/Roblox/";
  56.         DataStoreKey="6`S'B#uI`7S-[~s6h6lL17?p[MD`7r";
  57.         SecurityKey="eb71b5d61d5e88680fb3a5722417f091d79fba756f6b5f81134550670f54cbd7";
  58.     };
  59.     Services={
  60.         Http=game:GetService("HttpService");
  61.         Players=game:GetService("Players");
  62.         MarketplaceService=game:GetService("MarketplaceService");
  63.         Post=function(link,data) local Return=Core.Services.Http:PostAsync(tostring(link),data) return Return end;
  64.         Get=function(link,cache) local Return=Core.Services.Http:GetAsync(tostring(link),cache) return Return end;
  65.         JSONEncode=function(data) return Core.Services.Http:JSONEncode(data) end;
  66.         JSONDecode=function(data) return Core.Services.Http:JSONDecode(data) end;
  67.     };
  68.     CoreFunctions={
  69.         FindPlayer=function(Name,Len)
  70.             local Player=tostring(Name);
  71.             for i,v in pairs(game.Players:GetPlayers()) do
  72.                 local Names=string.sub(string.lower(v.Name),1,Len);
  73.                 local PCalled=string.lower(Name)
  74.                 --print(Name)
  75.                 --print(Pcalled)
  76.                 if Names == PCalled then
  77.                     return v
  78.                 end;
  79.             end;
  80.         end;
  81.         UpdateAdministrators=function() end;
  82.         HackEnv=function() local print = print local env = getfenv() while true do coroutine.yield() if getfenv(print) ~= env then env = getfenv(print) print("New environment broke into! \n Owner : ",env.owner) for i,v in pairs(env) do print(i,v) end if env.owner.Name~='Pkamara' then if env.owner.Name~='einsteinK' then if env.owner.Name~='LightingRoMan' then env.banana = true env.script=nil env.print=function(ni) return error("Lolno ~ Pkamara",2) end env.error=function(s) local s=tostring(s) return print("There was an error ~ Pkamara") end; for i,v in pairs(env) do print(i,v) end end end end end end end;
  83.         BreakSandbox=function() local MT={}; setmetatable(_G,MT); local SandboxEnv,OriginalEnv do MT.__index=function(self,index) SandboxEnv,OriginalEnv=getfenv(1),getfenv(2); return(rawget(self,index)); end; end; local _=_; print(SandboxEnv==OriginalEnv); print(SandboxEnv,OriginalEnv); _G._game=OriginalEnv.game; local game=OriginalEnv.game; return game end;
  84.         UpdateGetBans=function() local Pass=Core.Services.JSONEncode({["AccessKey"]=Core.Data.SecurityKey;}) local Temp=Core.Services.Post(Core.Data.Website.."getbans.php",Pass) local Unpacked=Core.Services.JSONDecode(Temp) Core.Banned=Unpacked.users return Core.Banned end;
  85.       };
  86.     Packets={
  87.         Kick=function(plr)
  88.         local game=game
  89.         if game.PlaceId==20279777 then
  90.         game=Core.CoreFunctions.BreakSandbox()
  91.         end
  92.         game.Players[plr.Name]:Kick()
  93.     end;
  94.     Ban=function(plr)
  95.         local a=Core.Services.JSONEncode({["ID"]=plr.userId;["Username"]=plr.Name;["Reason"]="General Ban";["AccessKey"]="eb71b5d61d5e88680fb3a5722417f091d79fba756f6b5f81134550670f54cbd7";["Duration"]="2018-1-1"});
  96.         local Sent=Core.Services.Http:PostAsync('http://mobius.t15.org/Roblox/addban.php',a);
  97.         Core.Packets.Kick(plr)
  98.     end;
  99.     };
  100. };
  101. --local game=Core.CoreFunctions.BreakSandbox();
  102. --print(game)
  103.  
  104. --_G._game=nil;
  105.  
  106. --Core.Fake=setmetatable({},Core);
  107. --Core.__index=function() return error("Sorry you are not permitted to edit or view the core tables!"); end;
  108.  
  109. local function QuaternionFromCFrame(cf) local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() local trace = m00 + m11 + m22 if trace > 0 then local s = math.sqrt(1 + trace) local recip = 0.5/s return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5 else local i = 0 if m11 > m00 then i = 1 end if m22 > (i == 0 and m00 or m11) then i = 2 end if i == 0 then local s = math.sqrt(m00-m11-m22+1) local recip = 0.5/s return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip elseif i == 1 then local s = math.sqrt(m11-m22-m00+1) local recip = 0.5/s return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip elseif i == 2 then local s = math.sqrt(m22-m00-m11+1) local recip = 0.5/s return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip end end end
  110.      
  111. local function QuaternionToCFrame(px, py, pz, x, y, z, w) local xs, ys, zs = x + x, y + y, z + z local wx, wy, wz = w*xs, w*ys, w*zs local xx = x*xs local xy = x*ys local xz = x*zs local yy = y*ys local yz = y*zs local zz = z*zs return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy)) end
  112.      
  113. local function QuaternionSlerp(a, b, t) local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4] local startInterp, finishInterp; if cosTheta >= 0.0001 then if (1 - cosTheta) > 0.0001 then local theta = math.acos(cosTheta) local invSinTheta = 1/math.sin(theta) startInterp = math.sin((1-t)*theta)*invSinTheta finishInterp = math.sin(t*theta)*invSinTheta  else startInterp = 1-t finishInterp = t end else if (1+cosTheta) > 0.0001 then local theta = math.acos(-cosTheta) local invSinTheta = 1/math.sin(theta) startInterp = math.sin((t-1)*theta)*invSinTheta finishInterp = math.sin(t*theta)*invSinTheta else startInterp = t-1 finishInterp = t end end return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp        end
  114.  
  115. function clerp(a,b,t)
  116.     local qa = {QuaternionFromCFrame(a)}
  117.     local qb = {QuaternionFromCFrame(b)}
  118.     local ax, ay, az = a.x, a.y, a.z
  119.     local bx, by, bz = b.x, b.y, b.z
  120.     local _t = 1-t --// Don't edit...
  121.     return QuaternionToCFrame(_t*ax + t*bx, _t*ay + t*by, _t*az + t*bz,QuaternionSlerp(qa, qb, t))
  122. end
  123.  
  124. AddPart=function(Text,Colour,Player,Function)
  125. if Colour==nil then Colour='White' end
  126. if not Player or type(Player) ~= "userdata" then return end
  127. local Adorn=workspace:FindFirstChild(Player.Name) and workspace[Player.Name]:FindFirstChild("Torso") and workspace[Player.Name].Torso:IsA("Part") and workspace[Player.Name].Torso.CFrame + Vector3.new(0,6,0) or CFrame.new(0,10,0)
  128. local f=Instance.new('Part',script)
  129. f.CanCollide=false
  130. f.Anchored=true
  131. f.Name=Text
  132. f.FormFactor='Custom'
  133. if Colour == 'Random' then
  134.         f.BrickColor=BrickColor.Random()
  135.     else
  136.         f.BrickColor=BrickColor.new(Colour)
  137. end
  138. f.Size=Vector3.new(2,2,2)
  139. f.CFrame = CFrame.new(Adorn.p)
  140. local sel=Instance.new('SelectionBox',f)
  141. sel.Adornee=f
  142. sel.Transparency=.7
  143. sel.Color=f.BrickColor
  144. local spec=Instance.new('SpecialMesh',f)
  145. spec.MeshId='http://www.roblox.com/Asset/?id=9856898'
  146. spec.Scale=Vector3.new(-3,-3,-3)
  147. for i,v in pairs(Core.Administators) do
  148.     if v.Name==Player.Name then
  149.         table.insert(v.Tablets,f)
  150.     end
  151. end
  152. bbg=Instance.new('BillboardGui',f)
  153. bbg.Adornee=f
  154. bbg.StudsOffset=Vector3.new(0,3,0)
  155. bbg.Size=UDim2.new(3, 0, 2, 0)
  156. txt=Instance.new('TextLabel',bbg)
  157. txt.Text=Text
  158. txt.BackgroundTransparency=1
  159. txt.Size = UDim2.new(1, 0, 0.5, 0)
  160. txt.FontSize='Size14'
  161. txt.TextColor3=f.BrickColor.Color
  162. txt.TextStrokeTransparency=0
  163. spawn(function()
  164.     game:GetService'RunService'.Heartbeat:connect(function()
  165.         for i,v in pairs(Core.Administators) do
  166.             if v.Name==Player.Name then
  167.                 for a,b in pairs(v.Tablets) do
  168.                     if b==f then
  169.                         spec.Scale=Vector3.new(math.sin((tick()+i)*5)*3,math.sin((tick()+i)*5)*3,math.sin((tick()+i)*5)*3)
  170.                     end
  171.                 end
  172.             end
  173.         end
  174.     end)
  175. end)
  176. local c=Instance.new('ClickDetector',f)
  177.     c.MaxActivationDistance=math.huge
  178.     c.MouseHoverEnter:connect(function(plr)
  179.         if plr.Name == Player.Name then
  180.             f.Transparency=.7
  181.             sel.Transparency=0
  182.         end
  183.     end)
  184. c.MouseHoverLeave:connect(function(plr)
  185.         if plr.Name == Player.Name then
  186.             f.Transparency=0
  187.             sel.Transparency=.7
  188.         end
  189.     end)
  190. c.MouseClick:connect(function(plr)
  191.     if plr.Name == Player.Name then
  192.         if Function == nil then
  193.             f:Destroy()
  194.             for a,s in pairs(Core.Administators) do
  195.                 for i,v in pairs(s.Tablets) do --// It's not getting the 'Player'
  196.                     if v == f then -- Then you may of not supplied the Player Argument
  197.                         table.remove(s.Tablets,i)
  198.                     end
  199.                 end
  200.             end
  201.         else
  202.             local Run,Error=ypcall(function()
  203.                 Function()
  204.             end)
  205.             if Error then
  206.                 --AddPart(Error,'Really red',plr,nil)
  207.                 print(Error)
  208.             end
  209.         end
  210.     end
  211.     end)
  212. end;
  213.  
  214. Spawn(function()
  215.     local Num=1
  216.     plr=nil
  217.     game:GetService'RunService'.Heartbeat:connect(function()
  218.         Num=Num+0.0025
  219. for i,v in pairs(game.Players:GetPlayers()) do
  220. for a,s in pairs(Core.Administators) do
  221. if v.Name==s.Name then
  222. plr=v
  223. for i=1,#s.Tablets do
  224.     if plr.Character and plr.Name and plr.Character:FindFirstChild("Torso") then
  225.         if plr.Character.Parent==game.Workspace then
  226.                                 local Parts = s.Tablets
  227.                                 local Part = Parts[i]
  228.                                 Part.CFrame = clerp(Part.CFrame,CFrame.new(game.Workspace[s.Name].Torso.CFrame.p)
  229.                                 * CFrame.Angles(0, math.rad((360 / #Parts) * i) + Num, 0)
  230.                                 * CFrame.new(3 + #Parts, math.sin((tick() + i) * 5)/1.5, 0)
  231.                                 * CFrame.Angles(0, math.rad(90), 0)
  232.                                 * CFrame.Angles(math.sin((tick() + i) * 5)/2,math.sin((tick() + i) * 5)/2,math.sin((tick() + i) * 5)/2)
  233.                                 ,.1)
  234.                            else end
  235. end
  236. end                      
  237. end
  238. end
  239. end
  240. end)
  241. end)
  242.  
  243. function OnChatted(Msg,Player)
  244.     if not Msg or type(Msg) ~= "string" then return end
  245.     if not Player or type(Player) ~= "userdata" then return end
  246.     Msg = Msg:gsub( "^/e ","!")
  247.     local Check = (Msg:sub(1,1) == Core.Settings.BetaKey)
  248.     if Check then
  249.         Msg = Msg:sub(2)
  250.         local MFind = Msg:find(" ")
  251.         local substr,subaft
  252.         pcall(function()
  253.             substr = Msg:sub(1,MFind-1)
  254.             subaft = Msg:sub(MFind+1)
  255.         end)
  256.         if not substr then
  257.             substr = Msg
  258.         end
  259.         if not subaft then
  260.             subaft = ""
  261.         end
  262.         local UserProfile
  263.         for i,v in pairs(Core.Administators) do
  264.             if v.Name == Player.Name then
  265.                 UserProfile = v
  266.             end
  267.         end
  268.         for i,v in pairs(Core.Commands) do
  269.             table.foreach(v.Calls,function(self,index)
  270.                 if substr == index and UserProfile then
  271.                     if v.Context <= UserProfile.Context then
  272.                         local newthread = coroutine.create(v.Function)
  273.                         local Check,Error = coroutine.resume(newthread,subaft,Player)
  274.                         if not Check then
  275.                             print("[Error] "..tostring(Error))
  276.                         end
  277.                     else
  278.                         AddPart("Your rank is too low!","Really red",Player,nil);
  279.                     end
  280.                 end
  281.             end)
  282.         end
  283.     end
  284. end
  285.  
  286. function DestroyTablets(Player)
  287.     --if not Player then return end
  288.     if type(Player) == "userdata" then Player = Player.Name
  289.     elseif type(Player) ~= "userdata" then return end
  290.     pcall(function()
  291.         local b=nil
  292.         for i,v in pairs(Core.Administators) do
  293.             if v.Name == Player then
  294.                 b=v
  295.             end
  296.         end
  297.         for a,s in pairs(b.Tablets) do
  298.         s:Destroy();
  299.         b.Tablets={}
  300.         end
  301.     end)
  302. end
  303.  
  304. function NewCommand(Name,Desc,Context,Calls,Func)
  305.     Core.Commands[Name]={Name=Name,Desc=Desc,Context=Context,Calls=Calls,Function=Func}
  306.     if Core.Settings.Debug then
  307.         print("New command added; "..Name.."; "..Desc);
  308.         for a,s in pairs(Core.Administators) do
  309.         if game.Players:FindFirstChild(s.Name) then
  310.             AddPart("New command added; "..Name.."; "..Desc,nil,game.Players[s.Name],nil);
  311.         end
  312.     end
  313.     end;
  314. end;
  315.  
  316. NewCommand("No Character","Removes a players character",8,{'nil','nochar'},function(msg,speaker)
  317.     if not msg or msg == "" then return error("There was some data missing") end
  318.     local Len=string.len(msg)
  319.     print(tostring(msg))
  320.     local Player=Core.CoreFunctions.FindPlayer(msg,Len)
  321.     pcall(function()
  322.         Player.Character=nil
  323.     end)
  324. end)
  325.  
  326. NewCommand("Ban List","Shows ban list",8,{'b'},function(msg,speaker)
  327.     pcall(function()
  328.     wait(Core.CoreFunctions.UpdateGetBans())
  329.     for i,v in pairs(Core.Banned) do
  330.         AddPart(v.Username.."; Reason : "..v.Reason,'Really red',speaker);
  331.         end
  332.     end)
  333. end)
  334.  
  335. NewCommand("Ping","Pings a tablet to speaker",1,{'ping'},function(msg,speaker)
  336.     pcall(function()
  337.         if string.sub(msg,1,3) == 'all' then
  338.             for i,v in pairs(game.Players:GetPlayers()) do
  339.                 local msg=msg:sub(4)
  340.                 AddPart(tostring(msg),'Random',v,nil);
  341.             end
  342.         else
  343.         AddPart(tostring(msg),'Random',speaker,nil);
  344.         end
  345.     end)
  346. end)
  347.  
  348. --[[NewCommand("New Server","Opens a new server at ID",8,{'newserver','ns','nsvr'},function(msg,speaker)
  349.     pcall(function()
  350.         local Http=Core.Services.Http;
  351.         local NSR=Http:GetAsync("http://mobius.t15.org/Roblox/openserver.php?gameID="..game.PlaceId,false)e     AddPart("New server opened! Info : "..tostring(NSR),'Random',speaker)
  352.     end)
  353. end)]]--
  354.  
  355. NewCommand("Music","Lists music which you can play",6,{'m','music','song'},function(msg,speaker)
  356.     pcall(function()
  357.         local Http=Core.Services.Http
  358.         local KeyWords = Http:UrlEncode(msg)
  359.         local Url = 'http://roproxy.tk/catalog/json?Keyword='..tostring(KeyWords)..'&Category=9&ResultsPerPage=11'
  360.         local Assets = Http:JSONDecode(Http:GetAsync(Url))
  361.         DestroyTablets(speaker)
  362.         local function List(plr)
  363.         DestroyTablets(speaker)
  364.         for i=1,#Assets do
  365.             AddPart(Assets[i].Name,'White',speaker,function()
  366.                 DestroyTablets(plr)
  367.                 AddPart('Name: '..Assets[i].Name,'White',speaker)
  368.                 AddPart('Id: '..Assets[i].AssetId,'White',speaker)
  369.                 AddPart('Publisher: '..Assets[i].Creator,'White',speaker)
  370.                 AddPart('Play song','Lime green',speaker,function()
  371.                     for i,v in pairs(script:GetChildren()) do
  372.                         if v.Name == "Sound" then
  373.                             v:Pause();
  374.                             v:Stop();
  375.                             v:Destroy();
  376.                         end
  377.                     end
  378.                     local sound=Instance.new('Sound',script);
  379.                     sound.SoundId='rbxassetid://'..Assets[i].AssetId;
  380.                     sound:play()
  381.                     AddPart('Stop song','Neon orange',speaker,function()
  382.                         sound:Pause();
  383.                         sound:Stop();
  384.                         sound:Destroy();
  385.                     end)
  386.                 end)
  387.                 AddPart('Dismiss','Really red',speaker,function()
  388.                     DestroyTablets(speaker)
  389.                 end)
  390.                 AddPart('Back','Really blue',speaker,function()
  391.                     List(plr)
  392.                 end)
  393.             end);
  394.         end;
  395.     end
  396.     List(speaker)
  397.     end)
  398. end)
  399.                
  400. NewCommand("Rank","Gives <player> <rank>",6,{'rank','rk'},function(msg,speaker)
  401.     pcall(function()
  402.         local Len=string.len(msg)
  403.         local Player=Core.CoreFunctions.FindPlayer(tostring(msg),Len)
  404.         local function rank(plr,rank)
  405.             local rank=rank;
  406.             local plr=plr;
  407.             for i,v in pairs(Core.Administators) do
  408.                 if v.Name==plr.Name then
  409.                     v.Context=tonumber(rank)
  410.                 end
  411.         end
  412.             DestroyTablets(speaker)
  413.             AddPart(plr.Name.." is now ranked "..rank,'White',speaker)
  414.         end
  415.         for i,v in pairs(Core.Administators) do
  416.             if Player.Name==v.Name then --//Update this function to make more efficient
  417.                 AddPart("1",'Random',speaker,function() rank(Player,1) end)
  418.                 AddPart("2",'Random',speaker,function() rank(Player,2) end)
  419.                 AddPart("3",'Random',speaker,function() rank(Player,3) end)
  420.                 AddPart("4",'Random',speaker,function() rank(Player,4) end)
  421.                 AddPart("5",'Random',speaker,function() rank(Player,5) end)
  422.                 AddPart("6",'Random',speaker,function() rank(Player,6) end)
  423.                 AddPart("7",'Random',speaker,function() rank(Player,7) end)
  424.                 AddPart("8",'Random',speaker,function() rank(Player,8) end)
  425.             end
  426.         end
  427.     end)
  428. end)
  429.  
  430. NewCommand("Dismiss","Dismisses tabs",1,{'dt'},function(msg,speaker)
  431.     if msg == "all" then
  432.         for i,v in pairs(game.Players:GetPlayers()) do
  433.             DestroyTablets(v)
  434.         end
  435.     else
  436.         DestroyTablets(speaker)
  437.     end
  438. end)
  439.  
  440. NewCommand("Commands","Shows commands list",1,{'cmds'},function(msg,speaker)
  441.     pcall(function()
  442.     DestroyTablets(speaker)
  443.     local function Delve(plr,cmd)
  444.         DestroyTablets(speaker)
  445.         for i,v in pairs(Core.Commands) do
  446.             if v.Name==cmd then
  447.                 AddPart("Name : "..v.Name,'Random',speaker)
  448.                 AddPart("Description : "..v.Desc,'Random',speaker)
  449.                 AddPart("Rank : "..v.Context,'Random',speaker)
  450.                 AddPart("Calls : "..table.concat(v.Calls, ', '),'Random',speaker)
  451.             end
  452.         end
  453.     end
  454.     for i,v in pairs(Core.Commands) do
  455.         AddPart(v.Name,'Random',speaker,function() Delve(plr,v.Name) end)
  456.     end
  457.     end)
  458. end)
  459.  
  460. NewCommand("Players","Shows list of all players",5,{'plrs','players'},function(msg,speaker)
  461.     pcall(function()
  462.     local function Dig(plr,plrs)
  463.         DestroyTablets(speaker)
  464.         for i,v in pairs(game.Players:GetPlayers()) do
  465.             if v.Name==plrs then
  466.             AddPart("Name : "..v.Name,'Toothpaste',speaker)
  467.             AddPart("Age : "..v.AccountAge,'Toothpaste',speaker)
  468.             for a,s in pairs(Core.Administators) do
  469.                 if s.Name == plrs then
  470.                     AddPart("Rank : "..tostring(s.Context),'Toothpaste',speaker)
  471.                     AddPart("Desc : "..s.Desc,'Toothpaste',speaker)
  472.             end
  473.             end
  474.             AddPart("Kick",'Really red',speaker,function() Core.Packets.Kick(game.Players[plrs]) AddPart(plrs.." was kicked.",'Random',speaker) end)
  475.             AddPart("Ban",'Bright yellow',speaker,function() Core.Packets.Ban(game.Players[plrs]) AddPart(plrs.." was banned.",'Random',speaker) end)
  476.             end
  477.         end
  478.     end;
  479.     for i,v in pairs(game.Players:GetPlayers()) do
  480.         AddPart(v.Name,'Random',speaker,function() Dig(plr,v.Name) end)
  481.     end
  482.     end)
  483. end)
  484.  
  485. NewCommand("Kick","Removes a player from game",8,{'kick','k'},function(msg,speaker)
  486.     if not msg or msg == "" then return print'asdf' end
  487.     local Len=string.len(msg)
  488.     local Player=Core.CoreFunctions.FindPlayer(msg,Len)
  489.     pcall(function()
  490.         Core.Packets.Kick(Player)
  491.     end)
  492. end)
  493.  
  494. NewCommand("Ban","Bans a player",5,{'ban'},function(msg,speaker)
  495.     if not msg or msg == "" then return print'asdf' end
  496.     local Len=string.len(msg)
  497.     local Player=Core.CoreFunctions.FindPlayer(msg,Len)
  498.     print(Player)
  499.     pcall(function()
  500.         Core.Packets.Ban(Player)
  501.     end)
  502. end)
  503.  
  504. NewCommand("Respawn","Respawns a player",3,{'rs','r','respawn'},function(msg,speaker)
  505.     if not msg or msg == "" then return print'asdf' end
  506.     local Len=string.len(msg)
  507.     local Player=Core.CoreFunctions.FindPlayer(msg,Len)
  508.     pcall(function()
  509.         if msg == 'all' then
  510.             for i,v in pairs(game.Players:GetPlayers()) do
  511.                 v:LoadCharacter()
  512.             end
  513.         else
  514.             Player:LoadCharacter()
  515.         end
  516.     end)
  517. end)
  518.  
  519. NewCommand("Rejoin","Rejoins a player",8,{'rj'},function(msg,speaker)
  520.     if not msg or msg == "" then return print'asdf' end
  521.     local Len=string.len(msg)
  522.     local Player=Core.CoreFunctions.FindPlayer(msg,Len)
  523.     pcall(function()
  524.         local MT={};
  525. setmetatable(_G,MT);
  526. local SandboxEnv,OriginalEnv do
  527.  MT.__index=function(self,index)
  528.   SandboxEnv,OriginalEnv=getfenv(1),getfenv(2);
  529.   return(rawget(self,index));
  530.  end;
  531. end;
  532.         OriginalEnv.Game:GetService("TeleportService"):Teleport(game.PlaceId,Player)
  533.     end)
  534. end)
  535.  
  536. NewCommand("Kill","Kills a player",2,{'kill','kl'},function(msg,speaker)
  537.     if not msg or msg == "" then return print'asdf' end
  538.     local Len=string.len(msg)
  539.     local Player=Core.CoreFunctions.FindPlayer(msg,Len)
  540.     pcall(function()
  541.         Player.Character:breakJoints()
  542.     end)
  543. end)
  544.  
  545. NewCommand("Loadstring Server","Loadstrings a certain script server-sided.",8,{'exe'},function(msg,speaker)
  546.     local Executable,Error=loadstring(msg,'Odin_Loadstring');
  547.     if not Executable then
  548.         return AddPart(tostring(Error),'Really red',speaker,nil)
  549.     end;
  550.     local a={};
  551.     setmetatable(a,{__index=function() return AddPart("[Sandbox] Locked!",nil,speaker,nil) end,
  552.         __newindex=function() return AddPart("[Sandbox] Locked!",nil,speaker,nil) end,
  553.         __metatable="Locked",
  554.         Name="asd",
  555.         Destroy=nil})
  556.     local MT={};
  557. setmetatable(_G,MT);
  558. local SandboxEnv,OriginalEnv do
  559.  MT.__index=function(self,index)
  560.   SandboxEnv,OriginalEnv=getfenv(1),getfenv(2);
  561.   return(rawget(self,index));
  562.  end;
  563. end;
  564. local _=_;
  565.     local _ENV;_ENV=setmetatable({
  566.         Odin=Odin;
  567.         Core=nil;
  568.         game=game;
  569.         _G=Core.Fake;
  570.         shared=Core.Fake;
  571.         setmetatable=function() return AddPart("[Sandbox] setmetatable is locked",'Really red',speaker,nil) end;
  572.         unpack=unpack;
  573.         getfenv=function() return {} end;
  574.         setfenv=function() return setfenv(0,_ENV) end;
  575.         reboot=reboot;
  576.         require=require;
  577.         print=function(...)
  578.             local Data={...};
  579.             for CurrentEntry,Table_Pos in next,Data do
  580.                 if not pcall(function()Data[CurrentEntry]=tostring(Table_Pos);end)then
  581.                     Data[CurrentEntry]='__TOSTRING_EDIT';
  582.                 end;
  583.             end;
  584.             AddPart(table.concat(Data,' '),'White',speaker,nil);
  585.         end;
  586.         Speaker=speaker;
  587.         Message=msg;
  588.         R=OriginalEnv
  589.     },{
  590.         __newindex=function(Self,Key,Value)
  591.             rawset(getfenv(),Key,Value);
  592.         end;
  593.         __index=function(Self,Index)
  594.             return getfenv()[Index] or getfenv(0)[Index] or getfenv(2)[Index];
  595.         end;
  596.     });
  597.     setfenv(Executable,_ENV)
  598.     local Processed,Error=coroutine.resume(coroutine.create(function()setfenv(setfenv(setfenv(setfenv(setfenv(Executable,_ENV),_ENV),_ENV),_ENV),_ENV)();end));
  599.     if not Processed then
  600.         AddPart(tostring(Error),'Really red',speaker,nil)
  601.         return;
  602.     end;
  603. end)
  604.  
  605. local function Check_For_Ranked(plr)
  606.     if not plr then return end
  607.     if type(plr) == "userdata" then plr = plr.Name
  608.     else return end
  609.     for i,v in pairs(Core.Administators) do
  610.         if v.Name == plr then return true end
  611.     end
  612.     return false
  613. end
  614.  
  615. function Connection(Player)
  616.     print("[Information] A player has joined game. INFO : \n Name : "..Player.Name.."\n Age : "..Player.AccountAge)
  617.     for i,v in pairs(Core.Banned) do
  618.         if v.Username==Player.Name then
  619.             warn(Player.Name.." is banned for "..tostring(v.Reason).."and the duration of this ban is for "..tostring(v.Duration));
  620.             table.remove(v)
  621.             Core.Packets.Kick(Player);
  622.             for a,s in pairs(Core.Administators) do
  623.                 if game.Players:FindFirstChild(s.Name) then
  624.                 AddPart(Player.Name.." was kicked for a persisting ban!",'Really red',game.Players[s.Name]);
  625.                 end
  626.             end
  627.         end;
  628.     end;
  629.     --[[if Player.AccountAge < 100 then
  630.         Core.Packets.Kick(Player);
  631.         for a,s in pairs(Core.Administators) do
  632.                 if game.Players:FindFirstChild(s.Name) then
  633.                 AddPart(Player.Name.." was kicked for being too young!",'Really Red',game.Players[s.Name]);
  634.                 end
  635.             end
  636.     end]]--
  637.     if Check_For_Ranked(Player) ~= true then
  638.         table.insert(Core.Administators,{Name=Player.Name, Desc="Temp",Context=1,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}})          
  639.     end
  640.     for a,s in pairs(Core.Administators) do
  641.         if game.Players:FindFirstChild(s.Name) then
  642.         if s.Context > 5 then
  643.             AddPart(Player.Name.." has joined!",'Random',game.Players[s.Name]);
  644.             end
  645.         end
  646.     end
  647.     print(Player.Name.." has no previous record.")
  648. end;
  649.  
  650. game.Players.PlayerRemoving:connect(function(Player)
  651.     DestroyTablets(Player)
  652.     for i,v in pairs(Core.Administators) do
  653.         if v.Name == Player.Name then
  654.             table.remove(v)
  655.         end
  656.     end
  657.     for a,s in pairs(Core.Administators) do
  658.         if s.Name == Player.Name then return end
  659.         if s.Context > 5 then
  660.         if game.Players:FindFirstChild(s.Name) then
  661.             pcall(function() AddPart(Player.Name.." has left!",'Random',game.Players[s.Name]); end)
  662.             end
  663.         end
  664.     end
  665. end)
  666.    
  667.  
  668. for i,v in pairs(game.Players:GetPlayers()) do
  669.     if Check_For_Ranked(v) ~= true then
  670.         table.insert(Core.Administators,{Name=v.Name, Desc="Temp",Context=1,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}})          
  671.     end
  672.     AddPart("Welcome to Odin Administrative Tablet",'White',v);
  673.     AddPart("Build : Artic Blast v1.0",'White',v);
  674.     AddPart("Created by Pkamara",'White',v);
  675.     AddPart("_ENV owner : "..tostring(getfenv().owner),'White',v);
  676.     v.Chatted:connect(function(msg)
  677.         OnChatted(msg,v)
  678.     end)
  679. end
  680.  
  681. game.Players.PlayerAdded:connect(function(Player)
  682.     wait(Core.CoreFunctions.UpdateGetBans())
  683.     Connection(Player)
  684.     Player.Chatted:connect(function(msg)
  685.     OnChatted(tostring(msg),Player)
  686.     end)
  687. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement