Lua API reference

OpenMW version: 0.49.0
core.API_REVISION: 62 *

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.animation everywhere
Animation controls
openmw.async everywhere
Timers and callbacks.
openmw.vfs everywhere
Read-only access to data directories via VFS.
openmw.markup everywhere
API to work with markup languages. 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.ambient by player scripts
Controls background sounds for given player.
openmw.input by player scripts
User input.
openmw.ui by player scripts
Controls user interface. by menu scripts
Main menu functionality, such as managing game saves 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
Activation by global scripts Allows to extend or override built-in activation mechanics.
AI by local scripts Control basic AI of NPCs and creatures.
AnimationController by local scripts Control animations of NPCs and creatures.
Camera by player scripts
Allows to alter behavior of the built-in camera script
without overriding the script completely.
Controls by player scripts
Allows to alter behavior of the built-in script
that handles player controls.
Controls by player scripts
Allows to alter behavior of the built-in script
that handles player gamepad controls.
ItemUsage by global scripts
Allows to extend or override built-in item usage
SkillProgression by local scripts
Control, extend, and override skill progression of the
Settings by player and global scripts Save, display and track changes of setting values.
MWUI by player scripts Morrowind-style UI templates.
UI by player scripts
High-level UI modes interface. Allows to override parts
of the interface.