need help with Team score Custom Multiplayer HUD (VERSE)

Hey, I have bugs when people play on my map, the score doesn’t count the kills of some players. I’ve tried to fix it, but I can’t get it to work. sometimes it counts the kill sometimes not it’s random when it should count all the kills for each team.

verse code :

using { /Fortnite.com/Characters }
using { /Fortnite.com/Game }
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }

Gamos2 := class(creative_device):
var PlayersMap:[player]CustomPPP = map{}

var Team1Score:int = 0
var Team2Score:int = 0

@editable
PlayerSpawner21:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner22:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner23:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner24:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner25:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner26:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner27:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner28:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner29:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner30:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner31:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner32:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner33:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner34:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner35:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner36:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner37:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner38:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner39:player_spawner_device = player_spawner_device{}

@editable
PlayerSpawner40:player_spawner_device = player_spawner_device{}

@editable
SM:score_manager_device = score_manager_device{}

OnBegin<override>()<suspends>:void=
    PlayerSpawner21.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner22.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner23.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner24.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner25.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner26.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner27.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner28.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner29.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner30.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner31.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner32.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner33.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner34.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner35.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner36.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner37.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner38.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner39.SpawnedEvent.Subscribe(OnPlayerSpawned)
    PlayerSpawner40.SpawnedEvent.Subscribe(OnPlayerSpawned)

    GetPlayspace().PlayerRemovedEvent().Subscribe(OnPlayerRemoved)


UpdateScore():void=
    
    for(Player : PlayersMap):
        Team:int = Player.GetTeam()
        if(Team = 1):
            set Team1Score = SM.GetCurrentScore(Player.MyAgentObj)
        else:
            set Team2Score = SM.GetCurrentScore(Player.MyAgentObj)

        Player.UpdateScore(Team1Score, Team2Score)

OnPlayerSpawned(Agent:agent):void=
    if:
        PlayerObj := player[Agent]
    then:
        if(PlayerExists := PlayersMap[PlayerObj]):
            #do nothing, player already exists
        else:
            if(FC:fort_character = Agent.GetFortCharacter[]):
                FC.EliminatedEvent().Subscribe(OnPlayerEliminated)
            NewCustomPlayer:CustomPPP = CustomPPP{MyAgentObj := Agent}
            if(set PlayersMap[PlayerObj] = NewCustomPlayer):
                NewCustomPlayer.InitPlayer()
                
                TeamCollection:=GetPlayspace().GetTeamCollection()
                
                if(PlayerTeam := TeamCollection.GetTeam[Agent]):
                    TeamsArray:=TeamCollection.GetTeams()
                    for(TeamNumber->Team : TeamsArray):
                        if(PlayerTeam = Team):
                            NewCustomPlayer.SetTeam(TeamNumber)

        UpdateScore()


OnPlayerRemoved(Player:player):void=
    if(RemoveCustomPPP:CustomPPP = PlayersMap[Player]):
        #remove the player from the players
        var TempAllPlayersMap:[player]CustomPPP = map{}
        for (Key -> Value : PlayersMap, Key <> Player):
            set TempAllPlayersMap = ConcatenateMaps(TempAllPlayersMap, map{Key => Value})
        set PlayersMap = TempAllPlayersMap


OnPlayerEliminated(ElimResult:elimination_result):void=
    Print("player was eliminated")
    EliminatedFC:fort_character = ElimResult.EliminatedCharacter
    if(FortCharacter := ElimResult.EliminatingCharacter?):
        if(FortCharacter = EliminatedFC):
            #this is a self elim
            
        else:
            if(EliminatingAgent := FortCharacter.GetAgent[], EliminatingPlayer:=player[EliminatingAgent]):
                if(EliminatingCustomPlayer:CustomPPP = PlayersMap[EliminatingPlayer]):
                    SM.Activate(EliminatingAgent)
                    
                    
    if(EliminatedAgent:agent = EliminatedFC.GetAgent[], Player:player = player[EliminatedAgent]):
        if(EliminatedCustomPlayer:CustomPPP = PlayersMap[Player]):
            

    UpdateScore()
1 Like