RogueVoxel Unreal Engine 5.7 and 5.8

A Landscape can't be dug. RogueVoxel terrain can.

Unreal's Landscape stops changing when the game starts. RogueVoxel is smooth terrain that players can dig into and build up during a multiplayer match. The server checks every edit, and designers get sculpt, paint and foliage tools that work the way they do on a Landscape.

See how it works In development · coming soon Windows · Linux dedicated server · Works with Iris
The terrain, seen from the side illustration
caves dig place player
A player asks toThe serverOther players see
Dig a hole, 1.2 m radius
Applies it
The same hole
Place a mound, 1.2 m radius
Applies it
The same mound
Default limits: 1.5 m radius, 3 digs at once, then one every 0.1 s.You can change all three.
The problem

Landscape terrain is fixed once the game is running.

A Landscape stores one height for each point on the map. It has no way to hold a cave or an overhang, and players cannot change it. A game about digging needs tunnels that stay where a player carved them and craters that are still there after a reconnect.

Replacing the Landscape with a voxel mesh creates two new jobs. Navmesh, foliage painting, grass, water, PCG and World Partition were built around Landscape and have to work on the new terrain. Every edit also has to reach each connected player, anyone who joins later, and the save file.

How it works

Add one component and bind two inputs.

The terrain is a smooth 3D volume, so it can hold caves, overhangs and tunnels. It stays detailed where the players are and cheap to draw everywhere else, with no visible seams.

Every player sees the same terrain. Someone who joins mid-match gets it as it is now, with every hole and mound already there, and a saved game brings it back the same way.

In your character

Ask

Add the Voxel Edit component to your character. Call Request Dig from your dig input and Request Place from your place input.

On the server

Check and apply

The server finds the spot the player is looking at and enforces your limits on reach, hole size and dig rate. You can add rules of your own in Blueprint.

For every player

Stay in sync

The edit goes out to all connected clients. Players who join later receive it too, and it is written to the save.

Landscape features

What happens to each Landscape feature.

Each feature below either works the way it does on a Landscape, has a RogueVoxel version, or is unsupported and comes with a workaround. The optional ones stay off until you enable them, and a feature you leave off adds no cost.

Works as on LandscapeLine traces and collisionAlways on. Trace against the terrain like any other geometry.
Works as on Landscape · optionalNavmeshAI paths update around every dig and placement.
Works as on Landscape · optionalRuntime Virtual TexturesThe terrain writes into the RVT assets you assign. A wrong setup logs a warning.
Works as on LandscapePCGA sampler node gives your graph points on the ground and on cave ceilings, with slope and material layer data.
Works as on LandscapeFoliage paintingUnreal's own Foliage mode paints straight onto the terrain, with all of its tools.
RogueVoxel versionSculpt toolsA set of sculpting tools made for this terrain. They feel like the Landscape ones, so shaping it needs no new habits, and they reach walls and cave ceilings too.
Works as on LandscapeLayer paintingPaint, Smooth, Flatten and Noise on material layers. A terrain can have up to 8 layers.
RogueVoxel versionFoliage on changing groundPainted foliage hides when its ground is dug away and returns when the ground does. Regrowth timers are optional.
RogueVoxel versionGrassGrass scatters from your painted layers. Dug ground loses its grass, which can grow back on a timer.
RogueVoxel versionStamps and tunnelsClick to add or cut out basic shapes. Ctrl+click a path to carve a tunnel along it.
RogueVoxel versionWorld Partition and HLODTerrain streams in with your World Partition regions, and distant regions show a simplified mesh.
WorkaroundPhysical materialsA trace hit does not return a per-surface physical material. Ask the terrain which layer is under a point and choose footstep sounds from that.
RogueVoxel version · optionalWaterPlace a water body around a lake, pond or flooded cave. A hole dug into it floods, and a cut through its rim drains it down to the cut. Every player sees the same level.
Workaround · experimentalEpic's Water pluginA documented setup makes Epic's Water plugin render on the terrain. Digging does not change that water.
Large worlds

What keeps a large world fast.

In our stress test, 32 bots dug 320 times a second. The server needed about 4 ms of each 33 ms frame, each dig cost about 53 bytes per player, and a player watching it all kept about 117 frames a second.

On by default

Detail where it matters

Terrain near the players is drawn in full detail and terrain farther away with less, so a large world stays quick to render.

Optional

Pre-built terrain

Bake the terrain in the editor so players load into the world faster.

Always on

Small saves, quick joins

However much the players dig, the save file and what a joining player has to download stay small.

Engines and platforms

Tested separately on UE 5.7 and 5.8.

Each engine version gets its own build, and every change goes through an automated test pipeline on both before it ships.

5.8Supported
5.7Supported
5.6Not supported now
5.5Not supported now
Linux dedicated serverTested running on UE 5.8, under WSL2. On UE 5.7 it is confirmed to build and cook.
Unreal's default replicationPasses scripted multiplayer tests of digging, runtime caves and late joining, on a clean connection and on a simulated internet connection.
Iris replicationPasses the same tests on UE 5.8. On UE 5.7 the Iris code compiles and passes the automated tests, but the multiplayer tests were not run with it. Iris needs a launch flag and one ini setting in your project.
Water in multiplayerTested over the network on UE 5.8, with both kinds of replication and on the Linux dedicated server. Every client showed the server's water level and caught up within a second.
What it does not do

Known limits.

RogueVoxel handles terrain. The items below are outside what it does today.

Game systemsThe plugin can save the terrain edits. Inventory, quests and the rest of your save game stay in your code, and the plugin gives you functions and events to connect them to.
Physical materials on trace hitsA trace against the terrain does not return a per-surface physical material. Use the layer query for footsteps and impacts.
PCG that follows player editsThe PCG sampler sees the terrain as you authored it and misses holes that players dig at runtime. To react to those, call the terrain query functions from your own PCG Blueprint element.
Linux client and editorUntested, so unsupported for now. The dedicated server is the tested Linux target.
Included

Six sample maps come with the plugin.

Enable Show Plugin Content in the Content Browser to find them.

DigA standard Character with the Voxel Edit component and two input bindings. Press Play, then dig with the left mouse button and place with the right.
Cave entryA surface entrance and a tunnel leading down to a small dungeon, carved when the level starts.
Generator presetsRolling Hills, Mountains and Caverns presets for the terrain generator. Copy one and change its values.
Eight layersA terrain material with 8 layers. You choose the textures in a material instance.
WaterA lake, a pond on a terrace above it and a flooded cave. A fourth basin sits behind a thin wall: dig through the wall and the water drains to the cut.
PCGA scatter graph that uses the sampler node.
Availability

RogueVoxel is not released yet.

It is in development. The price and licence will be published at release.

RogueVoxel installs like any other engine plugin. Once it is enabled, open the Dig sample map and press Play.

Coming soon Ask about the release