Just to clarify a little more
You are correct that static mesh <–> integer combination denotes how many meshes of that type will be spawned
I have an actor with a component. That component has a Dictionary variable.
And in the actor’s blueprint I’ve set the default values for that dictionary.
But when I place the actor in a level and try to overwrite the values from the dictionary, it doesn’t work.
What’s in the actor blueprint is always used. Values that are set on the actor’s instance in a level are ignored.
EXCEPT if the actor’s blueprint doesn’t have a default value (empty array). In which case the new values are ignored in the editor, but get read properly during compile time – that’s why spawning the meshes in BeginPlay event works ok.
I tried creating a struct, but I run into the same issue. Because there will be more combinations of mesh<->int I would need an array of structures and the exact same issue happens.
Datatable won’t help me much I’m afraid either, because it’s a bit more complicated. I should have a lot of actors with this component all over my level, so I would need a lot of DataTables, or a single one with an key to denote wich component uses what rows. Would make my life very complicated compared to clicking on an actor and changing the values directly.