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.
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.
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.
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).
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.
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.
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.
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.