Action Block Fields

Action Block Fields

An actions { } block inside an event_handler can produce three distinct effects: emit an event, activate a logical signal, or award points. Each uses a different HCL keyword, and the three are not interchangeable.

Keywords

KeywordEffect
emitInjects a named event into the event handler layer. Downstream event_handler blocks that listen for this name will fire.
fire_signalActivates a named logical signal. The signal’s completion handlers, cascades, and dependent rules all run.
pointsAwards points to the active player’s score.

emit and fire_signal look similar but behave differently: emit produces a plain event, while fire_signal runs the named signal through the signal processing layer (including any of its conditions and cascades).

Example

event_handler "combo_complete" {
  when = "shot.left_orbit.complete"

  actions {
    fire_signal = "combo_jackpot"
    emit        = "combo_scored"
    data = {
      device = "left_orbit"
    }
    points = 25000
  }
}

score "jackpot_rule" {
  when   = "combo_jackpot.complete"
  points = 100000
}

Score Block when

The score block uses when to declare which event or signal it listens for. This matches the same keyword used in event_handler blocks:

score "orbit_shot" {
  when   = "shot.left_orbit.complete"
  points = 5000
}

Migration Notes

Earlier versions used trigger = in both contexts. The action-block form is now fire_signal = and the score-block form is now when =. Neither trigger = form is accepted by the current parser — update existing configs before loading them.