Trying to fix the first problem, but no luck so far. The second one is not possible strictly speaking, but this is what I do: for the most common actions you have (moving, skiing, etc...) add altFire before the actually command. So 'w=moveForward' becomes 'w=altFire | MoveForward'. Since the grenade is not thrown until altFire's onRelease command, you'll almost constantly be charging.