The Trigger system provides a flexible event-driven mechanism for game object interactions. Triggers can move, scale, activate, and sequence actions on target entities when activated by player collision or timers.
For comprehensive documentation, see Trigger System Guide
Creates a new trigger instance.
Parameters:
x,y(number): Position coordinateswidth,height(number): Trigger collision areaprops(table, optional): Properties from Tiled map
Properties:
action(string): Action type -"move","scale","activate","sequence","cutscene","timer"(default:"move")targetId(number|object reference): ID of target objectmoveX,moveY(number): Movement distancescale,scaleX,scaleY(number): Scaling valuesspeed(number): Movement speed (pixels/second)duration(number): Action duration (seconds)delay(number): Delay before action startsonce(boolean): Whether trigger activates only once (default:true)timerDelay(number): Auto-activation delay for timer triggers
Activates the trigger, executing its action.
Called when player collides with trigger.
Parameters:
player(player object): The player
Updates trigger state (movement, scaling, timers).
Executes move action on target.
Executes scale action on target.
Activates target trigger/object.
Starts sequence execution.
Starts cutscene.
Moves target entity smoothly.
trigger.action = "move"
trigger.targetId = boxId
trigger.moveX = 100
trigger.moveY = 0
trigger.speed = 50 -- or duration = 2.0Scales target entity smoothly.
trigger.action = "scale"
trigger.targetId = boxId
trigger.scale = 0.5 -- Shrink to half size
trigger.duration = 1.0Activates another trigger or object.
trigger.action = "activate"
trigger.targetId = otherTriggerIdExecutes multiple actions in sequence.
trigger.action = "sequence"
trigger.sequence = {
{ action = "move", moveX = 100, duration = 1.0 },
{ action = "wait", delay = 0.5 },
{ action = "scale", scale = 0.5, duration = 1.0 }
}Auto-activates after delay.
trigger.action = "timer"
trigger.timerDelay = 3.0 -- Activate after 3 secondsTriggers a cutscene.
trigger.action = "cutscene"
trigger.cutscene = {
{ type = "wait", duration = 1.0 },
{ type = "showText", text = "Hello!", duration = 3.0 }
}- Trigger System Guide - Comprehensive guide
- Tiled Integration Guide
- Cutscene API