Gameplay publishes once
Event.Combat.DamageApplied
One immutable payload contract, one correlation identity, one structured result.
Unreal Engine 5.8 · Code Plugin
From the makers of Rekall UE
Define an event once. Publish and listen from Blueprint or C++. Route it locally, across authority boundaries, into retained state, through bounded gameplay flows, and across a single correlated diagnostic timeline.
FDamagePayload
The platform
Rekall turns a simple global-event principle into a production architecture: definitions are compiled, payloads are exact, delivery is bounded, network intent is explicit, and every stage can be observed.
Event.Combat.DamageApplied
One immutable payload contract, one correlation identity, one structured result.
Immediate or scheduled phases
Survives World replacement
Authority-aware endpoints
Resume bounded orchestration
Query or explicit replay
Correlated delivery evidence
The plugin in one minute
It lets one gameplay system announce that something happened without needing direct references to every system that may react. Each event has a stable name and an exact data shape.
Name the event and describe its exact payload.
Let interested systems subscribe independently.
Announce the event once when gameplay accepts it.
Every eligible listener receives the same validated contract.
Define → Listen → Publish → React
From first event to production
Model the exact data listeners receive.
Choose identity, delivery, retention, trace, and Network policy.
Compile definitions atomically into the runtime registry.
Publish, bind, wait, query, and replay with concrete pins.
Select scope, schedule, audience, and authority boundary.
Resume bounded orchestration from the same signal.
Inspect Core, Network, and Flow in one timeline.
Project glue
Every system carries its own adapters, conventions, and inspection path.Definition-backed contracts
One declared event carries its payload, routing intent, and diagnostic evidence across the systems that use it.Plugin map
Network, Flow, and Insights extend Core rather than replacing it.
Structured local events and listeners; the foundation.
Policy-controlled transport for selected definitions.
Reusable multi-step gameplay sequences that publish and wait for events.
Editor inspection and correlated diagnosis.
Blueprint-first authoring
Create a Blueprint Struct, point a Rekall Event Definition Data Asset at it, add the definition to a catalog, and use event-specific nodes with the exact payload type.
Actor Target
float Damage
GameplayTag DamageType
Tag Event.Combat.Damage
Payload ST_DamageApplied
Delivery Immediate
Execute
Damage Applied
Result
On Event
Damage Applied
Context
Blueprint node atlas
29 showcased Blueprint nodes make the definition visible in the graph. Inputs and Outputs are Unreal macro scaffolding, not additional Rekall nodes.
Use concrete pins to make the producer and listener agree without a project-specific adapter layer.
Explore every node →
Choose scope, schedule, audience, and retained-state behavior where gameplay needs it.
Explore every node →
Control compiled Flow lifecycles from Blueprint while keeping instance state and execution limits visible.
Explore every node →Mixed Blueprint / C++ teams
const FDamageApplied Payload{
.Target = Target,
.Damage = 42.0f
};
DamageApplied.Publish(World, Payload);
Delivery control
Every route is explicit, validated, and bounded. Definition defaults make common behavior effortless; per-publication overrides make exceptions honest.
World-local delivery or Game Instance continuity across World replacement.
Immediate, Next Tick, Pre Physics, Post Physics, or End Frame with stable priority ordering.
Broadcast, directed owner, local player, or gameplay-tag-query audience selection.
Keep latest, latest per audience, query explicitly, or replay to a live subscription.
Weak owners, call limits, move-only native handles, component cleanup, and safe mutation snapshots.
Certified POD payloads enter through a bounded arbitrary-thread queue and resolve on the game thread.
Secure event transport
Client-originated events enter through player-owned endpoints. The server resolves the live Core definition, applies the Network policy, checks direction, schema, rate and byte budgets, then republishes locally with authoritative context.
Rekall Flow
A Flow is a reusable gameplay sequence saved as an asset. Connect steps such as Publish, Wait Event, Delay, a named Condition or Action, Branch for an authored boolean, and End; start the asset for an owner; then let it advance, wait, pause, complete, fail, or be cancelled.
Its compiled plans run inside explicit instance, memory, iteration, history, and per-frame step budgets.
Wait Event wakes on the pickup tag. Invoke Condition calls the registered Has Key condition and chooses its success or false edge. Nodes in the asset describe the sequence; Start / Pause / Resume / Cancel / Get Info / Query control running instances from ordinary Blueprint graphs.
Rekall Insights
Accepted, queued, retained, networked, replayed, delivered, skipped, and Flow-transition records meet in one bounded timeline. Attempt and delivery identities make causality navigable.
Where the contract pays off
Producer: an inventory component publishes a typed item-state payload. Contract: the definition retains the latest value for its audience. Consumers: HUD, quick-slot, and menu widgets bind or replay it. Rekall removes the project glue that would otherwise synchronize each view.
Producer: gameplay publishes an objective or enemy-defeated event. Contract: its exact payload is available to Wait and Flow. Consumers: encounter logic, objectives, and reward steps resume from the same signal, rather than custom callbacks between every stage.
Producer: a player-owned endpoint submits a combat intent. Contract: the definition's Network policy checks authority, schema, and budgets before the selected audience route. Consumers: server systems and approved clients receive the authoritative event without bespoke replication glue.
Producer: any gameplay system publishes an event with a correlation. Contract: Core, Network, and Flow preserve that identity. Consumers: engineers and QA inspect the live timeline to follow delivery, retention, and orchestration instead of reconstructing a path from scattered logs.
Built for production pressure
Queues, retained entries, audience queries, snapshots, Flow instances, late-join state, and trace records all have explicit limits.
Deferred, retained, replayed, traced, and in-flight payloads participate in GC across every arbitrary callback boundary.
Subscription snapshots freeze membership. Reentrant sinks and providers are revalidated. Removed handles do not revive.
Blueprint and C++ callers get explicit status, diagnostic code, counts, attempt identity, and correlation—not ambiguous booleans.
Core, Network, and Flow ship as the runtime package. Editor nodes, Insights UI, tests, and QA definitions stay out of game receipts.
Data Assets compile into one validated registry. Defaults apply predictably and schema drift is rejected instead of coerced.
Where it fits
Author exact events visually and use typed nodes without learning a C++ event bus.
Use typed native facades, scoped RAII subscriptions, worker handoff, and extension interfaces.
Keep transport policy explicit and server-authoritative across listen and dedicated deployments.
Validate assets before cook and follow one correlation through routing, network, Flow, and replay.
Questions
Yes. Create a Blueprint Struct payload, a Rekall Event Definition Data Asset, and add it to a catalog. Definition-specific nodes expose that exact struct for publishing, listening, waiting, retained queries, replay, and network publication.
Yes. Core is a complete standalone local event platform. The Network module adds policy-driven transport when needed, and its standalone path bypasses RPCs while retaining contract validation.
Yes. Both surfaces resolve the same compiled definition and exact payload contract. Teams can choose the authoring environment that fits each system without building adapters.
The system is designed against that failure mode. Queues, retained state, thread handoff, network caches, trace capture, and Flow execution use explicit item, byte, step, or history budgets.
The installed customer plugin contains Core, Network, Flow, Editor, and Insights. Game, Client, and Server runtime receipts include Core plus the runtime features used by the project; Editor, Insights, automation tests, QA tags, and docs-test modules are excluded.
Choose the right boundary
Rekall is deliberate about where it belongs. Use the tool that matches the ownership, replication, or decision problem in front of you.
| Need | Start with | Why |
|---|---|---|
| One object must synchronously command another | Direct call | The dependency is intentional. |
| One owner exposes a callback to known observers | Delegate or interface | Local ownership is already clear. |
| Authoritative gameplay state must reach clients | Replicated property or RPC | Unreal replication owns gameplay truth. |
| Loosely coupled structured gameplay notification | Rekall Core | Many systems react to one exact event contract. |
| Selected event must cross authority boundaries | Rekall Network | Explicit policy and server admission are required. |
| Multi-step event-driven sequence | Rekall Flow | The sequence should be data-authored and inspectable. |
| AI/state decision model | StateTree or Behavior Tree | Decision/state semantics are the primary problem. |
Gameplay Message Subsystem is also a valid alternative for projects already standardized around its message model.
Buyer guide
Start with the mental model, build one event, choose the right mechanism, then follow Flow, node, and packaging paths as your project needs them.
Launch pricing
For individual developers and qualifying teams under Fab’s Personal tier.
For studios and teams qualifying for Fab’s Professional tier.
Version 1.0.0 for UE 5.8 · Win64 Editor, Game, Shipping cook, and standalone/listen/dedicated runtime modes verified.