Whenever I shoot I want to dercrement my current ammo. This variable is in a Save game object and whenever I shoot it doesn’t decrement it.
Try adding a print debug node to the Cast Failed to make sure it isn’t taking that path. You could also add a breakpoint on the Cast node in your BP to step through it.
I don’t know if I would save them game every time the ammo changes. That seems like overkill and could possibly cause performance issues. I would switch the ammo to be a local variable on your charcter and then only save it to the save game at certain intervals or checkpoints.
It seems like you are loading the game data and then decremented the variable that you made when loading. This does not change the variable inside the stored data. That is why you dont see any change. Load it only once and it should be fixed.
Exactly how it works I am not sure, but I know that you are either overwriting the local variable every shot OR you are using a variable you are not updating.
HTH