What does this crash means?(shader)

I did a copy paste of the UnderWaterPostProcessMaterial in my own folder and I just tweaked the color.Im using this as a post process effect that I kismet toggle when under water.Im getting some crashes when im saving the package some times and for some reason the post process isnt working(default checker texture appears in game like if it isn’t loading).I copied everything of the shader including the textures correctly.
The crash log says something that I don’t understand.


Warning: Material railShooter.Particles.UnderWater missing bUsedWithMaterialEffect=True!

This is a shader, why does it say missing bUsedWithMaterialEffect=True! ?? None of the nodes of the shader have such a info to check.And the original shader from epic does work but I dont want to edit it.

No real idea, but the times when I got crashes on saving, it was actually because of low disk space on the UDK partition, since its package backups can eat up space quickly.

I think I fixed it…I opened a empty level and opened the Post process editor.Than i toggled off in the material effect >Show In Editor and Show In game. In the level i tried to toggle (key button pressed) the effect and it didnt worked.Than I went back in the post process editor and activated first the Show In editor checkbox, tested in game>worked, toggled it off again in the Post Process editor>tested again in game and it now works…Saved the package and it seems to work, so a corrupted file that needed a push?

That error message doesn’t make sense to me :confused:

bUsedWithXYZ means the material needs to have compiled the shader permutations to allow that usage. bUsedWithMaterialEffect means you made a material and then applied it to a material effect (postprocess material IIRC), which needs a different shader permutation. the same thing would happen if you apply a new material to a skeletalmesh, or to a landscape, or to any other kind of ‘shader usage’.

whenever you apply a material to something that requires a different usage, unreal will modify the material and set these flags automatically as it needs. the flags can be found if you open the material and check the Usage rollout - you’ll see Used with Static Lighting, Used with Skeletal Meshes, and so on.
however when unreal modifies the material it does not mark the package as dirty, which often leads to the user not realizing the need to save the package to keep the usage change.

by not saving the package you’ll only get the warning in the log, but you won’t realize the issue until the game is cooked - it will replace the material with the DefaultMaterial.

TL;DR - check your log often for warnings and if you have a change in material shader usage just resave it.