################# Lua API reference ################# .. toctree:: :caption: Table of Contents :maxdepth: 2 Engine handlers reference ========================= Engine handler is a function defined by a script, that can be called by the engine. +------------------------------------------------------------------------------------------------+ | **Can be defined by any script** | +----------------------------------+-------------------------------------------------------------+ | onUpdate(dt) | | Called every frame if game not paused. `dt` is the time | | | | from the last update in seconds. | +----------------------------------+-------------------------------------------------------------+ | onSave() -> data | | Called when the game is saving. May be called in inactive | | | | state, so it shouldn't use `openmw.nearby`. | +----------------------------------+-------------------------------------------------------------+ | onLoad(data) | | Called on loading with the data previosly returned by | | | | onSave. During loading the object is always in inactive. | +----------------------------------+-------------------------------------------------------------+ | **Only for global scripts** | +----------------------------------+-------------------------------------------------------------+ | onNewGame() | New game is started | +----------------------------------+-------------------------------------------------------------+ | onPlayerAdded(player) |Player added to game world. The argument is a `Game object`. | +----------------------------------+-------------------------------------------------------------+ | onActorActive(actor) | Actor (NPC or Creature) becomes active. | +----------------------------------+-------------------------------------------------------------+ | **Only for local scripts** | +----------------------------------+-------------------------------------------------------------+ | onActive() | | Called when the object becomes active (either a player | | | | came to this cell again, or a save was loaded). | +----------------------------------+-------------------------------------------------------------+ | onInactive() | | Object became inactive. Since it is inactive the handler | | | | can not access anything nearby, but it is possible to send| | | | an event to global scripts. | +----------------------------------+-------------------------------------------------------------+ | onConsume(recordId) | | Called if `recordId` (e.g. a potion) is consumed. | +----------------------------------+-------------------------------------------------------------+ | **Only for local scripts attached to a player** | +----------------------------------+-------------------------------------------------------------+ | onKeyPress(symbol, modifiers) | | Key pressed. `Symbol` is an ASCII code, `modifiers` is | | | | a binary OR of flags of special keys (ctrl, shift, alt). | +----------------------------------+-------------------------------------------------------------+ Packages reference ================== 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('')``. 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 | +=========================================================+====================+===============================================================+ |:ref:`openmw.interfaces