Lets keep it simple, the host is not getting new values, this also happens with syncLists any thoughts? Code (CSharp): void Start() { if(isLocalPlayer) { health = UnityEngine.Random.Range(10, 39); } else { //other stuff } UpdateHealthUI(); } [SyncVar(hook="OnHealthChange")] public int health; public void OnHealthChange(int _health) { health = _health; UpdateHealthUI(); } Im doing a quite simple matchmaking just for testing, could this be the error? Code (CSharp): public IEnumerator LoadMatchMaker() { int trys = 1; while (trys < 4) { manager.matchMaker.ListMatches(0, 2000, "", manager.OnMatchList); yield return new WaitForSeconds(1f); trys++; if (manager.matches != null) { if (manager.matches.Count > 0) { foreach (var match in manager.matches) { manager.matchName = match.name; manager.matchSize = (uint)match.currentSize; manager.matchMaker.JoinMatch(match.networkId, "", manager.OnMatchJoined); Debugger.Manager.Log("Connected to CREATED MATCH: " + match.name); trys = 99; yield break; } } } } manager.matchMaker.CreateMatch(manager.matchName, manager.matchSize, true, "", manager.OnMatchCreate); Debugger.Manager.Log("Connected to NEW MATCH: " + name); // this debuggers are a custom ui debug yield return null; }