Brackeys Multiplayer Fps: Scoreboard username not syncing on clients

I am following Brackey’s multiplayer fps series that uses Unet. I came across an error when I reached the 28th tutorial(“Scoreboard”). When the host opens the scoreboard panel, all the information are correct. But when the client opens the scoreboard panel, the username is incorrect.
PlayerSetup script:
Code (CSharp):

[SerializeField]
private Behaviour ComponentsToDisable;

[SerializeField]
private string remoteLayer = "RemotePlayer";

[SerializeField]
private string DontDrawLayerName = "DontDraw";

[SerializeField]
GameObject playerGraphics;

[SerializeField]
GameObject PlayerUIPrefab;

private GameObject PlayerUIInstance;
void Start()
{
 
    if (!isLocalPlayer)
    {
        AssignRemote();
        DisableComponents();
    }
    else
    {
       
        SetLayerRecursively(playerGraphics, LayerMask.NameToLayer(DontDrawLayerName));

        PlayerUIInstance = Instantiate(PlayerUIPrefab);
        PlayerUIInstance.name = PlayerUIPrefab.name;
        GetComponent<Player1>().PlayerSetUp();

        string _username = "Loading...";
        if (UserAccountManager.IsLoggedIn)
        {
            _username = UserAccountManager.LoggedIn_Username;
        }
        else
        {
            _username = transform.name;
        }
        CmdSetUsername(transform.name, _username);

    }
}


[Command]
void CmdSetUsername(string playerID, string username)
{
    Player1 player = GameManager.GetPlayer(playerID);
    if (player != null)
    {
        Debug.Log(username + " has joined!");
        player.username = username;
    }
}
public override void OnStartClient()
{
    base.OnStartClient();

    string _netId = GetComponent<NetworkIdentity>().netId.ToString();
    Player1 _player = gameObject.GetComponent<Player1>();

    GameManager.RegisterPlayer(_netId,_player);
}


void DisableComponents()
{
    for (int i = 0; i < ComponentsToDisable.Length; i++)
    {
        ComponentsToDisable*.enabled = false;*

}
}
void AssignRemote()
{
gameObject.layer = LayerMask.NameToLayer(remoteLayer);
}
void SetLayerRecursively(GameObject Object, int newLayer)
{
Object.layer = newLayer;
foreach(Transform child in Object.transform)
{
SetLayerRecursively(child.gameObject, newLayer);
}
}
void OnDisable()
{
Destroy(PlayerUIInstance);

GameManager.UnRegister(transform.name);

if (isLocalPlayer)
{
GameManager.instance.SetDefaultCameraActiveState(true);
}
}
PlayerScript(I named it to Player1 for testing…):
Code (CSharp):
[SerializeField]
private GameObject DeathEffect;
[SyncVar]
private bool _isDead = false;
public bool isDead
{

get
{
return _isDead;
}
protected set { _isDead = value; }
}

[SerializeField]
private int maxHealth = 100;

[SyncVar]
private int currentHealth;

[SerializeField]
private Behaviour[] disableOnDeath;

private bool[] wasEnabled;

[SerializeField]
private GameObject[] DisableGameObjectsOnDeath;

[SerializeField]
private GameObject SpawnEffect;

[SerializeField]
private Transform RespawnEffectPos;

public int kills;
public int deaths;

[SyncVar]
public string username = “Loading…”;

public void PlayerSetUp()
{

GameManager.instance.SetDefaultCameraActiveState(false);

CmdBroadcastNewPlayerSetup();
}
[Command]
private void CmdBroadcastNewPlayerSetup()
{
RpcSetUpPlayerOnAllClients();
}
[ClientRpc]
private void RpcSetUpPlayerOnAllClients()
{
wasEnabled = new bool[disableOnDeath.Length];
for (int i = 0; i < wasEnabled.Length; i++)
{
wasEnabled = disableOnDeath*.enabled;*
}

SetDefaults();
}
[ClientRpc]
public void RpcTakeDamage(int damage, string _sourceID)
{
if (isDead)
{
return;
}
Debug.Log(“player has " + currentHealth + " health left”);
currentHealth -= damage;
if (currentHealth <= 0)
{

isDead = true;
Die(_sourceID);
}
}

private void Die(string _sourceID)
{

isDead = true;
Player1 _sourcePlayer = GameManager.GetPlayer(_sourceID);
if(_sourcePlayer != null)
{
_sourcePlayer.kills++;
}

deaths++;

for (int i = 0; i < disableOnDeath.Length; i++)
{
disableOnDeath*.enabled = false;*
}
for (int i = 0; i < DisableGameObjectsOnDeath.Length; i++)
{
DisableGameObjectsOnDeath*.SetActive(false);*
}
Collider col = GetComponent();
if (col != null)
{
col.enabled = false;
}
GameObject go = Instantiate(DeathEffect, transform.position, Quaternion.identity);

Destroy(go, 3.3f);

if (isLocalPlayer)
{
GameManager.instance.SetDefaultCameraActiveState(true);

}

StartCoroutine(Respawn());

}

public IEnumerator Respawn()
{

yield return new WaitForSeconds(GameManager.instance.Matchsettings.RespawnDelay);

isDead = false;
currentHealth = maxHealth;

Transform startPoint = NetworkManager.singleton.GetStartPosition();
transform.position = startPoint.position;
transform.rotation = new Quaternion(0, 0, 0, 0);

GameManager.instance.SetDefaultCameraActiveState(false);
SetDefaults();

}
void SetDefaults()
{
currentHealth = maxHealth;

for (int i = 0; i < DisableGameObjectsOnDeath.Length; i++)
{
DisableGameObjectsOnDeath*.SetActive(true);*
}

isDead = false;

for (int i = 0; i < disableOnDeath.Length; i++)
{
disableOnDeath_.enabled = wasEnabled*;
}
Collider col = GetComponent();
if (col != null)
{
col.enabled = true;
}*_

GameObject go = (GameObject)Instantiate(SpawnEffect, RespawnEffectPos.position, SpawnEffect.transform.rotation);

SpawnEffect.GetComponent().Play();
Destroy(go, 3.3f);
}
public override void OnDeserialize(NetworkReader reader, bool initialState)
{
base.OnDeserialize(reader, initialState);
}
Scoreboard script:
Code (CSharp):
[SerializeField]
GameObject PlayerScoreboardPrefab;

[SerializeField]
Transform PlayerScoreboardList;
void OnEnable()
{
Player1[] players = GameManager.GetPlayers();
foreach(Player1 player in players)
{
GameObject go = Instantiate(PlayerScoreboardPrefab);
go.transform.SetParent(PlayerScoreboardList);
PlayerScoreboardItem item = go.GetComponent();

if(item != null)
{
item.Setup(player.username, player.kills, player.deaths);
}
}

}

void OnDisable()
{
foreach (Transform child in PlayerScoreboardList)
{
Destroy(child.gameObject);
}
}
Scoreboard item:
Code (CSharp):
[SerializeField]
Text usernameText;

[SerializeField]
Text killsText;

[SerializeField]
Text deathsText;

public void Setup(string username, int kills, int deaths)
{
usernameText.text = username;
killsText.text = kills.ToString();
deathsText.text = deaths.ToString();
}
Many thanks in advance! Also, I think there is a networking problem with my editor, but forget it…!

I think there is a problem with the syncvars…