Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- This is a highly snipped and is functions but without parts. You can add your own parts and take the rest. My site and some other data has been removed!
- ]]--
- --[[
- Odin Administative Script
- This script is not open source at all and using it under false jurisdiction may or may not result in
- negative effects.
- Thanks
- Pkamara
- ]]--
- --[[local _ENV = getfenv(1);
- _ENV.Backup = {
- print = print;
- error = error;
- warn = warn;
- };]]--
- --[[
- local print = function(...)
- local Strings = {...};
- local Result = '';
- for _, String in pairs(Strings) do
- Result = Result..', '..String;
- end;
- print("[ODIN]: "..tostring(Result))
- end;
- ]]--
- local print=function(str) return print("[Odin] "..tostring(str)) end;
- local error=function(str) return print("[Odin][Error] "..tostring(str)) end;
- local warn=function(str) return warn("[Odin][Warning] "..tostring(str)) end;
- Core={
- Administators={
- {Name="Pkamara", Desc="Working on this adminstrative script since it's brith",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
- {Name="Nexure", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
- {Name="Pelanyo", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
- {Name="CoolDocterWho2", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
- {Name="LordRevorius", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
- {Name="XEL8o9", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
- {Name="Player1", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
- };
- Fake={}; --// This is the stored table which holds fake _G and fake Shared.
- Banned={};
- ScriptSettings={};
- Settings={
- BetaKey="!";
- ScriptOwner=getfenv()["onwer"] or game.Players.Pkamara;
- Debug=false;
- };
- Commands={};
- Data={};
- Services={
- Http=game:GetService("HttpService");
- Players=game:GetService("Players");
- MarketplaceService=game:GetService("MarketplaceService");
- Post=function(link,data) local Return=Core.Services.Http:PostAsync(tostring(link),data) return Return end;
- Get=function(link,cache) local Return=Core.Services.Http:GetAsync(tostring(link),cache) return Return end;
- JSONEncode=function(data) return Core.Services.Http:JSONEncode(data) end;
- JSONDecode=function(data) return Core.Services.Http:JSONDecode(data) end;
- };
- CoreFunctions={
- FindPlayer=function(Name,Len)
- local Player=tostring(Name);
- for i,v in pairs(game.Players:GetPlayers()) do
- local Names=string.sub(string.lower(v.Name),1,Len);
- local PCalled=string.lower(Name)
- --print(Name)
- --print(Pcalled)
- if Names == PCalled then
- return v
- end;
- end;
- end;
- Packets={
- };
- };
- viable={
- setfenv=setfenv;
- unpack=unpack;
- getfenv=function() return asd end;
- game=game;
- table=table;
- error=function(...)
- local Data={...};
- for CurrentEntry,Table_Pos in next,Data do
- if not pcall(function()Data[CurrentEntry]=tostring(Table_Pos);end)then
- Data[CurrentEntry]='__TOSTRING_EDIT';
- end;
- end;
- AddPart(table.concat(Data,' '),'Really red',speaker,nil) ;
- end;
- print=function(...)
- local Data={...};
- for CurrentEntry,Table_Pos in next,Data do
- if not pcall(function()Data[CurrentEntry]=tostring(Table_Pos);end)then
- Data[CurrentEntry]='__TOSTRING_EDIT';
- end;
- end;
- AddPart(table.concat(Data,' '),'White',speaker,nil);
- end;
- warn=function(...)
- local Data={...};
- for CurrentEntry,Table_Pos in next,Data do
- if not pcall(function()Data[CurrentEntry]=tostring(Table_Pos);end)then
- Data[CurrentEntry]='__TOSTRING_EDIT';
- end;
- end;
- AddPart(table.concat(Data,' '),'Bright orange',speaker,nil);
- end;
- };
- viable.__newindex=function() return error'You are not permitted to edit this table'; end;
- Core.Fake._G={};
- Core.Fake.Shared={};
- setmetatable(Core.Fake._G,{
- __metatable="Locked!",
- __newindex=function(t,k,v)
- if type(v) == 'table' then
- if getmetatable(v) ~= nil then return rawset(Core.Fake._G,k,v) end;
- rawset(Core.Fake._G,k,v);
- setmetatable(Core.Fake._G[k],{__metatable="Locked!"});
- local Thread=coroutine.create(function(t,v) while wait() do if getmetatable(t) ~= v then return error("Script Ended!") end end end)
- return coroutine.resume(Thread);
- else
- rawset(Core.Fake._G,k,v);
- end
- end;
- })
- --local game=Core.CoreFunctions.BreakSandbox();
- --print(game)
- --_G._game=nil;
- --Core.Fake=setmetatable({},Core);
- Core.__metatable=function() return error("Sorry you are not permitted to edit or view the core tables!"); end;
- Core.__newindex=function() return error("Lolno") end;
- --//Snipped for protection!
- AddPart=function(Text,Colour,Player,Function)
- --Snipped!
- end;
- Spawn(function()
- local Num=1
- plr=nil
- game:GetService'RunService'.Heartbeat:connect(function()
- Num=Num+0.0025
- for i,v in pairs(game.Players:GetPlayers()) do
- for a,s in pairs(Core.Administators) do
- if v.Name==s.Name then
- plr=v
- for i=1,#s.Tablets do
- if plr.Character and plr.Name and plr.Character:FindFirstChild("Torso") then
- if plr.Character.Parent==game.Workspace then
- local Parts = s.Tablets
- local Part = Parts[i]
- Part.CFrame = clerp(Part.CFrame,CFrame.new(game.Workspace[s.Name].Torso.CFrame.p)
- * CFrame.Angles(0, math.rad((360 / #Parts) * i) + Num, 0)
- * CFrame.new(3 + #Parts, math.sin((tick() + i) * 5)/1.5, 0)
- * CFrame.Angles(0, math.rad(90), 0)
- * CFrame.Angles(math.sin((tick() + i) * 5)/2,math.sin((tick() + i) * 5)/2,math.sin((tick() + i) * 5)/2)
- ,.1)
- else end
- end
- end
- end
- end
- end
- end)
- end)
- function OnChatted(Msg,Player)
- --//Snipped!
- end
- function DestroyTablets(Player)
- --if not Player then return end
- if type(Player) == "userdata" then Player = Player.Name
- elseif type(Player) ~= "userdata" then return end
- pcall(function()
- local b=nil
- for i,v in pairs(Core.Administators) do
- if v.Name == Player then
- b=v
- end
- end
- for a,s in pairs(b.Tablets) do
- s:Destroy();
- b.Tablets={}
- end
- end)
- end
- function GetPlayerRank(Player)
- local Name=Player.Name;
- local Rank=nil
- for i,v in pairs(Core.Administators) do
- if v.Name == Player.Name then
- Rank=v.Context;
- end;
- end;
- return tonumber(Rank);
- end;
- function NewCommand(Name,Desc,Context,Calls,Func)
- Core.Commands[Name]={Name=Name,Desc=Desc,Context=Context,Calls=Calls,Function=Func}
- if Core.Settings.Debug then
- print("New command added; "..Name.."; "..Desc);
- end;
- end;
- NewCommand("No Character","Removes a players character",8,{'nil','nochar'},function(msg,speaker)
- if not msg or msg == "" then return error("There was some data missing") end
- local Len=string.len(msg)
- local Player=Core.CoreFunctions.FindPlayer(msg,Len)
- pcall(function()
- Player.Character=nil
- end)
- end)
- NewCommand("Translate","Translates a message",1,{'translate'},function(msg,speaker)
- --//Snipped
- end)
- NewCommand("Meaning","Uses WIKIPEDIA to find answers",1,{'find','means'},function(msg,speaker)
- --//Snipped!
- end)
- NewCommand("Ban List","Shows ban list",8,{'b'},function(msg,speaker)
- pcall(function()
- wait(Core.CoreFunctions.UpdateGetBans())
- for i,v in pairs(Core.Banned) do
- AddPart(v.Username.."; Reason : "..v.Reason,'Really red',speaker);
- end
- end)
- end)
- NewCommand("Ping","Pings a tablet to speaker",1,{'ping'},function(msg,speaker)
- if msg == "" then return end;
- pcall(function()
- if string.sub(msg,1,3) == 'all' then
- if GetPlayerRank(speaker)>=6 then
- for i,v in pairs(game.Players:GetPlayers()) do
- local msg=msg:sub(4)
- AddPart(tostring(msg),'Random',v,nil);
- end
- else
- AddPart("Your rank is too low!","Really red",speaker,nil);
- end
- else
- AddPart(tostring(msg),'Random',speaker,nil);
- end
- end)
- end)
- NewCommand("New Server","Opens a new server at ID",8,{'newserver','ns','nsvr'},function(msg,speaker)
- --//Snipped
- end)
- NewCommand("Music","Lists music which you can play",6,{'m','music','song'},function(msg,speaker)
- --//Snipped
- end)
- NewCommand("Rank","Gives <player> <rank>",6,{'rank','rk'},function(msg,speaker)
- pcall(function()
- local Len=string.len(msg)
- local Player=Core.CoreFunctions.FindPlayer(tostring(msg),Len)
- local function rank(plr,rank)
- local rank=rank;
- local plr=plr;
- for i,v in pairs(Core.Administators) do
- if v.Name==plr.Name then
- v.Context=tonumber(rank)
- end
- end
- DestroyTablets(speaker)
- AddPart(plr.Name.." is now ranked "..rank,'White',speaker)
- end
- for i,v in pairs(Core.Administators) do
- if Player.Name==v.Name then --//Update this function to make more efficient
- AddPart("1",'Random',speaker,function() rank(Player,1) end)
- AddPart("2",'Random',speaker,function() rank(Player,2) end)
- AddPart("3",'Random',speaker,function() rank(Player,3) end)
- AddPart("4",'Random',speaker,function() rank(Player,4) end)
- AddPart("5",'Random',speaker,function() rank(Player,5) end)
- AddPart("6",'Random',speaker,function() rank(Player,6) end)
- AddPart("7",'Random',speaker,function() rank(Player,7) end)
- AddPart("8",'Random',speaker,function() rank(Player,8) end)
- end
- end
- end)
- end)
- NewCommand("Dismiss","Dismisses tabs",1,{'dt'},function(msg,speaker)
- if msg == "all" then
- for i,v in pairs(game.Players:GetPlayers()) do
- DestroyTablets(v)
- end
- else
- DestroyTablets(speaker)
- end
- end)
- NewCommand("Commands","Shows commands list",1,{'cmds'},function(msg,speaker)
- pcall(function()
- DestroyTablets(speaker)
- local function Delve(plr,cmd)
- DestroyTablets(speaker)
- for i,v in pairs(Core.Commands) do
- if v.Name==cmd then
- AddPart("Name : "..v.Name,'Random',speaker)
- AddPart("Description : "..v.Desc,'Random',speaker)
- AddPart("Rank : "..v.Context,'Random',speaker)
- AddPart("Calls : "..table.concat(v.Calls, ', '),'Random',speaker)
- end
- end
- end
- for i,v in pairs(Core.Commands) do
- AddPart(v.Name,'Random',speaker,function() Delve(plr,v.Name) end)
- end
- end)
- end)
- NewCommand("Players","Shows list of all players",5,{'plrs','players'},function(msg,speaker)
- pcall(function()
- local function Dig(plr,plrs)
- DestroyTablets(speaker)
- for i,v in pairs(game.Players:GetPlayers()) do
- if v.Name==plrs then
- AddPart("Name : "..v.Name,'Toothpaste',speaker)
- AddPart("Age : "..v.AccountAge,'Toothpaste',speaker)
- for a,s in pairs(Core.Administators) do
- if s.Name == plrs then
- AddPart("Rank : "..tostring(s.Context),'Toothpaste',speaker)
- AddPart("Desc : "..s.Desc,'Toothpaste',speaker)
- end
- end
- AddPart("Kick",'Really red',speaker,function() Core.Packets.Kick(game.Players[plrs]) AddPart(plrs.." was kicked.",'Random',speaker) end)
- AddPart("Ban",'Bright yellow',speaker,function() Core.Packets.Ban(game.Players[plrs]) AddPart(plrs.." was banned.",'Random',speaker) end)
- end
- end
- end;
- for i,v in pairs(game.Players:GetPlayers()) do
- AddPart(v.Name,'Random',speaker,function() Dig(plr,v.Name) end)
- end
- end)
- end)
- NewCommand("Kick","Removes a player from game",8,{'kick','k'},function(msg,speaker)
- if not msg or msg == "" then return print'asdf' end
- local Len=string.len(msg)
- local Player=Core.CoreFunctions.FindPlayer(msg,Len)
- pcall(function()
- Core.Packets.Kick(Player)
- end)
- end)
- NewCommand("Ban","Bans a player",5,{'ban'},function(msg,speaker)
- if not msg or msg == "" then return print'asdf' end
- local Len=string.len(msg)
- local Player=Core.CoreFunctions.FindPlayer(msg,Len)
- print(Player)
- pcall(function()
- Core.Packets.Ban(Player)
- end)
- end)
- NewCommand("Respawn","Respawns a player",3,{'rs','r','respawn'},function(msg,speaker)
- if not msg or msg == "" then return print'asdf' end
- local Len=string.len(msg)
- local Player=Core.CoreFunctions.FindPlayer(msg,Len)
- pcall(function()
- if msg == 'all' then
- for i,v in pairs(game.Players:GetPlayers()) do
- v:LoadCharacter()
- end
- else
- Player:LoadCharacter()
- end
- end)
- end)
- NewCommand("Rejoin","Rejoins a player",8,{'rj'},function(msg,speaker)
- if not msg or msg == "" then return print'asdf' end
- local Len=string.len(msg)
- local Player=Core.CoreFunctions.FindPlayer(msg,Len)
- end)
- NewCommand("Kill","Kills a player",2,{'kill','kl'},function(msg,speaker)
- if not msg or msg == "" then return print'asdf' end
- local Len=string.len(msg)
- local Player=Core.CoreFunctions.FindPlayer(msg,Len)
- pcall(function()
- Player.Character:breakJoints()
- end)
- end)
- NewCommand("Loadstring Server","Loadstrings a certain script server-sided.",8,{'exe'},function(msg,speaker)
- --//Snipped
- end)
- NewCommand("Http Load","Http load script pls",1,{'h'},function(msg,speaker)
- --//SNipped
- end)
- local function Check_For_Ranked(plr)
- if not plr then return end
- if type(plr) == "userdata" then plr = plr.Name
- else return end
- for i,v in pairs(Core.Administators) do
- if v.Name == plr then return true end
- end
- return false
- end
- function Connection(Player)
- print("[Information] A player has joined game. INFO : \n Name : "..Player.Name.."\n Age : "..Player.AccountAge)
- for i,v in pairs(Core.Banned) do
- if v.Username==Player.Name then
- warn(Player.Name.." is banned for "..tostring(v.Reason).."and the duration of this ban is for "..tostring(v.Duration));
- table.remove(v)
- Core.Packets.Kick(Player);
- for a,s in pairs(Core.Administators) do
- if game.Players:FindFirstChild(s.Name) then
- AddPart(Player.Name.." was kicked for a persisting ban!",'Really red',game.Players[s.Name]);
- end
- end
- end;
- end;
- --[[if Player.AccountAge < 100 then
- Core.Packets.Kick(Player);
- for a,s in pairs(Core.Administators) do
- if game.Players:FindFirstChild(s.Name) then
- AddPart(Player.Name.." was kicked for being too young!",'Really Red',game.Players[s.Name]);
- end
- end
- end]]--
- if Check_For_Ranked(Player) ~= true then
- table.insert(Core.Administators,{Name=Player.Name, Desc="Temp",Context=1,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}})
- end
- for a,s in pairs(Core.Administators) do
- if game.Players:FindFirstChild(s.Name) then
- if s.Context > 5 then
- AddPart(Player.Name.." has joined!",'Random',game.Players[s.Name]);
- end
- end
- end
- print(Player.Name.." has no previous record.")
- end;
- game.Players.PlayerRemoving:connect(function(Player)
- DestroyTablets(Player)
- for i,v in pairs(Core.Administators) do
- if v.Name == Player.Name then
- table.remove(v)
- end
- end
- for a,s in pairs(Core.Administators) do
- if s.Name == Player.Name then return end
- if s.Context > 5 then
- if game.Players:FindFirstChild(s.Name) then
- pcall(function() AddPart(Player.Name.." has left!",'Random',game.Players[s.Name]); end)
- end
- end
- end
- end)
- for i,v in pairs(game.Players:GetPlayers()) do
- if Check_For_Ranked(v) ~= true then
- table.insert(Core.Administators,{Name=v.Name, Desc="Temp",Context=1,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}})
- end
- AddPart("_ENV owner : "..tostring(getfenv().owner),'White',v);
- v.Chatted:connect(function(msg)
- OnChatted(msg,v)
- end)
- end
- game.Players.PlayerAdded:connect(function(Player)
- wait(Core.CoreFunctions.UpdateGetBans())
- Connection(Player)
- Player.Chatted:connect(function(msg)
- OnChatted(tostring(msg),Player)
- end)
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement