From Iron Realms Nexus Client Documentation
Scripts vs. Functions
- Scripts are specific code blocks that are fired as a result of a reflex being fired. This can be a trigger, alias, or keybind.
- Functions are re-usable code blocks that can be called from scripts or directly from the client's input.
Functions can be called from scripts by using run_function(name, args, package). As mentioned above, they can also be called directly from the client's input, so you'll want to make sure your functions are named in such a way that they do not overlap with in-game commands you may wish to use.
Scripts and functions are generally self-contained, variables are local to the code block and are cleared when the script or function finishes. To interact with variables used in the [SimplifiedScripting] system, you'll want to use the built-in modules: get_variable, set_variable etc.
- Functions called in a trigger receive information about the match: args.text, args.match, args.prefix, args.suffix, args.backrefs ...
- Scripts receive the backrefs (args., args,. args, ...) and the current_package variable indicating the active package.
- send_command(input, no_expansion) - Send a command to the game. Set no_expansion to 1 to send the exact string to the game without expansion.
- display_notice(text, fgcolor, bgcolor) - display a notice on the output screen.
- get_variable(name) - Retrieve the value of a variable from the client's simplified scripting system.
- set_variable(name, val) - Set a variable for the client's simplified scripting system.
- delete_variable(name) - Delete a variable from the client's simplified scripting system.
- inc_variable(name, by) - Increment a variable from the client's simplified scripting system.
- dec_variable(name, by) - Decrement a variable from the client's simplified scripting system.
- mul_variable(name, by) - Multiply a variable from the client's simplified scripting system.
- div_variable(name, by) - Divide a variable from the client's simplified scripting system.
- reflex_find_by_name(type, name, case_sensitive, enabled_only, package)) - Search for a specific reflex.
- type - Type of reflex: 'alias', 'trigger', 'keybind', ...
- name - Name to search for
- case_sensitive - Whether the name needs to match case exactly
- enabled_only - Set if disabled reflexes (including reflexes in disabled groups) should be ignored
- package - Name if a package to search in; omit if searching in the main list
- reflex_enable(reflex) - Enable a reflex (reflex is as returned by reflex_find_by_name above).
- reflex_disable(reflex) - Enable a reflex (reflex is as returned by reflex_find_by_name above).
Output Manipulation (Trigger Scripts)
- current_text() - An unformatted version of the line that fired the trigger.
- gag_current_line() - Hide the line that fired the trigger from the output window.
- colorize_current_line(start, length, fgcolor, bgcolor) - Colorize/highlight a specified part of the line that fired the trigger.
- replace_current_line(start, length, newtext, fgcolor, bgcolor) - Replace a party of the current line with the specified text and color.
- client.register_custom_tab(tab,container_id) - Make a custom UI tab. Please note, this is unsupported.
- to_number(val) - Convert a string number to a value.
- send_GMCP(message, arguments) - Sends a GMCP message to the game. Arguments are an object or string, depending on the GMCP call used - see the GMCP documentation for more information.
There are three functions which are called automatically by the client. These are onLoad, called when the settings are loaded, onGMCP, called upon receiving a GMCP message, and onBlock, called upon receiving each text block, allowing you to perform manipulations on it, or kickstart functionality that you want to execute on every prompt. The function does not receive any data.
The onGMCP function receives two arguments - args.gmcp_method is the GMCP message name, args.gmcp_args are the parameters (if any).
The onBlock function can make use of the current_block variable, which holds the individual lines (current_block is the first one, current_block is the second one, and so on). The manipulation methods described with triggers are all applicable on these as well.
For some examples of functions, read the examples page.