Niagara Fluids left the experimental flag in UE5.5 and became a normal production plugin in UE5.6. As of UE5.7 it is genuinely shippable: the grid-based 2D and 3D solvers have stabilized, the mesh-to-fluid interop no longer mysteriously explodes, and the GPU budget is predictable enough to fit in a game frame. Epic's showcase content for Fluids has been almost exclusively cinematic VFX — beautiful smoke plumes, water splashes, fire for set dressing. That is the obvious use case, and it has been covered extensively elsewhere.
What has been badly underexplored is using Niagara Fluids as a gameplay system. Fluids that read back to the CPU. Fluids that the player can manipulate. Fluids that kill you, hide you, or solve puzzles. Every generation of engines produces a new class of "simulation-as-gameplay" games — Half-Life 2 had physics objects, Portal had portals, Breath of the Wild had physics-chemistry interactions. Niagara Fluids in 2026 is sitting at roughly the same inflection point. The tools are ready. Almost nobody is using them this way yet.
This post is about how. Concrete example systems, the performance budgets they actually fit into, the limitations you will run into, and the patterns we have found that keep fluid-driven gameplay shippable rather than a tech demo.
What Niagara Fluids actually gives you
Niagara Fluids is a GPU-resident grid simulation layered on top of the normal Niagara particle system. You get:
- 2D grid simulation. A plane of cells, each holding velocity, density, temperature, and optional custom channels. Useful for water on surfaces, ground-level smoke, 2D fluid puzzles.
- 3D grid simulation. A volume of cells. Used for smoke, fire, and volumetric water. Expensive but powerful.
- SPH-like particle fluid. For splashes, small-scale water, blood, oil. Newer and less mature than the grid solver.
- Mesh-to-fluid collision. Skeletal and static meshes can push fluid around via signed distance fields.
- Fluid-to-mesh readback. This is the one nobody talks about. You can sample the fluid state at a world position and pipe it back to Blueprints or C++ on the CPU. It has a cost, and it is the door to everything in this post.
The simulation runs on the GPU. The readback is async and requires a 1–2 frame latency. That latency is fine for gameplay; players do not perceive 33 ms of lag on "is this player in smoke." It would not be fine for, say, a hitscan weapon whose bullets need to deflect off a water surface. Pick your use cases accordingly.
Performance budgets, concretely
The simulation cost depends on grid resolution, voxel count, and which channels you have enabled. Our production budgets on PS5/XSX at 60 Hz, measured on UE5.7.1:
| Simulation | Cost | Notes |
|---|---|---|
| 2D water, 512×512 | 0.6 ms | Very affordable. Good for surface water, footprints-in-water, etc. |
| 2D smoke, 256×256 | 0.4 ms | Ground smoke, fog effects. |
| 3D smoke, 64³ | 1.8 ms | A single room-sized smoke volume. |
| 3D smoke, 128³ | 5.5 ms | A large outdoor smoke volume. Use sparingly. |
| 3D fire, 64³ | 2.4 ms | Fire adds temperature + combustion channels. |
| SPH water, 10k particles | 0.8 ms | A splash, a localized spill. |
| SPH water, 50k particles | 3.2 ms | A flood, a serious water volume. |
Those are per-simulation costs, not cumulative budgets. A realistic gameplay budget is 3–4 ms total for fluids at 60 Hz, or 6–8 ms at 30 Hz. That gets you roughly: one large 3D smoke, several 2D surface simulations, and a handful of SPH splashes on screen at once. You do not get to have three burning buildings with unique 128³ fire sims in your city simulator. Pick your moments.
Readback costs are small but non-zero: roughly 0.1 ms per readback sample per frame, plus a bandwidth cost proportional to the number of samples. 32 readback points total is a comfortable upper bound on console.
The pattern: simulation as authority
The architectural pattern that makes this work is treating the fluid simulation as the authoritative source for gameplay state in its volume. The simulation already knows where the smoke is, where the water is, how hot the fire is. Instead of running a parallel gameplay system that approximates these, you query the simulation and drive gameplay from its answers.
// Simplified — query smoke density at actor location, drive gameplay
float SmokeDensity = FluidSystem->SampleDensityAtLocation(Actor->GetActorLocation());
if (SmokeDensity > ConcealmentThreshold)
{
PerceptionComponent->SetVisibility(false);
}
The subtle win here is that you automatically get emergent behavior. The AI cannot see through smoke because the smoke is there, not because you wrote a "if AI in smoke volume" check. When the player throws a smoke grenade in an unexpected place, the gameplay just works. When the smoke dissipates because of wind, the AI's vision returns on its own. There is no state synchronization problem between your simulation and your gameplay, because there is no parallel system.
The corresponding risk: if your fluid simulation is wrong, your gameplay is wrong. Debugging becomes harder. You need to be comfortable visualizing fluid state in-editor and trusting it.
Example system 1: smoke as tactical cover
The design problem: player throws a smoke grenade. Enemies lose vision on the player. Player can push through and flank. This has been done for twenty years with gameplay volumes that approximate "smoke exists here." What Niagara Fluids gets you is real smoke — smoke that flows around corners, pools in low ground, dissipates against wind, and is locally dense or thin in ways that matter.
Implementation:
- Grenade impact spawns a Niagara system with a 3D smoke simulation at 64³ resolution.
- The simulation runs a standard smoke solver: density advection, buoyancy, dissipation. It also takes collision from the static environment SDF so smoke properly pools in buildings and against walls.
- Every AI perception component ticks at 10 Hz and queries the fluid simulation at its eye position toward the target. The path-integrated density determines a vision occlusion factor.
- If occlusion exceeds a threshold, perception fails.
Gameplay consequences you get for free:
- Smoke flowing through a window creates a vision-blocking volume in the adjacent room with no extra code.
- Players standing in the thin edge of smoke are partially concealed but not invisible — perception reduction scales with density.
- Wind (driven by a Material Parameter Collection global) pushes smoke laterally, meaning you cannot just stand in the middle of a smoke grenade and expect to stay hidden for 10 seconds.
- A burning car's real smoke plume behaves identically to a grenade's smoke.
Performance budget on PS5: one 64³ simulation at 1.8 ms, up to 16 readbacks per frame at 0.1 ms each. Comfortable inside 3 ms. You can have one active smoke grenade or two small ones; more than that, LOD the simulations down to 2D planes at distance.
Limitations:
- Smoke simulation on GPU means it does not exist on dedicated servers. For multiplayer, you have two options. Option A: run a simplified CPU approximation on the server (a set of expanding spheres with density falloff) and use the GPU simulation only for visuals and local player prediction. Option B: accept that smoke concealment is a client-side effect and trust clients to self-report. Option A is what competitive shooters do. Option B is what cooperative games get away with.
Example system 2: fluid puzzles
Fluid puzzles — water you have to route through a path, oil you have to ignite, acid that dissolves things in a specific order — have historically been either scripted (the designer places each stage) or physics-based with rigid-body approximations of fluid. Niagara Fluids lets you make them real.
Implementation: 2D grid simulation on the floor of the puzzle room, 512×512 at world-space resolution of roughly 5 cm per cell. A 10m × 10m room fits well. The simulation tracks fluid height as a density channel; walls, obstacles, and drains are painted into the collision SDF.
Gameplay:
- The player can move obstacles to redirect flow.
- Obstacles affect the SDF, which affects the simulation next frame. Natural behavior.
- Sensors at key points (drains, levers with water wheels) sample fluid height and trigger when above a threshold.
- Drains remove fluid; sources add fluid. The puzzle is solved when fluid reaches the target sensor.
Why this is better than a scripted puzzle:
- Players solve it their way. The simulation does not care how they got the fluid there.
- Speedrunners find solutions you didn't design. This is a feature.
- The same puzzle system generalizes to every room. You do not write "the river puzzle logic" and then "the cistern puzzle logic" as separate systems.
Why this is harder than a scripted puzzle:
- You cannot guarantee the player can solve it. Simulation can produce dead states.
- You need good telegraphing — the player must be able to predict roughly what the fluid will do before they commit.
- Testing requires either running the simulation in the editor or relying on automated solvers. We wrote a simple A* over the SDF graph to verify solvability during level design.
Performance: 2D 512² at 0.6 ms. Fits anywhere.
Example system 3: fire propagation
Fire propagation has been solved a dozen different ways. Far Cry 2's was famous. Most modern implementations are either scripted (fire spreads along predefined paths) or voxelized (each voxel has a flammability state and propagates by rule). Niagara Fluids enables a third approach: the fire simulation itself drives the propagation.
Implementation:
- 3D fire simulation, 64³, running temperature and density channels.
- Flammable objects in the world have a "flammability" value and a spawn-fire location.
- Each flammable object's spawn-fire point samples the fluid temperature every 0.5 seconds. If the sampled temperature exceeds its ignition threshold, the object ignites.
- Igniting an object injects fuel (density) and temperature into the simulation at the ignition point.
- The simulation carries fire laterally via buoyant advection and proximity heat.
What you get:
- Fire spreads through a room as a real simulation. Wooden walls ignite when the flames reach them, not when a scripted timer expires.
- Wind affects fire direction because the simulation is velocity-aware.
- Water sources (from puzzle system 2) can extinguish fires if routed into the volume, because water cells injected into the fire simulation reduce temperature.
Limitations:
- 64³ fire simulation is 2.4 ms. You cannot have three of these in a scene at once on console.
- Fire propagation outside the simulation volume must be handled by a traditional approximation — when fire reaches the edge of the volume, move or extend it, or hand off to a simpler flame system.
- Large wildfires do not fit. You need a hybrid system where the fluid simulation is reserved for the camera's immediate attention zone and distant fires are simple Niagara emitters.
Example system 4: water-based traversal
Water that you can actually push around opens up traversal mechanics that have historically been awkward. Buoyancy, current, wading drag — all of these work correctly if your water is a real fluid simulation. The catch is that the simulation has to cover the traversable area, and 3D grid water is expensive.
The compromise we have shipped: 2D water simulation with a height channel, plus SPH particles for splashes and interaction. The 2D simulation handles the bulk water, the SPH particles handle everything the player touches.
- A 1024×512 2D simulation over a 100×50 m swimmable area at ~10 cm per cell: 1.1 ms.
- Up to 10,000 SPH particles active at once for splashes and impacts: ~0.8 ms.
- Player character queries water height at its position and receives buoyancy force. Drag scales with velocity relative to local current.
This combination yields a traversal system where a player jumping into a river gets pushed downstream, splashes displace water, and fast swimming leaves a wake that affects NPC water visibility for a few seconds. Again, no separate gameplay system for any of this.
What you do not get:
- Diving. 2D water has no depth. If your game has underwater traversal, you need a different system.
- Large-scale boating. The simulation does not cover a whole lake; it covers the local area around the camera. Boats need a secondary ocean surface system that blends with the Niagara simulation in the local area.
Example system 5: crowd sim as gameplay
This is the most speculative example and the one we are most excited about. Niagara Fluids can simulate something that behaves like a crowd — not by simulating individual agents, but by treating a crowd as a fluid with custom velocity fields driven by obstacles and objectives.
A fluid grid where the density represents "people per cell" and velocity represents "direction of travel." Sources at entrances, sinks at exits, obstacles where walls are, objective fields pulling the density toward goals. The result is not individual NPCs, but a density field that can be sampled for gameplay:
- Is the player in a dense crowd? Perception radius reduced (hard to spot a single person in a sea of bodies).
- Player firing a weapon in a dense cell? High collateral damage multiplier.
- Crowd dispersal on gunfire: subtract density, add velocity vectors pointing away from the disturbance. Natural-looking panic flows without simulating 5,000 individuals.
This approach does not replace individual NPC simulation for characters the player actually interacts with. It augments it, providing a cheap way to have plausible background crowd density and behavior at very large scales. A 256×256 2D crowd simulation is 0.5 ms and represents effectively unlimited crowd density.
We are not aware of a shipped game using this technique as of early 2026. If you build it, we want to hear about it.
When you can afford this, and when you cannot
Niagara Fluids gameplay systems are affordable if:
- You are targeting 30 Hz, or you are on PS5/XSX at 60 Hz with otherwise-restrained GPU usage.
- You do not need the fluid state on dedicated servers for competitive multiplayer.
- You can constrain the fluid to a localized area rather than the whole world.
- You have shader complexity headroom — each fluid adds to your overdraw and translucency cost.
They are not affordable if:
- You are targeting Steam Deck at 60 Hz. Budget simply is not there. 30 Hz might work with aggressive scaling.
- You are shipping on Switch 2. Untested; we would be surprised if even 2D simulations fit.
- You have a competitive multiplayer game where fluid state is gameplay-critical and must be authoritative on server.
- You are targeting Series S and already using Lumen Hardware RT. Pick one.
The limitations you will hit
In order of how often we have run into them:
- Mesh-to-fluid collision drift on fast-moving objects. The SDF updates once per frame; a fast projectile moves through several cells per frame and creates an inconsistent velocity field. Workaround: slow the projectile or skip mesh collision for fluid-only-visual objects.
- Grid boundary artifacts. Fluid hitting the edge of the simulation volume either reflects (looks wrong) or leaves (also looks wrong). You have to hide grid edges behind terrain, architecture, or LOD handoffs.
- Determinism. The simulation is not deterministic across hardware. If your gameplay depends on exact simulation state, you cannot rely on it matching between machines. This is the server authority problem from a different angle.
- Profiler support.
stat Niagaragives you top-line numbers, but the breakdown inside a fluid simulation is hard to get at. We ended up instrumenting it ourselves. - Blueprint API ergonomics. Sampling fluid state from Blueprints is workable but verbose. If you are doing a lot of it, write a C++ helper.
- Pak size. Niagara Fluid templates are large. A project with many fluid systems will see a cook size increase of a few hundred MB. Usually fine; worth knowing.
- Editor responsiveness. Running a 128³ fluid in PIE can stutter the editor if you are also running heavy particle systems. Work in a dedicated fluid test map when iterating on the simulation, then integrate.
A reasonable roadmap for adoption
If you are starting to use Niagara Fluids for gameplay for the first time, do it in this order:
- 2D surface water as visual + occasional gameplay (footprints, wakes). One feature, limited risk, obvious benefit.
- Smoke as tactical occluder in one specific gameplay context (grenades in a combat game, concealment ability in a stealth game). Scoped scope.
- Fluid puzzle in one set-piece room. Let the team build confidence in readback and design-around-simulation thinking.
- Fire propagation as a systemic element. This is the point where you are betting on the approach. Do not do it first.
- Crowd density or similarly speculative applications. Only after you trust the core pipeline.
For systemic games that want fluid-driven mechanics from the ground up, Blueprint Template Library includes a set of fluid-interaction Blueprint patterns — readback helpers, smoke-concealment components, and a 2D puzzle controller — that cover the boring plumbing so you can focus on the design. If you want to set up automated fluid profiling runs (different grid resolutions, different hardware tiers, across builds), Unreal MCP Server can drive those from a script or chat interface without you hand-writing the test harness. For cinematic capture of fluid-driven moments — which you will want for trailers — Cinematic Spline Tool has been tuned to handle the framerate irregularities that live fluid simulation can introduce into Sequencer captures.
The underused tool
Niagara Fluids is the rare Unreal feature that has more gameplay potential than its primary audience has explored. The VFX crowd uses it because it is pretty. Gameplay programmers have largely ignored it because it reads as a visual tool. That gap is an opportunity.
The games that will feel genuinely next-generation over the next two years will not be the ones with the best-looking water. They will be the ones where the water, smoke, and fire are part of how you play. That is within reach, on current hardware, in an engine feature that is production-ready right now. The cost is 3–4 ms of GPU time and a willingness to structure gameplay systems around a simulation whose state you query rather than a set of scripted volumes you author.
It is an unusually good tradeoff. Whoever ships first with it well is going to look like they are from the future.