I’m currently working on a dialogue system and I thought it would be great to try Data Tables since parsing is built in to UE4. problem I am encountering is that there is no way to dynamically change Data Table that is used by Get Data Table Row node in Blueprints. I would like to dynamically assign Data Tables so I can easily manage my dialogue. Having 1 CSV for entire game’s script would be very difficult to maintain.
It would be nice to have Data table variable type or some other method so I can dynamically assign Data Tables.
No update on this yet. I’ve upped community interest on request (UE-2847) and I’ll post here if it’s implemented at any point.
You mention there’s a number of people requesting this; can you point me to any links you’ve found to verify, so I can include them with request? Thanks!
Just found these. I also urgently need this feature in near future. So have DataTable Variables and be able to also store them inside other Datatables. Really important feature.
With ‘path’ something like ‘/Game/DataTable/MyDataTable’.
Once it’s done, you can access datas with GetTableData() function.
It will give you an array of an array of string. Since you cannot use that in your blueprint directly, you just have to create a function to get a specific row. It should be something like that :
// Stuff to find row
return (datas[row]); // or TArray<FString>() if not found
}
So now, you can access your datas but you will have everything as a string. I recommend you to create a blueprint that will ‘parse’ and represent row by getting string datas and give access to typed variable.
Sorry but I don’t have time to make it a plugin. If you have some question, do not hesitate !
There is currently no update on this issue at this time. Our developers are currently focusing their efforts on crash and showstopper bugs. However, I will continue to provide updates as they become available.
changing a DataTable variable at runtime would change its struct type, which would break any connections that output node was connected to.
if you want to break up your games dialogue script into separate databases,
you could just place dialogue data directly into level actors, like NPCs or signs. or you could make a dialogue actor that you spawn whenever you start a conversation or enter a cutscene, and that actor can contain all of dialogue needed for that conversation.
or if you want to use data tables for dialogue, and you want many writers working on separate spread sheets, you could always merge those spreadsheets in open office, to produce final spreadsheet that UE4 uses.