AreaTrigger

Associated namespace: sm.areaTrigger

A userdata object representing an area trigger in the game.

Values:

Functions:

Operations:

OperationReturn typeDescription
AreaTrigger == AreaTriggerbooleanChecks if two instances of AreaTrigger refer to the same AreaTrigger.

id integer

Get:

Returns the id of an area trigger.


world World

Get:

Returns the world id of the area trigger. Keep in mind that area triggers can move between worlds, so world id might change!


bindCanErase(areaTrigger, callback, object?)

Client only

Bind a callback that checks if the area trigger can be erased.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
stringcallbackThe name of the Lua function to bind.
tableobject?The object that will receive the callback. (optional)

bindCanInteract(areaTrigger, callback, object?)

Client only

Bind the lua function to be used when checking for player interaction with the area trigger

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
stringcallbackThe name of the Lua function to bind.
tableobject?The object that will receive the callback. (optional)

bindOnDestroy(areaTrigger, callback, object?)

Bind the lua function to be called when the area trigger is destroyed

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
stringcallbackThe name of the Lua function to bind.
tableobject?The object that will receive the callback. (optional)

bindOnEnter(areaTrigger, callback, object?)

Binds an area trigger's onEnter event to a custom callback. The onEnter event is triggered when an object enters the trigger area.

The callback receives:

function MyClass.onEnter( self, trigger, results ) ...

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
stringcallbackThe name of the Lua function to bind.
tableobject?The object that will receive the callback. (optional)

bindOnErase(areaTrigger, callback, object?)

Client only

Bind the lua function to be used when an interactable area trigger is erased.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
stringcallbackThe name of the Lua function to bind.
tableobject?The object that will receive the callback. (optional)

bindOnExit(areaTrigger, callback, object?)

Binds an area trigger's onExit event to a custom callback. The onExit event is triggered when an object leaves the trigger area.

The callback receives:

function MyClass.onExit( self, trigger, results ) ...

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
stringcallbackThe name of the Lua function to bind.
tableobject?The object that will receive the callback. (optional)

bindOnHostDestroy(areaTrigger, callback, object?)

Bind the lua function to be used when an area trigger is destroyed.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
stringcallbackThe name of the Lua function to bind.
tableobject?The object that will receive the callback. ( optional )

bindOnHostUnload(areaTrigger, callback, object?)

Bind the lua function to be used when an interactable area trigger's host object is unloaded.

Note: Only the game host can know if a host object is unloaded, to a connected client it will look like the host object was destroyed.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
stringcallbackThe name of the Lua function to bind.
tableobject?The object that will receive the callback. ( optional )

bindOnInteract(areaTrigger, callback, object?)

Client only

Bind the lua function to be used when a player interacts with an area trigger

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
stringcallbackThe name of the Lua function to bind.
tableobject?The object that will receive the callback. (optional)

bindOnMelee(areaTrigger, callback, object?)

Server only

Bind the lua function to be used when the area trigger is hit by a melee attack.

Requires that areaTriggerProxyType has been set to sm.areaTrigger.areaTriggerProxyType.melee

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
stringcallbackThe name of the Lua function to bind.
tableobject?The object that will receive the callback. (optional)

bindOnProjectile(areaTrigger, callback, object?)

Binds an area trigger's onProjectile event to a custom callback. The onProjectile event is triggered if a projectile collides with the trigger area

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
stringcallbackThe name of the Lua function to bind.
tableobject?The object that will receive the callback. (optional)

bindOnStay(areaTrigger, callback, object?)

Binds an area trigger's onStay event to a custom callback. The onStay event is triggered every tick as long as an object is staying inside of the trigger area.

The callback receives:

function MyClass.onStay( self, trigger, results ) ...

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
stringcallbackThe name of the Lua function to bind.
tableobject?The object that will receive the callback. (optional)

destroy(areaTrigger)

Destroys an area trigger.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger to be destroyed.

getCharacters(areaTrigger)

Gets the trigger collisions for characters inside the area trigger

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.

Returns:

TypeDescription
tableA table of character trigger collisions.

getContents(areaTrigger)

Gets the contents of the area trigger.

Returns a table of characters and/or bodies and/or harvestables and/or lifts and/or areaTriggers.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.

Returns:

TypeDescription
tableThe table with the content.

getHarvestables(areaTrigger)

Gets the trigger collisions for harvestables inside the area trigger

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.

Returns:

TypeDescription
tableA table of harvestable trigger collisions.

getHostInteractable(areaTrigger)

Returns the attached host interactable.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.

Returns:

TypeDescription
InteractableThe area trigger's host interactable.

getId(areaTrigger)

Returns the id of an area trigger.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.

Returns:

TypeDescription
integerThe area trigger's id.

getShapes(areaTrigger)

Gets the trigger collisions for shapes inside the area trigger

Will only return one Shape for each Body that is colliding with the AreaTrigger.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.

Returns:

TypeDescription
tableA table of shape trigger collisions.

getSize(areaTrigger)

Returns the size of an area trigger.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.

Returns:

TypeDescription
Vec3The area trigger's size.

getUserData(areaTrigger)

Returns the user data set on the area trigger.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.

Returns:

TypeDescription
tableThe user data set on this trigger

getWorld(areaTrigger)

Returns the world id of the area trigger. Keep in mind that area triggers can move between worlds, so world id might change!

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger user.

Returns:

TypeDescription
WorldThe _current_ world id of the area trigger.

getWorldMax(areaTrigger)

Returns the world max corner position of an area trigger.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.

Returns:

TypeDescription
Vec3The area trigger's max corner position.

getWorldMin(areaTrigger)

Returns the world min corner position of an area trigger.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.

Returns:

TypeDescription
Vec3The area trigger's min corner position.

getWorldPosition(areaTrigger)

Returns the world position of an area trigger.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.

Returns:

TypeDescription
Vec3The area trigger's world position.

getWorldRotation(areaTrigger)

Returns the world rotation of an area trigger.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.

Returns:

TypeDescription
QuatThe area trigger's world rotation.

hasVoxelTerrainContact(areaTrigger)

Returns true if the AreaTrigger is in contact with destructable terrain.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.

Returns:

TypeDescription
booleanDestructable terrain contact.

setCharacterDetection(areaTrigger, detectCharacters)

When set to true the area trigger can calculate which characters are inside of the trigger and get the collision information.

with a call to AreaTrigger: getCharacters

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
booleandetectCharactersCharacter detection on or off.

setDestroyOnErase(areaTrigger, destroyOnErase)

Sets whether the areatrigger should be destroyed immediately upon being erased or simply invoke the bound OnErase callback. True by default.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
booleandestroyOnEraseDestroy on erase.

setEraseTime(areaTrigger, eraseTime)

Sets the time it takes to erase this trigger if it is erasable.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
numbereraseTimeThe time it takes to erase this area trigger.

setHarvestableDetection(areaTrigger, detectHarvestables)

When set to true the area trigger can calculate which harvestables are inside of the trigger and get the collision information.

with a call to AreaTrigger: getHarvestables

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
booleandetectHarvestablesHarvestable detection on or off.

setIncludeShapesInContent(areaTrigger, includeShapesInContent)

When set to true the area trigger will include individual shapes in its content list.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
booleanincludeShapesInContentInclude shapes in content on or off.

setShapeDetection(areaTrigger, detectShapes)

Shape detection is off by default. When set to true the area trigger can calculate which shapes are inside of the trigger

with a call to AreaTrigger: getShapes

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
booleandetectShapesShape detection on or off.

setSize(areaTrigger, size)

Sets the new size of an area trigger.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
Vec3sizeThe area trigger's new size.

setVoxelDestructible(areaTrigger, destructible)

Sets whether VoxelTerrain can destroy this area trigger by voxel addition.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
booleandestructibleThe state to set

setWaterType(areaTrigger, waterType)

Sets the liquid type of the area trigger. (See sm.areaTrigger.liquidType)

Only has an effect on area triggers with the 'water' proxy type; setting it on any other proxy type has no effect.

Currently only 'lava' has special behavior: it occasionally destroys submerged shapes. Lava behavior requires

shapes to be included in the content list via AreaTrigger: setIncludeShapesInContent.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
integerwaterTypeThe liquid type. (See sm.areaTrigger.liquidType)

setWorldPosition(areaTrigger, position)

Sets the new world position of an area trigger.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
Vec3positionThe area trigger's new world position.

setWorldRotation(areaTrigger, rotation)

Sets the new world rotation of an area trigger.

Parameters:

TypeNameDescription
AreaTriggerareaTriggerThe area trigger instance.
QuatrotationThe area trigger's new world rotation.