modo supports four scripting languages:
- Macros, the simplest script, which simply executes a series of commands in order.
- Perl, a powerful language known for its string processing
- Python, an object-based language with exception handling
- Lua, a popular embedded language often used in game development
Click the links above to see articles detailing how to use each language with modo.
When a script is executed, the interpreter for that language is spawned, the script is parsed and executed, and the interpreter is destroyed. Each interpreter exists only for the life of the executing script, and does not persist beyond that. This ensures that each interpreter has its own unique state.
There are a few commands that exist primarily for use by the scripting system.
- query, used to query ScriptQuery interfaces.
- Dialog commands, used to open system dialogs and choice simple dialogs.
- User Values, used to store script state in the config and provide basic user interfaces for scripts.
- App.suspendUndos, which can significantly reduce memory usage for large operations at the expense of being able to undo them.
Examples for the various scripting languages can be found in the Scripting Examples category.