Sure .. it's a really simple solution. Just a few lines of code. In script SCR_character.cs, I added the following variables: In the RollStart() function within SCR_character, I added the following lines: The above lines reload the gun every time the player rolls. On the Awake() function of SCR_characterRanged, I added the following (which isn't necessary if you just manually set the remInClip value in the inspector instead): Then I replaced every instance of CreateProjectile() in this script with: There are only 2 such instances. Bear in mind that I also set a empty clicking sound to play when the gun is empty but that's not essential. If you want to just copy / paste the code, remove the line SCR_main.PlayRandomSound(emptySound); I think I'll also add some code to add the number of bullets remaining to the GUI and also a Reload! message when the gun is empty and the player tries to fire. However, I'll deal with that when I get to the GUI updates. Also, I may look into limiting the total number of reloads allowed and then have that value replenished with a collectable pickup. At the moment, the player has infinite ammo reloads available.