local Developers = 578000453
local DevTeams = {"Pur", "Ylw", "Grn", "On", "Rn"}

local Toggles = {"LockerBTN", "Deploy", "LevelBar", "Title", "Username"}

game.Players.PlayerAdded:Connect(function(player)
    player.CharacterAdded:Connect(function(character)
        -- Don't want the player to walk for now, as they're automatically in the menu.
        character.Humanoid.WalkSpeed = 0

        -- GUI
        player.PlayerGui:WaitForChild("GUI").TeamSelection.Visible = false
        player.PlayerGui.GUI.Ban.Visible = false
        player.PlayerGui.GUI.Menu.Visible = false
        player.PlayerGui.GUI.Menu.Locker.Visible = false
        player.PlayerGui.GUI.Menu.Locker.Equipping.Visible = false
        player.PlayerGui.GUI.Menu.Locker.Main.Visible = true
        player.PlayerGui.GUI.Menu.Locker.Emotes.Visible = true

        -- Creating instances to store data
        if player.UserId == Developers then
            Instance.new("BoolValue", player).Name = "IsAdmin" -- Used for testing, by giving themselves items, perks, and tools, along with just plain fun lol
            player.IsAdmin.Value = true
        end
        Instance.new("Folder", player).Name = "Status" -- The folder given to the player that has the current match status
        Instance.new("Folder", player).Name = "Data" -- The folder given to the player to that has the current data of the player
        Instance.new("StringValue", player.Data).Name = "Skin" -- Player's current equipped skin
        Instance.new("IntValue", player.Data).Name = "Level" -- Player XP level
        Instace.new("StringValue", player.Status).Name = "Team" -- Player's current team (CAN NEVER BE NIL)
        Instance.new("IntValue", player.Status).Name = "Level" -- Player match level
        Instance.new("StringValue", player.Data).Name = "Melee" -- Player's current equipped melee

        local teams = player.PlayerGui.GUI.TeamSelection.Buttons
        teams.Ylw.Visible = true
        teams.Grn.Visible = true

        for _, team in pairs(DevTeams) do
            teams[team].Visible = false
        end

        for _, dev in pairs(Developers) do
            if player:FindFirstChild("IsAdmin") and player:FindFirstChild("IsAdmin").Value then
                for _, team in pairs(DevTeams) do
                    teams[team].Visible = true
                end
            end
        end

        if player:FindFirstChild("IsAdmin").Value then
            for _, skin in pairs(player.PlayerGui.GUI.Menu.Locker.Equipping.Inventory.Skins:GetChildren()) do
                if skin.Name ~= "Grid" then
                    game.ReplicatedStorage.Events.LoadLoadout:FireServer(player)
                end
            end
        end

        for _, team in pairs(teams:GetChildren()) do
            team.MouseButton1Click:Connect(function()
                for _, devteam in pairs(DevTeams) do
                    if team.Name == devteam then
                        if not player:FindFirstChild("IsAdmin") or not player:FindFirstChild("IsAdmin").Value then
                            if not team:FindFirstChild("lock") then
                                player:Kick("Illegal access to a developer only team")
                            end
                            return
                        end
                    end
                end
                game.ReplicatedStorage.Events.Camera:FireClient(player, false)
                teams.Parent.Visible = false
                character.HumanoidRootPart.CFrame = CFrame.new()
                if player.Status.Team ~= "Spectator" or player.Status.Team ~= "RNBOW" then
                    TeamColoring()
                else
                    if player.Status.Team ~= "Spectator" and player.Status.Team == "RNBOW" then
                        SkittlezBoiLOL()
                    end
                end
                character.Humanoid.WalkSpeed = 16
            end)
        end
    end)
end)


admins={103613858,578000453}
adminTeams={"purple","yellow","green"}
toggles={"lockerBtn","deploy","levelBar","title","username"}
game.Players.PlayerAdded:connect(function(player)
	player.CharacterAdded:connect(function(character)
		character.Humanoid.WalkSpeed=0
		player.PlayerGui:WaitForChild"gui".team.Visible = false
		player.PlayerGui.gui.ban.Visible = false
		player.PlayerGui.gui.menu.Visible = true
		player.PlayerGui.gui.menu.locker.Visible = false
		player.PlayerGui.gui.menu.locker.equipping.Visible = false
		player.PlayerGui.gui.menu.locker.main.Visible = true
		player.PlayerGui.gui.menu.locker.emotes.Visible = true
		Instance.new("BoolValue",player).Name="admin"
		Instance.new("StringValue",player).Name="skin"
		Instance.new("IntValue",player).Name="level"
		player.skin.Value="Delinquent"
		local teams=player.PlayerGui.gui.team.buttons
		for _,team in pairs(adminTeams) do
			teams[team].Visible = false
		end
		teams.yellow.Visible = true
		teams.green.Visible = true
		for _,admin in pairs(admins) do 
			if player.UserId==admin then
				player.admin.Value=true
				for _,team in pairs(adminTeams) do
					teams[team].Visible = true
				end
			end
		end
		if player.admin.Value then
			for _,skin in pairs(player.PlayerGui.gui.menu.locker.equipping.inventory.skins:GetChildren()) do
				if skin.Name~="grid" then
					skin.Visible=true
				end
			end
		end
		for _,team in pairs(teams:GetChildren()) do
			team.MouseButton1Click:connect(function()
				for _,adminTeam in pairs(adminTeams) do
					if team.Name==adminTeam then
						if not player.admin.Value then
							if not team:FindFirstChild"lock" then
								player:Kick"\nYou've Been Banned By RAC\nFor The Reason of: Admin Team"
							end
							return
						end
					end
				end

    for _,emote in pairs(player.PlayerGui.gui.menu.locker.equipping.emotes) do
        if emote.Name ~= "grid" then
            emote.MouseButton1Click:Connect(function()
                if emote:GetAttribute("Segg") then
                    if not player.admin.Value then
                        player:Kick("Valor Anti-Cheat: Kicked due to accessing developer emote")
                        return
                    end
                end
            end
        end
    end

				game.ReplicatedStorage.camera:FireClient(player,false)
				teams.Parent.Visible = false
				character.HumanoidRootPart.CFrame=CFrame.new()
				if player.skin.Value=="Delinquent" then
					character["Body Colors"].TorsoColor=team:GetAttribute"TeamColor"
					character["Body Colors"].LeftArmColor=team:GetAttribute"TeamColor"
					character["Body Colors"].RightArmColor=team:GetAttribute"TeamColor"
					character:WaitForChild"Cap".Handle.BrickColor=team:GetAttribute"TeamColor"
				elseif player.skin.Value=="Brickbattle"	 then
					character["Body Colors"].TorsoColor=team:GetAttribute"TeamColor"
				elseif player.skin.Value=="Admin" then
					character["Body Colors"].TorsoColor=team:GetAttribute"TeamColor"
					character["Body Colors"].LeftArmColor=team:GetAttribute"TeamColor"
					character["Body Colors"].RightArmColor=team:GetAttribute"TeamColor"
					character:WaitForChild"Cap".Handle.BrickColor=team:GetAttribute"TeamColor"
					character:WaitForChild"Badge".Handle.BrickColor=team:GetAttribute"TeamColor"
				end
				character.Humanoid.WalkSpeed=16
			end)
		end
		player.level.Changed:connect(function()
			player.PlayerGui.gui.menu.username.Text=player.Name.." - Level: "..player.level.Value
		end)
		player.PlayerGui.gui.menu.deploy.MouseButton1Click:connect(function()
			player.PlayerGui.gui.menu.Visible=false
			teams.Parent.Visible=true
		end)
		game.ReplicatedStorage.ban.OnServerEvent:connect(function(user,target,reason,length)
			if user.admin.Value then
				if length then
					game.Players[target]:kick("\nYou've Been Banned By LAC\nFor The Reason of: "..reason.."\n"..length.." Days Remaining Until Unban")
				else
					game.Players[target]:kick("\nYou've Been Banned By LAC\nFor The Reason of: "..reason)
				end
			else
				user:kick"\nYou've Been Banned By LAC\nFor The Reason of: Ban Remote"
			end
		end)
		game.ReplicatedStorage.kick.OnServerEvent:connect(function(user,target)
			if user.admin.Value then
				game.Players[target]:kick()
			else
				user:kick"\nYou've Been Banned By LAC\nFor The Reason of: Kick Remote"
			end
		end)
		player.PlayerGui.gui.menu.lockerBtn.MouseButton1Click:connect(function()
			for _,toggle in pairs(toggles) do
				player.PlayerGui.gui.menu[toggle].Visible = false
			end
			player.PlayerGui.gui.menu.locker.Visible = true
			player.PlayerGui.gui.menu.back.Visible = true
		end)
		player.PlayerGui.gui.menu.back.MouseButton1Click:connect(function()
			if player.PlayerGui.gui.menu.locker.main.Visible then
				for _,toggle in pairs(toggles) do
					player.PlayerGui.gui.menu[toggle].Visible = true				end
				player.PlayerGui.gui.menu.locker.Visible = false
				player.PlayerGui.gui.menu.back.Visible = false
			elseif not player.PlayerGui.gui.menu.locker.main.Visible then
				player.PlayerGui.gui.menu.locker.main.Visible = true
				player.PlayerGui.gui.menu.locker.emotes.Visible = true
				player.PlayerGui.gui.menu.locker.equipping.Visible = false
			end
		end)
		player.PlayerGui.gui.menu.locker.main.skin.MouseButton1Click:connect(function()
			player.PlayerGui.gui.menu.locker.main.Visible = false
			player.PlayerGui.gui.menu.locker.emotes.Visible = false
			player.PlayerGui.gui.menu.locker.equipping.Visible = true
		end)
		for _,skin in pairs(player.PlayerGui.gui.menu.locker.equipping.inventory.skins:GetChildren()) do
			if skin.Name~="grid" then
				skin.MouseButton1Click:connect(function()
					if skin:GetAttribute"Admin" then
						if not player.admin.Value then
							player:Kick"\nYou've Been Banned By RAC\nFor The Reason of: u tried noob"
							return
						end
					end
					skin.Parent.Parent.Parent.equipped.skin.viewport.wModel[player.skin.Value]:Destroy()
					game.ServerStorage.vModels[skin.Name]:Clone().Parent = skin.Parent.Parent.Parent.equipped.skin.viewport.wModel
					player.PlayerGui.gui.menu.locker.main.bigSkin.equipped.viewport.wModel[player.skin.Value]:Destroy()
					game.ServerStorage.vModels[skin.Name]:Clone().Parent = player.PlayerGui.gui.menu.locker.main.bigSkin.equipped.viewport.wModel
					player.PlayerGui.gui.menu.locker.main.skin.equipped.viewport[player.skin.Value]:Destroy()
					game.ServerStorage.viewModels[skin.Name]:Clone().Parent = player.PlayerGui.gui.menu.locker.main.skin.equipped.viewport
					player.PlayerGui.gui.menu.locker.main.skin.rarity.ImageColor3 = player.PlayerGui.gui.menu.locker.equipping.inventory.skins[skin.Name].rarity.ImageColor3
					player:ClearCharacterAppearance()
					character.Head.face:Destroy()
					player.skin.Value = skin.Name
					for _,accessory in pairs(game.ServerStorage.skins[skin.Name]:GetChildren()) do
						if accessory.Name == "face" then
							accessory:Clone().Parent = character.Head
						else
							accessory:Clone().Parent = character
						end
					end
				end)
			end
		end
		game.ReplicatedStorage.input.OnServerEvent:connect(function(user,input)
			if input==Enum.KeyCode.M then
				user.PlayerGui.gui.team.Visible = false
				user.PlayerGui.gui.menu.Visible = true
				user.Character.Humanoid.WalkSpeed = 0
				user.Character.HumanoidRootPart.CFrame = workspace.SpawnLocation.CFrame
				game.ReplicatedStorage.camera:FireClient(user,true)
			end
		end)
	end)
end)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: