Quick answer: Writer and reader must reference the same Data Channel asset. Confirm execution order: writer’s emitter ticks before reader, or set Read Latest Frame to allow delayed reads.
A magic-spell system uses Niagara Data Channels to broadcast impact events from a hit-detection emitter to a sparks emitter. Sparks never trigger; data channel reads come back empty.
Channel Asset Identity
Open both emitters. Confirm the Data Channel asset reference in Write and Read modules is the same UAsset (not just same name). Duplicated channels look identical but are isolated.
Execution Order
Niagara Data Channels propagate within a frame, but writer must execute before reader. In editor:
- Single system, multiple emitters: ordering is top-to-bottom in the emitter list. Reorder.
- Cross-system: ordering by NDC Tick Group. Set writer to TG_PrePhysics, reader to TG_PostPhysics.
Read Mode
The Read Module has a mode:
- Read Latest This Frame: same-frame.
- Read Latest Prev Frame: 1-frame delay; relaxes ordering.
For loose coupling between emitters, prev-frame mode avoids ordering brittleness.
Debugger
Window → Niagara → Niagara Debugger. Find your system; expand Data Channels. Per-frame contents shown. If empty in writer’s frame, the writer wasn’t producing data — check upstream.
Writer Spawn Rate
Writer emitter must have non-zero particle spawn on impact frames. If your Spawn Burst is gated by a parameter, ensure it’s set when impact happens.
Verifying
Trigger an impact. Debugger: writer’s NDC frame N has 1 event. Reader’s frame N reads 1 event. Sparks emitter spawns at the right location.
“Same channel asset, correct ordering. The two rules for data channels working at all.”
For cross-actor communication, prefer NDC over Blueprint event-driven flow — it scales to thousands of events per frame without the dispatch overhead.