Convert = function(Color) return BrickColor.new(Color).Color end; MyAngle=0; tickstart=tick(); local Aperture _G.sb='Voiliax' local CurrentVersion if game.CreatorId == 5111623 then sb='Voiliax' else sb='Some other sb idk' end Aperture = {} Aperture.BanPhrases = {} Aperture.Functions = {} Aperture.Ranked = {} Aperture.Teams = {} Aperture.Ranks = {} Aperture.Core = {} Aperture.Core.Functions = {} Aperture.Get = {} local height=0 Aperture.Services = { game:service'Lighting'; game:service'Workspace'; game:service'RunService'; game:service'Players'; game:service'HttpService'; game:service'StarterGui'; game:service'StarterPlayer'; game:service'StarterPack'; game:service'FriendService'; }; local doeet = true local phrases=true local ang=0 AllTabs={} game:GetService("RunService").Stepped:connect(function() ypcall(function() for _,Player in pairs(game:service'Players':GetPlayers()) do local PlayerTablets = {} for i,v in pairs(AllTabs) do if v.Tab.Parent ~= nil and v.Player == Player then table.insert(PlayerTablets, v) end end for i = 1, #PlayerTablets do ypcall(function() local tab = PlayerTablets[i].Tab local pos = nil ypcall(function() pos = Player.Character.Torso.CFrame end) local x = math.sin(time()/#PlayerTablets + (math.pi*2)/#PlayerTablets*i) * (#PlayerTablets+6) local z = math.cos(time()/#PlayerTablets + (math.pi*2)/#PlayerTablets*i) * (#PlayerTablets+6) local cPos = tab.Position local ePos = Vector3.new(x, 0, z) + (pos.p or Vector3.new(0, -5, 0)) local nPos = (ePos-cPos)*.25 cPos = cPos + nPos local t = (tick() - tickstart) % 360 local change = 0.0025 ang=ang+change tab.CFrame = CFrame.new(cPos, (pos.p or Vector3.new(0, -5, 0))) * CFrame.Angles(math.rad(-8.25), 0, 0) * CFrame.Angles(math.rad(.55), 0, 0) * CFrame.Angles(0, math.rad((360 / #PlayerTablets) * i) + ang, 0) * CFrame.Angles(math.rad(ang), math.rad(ang), math.rad(ang)) end) end end end) end) Aperture.Ranked = { {['Name'] = 'supersonicfan111', ['Rank'] = 7, ['Reason'] = 'Creator', ['Color'] = 'Really red', ['Transparency'] = .3, ['SelBox'] = true}; {['Name'] = 'chucky4523', ['Rank'] = 7, ['Reason'] = "Creator's alt", ['Color'] = 'Really red', ['Transparency'] = .3, ['SelBox'] = true}; {['Name'] = 'Nexure', ['Rank'] = 4, ['Reason'] = 'Teh Nexure (duh!)', ['Color'] = 'Magenta', ['Transparency'] = .3, ['SelBox'] = true}; {['Name'] = 'lolman8776', ['Rank'] = 5, ['Reason'] = 'Great scripter, and friend', ['Color'] = 'Really blue', ['Transparency'] = .3, ['SelBox'] = true}; {['Name'] = 'SolarEnvironment', ['Rank'] = 4, ['Reason'] = 'Inspiration, and is teh optiplex', ['Color'] = 'Really red', ['Transparency'] = .7, ['SelBox'] = false}; {['Name'] = 'masterepico', ['Rank'] = 5, ['Reason'] = "Creator's best friend", ['Color'] = 'Lime green', ['Transparency'] = .3, ['SelBox'] = true}; {['Name'] = 'Mikko3m', ['Rank'] = -1, ['Reason'] = "Pretending he can hack, etc", ['Color'] = 'Really black', ['Transparency'] = .3, ['SelBox'] = true}; {['Name'] = 'GravityLegendary', ['Rank'] = 5, ['Reason'] = "Creator's best friend", ['Color'] = 'Institutional white', ['Transparency'] = .3, ['SelBox'] = true}; {['Name'] = 'AHAYEMEnvironment', ['Rank'] = 5, ['Reason'] = "GravityLegendary's alt", ['Color'] = 'Institutional white', ['Transparency'] = .3, ['SelBox'] = true}; {['Name'] = 'deathwakler5', ['Rank'] = 5, ['Reason'] = "GravityLegendary's Alt", ['Color'] = 'Institutional white', ['Transparency'] = .3, ['SelBox'] = true}; {['Name'] = 'iLordVex', ['Rank'] = 4, ['Reason'] = "Epic player and scripter", ['Color'] = 'Magenta', ['Transparency'] = .3, ['SelBox'] = true}; {['Name'] = 'Vexue', ['Rank'] = 4, ['Reason'] = "Creator of Revex", ['Color'] = 'Teal', ['Transparency'] = .3, ['SelBox'] = true}; {['Name'] = 'Derek1017', ['Rank'] = -2, ['Reason'] = "Claiming Gravity as his and naming it Swagmin (more like Sh\5\itmin, amirite?), banning everybody", ['Color'] = 'Magenta', ['Transparency'] = .3, ['SelBox'] = true}; } Aperture.BanPhrases = { {['Word'] = 'ban', ['Do'] = 'ban', ['Rank'] = 5}; {['Word'] = 'kick', ['Do'] = 'ban', ['Rank'] = 5}; {['Word'] = 'swag', ['Do'] = 'kill', ['Rank'] = 2}; {['Word'] = ':remove()', ['Do'] = 'ban', ['Rank'] = 7}; {['Word'] = ':destroy()', ['Do'] = 'kick', ['Rank'] = 7}; {['Word'] = 'bsod', ['Do'] = 'bsod', ['Rank'] = 4}; {['Word'] = 'disc', ['Do'] = 'ban', ['Rank'] = 7}; } Aperture.Ranks = { {['Name'] = 'Creator', ['Rank'] = 7}; {['Name'] = 'Maximum Administrator', ['Rank'] = 6}; {['Name'] = 'Best Friend', ['Rank'] = 5}; {['Name'] = 'Special Player', ['Rank'] = 4}; {['Name'] = 'Administrator', ['Rank'] = 3}; {['Name'] = 'Beta Tester', ['Rank'] = 2}; {['Name'] = '1250+ days', ['Rank'] = 1.5}; {['Name'] = 'Member', ['Rank'] = 1}; {['Name'] = 'Trainee', ['Rank'] = 0.1}; {['Name'] = 'Guest', ['Rank'] = 0}; {['Name'] = 'Banned', ['Rank'] = -1}; } Aperture.Get.Rank = function(plr) if type(plr) == 'userdata' then plr=tostring(plr) elseif type(plr) == 'string' then plr=plr else plr=plr.Name end for _, data in pairs(Aperture.Ranked) do if data['Name'] == plr then local rnk=data['Rank'] return rnk end end return 0.1 end Aperture.Get.Trans = function(plr) if type(plr) == 'userdata' then plr=tostring(plr) elseif type(plr) == 'string' then plr=plr else plr=plr.Name end for _, data in pairs(Aperture.Ranked) do if data['Name'] == plr then local trans=data['Transparency'] return trans end end return .7 end Aperture.Get.Sel = function(plr) if type(plr) == 'userdata' then plr=tostring(plr) elseif type(plr) == 'string' then plr=plr else plr=plr.Name end for _, data in pairs(Aperture.Ranked) do if data['Name'] == plr then local sel=data['SelBox'] return sel end end return false end Aperture.Get.Color = function(plr) if type(plr) == 'userdata' then plr=tostring(plr) elseif type(plr) == 'string' then plr=plr else plr=plr.Name end for _, data in pairs(Aperture.Ranked) do if data['Name'] == plr then local clr=data['Color'] return clr end end return 'Institutional white' end Aperture.Get.Name = function(rank) for _, data in pairs(Aperture.Ranks) do if data['Rank'] == rank then local name=data['Name'] return name end end return '404_RANK_(RANK_NOT_FOUND)' end Aperture.Core.Commands = {} Aperture.Core.Functions = {} Aperture.Core.Functions.AddCommand = function(say, name, rank, description, flags, arguments, func) table.insert(Aperture.Core.Commands, {['Say'] = say, ['Name'] = name, ['Rank'] = rank, ['Desc'] = description, ['Flags'] = flags, ['Args'] = arguments, ['Func'] = func}) end Aperture.Core.Functions.Output = function(player, text, color, func) if text==nil then text='Text Error!' end if color==nil then color=tostring('White') end if player==nil then return false end local TABLET=Instance.new("Part", script) TABLET.Transparency=Aperture.Get.Trans(player) TABLET.Size=Vector3.new(2,2,2) TABLET.BrickColor=BrickColor.new(tostring(color)) if player and player.Character and player.Character:FindFirstChild('Head') then TABLET.CFrame=player.Character:FindFirstChild('Head').CFrame end TABLET.CanCollide=false TABLET.Anchored=true TABLET.Locked=true TABLET.TopSurface=0 TABLET.BottomSurface=0 local GUI=Instance.new("BillboardGui", TABLET) GUI.Adornee=TABLET; GUI.StudsOffset = Vector3.new(0, 1.3, 0) GUI.Size = UDim2.new(8, 0, 7.5,0) local LABEL=Instance.new("TextLabel", GUI) LABEL.Font = "ArialBold" LABEL.TextColor3=Convert(tostring(color)) LABEL.BackgroundTransparency=1 LABEL.FontSize = "Size18" LABEL.TextStrokeTransparency=1 LABEL.Text = tostring(text) LABEL.TextStrokeColor3=Convert(tostring(color)) LABEL.Size = UDim2.new(1, 0, 0.5, 0) local CLICK=Instance.new("ClickDetector", TABLET) CLICK.MaxActivationDistance=math.huge local SEL=nil if Aperture.Get.Sel(player) == true then SEL=Instance.new("SelectionBox", TABLET) SEL.Adornee=TABLET SEL.Color=TABLET.BrickColor SEL.Transparency=TABLET.Transparency end CLICK.MouseClick:connect(function(p) if p.userId == player.userId or Aperture.Get.Rank(p) > Aperture.Get.Rank(player) then if func == nil then for i = 1, 5 do TABLET.Transparency=TABLET.Transparency + .1 TABLET.Size=TABLET.Size + Vector3.new(.5,.5,.5) wait() end TABLET:Destroy() else for i = 1, 5 do TABLET.Transparency=TABLET.Transparency + .1 TABLET.Size=TABLET.Size + Vector3.new(.5,.5,.5) wait() end TABLET:Destroy() func = func func() end end end) table.insert(AllTabs, {Tab = TABLET, Player = player}) end Aperture.Core.Functions.GetPlayers = function(plr, msg) local plrs = {} if msg == "me" then table.insert(plrs, plr) elseif msg == "all" then for _,v in pairs(game:service'Players':players()) do if Aperture.Get.Rank(v) <= Aperture.Get.Rank(plr) then table.insert(plrs, v) end end elseif msg == "others" then for _,v in pairs(game:service'Players':players()) do if v ~= plr then if Aperture.Get.Rank(v) <= Aperture.Get.Rank(plr) then table.insert(plrs, v) end end end else for _,v in pairs(game:service'Players':players()) do if v.Name:lower():sub(1,#msg) == msg:lower() then if Aperture.Get.Rank(v) <= Aperture.Get.Rank(plr) then table.insert(plrs, v) end end end end return plrs end Aperture.Functions.attach=function(plr,object) local function check(o) if o.ClassName == 'BasePart' then return true else return false end end if check(object)==true then table.insert(AllTabs, {Tab = object, Player=plr}); else warn'asd, nogo' end end function Kick(plr) local h=Instance.new('RemoteEvent',workspace):FireClient(plr,{string.rep("umad?",2e5+5)}) delay(1,function() pcall(function() h:remove() end) end) end function Shutdown() for i,v in pairs(game:service'Players':players()) do local h=Instance.new('RemoteEvent',workspace):FireClient(v,{string.rep("umad?",2e5+5)}) delay(1,function() pcall(function() h:remove() end) end) end end Aperture.Core.Functions.RemoveTablets = function() Aperture = nil script.Disabled=true script:destroy'' end Aperture.Functions.OwnerBroadcast = function(plr, text, color, func) local admins=0 for _, p in pairs(game:service'Players':GetPlayers'') do if Aperture.Get.Rank(p) >= 6 then admins = admins +1 Aperture.Core.Functions.Output(p, text, color, func) end end if admins == 0 then warn('No creator(s) found!') else print(tonumber(admins)..' admins are online!') print(text) end end BSoD = function(plr) BSoDSource(plr) wait() ApertureFunctions.OwnerBroadcast('Player: '..plr.Name..' is being crashed with iLordVex BSoD!', 'Really blue') end Aperture.Functions.Broadcast = function(text, color, func) for _, p in pairs(game:service'Players':GetPlayers'') do Aperture.Core.Functions.Output(p, text, color, func) end print(text) end key = ';' Aperture.Core.Functions.Chatted = function(speaker, message) if message:sub(1, 2) == '/e' then if #message > 3 then message = message:sub(4) end elseif message:sub(1, 1) == '/' then if #message > 2 then message = message:sub(2) end end for _, PHRASES in pairs(Aperture.BanPhrases) do if message:lower():find(PHRASES['Word']) then if phrases==true then if PHRASES['Rank'] > Aperture.Get.Rank(speaker) then if PHRASES['Do'] == 'kill' then pcall(function() speaker.Character:BreakJoints'' end) elseif PHRASES['Do'] == 'ban' then print('Get rekt '..speaker.Name) if Aperture.Get.Rank(speaker) == 0 then table.insert(Aperture.Ranked, {['Name'] = speaker.Name, ['Rank'] = -1, ['Reason'] = 'Chatting a banned phrase', ['Color'] = 'Really black'}) else local rank=Aperture.Get.Rank rank=-1 end Kick(speaker) elseif PHRASES['Do'] == 'kick' then print('Get rekt '..speaker.Name) Kick(speaker) elseif PHRASES['Do'] == 'bsod' then print('Get bsod '..speaker.Name) BSoD(speaker) end end end end end local command=message for _, CMDS in pairs(Aperture.Core.Commands) do if command:sub(1, #CMDS['Say']+#key) == CMDS['Say']..key then if Aperture.Get.Rank(speaker) >= CMDS['Rank'] then local msg = command:sub(#CMDS["Say"]+#key+1) a,b = ypcall(function() CMDS["Func"](speaker, msg) end) if not a then warn(b) Aperture.Functions.OwnerBroadcast(speaker, 'ERROR: '..b, 'Really red') end else Aperture.Core.Functions.Output(speaker, 'You do not have the required rank: '..CMDS['Rank']..'!', 'Really red') end end end end for _, plr in next, game:service'Players':players'' do if Aperture.Get.Rank(plr) == 999 or Aperture.Get.Rank(plr) == 'no' or Aperture.Get.Rank(plr) == 0.1 then table.insert(Aperture.Ranked, {['Name'] = plr.Name, ['Rank'] = 0, ['Reason'] = 'Random Player', ['Color'] = 'Really blue', ['Transparency'] = .7, ['SelBox'] = true}) end if Aperture.Get.Rank(plr) < 3 then if plr.AccountAge <= 249 and Aperture.Get.Rank(plr) < 2 or Aperture.Get.Rank(plr) == -1 then Kick(plr) elseif plr.AccountAge >= 1250 then if Aperture.Get.Rank(plr) == 0 then local rank = Aperture.Get.Rank(plr) rank = 1.5 end end end end for _, p in pairs(game:service'Players':GetPlayers'') do Aperture.Core.Functions.Output(p, 'Welcome to Aperture Tablets Generation 2.1 BETA!', 'Institutional white') Aperture.Core.Functions.Output(p, 'Your rank: '..Aperture.Get.Rank(p), 'Really blue') Aperture.Core.Functions.Output(p, 'Click to dismiss', 'Really red', function() Aperture.Core.Functions.Dismiss(p) end) p.Chatted:connect(function(message) Aperture.Core.Functions.Chatted(p, message) end) end game:service'Players'.PlayerAdded:connect(function(p) p.CharacterAdded:wait'' Aperture.Core.Functions.Output(p, 'Welcome to Aperture Tablets Generation 2.1 BETA!', 'Institutional white') Aperture.Core.Functions.Output(p, 'Your rank: '..Aperture.Get.Rank(p), 'Really blue') Aperture.Core.Functions.Output(p, 'Click to dismiss', 'Really red', function() Aperture.Core.Functions.Dismiss(p) end) p.Chatted:connect(function(message) Aperture.Core.Functions.Chatted(p, message) end) end) Aperture.Core.Functions.GetSplit = function(msg) local a = nil for i = 1,#msg do if msg:sub(i,i) == "-" then a = i+1 break end end if a ~= nil then return msg:sub(a) else return nil end end Aperture.Core.Functions.Dismiss = function(player) for _, tabs in next, AllTabs do if tabs.Player == player then tabs.Tab:destroy() end end end Aperture.Functions.Explore = function(speaker, obj) Aperture.Core.Functions.Dismiss(speaker) if obj == game or obj==nil then for _, children in pairs(Aperture.Services) do Aperture.Core.Functions.Output(speaker, children.Name, 'Really blue', function() Aperture.Core.Functions.Dismiss(speaker) Aperture.Core.Functions.Output(speaker, 'View Children', 'Really black', function() Aperture.Functions.Explore(speaker, children) end) Aperture.Core.Functions.Output(speaker, 'Name: '..children.Name, 'Lime green') Aperture.Core.Functions.Output(speaker, 'Explore Parent', 'Teal', function() Aperture.Functions.Explore(speaker, children.Parent) end) Aperture.Core.Functions.Output(speaker, 'ClassName: '..children.ClassName, 'Hot pink') end) end else for _, children in pairs(obj:children'') do Aperture.Core.Functions.Output(speaker, children.Name, 'Really blue', function() Aperture.Core.Functions.Dismiss(speaker) if #obj:children() >= 1 then Aperture.Core.Functions.Output(speaker, 'View Children', 'Really black', function() Aperture.Functions.Explore(speaker, children) end) Aperture.Core.Functions.Output(speaker, 'Clear All Children', 'Bright red', function() if children.Name == 'Terrain' then children:clear'' Aperture.Functions.Explore(speaker, obj) else children:ClearAllChildren'' Aperture.Functions.Explore(speaker, obj) end end) end Aperture.Core.Functions.Output(speaker, 'Remove', 'Really red', function() if children.ClassName == 'Player' then Kick(children) wait'' Aperture.Functions.Explore(speaker, obj) else children:remove'' wait'' Aperture.Functions.Explore(speaker, obj) end end) Aperture.Core.Functions.Output(speaker, 'Name: '..children.Name, 'Lime green') Aperture.Core.Functions.Output(speaker, 'Explore Parent', 'Teal', function() Aperture.Functions.Explore(speaker, children.Parent) end) Aperture.Core.Functions.Output(speaker, 'ClassName: '..children.ClassName, 'Hot pink') end) end end end Aperture.Core.Functions.Commands = function(player) Aperture.Core.Functions.Dismiss(player) for i = 0, 6 do Aperture.Core.Functions.Output(player, Aperture.Get.Name(i)..' ( '..i..' ) ', 'Lime green', function() Aperture.Core.Functions.GetCommands(player, i) end) end Aperture.Core.Functions.Output(player, 'Show all commands (Rank 7 ( Creator ) )', 'New Yeller', function() Aperture.Core.Functions.GetCommands(player, 7) end) end Aperture.Core.Functions.GetCommands = function(player, rank) Aperture.Core.Functions.Dismiss(player) for _, CMDS in pairs(Aperture.Core.Commands) do if CMDS['Rank'] <= rank then Aperture.Core.Functions.Output(player, CMDS['Name'], Aperture.Get.Color(player), function() Aperture.Core.Functions.Dismiss(player) Aperture.Core.Functions.Output(player, 'Description: '..CMDS['Desc'], Aperture.Get.Color(player)) Aperture.Core.Functions.Output(player, 'Flags: '..CMDS['Flags'], Aperture.Get.Color(player)) Aperture.Core.Functions.Output(player, 'Arguments: '..CMDS['Args'], Aperture.Get.Color(player)) Aperture.Core.Functions.Output(player, 'Usage: '..CMDS['Say']..''..key, Aperture.Get.Color(player)) Aperture.Core.Functions.Output(player, 'Rank: '..CMDS['Rank'], Aperture.Get.Color(player)) Aperture.Core.Functions.Output(player, 'Name: '..CMDS['Name'], Aperture.Get.Color(player)) Aperture.Core.Functions.Output(player, 'Back', 'Really black', function() Aperture.Core.Functions.GetCommands(player, rank) end) Aperture.Core.Functions.Output(player, 'Dismiss', 'Really red', function() Aperture.Core.Functions.Dismiss(player) end) end) end end end Aperture.Core.Functions.AddCommand('tst', 'Test', 0, 'Tests if Aperture Tablets are working!~','< NO FLAGS >','', function(player, msg) if msg == '' then Aperture.Core.Functions.Output(player, 'Admin works!', 'Lime green') else Aperture.Core.Functions.Output(player, msg, 'Lime green') end end) Aperture.Core.Functions.AddCommand('rtabs', 'Remove', 7, 'Removes Aperture Tablets','< ~INSTANT >','', function(player, msg) if msg == '~INSTANT' then Aperture.Core.Functions.RemoveTablets() else local countdown = 5 for i = 1, 5 do Aperture.Core.Functions.Output(player, 'REMOVING IN: '..countdown..' SECONDS!', 'Really red') countdown = countdown - 1 wait(1) end Aperture.Core.Functions.RemoveTablets() end end) Aperture.Core.Functions.AddCommand('ping', 'Ping', 1, 'Pings text','','', function(player, msg) if msg == '' then Aperture.Core.Functions.Output(player, 'Pong!', 'Lime green') else Aperture.Core.Functions.Output(player, msg, Aperture.Get.Color(player)) end end) Aperture.Core.Functions.AddCommand('bp', 'Banned Phrases', 0, 'Displays banned phrases','< NO FLAGS >','', function(player) Aperture.Core.Functions.Dismiss(player) if Aperture.Get.Rank(player) >= 5 then if phrases==false then Aperture.Core.Functions.Output(player, 'Turn on banning phrases', 'Lime green', function() phrases=true Aperture.Core.Functions.Chatted(player, 'bp'..key) end) else Aperture.Core.Functions.Output(player, 'Turn off banning phrases', 'Really red', function() phrases=false Aperture.Core.Functions.Chatted(player, 'bp'..key) end) end end if phrases==false then Aperture.Core.Functions.Output(player, 'Banned phrases off!', 'Bright red') else Aperture.Core.Functions.Output(player, 'Banned phrases on!', 'Bright green') end for _, phrases in pairs(Aperture.BanPhrases) do Aperture.Core.Functions.Output(player, phrases['Word'], 'Hot pink', function() Aperture.Core.Functions.Dismiss(player) Aperture.Core.Functions.Output(player, 'Word: '..phrases['Word'], 'Hot pink') Aperture.Core.Functions.Output(player, 'Rank needed (or above) to chat: '..phrases['Rank'], 'Lime green') if phrases['Do'] == 'kill' then Aperture.Core.Functions.Output(player, 'Punishment: Slaughter', 'Black') elseif phrases['Do'] == 'ban' then Aperture.Core.Functions.Output(player, 'Punishment: Ban from server', 'Really red') elseif phrases['Do'] == 'kick' then Aperture.Core.Functions.Output(player, 'Punishment: Removed from server', 'Bright red') elseif phrases['Do'] == 'bsod' then Aperture.Core.Functions.Output(player, 'Punishment: BSoD (work in progress)', 'Really blue') else Aperture.Core.Functions.Output(player, 'Punishment: Unknown', 'Medium stone grey') end Aperture.Core.Functions.Output(player, 'Dismiss', 'Really red', function() Aperture.Core.Functions.Dismiss(player) end) Aperture.Core.Functions.Output(player, 'Back', 'Really black', function() Aperture.Core.Functions.Chatted(player, 'bp'..key) end) end) end end ) Aperture.Core.Functions.AddCommand('dt', 'Dismiss Tablets', 0, 'Dismisses your tablets','< NO FLAGS >','', function(player, m) if m == '~a' or m == '-a' or m == '~all' or m == '-all' then if Aperture.Get.Rank(player) >= 5 then for _, p in pairs(game:service'Players':players'') do Aperture.Core.Functions.Dismiss(p) end end elseif m == '~o' or m == '-o' or m == '~others' or m == '-others' then if Aperture.Get.Rank(player) >= 5 then for _, p in pairs(game:service'Players':players'') do if p.Name ~= player.Name then Aperture.Core.Functions.Dismiss(p) end end end else Aperture.Core.Functions.Dismiss(player) end end) Aperture.Core.Functions.AddCommand('akp', 'Add Kick Phrase', 5, 'Adds a kicking phrase','','', function(player, msg) msg = msg:lower() table.insert(Aperture.BanPhrases, {['Word'] = msg, ['Do'] = 'kick', ['Rank'] = 5}) end) Aperture.Core.Functions.AddCommand('akp2', 'Add Kill Phrase', 3, 'Adds a killing phrase','','', function(player, msg) msg = msg:lower() table.insert(Aperture.BanPhrases, {['Word'] = msg, ['Do'] = 'kill', ['Rank'] = 3}) end) Aperture.Core.Functions.AddCommand('abp', 'Add Ban Phrase', 7, 'Adds a ban phrase','','', function(player, msg) msg = msg:lower() table.insert(Aperture.BanPhrases, {['Word'] = msg, ['Do'] = 'ban', ['Rank'] = 7}) end) Aperture.Core.Functions.AddCommand('cmds', 'Show Commands', 0, 'Displays all commands','< NO FLAGS >','< NO ARGS >', function(player) Aperture.Core.Functions.Commands(player) end) Aperture.Core.Functions.AddCommand('exe', 'Execute', 5, 'Executes code ','< NO FLAGS >','', function(p, m) local success,chunk_error=loadstring(m); if(success) then success(); else Aperture.Core.Functions.Output(p,'ERROR: '..chunk_error,"Really red") end end ) Aperture.Core.Functions.AddCommand('update', 'Update', 7, 'Updates the tablets','< NO FLAGS >','< NO ARGUMENTS >', function(p, m) local newVer=game:service'HttpService':GetAsync('http://pastebin.com/raw.php?i=R1BhkhNx', true) if newVer ~= CurrentVersion or CurrentVersion ~= newVer then if sb == 'Voiliax' then Aperture.Core.Functions.Output(p, 'Click to update (IF SCRIPT IS CURRENTLY UNREMOVABLE, UPDATE WILL BE REMOVABLE!)', 'Lime green', function() newScript(newVer, workspace) Aperture.Core.Functions.Chatted(p, 'rtabs'..key..'~INSTANT') end) else Aperture.Core.Functions.Output(p, "[ERROR] Script builder not Voiliax's, cannot update!", 'Really red') end end end ) Aperture.Core.Functions.AddCommand('explore', 'Explorer', 5, 'Explores the game', '< NO FLAGS>', '< NO ARGS >', function(p) Aperture.Functions.Explore(p) end) game:service'Players'.PlayerAdded:connect(function(plr) if Aperture.Get.Rank(plr) < 3 then if plr.AccountAge <= 249 and Aperture.Get.Rank(plr) < 2 or Aperture.Get.Rank(plr) == -1 then Kick(plr) elseif plr.AccountAge >= 1250 then if Aperture.Get.Rank(plr) == 0 then local rank = Aperture.Get.Rank(plr) rank = 1.5 elseif Aperture.Get.Rank(plr) == 999 or Aperture.Get.Rank(plr) == 'no' or Aperture.Get.Rank(plr) == 0.1 then table.insert(Aperture.Ranked, {['Name'] = plr.Name, ['Rank'] = 0, ['Reason'] = 'Random Player', ['Color'] = 'Really blue', ['Transparency'] = .7, ['SelBox'] = true}) end end end end) game:service'Players'.PlayerRemoving:connect(function(player) for _, tabs in next, AllTabs do if tabs.Player == player then tabs.Tab:destroy() end end if Aperture.Get.Rank(player) == -1 then for _, p in pairs(game:service'Players':players'') do Aperture.Core.Functions.Output(p, 'Player: '..player.Name..' was banned!', 'Really red') Aperture.Core.Functions.Output(p, 'Click to see why player was banned', 'Really red', function() Aperture.Core.Functions.Dismiss(p) Aperture.Core.Functions.Output(p, 'Player: '..player.Name..' was banned for: '..Aperture.Get.Reason(player), 'Really red') end) end elseif player.AccountAge <= 249 then Aperture.Core.Functions.Output(p, 'Player: '..player.Name..' was kicked for being below the age of 250 ( Their age was: '..player.AccountAge..' )', 'Deep orange') end end) table.insert(Aperture.Ranked, {['Name'] = 'laizia123', ['Rank'] = -1, ['Reason'] = 'Banning everyone, abuse', ['Color'] = 'Really black'})