How to build a new Tool using the Unreal Build System ?


I want to develop a new tool for use with my Unreal Games. This tool is for preprocessing JSON and it uses Unreal features (like JSONUtilities and other Serialization stuff).

What is the best way for developing such tool? I have read Unreal Build System Target Files | Unreal Engine Documentation so I guess I should setup a new MyTool.Target.cs with Target=“Program”

So, where should I put this? if this tool is intended to be used by several games, should I put this on the engine directly? I would like to have a separate solution for this and not change the engine solution.

Any advice regarding this issue /guidance / best practices will be really appreciated :slight_smile:

Have you looked at BlankProgram? It can be found in the Programs folder of the source code and is a starting point for a Program using UE4.

Thanks you sir! I will have a look at this :slight_smile:

What do you want to do ? Build new tool inside editor, or new tool that is standalone and just use UBT ?

Standalone, using UBT.

But it would be interesting to know the best way to integrate it with the editor too.

Well if you want tool that will work within editor, you should just build it within editor. I guess you would want to import json files, to use them as assets in game ?

Actually what I want is to parse some json and prepare some binary data using both JSON and Serialization utilities from UE4. Then the output (a binary) will be included in my game. I do not want to parse the JSON files each time the games launches

Thats what you get when you write a factory importer in the editor. You import the file and its created as a binary (uasset) to be used in your game. It will not parse the JSON every time.

ahhh ! cool! so i should look at UFactory then ! I’ve downloaded some example code you posted here, will have a look!