How efficient is accessing data tables?

Yep, this is the solution. Store all your struct and class refs in data tables as soft object refs or soft class refs, then async load them (there’s a blueprint node) to use them in game.

It’s important to use soft refs because everything that’s a hard ref is stored in memory, so a data table with hard refs will load every single hard ref in it every time it’s accessed, so that isn’t scalable for a mid-large game.

For those new to soft refs, using them will cause a crash if you try to do something with them before loading them, as they’re only a pointer to the class, not the actual class loaded into memory, so load them first, then off the async load finished pin, do the rest of your logic with them.

This is the best-practice way. The load times are inconsequential, and it keeps memory to a minimum. Can have a game with tens of thousands of unique items no problem.

3 Likes