Blueprint merge conflicts in git are binary blobs. You can’t diff them, you can’t auto-merge them — you just pick a side and hope. So I built something.
BPMerge — https://github.com/SeanAblur/BPMerge
It extracts a semantic IR from the .uasset, runs a proper 3-way merge against the common ancestor, and writes the result back via UE’s in-editor Python. 12 explicit conflict rules (pos clash, rename clash, remove-vs-modify, etc.), GUID-based variable rename tracking, and an HTML diff viewer so you can review what was auto-merged before it touches your files. No AI in the merge path — just structural diffing.
Three entry points: plain file paths, git (also works as a merge.driver so git merge invokes it automatically), or Perforce.
If you want to verify it’s real without spinning up UE:
python -m unittest discover -s tests/unit
103 tests, pure Python, no editor needed.
Tested on a 1316-node production WidgetBlueprint. Currently UE 5.2.1 / Windows — 5.3+ and Linux/Mac PRs welcome.