Alright so the owner of a group I develop for recently had his membership changed in ROBLOX Premium, and basically when he joins the game our custom leaderboard breaks and shows all of the teams plus puts him on the Security Department Team as seen here:
Any user that joins after him has the same problem:
I know this has something to do with ROBLOX Premium because the custom leaderboard script is not supposed to show your membership level, however for him it does.
Some fixes I have tried:
-Adding Enum.MembershipType.Premium to the script that loads the custom leaderboard
-Setting the membership image to nothing
The Script:
game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false) local ScrollList = script.Parent:WaitForChild("Container"):WaitForChild("ScrollList") local State = false local Rank = game.Players.LocalPlayer:GetRankInGroup(3563533) local GetMembershipIcon = function(Type) if Type == Enum.MembershipType.None then return "" elseif Type == Enum.MembershipType.BuildersClub then return "" elseif Type == Enum.MembershipType.TurboBuildersClub then return "" elseif Type == Enum.MembershipType.OutrageousBuildersClub then return "" elseif Type == Enum.MembershipType.Premium then return "" end end local function CreatePlayerFrame(Player) local PlayerFrame = script.Player:Clone() PlayerFrame.Name = Player.Name if (Player.Team.Name == "Intelligence Agency" or Player.Team.Name == "Internal Security Department" or Player.Team.Name == "Tactical Response Squadron") and Rank < 70 and game.Players.LocalPlayer.Team.Name ~= Player.Team.Name then PlayerFrame.PlayerName.Text, PlayerFrame.PlayerName.Back.Text = "[ REDACTED ]", "[ REDACTED ]" else PlayerFrame.PlayerName.Text, PlayerFrame.PlayerName.Back.Text = Player.Name, Player.name end PlayerFrame.Parent = ScrollList PlayerFrame.LayoutOrder = ScrollList[Player.Team.Name].LayoutOrder + 1 PlayerFrame.MembershipIcon.Image = "" for i, v in pairs(ScrollList:GetChildren()) do if v:IsA("Frame") and v.LayoutOrder >= PlayerFrame.LayoutOrder and v.Name ~= PlayerFrame.Name then v.LayoutOrder = v.LayoutOrder + 1 end end end local function RemovePlayerFrame(Player) local PlayerFrame = ScrollList[Player.Name] for i, v in pairs(ScrollList:GetChildren()) do if v:IsA("Frame") and v.LayoutOrder >= PlayerFrame.LayoutOrder and v.Name ~= PlayerFrame.Name then v.LayoutOrder = v.LayoutOrder - 1 end end PlayerFrame:Destroy() end local function ChangeTeam(Player) local PlayerFrame = ScrollList[Player.Name] if Player.Team.Name == "Intelligence Agency" or Player.Team.Name == "Internal Security Department" or Player.Team.Name == "Tactical Response Squadron" or Player.Team.Name == "SOC" or Player.Team.Name == "REDACTED" then PlayerFrame.PlayerName.Text, PlayerFrame.PlayerName.Back.Text = "[ REDACTED ]", "[ REDACTED ]" else PlayerFrame.PlayerName.Text, PlayerFrame.PlayerName.Back.Text = Player.Name, Player.name end for i, v in pairs(ScrollList:GetChildren()) do if v:IsA("Frame") and v.LayoutOrder >= PlayerFrame.LayoutOrder and v.Name ~= PlayerFrame.Name then v.LayoutOrder = v.LayoutOrder - 1 end end PlayerFrame.LayoutOrder = ScrollList[Player.Team.Name].LayoutOrder + 1 for i, v in pairs(ScrollList:GetChildren()) do if v:IsA("Frame") and v.LayoutOrder >= PlayerFrame.LayoutOrder and v.Name ~= PlayerFrame.Name then v.LayoutOrder = v.LayoutOrder + 1 end end end for _, Team in pairs(game.Teams:GetChildren()) do if Team then local TeamFrame = script.Team:Clone() TeamFrame.Name = Team.Name TeamFrame.TeamName.Text, TeamFrame.TeamName.Back.Text = Team.Name, Team.name TeamFrame.Background.ImageColor3 = Team.TeamColor.Color TeamFrame.Parent = ScrollList TeamFrame.LayoutOrder = #ScrollList:GetChildren() - 1 + 1 end end for _, Player in pairs(game.Players:GetChildren()) do CreatePlayerFrame(Player) end game.Players.PlayerAdded:connect(function(Player) CreatePlayerFrame(Player) end) game.Players.PlayerRemoving:connect(function(Player) RemovePlayerFrame(Player) end) game:GetService("UserInputService").InputBegan:connect(function(IO, GP) if GP == false and IO.KeyCode == Enum.KeyCode.Tab then ScrollList.Parent:TweenPosition(State and UDim2.new(1, -175, 0, 5) or UDim2.new(1, 0, 0, 5), "Out", "Quad", 0.5, true) State = not State end end) local function GetVisibleFrames() local n = 0 for i, v in pairs(ScrollList:GetChildren()) do if v:IsA("Frame") and v.Visible == true then n = n + 1 end end return n end if Rank < 10 and workspace:FindFirstChild("CDCLeave") then workspace:FindFirstChild("CDCLeave"):Destroy() end while wait(1) do ScrollList.CanvasSize = UDim2.new(0, 0, 0, GetVisibleFrames() * 26 + 26 + 26 + 26) for i, v in pairs(game.Players:GetChildren()) do if v:GetPropertyChangedSignal("Team") then ChangeTeam(v) end end for i, v in pairs(game.Teams:GetChildren()) do if #v:GetPlayers() == 0 then ScrollList[v.Name].Visible = false else ScrollList[v.Name].Visible = true end end end
Any ideas on whats wrong in the script?