A player should spawn/transfer it's loadout onto the server, so there are entityIds (or "handles") to the weapons they are currently carrying.
When equipping such a weapon, there will be another packet that maps hands to the handle (e.g. equip right hand: katana)
Other clients need to be able to spawn the weapons in game and make the NPC equip them, as a result.
Whether this packet contains the full weapon information each time or if the client also needs to cache the handles for a specific npc, remains to be discussed. But I think we can waste the bandwidth here for an easier implementation. However the client maybe already has a ref<WeaponObject> at hand anyway?
Damage is not part of the scope of this issue, maybe replicating attacks (shooting, aim angle replication, hitting animation for meele) is.
ref<WeaponObject>
at hand anyway?