Lua API reference

API packages

API packages provide functions that can be called by scripts. I.e. it is a script-to-engine interaction. A package can be loaded with require('<package name>'). It can not be overloaded even if there is a lua file with the same name. The list of available packages is different for global and for local scripts. Player scripts are local scripts that are attached to a player.

Package Can be used Description
openmw.interfaces everywhere
Public interfaces of other scripts.
openmw.util everywhere
Defines utility functions and classes like 3D vectors,
that don’t depend on the game world. everywhere
Storage API. In particular can be used to store data
between game sessions.
openmw.core everywhere
Functions that are common for both global and local scripts
openmw.types everywhere
Functions for specific types of game objects.
openmw.async everywhere
Timers (implemented) and coroutine utils (not implemented) by global scripts
Read-write access to the game world.
openmw.self by local scripts
Full access to the object the script is attached to.
openmw.nearby by local scripts
Read-only access to the nearest area of the game world.
openmw.input by player scripts
User input.
openmw.ui by player scripts
Controls user interface. by player scripts
Controls camera.
openmw.postprocessing by player scripts
Controls post-process shaders.
openmw.debug by player scripts
Collection of debug utils.


openmw_aux.* are built-in libraries that are itself implemented in Lua. They can not do anything that is not possible with the basic API, they only make it more convenient. Sources can be found in resources/vfs/openmw_aux. In theory mods can override them, but it is not recommended.

Built-in library Can be used Description
openmw_aux.calendar everywhere
Game time calendar
openmw_aux.util everywhere
Miscellaneous utils
openmw_aux.time everywhere
Timers and game time utils
openmw_aux.ui by player scripts
User interface utils

Interfaces of built-in scripts

Interface Can be used Description
AI by local scripts Control basic AI of NPCs and creatures.
Camera by player scripts
Allows to alter behavior of the built-in camera script
without overriding the script completely.
Settings by player and global scripts Save, display and track changes of setting values.
MWUI by player scripts Morrowind-style UI templates.