I am mainly just messing around with the engine right now to try and learn more. As one of my projects I want to create a game that has around 50 different characters that use different playermodels, different character names, and a few different variables that are changed when you change your character. I was wondering what the proper way of doing this might be. Should I make a base character BP and just duplicate it 50 times and change variables inside the BPs? Should I leave everything in the base character BP and change the variables based on the character type that is selected? Or another way?
Second question. Later on I do want to have this almost auto populate into a scrollable widget in a character select screen. Would I have to set this up different to make that work?
You could create a Struct that contains all your characters properties like mesh, name and so on. Then you can make a Data table based on that. Now you can easily add as many characters as needed. In your character BP use a Data Table Row Handle, expose on spawn, and init your character inside the construction script. You can iterate through your data tables keys and load your characters into your selection screen as well.
I’m a relative newbie to Unreal myself so I might get some of this wrong, but no. Assuming all 50 characters have the exact same controls, even if individual actions are a little different, what you should do is make a single Character Blueprint and a Control Blueprint. Anything that’ll be the same across the board for your characters should be stored in the Character Blueprint. Anything that might change a little (for instance, one character can only attack by button mashing, but another can hold down the attack button) should be stored in the control blueprint, along with any data you want saved should anything happen to the player character (like it dying and needing to respawn). Each of your individual 50 characters will get their unique behaviors from the data stored in the Animation Blueprint. So while you might need 50 animation blueprints, one for each character with potentially unique animations, you can (and should) set them all up through a single Character Blueprint.
In order to define WHICH character your player is playing as, store that data in a Game Instance Blueprint. Game Instances remain the same across an entire play session unless you specifically call up a new one when changing levels or game modes.
I’ve got a lot of research left to do on game instances, I suggest you start there too.