Triton | Content Import Pipeline
Triton | Content Import Pipeline

This is my data-driven content pipeline that is used to generate every piece of game content in my solo-project Triton. Items, recipes, orders, stations, draw-tables, supplier catalogs, narrative letters, tutorials, etc., all lives in flat CSV files that can be authored in any text editor. A single Unreal editor commandlet reads those files and writes real UPrimaryDataAsset binaries into the project. I built it this way so that authoring content could be done as speedily as possible and so that regenerating all content in the game is as simple as just letting the commandlet run.

Under the hood it's one commandlet with a -type switch and a small shared toolkit that every importer leans on: a quote-aware CSV splitter, a gameplay-tag resolver, and a query parser that turns strings like Aromatic AND NOT Sharp into Unreal FGameplayTagQuery objects. From there each of the sixteen content types has its own functionality. Most are one row to one asset. Some fan many rows into a single asset, so every row for a station collapses into that station's process list. And a few flatten a whole file, or even three separate files, down into one settings asset like the diorama draw-tables or the order phrasebook. Cross-references between sheets get resolved by name against the asset registry, so a recipe row can just name its product and an order row can just name its item without me ever hand-typing an asset path. Re-running an import is safe by design: it finds the existing asset and rebuilds it in place, so the CSVs stay the real source of truth and the .uassets are just compiled output.

More artwork