Creating large amount of character data and storing it

I’m pretty sure you can use Data Tables to manage this data. It is afterall just a collection of structured information. However, there might be some reason for it not to be the best solution depending on the data you actually want to store.

I’ve made sports games in the past and at the time we always used XML to store the data. That decision was made because we were using a custom engine that already had robust XML support and it was used farily extensively. Personally I’d use JSON now but the best answer depends on your work flow. You’re going to need to create and edit all this data, so choose a format that works well for you.

For save data, you could initially read in all the ‘base’ stats (from your datatable / xml / json or whatever) and keep them in structures. As tou play the game these are then updated and serialised out in whatever format you think is suitable. When the game next loads, just read in this new data instead (or read in the core data then apply the saved changes to that data, depending on what is best for your game)