Manual:Lua Functions Basics

From Mudlet
Revision as of 04:49, 10 January 2024 by Dt192 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Here you can find a long list of all possible Lua functions and programming interfaces (API) that Mudlet offers. Due to the integrated Lua, you can also use all regular Lua functions. In the following page, we will explain the usage, expected behavior and examples for the functions added in Mudlet.

Global variables

Mudlet defines several global Lua variables that are accessible from anywhere.

Built-in Lua Variables
Variable Name Description
command This variable holds the current user command, i.e. unchanged by any aliases or triggers. This is typically used in alias scripts.
line This variable holds the content of the current line as being processed by the trigger engine. The engine runs all triggers on each line as it arrives from the game.
matches[n] This Lua table is being used by Mudlet in the context of triggers that use Perl regular expressions.

matches[1] holds the entire match, matches[2] holds the first capture group, matches[n] holds the nth-1 capture group. If the Perl trigger indicated 'match all' (same effect as the Perl /g switch) to evaluate all possible matches of the given regex within the current line, matches[n+1] will hold the second entire match, matches[n+2] the first capture group of the second match and matches[n+m] the m-th capture group of the second match.

Since Mudlet 4.11+ it will contain named capturing groups, apart from numeric group matches (named groups count as numeric as well). Each can be access under element with key corresponding to group name. Eg. if you capture group with name target you can access it via matches["target"] or simply matches.target. You can use mudlet.supports.namedGroups flag to determine whether named groups are supported.

multimatches[n][m] This table is being used by Mudlet in the context of multiline triggers that use Perl regular expression. It holds the table matches[n] as described above for each Perl regular expression based condition of the multiline trigger. multimatches[5][4] may hold the 3rd capture group of the 5th regex in the multiline trigger. This way you can examine and process all relevant data within a single script.
mudlet.translations Contains translations of some common texts (right now, exit directions only) that are helpful to you in Lua scripting, as well as the current language selected for the user interface. - See translateTable()
mudlet.key Makes your life easier when creating new keybindings via Lua by translating the key name into the number needed - see tempKey().
mudlet.keymodifier Same as mudlet.key, but for keyboard modifiers - Ctrl, Alt, etc.
mudlet.supports Lists special functionality that the users Mudlet supports - right now, just mudlet.supports.coroutines & mudlet.supports.namedGroups is listed. Use mudlet.supports to conditionally enable functionality as it's available on the users Mudlet.
color_table Color definitions used by Geyser, cecho, and many other functions - see showColors(). The profile's color preferences are also accessible under the ansi_ keys.

There are other variables that hold the game's MUD-protocol data that are global as well - see Supported Protocols.