Built-in AI packages

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