Mutable Crashes (CustomizableObjectMeshUpdate / LevelTick.cpp)

Hi,

We’re getting crashes in our game that seem to involve the Mutable (Customizable Object) system. They happen in villages, near mutable generated NPCs. The error message mentions skeletal mesh streaming and cloth.

A few questions from our side:

  1. In general, what kinds of things on our end (the way we set up our characters, clothing, or Customizable Objects) could be causing or contributing to crashes like this? We’d like to know what to check.
  2. So far we’ve only seen these crashes in our development builds, never in a packaged/shipping build. Is that something we should be worried about, or is it expected that they’d only show up in development?
  3. Is there any way to catch problems like this earlier — some kind of warning or check that tells us when we’ve set something up incorrectly — instead of only finding out when the game crashes?
  4. Can we find out which mesh might be responsible? We have lots of self-attaching customizable sub-objects, and it feels next to impossible to figure out which one is causing the crash.

Note that we are using skeletal mesh streaming, to reduce the VRAM usage.

Thanks for any guidance!

Matthias

[Attachment Removed]

Hi Matthias,

We encountered the same crash a while ago and fixed it for 5.8.

Here is the commit that fixes it in main. There’s also the CVar ‘p.ClothPhysics.WaitForParallelClothTask=1’ that can be used as a workaround.

Let me know if it helps

Pere

[Attachment Removed]

FYI, we did a major overhaul of Mutable in 5.8, which resulted in significant performance improvements and a much better editor workflow. Unfortunately, a few bugs slipped through the cracks, and we’re actively fixing them. Most of these issues have already been resolved in UE5 Main and will eventually be merged into the release branches.

In the meantime, you could replace the 5.8 version with the one from Main since the changes submitted to Main are self-contained within the plugin.

[Attachment Removed]

The fix for the crash mentioned here is included in the base version of 5.8. I’d recommend giving it a try. If it’s stable enough, you can simply wait for the next engine patch. If not, you can copy the Mutable plugin from Main into your project, verify that everything works as expected, and commit it.

Keep in mind that the bugs we’ve fixed primarily affect the new workflows, so legacy graphs shouldn’t be impacted.

As a side note, if you want to free RAM, too, check the CVar ’ r.FreeSkeletalMeshBuffers’. The default is set to false, so a copy of the mesh buffers is kept in memory until the LOD is streamed out.

[Attachment Removed]

Hello Pere,

that’s amazing news!

We will move to 5.8 as soon as it’s out of preview.

[Attachment Removed]

thank you, that’s very good to know.

we will try going with the latest version of the mutable plugin then.

[Attachment Removed]

hello Pere, we are finally on 5.8 now. Is it still worth updating the mutable plugin to ue5-main, or is everything mutable related in the release already?

if so, how would you suggest to do it? copying all the plugins to the project folder and committing them there? or does everyone have to copy them locally to their engine folder? the latter wouldn’t be easy to manage

[Attachment Removed]