diff --git a/Assets/Mirror/Core/NetworkBehaviour.cs b/Assets/Mirror/Core/NetworkBehaviour.cs index affca80707e..7ed8876a51d 100644 --- a/Assets/Mirror/Core/NetworkBehaviour.cs +++ b/Assets/Mirror/Core/NetworkBehaviour.cs @@ -84,10 +84,14 @@ public abstract class NetworkBehaviour : MonoBehaviour // // also note that this is a per-NetworkBehaviour flag. // another component may not be client authoritative, etc. + // + // checking isServer firstly in case we are in host mode + // otherwise checking isClient && isOwned + // otherwise no authority + // fixes: https://github.com/MirrorNetworking/Mirror/issues/3529 public bool authority => - isClient - ? syncDirection == SyncDirection.ClientToServer && isOwned - : syncDirection == SyncDirection.ServerToClient; + isServer && syncDirection == SyncDirection.ServerToClient || + isClient && syncDirection == SyncDirection.ClientToServer && isOwned; /// The unique network Id of this object (unique at runtime). public uint netId => netIdentity.netId;