Landscape Components Intermittently Loading with No Collision in Packaged Build

The packaged build of my game does not consistently load landscape collision for all landscape components when streamed in with World Partition. After traveling far enough from the spawn point that new levels start to load in, one will eventually load with no collision and any actors with physics enabled will immediately fall through on contact.

This problem only occurs with the packaged build of the game, and is not present when playing in editor. It seems to be connected to the level streaming process itself as this problem has a few odd features:

  • The landscape component effected by this problem is different every time. On the same build, if you move far enough away from the landscape component, then move back the collision will often start working again. Travel far enough away and a different component will fail eventually.

  • Collision will also be missing from a different component every time a user launches the game.

  • Collision failure rate is low, a component will fail maybe 1 in 30 times, but once it fails it will not collide with anything until either relaunching or moving far enough away that it unloads and then streams back in.

  • Iā€™ve never observed collision to fail in the initial components the game loads at launch, only subsequent streamed-in landscape components. Collision does not fail in any other noticeable pattern or region of the map. Once I find a component with missing collision, all the surrounding components and any static meshes within that component still have proper collision.

  • Collision will fail both on totally bare, unmodified landscape components and on landscape components with spline roads, static meshes, foliage, material paint layers, etc.

  • My landscape is approximately 40x40km. Large enough to need world partition to perform well, but well within the supported dimensions of UE 5.3ā€™s landscape system.

  • The problem has followed me across UE 5.2, and 5.3.

Troubleshooting has been fairly fruitless, as there doesnā€™t seem to be anything obvious going on to cause the issue.

  • I inspected collision for every landscape component and it appears fine. Every component does have proper collision in the editor.

  • This problem occurs across several test machine with specs ranging from low to higher-end, with ram ranging from 32 to 128 gigabytes. VRAM and RAM usage on all clients are fine, never coming close to running out. CPU and GPU are not bottlenecked. The game performs well when the problem occurs, never dropping below 90 fps on the higher-end test machine. SSD read/write speeds also do not approach capacity.

  • Changing collision mip level does not fix the issue.

  • Rebuilding/Deleting HLODs does not fix the issue, neither does unticking ā€œinclude actor in HLODā€ for all landscape components.

  • Changing LOD settings also does not seem to impact anything, adding additional LOD levels, altering LOD screen size settings, etc does not mitigate the issue.

  • The only thing that fixes the problem is disabling spatial loading for all landscape components, which obviously is not a good solution as it disables world partition for the landscape components entirely.

Iā€™ve been searching pretty extensively for information on this problem for a month or so now, off and on, and have not found anyone who has this exact issue, aside from a few one-off posts on reddit with no replies and sparse information about the problem.

8 Likes

Just wanted to chime in even though I havenā€™t done extensive testing as you have, I am having the same issue as well in version 5.3 (the version in which I first started noticing problems with landscape collisions on packaging the game).

Iā€™ve built my landscape from a 2017-resolution height map, at 64 landscape components in total. Neither using the new 5.3 nanite landscape feature nor basic non-nanite landscape has any bearing on the collisions missing it seems.

For my part, I have missing landscape collisions right at player spawn on the next landscape component over. Falling through it and exiting to menu and starting a new game causes the collision to now load properly. Iā€™ve had this happen consistently for a day or two now.

Have you tried making a new empty map and building the landscape again, just as a test? I was thinking if something could break with the interaction between world partition and maps due to updating the engine, causing some weird loading issues.

I have tried that, unfortunately the issue persists. The odd thing is, I think itā€™s something to do with the level streaming itself rather than the world because itā€™s never the same landscape component that fails for me.

I did some further testing this week and did start to narrow in on a cause though: in all the components where collision fails, the LOD gets stuck at LOD 5, and never updates until it unloads from memory and has a chance to reload. Iā€™ve been building debug builds around the LOD issue to try to troubleshoot it further, but it probably is not a coincidence that collision is failing in segments that are also failing to update LOD as the player gets closer.

Since posting this Iā€™ve tried:

  • Remaking the landscape from scratch in a new project out of a new batch of heightmap files
  • Migrating the old map to a new clean project
  • Cutting the landscape up into 4 smaller chunks and stitching 4 separate landscapes together
  • Lowering the collision mip level
  • Setting a lower collision mip level for the simple collision
  • Forcing the map to LOD 0, forcing it to LOD 1, and forcing it to LOD 2
  • Disabling texture streaming
  • Changing the world partition grid sizes to match the landscape component shape
  • Shrinking the world partition distance to only render a tiny area at once
  • Increasing the world partition distance to render a huge area at once
  • Removing foliage and all actors except the landscape itself, the player start, a directional light, a sky light, and a sky atmosphere

It will sometimes take an hour or more for a landscape component to fail, but it inevitably does fail. Iā€™ve been doing some GPU and CPU profiling while this is happening and both never approach capacity, VRAM has never approached capacity, and system ram usage is pretty low. No issues with streaming pool sizes or anything similar.

Also maddeningly, this only happens in the packaged build. No matter how much I test, it never fails once in editor. Iā€™m a little at a loss after weeks of trying to debug this.

Iā€™m here because I am experiencing the exact same issue. My project was upgraded from UE5.2 ā†’ UE5.3.

In UE5.2 I was able to cook, package, and test without any issues. I NEVER experienced this before but then when I packaged in UE5.3, the landscape loaded without any collision. If I run the packaged game 10 times, one of those times, the landscape collision will work.

I have no idea why.

At first, I noticed that the landscape component my playerstart was closest to never actually loaded and would give me a weird graphical replacement on the landscape (I am unsure how to describe it) but, after repackaging the game, the landscape appears now but without any collision on this very specific component. (Iā€™m unsure if this issue affects other landscape components in the level)

I followed all the guidelines by Epic regarding world partition and I am following them to the ā€˜Tā€™.

Iā€™ve had this problem for weeks now.

Today I initially had the issue but then I tried the below to try and force the collision to rebuild itself:

  • I simply edited the landscape using the Landscape sculpting tool (On the specific component I was having issues with)
  • Changed the Simple collision Mip Level and the Collision Mip Level to something other than ā€˜0ā€™ then saved and changed it back
  • Changed the collision settings to ā€˜NoCollisionā€™ saving the landscape and then reverting the collision back to the default ā€˜BlockAllā€™
  • I disabled ā€˜Generate Overlap Eventsā€™

As of right now, my landscape is using the default collision Mip level and works more, but every other time I load the packaged game, the collision still doesnā€™t work.

I hope this helps you. I will keep watching this forum and will update any other issues I find.

Looks like they fixed this in 5.4
We integrated 27685861 from UE5-main which resolved this issue for us (in 5.3)

8 Likes

Thatā€™s very encouraging, thank you!

Not sure if this is somehow related, but I found collision breaks after adding or removing landscape components. The fix is to change the Cell Size in the World Settings (under the World Partition heading). Instead of 12800, try power of 2 values, such as 8192 or 16384 (although other non-power of 2 values appear to still work). This also can solve the issue with landscape streaming proxies not loading when the player is close to their boundary (however, this fix has not been tested in an actual build, just in-Editor).

Has this problem been solved? What should I do? Thank you very much.

How should I find this fix? thanks

The GitHub commit corresponding to 27685861 is: https://github.com/EpicGames/UnrealEngine/commit/131db749c64a8a5f1b96a6f836a884624429154a#diff-2c7ebdfe53b5fd76c3c2193f3460fb91a9e19b4fa21a3f9d3107c2b67b4dea60

We also started encountering this issue after upgrading to 5.3 and thankfully we found this thread early on. Thanks for documenting this here :pray:

We tried to integrate the fix mentioned above but its kinda hard to add without considering ā€œChaos implicit object ref counted ptrā€ / TUniquePtr ā†’ TRefCountPtr change. Maybe there is an easy way to add this but we couldnā€™t see it.

We just applied the ā€œworkaroundā€ CL that has since been superseded by the ā€œproperā€ fix above. Easy to add and we didnt notice the additional memory cost associated with the workaround.

4 Likes

I have an online game and on the client I get the same error. But the server (host) handles the collision correctly.
But here is the client for which landscape cells are streamed, without a collision (not all cells, but I didnā€™t find a pattern).
I only know that this problem was fixed in 5.4, but you understand that you cannot use this version due to other errors.
I tried using the commits that are indicated in the post, but so far they have not led to the desired result.
Maybe someone can suggest a fix that can be pulled out of 5.4 ?

ŠœŠ¾Š¶ŠµŃ‚ Š±Ń‹Ń‚ŃŒ этŠ¾ ŠŗŠ°Šŗ тŠ¾ ŠæŠ¾Š¼Š¾Š¶ŠµŃ‚. ŠœŠ¾Š¹ ŠøŠ³Ń€Š¾Š²Š¾Š¹ ŠŗŠ»ŠøŠµŠ½Ń‚ ŠæŠ¾ŠŗŠ°Š·Ń‹Š²Š°ŠµŃ‚ этŠ¾ ŠæрŠµŠ“уŠæрŠµŠ¶Š“ŠµŠ½ŠøŠµ.

(LogNetPackageMap: Warning: Using None instead of replicated reference to LandscapeHeightfieldCollisionComponent //Maps//Generated/56EBXNPE.map_name:PersistentLevel.LandscapeStreamingProxy_94G6F8OD_126_1_2_0.LandscapeHeightfieldCollisionComponent_35 because the level itā€™s in has not been made visible )

Any update on this? I get the landscape working but after a few tweakings in production it started to lost the collision againā€¦ not sure what to do to solve the problem

At the moment iā€™m waiting for the changes to hit the next version of UE, at which point Iā€™ll run my tests again. Due to the time involved, I ended up deciding not to try to implement the commit on my own build of UE unless the new version isnā€™t ready by the time Iā€™m starting to distribute my game.

How does a resolution to something like ā€œall packaged builds have broken landscape componentsā€ not work its way into either 5.3 hotfix?

1 Like

No Collision on Landscape Components in a Packaged Build here too.
Unreal Engine 5.3
When playing in Standalone everything works fine.
Lets hope for a hotfix.

1 Like

I was having the same problem for the longest and I donā€™t know if this fix will help everybody, but in my world, it was small enough for me to turn off enable streaming on my landscape. This seemed to fix things in my package build.

Hi, just curious how you do this?

Also having this issue. Packaged gameā€™s foliage has no collision. Character walks right through rocks/trees.

Testing in Stand Alone works fine.