AreaTrigger

A userdata object representing an area trigger in the game.

Values:

  • 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!
      Result: The current world id of the area trigger.

Operations:

Operation Returns Description
AreaTrigger == AreaTrigger boolean Checks if two instances of AreaTrigger refer to the same AreaTrigger.

Server + Client

bindOnDestroy

areaTrigger:bindOnDestroy( callback, object )

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

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
callback string The name of the Lua function to bind.
object (optional) table The object that will receive the callback. (optional)

bindOnEnter

areaTrigger:bindOnEnter( 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:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
callback string The name of the Lua function to bind.
object (optional) table The object that will receive the callback. (optional)

bindOnExit

areaTrigger:bindOnExit( 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:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
callback string The name of the Lua function to bind.
object (optional) table The object that will receive the callback. (optional)

bindOnHostDestroy

areaTrigger:bindOnHostDestroy( callback, object )

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

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
callback string The name of the Lua function to bind.
object (optional) table The object that will receive the callback. ( optional )

bindOnHostUnload

areaTrigger:bindOnHostUnload( 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:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
callback string The name of the Lua function to bind.
object (optional) table The object that will receive the callback. ( optional )

bindOnProjectile

areaTrigger:bindOnProjectile( 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:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
callback string The name of the Lua function to bind.
object (optional) table The object that will receive the callback. (optional)

bindOnStay

areaTrigger:bindOnStay( 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:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
callback string The name of the Lua function to bind.
object (optional) table The object that will receive the callback. (optional)

destroy

areaTrigger:destroy(  )

Destroys an area trigger.

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger to be destroyed.

getCharacters

areaTrigger:getCharacters(  )

Gets the trigger collisions for characters inside the area trigger

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.

Returns:

Type Description
table A table of character trigger collisions.

getContents

areaTrigger:getContents(  )

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:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.

Returns:

Type Description
table The table with the content.

getHarvestables

areaTrigger:getHarvestables(  )

Gets the trigger collisions for harvestables inside the area trigger

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.

Returns:

Type Description
table A table of harvestable trigger collisions.

getHostInteractable

areaTrigger:getHostInteractable(  )

Returns the attached host Interactable.

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.

Returns:

Type Description
Interactable The area trigger's host interactable.

getId

areaTrigger:getId(  )

Returns the id of an area trigger.

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.

Returns:

Type Description
integer The area trigger's id.

getShapes

areaTrigger:getShapes(  )

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:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.

Returns:

Type Description
table A table of shape trigger collisions.

getSize

areaTrigger:getSize(  )

Returns the size of an area trigger.

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.

Returns:

Type Description
Vec3 The area trigger's size.

getUserData

areaTrigger:getUserData(  )

Returns the user data set on the area trigger.

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.

Returns:

Type Description
table The user data set on this trigger

getWorld

areaTrigger:getWorld(  )

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

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger user.

Returns:

Type Description
World The current world id of the area trigger.

getWorldMax

areaTrigger:getWorldMax(  )

Returns the world max corner position of an area trigger.

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.

Returns:

Type Description
Vec3 The area trigger's max corner position.

getWorldMin

areaTrigger:getWorldMin(  )

Returns the world min corner position of an area trigger.

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.

Returns:

Type Description
Vec3 The area trigger's min corner position.

getWorldPosition

areaTrigger:getWorldPosition(  )

Returns the world position of an area trigger.

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.

Returns:

Type Description
Vec3 The area trigger's world position.

getWorldRotation

areaTrigger:getWorldRotation(  )

Returns the world rotation of an area trigger.

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.

Returns:

Type Description
Quat The area trigger's world rotation.

hasVoxelTerrainContact

areaTrigger:hasVoxelTerrainContact(  )

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

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.

Returns:

Type Description
boolean Destructable terrain contact.

setCharacterDetection

areaTrigger:setCharacterDetection( 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:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
detectCharacters boolean Character detection on or off.

setDestroyOnErase

areaTrigger:setDestroyOnErase( destroyOnErase )

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

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
destroyOnErase boolean Destroy on erase.

setEraseTime

areaTrigger:setEraseTime( eraseTime )

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

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
eraseTime number The time it takes to erase this area trigger.

setHarvestableDetection

areaTrigger:setHarvestableDetection( 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:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
detectHarvestables boolean Harvestable detection on or off.

setIncludeShapesInContent

areaTrigger:setIncludeShapesInContent( includeShapesInContent )

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

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
includeShapesInContent boolean Include shapes in content on or off.

setShapeDetection

areaTrigger:setShapeDetection( 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:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
detectShapes boolean Shape detection on or off.

setSize

areaTrigger:setSize( size )

Sets the new size of an area trigger.

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
size Vec3 The area trigger's new size.

setVoxelDestructible

areaTrigger:setVoxelDestructible( destructible )

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

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
destructible boolean The state to set

setWaterType

areaTrigger:setWaterType( 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:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
waterType integer The liquid type. (See sm.areaTrigger.liquidType)

setWorldPosition

areaTrigger:setWorldPosition( position )

Sets the new world position of an area trigger.

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
position Vec3 The area trigger's new world position.

setWorldRotation

areaTrigger:setWorldRotation( rotation )

Sets the new world rotation of an area trigger.

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
rotation Quat The area trigger's new world rotation.

Server-only

bindOnMelee

areaTrigger:bindOnMelee( callback, object )

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:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
callback string The name of the Lua function to bind.
object (optional) table The object that will receive the callback. (optional)

Client-only

bindCanErase

areaTrigger:bindCanErase( callback, object )

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

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
callback string The name of the Lua function to bind.
object (optional) table The object that will receive the callback. (optional)

bindCanInteract

areaTrigger:bindCanInteract( callback, object )

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

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
callback string The name of the Lua function to bind.
object (optional) table The object that will receive the callback. (optional)

bindOnErase

areaTrigger:bindOnErase( callback, object )

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

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
callback string The name of the Lua function to bind.
object (optional) table The object that will receive the callback. (optional)

bindOnInteract

areaTrigger:bindOnInteract( callback, object )

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

Parameters:

Name Type Description
areaTrigger AreaTrigger The area trigger instance.
callback string The name of the Lua function to bind.
object (optional) table The object that will receive the callback. (optional)