Events

The topics Eluvian emits, as events {"describe": true} lists them: wait for one with wait_for from the cursor an answer gives. Plugins describe topics of their own under their prefix.

eluvian.animation.played

A creature began a clip on its base layer, by the engine’s own play call: a command’s step (a swing, an evade, a deathblow, a knockdown), a conversation line, a walk, the idle. Clips the animation set starts on its own (a one-shot returning to the idle) are not seen. Often several a second in a fight: read it with match on the creature’s id or tag.

Field What
id the creature’s id
tag its tag
row the animation’s row of the animations table (anim_base, anim_combat, anim_placeables), a number
label the row’s Label
speed the play speed, 1 normal
blend the fade into it, in weight per second; -1 instant, -2 over a fifth of the clip
flag the play call’s last argument, as the engine passes it
position where the creature stood, [x, y, z]

eluvian.area.loaded

An area finished loading: the party is placed in it and its load scripts have run. Once per load, a save’s own load aside (that is eluvian.game.loaded).

Field What
area the area

eluvian.command.ended

A creature’s command ended. result says how.

Field What
id the creature’s id
type the kind of command
playerIssued whether the player gave the command
target the same as when it started
point the same as when it started
ability the same as when it started
result how it ended: success, a COMMAND_FAILED_* code saying why it failed, or cleared (dropped from the queue before it finished)
success true when it succeeded

eluvian.command.started

A creature started a command from its queue: an attack, a move, an ability, a wait, an animation, and so on.

Field What
id the creature’s id
type the kind of command (Attack, MoveToObject, UseAbility, …)
playerIssued whether the player gave the command
target the object it acts on, for an attack, a use or a move to an object, if any
point the [x, y, z] point it moves to or aims at, for a move or an ability, if any
ability the ability’s id, for a UseAbility

eluvian.creature.died

A creature died, or a party member fell, on the frame its health reached 0: any creature. The engine’s own eluvian.script.death fires about 2 seconds later, once the death has played out.

Field What
id the creature’s id
name its name
killer who killed it: the death’s own creator, else the last creature to hurt it; null for stage_kill’s, whose damage comes from no one

eluvian.creature.ready

A creature just made (stage_spawn, a script’s) is set up by its spawn script: its health, equipment and abilities are now its own. A creature restored from a save gives none.

Field What
id the creature’s id
name its name
tag its tag

eluvian.creature.revived

A dead creature or a fallen party member came back to life.

Field What
id the creature’s id
name its name
tag its tag

eluvian.dialogue.chosen

The player chose a reply, and the conversation continues from it.

Field What
index the reply’s position in the conversation file
text the reply’s text

eluvian.dialogue.line

Someone spoke a line: to the player in a conversation, or between creatures in passing (background chatter is a conversation too). Some lines have no text; they only lead on to the next line.

Field What
index the line’s position in the conversation file
speaker who speaks it, as the file names them: a creature’s tag, OWNER or PLAYER
by the creature who speaks it, as {id, name, tag}. OWNER means the conversation’s owner, PLAYER the hero, and a tag the creature with that tag
to who it is spoken to: listener as the file names it (often empty), and creature, the creature the game picks
text the line, in the player’s language

eluvian.dialogue.replies

The player is offered replies, listed in the order shown on screen.

Field What
replies each reply with its position, index, text and icon

eluvian.equipment.equipped

An item was put on a creature, by any means: the inventory screen, equip, or a script. It does not fire when equipping is refused, nor for the ammunition the engine gives each creature when an area loads.

Field What
creature the creature, as {id, name, tag}
item the item, as {id, name, tag}
slot the slot’s number (an INVENTORY_SLOT_* value)
slotName the slot’s name, as inventory names it

eluvian.equipment.unequipped

An item was taken off a creature, by any means. When equipping one item pushes another out (a shield, for a two-handed weapon), the pushed-out item’s event comes first.

Field What
creature the creature, as {id, name, tag}
item the item, as {id, name, tag}
slot the slot it was in (an INVENTORY_SLOT_* value)
slotName the slot’s name
displaced true when equipping another item pushed it out

eluvian.game.loaded

A save finished loading, or a new game started, and the world is ready.

Field What
newGame true for a new game
character the save’s character folder
kind the save’s kind: manual, auto or quick
number the save slot’s number

eluvian.game.saved

The game wrote a save.

Field What
character the save’s character folder
kind the save’s kind: manual, auto or quick
number the save slot’s number

eluvian.gui.message

A game screen sent a message to the engine, as its buttons and scripts do. It shows what the menu asked the game to do, in the same form input sends with message.

Field What
screen the screen that sent it, by the game’s name for it, such as “levelup” or “inventory”
text the message, as “Receiver.Message arguments”

eluvian.input.back

The game takes the player’s input again: explore or combat entered from another mode (a load, a conversation, a cutscene, a screen).

Field What
mode the mode entered: explore or combat

eluvian.mode.changed

The game’s mode changed. Modes include explore, combat, dialog, cutscene, loading, pregame (the main menu) and gui (a menu open over the game).

Field What
from the mode before the change
to the mode now

eluvian.party.control_changed

The player now controls a different creature. It fires whatever caused the switch: the party bar, a key, a script, or an order move that hands control to a follower. After a load, it fires as a switch from nobody.

Field What
before the creature controlled before, as {id, name, tag}, or null for nobody
now the creature controlled now, as {id, name, tag}

eluvian.paused

The game was paused or unpaused.

Field What
paused true when the game is now paused

eluvian.script.ability_cast_impact

The game’s script event EVENT_TYPE_ABILITY_CAST_IMPACT (an EVENT_TYPE_* value), as the game’s scripts receive it.

Field What
receiver the object the event was sent to, which is not always the one it is about
creator the object that created the event
objects the event’s object parameters, as scripts read them with GetEventObject
integers the event’s whole-number parameters
floats the event’s decimal-number parameters

eluvian.script.ability_cast_start

The game’s script event EVENT_TYPE_ABILITY_CAST_START (an EVENT_TYPE_* value), as the game’s scripts receive it.

Field What
receiver the object the event was sent to, which is not always the one it is about
creator the object that created the event
objects the event’s object parameters, as scripts read them with GetEventObject
integers the event’s whole-number parameters
floats the event’s decimal-number parameters

eluvian.script.apply_effect

The game’s script event EVENT_TYPE_APPLY_EFFECT (an EVENT_TYPE_* value), as the game’s scripts receive it.

Field What
receiver the object the event was sent to, which is not always the one it is about
creator the object that created the event
objects the event’s object parameters, as scripts read them with GetEventObject
integers the event’s whole-number parameters
floats the event’s decimal-number parameters

eluvian.script.area_loaded

The game’s script event EVENT_TYPE_AREALOAD_POSTLOADEXIT (an EVENT_TYPE_* value), as the game’s scripts receive it.

Field What
receiver the object the event was sent to, which is not always the one it is about
creator the object that created the event
objects the event’s object parameters, as scripts read them with GetEventObject
integers the event’s whole-number parameters
floats the event’s decimal-number parameters

eluvian.script.attack_impact

The game’s script event EVENT_TYPE_ATTACK_IMPACT (an EVENT_TYPE_* value), as the game’s scripts receive it.

Field What
receiver the object the event was sent to, which is not always the one it is about
creator the object that created the event
objects the event’s object parameters, as scripts read them with GetEventObject
integers the event’s whole-number parameters
floats the event’s decimal-number parameters
attacker the attacker (the event is sent to them)
target the creature attacked
hit how the attack landed (a COMBAT_RESULT_* value)
effectId the id of the effect the hit made

eluvian.script.combat_initiated

The game’s script event EVENT_TYPE_COMBAT_INITIATED (an EVENT_TYPE_* value), as the game’s scripts receive it.

Field What
receiver the object the event was sent to, which is not always the one it is about
creator the object that created the event
objects the event’s object parameters, as scripts read them with GetEventObject
integers the event’s whole-number parameters
floats the event’s decimal-number parameters

eluvian.script.damaged

The game’s script event EVENT_TYPE_DAMAGED (an EVENT_TYPE_* value), as the game’s scripts receive it.

Field What
receiver the object the event was sent to, which is not always the one it is about
creator the object that created the event
objects the event’s object parameters, as scripts read them with GetEventObject
integers the event’s whole-number parameters
floats the event’s decimal-number parameters
damager the creature that dealt the damage
amount how much damage
damageType the kind of damage (a DAMAGE_TYPE_* value)
ability the ability that dealt it

eluvian.script.death

The game’s script event EVENT_TYPE_DEATH (an EVENT_TYPE_* value), as the game’s scripts receive it.

Field What
receiver the object the event was sent to, which is not always the one it is about
creator the object that created the event
objects the event’s object parameters, as scripts read them with GetEventObject
integers the event’s whole-number parameters
floats the event’s decimal-number parameters

eluvian.script.gamemode_change

The game’s script event EVENT_TYPE_GAMEMODE_CHANGE (an EVENT_TYPE_* value), as the game’s scripts receive it.

Field What
receiver the object the event was sent to, which is not always the one it is about
creator the object that created the event
objects the event’s object parameters, as scripts read them with GetEventObject
integers the event’s whole-number parameters
floats the event’s decimal-number parameters

eluvian.script.order_received

The game’s script event EVENT_TYPE_ON_ORDER_RECEIVED (an EVENT_TYPE_* value), as the game’s scripts receive it.

Field What
receiver the object the event was sent to, which is not always the one it is about
creator the object that created the event
objects the event’s object parameters, as scripts read them with GetEventObject
integers the event’s whole-number parameters
floats the event’s decimal-number parameters

eluvian.script.partymember_added

The game’s script event EVENT_TYPE_PARTYMEMBER_ADDED (an EVENT_TYPE_* value), as the game’s scripts receive it.

Field What
receiver the object the event was sent to, which is not always the one it is about
creator the object that created the event
objects the event’s object parameters, as scripts read them with GetEventObject
integers the event’s whole-number parameters
floats the event’s decimal-number parameters

eluvian.script.popup_result

The game’s script event EVENT_TYPE_POPUP_RESULT (an EVENT_TYPE_* value), as the game’s scripts receive it.

Field What
receiver the object the event was sent to, which is not always the one it is about
creator the object that created the event
objects the event’s object parameters, as scripts read them with GetEventObject
integers the event’s whole-number parameters
floats the event’s decimal-number parameters

eluvian.script.remove_effect

The game’s script event EVENT_TYPE_REMOVE_EFFECT (an EVENT_TYPE_* value), as the game’s scripts receive it.

Field What
receiver the object the event was sent to, which is not always the one it is about
creator the object that created the event
objects the event’s object parameters, as scripts read them with GetEventObject
integers the event’s whole-number parameters
floats the event’s decimal-number parameters

eluvian.sound.played

The game started a sound: an FMOD event, by the event’s own start, so music, the interface, footsteps, blows, voices and ambience alike. Often many a second: read it with match on the path, or a part of the path’s own field. Which creature made it is not known.

Field What
path the event’s path, “project/group/…/event”, as the scripts’ PlaySound names it
name the event’s own name, the path’s last part
positional true for a sound placed in the world (FMOD’s 3-D mode); false for music and the interface
position where it was placed, [x, y, z], for a positional sound; a 3-D sound nobody placed yet is at its default, usually the origin