Just want to point out to anybody that reads this thread that you can totally do this hypothetical with Data Assets without a TON of pain, just a little. What I’m thinking is: Say you have that Fireball spell you mentioned, and you want a different decal and particle per physical material. You could make a struct containing a Decal Actor Class Reference and a Niagara System, and then in your data asset, add a variable of type Physical Surface with a map to that Struct. Then you can just fill them out per data asset (spell, in this instance) to get all the different cases, and pull the info as needed in whatever actor you are using to spawn all those effects in.