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

As added to your scene
Message brick as it appears in the GDLink editor

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)

Generated UI Mockup — showing expanded properties
Message
-
x
Name:
Label this brick...
Subject Filter:
v
Invert

Properties

Property

Type

Default

Notes

Subject

string

For Listener: subject to listen for (empty=any). For Executor: subject to send

Target

string

[Executor only] Target object name (empty = broadcast to all)

Body Type

option

Text

[Executor only] Send text message or property value

Body/Property

string

[Executor only] Message text or property name to send

Scope

option

Local

[Executor only] Read property from local or global variables

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)