For the complete documentation index, see llms.txt. This page is also available as Markdown.

Combos and fcombo

A combo is a scheduled top-level block for producing timed output without blocking main. combo and fcombo use the same declaration form. Start a combo with combo_run, restart it from the beginning with combo_restart, and stop it with combo_stop.

tap-square-combo.gpc
main {
    if(event_press(PS5_CROSS)) combo_run(TapSquare);
    if(event_press(PS5_CIRCLE)) combo_stop(TapSquare);
}

combo TapSquare {
    set_val(PS5_SQUARE, 100);
    wait(80);
    set_val(PS5_SQUARE, 0);
    wait(80);
}

wait and call are combo-only commands and must be at the root level of a combo. A called combo pauses its parent until the child finishes. combo_run does not restart a combo that is already running; use combo_restart when restart behavior is intended. Avoid recursive or cyclic combo calls. The complete combo reference covers all controls, status queries, suspension, timing, wait, and call with examples.

Last updated