How can I set up Action Mapping for Simultaneous Button Presses?

How would you go about Action Mapping simultaneous button presses for the Gamepad? For example How would you map the following command:

Hold Left Stick Right and Press Gamepad FaceButton Right to execute…

Create an action mapping for “Gamepad FaceButton Right” and then have an IF statement that checks to see if the Left Stick is held to the right when the button is pressed. Put whatever you want this action mapping to do inside the IF statement. Basically, you are checking that the “Gamepad FaceButton Right” is pressed AND that the Left Stick is held to the right. You can also have multiple IF’s inside the action to check for other conditions such as the Left Stick held to the left or up or down or anything else you want to check in combination with the “Gamepad FaceButton Right” being pressed. Using this method you can create any combination you can imagine.

While Dartanilla’s suggestion will work, you will quickly find that players aren’t robots, and controllers have physical lag, and the sticks and buttons won’t time to activate at exactly the same time even though the player intends it.

If you want to build, say, a fighter game, where the controls feel right, you will have to build a pretty complex state machine. That state machine is best built by having all the different input commands just forward a “state change” to the state machine, and have the state machine drive the synthesis of player intent.
You will then have to introduce delays for each button if you want to support combos. Thus, pressing A might set a timer for 50 milliseconds to perform action A, but if you get button B within that interval, you do action AB. Same thing for button B; set a timer, if you get A within that window, do action AB.

In the end, game design has to also come into it. It’s easier to support combo buttons if one is an automatic extension of the other. Then you can start playing the wind-up animations right at button press, but if the modified is added within the timing window, you then modify the actual action. Thus, if A is punch, and B is block, and AB is down-punch, then your state machine would start playing a punch or block wind-up at A or B, but if it got the other button within the timing window, it would transition to the down-punch animation (partway in) and change what the actual action will be.

Hope this helps!