Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Version 2 1.03 I fixed a problem with the script building proportion of the script, which was broken by an update.
- --[!]Script is taken over by einsteinK and will get updated a lot with him
- --Version 4 5.00 [14/06/2012] Added a lot of commands, new functions and gear used for the "tool/PLAYER(S)/TOOL(S)"
- --Version 5 2.00 [29/08/2012] Added new commands, fixes, functions and gear/clothes-database. New: clothes/PLAYERS/TYPE
- --Version 5 3.00 [01/03/2013] Added l/ (localscript the speaker) and y/ (ypcall in adminscript itself, S-Admin only!)
- --Version 5 4.50 [02/03/2013] Added update/ and an Update Notifier, config options on line 19 and 20
- --Version 6 0.23 [07/03/2013] New commands, some fixes and a big clean of the code. Debugging prints also optional!
- --Version 7 0.01 [24/07/2013] New commands, complete remake of all the systems, added GUI-Engine, fixed updater, ...
- --Version 7 0.04 [11/11/2013] Fixed Update Notifier. Commands works now with EinHUD (custom chatbar support etc etc)
- --Version 7 0.05 [16/11/2013] (Finally) repaired the bug where teleport-command doesn't work
- --Version 8 0.00 [21/11/2013] New generation. Gonna add (optional) tablets like my old Moderator script and stuff
- --Version 8 0.01 [27/11/2013] Added rank "Winner" for obby related stuff (Admin4 and Admin5 merged into it)
- --Version 8 0.03 [27/11/2013] Renewed the commandlist gui, should now support an unlimited amount of commands
- --Version 8 0.04 [30/11/2013] Adding a lot of new commands and repairing/finishing some other stuff
- --Version 8 0.05 [01/12/2013] Added some commands, tuned the nogravitygenerator and other stuff like that
- --[!]A lot of small edits, fixes, several commands,... during several days leading to several sub versions
- --Version 8 0.11 [15/12/2013] Added online chatlog compability and a lot of minor things (see above line)
- --Version 8 0.13 [16/12/2013] Added analytics code. Also added compability with rbxstats.com (see below)
- --Version 8 0.14 [17/12/2013] Fixed some other stuff, make some enchantments in handling stuff (CPU speed)
- -- Leave some feedback, ideas, ... on this forum post please:
- -- http://www.roblox.com/Forum/ShowPost.aspx?PostID=119137054
- PBS = false -- Should this script act as if this is a Personal Build Server? (the BC place type)
- -- This adds some commands as to set the Thumbnail, list all who got buildtools, ...
- -- It'll recognise personal servers automaticly when the owner has set a thumbnail using
- -- the OwnerShotRefTool and the server has restarted. (From then on it recognises always)
- Always = {"Member",1} -- Actually this should NEVER be used except for "everyone free admin"
- --NOTE: Will make everyone this rank! So when "Admin",2 everyone will be admin! EVEN REAL ADMINS (Not creator)
- --NOTE: Everyone will be that rank except the creator, he will be the only creator (except if you put {"Creator",4} )
- --Rank: {"Member",1} {"Winner",2} {"Admin",3} {"Developer",4} {"Creator",5} -- There should NEVER be extra ranks!
- Creators = {"GravityTeam","Second Game Owner","Important Sponsor","...","Player1"}
- Admins = {"GravityTeam"}
- --NOTE: Creator of the game will be automaticly added as creator (you can just insert this script and *poof* it works)
- --Add in the names of the people you want to be able to use the command script here.
- --Please keep my name in there (einsteinK) if possible :D
- --Only the creator can use admin/ and unadmin/ online (or whatever is your commandkey)
- Winners = {} -- Obby winners, if you want to test it for example etc.
- Banned = { "someoneyouhate","noob"}
- --If you want someone not to be able to enter your place, put their name in here.
- Groups = {
- [577832] = 123; -- Everyone in that group with their group rank 123 or higher will be admin
- [736400] = 255; -- Everyone in that with their rank being 255 (255 = only the owner) will be admin
- --[12345] = 1; Everyone in that group (really everyone) would be admin
- }--If you want members with a certain rank in a certain group get admin (muliple groups allowed)
- -- Your API key of RbxStats.com (This script can act like the API script by Nexx)
- RbxStats_API_Key = "" -- When used here, you'll get noticed if it works etc!
- CommandKey = ";" -- Sets which key will be used. ex: kill/me, kill:me, kill me, ...
- GearAllowed = true -- Allow to load gears with the tool/ command? true/false
- HatsAllowed = NotDone -- Decide with true/false if the script can loads hats if commanded NOT IMPLEMENTED YET
- AnimationsAllowed = NotDone -- Animations: Shapes of your body (example: Robloxian 2.0) NOT IMPLEMENTED YET
- ClothesAllowed = true -- Just to load cloathes as police-uniform, groupuniforms, ... with the clothes/ command. true/false
- Update = true -- Allow notifying admins (not those by admin/) to see the update notifier
- MainUpdate = false -- When true this will ONLY notify you of new main versions, not sub versions
- Debug = false -- This wil just enable the printing-in-output of some information. Only used by developers -.-
- Version = "8.14" -- Keep dafuq off, or the notifier (and some other stuff) will break!
- --[[
- =~= Command Help by einsteinK =~=
- == Commands ==
- Most commands are like this:
- COMMAND/PLAYERS/ARGUMENT1/ARGUMENT2/...
- For kill it is simply: kill/PLAYERS
- Capitals (normally) don't matter for the commands.
- Players/groups/teams:
- - Admins: Everyone listed in the adminlist or adminned with admin/
- - Nonadmins: Everyone except those above
- - Guests: All guests (or people who's name looks like that of a guest)
- - Nonguests: All nonguests except those with their name looking like that of a guest
- - All: Just everyone
- - Me: The one who did the command (the speaker)
- - Others: Everyone except the speaker
- - Random: A random player
- - Mrandom: A random player but never the speaker
- - Team TEAMNAME: Everyone who's in the named team
- - Group GROUPID: Everyone who's in the group with the given id
- - Player1,Player2,Player3,...: The given players (only playernames! "FriendsName,admins,me" won't work!)
- Again, capitals don't matter, even not in the playernames!
- Capitalisation doesnt matter, and name input can be abbreviated.
- Just about any name input can be replaced with multiple names seperated by commas, me, all, others, guests, admins, nonadmins, random, or team teamname.
- --]]
- --=~=-- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --=~=--
- --=~=-- + START OF MAIN CODE | Keep off, there are normally no bugs and when they are, check the notifier + --=~=--
- --=~=-- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --=~=--
- Commands = {}
- function NewCommand(name,func,rank,desc,...)
- Commands[name] = {Name=name,Function=func,Rank=rank,Description=desc,Aliases={...}}
- if name:find("%s") then table.insert(Commands[name].Aliases,(name:gsub("%s",""))) end
- end
- function TupleToString(...) local res = ""
- if select("#",...) == 0 then return "" end
- for i=1,select("#",...) do
- res = res.." "..tostring(select(i,...))
- end return res:sub(2)
- end
- Scripts = {
- Fly = [[
- print("Loading ADM Fly Script by einsteinK") wait(0.1) local plr = game:GetService("Players").LocalPlayer
- repeat wait(0.1) until plr.Character wait(0.1) local mo,c,f = plr:GetMouse(),workspace.CurrentCamera,true
- local v = Instance.new("BodyVelocity",plr.Character and plr.Character:findFirstChild("Head")) v.Name = "ADM Fly"
- local h = plr.Character and plr.Character:findFirstChild("Humanoid") or Instance.new("Humanoid")
- v.maxForce = Vector3.new(1e99,1e99,1e99) local m = 0 local s = 0 local p = Instance.new("Part",plr.Character)
- p.Name = "Step" p.FormFactor = "Custom" p.Size = Vector3.new(5,0,5) p.Anchored = true
- p.BrickColor = BrickColor.new("Really black") p.Transparency = 0.5 Instance.new("CylinderMesh",p)
- mo.KeyDown:connect(function(k) if k == "f" then f = not f v.maxForce = f and Vector3.new(1e9,1e9,1e9) or Vector3.new()
- p.Parent = f and plr.Character or script elseif k == "w" or k:byte() == 17 then m = h.WalkSpeed
- elseif k == "s" or k:byte() == 18 then m = -h.WalkSpeed elseif k == "a" or k:byte() == 20 then s = h.WalkSpeed
- elseif k == "d" or k:byte() == 19 then s = -h.WalkSpeed end end)
- mo.KeyUp:connect(function(k) local ss=k:byte() if k=="w" or k=="s" or ss == 17 or ss == 18 then m=0 elseif
- k=="a" or k=="d" or ss==20 or ss==19 then s=0 end end) while wait() and script.Parent == plr.Character
- and v.Parent == plr.Character.Head do v.velocity = CFrame.new(c.CoordinateFrame.p,c.Focus.p).lookVector * m
- v.velocity = (CFrame.new(c.CoordinateFrame.p,c.Focus.p) * CFrame.Angles(0,math.pi/2,0)).lookVector * 2 + v.velocity
- local cf = CFrame.new((plr.Character.Torso.CFrame * CFrame.new(0,-3.1,0)).p:lerp(p.Position,0.9))
- p.Size = Vector3.new(h.WalkSpeed/5,0,h.WalkSpeed/5) p.CFrame=cf p.Anchored=true p.Transparency=0.5
- p.Parent = f and plr.Character or nil v.maxForce = f and Vector3.new(1e9,1e9,1e9) or Vector3.new() end script:Destroy()
- ]],
- Noclip = [[local plr = game:GetService("Players").LocalPlayer
- plr.Character.Head.Changed:connect(function() plr.Character.Head.CanCollide = false end)
- plr.Character.Torso.Changed:connect(function() plr.Character.Torso.CanCollide = false end)
- plr.Character.HumanoidRootPart.Changed:connect(function() plr.Character.HumanoidRootPart.CanCollide = false end)
- while wait() and script.Parent == plr.Character do plr.Character.Head.CanCollide = false
- plr.Character.Torso.CanCollide = false plr.Character.HumanoidRootPart.CanCollide = false end]],
- Freecam = [[local mode,player = Instance.new("Model",workspace),game:GetService("Players").LocalPlayer
- local probe = Instance.new("Part",mode) Instance.new("Humanoid",mode).MaxHealth = 0 script.Parent = nil
- mode.Name = tostring(player) probe.Anchored = true probe.CanCollide = false probe.Transparency = 0.5
- probe.Shape = "Ball" probe.Size = Vector3.new(2,2,2) probe.TopSurface = 0 probe.BottomSurface = 0 probe.Name = "Head"
- while not player.Character and mode.Parent == workspace and probe.Parent == mode do
- probe.CFrame = workspace.CurrentCamera.Focus wait() end mode:Destroy()]],
- Fixcam = [[local cam,plr = workspace.CurrentCamera,game:GetService("Players").LocalPlayer
- cam.CameraSubject = plr.Character and plr.Character:findFirstChild("Humanoid") cam.CameraType = "Custom"]],
- Jetpack = [[local p = game:GetService("Players").LocalPlayer
- local ch = p.Character script:ClearAllChildren()
- if not ch then error"No Character" end local mouse = p:GetMouse()
- local t = ch:findFirstChild("Torso") if not t then error"No Torso" end
- local function s(p) for k,v in pairs({"Left","Right","Top","Bottom","Front","Back"}) do p[v.."Surface"] = 0 end end
- local function w(...) local w = Instance.new("Weld",select(2,...)) w.Part0,w.Part1,w.C0 = ... end
- local c = Instance.new("Part",script) c.FormFactor = "Symmetric" c.Size = Vector3.new(2,2,1)
- c.BrickColor = BrickColor.new(1001) c.Material = "Sand" c.CanCollide = false c.Locked = true s(c)
- local q = Instance.new("Part",script) q.FormFactor = "Symmetric" q.Size = Vector3.new(1,2,1)
- q.BrickColor = BrickColor.new("Cyan") q.Material = "Sand" q.CanCollide = false q.Locked = true s(q)
- Instance.new("SpecialMesh",q).MeshType = "Sphere" local r = q:clone() r.Parent = script local cf = CFrame
- w(t,c,cf.new(0,0,1)) w(c,q,cf.new(-1.5,0,0)) w(c,r,cf.new(1.5,0,0)) local s = Instance.new("BodyThrust",c)
- local last = 0 game:GetService("UserInputService").JumpRequest:connect(function() last = tick() end)
- local sw ch.Humanoid.Swimming:connect(function(sp) sw = sp > ch.Humanoid.WalkSpeed - 2 end)
- while wait() and s:IsDescendantOf(game) do s.force = Vector3.new(0,tick() < last + 0.1 and not sw and 7500,0)
- q.BrickColor = BrickColor.new(tick() < last + 0.1 and not sw and 1019 or 1013) r.BrickColor = q.BrickColor end]],
- MCFly = [[local Players=game:GetService("Players") local Cam=workspace.CurrentCamera
- local Player=Players.LocalPlayer local Character=Player.Character local Human=Character.Humanoid
- local Mouse=Player:GetMouse() local Torso=Character.Torso local CU,BV,BG=Vector3.new(0,10,0)
- local FB,LR,BO,UP=0,0,0,0 local function Activate() BV=Instance.new("BodyVelocity",Torso)
- BV.Name="FlyBodyVelocity" BV.maxForce=Vector3.new(1e9,1e9,1e9) BV.velocity=Vector3.new(0,0,0)
- BG=Instance.new("BodyGyro",Torso) BG.Name="FlyBodyGyro" BG.maxTorque=Vector3.new(1e9,1e9,1e9)
- BG.cframe=Torso.CFrame while wait() and BV and BV.Parent==Torso and BG.Parent==Torso do
- local s=Human.WalkSpeed*2 local t=CFrame.new(Cam.CoordinateFrame.p,Cam.Focus.p).lookVector * (FB+BO) * s
- t=(CFrame.new(Cam.CoordinateFrame.p,Cam.Focus.p) * CFrame.Angles(0,math.pi/2,0)).lookVector * LF*s + t
- t=t==Vector3.new() and Vector3.new(0,0.15,0) or t CU=t:lerp(CU,0.975)
- if UP ~= 0 then BV.velocity=CU + Vector3.new(0,UP*s,0) else BV.velocity=CU end
- BG.cframe=(t==Vector3.new() or t==Vector3.new(0,0.15,0)) and BG.cframe or CFrame.new(Vector3.new(),t) end
- end local function Deactivate() local bv=BV BG:Destroy() BV,BG=nil,nil
- while wait() and bv.maxForce.magnitude > 1 do bv.maxForce=Vector3.new():lerp(bv.maxForce,0.001) end bv:Destroy() end
- local function Switch() if BG then Deactivate() else Activate() end end
- local function FindBase() return workspace:FindPartOnRay(Ray.new(Torso.Position,Vector3.new(0,-1000,0)),Character) end
- local function Park() if not FindBase() or not CU or not BG then return end
- if (select(2,FindBase())-Torso.Position).magnitude < 3 then return end UP,FB,LR=0,0,0
- while wait() and FindBase() and UP==0 and FB==0 and LR==0 do local x,y,z=BG.cframe:toEulerAnglesXYZ()
- BG.cframe=CFrame.Angles(x/1.025,y,z/1.025) if (select(2,FindBase())-Torso.Position).magnitude < 3 then break end
- CU=CU:lerp(Vector3.new(0,-(select(2,FindBase())-Torso.Position).magnitude/2,0),0.975)
- end if UP==0 and FB==0 and LR==0 and FindBase() then Deactivate() end end
- Mouse.KeyDown:connect(function(k) if k=="w" or k:byte()==17 then
- FB=1 elseif k=="s" or k:byte()==18 then FB=-1 elseif k=="a" or k:byte()==20 then
- LF=1 elseif k=="d" or k:byte()==19 then LF=-1 elseif k=="b" then BO=3 wait(1) BO=0 elseif k=="p" then
- ypcall(Park) elseif k==" " then UP=1 local s=tick() if Mouse.KeyDown:wait()==" " then if tick()-s < 0.25 then
- Switch() end end elseif k:byte()==47 or k:byte()==48 then UP=-1 end end) Mouse.KeyUp:connect(function(k)
- if k=="w" or k:byte()==17 then FB=0 elseif k=="s" or k:byte()==18 then FB=0 elseif k=="a" or k:byte()==20 then
- LF=0 elseif k=="d" or k:byte()==19 then LF=0 elseif k==" " then UP=0 elseif k:byte()==48 then UP=0 end end)]]
- }
- Capes = {
- Granite = {1001,nil,"Granite"};
- Gold = {"New Yeller",nil,"Foil"};
- Sand = {"Cool yellow",nil,"Sand"};
- Lava = {"Bright red",nil,"Pebble"};
- Diamond = {"Toothpaste",nil,"Foil"};
- Emerald = {"Lime green",nil,"Foil"};
- Camo = {"Camo",nil,"CorrodedMetal"};
- Half = {1001,"rbxassetid://136458416"};
- Waves = {"Light stone grey",nil,"Sand"};
- ["3"] = {1001,"rbxassetid://126475006"};
- Assasin = {1001,"rbxassetid://5055247"};
- Target = {1001,"rbxassetid://18169704"};
- Swag = {"Pink","rbxassetid://109301474"};
- Fabric = {"Medium stone grey",nil,"Fabric"};
- Radioactive = {1001,"rbxassetid://98743299"};
- Vortex = {"Navy blue","rbxassetid://3179142"};
- DiamondPlate = {"Lavender",nil,"DiamondPlate"};
- Creeper = {"Dark green","rbxassetid://73581071"};
- Batman = {"Really black","rbxassetid://108597669"};
- Superman = {"Bright blue","rbxassetid://108597677"};
- Random = setmetatable({},{__index = function(s,k) if k == 1 then return BrickColor.Random().Name end end});
- }
- Music = {
- Rick = {2027611};
- Halo = {1034065};
- Mule = {1077604};
- Nezz = {8610025};
- Wind = {1015394};
- Mario = {1280470};
- Choir = {1372258};
- Dotr = {11420922};
- Final = {1280414};
- Film = {27697713};
- Angel = {1372260};
- Venom = {1372262};
- Cursed = {1372257};
- Alone = {27697392};
- Chrono = {1280463};
- Banjo = {27697298};
- Intro = {27697707};
- Schala = {5985787};
- Organ = {11231513};
- Tunnel = {9650822};
- Guitar = {5986151};
- Emblem = {1372259};
- Awaken = {27697277};
- Fantasy = {1280473};
- Flight = {27697719};
- Gothic = {27697743};
- Hiphop = {27697735};
- Spanish = {5982975};
- Resist = {27697234};
- Pokemon = {1372261};
- Caramell = {2303479};
- Extreme = {11420933};
- Epic = {27697743,2.5};
- Entertain = {27697267};
- ["DJ Glejs - Better Off Alone (remix)"] = {27697392};
- ["Jeff Syndicate - Hip Hop"] = {27697735};
- ["Zero Project - Gothic"] = {27697743};
- ["Positively Dark - Awakening"] = {27697277};
- ["Daniel Bautista - Flight of the Bumblebee"] = {27697719};
- ["Daniel Bautista - Music for a Film"] = {27697713};
- ["Daniel Bautista - Gothic"] = {27697699};
- ["Daniel Bautista - Intro"] = {27697707};
- ["Flatt & Scruggs - Foggy Mountain Breakdown"] = {27697298};
- ["Scott Joplin - Entertainer Rag"] = {27697267};
- ["Mubarek - Resist (rmx)"] = {27697234};
- }
- Loopkilling = {}
- ShowTablets = {}
- JoinTimes = {}
- Waiting = {}
- Jailed = {}
- Cache = {}
- PPets = {}
- SPets = {}
- Pets = {}
- Devs = {}
- Tabs = {}
- Outputted = {}
- Printed = LoadLibrary("RbxUtility").CreateSignal()
- local oprint,fenvs = print,{}
- local function print(...) Printed:fire(TupleToString(...)) oprint(...)
- table.insert(Outputted,{Time=tick(),Message=TupleToString(...)})
- end
- function fullprint(col,...) Printed:fire(TupleToString(...),col) oprint(...)
- table.insert(Outputted,{Time=tick(),Message=TupleToString(...),Color=col})
- end
- function GetColor(n) local v,n=0,tostring(n)
- for i=1,#n do local c=n:sub(i,i):byte()
- v=v+((#n-i+1-#n%2)%4 >= 2 and -c or c)
- end return BrickColor.new(({21,23,141,104,106,24,9,5})[v%8+1])
- end
- function SortTables()
- for k,v in pairs({"Creators","Admins","Winners","Banned"}) do
- local tab,res = {},{}
- for a,b in pairs(getfenv()[v]) do
- if not tab[b] then
- table.insert(res,b)
- tab[b] = true
- end
- end table.sort(res)
- getfenv()[v] = res
- end
- end
- for k,v in pairs(workspace:GetChildren()) do
- if v:IsA("Model") then
- if v.Name:match("%[Output%] (%w+)") then
- v:Destroy()
- end
- end
- end
- function RefreshTablets()
- local players = game:GetService("Players")
- for k,v in pairs(workspace:GetChildren()) do
- if v:IsA("Model") then
- local name = v.Name:match("%[Output%] (%w+)")
- if name and not players:findFirstChild(name) then
- v:Destroy()
- end
- end
- end
- for k,v in pairs(players:GetPlayers()) do
- local mo = workspace:findFirstChild("[Output] "..v.Name)
- if not mo or not mo:IsA("Model") then
- mo = Instance.new("Model",workspace)
- mo.Name = "[Output] "..v.Name
- end if not Tabs[v] then Tabs[v] = {} end
- end
- for player,tabs in pairs(Tabs) do
- while #tabs > 50 do table.remove(tabs,1).Part:Destroy() end
- local new = {}
- for k,v in pairs(tabs) do
- if not v.Part:IsDescendantOf(workspace) then
- v.Part:Destroy()
- elseif v.Live and tick() - v.Time > v.Live then
- v.Part:Destroy()
- elseif tick() - v.Time > 30 then
- v.Part:Destroy()
- else
- table.insert(new,v)
- end
- end Tabs[player] = player and new
- end
- end
- function ClearTablets(player)
- if player then
- for k,v in pairs(Tabs[player]) do
- v.Part:Destroy()
- end Tabs[player] = {} return
- end
- for k,v in pairs(Tabs) do Tabs[k] = {}
- for a,b in pairs(v) do b.Part:Destroy() end
- end
- end
- function Tablet(player,text,color) RefreshTablets()
- local p = Instance.new("Part",workspace:findFirstChild("[Output] "..player.Name))
- p.Name = "OutputTablet" p.Anchored = true p.CanCollide = false
- p.FormFactor = "Custom" p.Size = Vector3.new(4,4,0) p.Locked = true
- p.BrickColor = BrickColor.new(color) p.Transparency = 0.5
- p.CFrame = player.Character and player.Character:GetModelCFrame() or CFrame.new()
- local s = Instance.new("SelectionBox",p) s.Adornee = p s.Color = p.BrickColor
- local g = Instance.new("BillboardGui",p) g.Adornee = p g.Active = false
- g.Size = UDim2.new(12,0,6) g.StudsOffset = Vector3.new(0,4,0)
- local l = Instance.new("TextLabel",g) l.Size = UDim2.new(1,0,1,0)
- l.BackgroundTransparency = 1 l.TextColor3 = Color3.new(0,0,0)
- l.TextStrokeColor3 = color l.TextStrokeTransparency = 0
- l.Font = "SourceSansBold" l.TextWrapped = true l.Active = false
- l.FontSize = "Size18" l.Text = text g.ExtentsOffset = Vector3.new(0,0,1)
- local c = Instance.new("ClickDetector",p) c.MaxActivationDistance = 64
- c.MouseClick:connect(function(pl) if pl == player then return p:Destroy() end
- if select(2,GetRank(pl)) >= select(2,GetRank(player)) then p:Destroy() end
- end) local t = {Player=player,Text=text,Color=color,Part=p,Time=tick()}
- table.insert(Tabs[player],t) game:GetService("Debris"):AddItem(p,600) return t
- end
- function TimeTablet(t,...)
- local tab = Tablet(...)
- tab.Live = t
- return tab
- end
- local up = {}
- local function GetUpBonus(cur,total,up)
- if total < 10 then return 0 end
- if cur == up then return total/200 end
- end
- local function GetPosition(player)
- if not player.Character then return end
- local ch = player.Character
- local he = ch:findFirstChild("HumanoidRootPart")
- he = he or ch:findFirstChild("Torso")
- he = ch:findFirstChild("Head")
- return he and he.Position
- end
- function HandleTabs() RefreshTablets()
- for player,tabs in pairs(Tabs) do local total = #tabs
- up[player] = (up[player] or 0) + 0.5
- up[player] = up[player] > total and 1 or up[player]
- local pos = GetPosition(player)
- for k,v in pairs(tabs) do local part = v.Part
- local goto = pos and CFrame.new(pos) * CFrame.Angles(0,-math.pi*2/total*k,0)
- goto = goto and goto * CFrame.new(5+total/1.5,0,0) or CFrame.new(0,-50,k)
- part.CFrame = CFrame.new(part.CFrame.p:lerp(goto.p,0.1),(pos or Vector3.new())+Vector3.new(0,1,0))
- part.CFrame = part.CFrame * CFrame.new(0,GetUpBonus(k,total,up[player]),0)
- end
- end
- end
- local function GetPetPos(p)
- if not p.Character then return end
- if p.Character:findFirstChild("Humanoid") then
- if p.Character.Humanoid.Health <= 0 then
- return
- end
- end
- if p.Character:findFirstChild("Head") then
- return (p.Character.Head.CFrame*CFrame.new(3,1,0)).p
- elseif p.Character:findFirstChild("Torso") then
- return (p.Character.Torso.CFrame*CFrame.new(3,3,0)).p
- end
- end
- function HandlePets()
- for p,pet in pairs(Pets) do
- if not p.Parent or not pet:findFirstChild("BodyMove") or not pet:findFirstChild("BodyRot") then
- Pets[p] = pet:Destroy() PPets[p] = nil
- else
- pet.BodyMove.position = GetPetPos(p) or pet.BodyMove.position
- for i=1,3 do
- local w = pet:findFirstChild("Weld"..i)
- if w then
- local x = i ~= 2 and math.pi/2 or 0
- local y = i == 2 and math.pi/2 or 0
- local z = i == 3 and math.pi/2 or 0
- w.C0 = CFrame.Angles(x,y,z)
- end local e = pet:findFirstChild("Effect"..i)
- if e then
- local m = e:findFirstChild("Mesh")
- local sp = SPets[p] or 0
- m.Scale = Vector3.new(1,sp < 0 and 5 or sp > 0 and 2 or 1,1)
- end
- end PPets[p] = GetPetPos(p)
- pet.BodyRot.cframe = pet.BodyRot.cframe * CFrame.Angles(0.05,0.05,0.05)
- pet.BrickColor = p.Neutral and BrickColor.new(1001) or p.TeamColor
- end
- end
- end
- coroutine.wrap(function() wait() local p = game:GetService("Players").LocalPlayer
- if p and not pcall(game.GetService,game,"NetworkClient") then
- local ch = Tablet(p,"Running Studio Check!",Color3.new(0,1,0))
- coroutine.wrap(function(...) repeat wait() until notifyUpdate notifyUpdate(...) end)(p,true)
- if script.Parent ~= game:GetService("ServerScriptService") then
- local msg = "Consider putting this script in:\nServerScriptService"
- TimeTablet(10,p,msg.." (for safety)",Color3.new(1,0.5,0))
- end TimeTablet(10,p,"Studio Check finished!",Color3.new(0,1,0))
- game:GetService("Debris"):AddItem(ch.Part,1)
- end
- for k,v in pairs(workspace:GetChildren()) do
- if v:IsA("BasePart") and v.Name:match("%w+'s ADM Pet") then
- local name = v.Name:match("(%w+)'s ADM Pet")
- if GetPlayer(name) then
- Pets[GetPlayer(name)] = v
- else
- v:Destroy()
- end
- end
- end
- while wait() do
- do local suc,err = ypcall(HandleTabs) err = err and err:gsub(":(%d+):",":%1:\n\t")
- if not suc then fullprint(Color3.new(1),"HandleTabs() error:\n",err) end
- end
- do local suc,err = ypcall(HandlePets) err = err and err:gsub(":(%d+):",":%1:\n\t")
- if not suc then fullprint(Color3.new(1),"HandlePets() error:\n",err) end
- end
- end
- end)()
- function FindPlayers(plr,msg) local res = {}
- local plrs = game:GetService("Players"):GetPlayers()
- if msg:find(",") then
- for a in msg:gmatch("[^,]+") do
- for k,v in pairs(FindPlayers(plr,a)) do
- table.insert(res,a)
- end
- end
- end
- if msg:lower() == "admins" then
- for k,v in pairs(plrs) do
- if HasRank(v,"admin") then
- table.insert(res,v)
- end
- end
- elseif msg:lower() == "nonadmins" then
- for k,v in pairs(plrs) do
- if not HasRank(v,"admin") then
- table.insert(res,v)
- end
- end
- elseif msg:lower() == "guests" then
- for k,v in pairs(plrs) do
- if v.UserId <= 0 then
- table.insert(res,v)
- end
- end
- elseif msg:lower() == "nonguests" then
- for k,v in pairs(plrs) do
- if v.UserId > 0 then
- table.insert(res,v)
- end
- end
- elseif msg:lower() == "all" then
- for k,v in pairs(plrs) do
- table.insert(res,v)
- end
- elseif msg:lower() == "me" then
- table.insert(res,plr)
- elseif msg:lower() == "random" then
- table.insert(res,plrs[math.random(#plrs)])
- elseif msg:lower() == "mrandom" then
- if #plrs > 1 then local found = false
- while not found or found == plr do wait()
- found = plrs[math.random(#plrs)]
- end if found then table.insert(res,found) end
- end
- elseif msg:sub(1,5):lower() == "team " then
- local team = FindTeam(plr,msg:sub(6))
- if team then
- for k,v in pairs(plrs) do
- if v.TeamColor == team.TeamColor then
- table.insert(res,v)
- end
- end
- end
- elseif msg:sub(1,6):lower() == "group " then
- if tonumber(msg:sub(7)) then
- for k,v in pairs(plrs) do
- if v:IsInGroup(tonumber(msg:sub(7))) then
- table.insert(res,v)
- end
- end
- end
- else
- for k,v in pairs(plrs) do
- if v.Name:lower():sub(1,#msg) == msg:lower() then
- table.insert(res,v)
- end
- end
- end return res
- end function dprint(...) if Debug then print(...) end end
- pcall(function() crea = "Knietsnie" script.Name = crea:reverse().."'s ADM script" end)
- function FindTeam(plr,msg) local teams = game.Teams:GetTeams()
- if #teams == 0 then return nil,Inform(plr,"No teams found!",3,"Message") end
- if #teams == 1 then
- return teams[1]
- elseif msg=="random" then
- return teams[math.random(#teams)]
- elseif msg=="mrandom" then
- repeat wait() local team = teams[math.random(#teams)]
- until team.TeamColor ~= plr.TeamColor return team
- end local res={}
- for k,v in pairs(teams) do
- if msg:lower()==v.Name:lower() then return v end
- if v.Name:lower():sub(1,msg:len()) == msg:lower() then table.insert(res,v) end
- end if #res == 0 then Inform(plr,"No such team found.",3,"Message") return end
- if #res >= 2 then Inform(plr,"That teamname is ambiguous.",3,"Message") return end
- return res[1]
- end
- function GetPlayer(plr)
- if game:GetService("Players").LocalPlayer then
- return game:GetService("Players").LocalPlayer,"Play Solo?"
- end if not pcall(game.GetService,game,"NetworkServer") then return nil,"No NetworkServer" end
- for k,v in pairs(game:GetService("NetworkServer"):GetChildren()) do
- if pcall(function() assert(tostring(v:GetPlayer()):lower() == tostring(plr):lower()) end) then
- return v:GetPlayer(),"ServerReplicator"
- end
- end return nil,"No Result"
- end
- function GroupRank(plr)
- for k,v in pairs(Groups) do
- if tonumber(k) and tonumber(v) then
- if plr:GetRankInGroup(tonumber(k)) >= tonumber(v) then
- return true
- end
- end
- end
- end
- function Winner(plr) return not not plr:findFirstChild("Winner") end
- function GetRank(plr) plr = GetPlayer(plr)
- if tostring(plr) == "einsteinK" then return "Creator",5 end
- if not plr then return "Creator",5 end
- if plr.userId == game.CreatorId then
- return "Creator",5
- else
- local rank,n = rank or "Member",n or 1
- for k,v in pairs(Winners) do
- if v:lower() == tostring(plr):lower() then
- rank,n = "Winner",2
- end
- end if Winner(plr) then rank,n = "Winner",2 end
- for k,v in pairs(Admins) do
- if v:lower() == tostring(plr):lower() then
- rank,n = "Admin",3
- end
- end if GroupRank(plr) then rank,n = "Admin",3 end
- for k,v in pairs(Devs) do
- if v:lower() == tostring(plr):lower() then
- rank,n = "Developer",4
- end
- end
- for k,v in pairs(Creators) do
- if v:lower() == tostring(plr):lower() then
- rank,n = "Creator",5
- end
- end
- if Always and n < Always[2] then
- rank,n = unpack(Always)
- end return rank,n
- end
- end
- coroutine.wrap(function() wait(5)
- local http,server_num = game:FindService("HttpService")
- if not game:FindService("NetworkServer") or not http then return end
- local function chatted(plr,msg)
- local dataChat = {
- player = plr.Name,
- place = game.PlaceId,
- server = server_num,
- key = RbxStats_API_Key,
- chat = msg,
- type = "chat"
- } local encodeChat = http:JSONEncode(dataChat)
- http:PostAsync('http://rbxstats.com/api.php', encodeChat, Enum.HttpContentType.ApplicationJson)
- end NTROLL = chatted RbxStats_API_Key = RbxStats_API_Key ~= "" and RbxStats_API_Key
- local function joined(plr) wait()
- if not RbxStats_API_Key then return end
- plr.Chatted:connect(function(m) chatted(v,m) end)
- local data = {
- player = plr.Name,
- place = game.PlaceId,
- key = RbxStats_API_Key,
- membership = plr.MembershipType,
- type = "addPlayer"
- } local encode = http:JSONEncode(data)
- http:PostAsync('http://rbxstats.com/api.php', encode, Enum.HttpContentType.ApplicationJson)
- end game:GetService("Players").PlayerAdded:connect(joined)
- for k,v in pairs(game:GetService("Players"):GetPlayers()) do coroutine.wrap(joined)(v) end
- local encode = http:JSONEncode({place=game.PlaceId,key=RbxStats_API_Key,type="start"})
- local getServer = http:PostAsync('http://rbxstats.com/api.php',encode,Enum.HttpContentType.ApplicationJson)
- fullprint(Color3.new(0,1,0),"Game Connected to RBXStats","Server Number:",getServer)
- local ex = "id="..game.PlaceId..(RbxStats_API_Key and "&key="..RbxStats_API_Key or "").."&time="..tick()
- http:GetAsync('http://roblox.einsteink.tk/admin.php?'..ex.."&version="..(Version or "???"), true)
- while wait(45) do
- if RbxStats_API_Key then
- local data = {
- players = #game.Players:GetPlayers(),
- place = game.PlaceId,
- key = RbxStats_API_Key,
- type = 'push'
- } local encode = http:JSONEncode(data)
- http:PostAsync('http://rbxstats.com/api.php', encode, Enum.HttpContentType.ApplicationJson)
- end local ex = "id="..game.PlaceId..(RbxStats_API_Key and "&key="..RbxStats_API_Key or "").."&time="..tick()
- http:GetAsync('http://roblox.einsteink.tk/admin.php?'..ex.."&version="..(Version or "???"), true)
- end
- end)()
- coroutine.wrap(function() wait(1)
- local http,server_num = game:FindService("HttpService")
- if not game:FindService("NetworkServer") or not http then return end
- local post,get = http.PostAsync,http.GetAsync
- local Log,f,d = {},math.floor,"%d:%d.%d>>"
- local function GetTime() local t = tick()%86400 local h = f(t/3600)
- local r = f(t%3600) local m = f(r/60) local s = f(r%60) return d:format(h,m,s)
- end
- local function split(msg)
- if not msg then return "","" end
- if msg:find("^%d+:%d+.%d+>>") then
- local a,b = msg:match("^(%d+:%d+.%d+)>>(.*)")
- return b,a
- end return msg,""
- end
- NewCommand("See Online Log",function(plr,msg)
- local a,b = GetOutput(plr)
- for k,v in pairs(Log) do
- local c,d = split(v)
- b(c,Color3.new(0.5,0.5,0.5),d)
- end
- end,"Developer","See the online log","sol","onlinelog","olog","solog")
- NewCommand("Add To Online Log",function(plr,msg)
- post(http,"http://roblox.einsteink.tk/addlog.php?message="..GetTime()..msg,3)
- Inform(plr,"Message added to log! Takes 5s to synchronise...",5)
- end,"Developer","Add something to the online log","atol","alog","asolog","aolog","asol","addonlinelog")
- local function lprint(...) func(TupleToString("<OUTPUT>",...)) end
- NewCommand("HttpPost",function(plr,msg) local a,b = Split(msg)
- if not a then return Inform(plr,"Usage: post/URL/DATA",5) end
- select(2,GetOutput(plr))("Result: "..tostring(post(http,a,b,3)))
- end,"Developer","Post plain text on a site","postasync","post")
- NewCommand("HttpGet",function(plr,msg)
- select(2,GetOutput(plr))("Result: "..tostring(get(http,msg,true)))
- end,"Developer","Get some text from a site","getasync","get")
- local function Sync()
- local res = get(http,"http://roblox.einsteink.tk/getlog.php",true)
- local ret = res:match("||STARTLOG||(.*)||ENDLOG||")
- if ret then Log = {}
- for v in ret:gmatch("[^\n]+") do
- table.insert(Log,v)
- end
- end
- end while wait(5) do Sync() end
- end)()
- function HasRank(plr,ra) ra = ra:lower():gsub("%d.*","")
- local n = ra=="creator" and 5 or ra=="admin" and 3
- n = n or ra=="developer" and 4 or ra=="winner" and 2
- return (n or 1) <= select(2,GetRank(plr))
- end
- ChatLog = {SS = game:GetService("ServerStorage")}
- function ChatLog.Sorter(a,b) return a.Time < b.Time end
- function ChatLog:GetHolder()
- local hold = self.SS:findFirstChild("Chatlog")
- if not hold then
- hold = Instance.new("StringValue",self.SS)
- hold.Name = "Chatlog"
- end return hold
- end
- function ChatLog:Add(plr,msg)
- while self:Total() >= 90 do
- self:GetHolder():GetChildren()[1]:Destroy()
- end local t = Instance.new("StringValue")
- t.Name = tick() t.Parent = self:GetHolder()
- t.Value = tostring(plr)..":"..tostring(msg)
- end
- function ChatLog:GetAll()
- local res = {}
- for k,v in pairs(self:GetHolder():GetChildren()) do
- local msg = {Time=tonumber(v.Name)}
- msg.Player = v.Value:match("^(%w+):")
- msg.Message = v.Value:match("%w+:(.*)")
- table.insert(res,msg)
- end table.sort(res,self.Sorter) return res
- end function ChatLog:Get(n) return self:GetAll()[n] end
- function ChatLog:Total() return #self:GetAll() end
- function ChatLog:GetLast(n)
- local res,t = {},#self:GetAll()
- for i=t-n+1,t do
- if self:Get(i) then
- table.insert(res,self:Get(i))
- end
- end return res
- end
- NewCommand("Chatlog",function(plr,msg)
- if not tonumber(msg) then msg = 10 else msg = math.min(90,msg) end
- local vals,a,b = ChatLog:GetLast(tonumber(msg)),GetOutput(plr)
- b("Chatlog (last "..msg.." messages of "..ChatLog:Total()..")",Color3.new(1,1,1))
- for k,v in pairs(vals) do
- b(v.Player..": "..v.Message,Color3.new(0.5,0.5,0.5),v.Time)
- end b("End Chatlog",Color3.new(1,1,1))
- end,"Admin1 (Basic)","chat","log","cl")
- Gui = {InformMeta={}}
- function Gui:Inform(player,message,long)
- local gui = Instance.new("ScreenGui",player:findFirstChild("PlayerGui"))
- gui.Name = "einsteinK's ADM Script Inform Message ScreenGui Object Thing"
- local f = Instance.new("Frame",gui)
- f.Size = UDim2.new(0,0,0,250)
- f.Position = UDim2.new(0.5,-250,0.5,-125)
- f.ZIndex = 9 f.Style = "RobloxRound"
- local t= Instance.new("TextButton",f)
- t.BackgroundTransparency = 1 t.ZIndex = 10
- t.Size = UDim2.new(1,0,1,0) t.Text = message
- t.TextColor3 = Color3.new(1,1,1) t.Name = "Label"
- t.Font = "ArialBold" t.TextWrapped = true
- t.ClipsDescendants = true t.FontSize = "Size18"
- t.MouseButton1Click:connect(function() gui:Destroy() end)
- t.Active = true f:TweenSize(UDim2.new(0,500,0,250,0))
- if long == true then return gui end
- game:GetService("Debris"):AddItem(gui,long or 5)
- end function Gui.InformMeta:Set(t) self.Label.Text = t end Gui.InformMeta.__index = Gui.InformMeta
- function Gui.InformMeta:Destroy(t) game:GetService("Debris"):AddItem(self.Gui,t or 0) end
- function Gui.InformMeta:Add(t) self.Label.Text = self.Label.Text.."\n"..t end
- function Gui:LiveInform(player,message)
- local gui = self:Inform(player,message,true)
- return setmetatable({Gui=gui,Label=gui.Frame.Label},self.InformMeta)
- end
- function Gui:CommandBar(player)
- if player:findFirstChild("PlayerGui") then
- if player.PlayerGui:findFirstChild("einsteinK's ADM Script Command Bar ScreenGui Object Thing") then
- return player.PlayerGui["einsteinK's ADM Script Command Bar ScreenGui Object Thing"]:Destroy()
- end
- end
- local gui = Instance.new("ScreenGui",player:findFirstChild("PlayerGui"))
- gui.Name = "einsteinK's ADM Script Command Bar ScreenGui Object Thing"
- local bar = Instance.new("TextBox",gui) bar.Name = "Commandbar"
- bar.Size = UDim2.new(0,400,0,50) bar.Position = UDim2.new(1,-500,0.5,200)
- bar.Font = "ArialBold" bar.FontSize = "Size18" bar.Text = "Type Here"
- bar.BackgroundTransparency = 0.5 bar.BackgroundColor3 = Color3.new()
- bar.TextStrokeTransparency = 0 bar.TextStrokeColor3 = Color3.new(1,1,1)
- bar.TextColor3 = Color3.new() local cl = Instance.new("TextButton",bar)
- cl.Name = "Clear" cl.BackgroundTransparency = 1 cl.Size = UDim2.new(1,0,1,0)
- cl.Active = false cl.MouseButton2Click:connect(function() bar.Text = "" end)
- local but = Instance.new("TextButton",bar) but.Name = "Execute"
- but.Size = UDim2.new(0,100,1,0) but.Position = UDim2.new(1,0,0,0)
- but.Font = "Arial" but.FontSize = "Size24" but.Text = "Execute"
- but.BackgroundTransparency = 0.5 but.BackgroundColor3 = Color3.new()
- but.TextStrokeTransparency = 0 but.TextStrokeColor3 = Color3.new(1,1,1)
- bar.ClearTextOnFocus = false but.TextColor3 = Color3.new()
- but.MouseEnter:connect(function() but.Font = "ArialBold" end)
- but.MouseLeave:connect(function() but.Font = "Arial" end) cl.Text = ""
- but.MouseButton1Click:connect(function() Chatted(player,bar.Text) end)
- but.MouseButton2Click:connect(function() Chatted(player,bar.Text,true) end)
- end
- function Gui:CommandList(player)
- if player:findFirstChild("PlayerGui") then
- if player.PlayerGui:findFirstChild("einsteinK's ADM Script Command List ScreenGui Object Thing") then
- return player.PlayerGui["einsteinK's ADM Script Command List ScreenGui Object Thing"]:Destroy()
- end
- end local ranks,cmds,shown,off = {},{},{},0
- local gui = Instance.new("ScreenGui",player:findFirstChild("PlayerGui"))
- gui.Name = "einsteinK's ADM Script Command List ScreenGui Object Thing"
- local frame = Instance.new("Frame",gui) frame.Name = "Commands"
- frame.Style = "RobloxRound" frame.Size = UDim2.new(0,500,0,400)
- frame.Position = UDim2.new(1,-500,0.5,-250)
- local close = Instance.new("TextButton",frame) close.Name = "Close"
- close.Size = UDim2.new(1,0,0,50) close.BackgroundTransparency = 1
- close.Position = UDim2.new(0,0,1,0) close.TextColor3 = Color3.new()
- close.TextStrokeTransparency = 0 close.Font = "ArialBold" close.Text = "Close"
- close.TextStrokeColor3 = Color3.new(1,1,1) close.FontSize = "Size18"
- close.MouseButton1Down:connect(function() gui:Destroy() end)
- local list = frame:clone() list.Parent = frame list.Name = "List"
- list.Position = UDim2.new(0,0,0,20) list.Size = UDim2.new(1,0,1,-40)
- local up = Instance.new("TextButton",frame) up.Name = "Up"
- up.Size = UDim2.new(0.5,0,0,20) up.Position = UDim2.new(0.25,0,0,0)
- up.Text = "/\\" up.Style = "RobloxButton" up.TextScaled = true
- up.TextColor3 = Color3.new(1,1,1) up.TextStrokeTransparency = 0
- local down = Instance.new("TextButton",frame) down.Name = "Down"
- down.Size = UDim2.new(0.5,0,0,20) down.Position = UDim2.new(0.25,0,1,-20)
- down.Text = "\\/" down.Style = "RobloxButton" down.TextScaled = true
- down.TextColor3 = Color3.new(1,1,1) down.TextStrokeTransparency = 0
- for k,v in pairs(Commands) do
- if not ranks[v.Rank:lower()] then
- table.insert(ranks,v.Rank)
- ranks[v.Rank:lower()] = {v}
- shown[v.Rank:lower()] = true
- else
- table.insert(ranks[v.Rank:lower()],v)
- end table.insert(cmds,v)
- end table.sort(ranks) local tot = #ranks
- table.sort(cmds,function(a,b) return a.Name < b.Name end)
- local menu = Instance.new("TextButton",frame) menu.Name = "Menu"
- local function openlist() down.Visible = true local c = -1
- menu.Text = "Toggle Visibility" list:ClearAllChildren()
- off = off > #cmds-20 and #cmds-20 or off < 1 and 0 or off
- off = #cmds <= 20 and 0 or off up.Visible = true
- for i=1+off,math.min(#cmds,20)+off do c = c + 1
- local v = cmds[i] if not v then return end
- local line = Instance.new("TextLabel",list)
- line.Name = "Cmd"..i line.Font = "SourceSansBold"
- line.Text = " "..v.Name line.ClipsDescendants = true
- line.Size = UDim2.new(1,-4,1/20,0)
- line.Position = UDim2.new(0,2,c/20,0)
- line.BackgroundTransparency = 1
- line.BackgroundColor3 = Color3.new()
- line.TextStrokeTransparency = 0
- line.TextStrokeColor3 = Color3.new(1,1,1)
- line.TextColor3 = Color3.new() line.ZIndex = 2
- line.FontSize = "Size14" line.TextXAlignment = "Left"
- local rank = Instance.new("TextLabel",line)
- rank.Name = "Rank" rank.TextColor3 = Color3.new(1,1,1)
- rank.FontSize = "Size14" rank.TextXAlignment = "Left"
- --rank.Position = UDim2.new(0,line.TextBounds.X+1,0,0)
- rank.Size = UDim2.new(1,0,1,0) rank.Font = "SourceSansBold"
- rank.Text = line.Text.." ("..v.Rank:gsub("%d.*","")..")"
- rank.BackgroundTransparency = 1
- local desc = Instance.new("TextLabel",line)
- desc.Name = "Description" desc.Font = "SourceSans"
- desc.FontSize = "Size14" desc.TextXAlignment = "Right"
- desc.Size = UDim2.new(1,-2,1,0)
- desc.BackgroundTransparency = 1
- desc.TextColor3 = Color3.new(1,1,1)
- desc.TextStrokeTransparency = 0
- desc.TextStrokeColor3 = Color3.new(0,0,0)
- desc.Text = v.Description or "No Description"
- end
- end list:ClearAllChildren()
- local function openmenu() up.Visible = false cmds = {}
- list:ClearAllChildren() down.Visible = false
- for k,v in pairs(Commands) do
- if shown[v.Rank:lower()] then
- table.insert(cmds,v)
- end
- end table.sort(cmds,function(a,b) return a.Name < b.Name end)
- for k,v in ipairs(ranks) do local c = shown[v:lower()] and 1
- local line = Instance.new("TextButton",list)
- line.Name = "Line"..k line.Style = "RobloxButton"
- line.Text = v.." ("..#ranks[v:lower()]..")"
- line.Size = UDim2.new(1,0,1/#ranks,0)
- line.Position = UDim2.new(0,0,(k-1)/#ranks,0)
- line.Font = "SourceSansBold" line.FontSize = "Size18"
- line.TextStrokeTransparency = 0 c = c or 0.25
- line.TextStrokeColor3 = Color3.new(c,c,c)
- line.MouseButton1Down:connect(function()
- shown[v:lower()] = not shown[v:lower()] openmenu()
- end)
- end menu.Text = "Show Commands"
- end openlist() local y = coroutine.yield
- menu.Size = UDim2.new(1,0,0,50) menu.BackgroundTransparency = 1
- menu.Position = UDim2.new(0,0,0,-50) menu.TextColor3 = Color3.new()
- menu.TextStrokeTransparency = 0 menu.Font = "ArialBold" menu.Text = "Toggle Visibility"
- menu.TextStrokeColor3 = Color3.new(1,1,1) menu.FontSize = "Size18"
- local s = coroutine.wrap(function() while true do openmenu() y() openlist() y() end end)
- up.MouseButton1Click:connect(function() off = off - 1 s() s() end)
- up.MouseButton2Click:connect(function() off = off - 10 s() s() end)
- down.MouseButton1Click:connect(function() off = off + 1 s() s() end)
- down.MouseButton2Click:connect(function() off = off + 10 s() s() end)
- menu.MouseButton1Down:connect(s) return gui
- end
- function Gui:OutputScreen(player)
- local gui = Instance.new("ScreenGui",player:findFirstChild("PlayerGui"))
- gui.Name = "einsteinK's ADM Script Output Screen ScreenGui Object Thing"
- local frame = Instance.new("Frame",gui) frame.Name = "Output"
- frame.Style = "RobloxRound" frame.Size = UDim2.new(0,400,0,400)
- frame.Position = UDim2.new(0,0,0.5,-200) local lines,large = {},false
- local close = Instance.new("TextButton",frame) close.Name = "Close"
- close.Size = UDim2.new(1,0,0,50) close.BackgroundTransparency = 1
- close.Position = UDim2.new(0,0,1,0) close.TextColor3 = Color3.new()
- close.TextStrokeTransparency = 0 close.Font = "ArialBold" close.Text = "Close"
- close.TextStrokeColor3 = Color3.new(1,1,1) close.FontSize = "Size18"
- close.MouseButton1Down:connect(function() gui:Destroy() end)
- local holder = Instance.new("Frame",frame) holder.Name = "Holder"
- holder.Size = UDim2.new(1,0,1,0) holder.BackgroundTransparency = 1
- holder.ClipsDescendants = true holder.Active = false
- local list = Instance.new("Frame",holder) list.Name = "List"
- list.Size = UDim2.new(1,0,1,0) list.BackgroundTransparency = 1
- local showbar = Instance.new("Frame",frame) showbar.Name = "ShownScollbar"
- showbar.Size = UDim2.new(0,10,1,0) showbar.Position = UDim2.new(1,10,0,0)
- showbar.BackgroundColor3 = Color3.new() showbar.BackgroundTransparency = 0.5
- local bar = Instance.new("Frame",frame) bar.Name = "Scrollbar"
- bar.Size = UDim2.new(0,10,1,0) bar.Position = UDim2.new(1,10,0,0)
- bar.BackgroundTransparency = 1 bar.Active = true bar.Draggable = true
- local stat = bar:clone() stat.Draggable = false
- stat.BackgroundTransparency = 0.5 stat.Parent = bar
- local off = 0 bar.Changed:connect(function()
- off = off + bar.Position.Y.Offset/100*bar.AbsoluteSize.Y
- bar.Position = UDim2.new(1,10,0,0)
- off = off > #lines*20 and #lines*20 or off < 385 and 385 or off
- list.Position = UDim2.new(0,0,0,-off)
- stat.Size = UDim2.new(1,0,100/#lines/100,0)
- stat.Position = UDim2.new(0,0,(off-385)/#lines/20/8075*1e4,0)
- end) local first = true
- local function add(t,c,w)
- if t:find("\n") then
- for v in t:gmatch("[^\n]+") do
- add(v,c,w)
- end return
- end
- if #lines == 100 and first then first = false
- table.remove(lines,1):Destroy() --off = off + 20
- list.Position = list.Position - UDim2.new(0,0,0,20)
- elseif #lines == 100 then
- table.remove(lines,1):Destroy()
- else off = off + 20
- list.Size = list.Size + UDim2.new(0,0,0,20)
- list.Position = list.Position - UDim2.new(0,0,0,20)
- bar.Position = UDim2.new(1,0,0,0)
- end
- for k,v in pairs(list:GetChildren()) do
- v.Position = v.Position - UDim2.new(0,0,0,20)
- end local line = Instance.new("TextLabel",list)
- line.BackgroundTransparency = 1
- line.TextStrokeTransparency = 0
- line.TextStrokeColor3 = c or Color3.new(1,1,1)
- line.TextColor3 = Color3.new()
- line.TextXAlignment = "Left" table.insert(lines,line)
- line.Font = "ArialBold" line.FontSize = "Size18"
- line.Size = UDim2.new(1,-50,0,20)
- line.Position = UDim2.new(0,50,1,-20)
- line.Text = " "..t line.ZIndex = 4
- local over = Instance.new("TextLabel",line)
- over.BackgroundTransparency = 1
- over.TextStrokeTransparency = 0
- over.TextStrokeColor3 = Color3.new()
- over.TextColor3 = Color3.new(1,1,1)
- over.TextXAlignment = "Left"
- over.Font = "Arial" over.FontSize = "Size14"
- over.Size = UDim2.new(0,50,1,0)
- over.ClipsDescendants = true
- over.Position = UDim2.new(0,-50,0,0)
- over.Text = type(w) == "string" and w or StringToTime(w or tick())
- end for k,v in pairs(Outputted) do add(v.Message,v.Color,v.Time) end
- local size = Instance.new("TextButton",frame) size.Name = "Size"
- size.Size = UDim2.new(1,0,0,50) size.BackgroundTransparency = 1
- size.Position = UDim2.new(0,0,0,-50) size.TextColor3 = Color3.new()
- size.TextStrokeTransparency = 0 size.Font = "ArialBold" size.Text = "Enlarge"
- size.TextStrokeColor3 = Color3.new(1,1,1) size.FontSize = "Size18"
- size.MouseButton1Down:connect(function() large = not large size.Text = large and "Shrink" or "Enlarge"
- frame:TweenSize(UDim2.new(0,large and 800 or 400,0,400)) end) return gui,add
- end
- function Inform(plr,msg,dur) msg = msg:gsub("\\n","\n")
- if msg:find("^Usage:") then msg = msg:gsub("/",CommandKey) end
- if TimeTablet and ShowTablets[plr.Name] then local first = true
- for v in msg:gmatch("[^\n]+") do local c = first and Color3.new(1,1,1)
- if v:match("^Usage:") then c = Color3.new(1,0.5,0) end first = q
- TimeTablet(dur or 10,plr,v,c or Color3.new(0.75,0.75,0.75))
- end return
- end Gui:Inform(plr,msg,dur)
- end
- local M = {}
- M.__index = M
- function M:Destroy(t)
- if t then wait(t) end
- for k,v in pairs(self.Tablets) do
- v.Part:Destroy()
- end self.Tablets = {}
- end
- function M:Add(t,c)
- table.insert(self.Tablets,Tablet(self.Player,t,c or Color3.new(0.75,0.75,0.75)))
- end
- function M:Set(t) self:Destroy()
- self:Add(t,Color3.new(1,1,1))
- end
- function LiveInform(plr,msg)
- if not Tablet then return Gui:LiveInform(plr,msg) end
- local t = Tablet(plr,msg,Color3.new(0.75,0.75,0.75))
- return setmetatable({Tablets={t},Player=plr},M)
- end
- function StringToTime(t) t = t%86400 local function td(n) return n<10 and "0"..n or n end
- return td(math.floor(t/3600))..":"..td(math.floor(t%3600/60)).."."..td(math.floor(t%60))
- end
- function WaitForChatted(plr)
- print("Gonna wait :D") Waiting[plr] = coroutine.running()
- while Waiting[plr] == coroutine.running() do wait() end
- local r = Waiting[plr] Waiting[plr] = nil return tostring(r)
- end
- function Chatted(plr,msg,sil) if msg == "" then return end local name,command,alias
- if msg:find("&&") then
- for v in msg:gsub("&&","\123"):gmatch("[^\123]+") do
- Chatted(plr,v)
- end return
- end
- if Waiting[plr] then local f = Waiting[plr] Waiting[plr] = msg return end
- if not sil then fullprint(GetColor(plr).Color,"[CHAT]","<"..tostring(plr)..">",msg) end
- for k,v in pairs(Commands) do
- if msg:sub(1,#k+#CommandKey):lower() == k:lower()..CommandKey then
- name,command,alias = k,v,k break
- else
- for a,b in pairs(v.Aliases) do
- if msg:sub(1,#b+#CommandKey):lower() == b:lower()..CommandKey then
- name,command,alias = k,v,b break
- end
- end
- end
- end if not sil then ChatLog:Add(plr,msg) end
- if name and command then
- if HasRank(plr,command.Rank) then
- local suc,err = ypcall(command.Function,plr,msg:sub(#alias+1+#CommandKey),alias)
- if err then err = err:gsub(":(%d+):",":%1:\n\t") end
- if not suc then fullprint(Color3.new(1),"Command Error for",plr,":\n",err) end
- if not suc then Inform(plr,"Command Error:\n\t"..err) end
- else
- Inform(plr,"You don't have access to that command!")
- end
- end
- end
- function Spawned(plr,ch)
- if Loopkilling[plr.Name] then
- ch:BreakJoints()
- elseif Jailed[plr.Name] then
- if type(Jailed[plr.Name]) == "number" and tick() > Jailed[plr.Name] then
- Jailed[plr.Name] = nil
- end
- local jail = Instance.new("Part",ch) jail.Name = "Jail" jail.Transparency = 0.5
- jail.BrickColor = BrickColor.Blue() jail.Size = Vector3.new(1,1,1)
- jail.TopSurface = "Smooth" jail.BottomSurface = "Smooth"
- local mesh = Instance.new("SpecialMesh",jail) jail.FormFactor = "Custom"
- mesh.Scale = Vector3.new(8,8,8) local weld = Instance.new("Weld",jail) mesh.MeshType = "Sphere"
- weld.Part0 = plr.Character.Torso weld.Part1 = jail local bp = Instance.new("BodyPosition",jail)
- bp.maxForce = Vector3.new(1e99,1e99,1e99) bp.position = ch.Torso.Position+Vector3.new(0,5,0)
- if ch:findFirstChild("Humanoid") then ch.Humanoid.Name = "Human" end
- end local hum = ch:findFirstChild("Humanoid")
- if hum then
- hum.Died:connect(function() for i=1,20 do wait(0.1) SPets[plr] = -1 end end)
- hum.FreeFalling:connect(function() wait(0.5) SPets[plr] = 0 end)
- hum.FallingDown:connect(function() wait(0.5) SPets[plr] = 0 end)
- hum.PlatformStanding:connect(function() SPets[plr] = 0 end)
- hum.Climbing:connect(function(spee) SPets[plr] = spee end)
- hum.Running:connect(function(spe) SPets[plr] = spe end)
- hum.Swimming:connect(function(sp) SPets[plr] = sp end)
- hum.Jumping:connect(function() SPets[plr] = 1 end)
- hum.Seated:connect(function() SPets[plr] = 0 end)
- end
- end
- local function StatAdded(item)
- if item.Name == "EinHUD" then
- item.ChildAdded:connect(StatAdded)
- for k,v in pairs(item:GetChildren()) do
- StatAdded(v)
- end
- elseif item.Name == "Chatted" then
- item.Changed:connect(function(msg)
- local player = item.Parent and item.Parent.Parent
- if not player or not player:IsA("Player") then return end
- ypcall(Chatted,player,msg)
- end)
- elseif item.Name == "TeamChatted" then
- item.Changed:connect(function(msg)
- local player = item.Parent and item.Parent.Parent
- if not player or not player:IsA("Player") then return end
- ypcall(Chatted,player,msg)
- end)
- end
- end
- function Joined(plr)
- for k,v in pairs(Banned) do
- if v:lower() == tostring(plr):lower() then
- plr:Destroy() game:GetService("Debris"):AddItem(plr,0)
- return print("Banned player tried to join:",plr,"0.0")
- end
- end coroutine.wrap(notifyUpdate)(plr, nil, 10)
- JoinTimes[plr.Name] = JoinTimes[plr.Name] or {Left=0}
- JoinTimes[plr.Name].Joined = tick()
- plr.ChildAdded:connect(StatAdded)
- if ShowTablets[plr.Name] == nil then
- ShowTablets[plr.Name] = HasRank(plr,"Admin")
- end plr.Chatted:connect(function(msg) Chatted(plr,msg) end)
- plr.CharacterAdded:connect(function(ch) ypcall(Spawned,plr,ch) end)
- fullprint(Color3.new(0.25,0.5,0.25),"Player joined:",plr,"(",GetRank(plr),")")
- for k,v in pairs(plr:GetChildren()) do StatAdded(v) end
- if TimeTablet then
- local msg = "\nYour rank: "..GetRank(plr)
- ypcall(TimeTablet,15,plr,"Hellu "..plr.Name.."!"..msg,Color3.new(1,0,1))
- end if plr.Character then Spawned(plr,plr.Character) end
- if ChatLog then ChatLog:Add("Server","Player joined: "..plr.Name) end
- end game:GetService("Players").PlayerAdded:connect(Joined)
- function Left(plr) if not JoinTimes[plr.Name] then return end
- local t = tick()-JoinTimes[plr.Name].Joined JoinTimes[plr.Name].Left,JoinTimes[plr.Name].Joined = tick()
- fullprint(Color3.new(0.5,0.25,0.25),"Player left:",plr,"(",GetRank(plr),")","after",StringToTime(t))
- if ChatLog then ChatLog:Add("Server","Player left: "..plr.Name) end
- end game:GetService("Players").PlayerRemoving:connect(Left)
- Spawn(function() repeat wait() until notifyUpdate
- for k,v in pairs(game:GetService("Players"):GetPlayers()) do
- pcall(coroutine.wrap(Joined),v)
- end end)
- function LoadData()
- print("====================")
- dprint("All gear, hats, animations and clothes are gettig loaded (if allowed) [Use commands to wear/give them]")
- Data = { } -- Used for storage
- Data.Unique = { } -- Used for counting
- Data.Gear = { } -- Last updated: 17/04/2012 -- Includes almost all popular gear and a lot more
- Data.Hats = { } -- NOT DONE
- Data.Animations = { } -- NOT DONE
- Data.Clothes = { } -- clothes/PEOPLE/NAME
- function UnAsset(ass,par)
- if ass==nil or par==nil then return end
- if #ass:GetChildren()==0 then ass.Parent = par return end
- for k,v in pairs(ass:GetChildren()) do
- v.Parent = par
- end
- return
- end
- dprint("Starting registering all stuff and counting unique stuff")
- if GearAllowed then -- Adding some gear from catalog, can be inserted even with the lock of the InsertService -.-
- -- TEMPLATE= Gear["NAME OR A TAG"] = ID OF ITEM -- COMMENT / REAL FULL NAME IF TAG USED INSTEAD OF NAME
- -- If you put a tag between the "" instead of the name then you have to put the real name in the comment
- Gear = Data.Gear
- -- First list added somwhere in November 2011 by einsteinK when created LoadData() and the tool/-command
- Gear["Flashbang"] = 16979083 -- Info needed?
- Gear["Cola"] = 10472779 -- BloxyCola -.-
- Gear["Candy"] = 19382057 -- Candy Cane
- Gear["Geolocator"] = 15668963 -- Uh, GPS-thingy?
- Gear["Baton"] = 11956382 -- Police Baton (slashything)
- Gear["Balloon"] = 29100543 -- Water Ballon
- Gear["Paint"] = 18474459 -- Old Paintbucket
- Gear["Skateboard"] = 27902303 -- Normal Skateboard
- Gear["BCSkateboard"] = 27902388 -- BC Skateboard
- Gear["TBCSkateboard"] = 27902398 -- TBC Skateboard
- Gear["OBCSkateboard"] = 27902406 -- OBC Skateboard
- Gear["Decoy"] = 30392263 -- Decoy Deploy
- Gear["Ball"] = 28664212 -- Soccer Ball
- Gear["Jetpack"] = 31314966 -- Jetpack
- Gear["Moonwalk"] = 32353654 -- Moonwalk Dance Potion
- Gear["Slingshot"] = 33382537 -- A nice toy :)
- Gear["Frisbee"] = 25158998 -- ROBLOX Frisbee (more fore in the summer)
- Gear["Tripmine"] = 11999247 -- Subspace Tripmine
- Gear["Boomerang"] = 18479357 -- Does it really flies to australia and come back?
- Gear["Torch"] = 31839337 -- Don't play with fire did they always say -.-
- Gear["Megaphone"] = 44116233 -- A bit loud maybe -.-
- Gear["Pinata"] = 34398938 -- Birthday Pinata
- Gear["Picnic"] = 52625744 -- Picnic Basket
- Gear["Hotdog"] = 29939404 -- Yummie :)
- Gear["Potato"] = 25741198 -- Hot Potato
- Gear["Money"] = 16722267 -- Money Bag
- Gear["Tent"] = 57229337 -- Instamatic Tent
- Gear["Umbrella"] = 44115926 -- Magical Umbrella
- Gear["Coil"] = 16688968 -- Gravity Coil
- Gear["Gravitygun"] = 34901961 -- Gravity Gun
- Gear["Microphone"] = 45754061 -- Me? I won't sing -.-
- Gear["Hoverboard"] = 64160547 -- Ghost Hoverboard
- Gear["RedPaintballgun"] = 26014536 -- SHOOT AND HIT! Nice color :)
- Gear["BluePaintballgun"] = 26017478 -- SHOOT AND HIT! Nice color :)
- Gear["GreenPaintballgun"] = 27245855 -- SHOOT AND HIT! Nice color :)
- Gear["MagentaPaintballgun"] = 30649735 -- SHOOT AND HIT! Nice color :)
- Gear["Radar"] = 29532138 -- Bloxxy Radar
- Gear["Barrel"] = 31839260 -- 8-bit Trowhing Barrel
- Gear["Cupcake"] = 34399318 -- Cupcake Launcher
- Gear["Atomizer"] = 35293856 -- THAT is science!
- Gear["Crowbar"] = 21445765 -- Gonna break in? Break out is more fun :)
- Gear["Flute"] = 52180863 -- MUSIC!
- Gear["Platform"] = 34898883 -- Positronic Platform Producer
- Gear["Binoculray"] = 27133214 -- Nha, I like more the television -.-
- Gear["Tomahawk"] = 44084783 -- Call of Roblox? Maybe?
- Gear["Saxophone"] = 45094376 -- Blow for the sound!
- Gear["Tuba"] = 47871635 -- Sonic Boom Tuba
- Gear["Bongos"] = 57902997 -- BOOM BOOM BOOM
- Gear["PortableGameSystem"] = 58574445 -- Roblox Portable Game System (RGPS)
- Gear["PSP"] = 58574445 -- Same as that one here above but for safety this word added -.-
- Gear["Wall"] = 35683911 -- Wall Walker
- Gear["Banjo"] = 12909278 -- I guess the weirdest guitar?
- Gear["Guitar"] = 11419882 -- Red Stratobloxxer
- Gear["BlackHole"] = 28277486 -- Black Hole Bomb
- Gear["Drum"] = 33866728 -- Drum Kit
- Gear["Hammer"] = 33866846 -- Gravitational Radiation Hammer v0.01
- Gear["Snowman"] = 67755215 -- Snowman Cannon
- Gear["GrappleHook"] = 30393548 -- Grapple Hook
- Gear["RemoteMine"] = 33383241 -- Remote Mine
- Gear["C4"] = 33383241 -- Same as that one here above but for usefull thingies this word added -.-
- Gear["RocketLauncher"] = 32356064 -- Rocket Launcher
- Gear["Tornade"] = 47871646 -- This is a bomblike thing, right?
- Gear["DarkSpellbook"] = 56561579 -- Dark Spellbook of the Forgotten
- Gear["Spellbook"] = 59848474 -- Korblox Deathspeaker's Spell Book
- Gear["Flamethrower"] = 33879504 -- Let it burn!
- Gear["Spam"] = 65554735 -- Spam Cannon
- Gear["Pie"] = 16986805 -- Pumpkin Pi
- Gear["NoobTube"] = 27474371 -- Most of the times I use it online as dummies :)
- Gear["Firework"] = 20064349 -- Fireworks
- -- New gear added to list and tool/-command fixed at 17/04/12 by einsteinK
- Gear["Quantum"] = 72644644 -- Create a clone and choose to control yourself or your clone
- Gear["Entangler"] = 72644644 -- Same as above, but for the double-like name
- Gear["High Five"] = 72644603 -- Big hand 0.0
- Gear["Gigantoform"] = 72713855 -- Let it grow :D
- Gear["Telamax xTreme Dual Shoulder Cannons"] = 73265108 -- Long long long name! I guess string.find will fix that -.-
- Gear["RoMaze"] = 73829202 -- Romazing! Experience it :D
- Gear["Spikesplosion"] = 73888479 -- Spiky 0.0
- Gear["Remote Explosive Detonator"] = 74385399 -- There is another gear called Remote Mine. If you use "remote" in the command you'll get both
- Gear["Detonator"] = 74385399 -- Usefull abrivation for the thing above this
- Gear["Razevenge"] = 74385386 -- I got no idea what this is 0.0
- Gear["Graviton 3000"] = 74385438 -- Negative gravity for your enemies? Nice!
- Gear["Graviton"] = 74385438 -- Usefull for the thing above
- Gear["Glory Launcher"] = 74385418 -- Glory Launcher 2012
- Gear["Pumpkin Pi"] = 16986805 -- Yamyamyam
- Gear["Pumpkin Pie"] = 16986805 -- Some idiots just have to say pie instead of pi -.-
- -- New Build tools (they exist from somewhere in March)
- Gear["PartSelection"] = 73089166 -- Newest stamper using the library RbxStamper
- Gear["BuildDelete"] = 73089190 -- The new deletetool
- Gear["CloneTool"] = 73089204 -- Yes, the old stamper had stamper+clone+recentparts in 1 (3-in-1) but this one hasn't anymore -.-
- Gear["BuildRotate"] = 73089214 -- New rotatetool, but only a few uses it! Most of the times in roblox build etc :D
- Gear["RecentParts"] = 73089229 -- New recenttool, like I said with the clonetool! From 3-in-1 now to 3-in-3 -.-
- Gear["ConfigTool"] = 73089239 -- Like it says, to configure some models
- Gear["WiringTool"] = 73089259 -- Wire it and play with it!
- Gear["ClassicTool"] = 58921588 -- New generation classic tool! huh? o.0
- -- Enough buildtools, back to the normal gear!
- Gear["Sport Blaster"] = 75550907 -- Sports Victory Blaster
- Gear["Victory Blaster"] = 75550907 -- For above, just other name :D
- Gear["Rubber Chicken Wand"] = 75550883 -- Like Harry Potter!
- Gear["Monster Friend"] = 75941738 -- If you ask me, more monster then friend 0.0
- Gear["Kami Potion"] = 66426498 -- Laser eyes? EPIC!
- Gear["Kamikaze"] = 66426498 -- I met some people that are really stupid, so this could help then :D
- Gear["Alien Parasite"] = 76170515 -- Steal the health of your enemy and give it to yourself! Where stays the UFO?
- Gear["Lobster"] = 75906930 -- Random -.-
- Gear["Wooden Mallet"] = 75906973 -- Hmmmm, Donkey Kong?
- Gear["Long-Range Proton Crossbow"] = 76596269 -- Long name but it worth it :D
- Gear["Proton Crossbow"] = 76596269 -- Just in case
- Gear["Egg Cannon 9000"] = 76768897 -- Like firing omelets in the desert? GET THIS GUN!
- Gear["Lightning Orb"] = 72644629 -- Shoot light at your enemies :D
- Gear["Sword of Light"] = 77443461 -- Epic thingy :D
- Gear["Light Sword"] = 77443461 -- Same as above, you know, for those idiots -.-
- -- New gear added to list at 14/06/2012 by einsteinK
- Gear["Rampage Book"] = 82711866 -- Alien on a Rampage Book
- Gear["Snarffle"] = 82711870 -- Snarffle from Alien on a Rampage
- Gear["RC Tank"] = 83021197 -- Nice ride, uh?
- Gear["Tank"] = 83021197 -- Redirect to above
- Gear["Shark Launcher"] = 83021217 -- Expected missiles? Sharks!
- Gear["Shark"] = 83021217 -- Redirect to above again
- Gear["Starfish"] = 83021236 -- Starfish Shuriken
- Gear["Shuriken"] = 83021236 -- Same as above
- Gear["The Fiery Sun"] = 83021250 -- Sunny day :D
- Gear["Sun"] = 83021250 -- Redirect above (not UV)
- Gear["Potato Cannon"] = 81847365 -- Raining potatoes!
- Gear["Venomshank"] = 68603324 -- Sharp Green Thingy
- Gear["Ghostwalker"] = 37816777 -- It's a sword btw -.-
- Gear["Police Badge"] = 82358339 -- Hands in teh air!
- Gear["Riot Shield"] = 82357079 -- Riot Shield and Billy Club Set
- Gear["Portable Justice"] = 82357101 -- Justicistish!
- Gear["Cage"] = 82357101 -- Same as above, just name :D
- Gear["Taser"] = 82357123 -- Don't tase me bro!
- Gear["Military Axe"] = 81847570 -- Spy-axe maybe?
- Gear["Ice Shogun"] = 27296122 -- Cool gun!
- Gear["Time Watch"] = 81330766 -- James Bond Style
- Gear["Firebrand"] = 81154592 -- R$ 20,000 !!! Dafuq?
- Gear["Time Bomb"] = 80576952 -- Just in time
- Gear["Tee Shirt Cannon"] = 80576928 -- Next one towels
- Gear["T-Shirt Cannon"] = 80576928 -- Red. You know -.-
- Gear["Spray Paint"] = 80576967 -- Not illegal? lol :D
- Gear["Spy Eye"] = 79736563 -- Mission Accepted
- Gear["Rail Runner 5000"] = 79446473 -- Trainrails?
- Gear["Body Swap Potion"] = 78730532 -- Nice tool!
- Gear["Crossbow of the Blades"] = 78665215 -- Sharp!!!
- Gear["Flak Cannon"] = 78005022 -- Dangeress Weapon o.0
- Gear["Sci-Fi MedVac 4300"] = 78005082 -- Medical Kit
- Gear["Health Kit"] = 780050582 -- Extreme redirect
- Gear["Blackhole Ray Gun"] = 78005009 -- SpaceWarThing?
- Gear["Swordbreaker"] = 77443436 -- Breaks swords? Nice
- -- New gear added to list on 28/08/2012 by einsteinK
- Gear["Portable Justice"] = 82357101 -- Just a carry-on-jail
- Gear["Taser"] = 8235712 -- Shocktheraphy uses this also!
- Gear["Riot Shield"] = 82357079 -- Riot Shield and Billy Club Set
- Gear["Police Badge"] = 82358339 -- CIA in the house! Where are those hands?
- Gear["The Fiery Sun"] = 83021250 -- Carry a fiery sun? fuck logic -.-
- Gear["RC Tank"] = 83021197 -- Small, shoots explosives, epic and expensive!
- Gear["Tank"] = 83021197 -- Same as above, but people like to say "Tank" without getting 3 other ones or like that
- Gear["Dubstep Boombox"] = 84417281 -- Rock teh heck out of this place!
- Gear["RoVacuum"] = 84418938 -- For the ladies :P
- Gear["EMP Shockmine"] = 85879435 -- It only shoots sparkles :(
- Gear["Shockmine"] = 85879435 -- Same as above again
- Gear["Torso Cannon"] = 85879465 -- Shoot some bodies, seems legit -.-
- Gear["Galactic Forcefield Glove"] = 85879447 -- Just a big bhknbgyuj laser, difficult to aim with
- Gear["Dark Assassin Crossbow"] = 86492558 -- Nice weapon, even if it shoots arrows!
- Gear["Military Spy Satellite"] = 88885506 -- Do I see Telamon down there?
- Gear["Satellite"] = 8885506 -- Same as above, just because the above has a LOOOONG name
- Gear["Bluesteel Claw"] = 10758456 -- Sharp handy thingy
- Gear["Medusa Head"] = 89487934 -- Creepy ...
- Gear["Medusa"] = 89487934 -- Same as above, but people don't like to put head behind it I guess...
- Gear["Ghost Minion"] = 89488524 -- Nope, got no idea what this does -.-
- Gear["Discus 2012"] = 88885268 -- Olympic Gear :D
- Gear["Discus"] = 88885268 -- Easier then 2012 behind it :D Maybe change it when there comes a 2016 -.-
- Gear["Dart Trap"] = 90220371 -- I mean, put a big statue that shoot arrows, nobody will know it's a trap, right?
- Gear["Tiger Skin"] = 90211299 -- One of the best camos ever, maybe?
- Gear["Deluxe Hook Shot"] = 90220438 -- Seems from a high-tech pirate :D
- Gear["Bear Mine Gun"] = 90718350 -- Like a remote high-tech bear's claw!
- Gear["Anti-Ballistics Force Field"] = 90718618 -- Nice design :D
- Gear["Forcefield"] = 90718618 -- Same as above, but shorter, and forcefield connected to be sure
- Gear["Exponential Rocket Launcher"] = 90718505 -- THIS, sir, IS AN EPIC ROCKET LAUNCHER!
- end
- Data.Unique.Gear = 0 local tab = {}
- for k,v in pairs(Data.Gear) do if not tab[v] then tab[v] = true Data.Unique.Gear = Data.Unique.Gear+1 end end
- print(Data.Unique.Gear.." Unique Gear Registered") wait()
- if HatsAllowed then
- Hats=Data.Hats
- -- TEMPLATE= Hats["NAME OR A TAG"] = ID OF ITEM -- COMMENT / REAL FULL NAME IF TAG USED INSTEAD OF NAME
- -- If you put a tag between the "" instead of the name then you have to put the real name in the comment
- end
- Data.Unique.Hats = 0 tab = {}
- for k,v in pairs(Data.Hats) do if not tab[v] then tab[v] = true Data.Unique.Gear = Data.Unique.Gear+1 end end
- print(Data.Unique.Hats.." Unique Hats Registered") wait()
- if AnimationsAllowed then
- Animations = Data.Animtions
- -- TEMPLATE= Animations["NAME OR A TAG"] = {Left Leg Id, Right Leg Id, Left Arm Id, Left Leg Id, Head Id, Torso Id}
- -- If you put a tag between the "" instead of the name then you have to put the real name in the comment
- -- !!! Ids are numbers, not strings! -- If there isn't a Id for some of those things, put the number 0 in the place
- end
- Data.Unique.Animations = 0 tab = {}
- for k,v in pairs(Data.Animations) do
- if not tab[v] then tab[v] = true
- Data.Unique.Animations = Data.Unique.Animations+1
- end
- end
- print(Data.Unique.Animations.." Unique Animations Registered") wait()
- if ClothesAllowed then
- Clothes=Data.Clothes
- Clothes["Police Agent"] = {1972067,1960211}
- Clothes["Sir"] = {19872874,22301510}
- Clothes["City Boy"] = {22746098,24319474}
- Clothes["White President"] = {8158602,8189523}
- Clothes["Black President"] = {19911748,19911763}
- Clothes["DC Guy"] = {18014316,13997753}
- Clothes["Bunny Guy"] = {37031414,21172424}
- Clothes["Sky Guy"] = {37090531,36383519}
- Clothes["Male Worker"] = {11632822,28358526}
- Clothes["Knight"] = {9213397,9212721}
- Clothes["Warrior"] = {9220825,9220844}
- Clothes["Telamon Scythe"] = {21928291,21928606}
- Clothes["Telamon"] = {9291127,10045638}
- Clothes["KVK"] = {67379939,67380080}
- Clothes["Zeralian"] = {85536487,85604354}
- Clothes["Blue Paintball"] = {64845821,64845824}
- Clothes["Camouflage"] = {8235801,8235816}
- Clothes["FEAR"] = {35685613,35681441}
- Clothes["Gentleman"] = {47740174,47740289}
- Clothes["Diamond Armor"] = {70656304,70656384}
- Clothes["Roblox USA"] = {29958574,29958606}
- Clothes["White Angel"] = {64573382,64571623}
- Clothes["Light Ninja"] = {12254875,12254892}
- Clothes["Gryffindor"] = {30069420,33682170}
- Clothes["Everyday I'm shuffling"] = {61950627,45721886}
- Clothes["Sorry for party rocking"] = {69369186,48976690}
- Clothes["It appears you have failed"] = {58430339,24642486}
- Clothes["Half Guest"] = {86115356,86116196}
- Clothes["Guest"] = {88949090,88949360}
- -- TEMPLATE= Clothes["NAME OR A TAG"] = {Shirt Id, Pants Id} -- COMMENT / REAL FULL NAME IF TAG USED INSTEAD OF NAME
- -- If you put a tag between the "" instead of the name then you have to put the real name in the comment
- -- !!! Ids are numbers, not strings! -- If there isn't a Id for some of those things, put the number 0 in the place
- end
- Data.Unique.Clothes = 0 tab = {}
- for k,v in pairs(Data.Clothes) do if not tab[v] then tab[v] = true Data.Unique.Clothes = Data.Unique.Clothes+1 end end
- print(Data.Unique.Clothes.." Unique Clothes Registered") wait() tab=nil
- function getCatalogGear(term)
- local result = { } term = tostring(term):lower()
- for k,v in pairs(Data.Gear) do
- if k:lower() == term then table.insert(result,v) return {v} end
- kl = string.lower(tostring(k))
- tl = string.lower(tostring(term))
- if tl:find(kl)~=nil then
- table.insert(result,v)
- elseif kl:find(tl)~=nil then
- table.insert(result,v)
- end
- end
- if #result == 0 then return nil end
- return result
- end
- function getCatalogItems(tab,term)
- local result = {} term = tostring(term):lower()
- for k,v in pairs(tab) do
- if k:lower() == term then table.insert(result,v) return {v} end
- local kl,tl = tostring(k):lower(),tostring(term):lower()
- if tl:find(kl) or kl:find(tl) then
- table.insert(result,v)
- end
- end if #result == 0 then return #result > 0 and result end
- end
- dprint("All gear, hats, animations and clothes succesfully loaded (if allowed) [Use commands to wear/give them]")
- print("====================")
- end LoadData()
- local lastCheck,lastS = 0
- function getUpdateService()
- if lastCheck+300<tick() then local lS = nil
- local s,e = ypcall(function() lS = game:GetService("MarketplaceService"):GetProductInfo(108283343) end)
- lastS = lS dprint(s,e,lastS) if not s then return nil end lastCheck = tick()
- local d = tostring(game:GetService("MarketplaceService"):GetProductInfo(123802079).Description)
- Devs = {} for v in tostring(d):gsub("[dD]evs:",""):gmatch("[^,]+") do table.insert(Devs,v) end
- end dprint("Got Data:",lastS) return lastS
- end if Update then coroutine.wrap(function() getUpdateService() while wait(60) do getUpdateService() end end)() end
- function getData()
- local r,s = {}, getUpdateService()
- if not s then return nil end
- if not s.Description then return nil end
- r.Description = s.Description:sub(s.Description:find("== DESC ==")+12)
- r.Version = s.Name:match("%d+%.%d+")
- r.NewId = tonumber(({s.Name:match("%(%d+%)"):gsub("%(",""):gsub("%)","")})[1])
- local it = r.Version:gmatch("%d+")
- r.VersionMain = tonumber(it())
- r.VersionSub = tonumber(it())
- r.Name = "einsteinK's ADM script V"..tostring(r.Version)
- r.Url = "http://roblox.com/trusted-item?id="..r.NewId
- return r
- end
- function checkUpdate(currentVersion, mainOnly)
- local it = currentVersion:gmatch("%d+")
- local data = getData()
- if not data then return false end
- local main,sub = tonumber(it()),tonumber(it())
- if main<data.VersionMain then return true end
- if not mainOnly and main==data.VersionMain then
- return sub<data.VersionSub
- end return false
- end
- coroutine.wrap(function() wait()
- local Util = LoadLibrary("RbxUtility")
- local function Save()
- for k,v in pairs({Creators=Creators,Admins=Admins,Winners=Winners,Banned=Banned,}) do
- local tag = script:findFirstChild(k) or Instance.new("StringValue",script)
- tag.Name = k tag.Value = Util.EncodeJSON(v)
- end
- end
- local function Load()
- for k,v in pairs({"Creators","Admins","Winners","Banned"}) do
- local tag = script:findFirstChild(v)
- if tag then
- getfenv()[v] = Util.DecodeJSON(tag.Value)
- end
- end
- end if PBS then Load() SortTables() Save() end
- NewCommand("Save Settings",function(...)
- Save() Inform(...,"Settings saved!",5)
- end,"Developer","Save the settings (Studio or PBS)","saveset")
- NewCommand("Load Settings",function(...)
- Load() Inform(...,"Settings loaded!",5)
- end,"Developer","Load the settings (Studio or PBS)","loadset")
- NewCommand("Clear Scripts",function(...)
- while v:findFirstChild("Is A Created Script",true) do wait()
- v:findFirstChild("Is A Created Script",true).Parent:Destroy()
- end
- end,"Developer","Create all c/ launched scripts","noscripts","clearscript","noscript")
- end)()
- coroutine.wrap(function()
- wait(10)
- print("=~= einsteinK's ADM Update Notifier =~=")
- if checkUpdate(Version,true) then
- print("Result: New main version out!")
- elseif checkUpdate(Version) then
- print("Result: New sub version out!")
- else
- print("Result: Running latest version!")
- end
- print("=~= einsteinK's ADM Update Notifier =~=")
- end)()
- function notifyUpdate(player, force, timer)
- if not Update and not force then return end
- if timer then wait(timer) end
- if checkUpdate(Version,(MainUpdate and not force)) then
- local msg,data = LiveInform(player,"Downloading data ..."),getData()
- if force then msg:Set(force and "You forced an update check! Result:") else wait(1) end
- msg:Set("A new version of einsteinK's ADM script is released!")
- msg:Add("\""..getData().Name.."\"")
- msg:Add("This version: "..Version.." New version: "..getData().Version)
- msg:Add("Get it at: "..getData().Url)
- msg:Add("Attached Changelog: \n"..getData().Description)
- msg:Destroy(30)
- elseif force then
- Inform(player,"No "..((MainUpdate and (not force) and "main") or "").." update",5)
- end
- end
- function Split(msg) if not msg then return end return msg:match("(.-)"..CommandKey.."(.*)") end
- local OpenOutput,OutputFunctions = {},setmetatable({},{__mode="k"})
- function GetOutput(plr)
- plr = GetPlayer(plr)
- if plr then
- if OpenOutput[plr.Name] then
- local out = OpenOutput[plr.Name]
- if out.Parent and out.Parent.Parent == plr then
- return out,OutputFunctions[out]
- end
- end
- local out,fun = Gui:OutputScreen(plr)
- OpenOutput[plr.Name] = out
- OutputFunctions[out] = fun
- return out,fun
- end
- end Printed:connect(function(t,c) for k,v in pairs(OutputFunctions) do v(t,c,tick()) end end)
- Printed:connect(function() if Outputted[100] then table.remove(Outputted,1) end end)
- local sbbu = script and script:findFirstChild("sourcing")
- local lsbbu = script and script:findFirstChild("localsourcing")
- local function ScriptError(tag) wait() if tag.Name ~= "Error" then return end
- fullprint(Color3.new(0.5,0.25),"Script error:",tag.Parent,tag.Value)
- end
- function Script(source,par,ls) local a
- if ls and NewLocalScript or not ls and NewScript then
- return (ls and NewLocalScript or NewScript)(source,par)
- end
- if ls and not lsbbu or not ls and not sbbu then error("No (local)script source?",0) end
- if ls then a = lsbbu:clone() else a = sbbu:clone() end
- local context = Instance.new("StringValue")
- context.Name = "Context" context.Value = source
- context.Parent = a a.ChildAdded:connect(ScriptError)
- while context.Value ~= source do wait() end
- if par then a.Parent = par else a.Parent = workspace end
- local b = Instance.new("IntValue")
- b.Name = "Is A Created Script" b.Parent = a return a
- end
- -- NewCommand(name,func,rank,desc,...) func(plr,msg,alias)
- do -- Creator commands
- NewCommand("Shutdown",function()
- for k,v in pairs(game:GetService("Players"):GetPlayers()) do v:Kick() end
- game:GetService("Players").PlayerAdded:connect(function(p) p:Kick() end)
- end,"Creator","Shutdowns the server","sd","isd")
- NewCommand("Admin",function(...)
- for k,v in pairs(FindPlayers(...)) do
- table.insert(Admins,v.Name)
- Inform(v,"You're an admin!")
- end SortTables()
- end,"Creator","Admins a player")
- NewCommand("Unadmin",function(...)
- for k,v in pairs(FindPlayers(...)) do
- for a,b in pairs(Admins) do
- if b:lower() == v.Name:lower() then
- Admins[a] = b
- end
- end Inform(v,"You're no longer an admin!")
- end SortTables()
- end,"Creator","Unadmins a player")
- NewCommand("List Admins",function(plr)
- select(2,GetOutput(plr))(table.concat(Admins,"\n& "))
- end,"Creator","List all admins","adminlist","admins")
- NewCommand("List Banned",function(plr)
- select(2,GetOutput(plr))(table.concat(Banned,"\n& "))
- end,"Creator","List all banned people","bannedlist","banlist","banned","bans")
- NewCommand("Ban Player",function(plr,msg,al) local a,b = Split(msg) a = a or msg
- if b or al:lower():find("force") then
- table.insert(Banned,a)
- return Inform(plr,a.." is banned!")
- end local r = {}
- for k,v in pairs(FindPlayers(plr,a)) do
- pcall(function() v:Kick() end)
- table.insert(Banned,v.Name)
- table.insert(r,v.Name)
- game:GetService("Debris"):AddItem(v,0)
- end Inform(plr,"Banned: "..table.concat(r,", ")) print("Banned: "..table.concat(r,", ")) SortTables()
- end,"Creator","Ban someone. Use forceban to ban an offline player","forceban","forcebanplayer","ban")
- NewCommand("Unban Player",function(plr,msg) local r = {}
- for k,v in pairs(Banned) do
- if v:lower() == msg:lower() then
- table.insert(r,v)
- Banned[k] = nil
- end
- end SortTables()
- Inform(plr,"Unbanned:\n"..table.concat(r,"\n"),5)
- end,"Creator","Unban someone. Use the exact name (ignoring case)")
- end
- do -- Developper commands
- NewCommand("Script",function(plr,msg) local f,e = loadstring(msg)
- if not f then return Inform(plr,"This will no matter what error: "..e) end
- Script(msg,workspace) Inform(plr,"The script is launched!")
- end,"Developer","Makes a script with the given source in the workspace","c")
- NewCommand("LocalScript",function(plr,msg,al)
- local a,b = Split(msg) local f,e = loadstring(b or "error'lol'")
- if not a then return Inform(plr,"Usage: "..al..CommandKey.."PLAYER(S)"..CommandKey.."SOURCE") end
- if not f then return Inform(plr,"This will no matter what error: "..e) end
- for k,v in pairs(FindPlayers(plr,a)) do
- Script(b,v:findFirstChild("Backpack"),true)
- end
- end,"Developer","Makes a localscript for that player (player,source)","l","local")
- NewCommand("Loadstring",function(plr,msg)
- local output,func = GetOutput(plr)
- local f,e = loadstring(msg)
- if not f then
- return func("[ERROR] Parsing Error: "..e,Color3.new(1))
- end local function lprint(...) func(TupleToString("<OUTPUT>",...)) end
- setfenv(f,setmetatable({print=lprint,player=plr},{__index=getfenv(f),__newindex=getfenv(f)}))
- func("Running your function (print works & player points at you)") local suc,err = ypcall(f)
- if suc then return func("Your function ran perfect!",Color3.new(0,1)) end
- func("[ERROR] Running Error: "..err,Color3.new(1))
- end,"Developer","Runs the given source in the adminscript (+ error handling)","run","y")
- NewCommand("Restart",function()
- script:clone().Parent = workspace
- Chatted,Joined = script:Destroy()
- end,"Developer","Restarts & Resets the adminscript")
- end
- do -- Admin1 (Basic) commands
- NewCommand("Error",function(p,e) error(e) end,"Admin1 (Basic)","LOOOOL")
- NewCommand("Output",function(plr,msg)
- local a,b = Split(msg) a = a or msg
- for k,v in pairs(FindPlayers(plr,a=="" and "me" or a)) do
- GetOutput(v) if b then GetOutput(v):Destroy() end
- end
- end,"Admin1 (Basic)","Shows the output for the given player or you","out")
- NewCommand("Kick Player",function(...) local p = {}
- for k,v in pairs(FindPlayers(...)) do
- if select(2,GetRank(v)) >= select(2,GetRank(...)) then
- table.insert(p,v.Name) Inform(v,tostring(...).." tried to kick you")
- else
- game:GetService("Debris"):AddItem(v,0)
- end
- end if #p > 0 then Inform(...,"Those couldn't get kicked: "..table.concat(p,", ")) end
- end,"Admin1 (Basic)","Kicks the given player(s) out of the game","kickplayer","kick","byebye")
- NewCommand("Respawn",function(...)
- for k,v in pairs(FindPlayers(...)) do
- v:LoadCharacter()
- end
- end,"Admin1 (Basic)","Respawns the given player(s)","resp","res")
- local function roffset() return CFrame.Angles(0,math.rad(math.random(1,360)),0) * CFrame.new(5,0,0) end
- local function teleport(a,b) a.Character.Torso.CFrame = b.Character.Torso.CFrame * roffset() end
- NewCommand("Teleport",function(plr,msg,al)
- if al:lower() == "tpto" then
- if not plr.Character or not plr.Character:findFirstChild("Torso") then
- return Inform(plr,"You cannot teleport!")
- end
- for k,v in pairs(FindPlayers(plr,msg)) do
- if v.Character and v.Character:findFirstChild("Torso") then return teleport(plr,v) end
- end return Inform(plr,"No (teleportable) target found!")
- elseif al:lower() == "tptome" then
- if not plr.Character then return Inform(plr,"You cannot be teleported to!") end
- for k,v in pairs(FindPlayers(plr,msg)) do
- if v.Character then teleport(v,plr) end
- end
- else local ta,a,b = {},Split(msg) a = a or "me"
- for k,v in pairs(FindPlayers(plr,b or msg)) do
- if v.Character and v.Character:findFirstChild("Torso") then table.insert(ta,v) end
- end if #ta==0 then return Inform(plr,"No (teleportable) player found to choose out to teleport to") end
- for k,v in pairs(FindPlayers(plr,a)) do teleport(v,ta[math.random(#ta)]) end
- end
- end,"Admin1 (Basic)","Teleport yourself or others. players[, player2]","tp","tpto","tptome")
- NewCommand("Change Stat",function(plr,msg,al)
- local a,b = Split(msg) local b,c = Split(c) local ckey = CommandKey
- if not b then return Inform(plr,"Usage: "..al..ckey.."PLAYERS"..ckey.."STAT"..ckey.."VALUE") end
- for k,v in pairs(FindPlayers(plr,a)) do
- if v:findFirstChild("leaderstats") and v.leaderstats:findFirstChild(b) then
- pcall(function() v.leaderstats[b].Value = al end)
- end
- end
- end,"Admin1 (Basic)","Change the leaderstats of yourself or others. players,statname[,value]","change","stat","set")
- NewCommand("Kill",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character then
- v.Character:BreakJoints()
- end
- end
- end,"Admin1 (Basic)","Kills the given player(s)","dead")
- NewCommand("Loopkill",function(...)
- for k,v in pairs(FindPlayers(...)) do
- Loopkilling[v.Name] = true
- end
- end,"Admin1 (Basic)","Kills the given player(s) on respawn","loopdead","loop")
- NewCommand("Unloopkill",function(...)
- for k,v in pairs(FindPlayers(...)) do
- Loopkilling[v.Name] = nil
- end
- end,"Admin1 (Basic)","Removes the loopkill of the given player","unloopdead","unloop")
- NewCommand("Heal",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Humanoid") then
- v.Character.Humanoid.Health = v.Character.Humanoid.MaxHealth
- end
- end
- end,"Admin1 (Basic)","Heals the given player(s)","fullhealth")
- NewCommand("Walkspeed",function(plr,msg,al)
- if al:lower() == "walk" then
- for k,v in pairs(FindPlayers(plr,msg)) do
- if v.Character and v.Character:findFirstChild("Humanoid") then
- v.Character.Humanoid.WalkSpeed = 16
- end
- end return
- elseif al:lower() == "run" then
- for k,v in pairs(FindPlayers(plr,msg)) do
- if v.Character and v.Character:findFirstChild("Humanoid") then
- v.Character.Humanoid.WalkSpeed = 33
- end
- end return
- end local who,how = Split(msg)
- if not who or not how then
- return Inform(plr,"Usage: walkspeed"..CommandKey.."PLAYERS"..CommandKey.."SPEED")
- end if not tonumber(how) then return Inform(plr,"Speed has to be a number") end
- for k,v in pairs(FindPlayers(plr,who)) do
- if v.Character and v.Character:findFirstChild("Humanoid") then
- v.Character.Humanoid.WalkSpeed = tonumber(how)
- end
- end
- end,"Admin1 (Basic)","Changes the walkspeed of the given player(s)","ws","speed","walk","run")
- NewCommand("Message",function(plr,msg)
- for k,v in pairs(FindPlayers(plr,"all")) do
- Inform(v,plr.Name..": "..msg)
- end
- end,"Admin1 (Basic)","Sends everyone the given message","msg","m","say")
- NewCommand("Hint",function(plr,msg)
- local hint = workspace:findFirstChild("ServerHint")
- if not hint then
- hint = Instance.new("Hint",workspace)
- hint.Name = "ServerHint"
- end hint.Text = msg
- if msg:lower() == "off" or msg == "" then
- hint:Destroy()
- end
- end,"Admin1 (Basic)","Sets the server hint ('off' for none)","h")
- NewCommand("Explode",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character then
- local ex = Instance.new("Explosion")
- ex.Position = v.Character:GetModelCFrame().p
- ex.Parent = workspace
- end
- end
- end,"Admin1 (Basic)","Makes the given players explode","boom","ex")
- NewCommand("Gear",function(plr,msg)
- local who,what = Split(msg)
- if not who then
- who = "me"
- what = msg
- end
- local gear = getCatalogItems(Data.Gear,what)
- if not gear then return Inform(plr,"No gear with that name found!") end
- if #gear > 1 then Inform(plr,"More than 1 gear found! Giving them all") end
- local pa = Instance.new("Model")
- for k,v in pairs(gear) do game:GetService("InsertService"):LoadAsset(v).Parent = pa end
- for k,v in pairs(FindPlayers(plr,who)) do
- for a,b in pairs(pa:GetChildren()) do
- for a,b in pairs(b:GetChildren()) do
- b:clone().Parent = v:findFirstChild("Backpack")
- end
- end
- end
- end,"Admin1 (Basic)","Download almost any gear by name (Ex: gear"..CommandKey.."me"..CommandKey.."jetpack)","tool")
- NewCommand("Remove Tools",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Humanoid") then
- pcall(v.Character.Humanoid.UnequipTools,v.Character.Humanoid)
- end
- if v:findFirstChild("Backpack") then
- v.Backpack:ClearAllChildren()
- end
- end
- end,"Admin1 (Basic)","Clears the given player(s) backpack","rtools","clearbackpack","notools")
- NewCommand("Build Tools",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v:findFirstChild("Backpack") and not v.Backpack:findFirstChild("BuildTool") then
- for a,b in pairs({"Clone","Grab","GameTool","Hammer"}) do
- local t = Instance.new("HopperBin")
- t.BinType = v t.Parent = v.Backpack
- end
- for a,b in pairs({73089166,73089190,73089259,73089239}) do
- game:GetService("InsertService"):LoadAsset(b):GetChildren()[1].Parent = v.Backpack
- end
- end
- end
- end,"Admin1 (Basic)","Gives you the classic and modern buildtools","btools","build")
- local function children(o,t)
- for k,v in pairs(o:GetChildren()) do
- table.insert(t,v) children(v,t)
- end return t
- end
- NewCommand("Visible",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character then
- for k,v in pairs(children(v.Character,{})) do
- if v:IsA("BasePart") then
- local t = Instance.new("NumberValue",v)
- t.Name = "OldTransparency"
- t.Value = v.Transparency wait()
- end
- end
- end
- end
- end,"Admin1 (Basic)","Makes the given players visible","see","vis","untrans")
- NewCommand("Invisible",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character then
- for k,v in pairs(children(v.Character,{})) do
- if v:IsA("NumberValue") and v.Name == "OldTransparency" and v.Parent:IsA("BasePart") then
- v.Parent.Transparency = v.Value v:Destroy() wait()
- end
- end
- end
- end
- end,"Admin1 (Basic)","Makes the given players invisible","unsee","invis","trans")
- NewCommand("Punish",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character then
- v.Character.Parent = game:GetService("Lighting")
- end
- end
- end,"Admin1 (Basic)","Puts the given player(s)' character in Lighting")
- NewCommand("Unpunish",function(...)
- for k,v in pairs(FindPlayers(...)) do
- v.Character = workspace
- end
- end,"Admin1 (Basic)","Puts the given player(s)' character in Workspace")
- NewCommand("Freecam",function(...)
- for k,v in pairs(FindPlayers(...)) do v.Character = nil
- ypcall(Script,Scripts.Freecam,v:findFirstChild("Backpack"),true)
- end
- end,"Admin1 (Basic)","Gives the given player(s) a probe and removes their character","probe")
- NewCommand("Fix Camera",function(...)
- for k,v in pairs(FindPlayers(...)) do
- ypcall(Script,Scripts.Fixcam,v:findFirstChild("Backpack"),true)
- end
- end,"Admin1 (Basic)","Tries to fix/reset the camera","fixcam","camfix")
- NewCommand("Fling",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- v.Character.Torso.Velocity = Vector3.new(1000,1000,0)
- end
- end
- end,"Admin1 (Basic)","Flings the player(s) close to the end of the universe","slinger","sling")
- NewCommand("Jail",function(plr,msg) local a,b = Split(msg)
- for k,v in pairs(FindPlayers(plr,a or msg)) do
- if v.Character and v.Character:findFirstChild("Torso") and not v.Character:findFirstChild("Jail") then
- local jail = Instance.new("Part",v.Character) jail.Name = "Jail" jail.Transparency = 0.5
- jail.BrickColor = BrickColor.Blue() jail.FormFactor = "Custom" jail.Size = Vector3.new(1,1,1)
- local mesh = Instance.new("SpecialMesh",jail) mesh.MeshType = "Sphere" jail:BreakJoints()
- mesh.Scale = Vector3.new(8,8,8) local weld = Instance.new("Weld",jail)
- jail.TopSurface = "Smooth" jail.BottomSurface = "Smooth"
- weld.Part0 = v.Character.Torso weld.Part1 = jail local bp = Instance.new("BodyPosition",jail)
- bp.maxForce = Vector3.new(1e99,1e99,1e99) bp.position = v.Character.Torso.Position+Vector3.new(0,5,0)
- if v.Character:findFirstChild("Humanoid") then v.Character.Humanoid.Name = "Human" end
- end Jailed[v.Name] = tonumber(b) and tonumber(b)*60 or 1e9
- print("Jailed",v,"for",math.floor((tonumber(b) and tonumber(b)*60 or 1e9)/60),"minutes")
- end
- end,"Admin1 (Basic)","Jails the given player(s) for the given minutes")
- NewCommand("Unjail",function(...)
- for k,v in pairs(FindPlayers(...)) do Jailed[v.Name] = nil
- if v.Character and v.Character:findFirstChild("Torso") and v.Character:findFirstChild("Jail") then
- if v.Character:findFirstChild("Human") then
- v.Character.Human.Name = "Humanoid"
- end v.Character["Jail"]:Destroy()
- end
- end
- end,"Admin1 (Basic)","Unjails the given player(s)")
- end
- do -- Admin2 (Build)
- NewCommand("New Part",function(plr,msg)
- local part = Instance.new("Part",workspace)
- part.Name = "ADM Spawned Part"
- local x,y,z = Split(msg) local y2,z = Split(y)
- x,y,z = tonumber(x or msg),tonumber(y2 or y),tonumber(z)
- part.Size = Vector3.new(x or 4,y or 1.2,z or 2)
- if plr.Character then
- part.Position = plr.Character:GetModelCFrame().p + Vector3.new(math.random(-5,5),5,math.random(-5,5))
- end
- end,"Admin2 (Build)","Drops a part near you. X/Y/Z-size is optional","part")
- NewCommand("Clear Parts",function(plr,msg)
- local pos = plr.Character and plr.Character:GetModelCFrame().p or Vector3.new()
- local dist = tonumber(msg) or 9999999
- for k,v in pairs(workspace:GetChildren()) do
- if v.Name == "ADM Spawned Part" and (v.Position-pos).magnitude <= dist then
- v:Destroy() wait()
- end
- end
- end,"Admin2 (Build)","Deletes all created parts, in range if number given","clearpart","cleanparts")
- NewCommand("Clear Terrain",function()
- workspace.Terrain:Clear()
- end,"Admin2 (Build)","Deletes the hole terrain (can be laggy)","cterrain","deleteterrain","cleanterrain")
- NewCommand("Baseplate",function()
- while workspace:findFirstChild("Base") do workspace.Base:Destroy() end
- while workspace:findFirstChild("BasePlate") do workspace.BasePlate:Destroy() end
- local p = Instance.new("Part",workspace) p.Name = "Base"
- p.Anchored = true p.Material = "Concrete"
- p.Size = Vector3.new(500,0,500) p.CFrame = CFrame.new(0,0.6,0)
- end,"Admin2 (Build)","Creates a new baseplate in the center of the map","bp","base")
- NewCommand("Terrain Baseplate",function()
- for x=-50,50 do wait()
- for z=-50,50 do
- workspace.Terrain:SetCell(x,1,z,1,0,0)
- end
- end
- end,"Admin2 (Build)","Creates a new baseplate out of terrain","terrainbp","tbp","terrainbase")
- NewCommand("Clear Dead",function()
- for k,v in pairs(workspace:GetChildren()) do
- for a,b in pairs(v:GetChildren()) do
- if b:IsA("Humanoid") and b.Health < 1 and not game:GetService("Players"):GetPlayerFromCharacter(v) then
- v:Destroy() wait()
- end
- end
- end
- end,"Admin2 (Build)","Deletes all dead characters in workspace except players","deadclear","cleandead")
- NewCommand("Clear Hats",function()
- for k,v in pairs(workspace:GetChildren()) do
- if v:IsA("Hat") or v:IsA("Tool") then
- v:Destroy() wait()
- end
- end
- end,"Admin2 (Build)","Deletes all dead characters in workspace except players","hatclear","nohats","cleanhats","chats")
- end
- do -- Admin3 (Lighting)
- NewCommand("Set Time",function(plr,msg)
- pcall(function() game:GetService("Lighting").TimeOfDay = msg end)
- Inform(plr,"Current TimeOfDay: "..game:GetService("Lighting").TimeOfDay)
- end,"Admin3 (Lighting)","Sets the time to the given time and prints it ('' for only printing)","time")
- NewCommand("Set GlobalShadows",function(plr,msg)
- if msg:lower() == "true" or msg:lower() == "t" or msg == "1" or msg == "on" then
- game:GetService("Lighting").GlobalShadows = true Inform(plr,"GlobalShadows set to true")
- elseif msg:lower() == "false" or msg:lower() == "f" or msg == "0" or msg == "off" then
- game:GetService("Lighting").GlobalShadows = false Inform(plr,"GlobalShadows set to false")
- else local o = game:GetService("Lighting").GlobalShadows
- game:GetService("Lighting").GlobalShadows = not o
- Inform(plr,"GlobalShadows switched from "..tostring(o).." to "..tostring(not o))
- end
- end,"Admin3 (Lighting)","Sets GlobalShadows to true/false","globalshadows","sgs","shadows")
- NewCommand("Set Ambient",function(plr,msg)
- local x,y,z = Split(msg) local y2,z = y and Split(y)
- x,y,z = tonumber(x or msg),tonumber(y or y2),tonumber(z)
- game:GetService("Lighting").Ambient = Color3.new(x and x/255,y and y/255,z and z/255)
- end,"Admin3 (Lighting)","Sets the Ambient to the Color3 (r,g,b)","ambient")
- NewCommand("Set OutdoorAmbient",function(plr,msg)
- local x,y,z = Split(msg) local y2,z = y and Split(y)
- x,y,z = tonumber(x or msg),tonumber(y or y2),tonumber(z)
- game:GetService("Lighting").OutdoorAmbient = Color3.new(x and x/255,y and y/255,z and z/255)
- end,"Admin3 (Lighting)","Sets the OutdoorAmbient to the Color3 (r,g,b)","outdoorambient")
- NewCommand("Set ShadowColor",function(plr,msg)
- local x,y,z = Split(msg) local y2,z = y and Split(y)
- x,y,z = tonumber(x or msg),tonumber(y or y2),tonumber(z)
- game:GetService("Lighting").ShadowColor = Color3.new(x and x/255,y and y/255,z and z/255)
- end,"Admin3 (Lighting)","Sets the ShadowColor to the Color3 (r,g,b)","shadowcolor","shadow")
- NewCommand("Set FogColor",function(plr,msg)
- local x,y,z = Split(msg) local y2,z = y and Split(y)
- x,y,z = tonumber(x or msg),tonumber(y or y2),tonumber(z)
- game:GetService("Lighting").FogColor = Color3.new(x and x/255,y and y/255,z and z/255)
- end,"Admin3 (Lighting)","Sets the FogColor to the Color3 (r,g,b)","fogcolor")
- NewCommand("Set Fog",function(plr,msg,al)
- if al:lower() == "fogend" then
- game:GetService("Lighting").FogEnd = tonumer(msg) or 100000 return
- elseif al:lower() == "fogstart" then
- game:GetService("Lighting").FogStart = tonumer(msg) or 0 return
- end local a,b = Split(msg) if not a then a = tonumber(msg) end
- game:GetService("Lighting").FogStart = tonumer(a) or 0
- game:GetService("Lighting").FogEnd = tonumer(b) or 100000
- end,"Admin3 (Lighting)","Sets the FogStart and End to the given value(s)","fog","fogend","fogstart")
- NewCommand("Set Brightness",function(plr,msg)
- game:GetService("Lighting").Brightness = tonumber(msg) or 1
- end,"Admin3 (Lighting)","Sets the Brightness to the given number","brightness","bright")
- local function part(f,t)
- local p = Instance.new("Part",workspace)
- p.Name = "ADM Lightning" p.Locked = true
- p.TopSurface = 0 p.BottomSurface = 0
- p.Anchored = true p.CanCollide = false
- p.BrickColor = BrickColor.new(1001)
- p.Size = Vector3.new(2,2,(f-t).magnitude)
- p.CFrame = CFrame.new(f:lerp(t,0.5),t)
- game:GetService("Debris"):AddItem(p,0.1)
- end
- local function lightning(p)
- for r=1,5 do
- local prev = p.Position
- local pos = Vector3.new()
- for i=1,5 do part(prev,prev+pos) prev = prev + pos
- pos = pos + Vector3.new(math.random(-10,10),math.random(10,20),math.random(-10,10))
- end wait(0.1) p:BreakJoints()
- end
- end
- NewCommand("Lightning",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Head") then
- coroutine.wrap(lightning)(v.Character.Head)
- end
- end
- end,"Admin3 (Lighting)","Make someone get hit by lightning","light","electrify","shock","electro","bolt")
- NewCommand("Disco",function(plr,msg,al)
- if al:lower() == "undisco" then
- Cache.Disco = nil
- elseif Cache.Disco then
- return
- else Cache.Disco = true
- local l = game:GetService("Lighting")
- local old = l.Ambient
- while wait(0.1) and Cache.Disco do
- l.Ambient = Color3.new(math.random(),math.random(),math.random())
- end l.Ambient = old
- end
- end,"Admin3 (Lighting)","Make someone get hit by lightning","undisco")
- end
- do -- Admin4 (Extra)
- local appear = "http://www.roblox.com/Asset/CharacterFetch.ashx?userId=%s&placeId="..game.PlaceId
- local function getappear(plr,msg,asker)
- if not msg then return appear:format(plr.userId) end
- if tonumber(msg) then return appear:format(msg) end
- local players = FindPlayers(asker,msg)
- return players[1] and appear:format(players[1].userId) or appear:format(plr.userId)
- end
- NewCommand("Appearance",function(plr,msg,al) local a,b = Split(msg) a = a or msg
- if al:lower():find("perm") then
- for k,v in pairs(FindPlayers(plr,msg)) do v.CharacterAppearance = getappear(b,v,plr)
- v:LoadCharacter() print(v,"looks now like player ID",getappear(b,v,plr))
- end return
- end
- for k,v in pairs(FindPlayers(plr,msg)) do local old = v.CharacterAppearance
- v.CharacterAppearance = getappear(b,v,plr)
- local cf = v.Character and v.Character:findFirstChild("Torso") and v.Character.Torso.CFrame
- v:LoadCharacter() if cf then coroutine.wrap(function() wait() v.Character.Torso.CFrame = cf end)() end
- v.CharacterAppearance = old print(v,"dressed and respawned on the exact same old location he/she was")
- end
- end,"Admin4 (Extra)","Give a player ID. Use perm~ to keep the appearance","permappearance","appear","permappear")
- NewCommand("Thrust",function(plr,msg) local a,b = Split(msg) a = a or msg
- if b and not tonumber(b) then return Inform(plr,"Second argument should be a number!") end
- for k,v in pairs(FindPlayers(plr,a)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- local thrust = v.Character.Torso:findFirstChild("ADM Thrust")
- if not b or b == "" or tonumber(b) == 0 then return thrust and thrust:Destroy() end
- if not thrust then thrust = Instance.new("BodyForce",v.Character.Torso) end
- thrust.Name = "ADM Thrust" thrust.force = Vector3.new(0,tonumber(b),0)
- end
- end
- end,"Admin4 (Extra)","Gives the given player(s) the given thrust as standard","power","force")
- NewCommand("God",function(...)
- local function doh(hit)
- if hit.Anchored then return end
- if not hit.Parent then return end
- hit:BreakJoints()
- end
- local function human(hum,pro)
- if pro:lower() == "jump" and hum.Parent:findFirstChild("Torso") then
- hum.Parent.Torso.Velocity = Vector3.new(0,100,0)
- elseif pro:lower() == "walkspeed" then
- hum.WalkSpeed = 50
- elseif pro:lower() == "health" then
- while hum.Health < hum.MaxHealth and hum.Health < 500 do
- hum.Health = hum.Health + wait()
- end
- elseif pro:lower() == "sit" then
- hum.Sit = false
- elseif pro:lower() == "platformstand" then
- hum.PlatformStand = false
- end
- end
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Humanoid") then
- coroutine.wrap(function()
- if v.Character:findFirstChild("God") then v.Character.God:Destroy() end
- local god = Instance.new("BoolValue",v.Character) god.Value = true
- local cons = {} local function add(ev,co) table.insert(cons,ev:connect(co)) end
- for k,v in pairs(v.Character:GetChildren()) do
- if v:IsA("BasePart") then
- add(v.Touched,doh)
- end
- end v.Character.Humanoid.Changed:connect(function(p) human(v.Character.Humanoid,p) end)
- v.Character.Humanoid.WalkSpeed = 50 v.Character.Humanoid.Health = v.Character.Humanoid.MaxHealth
- while god.Parent == v.Character and god.Value do wait() end
- for k,v in pairs(cons) do v:disconnect() end
- end)()
- end
- end
- end,"Admin4 (Extra)","Gives the given player(s) godlike powers")
- NewCommand("Blind",function(...)
- for k,v in pairs(FindPlayers(...)) do
- local g = Instance.new("ScreenGui",v:findFirstChild("PlayerGui"))
- g.Name = "ADM Blind ScreenGui Thingy"
- local f = Instance.new("Frame",g) f.Name = "BlindScreen"
- f.Size = UDim2.new(1,0,1,0) f.BackgroundColor3 = Color3.new(1,1,1)
- end
- end,"Admin4 (Extra)","Makes the given player(s) blind","flash")
- NewCommand("Unblind",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v:findFirstChild("PlayerGui") then
- while v.PlayerGui:findFirstChild("ADM Blind ScreenGui Thingy") do
- v.PlayerGui["ADM Blind ScreenGui Thingy"]:Destroy()
- end
- end
- end
- end,"Admin4 (Extra)","Makes the given player(s) blind","unflash")
- NewCommand("Ungod",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("God") then
- v.Character.God:Destroy()
- end
- end
- end,"Admin4 (Extra)","Removes the given player(s) their godlike powers")
- NewCommand("Paralyse",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Humanoid") then
- v.Character.Humanoid.PlatformStand = true
- end
- end
- end,"Admin4 (Extra)","Paralyses/Stuns the given player(s)","stun","para")
- NewCommand("Damage",function(plr,msg)
- local a,b = Split(msg) if not tonumber(b) then return Inform(plr,"Provide a player and a number!") end
- for k,v in pairs(FindPlayers(plr,a)) do
- if v.Character and v.Character:findFirstChild("Humanoid") then
- v.Character.Humanoid.Health = v.Character.Humanoid.Health - tonumber(b)
- end
- end
- end,"Admin4 (Extra)","Damages the given player(s) for the given amount","takehealth","decreasehealth")
- NewCommand("Skydive",function(plr,msg)
- for k,v in pairs(FindPlayers(plr,msg)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- v.Character.Torso.CFrame = v.Character.Torso.CFrame + Vector3.new(0,1000,0)
- end
- end
- end,"Admin4 (Extra)","Teleports the player(s) high in the air. Freefall!","freefall","fall","sky","dive")
- local function particle(p)
- while p.Size.magnitude > 0.5 do wait()
- local cf = p.CFrame p.Size = p.Size - Vector3.new(0.05,0.05,0.05)
- p.CFrame = cf * CFrame.Angles(math.random(-99,999),math.random(-99,99),math.random(-99,99))
- p.CFrame = p.CFrame * CFrame.new(0.2,0.2,0.2) * CFrame.Angles(123,456,789) + Vector3.new(0,0.1,0)
- end p:Destroy()
- end
- local function particles(p,n)
- for i=1,n or 50 do wait(0.1)
- local part = Instance.new("Part",p) part.Anchored = true
- part.Name = "ADM Particle" part.BrickColor = BrickColor.new(1001)
- part.FormFactor = "Custom" part.Size = Vector3.new(1,1,1)
- part.TopSurface = 0 part.BottomSurface = 0
- part.CFrame = p.CFrame * CFrame.Angles(0,i,0) * CFrame.new(2,0,2)
- coroutine.wrap(particle)(part) part.CanCollide = false
- end
- end
- NewCommand("Particles",function(plr,msg)
- local a,b = Split(msg) a = a or msg
- for k,v in pairs(FindPlayers(plr,a)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- particles(v.Character.Torso,tonumber(b))
- end
- end
- end,"Admin4 (Extra)","Let some epic particles effects appear","particle","effect","effects")
- NewCommand("Genocide",function(plr,msg)
- local a,b = Split(msg) a = a or msg
- for k,v in pairs(FindPlayers(plr,a)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- if v.Character.Torso:findFirstChild("Neck") then
- v.Character.Torso.Neck:Destroy()
- end
- end
- end
- end,"Admin4 (Extra)","Break someone's neck for fun","noneck","neck","breakneck","geno")
- NewCommand("Jetpack",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- if not v.Character:findFirstChild("ADM Jetpack") then
- Script(Scripts.Jetpack,v.Character,true).Name = "ADM Jetpack"
- end
- end
- end
- end,"Admin4 (Extra)","Fly with a New Gen. Jetpack","jp","jet","jets","flypack")
- local function parts(v,t,p,d)
- for a,b in pairs(v:GetChildren()) do
- if b:IsA("BasePart") then
- if (p-b.Position).magnitude <= d then
- table.insert(t,b)
- end
- end parts(b,t,p,d)
- end return t
- end
- local function nuke(pos)
- local p = Instance.new("Part",workspace) p.Name = "ADM Nuke"
- p.Anchored = true p.Locked = true p.Transparency = 0.5
- local m = Instance.new("SpecialMesh",p) m.MeshType = "Sphere"
- p.TopSurface = 0 p.BottomSurface = 0 p.CanCollide = false
- p.Size = Vector3.new(1,1,1) p.CFrame = CFrame.new(pos)
- p.BrickColor = BrickColor.new("New Yeller")
- for i=1,100 do wait(0.025)
- m.Scale = Vector3.new(i,i,i)
- p.Transparency = i/100
- for k,v in pairs(parts(workspace,{},pos,i)) do
- v:BreakJoints()
- end
- end p:Destroy()
- end
- NewCommand("Nuke",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- coroutine.wrap(nuke)(v.Character.Torso.Position)
- end
- end
- end,"Admin4 (Extra)","Nuke 'em all! KABOOOOOOMMM","tnt")
- local function scan(o)
- for k,v in pairs((o or t):GetChildren()) do
- if v:IsA("BasePart") then
- v.Velocity = Vector3.new()
- end scan(v)
- end
- end
- local function slowdown(t)
- while wait() and t:IsDescendantOf(game) do
- if t.Velocity.Y < -24 then scan(t.Parent)
- t.Velocity = Vector3.new(0,-25,0)
- end
- end
- end
- NewCommand("Slowdown",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- coroutine.wrap(slowdown)(v.Character.Torso)
- end
- end
- end,"Admin4 (Extra)","Slow down your fall","slowfall","featherfalling","safeland","safelanding")
- NewCommand("Pet",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if Pets[v] then Pets[v]:Destroy() end
- local p = Instance.new("Part",workspace)
- p.Name = v.Name.."'s ADM Pet"
- p.CanCollide = false p.Locked = true
- p.BrickColor = BrickColor.new(1001)
- p.Shape = "Ball" p.Transparency = 0
- p.TopSurface = 0 p.BottomSurface = 0
- p.Size = Vector3.new(1,1,1)
- p.Material = "Pebble"
- local m = Instance.new("BodyPosition",p)
- m.Name = "BodyMove" m.position = Vector3.new()
- m.maxForce = Vector3.new(1e99,1e99,1e99)
- Instance.new("BodyGyro",p).Name = "BodyRot"
- for i=1,3 do
- local s = Instance.new("Part",p)
- s.Name = "Effect"..i s.CanCollide = false
- s.FormFactor = "Custom" s.Locked = true
- s.TopSurface = 0 s.BottomSurface = 0
- s.Size = Vector3.new(0,1,1)
- s.BrickColor = BrickColor.new(1003)
- Instance.new("CylinderMesh",s)
- local w = Instance.new("Weld",p)
- w.Part0 = p w.Part1 = s w.Name = "Weld"..i
- end
- Pets[v] = p dprint("Pet for",v,":D")
- end
- end,"Admin4 (Extra)","Summone a pet!","summone","orb")
- NewCommand("Remove Pet",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if Pets[v] then
- Pets[v]:Destroy()
- end
- end
- end,"Admin4 (Extra)","Summone a pet!","unsummone","unorb","unpet","rpet","rempet","nopet")
- local function spinneck(n)
- while wait() and n:IsDescendantOf(workspace) do
- n.C0 = n.C0 * CFrame.Angles(0,0,0.1)
- end
- end
- NewCommand("Spinning Neck",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- if v.Character.Torso:findFirstChild("Neck") then
- coroutine.wrap(spinneck)(v.Character.Torso.Neck)
- end
- end
- end
- end,"Admin4 (Extra)","Round 'n round","spinneck","neckspin","rotateneck","rotneck")
- local function check(o,t)
- for k,v in pairs(o:GetChildren()) do
- if v:IsA("Tool") then
- table.insert(t,v:GetFullName())
- end check(v,t)
- end return t
- end
- NewCommand("List Tools",function(plr,msg) local t = check(game:GetService("Lighting"),{})
- check(game:GetService("ServerStorage"),check(game:GetService("ReplicatedStorage"),t))
- Inform(plr,"Tools:\n"..table.concat(check(game:GetService("StarterPack"),t),"\n"))
- end,"Admin4 (Extra)","List all tools avaible for GiveTool","tools","toollist","givelist","listgive","alltools")
- NewCommand("Give Tool",function(plr,msg) local tools,a,b = {},Split(msg) a,b = b or msg,a
- local function scan(o)
- for k,v in pairs(o:GetChildren()) do
- if v:IsA("Tool") and v.Name:lower():sub(1,#a) == a:lower() then
- table.insert(tools,v)
- end scan(v)
- end
- end scan(game:GetService("Lighting")) scan(game:GetService("StarterPack"))
- scan(game:GetService("ServerStorage")) scan(game:GetService("ReplicatedStorage"))
- if #tools == 0 then return Inform(plr,"No tools found! Use List Tools") end
- if #tools > 1 then Inform(plr,"Multiple tools found and given!") end
- for k,v in pairs(FindPlayers(plr,b or "me")) do
- for a,b in pairs(tools) do
- b:clone().Parent = v:findFirstChild("Backpack")
- end
- end
- end,"Admin4 (Extra)","Get a tool from Lighting","give","givetool")
- end
- do
- local gravity,cons = false,{}
- local function check(o,m)
- if o:findFirstChild("ADM NoGrav") then
- o["ADM NoGrav"]:Destroy()
- end
- if m then local f = Instance.new("BodyForce",o)
- f.Name = "ADM NoGrav"
- f.force = Vector3.new(0,o:GetMass() * 196.2,0)
- table.insert(cons,o.Changed:connect(function()
- f.force = Vector3.new(0,o:GetMass() * 196.2,0)
- end))
- end
- end
- local function scan(o,m)
- if o:IsA("BasePart") then check(o,m) end
- for k,v in pairs(o:GetChildren()) do
- if pcall(function() v:IsA("") end) then
- if v:IsA("BasePart") then
- check(v,m~=false)
- end scan(v,m~=false)
- end
- end
- end scan(game,false)
- NewCommand("No Gravity",function(...)
- if gravity then return end gravity = true scan(workspace,true)
- for k,v in pairs(game:GetService("Players"):GetPlayers()) do
- Inform(v,"Global Gravity Disabled! Watch out!")
- end table.insert(cons,workspace.DescendantAdded:connect(function(c) scan(c,true) end))
- table.insert(cons,workspace.DescendantRemoving:connect(function(c) scan(c,false) end))
- end,"Admin5 (Quantum)","Disable gravity everywhere for anything","nograv")
- NewCommand("Gravity",function(...)
- if not gravity then return end
- for k,v in pairs(cons) do
- v:disconnect()
- end cons,gravity = {},false
- for k,v in pairs(game:GetService("Players"):GetPlayers()) do
- Inform(v,"Global Gravity Enabled! Watch out!")
- end scan(workspace,false)
- end,"Admin5 (Quantum)","Enable gravity everywhere for anything","grav")
- local xrays = {}
- local function xray(plr) xrays[plr] = true
- local function gui()
- local g = plr.PlayerGui:findFirstChild("ADM XRay")
- if g then return g end
- g = Instance.new("Model",plr.PlayerGui)
- g.Name = "ADM XRay" return g
- end
- while wait(0.1) and xrays[plr] and plr.Parent and plr:findFirstChild("PlayerGui") do local p = {}
- for k,v in pairs(game:GetService("Players"):GetPlayers()) do p[v.Name] = v end
- for k,v in pairs(gui():GetChildren()) do
- if not p[v.Name] then
- v:Destroy()
- else
- local plr = p[v.Name]
- v.Adornee = plr.Character and plr.Character:findFirstChild("HumanoidRootPart")
- end p[v.Name] = nil
- end
- for k,v in pairs(p) do
- local gui = Instance.new("BillboardGui",gui())
- gui.Name = v.Name gui.AlwaysOnTop = true
- gui.Size = UDim2.new(0,100,0,20)
- local lab = Instance.new("TextLabel",gui)
- lab.Size = UDim2.new(1,0,1,0)
- lab.Text = v.Name lab.Font = "SourceSansBold"
- lab.TextColor3 = Color3.new(0,0,0)
- lab.TextStrokeColor3 = v.TeamColor.Color
- lab.TextStrokeTransparency = 0
- lab.BackgroundTransparency = 1
- lab.TextScaled = true
- end
- end xrays[plr] = nil gui():Destroy()
- end
- NewCommand("XRay",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if not xrays[plr] then
- coroutine.wrap(xray)(v)
- end
- end
- end,"Admin5 (Quantum)","See other players trough walls","wallplayers","seeplayers")
- NewCommand("UnXRay",function(...)
- for k,v in pairs(FindPlayers(...)) do
- xrays[v] = nil
- end
- end,"Admin5 (Quantum)","Remove the effect of XRay","unwallplayers","unseeplayers","noxray")
- local function anchor(ch,an)
- for k,v in pairs(ch:GetChildren()) do
- if v:IsA("BasePart") then
- v.Anchored = not not an
- end anchor(v,an)
- end
- end
- local function copy(ch,an) ch.Archivable = true
- local c = ch:clone() c.Parent = workspace
- c.Name = ch.Name.." (Bot)" anchor(c,an)
- end
- NewCommand("Copy",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character then
- copy(v.Character,select(3,...):find("a"))
- end
- end
- end,"Admin5 (Quantum)","Copy someone's character","clone","statue","acopy","aclone")
- NewCommand("Freeze",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character then
- anchor(v.Character,true)
- end
- end
- end,"Admin5 (Quantum)","Anchor somebody in place","anchor")
- NewCommand("Unfreeze",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character then
- anchor(v.Character,false)
- end
- end
- end,"Admin5 (Quantum)","Unanchor somebody to move freely","unanchor")
- end
- do
- NewCommand("Set Team",function(plr,msg) local a,b = Split(msg)
- if b and b:lower() == "neutral" then
- for k,v in pairs(FindPlayers(plr,a)) do
- v.Neutral = true
- end
- elseif b and b:lower() == "random" then
- if #game:GetService("Teams"):GetTeams() == 0 then
- return Inform(plr,"No teams found!",5)
- end
- local function team()
- while #game:GetService("Teams"):GetTeams() > 0 do
- for k,v in pairs(game:GetService("Teams"):GetTeams()) do
- coroutine.yield(v.TeamColor)
- end
- end
- end team = coroutine.wrap(team)
- for k,v in pairs(FindPlayers(plr,a)) do
- v.TeamColor = team() v.Neutral = false
- end
- else local team = FindTeam(plr,b or msg)
- if not team then return Inform(plr,"That team is not found!",5) end
- for k,v in pairs(FindPlayers(plr,a or msg)) do
- v.TeamColor = team.TeamColor v.Neutral = false
- end
- end
- end,"Admin6 (Teams)","Set someone's team","team","changeteam","join")
- NewCommand("New Team",function(plr,msg) local a,b = Split(msg)
- if not a then return Inform(plr,"Usage: newteam/NAME/COLOR",5) end
- local team = Instance.new("Team",game:GetService("Teams"))
- team.Name = a team.TeamColor = BrickColor.new(b)
- end,"Admin6 (Teams)","Create a new team","createteam","nteam")
- NewCommand("Delete Team",function(plr,msg) local team = FindTeam(plr,msg)
- if not team then return Inform(plr,"That team is not found!",5) end
- for k,v in pairs(game:GetService("Players"):GetPlayers()) do
- if v.TeamColor == team.TeamColor and not v.Neutral then
- v.Neutral = true
- end
- end team:Destroy()
- end,"Admin6 (Teams)","Delete a team","delteam","removeteam","remteam")
- NewCommand("Rebalance Teams",function(plr,msg)
- if #game:GetService("Teams"):GetTeams() == 0 then
- return Inform(plr,"No teams found!",5)
- end
- local function team()
- while #game:GetService("Teams"):GetTeams() > 0 do
- for k,v in pairs(game:GetService("Teams"):GetTeams()) do
- coroutine.yield(v.TeamColor)
- end
- end
- end team = coroutine.wrap(team)
- for k,v in pairs(FindPlayers(plr,msg == "" and "all" or msg)) do
- v.TeamColor = team().TeamColor v.Neutral = false
- end Inform(plr,"Rebalanced the players over all teams!",10)
- end,"Admin6 (Teams)","Balance all or some selected people","balanceteams","balteams","rebalteams")
- local function scan(o,t,r)
- for k,v in pairs(o:GetChildren()) do
- if v:IsA("SpawnLocation") and (t and v.TeamColor == t or v.Neutral) then
- table.insert(r,v)
- end scan(v,t,r)
- end
- end
- NewCommand("Team Spawn",function(plr,msg) local a,b = Split(msg) a = a or "me" b = b or msg
- local team = FindTeam(plr,b) if b:lower() == "neutral" then team = true end
- if not team then return Inform(plr,"That team is not found!",5) end
- local res = {} scan(workspace,team ~= true and team.TeamColor,res)
- if #res == 0 then return Inform(plr,"Couldn't find spawnlocations for this team!",5) end
- local r = coroutine.wrap(function() while true do for k,v in pairs(res) do coroutine.yield(v) end end end)
- for k,v in pairs(FindPlayers(plr,a)) do
- if v.Character then
- v.Character:MoveTo(r().Position)
- end
- end
- end,"Admin6 (Teams)","Tries to teleport you to the team's spawn","teleteam","teamtele","teamteleport")
- end
- if PBS or workspace:findFirstChild("OwnerCameraShotRef") then
- local function ref()
- local r = workspace:findFirstChild("OwnerCameraShotRef")
- if r then r:Destroy() end
- end
- NewCommand("Set Thumbnail",function(plr)
- local s = Script([[ local cam = workspace.CurrentCamera
- local t = Instance.new("Vector3Value",script)
- t.Name = "NewCameraFocus" t.Value = cam.Focus.p
- local b = Instance.new("Vector3Value",t)
- b.Name = "Pos" t.Value = cam.CoordinateFrame.p
- ]],plr.Character,true) ref()
- wait(1) local t = s:findFirstChild("NewCameraFocus")
- if not t then return Inform(plr,"Couldn't set thumbnail") end
- local c = workspace.CurrentCamera c.Focus = CFrame.new(t.Value)
- c.CoordinateFrame = CFrame.new(t.Pos.Value) c.CameraType = "Fixed"
- end,"Admin7 (PBS)","Set the thumbnail of this PBS","thumbnail","setthumb","thumb")
- NewCommand("Has Tools",function(...) local f = {}
- for k,v in pairs(FindPlayers(...)) do local r = false
- if v:findFirstChild("Backpack") then
- if v.Backpack:findFirstChild("Stamper 2.0") then
- r = true
- end
- end table.insert(f,v.Name..": "..tostring(r))
- end Inform(...,table.concat(f,"\n"))
- end,"Admin7 (PBS)","Show if the selected players got PBS build tools","gottools","haspbstools","hasbuildtools")
- NewCommand("Build Suit",function(...)
- for k,v in pairs(FindPlayers(...)) do
- for a,b in pairs({"mcfly/%s","noclip/%s","power/%s/-200","xray/%s"}) do
- Chatted(...,b:gsub("/",CommandKey):format(v.Name),true)
- end
- end
- end,"Admin7 (PBS)","This is a set of combined commands to help build","buildpack","pbssuit","pbs")
- end
- do -- Winner1 commands
- NewCommand("Forcefield",function(...)
- for k,v in pairs(FindPlayers(...)) do
- Instance.new("ForceField",v.Character).Name = "ADM ForceField"
- end
- end,"Winner1","Gives the given player(s) a forcefield","ff")
- NewCommand("Unforcefield",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character then
- while v.Character:findFirstChild("ADM ForceField") do
- v.Character["ADM ForceField"]:Destroy()
- end
- end
- end
- end,"Winner1","Removes the forcefield of the given player(s)","unff")
- NewCommand("Spin",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- local ba = Instance.new("BodyAngularVelocity")
- ba.Name = "ADM Spin" ba.Parent = v.Character.Torso
- ba.maxTorque = Vector3.new(0,1e99,0)
- ba.angularvelocity = Vector3.new(0,50,0)
- end
- end
- end,"Winner1","Makes the given player(s) spin on and on and on")
- NewCommand("Unspin",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- if v.Character.Torso:findFirstChild("ADM Spin") then
- v.Character.Torso["ADM Spin"]:Destroy()
- end
- end
- end
- end,"Winner1","Makes the given player(s) spin on and on and on")
- NewCommand("Fire",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- local fire = Instance.new("Fire",Torso) fire.Heat = 25
- fire.Name = "ADM Fire" fire.Size = 10
- end
- end
- end,"Winner1","Puts the given player(s) on fire","burn")
- NewCommand("Unfire",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- while v.Character.Torso:findFirstChild("ADM Fire") do
- v.Character.Torso["ADM Fire"]:Destroy()
- end
- end
- end
- end,"Winner1","Puts the fire of the given player(s) out","unburn")
- NewCommand("Smoke",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- local smoke = Instance.new("Smoke",Torso) smoke.Size = 5
- smoke.Name = "ADM Smoke" smoke.Opacity = 1
- end
- end
- end,"Winner1","Puts the given player(s) on fire")
- NewCommand("Unsmoke",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- while v.Character.Torso:findFirstChild("ADM Smoke") do
- v.Character.Torso["ADM Smoke"]:Destroy()
- end
- end
- end
- end,"Winner1","Puts the fire of the given player(s) out")
- NewCommand("Trip",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- v.Character.Torso.CFrame = CFrame.new(v.Character.Torso.Position) * CFrame.new(0,0,math.pi)
- end
- end
- end,"Winner1","Trips the given player(s) onto their head")
- NewCommand("Remove Limbs",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character then
- for a,b in pairs({"Left Arm","Right Arm","Left Leg","Right Leg"}) do
- if v.Character:findFirstChild(b) then
- v.Character[b]:BreakJoints()
- end
- end
- end
- end
- end,"Winner1","Removes the limbs of the given player(s)","rlimbs","unlimbs")
- NewCommand("Name Character",function(plr,msg,al) local a,b = Split(msg)
- for k,v in pairs(FindPlayers(plr,a or msg)) do local f = false
- if v.Character then
- for a,b in pairs(v.Character:GetChildren()) do if b:findFirstChild("Named") then f = b end end
- if not b or al:lower() == "unname" then
- if f then f:Destroy()
- v.Character.Head.Transparency = v.Character.Torso.Transparency
- end
- elseif f then
- f.Name = b
- else
- f = Instance.new("Model",v.Character)
- f.Name = b local h = v.Character.Head:clone()
- v.Character.Head.Transparency = 1 h.Parent = f
- local w = Instance.new("Weld",h)
- w.Part0 = v.Character.Head w.Part1 = h
- local h = Instance.new("Humanoid",f)
- h.MaxHealth = 0 h.Name = "Named"
- end
- end
- end
- end,"Winner1","Changes the name of the character (off for none)","name","unname")
- local mv = Vector3.new(math.huge,math.huge,math.huge)
- local function control(a,b,p) local t1,t2 = a.Character.Torso,b.Character.Torso
- local h = b.Character:findFirstChild("Humanoid") human.PlatformStand = true
- local bp,bg = Instance.new("BodyPosition",t2),Instance.new("BodyGyro",t2)
- bp.Name,bg.Name,bp.maxForce,bg.maxTorque = "ADM Control BP","ADM Control BG",mv,mv
- while wait() and t1.Parent == a.Character and t2.Parent == b.Character do
- if bp.Parent ~= t2 or bg.Parent ~= t2 then break end
- bp.position = t1.Position bg.cframe = t1.CFrame
- end bp:Destroy() bg:Destroy() if h then human.PlatformStand = true end Chatted(p,"clip"..CommandKey..b.Name)
- end
- NewCommand("Control Player",function(plr,msg) local a,b = Split(msg) a = b or "me" b = b or msg
- local whos,targs = FindPlayers(plr,a),FindPlayers(plr,b)
- if whos[1] == targs[1] or not whos[1] or not targs[1] then
- return Inform(plr,"Usage: 'p1,p2' for p1 controlling p2 or 'p1' for you controlling p1")
- elseif whos[2] then
- return Inform(plr,"Only 1 player may be given as first argument when giving 2 arguments")
- end local who = whos[1]
- if not who.Character or not who.Character:findFirstChild("Torso") then
- return Inform(plr,"The controller cannot control other players")
- end ypcall(Chatted,plr,"noclip"..CommandKey..b)
- for k,v in pairs(targs) do
- if v.Character and v.Character:findFirstChild("Torso") then
- coroutine.wrap(control)(who,v,plr)
- end
- end
- end,"Winner1","Let player1 take control over the character of player2","control")
- NewCommand("Release Player",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- for k,v in pairs(v.Torso:GetChildren()) do
- if v.Name:find("ADM Control") then
- v:Destroy()
- end
- end
- end
- end
- end,"Winner1","Makes everyone controlling player1 stop controlling him","releaseplayer","free")
- NewCommand("Lock Character",function(...)
- for k,v in pairs(FindPlayers(...)) do
- for a,b in pairs(v:GetChildren()) do
- if b:IsA("Hat") then
- b.Handle.Locked = true
- elseif b:IsA("BasePart") then
- b.Locked = true
- end
- end
- end
- end,"Winner1","Lock the character of the given player(s)","lock")
- NewCommand("Unlock Character",function(...)
- for k,v in pairs(FindPlayers(...)) do
- for a,b in pairs(v:GetChildren()) do
- if b:IsA("Hat") then
- b.Handle.Locked = false
- elseif b:IsA("BasePart") then
- b.Locked = false
- end
- end
- end
- end,"Winner1","Unlock the character of the given player(s)","unlock")
- local function GetMusicID(obj)
- if tonumber(obj) then local found = false
- for k,v in pairs(Music) do if v == tonumber(obj) then found = true end end
- if not found then table.insert(tonumber(obj)) print("Added song ID:",obj) end
- return "rbxassetid://"..obj
- elseif obj:lower():match("^new") and tonumber(obj:sub(4)) then
- return "rbxassetid://"..tostring(Music[tonumber(obh:sub(4))][1])
- elseif obj:find("roblox.com") and obj:find("=%d+") then
- return "rbxassetid://"..obj:match("=(%d+)")
- elseif Music[obj:lower()] then
- return "rbxassetid://"..Music[obj:lower()][1],Music[obj:lower()][2]
- elseif obj:lower() == "random" then local music = {}
- for k,v in pairs(Music) do table.insert(music,v) end
- local res = music[math.random(#music)]
- return "rbxassetid://"..res[1],res[2]
- else local found = {}
- for k,v in pairs(Music) do
- if k:lower():match(obj:lower()) then
- table.insert(found,v)
- end
- end local res = found[math.random(#found)]
- return "rbxassetid://"..res[1],res[2]
- end
- end
- local function GetMusicList() local res = ""
- for k,v in pairs(Music) do
- res = res..(tonumber(k) and "New"..k or k).."\n"
- end return res
- end
- NewCommand("Play Music",function(plr,msg,al) local music,pitch = GetMusicID(msg)
- if al:lower():find("list") then return select(2,GetOutput(plr))(GetMusicList()) end
- if not music then return Inform(plr,"Couldn't get a SoundId out of your message!",5) end
- pcall(function() workspace["ADM Music"]:Stop() workspace["ADM Music"]:Destroy() end)
- if al:lower():find("stop") or msg == "" or msg:lower() == "stop" then return end
- local mu = Instance.new("Sound",workspace) mu.Name = "ADM Music" mu.SoundId = music
- if pitch and tonumber(pitch) then mu.Pitch = tonumber(pitch) end mu:Play()
- mu.Changed:connect(function() wait(1) if not mu.IsPlaying then mu:Play() end end)
- end,"Winner1","Play a music using an ID/name/link","playmusic","music","musiclist","listmusic","stopmusic")
- NewCommand("Head Size",function(plr,msg,al)
- local a,b = Split(msg)
- if al:lower() == "bighead" or al:lower() == "smallhead" or al:lower() == "normalhead" then
- a = msg b = al:lower()
- elseif b then b = b:lower()
- b = b:find("small") and "smallhead" or b:find("big") and "bighead" or "normalhead"
- else
- return Inform(plr,"Usage: "..al..CommandKey.."PLAYERS"..CommandKey.."SMALL-NORMAL-BIG")
- end local s = b == "smallhead" and 0.75 or b == "bighead" and 3 or 1 local h = s == 1 and 1
- for k,v in pairs(FindPlayers(plr,a)) do
- if v.Character and v.Character:findFirstChild("Head") and v.Character.Head:findFirstChild("Mesh") then
- v.Character.Head.Mesh.Scale = Vector3.new(s,s,s) local pi = math.pi
- v.Character.Torso.Neck.C0 = CFrame.new(0,h or s == 3 and 1.9 or 0.8,0) * CFrame.Angles(pi/2,pi,0)
- end
- end
- end,"Winner1","Set the headsize: small/normal/big","headsize","head","bighead","smallhead","normalhead")
- end
- do -- Winner2 commands
- NewCommand("Sit",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Humanoid") then
- v.Character.Humanoid.Sit = true
- end
- end
- end,"Winner2","Makes the given player(s) sit","seat")
- NewCommand("Jump",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Humanoid") then
- v.Character.Humanoid.Jump = true
- end
- end
- end,"Winner2","Makes the given player(s) jump")
- NewCommand("Stand",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Humanoid") then
- v.Character.Humanoid.Sit = false
- v.Character.Humanoid.Jump = false
- v.Character.Humanoid.PlatformStand = false
- end
- end
- end,"Winner2","Makes the given player(s) stand")
- local function save(c,t,b,r)
- for k,v in pairs(c:GetChildren()) do
- if v:IsA("Clothes") then
- v.Parent = c:findFirstChild("Torso")
- elseif v:IsA("BasePart") and t then
- local t = Instance.new("NumberValue",v)
- t.Name = "OldTransparency"
- t.Value = v.Transparency
- elseif c:findFirstChild("Handle") and t then
- local t = Instance.new("NumberValue",v.Handle)
- t.Name = "OldTransparency"
- t.Value = v.Handle.Transparency
- end
- if v:IsA("BasePart") and b then
- local t = Instance.new("BrickColorValue",v)
- t.Name = "OldBrickColor"
- t.Value = v.BrickColor
- elseif v:findFirstChild("Handle") and b then
- local t = Instance.new("BrickColorValue",v.Handle)
- t.Name = "OldBrickColor"
- t.Value = v.Handle.BrickColor
- end
- if v:IsA("BasePart") and r then
- local t = Instance.new("NumberValue",v)
- t.Name = "OldReflectance"
- t.Value = v.Reflectance
- elseif v:findFirstChild("Handle") and r then
- local t = Instance.new("NumberValue",v.Handle)
- t.Name = "OldReflectance"
- t.Value = v.Handle.Reflectance
- end
- end
- end
- local function restore(c)
- for k,v in pairs(c:GetChildren()) do
- if v:IsA("BasePart") and v:findFirstChild("OldTransparency") then
- v.Transparency = v.OldTransparency.Value
- v.OldTransparency:Destroy()
- elseif v:findFirstChild("Handle") and v.Handle:findFirstChild("OldTransparency") then
- v.Handle.Transparency = v.Handle.OldTransparency.Value
- v.Handle.OldTransparency:Destroy()
- end
- if v:IsA("BasePart") and v:findFirstChild("OldBrickColor") then
- v.BrickColor = v.OldBrickColor.Value
- v.OldBrickColor:Destroy()
- elseif v:findFirstChild("Handle") and v.Handle:findFirstChild("OldBrickColor") then
- v.Handle.BrickColor = v.Handle.OldBrickColor.Value
- v.Handle.OldBrickColor:Destroy()
- end
- if v:IsA("BasePart") and v:findFirstChild("OldReflectance") then
- v.Reflectance = v.OldReflectance.Value
- v.OldReflectance:Destroy()
- elseif v:findFirstChild("Handle") and v.Handle:findFirstChild("OldReflectance") then
- v.Handle.Reflectance = v.Handle.OldReflectance.Value
- v.Handle.OldReflectance:Destroy()
- end
- end
- if c:findFirstChild("Torso") then
- for k,v in pairs(c.Torso:GetChildren()) do
- if v:IsA("Clothes") then
- v.Parent = c
- end
- end
- end
- end
- NewCommand("Ghostify",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character then
- save(v.Character,true,true)
- if v:findFirstChild("Backpack") then
- save(v.Backpack,true)
- end
- for k,v in pairs(v.Character:GetChildren()) do
- if v:IsA("BasePart") then
- v.BrickColor = BrickColor.new(1001)
- v.Transparency = 0.5
- elseif v:findFirstChild("Handle") then
- v.Handle.BrickColor = BrickColor.new(1001)
- v.Handle.Transparency = 0.75
- end
- end
- end
- end
- end,"Winner2","Makes the given player(s) a ghost","ghost")
- NewCommand("Goldify",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character then
- save(v.Character,true,true,true)
- if v:findFirstChild("Backpack") then
- save(v.Backpack,true,true,true)
- end
- for k,v in pairs(v.Character:GetChildren()) do
- if v:IsA("BasePart") then
- v.BrickColor = BrickColor.Yellow()
- v.Transparency = 0
- v.Reflectance = 0.25
- elseif v:findFirstChild("Handle") then
- v.Handle.BrickColor = BrickColor.Yellow()
- v.Handle.Transparency = 0
- v.Handle.Reflectance = 0.25
- end
- end
- end
- end
- end,"Winner2","Makes the given player(s) of gold","gold")
- NewCommand("Metalfy",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character then
- save(v.Character,true,true,true)
- if v:findFirstChild("Backpack") then
- save(v.Backpack,true,true,true)
- end
- for k,v in pairs(v.Character:GetChildren()) do
- if v:IsA("BasePart") then
- v.BrickColor = BrickColor.new("Mid gray")
- v.Transparency = 0
- v.Reflectance = 0.25
- elseif v:findFirstChild("Handle") then
- v.Handle.BrickColor = BrickColor.new("Mid gray")
- v.Handle.Transparency = 0
- v.Handle.Reflectance = 0.25
- end
- end
- end
- end
- end,"Winner2","Makes the given player(s) of metal","metal")
- NewCommand("Normal",function(plr,msg)
- for k,v in pairs(FindPlayers(plr,msg)) do
- if v.Character then restore(v.Character) end
- if v:findFirstChild("Backpack") then restore(v.Backpack) end
- end for k,v in pairs({"see","unblind","thrust","heal","normalhead"}) do Chatted(plr,v..CommandKey..msg) end
- end,"Winner2","Normals the given player(s)","ungoldify","unghostify","unghost","ungold","unmetal","unmetalfy")
- NewCommand("Fly Tool",function(...)
- for k,v in pairs(FindPlayers(...)) do
- Script(Scripts.Fly,v.Character,true).Name = "ADM Fly"
- end
- end,"Winner2","Makes the given player(s) fly","flytool","fly")
- NewCommand("Minecraft Fly",function(...)
- for k,v in pairs(FindPlayers(...)) do
- Script(Scripts.MCFly,v.Character,true).Name = "ADM Fly"
- end
- end,"Winner2","Gives the given player(s) creative flight","mcfly","creafly","creativefly","mccreafly","mccreativefly")
- NewCommand("Remove Fly Tool",function(...)
- for k,v in pairs(FindPlayers(...)) do
- while v.Character and v.Character:findFirstChild("ADM Fly",true) do
- v.Character:findFirstChild("ADM Fly",true):Destroy()
- end
- while v.Character and v.Character.Torso:findFirstChild("FlyBodyGyro",true) do
- v.Character.Torso:findFirstChild("FlyBodyGyro",true):Destroy()
- end
- while v.Character and v.Character.Torso:findFirstChild("FlyBodyVelocity",true) do
- v.Character.Torso:findFirstChild("FlyBodyVelocity",true):Destroy()
- end
- while v.Character and v.Character:findFirstChild("Step") do
- v.Character["Step"]:Destroy()
- end
- end
- end,"Winner2","Makes the given player(s) unfly","removeflytool","unflytool","unfly","land")
- NewCommand("Noclip",function(...)
- for k,v in pairs(FindPlayers(...)) do
- Script(Scripts.Noclip,v.Character,true).Name = "ADM Noclip"
- end
- end,"Winner2","Makes the given player(s) fly")
- NewCommand("Clip",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("ADM Noclip") then
- v.Character["ADM Noclip"]:Destroy()
- end
- end
- end,"Winner2","Makes the given player(s) fly","unnoclip")
- local function cape(t,c)
- local p,w = Instance.new("Part",t.Parent)
- p.BottomSurface = 0 p.formFactor = "Custom"
- p.Name = "ADM Cape" p.Anchored = false
- p.CanCollide = false p.TopSurface = 0
- p.Size = Vector3.new(2,3.5,0.1)
- p.Material = "SmoothPlastic"
- if type(c) == "table" then
- if c[2] then
- local d = Instance.new("Decal",p)
- d.Texture,d.Face = c[2],"Back"
- end p.BrickColor = BrickColor.new(c[1])
- if c[3] then
- p.Material = c[3]
- end
- else
- p.BrickColor = BrickColor.new(c)
- end
- local m = Instance.new("Motor",p)
- m.Part0 = p m.Part1 = t m.MaxVelocity = .01
- m.C0 = CFrame.new(0,1.75,0) * CFrame.Angles(0,math.pi/2,0)
- m.C1 = CFrame.new(0,1,0.45) * CFrame.Angles(0,math.pi/2,0)
- while wait() and p:IsDescendantOf(game) and p.Parent == t.Parent do
- local ang,o = 0.1,t.Velocity.magnitude
- ang = (wave and (ang + o/200 + 0.05) or ang) + math.min(o/11, .5) wave = not wave
- m.MaxVelocity = math.min(o/111, 0.04) + 0.02 m.DesiredAngle = -ang
- m.MaxVelocity = o < 0.1 and m.CurrentAngle > -0.2 and 0.002 or 0.02
- m.MaxVelocity = m.CurrentAngle < -0.02 and m.DesiredAngle > -0.02 and 0.04 or m.MaxVelocity
- repeat wait() until m.CurrentAngle == m.DesiredAngle or
- math.abs(t.Velocity.magnitude-o) >= t.Velocity.magnitude/10 + 1
- end p:Destroy()
- end
- NewCommand("Cape",function(plr,msg,al)
- if msg:lower() == "list" or al:lower() == "capes" then
- local c = {} for k,v in pairs(Capes) do table.insert(c,k) end
- return Inform(plr,"Capes:\n"..table.concat(c,"\n"),30)
- end local a,b = Split(msg) a = a or msg b = b or 1001
- for k,v in pairs(Capes) do
- if tostring(b):lower() == k:lower() then
- b = v break
- end
- end
- for k,v in pairs(FindPlayers(plr,a)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- Chatted(plr,"uncape"..CommandKey..v.Name,true)
- coroutine.wrap(cape)(v.Character.Torso,b)
- end
- end
- end,"Winner2","Add a nice cape. Tip: cape"..CommandKey.."list","capes","listcapes")
- NewCommand("Uncape",function(...)
- for k,v in pairs(FindPlayers(...)) do
- while v.Character and v.Character:findFirstChild("ADM Cape") do
- v.Character["ADM Cape"]:Destroy()
- end
- end
- end,"Winner2","Get rid of the cape","nocape","removecape","remcape")
- local function dog(char) char.Torso.Transparency = 1
- if char:findFirstChild("Shirt") then v.Character.Shirt:Destroy() end
- if char:findFirstChild("Pants") then v.Character.Pants:Destroy() end
- char.Torso.Neck.C0 = CFrame.new(0,-.5,-2) * CFrame.Angles(math.pi/2,math.pi,0)
- char.Torso["Right Shoulder"].C0 = CFrame.new(.5,-1.5,-1.5) * CFrame.Angles(0,math.pi/2,0)
- char.Torso["Left Shoulder"].C0 = CFrame.new(-.5,-1.5,-1.5) * CFrame.Angles(0,-math.pi/2,0)
- char.Torso["Right Hip"].C0 = CFrame.new(1.5,-1,1.5) * CFrame.Angles(0,math.pi/2,0)
- char.Torso["Left Hip"].C0 = CFrame.new(-1.5,-1,1.5) * CFrame.Angles(0,-math.pi/2,0)
- local p = Instance.new("Seat", char) p.Name = "Seat" p.formFactor = "Custom" p.Material = "SmoothPlastic"
- p.TopSurface = 0 p.BottomSurface = 0 p.Size = Vector3.new(3,1,4) p.CFrame = char.Torso.CFrame
- local bf = Instance.new("BodyForce", p) bf.force = Vector3.new(0,p:GetMass()*196.2,0)
- local w = Instance.new("Weld", p) w.Part0 = char.Torso w.Part1 = p w.C0 = CFrame.new(0,-0.5,0)
- for k,v in pairs(char:GetChildren()) do
- if v:IsA("BasePart") then
- v.BrickColor = BrickColor.new("Brown")
- elseif v:findFirstChild("Head") then
- v.Head.BrickColor = BrickColor.new("Brown")
- end
- end
- end
- NewCommand("Dog",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- coroutine.wrap(dog)(v.Character)
- end
- end
- end,"Winner2","Make someone a dog","woef")
- local function creeper(char) char.Torso.Transparency = 0
- if char:findFirstChild("Shirt") then char.Shirt:Destroy() end
- if char:findFirstChild("Pants") then char.Pants:Destroy() end
- char.Torso.Neck.C0 = CFrame.new(0,1,0) * CFrame.Angles(math.pi/2,math.pi,0)
- char.Torso["Right Shoulder"].C0 = CFrame.new(0,-1.5,-0.5) * CFrame.Angles(0,math.pi/2,0)
- char.Torso["Left Shoulder"].C0 = CFrame.new(0,-1.5,-0.5) * CFrame.Angles(0,-math.pi/2,0)
- char.Torso["Right Hip"].C0 = CFrame.new(0,-1,0.5) * CFrame.Angles(0,math.pi/2,0)
- char.Torso["Left Hip"].C0 = CFrame.new(0,-1,0.5) * CFrame.Angles(0,-math.pi/2,0)
- for k,v in pairs(char:GetChildren()) do
- if v.Name == "Seat" then
- v:Destroy()
- elseif v:IsA("BasePart") then
- v.BrickColor = BrickColor.new("Camo")
- elseif v:findFirstChild("Head") then
- v.Head.BrickColor = BrickColor.new("Camo")
- end
- end if char.Head:findFirstChild("face") then char.Head.face:Destroy() end
- local d = Instance.new("Decal",char.Head) d.Name = "face"
- d.Texture = "rbxassetid://73581071" d.Face = "Front"
- end
- NewCommand("Creeper",function(...)
- for k,v in pairs(FindPlayers(...)) do
- if v.Character and v.Character:findFirstChild("Torso") then
- coroutine.wrap(creeper)(v.Character)
- end
- end
- end,"Winner2","Make someone a creeper","tsss")
- end
- do -- Member commands
- NewCommand("Commands",function(plr)
- Gui:CommandList(plr)
- end,"Member","Shows a gui with all commands","cmds")
- NewCommand("Tablets",function(plr)
- ShowTablets[plr.Name] = not ShowTablets[plr.Name]
- end,"Member","Toggle Tablets","tabs")
- NewCommand("Dismiss",ClearTablets,"Member","Remove all tablets for you","dt")
- NewCommand("Update",notifyUpdate,"Member","Checks for updates of einsteinK's ADM Script")
- NewCommand("Rejoin",function(plr)
- if not player.Character then return Inform(plr,"Need a character!") end
- game:GetService("TeleportService"):Teleport(game.PlaceId,plr.Character)
- end,"Member","Rejoin the game")
- NewCommand("SaveString",function(plr,msg)
- if not tonumber(msg) then
- return Inform(plr,"Usage: SaveString"..CommandKey.."AmountOfMessages",5)
- end local res = ""
- for i=1,tonumber(msg) do
- res = res..WaitForChatted(plr)
- end Chatted(plr,res,true)
- end,"Member","Use this to connect messages to each other","ss")
- NewCommand("Private Message",function(plr,msg) local a,b = Split(msg)
- if not a then return Inform(plr,"Usage: pm"..CommandKey.."NAME"..CommandKey.."TEXT",5) end
- for k,v in pairs(FindPlayers(plr,a)) do
- Inform(v,plr.Name..": "..b,15)
- end
- end,"Member","Send a private message (use commandbar)","pm","tell")
- NewCommand("Version",function(plr)
- Inform(plr,"Version: "..Version.."\nUse update"..CommandKey.." to check for updates")
- end,"Member","Shows the version")
- NewCommand("Help",function(plr)
- Inform(plr,([[
- For a list of the commands: cmdsKEY
- Use of commands: COMMANDKEYPLAYER1KEYPLAYER2KEY...
- You can only use the commands of your rank and lower
- Your current rank is RANK, see cmdsKEY for info.
- ]]):gsub("KEY",CommandKey):gsub("RANK",GetRank(plr)),10)
- end,"Member","Shows a gui with some help","?")
- NewCommand("Get Rank",function(plr,msg)
- local t = FindPlayers(plr,msg=="" and "me" or msg)
- for k,v in pairs(t) do
- t[k] = tostring(v)..": "..tostring(GetRank(v))
- end Inform(plr,table.concat(t,"\n"))
- end,"Member","Shows the rank of the given player(s)","getrank","gr")
- NewCommand("Command Bar",function(plr) Gui:CommandBar(plr)
- end,"Member","Spawns a command bar to execute commands","commandbar","bar","cmdbar","cmd","cb")
- NewCommand("See Aliases",function(plr,msg) local n,c,a
- for k,v in pairs(Commands) do
- if msg:sub(1,#k+#CommandKey):lower() == k:lower() then
- n,c,a = k,v,k break
- else
- for a,b in pairs(v.Aliases) do
- if msg:sub(1,#b+#CommandKey):lower() == b:lower() then
- n,c,a = k,v,b break
- end
- end
- end
- end if not n then return Inform(plr,"This command is not found!") end
- Inform(plr,"["..c.Rank.."] "..n..": "..table.concat(c.Aliases,", "))
- end,"Member","Shows all aliases for the given command","seealiases","alias","aliases","sa")
- end
- coroutine.wrap(function()
- while wait(1) do
- for k,v in pairs(Jailed) do
- if type(v) == "number" and v <= 0 and GetPlayer(k) then
- if GetPlayer(k).Character and GetPlayer(k).Character:findFirstChild("Jail") then
- GetPlayer(k).Character["Jail"]:Destroy()
- end print("Jailtime for",k,"passed")
- end Jailed[k] = Jailed[k] - 1
- if Jailed[k] < 0 then
- Jailed[k] = nil
- end
- end
- end
- end)()
- local packs,t = {},0
- fullprint(Color3.new(0,0.5,1),"Parsing commands...")
- for k,v in pairs(Commands) do wait() t = t+1
- packs[v.Rank] = (packs[v.Rank] or 0) + 1
- end local pcks = {}
- for k,v in pairs(packs) do
- table.insert(pcks,k)
- end table.sort(pcks)
- for k,v in ipairs(pcks) do wait(0.1)
- fullprint(Color3.new(0,0.5,1),"Command Pack found:",v,"(",packs[v],"Commands )")
- end _G.Chatted = Chatted
- print("Number of registered commands:",t)
- fullprint(Color3.new(0,1),"einsteinK's ADM Script V"..Version.." Loaded")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement