# messageReceived [Built-ins](README.md) Canonical ID: `events.messageReceived`. Nederlands: `berichtOntvangen`. Registers a script for an exact, case-sensitive message name. The name must appear directly as a nonempty text literal in the header. Each matching broadcast creates a new invocation with fresh locals; globals remain shared. Registering message handlers alone does not keep an otherwise finished program waiting for external messages. ## Signature ```text when messageReceived("message"): ``` ## Arguments | Parameter | Type | Requirement | |---|---|---| | `message` | Text literal | Direct nonempty literal; exact matching, no implicit translation. | ## Return value Event descriptor. ## Example ```pliro # language: en when started(): broadcast("go") when messageReceived("go"): say "Pliro" ``` Prints `Pliro` once. ## Notes and common mistakes Use the function name for your source language. Its [canonical ID](../concepts/canonical-identity.md) is a shared documentation label; you do not type that ID as a call. Giving your own variable or function the same name can hide the built-in. Supply the documented [arguments](../concepts/parameters-and-arguments.md) and value types. Pliro reports mismatches when checking can detect them, or when the call runs. An **event descriptor** selects the event in a top-level `when` header, outside other blocks (`E3201`–`E3203`). A **reporter** is an ordinary function that returns a value, such as `pointerX`; `broadcast` is an ordinary call too. A **handler** is the block reacting to an event. Key and pointer handlers keep a run ready for future input and need [host support](../guides/hosts.md) (`E4019`). Pointer reporters need the current pointer event (`E4020`). The whole run has a shared [event-work limit](../guides/limits.md) (`E4018`). Ordinary setup must finish before handlers get turns. See [event rules](../guides/events.md) and [pointer positions](../guides/pointer-input.md). ## Related entries [started](started.md) · [after](after.md) · [keyPressed](keyPressed.md) · [pointerPressed](pointerPressed.md) · [pointerReleased](pointerReleased.md) · [Programming guides](../guides/events.md) · [Host support](../guides/hosts.md) · [Calls and arguments](../syntax/calls.md)