Usage of CVS/JSON

Hey everyone!

Is there a possibilty to read data from files like JSON, CVS or other datafiles through Blueprint?

In the meantime I may have found something (:

I made a CSV-file and was able to just drag and drop it in the Content Browser.


Name,Tag,CategoryText
Sword,Tag1,CategoryText1
Axe,Tag2,CategoryText2
Hammer,Tag3,CategoryText3
Bow,Tag4,CategoryText4

It opens up a dialog where I selected “GameplayTagTableRow”, because that was the only one. If I left it blank, it did not work.

dialog.png&stc=1&d=1406064308

When I doubleclick on the asset, a Data Table pops up. It indeed contained all the information I put in the file before.

datatable.png&stc=1&d=1406064713

I went to the Level Blueprint to show the Tag and CategoryText , and again; it showed up in the game. So, it worked exactly as expected.

&stc=1&d=1406065726

&stc=1&d=1406065732

Unfortunately, I still have no clue how to make my own DataTable Row Type. I have looked it up in the Content Browser, but it gave no results. Because I don’t want Tag and CategoryText to be the table-header, but things like Damage, Price etc.

Yeah, row containers must be defined in C++ as far as I know.

Docs here -> Data Driven Gameplay Elements in Unreal Engine | Unreal Engine 5.1 Documentation

Thanks, I have just read it. As far as I can see there is no way it can be done using Blueprints only? If so; is there a possibility to use both C++ and Blueprint?

You can definitely use both C++ and Blueprints in the same project. In fact, most non-trivial BP projects probably end up using code for certain features sooner or later anyway, so you might as well start right away with that custom row container.

Thank you, I will look into it. Hopefully it gets implemented for non-C++ game developers

Yep, you have to define it in C++ but based on the code examples given by epic it’s not too hard to do. I managed to get it working finally.

In the meantime I have installed Visual Studio and made a new project, but I’m not really familiar with C++. I come from the world of Java, therefore I have no clue how to make (or import) a new TableRowBase (Class?). Could you explain to me how to make the TableRowBase appear in the engine?

I’ve done this - with help. You only need a header file (.h), not a cpp file. I’ll copy paste in what I did when I get a chance .