Global Functions and Types
In Lemonate, most classes and functions must be explicitly imported before use, typically using Lua's require mechanism. For example:
This modular approach keeps the global namespace clean and helps avoid naming conflicts, which is particularly important in large codebases or user-generated content scenarios. However, a small set of core types and functions are made available globally by default, without needing to import them.
These globally available elements are fundamental to engine scripting and are frequently used in almost all scripts. Making them global improves ergonomics and reduces repetitive boilerplate, especially for users new to the engine.
The following table lists all global functions and types provided by Lemonate.
| Name | Type | Description |
|---|---|---|
Class |
Type | Base class used for defining custom class types. Supports inheritance and metaclass behavior. |
Behaviour |
Type | The base type for all scripts. Used to provide SceneObject with custom functionality and behaviors |
Promise |
Type | An asynchronous task abstraction used for chaining operations, similar to JavaScript Promises. |
Property |
Type | Defines reactive fields on entities that automatically synchronize with the UI |
Console |
Type | Provides logging utilities and access to the developer console. Useful for debugging and diagnostics. |
dump |
Function | Serializes a Lua value (including tables) in a readable format and returns as string. Mainly for debugging. |
printDump |
Function | Like dump, but prints the result to the console directly. |
inspect |
Function | Like printDump, but instead of writing text to the console, it will add an inspector UI that allows comfortable inspection of the value. |
import |
Function | Imports and returns a module, similar to require, but used to load a user scripts by a relative path |
await |
Function | Waits for a Promise to resolve. Used to pause execution in asynchronous code blocks |