A combo (short for combination) is a combination of pre-programmed instructions which are executed in sequence. Just like the main section, commands within a combo are performed in the order they are written. You can run any code you can run in the main section within a combo such as calling functions or setting variables, although this is generally unnecessary and usually results in nothing more than a waste of stack memory and byte-code space. A combo is ideal suited to setting the output of a button for a specific length of time which is done using the wait command, a command that is unique to combos and cannot be used elsewhere.
Just as with variables, a combos name can start with either an underscore ( _ ) or a letter and can be followed by any combination of letters, digits or underscores.
main {if (event_press(XB1_A) {combo_run(mycombo);}if (event_press(XB1_B) {if(combo_running(mycombo)) {combo_stop(mycombo);}}if (event_press(XB1_X) {combo_restart(mycombo);}}​combo mycombo {set_val(XB1_A, 100);wait(200);wait(4000);set_val(XB1_B, 100);wait(200);wait(4000);set_val(XB1_X, 100);wait(200);wait(4000);set_val(XB1_Y, 100);wait(200);wait(4000);set_val(XB1_LB, 100);wait(200);wait(4000);call(mycombo2);}​combo mycombo2 {​}