Guides Behaviours What Are Gameplay Events?

Behaviours 2 min read Updated Apr 2026

What Are Gameplay Events?

Gameplay events let one part of your game react to something that happened somewhere else.

That "something" might be:

  • the player dying
  • an enemy spawning
  • a checkpoint being reached
  • a round starting
  • a button being selected

In Lenga, there are three ways to communicate changes like these:

  • direct method calls
  • EventBus
  • Signal

The right choice depends on the relationship between the sender and the receiver.

Signal overview

Start with the Relationship

Before you choose an event pattern, ask one question:

Does the sender know exactly who should react?

If the answer is yes, a direct method call is often the clearest option.

If the answer is no, and several systems may react independently, use EventBus.

If the answer is yes, but you want one object to expose a reusable callback surface to several listeners, use Signal.

Use EventBus for Decoupled Gameplay Events

EventBus is the usual gameplay choice.

Use it when:

  • listeners should not hold a dispatcher reference
  • several systems may react to the same event
  • the event name matters more than the specific object instance that emitted it
  • you want systems like HUD, audio, flow control, and analytics to react independently

This is the pattern to reach for when you want one event to fan out across your game.

Read next: Use EventBus for Gameplay Events

Use Signal for Owner-Scoped Callbacks

Signal belongs to one specific owner instance.

That means subscribers still need a reference to that owner in order to subscribe.

Use it when:

  • the owner instance is already part of the relationship
  • one object wants to expose a local callback surface
  • several listeners may attach to that exact owner over time
  • once(...), subscriptions, and disposal are useful to you

Read next: Use Signals for Owner-Scoped Callbacks

Direct Calls Are Still Valid

Not every interaction needs an event system.

If one known object needs to tell one known collaborator to do one specific thing, a direct public method call is usually the simplest and most readable option.

Read next: Choose Between Direct Calls, Signals, and EventBus

A Good Learning Path

If this is your first time working through Lenga's event patterns, go in this order:

  1. Use EventBus for Gameplay Events
  2. Use Signals for Owner-Scoped Callbacks
  3. Choose Between Direct Calls, Signals, and EventBus