Expose the package diffing UI to plugins for use with subtrees of the DataModel

As a Roblox developer, it is currently too hard to efficiently show the user the difference between two Instance trees.

I’m currently in the process of developing a plugin for showing the differences between two models. This plugins will be used by my team to resolve merge conflicts that come up during our Rojo usage, so it’s generally diffing two models that are more or less the same, just with minor differences. It is non-trivial to implement because it requires implementing diffing logic for Instance trees which is… complicated.

Given that Roblox already has an amazing UI for diffing packages that works for models of this nature, it feels like a shame to effectively redo their work. On top of that, I feel fairly confident that my plugin is going to be worse than Roblox’s own UI. I am a programmer which means I make bad UIs. Such is our curse.

To solve me making a bad UI, I am basically stealing Roblox’s existing UI, just reimplementing it! This means that I feel the burden of redoing their work even more than normal, since I’m just mimicking functionality and design.

I would very much like to reuse the package diffing UI for my plugin to save me work and to let the excellent work of the package team be put to use even for people not using packages.

If Roblox were to give access to the package diffing UI for arbitrary models, it would save me potentially weeks of time and make my team happier because they’d get access to all of the quality of life feature that Roblox has for their UI. It would also improve the overall quality of my work because I wouldn’t have to focus on implementing diffing logic for Instances.