Dynamically changeable textures/particles

You need to look at blending.
In C++ create a dynamic instance material and you can update the properties.

https://docs.unrealengine.com/latest/INT/Engine/UI/LevelEditor/Modes/MeshPaintMode/VertexColor/MaterialSetup/2Way/
https://wiki.unrealengine.com/Creating_Layered_Materials_(Tutorial)