Mapcheck error: more overridden materials on static mesh component

So I have a simple rock mesh that i have used in levels of a project I am working on. However, on one particular level I changed the material of the rock to a different rock material for my own artistic purposes (this was done on the meshes added to the level and not the original in the content browser) however, this level crashes when building lighting and returns the error: A FRenderResource was deleted without being released first - which i can only find a vague fix for here: link text

When i do a mapcheck, I find that all the rocks have this error: More overriden materials [Count] on static mesh component than are referenced [Count] in source mesh [StaticMesh]

The odd thing is that when i make a new level and place these rocks with the material on them again, that error never comes up… the UE4 documentation doesn’t seem to have a fix for this mapcheck error so I’m totally in the dark on this. I can only assume its a LOD error going from the FRenderResource bug?

1 Like

I just managed to fix this by going and selecting all the meshes using the material which was apparently ‘overriding’ and using ‘replace actors with’ to link them back to their original meshes, this totally cleared up the mapcheck bug. Hope this helps anyone else who runs into this bizarre issue!

6 Likes

Thanks a bunch! It fixed my problem as well!

Hey there another way that this can occur I just Found out that when you start copying Blueprints with set default values then this can occur on the next build. so make sure that if you copy a BP with values already set on them by you to create a new version of that BP instead!:slight_smile: That is how i fixed my error.

CHEERS!

This particular error happened to me as well just today, but it was unrelated to FRenderResource . To fix it, I selected the guilty meshes and in the details panel, scrolled down to Rendering, trashed all the Override Materials, and reapplied the materials I truly wanted to use. Hopefully this will help future folk with this error.

3 Likes

I’m glad people found this useful, I’m surprised this bug hasn’t been patched yet.

Happy to help! :slight_smile:

@ROBYER1 It really helped…Thanks a ton

This tends to happen when you create assets with multiple material id’s, then remove 1 or more of the material id’s.

Thank You!

Hey, Where is this ‘Replace actors with’ option??

If I’m correct, it is in the right click options menu? I haven’t used the engine for a whilem you should be able to find it in the documentation otherwise unless the engine has changed a lot since then.

Google is your friend here!

Thanks for the reply. I was only getting the option to replace with lights and primitive. It doesnt matter now anyway I understood the first Answer and fixed it :slight_smile:

Also a step back from you computer helps a lot haha

I often find that helps! Also I like to make posts like this with the fix for when errors like this occur and there is nothing online on forums or help sites that helps. I hate running into a weird problem that nobody else has fixed or spoken about and I remember this being one.

I encountered this exact situation. For some blueprint logic I made, some static mesh component is switching between a static mesh with just one material and another one with two materials. When I bake the scene, if the static mesh with just one material is selected I get this map check error. Light baking is done properly anyway, so it’s not an issue, but I was curious to know if there is some way to avoid this overlapping materials ids error.

1 Like

290299-screen-shot-2019-10-17-at-20001-am.png

What worked for me, because the Unreal docs are blank on this issue, is tot click the magnifying glass to find the original mesh, then the arrow to replace the current mesh with that. Two clicks, problem solved.

-Chilton

4 Likes

Worked a treat, thank you, zero errors at last :slight_smile:

If you want to solve the warnings all at once, use python:

mats = actor.static_mesh_component.get_materials()
                actor.static_mesh_component.set_editor_property("override_materials",mats)

this code will sync override materials with actual valid materials.

2 Likes