Propagating Material Properties Changes

Hi, I find it very interesting being able to graphically create shaders for the materials I’m using, but it also makes it kind of tedious and prone to error when having multiple materials that only change when it comes to the textures they use. Several models I have use, for example, marble. They could all have similar physical properties, so it makes no sense to create multiple material shaders, with their nodes, when the only difference between them might be than one is white marble, the other one green, the other one red… but they are all marble, with similar physical properties. It’s very tedious and prone to error when one must create an identical material shaders for each (and for some projects, there can be plenty of variations for the same substance), and just edit the image references one by one. Is there a way to create a “mother” material shader, so that I can then place a node that references that mother material shader in the child materials, so the end result is that they use the same physical properties as the mother shader material? (Say, for example, the mother material shader has an “open” node that can be referenced from a material, so that the diffuse (or specular, normal,e tc.) texture node knows where it should be placed in the mother material shader, and the output of the child one is equal to what would happen if one placed that diffuse in the mother material).
So far, it’s one of the main disadvantages I’m finding for UE4 compared to unity and CryEngine. The fact that I must “build” the material shader for every material I want to use is too tedious, and prone to errors when I start editiing noeds and their properties and how they are linked to each other…
In a way, what I think I’m asking is if there is a way to create a shader in Unreal Engine (the entire node structure built in the Material Editor), and use it to be applied to materials with different values assigned to that shader’s nodes. It would in a way work as selecting a shader to be used with a certain material in Unity or CryEngine. I think the ability to create node-based shaders is uique and amazing for us non-programmers, but it is one thing to have pre-assigned variables you can change for a given material, as is the case when selecting what shader to use in other engines, and another one is to forcibly needing to rebuild an entire shader for each material that actually uses it.

You do not have to build individual material for what you are describing. You can share one master material for multiple usage cases. Take a look at material instancing.