Lua API reference

Jump to:

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.

openmw.storage

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)

openmw.world

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.

openmw.camera

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

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.

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.

Settings

by player and global scripts

Save, display and track changes of setting values.

MWUI

by player scripts

Morrowind-style UI templates.