Interact with Material IDs inside BP

I feel like I almost have this one and I’ve just been dancing around the actual solution. I have a character customization mechanic in my project I’ve been working on. The character has multiple IDs. One for skin, eyes, paints, etc. Different colors and patterns. Shown below(menuwidget) WILL change the material in the ID however

This bit is meant to take the customized character and move it into the new game world whenever the user states a new game. Before I had split everything up into ID’s this worked and I was pretty confident it was because in the get material node there is only one element index and it is 0 however the current ID im working on is ID 0.

I’d also Like to mention I do have the below in my character controller. I have watched several tutorials on YT about dynamic materials and material instances and its just gotten super frustrating. I feel like I’m almost there with this. Any help is appreciated.

I might be barking up the wrong tree here, but I see two things.

  1. How come you’re only use ‘element index 0’ if each character has multiple materials? Don’t you have to change the index to access each slot?

  2. I notice you have multiple characters, but only one place to store corresponding materials in the game instance. Surely you should have an array of character material settings in the game instance.

  3. ( The other second thing ). The game instance will be no good if they quit the game and come back later. You’ll need to use the save game for that. Just mentioning it…

As far as I understood from your description, I think I found the problem.In the second image that you attached, I noticed that you setting the material into "M

at Interface" variable in Game instance ref

But in second image that you attached I noticed that while loading the data you are referring a completely different variable “Mat Skin M”

may be if you refer to same variable that you set the new material into ,you can get the result that you are expecting.
And also avoid using “Get All actors of class” as it is a very heavy node, instead of that you could try using “get player character” and cast to you BP Survival character (Your character). As there will be only one player you don’t have run any additional for each loops.

I Hope my answer is helpful. Cheers!

yep! i found the problem, it was a combination of that a few other things. thanks!