Just a spawn as you are doing (a SpawnActor(…), but by setting that flag, the spawn doesn’t complete yet and waits for you to do a pointer->FinishSpawning(…). In between the spawn statement and the FinishSpawning statement, you can force any values you want to set into the spawned object that alter the defaults. So for example, after executing the spawn, you can use that pointer to set variables in the spawned object that would have defaulted to something else.
The only thing to remember is that you need to provide the spawn transform on the FinishSpawning statement.
The only reason I mentioned this is then you would be certain that the ammo count would start out at the altered quantity instead of a default quantity.
I’m still wondering if this solves your problem or if there isn’t actually some other things going on that I’m not aware of.