Character texture won't set

I want to be able to choose a material from an array of unlocked “skins,” and everything works except for the character will keep the default skin (unreal man body texture). The array of unlocked skins are solid materials that should easily be visible if changed. A print string even tells me that the skin is changed, but the skin stays looking like the unreal man body texture. What am I missing? Is it because this coding is in a widget and the widget has to created first?

try creating a dynamic material instance then set the material to that. every time ive tried to set a characters texture at runtime ive had to create a dynamic instance.

Yes I suggest the same thing. It seems like Material Instances are for build-time changes, but to make a change while the game is running, you have to use Dynamic Material Instances.