This caught me by surprise too (having used it a lot in UE3), but there is a replacement that I found after a lot of hunting around (can’t find any documentation on it, but it works).
In cascade, click on some empty space so you can edit the properties of the whole particle system, then go right down the bottom and find “Named Material Slots”. Add a slot and give it a name. Then, in the “Required” module of the emitters, there is also a “Named Material Overrides” property - add a slot there too and give it the same name.
Now inside your blueprint, get your spawned particle system component and use a “Create Named Dynamic Material Instance” node, give it the name of the slot you created in cascade, and assign the material you want. Now the emitters with that slot name in the particle system will have the newly created material, and you can change it like any other dynamic material instance too (e.g. set texture parameters).
I have some simple particlesystems that I need to change the materials on, (or atleast change my alpha texture on) otherwise I have to do some major rewriting and learn Niagara, which i dont have time for.
I have clicked on an empty space, but I dont see any Named Material Slots, but I do see the Named Material Overrides Array in the required module, so Im thinking this may still be implementable
Is there a current solution to this? (Im also using exclusively c++, so no bluperint solution will work for me)