Built-in AI packages

OpenMW version: 0.49.0
core.API_REVISION: 60 *

Starting an AI package

There are two ways to start AI package:

-- from local script add package to self
local AI = require('openmw.interfaces').AI
AI.startPackage(options)

-- via event to any actor
actor:sendEvent('StartAIPackage', options)

options is Lua table with arguments of the AI package.

Common arguments that can be used with any AI package

name type description
type string [required] the name of the package (see packages listed below)
cancelOther boolean [default=true] whether to cancel all other AI packages

Combat

Attack another actor.

Arguments

name type description
target GameObject [required] the actor to attack

Examples

-- from local script add package to self
local AI = require('openmw.interfaces').AI
AI.startPackage({type='Combat', target=anotherActor})

-- via event to any actor
actor:sendEvent('StartAIPackage', {type='Combat', target=anotherActor})

Pursue

Pursue another actor.

Arguments

name type description
target GameObject [required] the actor to pursue

Follow

Follow another actor.

Arguments

name type description
target GameObject [required] the actor to follow

Escort

Escort another actor to the given location.

Arguments

name type description
target GameObject [required] the actor to follow
destPosition 3d vector [required] the destination point
destCell Cell [optional] the destination cell
duration number [optional] duration in game time (will be rounded up to the next hour)

Example

actor:sendEvent('StartAIPackage', {
    type = 'Escort',
    target = object.self,
    destPosition = util.vector3(x, y, z),
    duration = 3 * time.hour,
})

Wander

Wander nearby current position.

Arguments

name type description
distance float [default=0] the actor to follow
duration number [optional] duration in game time (will be rounded up to the next hour)

Travel

Go to given location.

Arguments

name type description
destPosition 3d vector [required] the point to travel to