function onPlayerEntered(newPlayer) local stats = Instance.new("IntValue") stats.Name = "leaderstats" local kills = Instance.new("IntValue") kills.Name = "KOs"e kills.Value = 0 local deaths = Instance.new("IntValue") deaths.Name = "Wipeouts" deaths.Value = 0 kills.Parent = stats deaths.Parent = stats while true do if newPlayer.Character ~= nil then break end wait(5) end local humanoid = newPlayer.Character.Humanoid humanoid.Died:connect(function() onHumanoidDied(humanoid, newPlayer) end ) newPlayer.Changed:connect(function(property) onPlayerRespawn(property, newPlayer) end ) stats.Parent = newPlayer end function Send_DB_Event_Died(victim, killer) local killername = "no one" if killer ~= nil then killername = killer.Name end if shared["deaths"] ~= nil then shared["deaths"](victim, killer) end end function Send_DB_Event_Kill(killer, victim) if shared["kills"] ~= nil then shared["kills"](killer, victim) end end function onHumanoidDied(humanoid, player) local stats = player:findFirstChild("leaderstats") if stats ~= nil then local deaths = stats:findFirstChild("Wipeouts") deaths.Value = deaths.Value + 1 local killer = getKillerOfHumanoidIfStillInGame(humanoid) Send_DB_Event_Died(player, killer) handleKillCount(humanoid, player) end end function onPlayerRespawn(property, player) if property == "Character" and player.Character ~= nil then local humanoid = player.Character.Humanoid local p = player local h = humanoid humanoid.Died:connect(function() onHumanoidDied(h, p) end ) end end function getKillerOfHumanoidIfStillInGame(humanoid) local tag = humanoid:findFirstChild("creator") if tag ~= nil then local killer = tag.Value if killer.Parent ~= nil then return killer end end return nil end function handleKillCount(humanoid, player) local killer = getKillerOfHumanoidIfStillInGame(humanoid) if killer ~= nil then local stats = killer:findFirstChild("leaderstats") if stats ~= nil then local kills = stats:findFirstChild("KOs") if killer ~= player then kills.Value = kills.Value + 1 else kills.Value = kills.Value - 1 end Send_DB_Event_Kill(killer, player) end end end game.Players.ChildAdded:connect(onPlayerEntered)
That is the part of the script that gets the Ko's and Wo's
game.Players.PlayerAdded:connect(function(P) repeat wait() until P:findFirstChild("leaderstats") local Rank = Instance.new("StringValue", P.leaderstats) Rank.Name = "Rank" Rank.Value = P:GetRoleInGroup(2728504) end)
This part gets the Rank from the group, due to the group system people not inside the group will appear as "Guest", I need to know if it's possible to change this and if so how. On top of that, I'm trying to add a new section to the leaderboard called "Regiment". It would need to display "7th Regiment" if inside a main group but not sub one and if in the sub one also it would display "1st Regiment". If you don't understand what I mean please comment.
game.Players.PlayerAdded:Connect(function(P) local Rank, Reg = Instance.new("StringValue"), Instance.new("StringValue") Rank.Name = "Rank" local Role = P:GetRoleInGroup(2728504) Rank.Value = Role == "Guest" and "GuestNameReplacement" or Role -- Change "GuestNameReplacement" only. Rank.Parent = P:WaitForChild("leaderstats") Reg.Name = "Regiment" Reg.Value = P:IsInGroup(subGroupId) and "1st Regiment" or "7th Regiment" -- Change subGroupId (to a GroupId/number) only. Reg.Parent = P.leaderstats end)
Notes:
It is recommended to edit the properties before you set the Parent, it is more efficient. Ternary operators were used in this script. (They're not needed.) WaitForChild is more efficient than the method you provided.