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

User-created functions

scale-percent-function.gpc
int output;

main {
    output = scale_percent(get_ival(PS5_RX), 125);
    set_val(PS5_RX, output);
}

function scale_percent(value, percent) {
    return (value * percent) / 100;
}

Rules:

  • Declare with function name(parameter, ...) { ... }.

  • Parameters are optional: function reset_mode() { ... } is valid.

  • Parameters are local integer values.

  • Global runtime variables remain accessible.

  • A reached return expression; immediately exits.

  • If no return is reached, the result is 0.

  • Do not mix valued returns and bare returns.

  • Recursion compiles with a warning because worst-case stack use cannot be proven; avoid it in real-time scripts.

  • A user-created function's return value may be ignored. The unused-return compiler error applies to built-ins whose return value is marked as required, not to user functions.

A parameterless function used only for its side effect can be called as a statement:

Functions make repeated logic readable, but deep call chains and large expressions increase stack pressure.

Last updated