Weapon not firing after emptying clip and picking up more ammo

so the key to multiplayer is everything should basically run on server, especially something like CheckAmmo (you can still have local prediction) so when you query GetPlayerCharacter(0) you’re asking who is the first character, and since you’re asking on server it should (but not always) return the server player. this means if player 2 trys to check his ammo hes checking against player 1

you need to pass in a reference to the weapons ‘Owner’ ie playercharacter.
you can do this when you spawn|equip|fire the weapon for example