Message¶
Category: Listener Tier: Basic
Purpose¶
Listens for messages sent via Message Executor on a specific subject/channel, enabling object-to-object communication.
Visual Reference¶

When To Use¶
Event broadcasting (boss dies -> trigger cutscene)
UI updates (score changes -> update HUD)
State synchronization (button pressed -> open door)
Combat systems (projectile hits -> trigger damage)
Quest systems (item collected -> check quest completion)
Audio triggers (footstep -> play sound at location)
Runtime Behavior¶
Triggers: When a message with matching subject is received (stored in node metadata)
Properties¶
Property |
Type |
Default |
Notes |
|---|---|---|---|
subject |
string, “” |
Message channel to listen to (empty = any message) |
|
store_body |
bool, false |
Store message body in Local Variable message_body |
|
store_sender |
bool, false |
Store sender object name in Local Variable message_sender |
Example Use Cases¶
Door Opens When Button Pressed:
// Button object:
Collision(Player) -> AND -> Message(subject=door1_open)
// Door object:
Message(subject=door1_open) -> AND -> Motion(move up)
Broadcast Boss Death:
// Boss object:
Property(HP, Less or Equal, 0) -> AND -> Message(subject=boss_defeated)
// Multiple listeners:
Message(subject=boss_defeated) -> AND -> Music(victory)
Message(subject=boss_defeated) -> AND -> Scene(load_next_level)
Message(subject=boss_defeated) -> AND -> Property(quest_complete, Set, true)
Pass Data in Message:
// Sender:
Collision -> AND -> Message(subject=damage, body=25)
// Receiver:
Message(subject=damage, store_body=true) -> AND -> Math(HP, Subtract, $message_body)
// Subtracts the damage amount from message
Know Who Sent Message:
Message(subject=player_action, store_sender=true) -> AND -> PRINT($message_sender triggered action)