Page MenuHomeFeedback Tracker

Player name tag script data does not properly reflect group
Awaiting internal Testing, NormalPublic

Description

Please provide the following when creating the Ticket:

Game Version number: 1.3.0.144
Modded?: No, but yes. I needed to reproduce using PeerTool so technically yes :(
If modded, please list the mods:

Issue Description:

The first user to join a faction in a match will not have proper group assignment associated with their name tag. This will result in the user not properly seeing name tags in their group with the appropriate text effects.

Details

Severity
None
Resolution
Open
Reproducibility
Always
Operating System
Windows 11 x64
Category
General
Steps To Reproduce

The following video demonstrates things: https://youtu.be/k0jXWP4N6Ko

  1. Create a match in a game mode with groups enabled -- e.g. Conflict
  2. Have another player join the match on the same faction and same group
  3. From the main instance observe the group member's name tag display with white text. For group members, it should be green.
Additional Information

This issue is caused by the current player's SCR_NameTagData::m_iGroupID not being properly initialized.

  1. With Reforger tools, launch CTI_Campaign_Eden with local server + PeerTool
  2. Set a breakpoint in SCR_NameTagData::SetGroup() and SCR_NameTagData::UpdateEntityStateFlags()
  3. Perform the steps in the repro steps.

You will notice a couple of things once these breakpoints are hit:

  1. The breakpoint in UpdateEntityStateFlags will be hit first. This function calls GetPlayerGroup(), which returns null because the faction manager returns a null group for the provided player ID. However, this is after the player has already chosen a faction and group, but before they're spawned in. So at this point there should be a group in existence for this player.
  2. The breakpoint hit in SCR_NameTagData::SetGroup() will show that the group is null. Press continue in the debugger and wait for the other player to join.
  3. Once the other player joins, look at them. This will cause the name tag for that player to update, which we can see still shows that the m_NTDisplay.m_CurrentPlayerTag.m_iGroupID is still -1. However, the breakpoint for SCR_NameTagData::SetGroup() when hit will have a valid group, which shows that there are two players (including self) in the other player's group.

I believe that the root cause of this issue might be a race condition causing the lookup for the player's faction in the call from UpdateEntityStateFlags -> GetPlayerGroup -> GetPlayerFaction to fail to find the player's faction. I do not know, however, why this occurs.

Event Timeline

lander created this task.Fri, Apr 11, 5:52 AM
lander renamed this task from Player name tag data does not properly reflect group to Player name tag script data does not properly reflect group.Fri, Apr 11, 5:57 AM
Geez changed the task status from New to Awaiting internal Testing.Fri, Apr 11, 2:38 PM