How to save character customization and apply the choices on the in-game character?

Hello there,
I’ve been working on a customization system for my game and i’m on a dead end.
Here’s some info about what i’ve done so you can visualize it better:

All characters are children of the same master character. I use a data table to organize, store and call data of those children characters. Each row has an integer value corresponding to a “big group” of similar characters (Clade) and a structure containing the data for the specific selected character assigned to that row (Species).

All characters use instances of the same layerblend material, with a RGB mask as base texture parameter and different vector parameters for its channels.

When starting a new game (single or multiplayer) the customization level is loaded and the screen shows a widget with buttons for the different Clades.
After selecting one, the first Species whitin that Clade spawns in that level.

Then a new widget shows the Species name and several buttons: two of them switch Species in the current Clade, some others open a color picker with different linear color values for the vector parameters, and the last ones change the skeletal mesh for the accessories selection.

Every button works and their results are applied on the character while it’s in that customization level.

The master character has the logic to create the dynamic instances in the construction script, a custom event gets the selected linear colors from the widget and applies them on the different vector values, and another custom event sets the selected accessory using an integer to switch between the different options.

After confirming all the customization the game level is loaded and that selected character spawns, but it has the default colors from the original material instance and no accessories.

Now the issue is that I can’t manage to store and apply the customization from there to the game level the same way it works with the character itself (the character loads correctly too when i load a game instead of starting a new one so the save game blueprint works). I’ve tried taking the linear colors from the widget to the player controller events that save the character class and nothing, same goes for the dynamic materials.

Any idea how can I do it or if there’s any mistake that i can’t see clear?

Thanks in advance.





Greetings @VerorumMagister !

I see this is your first post in our forums. Welcome to the Unreal Engine community! :medal_sports:

While I am saddened that I do not have a direct answer to your query, I do want to compliment you on the neatness and organization of your Blueprints! I am sure that at least one (if not all) of our members viewing this would appreciate it. Neat Blueprints make it much easier for our more experienced developers to provide assistance.

Have an amazing day! Happy Developing! :smiley:

2 Likes

You have a couple of problems where, I think.

One is, you need to get the character customization from the menu area, to the spawn. The other, is the character needs to have the same setup if you quit and restart the game.

Both of these can be solved with the save game.

The process is like this:

  1. Customize character from menu
  2. When you close that menu, the system stores the config in the save game
  3. Navigate back to the game
  4. The player spawns and reads the save game and configures itself

Yes, it is possible to pass character details via the game instance, player controller, yada yada yada. But presumably you want the character to still be the same after a restart, and that means save game. So you might as well pass the customization via the save game. Why do it twice?