[QUOTE=LittleStain] Why would the or block have to be checked every tick, when it can only affect anything every player.fireratio seconds?

Or are you planning to add more code to the block?[/QUOTE]

Yep, the second one. Also, since the player can begin firing at any time, having the gamepad input checked in the OR block under the timer could mean a delay in the projectile firing.

I tried mapping this player input control to a button, and it works fine with the timer (without setting the projectile direction, obviously) - but not the analog stick. I'm almost wondering if it's a bug in the gamepad controller behavior now.digitalsoapbox2014-01-03 17:18:54

Instead of Every X Seconds try giving the Player a new variable (Player.CanFire boolean start true) and check/set that when they fire.

for each Player check gamepad OR block if Player.CanFire == true then Set Player.CanFire = false -- so they can't fire again yet Do your normal firing stuff Wait Player.projectileFireRate seconds -- adds delay between firing Set Player.CanFire = true -- lets player fire again

Instead of Every X Seconds try giving the Player a new variable (Player.CanFire boolean start true) and check/set that when they fire.

for each Player check gamepad OR block if Player.CanFire == true then Set Player.CanFire = false -- so they can't fire again yet Do your normal firing stuff Wait Player.projectileFireRate seconds -- adds delay between firing Set Player.CanFire = true -- lets player fire again

[/QUOTE]

That does it, but if there's any kind of drop in framerate the weapon doesn't fire. Why Every X works different than Wait X is a bit confusing. Still though, a step in the right direction.