diff --git a/Game/Scripts/Networking/SteamCharacterNetworkBridge.cs b/Game/Scripts/Networking/SteamCharacterNetworkBridge.cs index 16d8efe..2e659fd 100644 --- a/Game/Scripts/Networking/SteamCharacterNetworkBridge.cs +++ b/Game/Scripts/Networking/SteamCharacterNetworkBridge.cs @@ -243,12 +243,22 @@ namespace MegaKoop.Game.Networking CharacterTransformMessage transformMessage = CharacterTransformMessage.Deserialize(message.Payload); if (identity != null && transformMessage.NetworkId != identity.NetworkId) { - if (ownerSteamId == 0 || message.Sender != ownerSteamId) + if (ownerSteamId != 0 && message.Sender != ownerSteamId) + { + return; + } + + var existing = NetworkIdRegistry.GetById(transformMessage.NetworkId); + if (existing != null && existing != identity) { return; } identity.SetNetworkId(transformMessage.NetworkId); + if (identity.NetworkId != transformMessage.NetworkId) + { + return; + } } remoteTargetPosition = transformMessage.Position;