[Open Source] BPMerge — Deterministic 3-way merge for Unreal Engine Blueprints

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.