Advertisement
Guest User

Untitled

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