DataTable Merge reconciles an incoming CSV with your editor edits instead of overwriting them

Reimporting a CSV into a DataTable is a total overwrite. Every edit made in the editor since the last export is gone, with no warning and no diff. If two people edited the same table, the second import wins outright. The usual advice is to pick a side and accept the loss.

DataTable Merge treats a reimport the way source control treats a pull. It reconciles three things, the last imported CSV, the incoming CSV, and the current asset. Changes only one side made are applied. It stops only where both sides genuinely collided.

Comparison is per cell, not per row. If the spreadsheet owner rebalanced Damage while a designer retuned Cost on the same row, both land.

It’s a headless commandlet, so there’s no panel to dock. You record a merge base once and commit it:

UnrealEditor-Cmd.exe YourProject.uproject -run=DataTableMerge -Table=/Game/Data/YourTable -EstablishBase

After that, a run with an incoming CSV decides everything and writes nothing. It leaves a self contained HTML report in Saved/DataTableMerge, showing every changed row, the base, incoming and current value for each field, which one won and why, and every conflict named at the top.

UnrealEditor-Cmd.exe YourProject.uproject -run=DataTableMerge -Table=/Game/Data/YourTable -Csv="incoming.csv"

Adding -Execute applies it. An executed run also writes a JSON journal, and -Rollback consumes that journal as an undo.

Built and tested against UE 5.8, Windows, ten C++ classes, engine modules only, no third party dependencies.

Fab: DataTable Merge - Merge an Incoming CSV Instead of Overwriting Your Edits | Fab
itch: DataTable Merge — three-way CSV merge for Unreal DataTables by CSAF — Core Systems Asset Factory

Disclosure, and it’s on the store pages too: this plugin is written by AI, and the store artwork is AI generated.