[Voxel]C++ ProceduralMeshComponent Memory Leak after being destroyed

Hello. I’m having a pretty major problem with the Voxel engine I’m creating. After destroying an actor with a procedural mesh component attached, the memory used for the component’s geometry/collision is not cleared, leading to a pretty major memory leak.

I managed to narrow down the problem to the UProceduralMeshComponent since disabling the:

ProceduralMesh->CreateMeshSection(0, MeshVertices, IndexBuffer, Normals, UVs, VertexColors, Tangents, true);

seems to fix the leak.

The leak persists even after closing the “Play in New Window” window. Closing the level and reopening it seems to clear the leaked memory, leading me to believe that the ProceduralMesh is not properly removed from the level when the actor is destroyed. I have tried calling “ClearAllMeshSections()” before destroying the actor, but the problem persists.

I’m destroying the actor using blueprints, but the actor itself is written as a C++ class. I’m not sure if this has anything to do with the problem since I haven’t created a functional Spawning and Despawning system in C++ yet. Everything is still done on a PlayerController blueprint.

Does anyone know if this is an engine level issue or if I’m forgetting to call an important function? I have looked around on tutorials to see which functions they call, but they all seem identical to my setup.

Thank you for your time!

Best Regards

-Sven

I think the problem is that the garbage collection is not cleaning up the mesh geometry. Is there any flags I can set for it to do so?