Where to store character/monster default data and in what format

Hey all,

This could arguably go into the Blueprint section too but a coin toss solved that :smiley:

I’m working on a JRPG. I’ve got my Blueprints and code set-up to handle having characters/monsters with stat attributes (health, base attack, initiative, etc) and physical attributes (mesh to use, animation to use, etc).

What I’m stuck with is where all the default attributes for the characters/monsters should be stored.

For example, all potential party members you’ll meet will all need to start somewhere with their stats, appearance, etc. Additionally every monster type will need to have base stats set which will then be manipulated by the game to match the appropriate level they’re going into.

So if I had say 5 characters and 40 different monster types, where should all this data be stored for easy reading by the game? I’m not too sure about putting this all in the code or blueprints so I’m guessing some kind of binary file might be necessary.

Apologies if this isn’t too clear, I can provide some examples and things if it’ll help.

Thanks

A few options:

  • Store data in the blueprints for your monsters/characters/etc (not recommended)
  • Store data in DataAssets, the workflow is like blueprints but they are for data only and as a result very light weight. A huge bonus compared to blueprints is that if you have a data asset pointer, in the editor you can select any compatible data asset. At run-time you can read the data without having to instantiate it. Compare that to blueprints where you need an instance to read the data (because they are much more dynamic). Useful tutorial by Level Plus Games
  • Store data in DataTables, recommended if you want to keep all data together. Official documentation

Between data assets and data tables, I’d say it depends on your preference of how to insert and edit the data.

Thanks for the reply.

After reading through those options and the documentation I think I’ll go with a combination of DataTables and CurveTables. There’ll probably be a lot of data to tweak and it’ll be good having those in the same place.