The weapon anticheat works as follows:
The server knows what weapons you should have, and what ammo you should have for them:
- If your game tells the server you have more ammo than you should, it will remove the excess ammo.
- If your game tells the server you have less ammo than you should have, the server updates its knowledge of what ammo you should have by reducing it.
- If your game tells the server you have a weapon that you shouldn't have, it removes it.
- If your game tells the server you no longer have a weapon you had, the server updates its knowledge and removes that weapon from its memory.
- If your game tells the server you have 0 ammo, it doesn't remove the weapon, nor does your game, it's still in your inventory and the server's memory as having 0 ammo, you cannot select it in your weapon selection thing.
So if your game tells the server you now have 0 ammo, the server trusts you and updates its internal memory. I don't know why the server and/or player crashing/timing out would do that. I don't think it would, or we would see this issue much more often.
Then, we have to factor in the civ/cop loadout system. That seems to be where this issue in particular is. If we can do some testing and working out why that is, that'd be useful.
Can we 1000% confirm that it's simply the ammo gets set to 0 and the weapon stays? Can we try DIFFERENT weapons in civ/cop loadout so it's not confusing? For example try with a sawn-off shotgun in civ loadout but a combat shotgun as a cop, so we know what is being affected by what.