AreaTrigger
A userdata object representing an area trigger in the game.
Values:
-
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:
- self (table) – The class instance.
- trigger (AreaTrigger) – The area trigger instance.
- results (table) – A table of characters and/or bodies and/or harvestables and/or lifts and/or areaTriggers.
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:
- self (table) – The class instance.
- trigger (AreaTrigger) – The area trigger instance.
- results (table) – A table of characters and/or bodies and/or harvestables and/or lifts and/or areaTriggers.
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:
- self (table) – The class instance.
- trigger (AreaTrigger) – The area trigger instance.
- results (table) – A table of characters and/or bodies and/or harvestables and/or lifts and/or areaTriggers.
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) |