Download

Is it possible to write new rows into datatables?

This is likely a silly question, but I’ve been poring over https://wiki.unrealengine.com/Using_excel_to_store_gameplay_data_-_DataTables , and it only seems to cover reading from CSVs, and not writing back into them. Part of my game requires me to make lots and lots (and lots, and lots) of data structs, individually they have a small footprint but a typical game will end up creating thousands of them, and I would rather free up my memory by writing them to a page file and reading from the file at need instead of keeping them in RAM.

To that end, is a datatable/CSV still what I’m looking for, or is there a different data format intended for writing game data to the hard disk and retrieving it at need?

https://github.com/EpicGames/UnrealEngine/

Under Engine/Source/Runtime/Engine/Private

are some related files
DataTable.h/.cpp
DataTableCSV.h/cpp
DataTableUtils
DataTableJSON.cpp
DataTableFunctionLibrary.cpp

Which seem to have some indication of adding objects
e.g.


//in datatable
	AddReferencedObjects(UObject* InThis, FReferenceCollector& Collector)
//in DataTableCSV
	bool WriteRow(const void* InRowData);
	bool WriteStructEntry(const void* InRowData, UProperty* InProperty, const void* InPropertyData);

Those might be of worth investigating? The files are relatively short with few functions, might not be too difficult to fiddle with it and figure it out? It does appear to have a TableExporter too, once youve written to the rows

Ooh thanks for checking- I’ll screw around with this in a bit and see if I can get it working :slight_smile: