When entering PIE in Unreal Engine 5.8.1, my Mesh Terrain disappears. The collision from the terrain remains, but the meshes never stream in.
I have done the following:
Set up a Mesh Partition Definition
This MPD includes all of the Device Profiles and other assets from MPD_Default
Compiled the Mesh Terrain
The Mesh Terrain appears as normal when outside of PIE. I have ensured Nanite is fully functional. The terrain is a default Mesh Terrain square and three Static Mesh Boolean Modifiers.
My hypothesis: when loading in PIE, the Collision asset shows in the Outliner, but neither of the compiled Static Mesh profile assets show, leading me to believe that the absence of these assets during PIE prevents the terrain from loading.
What Type of Bug are you experiencing?
World Creation Tools
Steps to Reproduce
Create an empty open-world map with a Sky Atmosphere, Directional Light, Volumetric Clouds, and a Skylight
Add to this a default Mesh Terrain square, with three Static Mesh Boolean Modifiers
Duplicate the default MPD and add your own material
Compile the Mesh Terrain
Load into PIE
Expected Result
The Mesh Terrain should appear exactly as defined in the Mesh Partition Definition, and as it does outside of PIE.
Observed Result
The Mesh Terrain does not load, and you are left with an empty black map with collision. The Compiled Collision asset loads, but neither of the Compiled Device Profile Static Mesh assets are loaded.
The editor loads cells directly, but PIE uses the World Partition Runtime Hash — and mesh terrain streaming additionally goes through your Mesh Partition Definition. ‘Looks normal in editor, missing in PIE’ is the signature of the runtime hash being stale:
Rebuild it: World Partition > Build (rebuild runtime hash) after adding the mesh terrain + modifiers. If the hash wasn’t rebuilt after the mesh terrain was created, PIE never streams those actors in. This is the most likely cause.
MPD device profiles: PIE runs under the game’s device profile (Windows), not the editor’s. Confirm your MPD actually includes the profile active during PIE, and that none of the three Boolean Modifiers are restricted to a profile PIE isn’t using.
Read the log during PIE: filter for WorldPartition / streaming warnings — they name the cells that decide not to load, which separates hash problems from MPD problems. wp.Runtime.RuntimeHashLog 1 gives detailed hash logging.
Bisect: force-load everything for a test run (load all cells / enable the relevant data layer) — if the meshes appear when forced, it’s config (hash/MPD); if they still don’t, it’s a build problem with the mesh terrain itself.
Collision surviving while meshes don’t stream fits the hash theory — start with step 1, it’s the one that matches your symptoms exactly.
thanks for the response. I have already solved the issue, apparently this wasn’t a bug after all. I just hadn’t thought to come back and delete this post
For those who find this post in the future, the problem was the Per-Platform Runtime Settings field. Every field in your Mesh Partition Definition must be filled out in order for Mesh Partition to run properly, and for it to be built. When you create a new Mesh Terrain square, make sure you copy everything from MPD_Default (last I checked the Engine has two, so make sure you use the filled-in one) to create your MPD (Mesh Partition Definition).
I thought about making a Mesh Terrain setup tutorial here, but I just haven’t gotten around to it yet. I now know quite a lot about the system, after some extensive study to figure out why things weren’t working lol. For example: when testing in-Editor, make sure that your Mesh Partition is compiled, otherwise time-to-PIE can be very long.