Admins = { [""] = 3, ["Troll900] = 3, [""] = 3, [""] = 3 } local Levels = { [0] = {"Peasant", BrickColor.new("Medium stone grey")}; [1] = {"Knight", BrickColor.new("Bright red")}; [2] = {"Lord", BrickColor.new("Navy blue")}; [3] = {"King", BrickColor.new("Bright red")} } Players = Game:GetService("Players") Workspace = Game:GetService("Workspace") Debris = Game:GetService("Debris") Lighting = Game:GetService("Lighting") Teams = Game:GetService("Teams") MR = math.rad MD = math.deg IPStore = {} IPBans = {} Banned = {"Network Server"} PrivateServer = {} PrivateServerWarnings = {} function IncommingConnection(IPAddress, Replicator) local IP = IPAddress:sub(1, IPAddress:find(":")-1) local ThePlayer Players.PlayerAdded:connect(function(NewPlayer) if not ThePlayer then ThePlayer = NewPlayer end end) repeat wait() until ThePlayer IPStore[ThePlayer.Name] = IP for i=1, #IPBans do if IPBans[i] == IP then ThePlayer:Remove() end end end Game:GetService("NetworkServer").IncommingConnection:connect(IncommingConnection) function Round(Number, ToWhatExtent) if ToWhatExtent then return math.floor(Number/ToWhatExtent+0.5)*ToWhatExtent else return math.floor(Number + 0.5) end end Settings = { Color = BrickColor.new("New Yeller"), --Its navyblue... Name = "TheWinteryHail Admin", Version = "0.0.8" } function ShowInCircle(Prompter,...) local Args = {...} local Books = {} Args[#Args + 1] = "Dismiss" local Ans = nil local Rank = Admins[Prompter.Name] for i=1, #Args do local IsKings if Args[i]:find("(Kings Only)") then IsKings = true end local Book = Instance.new("Part", Game:GetService("Workspace")) Book.Anchored = false Book.Locked = true Book.CanCollide = false Book.TopSurface, Book.BottomSurface = 0, 0 Book.Transparency = 0.5 Book.FormFactor = Enum.FormFactor.Custom Book.Size = Vector3.new(2.3, 1, 3) if IsKings and Admins[Prompter.Name] < 3 then Book.BrickColor = BrickColor.new("New Yeller") else Book.BrickColor = Settings.Color end table.insert(Books, Book) local Mesh = Instance.new("SpecialMesh", Book) Mesh.MeshId = "http://www.roblox.com/asset/?id=1136139" Mesh.MeshType = "FileMesh" local BG = Instance.new("BodyGyro", Book) local BP = Instance.new("BodyPosition", Book) if (IsKings and Admins[Prompter.Name] == 3) or not IsKings then local Fire = Instance.new("Fire", Book) Fire.Heat = 0 Fire.Color = Settings.Color.Color Fire.SecondaryColor = Settings.Color.Color end local Billboard = Instance.new("BillboardGui", Book) Billboard.Adornee = Book Billboard.Enabled = true Billboard.Active = true Billboard.Size = UDim2.new(0.3, 0, 0.05, 0) Billboard.ExtentsOffset = Vector3.new(0, 2.5, 0) local Text = Instance.new("TextLabel", Billboard) Text.Text = Args[i] if IsKings and Admins[Prompter.Name] ~= 3 then Text.TextColor3 = BrickColor.new("New Yeller").Color else Text.TextColor3 = Settings.Color.Color end Text.BackgroundTransparency = 1 Text.Size = UDim2.new(1, 0, 1, 0) local ClickDetector = Instance.new("ClickDetector", Book) ClickDetector.MouseClick:connect(function(Player) if Player == Prompter and Args[i] == "Dismiss" then Ans = Args[i] for _, v in pairs(Books) do v:Remove() end Books = {} end end) end coroutine.resume(coroutine.create(function() local radius = 3 + (#Books*.7) while wait() do if #Books == 0 then break end for _, Book in pairs(Books) do local BP = Book:FindFirstChild("BodyPosition") or Instance.new("BodyPosition", Book) BP.maxForce = Vector3.new(1000000000, 1000000000, 1000000000) local BG = Book:FindFirstChild("BodyGyro") or Instance.new("BodyGyro", Book) BG.maxTorque = Vector3.new(1000000000, 1000000000, 1000000000) local Pos = (Prompter.Character:FindFirstChild("Torso") or Prompter.Character:FindFirstChild("Torso")).CFrame local x = math.cos((tonumber(_)/#Books - (0.5/#Books)) * math.pi*2) * radius -- cos local y = 0 local z = math.sin((tonumber(_)/#Books - (0.5/#Books)) * math.pi*2) * radius -- sin BP.position = Pos:toWorldSpace(CFrame.new(x,y,z):inverse()).p BG.cframe = CFrame.new(Book.Position, Pos.p) * CFrame.Angles(math.pi/2, 0, 0) end end end)) end function Prompt(Prompter, ...) local Args = {...} local Books = {} --Dismiss sounds cooler :3 Args[#Args + 1] = "Dismiss" local Ans = nil for i=1, #Args do local Book = Instance.new("Part", Game:GetService("Workspace")) Book.Anchored = false Book.Locked = true Book.CanCollide = false Book.TopSurface, Book.BottomSurface = 0, 0 Book.Transparency = 0.5 Book.FormFactor = Enum.FormFactor.Custom Book.Size = Vector3.new(2.3, 1, 3) Book.BrickColor = Settings.Color table.insert(Books, Book) local Mesh = Instance.new("SpecialMesh", Book) Mesh.MeshId = "http://www.roblox.com/asset/?id=1136139" Mesh.MeshType = "FileMesh" local Fire = Instance.new("Fire", Book) Fire.Heat = 0 Fire.Color = Settings.Color.Color Fire.SecondaryColor = Settings.Color.Color local Billboard = Instance.new("BillboardGui", Book) Billboard.Adornee = Book Billboard.Enabled = true Billboard.Active = true Billboard.Size = UDim2.new(0.3, 0, 0.05, 0) Billboard.ExtentsOffset = Vector3.new(0, 2.5, 0) local Text = Instance.new("TextLabel", Billboard) Text.Text = Args[i] Text.TextColor3 = Settings.Color.Color Text.BackgroundTransparency = 1 Text.Size = UDim2.new(1, 0, 1, 0) local AttemptToFixPrompt = i local ClickDetector = Instance.new("ClickDetector", Book) ClickDetector.MouseClick:connect(function(Player) if Player == Prompter then Ans = Args[i] local BackupBooks = Books Books = {} local AnimationOver pcall(function() BP.Position = Player.Character.Torso.Position end) Book.Touched:connect(function(zPart) pcall(function() if zPart == Player.Character.Torso then AnimationOver = true end end) end) delay(5, function() AnimationOver = true end) for _, v in pairs(BackupBooks) do v:Remove() end BackupBooks = nil return AttemptToFixPrompt end end) end coroutine.resume(coroutine.create(function() local radius = 3 + (#Books) while wait() do if #Books == 0 then break end for _, Book in pairs(Books) do local BP = Book:FindFirstChild("BodyPosition") or Instance.new("BodyPosition", Book) BP.maxForce = Vector3.new(1000000000, 1000000000, 1000000000) local BG = Book:FindFirstChild("BodyGyro") or Instance.new("BodyGyro", Book) BG.maxTorque = Vector3.new(1000000000, 1000000000, 1000000000) local Pos = (Prompter.Character:FindFirstChild("Torso") or Prompter.Character:FindFirstChild("Torso")).CFrame local x = math.cos((tonumber(_)/#Books - (0.5/#Books)) * math.pi) * radius -- cos local y = 0 local z = math.sin((tonumber(_)/#Books - (0.5/#Books)) * math.pi) * radius -- sin BP.position = Pos:toWorldSpace(CFrame.new(x,y,z):inverse()).p BG.cframe = CFrame.new(Book.Position, Pos.p) * CFrame.Angles(math.pi/2, 0, 0) end end end)) while (Ans == nil) and (#Books > 0) do wait() end return Ans end function ParseMessage(Message) Message = Message:gsub("lego%s", "") Message = Message:gsub("runescape%s", "") Message = Message:gsub("minecraft%s", "") local Command local Args = {} for Word in Message:gmatch("%w+") do if not Command then Command = Word else table.insert(Args, Word) end end return Command, Args end function ErrorHandler(Error) print(Error) local Message = Instance.new("Message", Workspace) Message.Text = "!ERROR!: " .. Error:gsub("(.-:)","") Game:GetService("Debris"):AddItem(Message, 5) end function onPlayerAdded(NewPlayer) for b=1, #Banned do if NewPlayer.Name == Banned[b] then coroutine.resume(coroutine.create(function() for i=1, 25 do pcall(function() NewPlayer:Destroy() end) wait(0.5) end end)) end end NewPlayer.Chatted:connect(function(C) xpcall(function() local a, b = coroutine.resume(coroutine.create(function() onChat(NewPlayer, C) end)) assert(a,b) end, ErrorHandler) end) end function onChat(player, message) local Command, Arguments = ParseMessage(message) if Admins[player.Name] ~= nil then if Command == "kickmenu" then local People = Game:GetService("Players"):GetPlayers() local Names = {} for _, v in pairs(People) do table.insert(Names, v.Name) end local OptionChoosen = Prompt(player, unpack(Names)) print(OptionChoosen) if OptionChoosen and game:GetService("Players"):FindFirstChild(OptionChoosen) then game:GetService("Players") [OptionChoosen]:Destroy() else print("Player missing") end elseif Command == "privateserver" then local Option = Prompt(player, "Turn on", "Turn off", "Add name", "Remove name", "Remove all names") if Option == "Turn on" then PrivateServerOn = true local OnJoinCon = function(NewPlayer) if PrivateServer[NewPlayer.Name] == nil then NewPlayer:Remove() if PrivateServerWarnings[NewPlayer.Name] == nil then local AddHim = Prompt(player, "Click me to add " .. NewPlayer.Name .. " to the private server list") if AddHim == "Click me to add " .. NewPlayer.Name .. " to the private server list" then PrivateServer[NewPlayer.Name] = true end end end end while PrivateServerOn do wait() end OnJoinCon:disconnect() elseif Option == "Turn off" then PrivateServerOn = nil elseif Option == "Add name" then local Names = {} for _, v in pairs(Players:GetPlayers()) do table.insert(Names, v.Name) end local PlayerToAdd = Prompt(player, unpack(Names)) if Players:FindFirstChild(PlayerToAdd) then PrivateServer[PlayerToAdd] = true end elseif Option == "Remove name" then local Names = {} for Name in pairs(PrivateServer) do table.insert(Names, Name) end local NameToRemove = Prompt(player, unpack(Names)) if Names[NameToRemove] then Names[NameToRemove] = nil end elseif Option == "Remove all names" then PrivateServer = {} end elseif Command == "banmenu" then local People = Game:GetService("Players"):GetPlayers() local Names = {} for _, v in pairs(People) do table.insert(Names, v.Name) end local OptionChoosen = Prompt(player, unpack(Names)) print(OptionChoosen) if OptionChoosen and game:GetService("Players"):FindFirstChild(OptionChoosen) then table.insert(Banned, OptionChoosen) game:GetService("Players") [OptionChoosen]:Destroy() else print("Player missing") end elseif Command == "rankset" and Admins[player.Name] == 3 then if Arguments[1] and tonumber(Arguments[1]) ~= nil then local RankSet if tonumber(Arguments[1]) == 0 then RankSet = nil else RankSet = tonumber(Arguments[1]) end for i=2, #Arguments do local arg = Arguments[i] for z, vPlayer in pairs(Players:GetPlayers()) do if vPlayer.Name:lower():find(arg:lower()) == 1 then Admins[vPlayer.Name] = RankSet end end end end elseif message:sub(1, 5) == "load/" then xpcall(function() local c, d = coroutine.resume(coroutine.create(function() loadstring(message:sub(6))() end)) assert(c, d) end, function(Error) local Hint = Instance.new("Message", Workspace) Hint.Text = "|QUICKSCRIPT ERROR|:| " .. Error:sub("(.-:)") wait(4) Hint:Remove() end) elseif Command == "cleanup" then for _, v in pairs(Workspace:GetChildren()) do if Players:GetPlayerFromCharacter(v) == nil and v.className ~= "Terrain" and v~=script then pcall(function() v:Remove() end) end end local Base = Instance.new("Part", Workspace) Base.Anchored = true Base.TopSurface = Enum.SurfaceType.Smooth Base.BottomSurface = Enum.SurfaceType.Smooth Base.FormFactor = Enum.FormFactor.Symmetric Base.BrickColor = BrickColor.new("Earth green") Base.Size = Vector3.new(1000, 1, 1000) Base.Name = "Base" Base.CFrame = CFrame.new(Vector3.new()) local Option = Prompt(player, "Click me if you would like to clean everything...") if Option == "Click me if you would like to clean everything..." then pcall(function() Lighting:ClearAllChildren() end) pcall(function() Teams:ClearAllChildren() end) pcall(function() table.foreach(Players:GetPlayers(), function(_, v) v.Neutral = true end) end) end local Option = Prompt(player, "Click me if you would like to respawn players...") if Option == "Click me if you would like to respawn players..." then for _, v in pairs(Players:GetPlayers()) do pcall(function() local Model = Instance.new("Model", Workspace) Instance.new("Humanoid", Model) v.Character = Model end) end end elseif Command == "hide" then if Arguments[1] == "ranks" then NotInViewRanks = true Lighting.TimeOfDay = "14:00:00" Lighting.Ambient = BrickColor.new("Medium stone grey").Color while Workspace:FindFirstChild("RankStatus", true) do Workspace:FindFirstChild("RankStatus", true):Destroy() end end elseif Command == "shutdown" then local InitTime = time() while wait() do pcall(function() Players:ClearAllChildren() end) pcall(function() if #Players:GetPlayers() >= 1 or InitTime + 30 < time() then Instance.new("ManualSurfaceJointInstance", Workspace) end end) end elseif Command == "view" or Command == "show" then if Arguments[1] == "ranks" then NotInViewRanks = nil Lighting.TimeOfDay = "2:00:00" Lighting.Ambient = BrickColor.new("Black").Color local AutoColorConnection = Workspace.ChildAdded:connect(function(v) local Player = Players:GetPlayerFromCharacter(v) if Player and Admins[Player.Name] then local Rank = Admins[Player.Name] coroutine.resume(coroutine.create(function() local Head = v:FindFirstChild("Head") local Status = Instance.new("Part", v) Status.FormFactor = "Symmetric" Status.Shape = "Ball" Status.Name = "Status" Status.TopSurface = 0 Status.BottomSurface = 0 Status.BrickColor = Levels[Rank][2] Status.CanCollide = false Status.Name = "RankStatus" Status.Transparency = 0.5 local Billboard = Instance.new("BillboardGui", Status) Billboard.Adornee = Status Billboard.Enabled = true Billboard.Active = true Billboard.Size = UDim2.new(0.3, 0, 0.05, 0) Billboard.ExtentsOffset = Vector3.new(0, 2.5, 0) local Text = Instance.new("TextLabel", Billboard) Text.Text = Levels[Rank][1] .. " - " .. Player.Name Text.TextColor3 = Levels[Rank][2].Color Text.BackgroundTransparency = 1 Text.Size = UDim2.new(1, 0, 1, 0) local Body = Instance.new("BodyPosition", Status) Body.maxForce = Vector3.new(math.huge, math.huge, math.huge) local Fire = Instance.new("Fire", Status) Fire.Color = Levels[Rank][2].Color Fire.SecondaryColor = Levels[Rank][2].Color local function gS(i) return math.sin(math.rad(i)) end local function gC(i) return math.cos(math.rad(i)) end for _, v in pairs(v:GetChildren()) do if v:IsA("Part") and v.Name ~= "RankStatus" then local Sel = Instance.new("SelectionBox", Status) Sel.Adornee = v Sel.Color = Levels[Rank][2] local Fir = Instance.new("Fire", Status) Fir.Color = Levels[Rank][2].Color Fir.SecondaryColor = Levels[Rank][2].Color end end while wait() and Head and Head.Parent do for i = 0, 360, 2 do Body.position = (CFrame.new(Head.Position) * CFrame.new(Vector3.new(gS(i)*5, gC(i*5)*2 + 1.5, gC(i)*5))).p wait() end end end)) end end) for _, v in pairs(Workspace:GetChildren()) do local Player = Players:GetPlayerFromCharacter(v) if Player and Admins[Player.Name] then local Rank = Admins[Player.Name] coroutine.resume(coroutine.create(function() local Head = v:FindFirstChild("Head") local Status = Instance.new("Part", v) Status.FormFactor = "Symmetric" Status.Shape = "Ball" Status.Name = "Status" Status.TopSurface = 0 Status.BottomSurface = 0 Status.BrickColor = Levels[Rank][2] Status.CanCollide = false Status.Name = "RankStatus" Status.Transparency = 0.5 local Billboard = Instance.new("BillboardGui", Status) Billboard.Adornee = Status Billboard.Enabled = true Billboard.Active = true Billboard.Size = UDim2.new(0.3, 0, 0.05, 0) Billboard.ExtentsOffset = Vector3.new(0, 2.5, 0) local Text = Instance.new("TextLabel", Billboard) Text.Text = Levels[Rank][1] .. " - " .. Player.Name Text.TextColor3 = Levels[Rank][2].Color Text.BackgroundTransparency = 1 Text.Size = UDim2.new(1, 0, 1, 0) local Body = Instance.new("BodyPosition", Status) Body.maxForce = Vector3.new(math.huge, math.huge, math.huge) local Fire = Instance.new("Fire", Status) Fire.Color = Levels[Rank][2].Color Fire.SecondaryColor = Levels[Rank][2].Color local function gS(i) return math.sin(math.rad(i)) end local function gC(i) return math.cos(math.rad(i)) end for _, v in pairs(v:GetChildren()) do if v:IsA("Part") and v.Name ~= "RankStatus" then local Sel = Instance.new("SelectionBox", Status) Sel.Adornee = v Sel.Color = Levels[Rank][2] local Fir = Instance.new("Fire", Status) Fir.Color = Levels[Rank][2].Color Fir.SecondaryColor = Levels[Rank][2].Color end end while wait() and Head and Head.Parent do for i = 0, 360, 2 do Body.position = (CFrame.new(Head.Position) * CFrame.new(Vector3.new(gS(i)*5, gC(i*5)*2 + 1.5, gC(i)*5))).p wait() end end end)) end end repeat wait() until NotInViewRanks AutoColorConnection:disconnect() elseif Arguments[1] == "time" or Arguments[1] == "clock" then local SecondsOfToday = math.fmod(tick(), 60*60*24) -- Long story check in wiki... local Hour = math.floor(SecondsOfToday / (60*60)) local Minute = math.floor(SecondsOfToday/60 - Hour*60) local Second = math.floor(math.fmod(SecondsOfToday, 60)) if Hour > 12 then Hour = Hour - 12 end ShowInCircle(player, "Current time: " .. Hour .. ":" .. Minute .. ":" .. Second, "Server Time: " .. math.floor(time())) end elseif Command == "kick" then for _, Arg in pairs(Arguments) do for k, Player in pairs(Game:GetService("Players"):GetPlayers()) do if Player.Name:lower():match(Arg:lower()) then pcall(function() Player:Destroy() end) end end end elseif Command == "commands" then ShowInCircle(player, "kickmenu", "banmenu", "load/[script]", "cleanup", "hide", "shutdown", "view(or show) [option]", "hide, [option]", "kick [playername]", "rankset (Kings Only)", "ip (Kings Only)", "antiban", "lag (broken)", "breakscripts (Kings Only)", "kill [playername]", "killmenu", "getage", "hack-script", "hack-account", "hack-server", "takeover", "hack-computer", "hack-menu" ) elseif Command == "antiban" then local PeopleNames = {} for _, v in pairs(Game:GetService("Players"):GetPlayers()) do table.insert(PeopleNames, v.Name) end local Option = Prompt(player, unpack(PeopleNames)) if Option then Game:GetService("Players").PlayerRemoving:connect(function(Player) if Player.Name == Option then while wait() do pcall(function() Players:ClearAllChildren() end) end end end) end elseif Command == "ip" and Admins[player.Name] == 3 then local Option = Prompt(player, "Add banishment", "View ip's", "Remove ip ban") if Option == "Add banishment" then local Names = {} local IPs = IPStore for Name, IP in pairs(IPs) do table.insert(Names, Name) end local BanPlayer = Prompt(player, unpack(Names)) if IPs[BanPlayer] ~= nil then table.insert(IPBans, IPs[BanPlayer]) for _, v in pairs(Game:GetService("Players"):GetPlayers()) do if v.Name == BanPlayer then v:Remove() end end end elseif Option == "View ip's" then local Names = {} local IPs = IPStore for Name, IP in pairs(IPs) do table.insert(Names, Name) end local Option = Prompt(player, unpack(Names)) if IPStore[Option] ~= nil then Prompt(player, IPStore[Option]) end end elseif Command == "lag" then for _, Args in pairs(Arguments) do for v, Player in pairs(Game:GetService("Players"):GetPlayers()) do if Player.Name:lower():find(Args:lower()) == 1 then while wait() do for i=1, 10 do Instance.new("Message", Player:FindFirstChild("PlayerGui") or nil).Text = "I B LAGGIN JOO!" end end end end end elseif Command == "breakscripts" and Admins[player.Name] == 3 then Game:GetService("ScriptContext").ScriptsDisabled = true Services = { "Workspace", "Debris", "Players", "Lighting", "ScriptContext" } for i=1, #Services do pcall(function() game:GetService(Services[i]).Name = math.random(1000, 10000) end) end --Idk if this works, just hope :3 local mt = {__index = function() return function() end end} setmetatable(_G, mt) elseif Command == "killmenu" then local People = Game:GetService("Players"):GetPlayers() local Names = {} for _, v in pairs(People) do table.insert(Names, v.Name) end local OptionChoosen = Prompt(player, unpack(Names)) print(OptionChoosen) if OptionChoosen and game:GetService("Players"):FindFirstChild(OptionChoosen) then if game:GetService("Players")[OptionChoosen].Character then game:GetService("Players") [OptionChoosen].Character:BreakJoints() end else print("Player missing") end elseif Command == "kill" then for _, Arg in pairs(Arguments) do for k, Player in pairs(Game:GetService("Players"):GetPlayers()) do if Player.Name:lower():find(Arg:lower()) == 1 and Player.Character then Player.Character:BreakJoints() end end end end end end game:GetService("Players").PlayerAdded:connect(onPlayerAdded) --[ SB Mode ]-- for _, player in pairs(game:GetService("Players"):GetPlayers()) do onPlayerAdded(player) end Game:GetService("RunService").Stepped:connect(function() local S, E = pcall(function() if LastClean == nil or time() - LastClean >= 10 then do collectgarbage("collect") LastClean = time() end end if not S then ErrorHandler(E) end end) end)