Version 2.6 · Unreal Engine 5.0 · Windows
SnapCompare user guide
Installation, viewport comparisons, value history and exports.
Quick start
Capture the viewport before and after a change, then drag the divider to compare the images.
- Open SnapCompare. Choose Window > SnapCompare after enabling the plugin.
- Capture A. Keep the camera in place while adjusting lighting, materials or other settings.
- Capture B. Drag the divider to inspect both images. Use the floating bar to switch orientation, swap the displayed images or center the divider.
Installation and engine version
This release targets Unreal Engine 5.0 on Windows. Use the UE 5.0.3 Win64 build or compile the included C++ source with your matching engine toolchain. Other engine versions require their own build and validation.
- Close Unreal Editor before replacing plugin binaries.
- Copy the SnapCompare folder into
YourProject/Plugins/. - Open the project, enable SnapCompare in Edit > Plugins, and restart when prompted.
- Open Window > SnapCompare.
Source builds require Unreal's supported C++ development tools. This plugin does not modify engine files. The editor module loads after engine initialization; the runtime module remains separate.
Viewport controls
The divider uses the full captured image area. Drag its handle, or focus the comparison and use the arrow keys. Hold Shift for smaller adjustments. Escape closes the focused comparison.
The floating controls switch vertical or horizontal orientation, swap displayed images, center the divider, restore the capture camera, or close the overlay. Separate window opens a resizable A/B comparison with the original image aspect ratio.
If the camera moved, use Restore camera + recapture After. When the viewport size changes, restore its original dimensions or start a fresh Capture A.
Comparison history and return points
History keeps 15 comparisons by default. Select a row to load its images. Double-click its name, type a title, and press Enter to save or Escape to cancel. Removing a row removes its catalogue entry, while its image files remain on disk.
Return to A / Return to B
Move the tracked scene timeline to the beginning or end of that comparison. Newer rows dim to show your current point. Restore present returns to the values saved before the first rollback.
Scene values > Restore A / Restore B
Apply only the properties recorded in the selected comparison. This does not move the complete tracked timeline. Swapping displayed images never swaps stored A/B states.
During the current editor session, the bounded journal can include supported edits outside captures. After restarting or journal expiry, restoration falls back to values stored in completed comparisons and the panel says so. Restore present is session-local. If you edit a tracked value while rolled back, undo that edit before restoring present.
Quick value history
Right-click a value in a standard Details panel and open Property History in the existing Unreal context menu. Native and third-party menu entries remain available. Select a single object to restore that object's recorded value.
The quick menu keeps five previous values by default. Color values show swatches with transparency previews. Supported material, texture and mesh references show compact native thumbnails. Hover for the full stored value or asset path. Other property types keep readable text.
Supported editable UObject properties include actor and component values, asset properties, Blueprint class defaults, nested structures and arrays exposed through PropertyEditor, material-instance parameters, and writable console values. Restoration validates values before applying changes.
Blueprint pin defaults
Right-click a supported input-pin value or choose Value history in the pin menu. Restores use the graph schema. Connected, ignored and read-only defaults cannot be changed. Quick pin history lasts for the current session.
Integration limits
Custom editors that bypass property handles or modification notifications need their own integration. Read-only properties, instanced-object references, structural graph changes and external side effects are outside value restoration. Very large values are skipped. Original targets must remain loaded.
Full project value journal
Select a recorded change, then choose Restore previous value or Restore new value above Details. These actions restore only that property and support Unreal Undo/Redo. The original target must be loaded and editable; unavailable targets show an explanation.
Choose Open full history... in a property or pin history menu. The window starts scoped to that value. Enable Show all changed values to inspect recorded changes across the project.
- Search object names, paths, properties, sources or stored values.
- Filter All time, Today (UTC) or Last 7 days.
- Choose newest or oldest first. Load more adds the next 100 events.
- Refresh to include recently recorded changes.
Daily JSONL files retain the observed journal independently of the quick menu's depth setting. Recording starts when the plugin observes a supported edit. It cannot recover changes made before recording began, while the plugin was inactive, or in unsupported custom editors. Select a row to restore its previous or new value. This changes only the selected property and supports Unreal Undo/Redo.
Create a showcase
Split is the default layout, including for an empty composer. Choose Vertical, Horizontal, Diagonal descending or Diagonal ascending. Each boundary can be dragged independently while its line and handle remain separately configurable.
Typography includes custom Runtime Font assets/typefaces, text color, title scale, letter spacing, line height, outline and shadow controls. Built-in HTML fonts use browser fallbacks; custom font embedding requires a readable face and permission to embed it.
Open Showcase beside Separate window in the main SnapCompare panel. Build a presentation from viewport captures and your own images.
The composer begins with available A/B captures. Capture viewport adds C, D, E and further images without changing the main comparison or its recorded scene values. Add images... imports PNG or JPEG files. Rename images, add captions, reorder them or remove them.
Split (default)
Display every image in order with one independently draggable separator between adjacent images. Three images have two separators. Lines and arrow handles have independent visibility switches.
Strip and grid
Place images in a single row or a multi-row grid. Choose the grid column count and keep each image's aspect ratio.
Titles and typography
Image titles and captions overlay the images by default with a small black outline. Switch to labels outside the images when you need an unobstructed presentation. Choose a font family and adjust the text size. Sans supports Light, Regular, Bold, Black, Italic and Bold italic. Condensed uses Bold, and Monospace uses Regular; unsupported style choices are disabled. HTML uses browser font fallbacks, so exact letter shapes can vary between systems. Empty labels leave no placeholder text.
Composition settings
Set an overall title and subtitle, background, text color and output dimensions. A transparent background preserves image transparency in PNG output. Up to 16 images can be included, with a combined 64-megapixel and 64 MB encoded-image budget. Imported files are limited to 8,192 pixels per axis and 16 megapixels each.
The composition remains editable while its window is open. Export before closing; the composer does not create a persistent project asset.
PNG and HTML export
Export PNG
Save only the composition at the selected resolution. The export includes visible text, lines and handles, without the editor controls. Transparent backgrounds retain alpha.
Copy HTML and Save HTML
Try an exported multi-image HTML comparison. This example was generated by the plugin.
Create a self-contained comparison with embedded PNG images and scoped styles. No image server or external library is required. Split exports include interactive divider controls, including diagonal boundaries. Each separator remains adjustable even if its line or handle is hidden.
Paste copied HTML into a page or HTML block that permits inline scripts. A strict Content Security Policy or a site editor that strips scripts can disable interaction. Strip and grid layouts also display without JavaScript. Embedded images increase snippet size, so use appropriately sized sources.
Project settings
Settings in the main panel and Project Settings > Plugins > SnapCompare edit the same project preferences.
| Setting | Default | Use |
|---|---|---|
| Maximum comparisons | 15 | Keep 1 to 1,000 catalogue entries. Pruned PNG files remain. |
| Values per property | 5 | Keep 1 to 100 quick-history values per property. |
| Property history button | Off | Add a shortcut beside supported Details values. |
| Main toolbar button | On | Show the editor toolbar shortcut. |
| Viewport capture buttons | On | Use the native toolbar or a viewport corner with adjustable margins. |
| Viewport history button | Off | Add a shortcut to the main panel. |
| Comparison controls | On | Show and position the floating comparison bar. |
Hide editor gizmos suppresses transform gizmos, actor icons and selection outlines while capturing. Window > SnapCompare remains available when toolbar shortcuts are hidden.
Keyboard shortcuts
| Context | Keys | Action |
|---|---|---|
| Editor | Ctrl + Shift + B | Capture A |
| Editor | Ctrl + Shift + N | Capture B |
| Focused comparison | Arrow keys | Move the divider; hold Shift for smaller steps. |
| Focused comparison | Esc | Close |
| PIE / Development game | F10 | Capture A, then B |
| PIE / Development game | Shift + F10 | Start a new A |
| PIE / Development game | F9 | Toggle tracked live values |
Call Watch Object on SnapCompareGameSubsystem before Capture A to include game objects. Shipping and dedicated-server builds do not activate this development subsystem. Runtime comparisons stay in memory and are separate from persistent editor history.
Storage and troubleshooting
| Location in your project | Contents |
|---|---|
Saved/SnapCompare/History/ | Comparison catalogue, full-resolution Before/After PNGs and thumbnails. |
Saved/SnapCompare/PropertyHistory.json | Durable-object Details history. |
Saved/SnapCompare/ValueJournal/ | Daily append-only event files for full history. |
Open capture folder opens the comparison directory. Reset current comparison clears the current display and recording while keeping saved comparisons.
The captures do not line up
Restore the capture camera and recapture After. Match the original viewport dimensions or start a new A. Moving scene objects and changing camera settings can intentionally change framing.
A history entry is missing
Check the history depth and comparison limit. SnapCompare cannot recover edits made before it recorded them. PIE instances and temporary objects are not reused after restart.
A restore is unavailable
Load the original object and select a single target. Check whether the property is writable and supported. Graph pins must have a writable unconnected default accepted by their schema.
HTML interaction is missing
Confirm that the destination allows inline JavaScript and embedded data images. Try Save HTML and open the saved file directly. Site policies can block scripts or data URLs.
Replacing binaries fails
Close Unreal Editor before replacing the installed plugin. Use binaries built for the exact engine version, or rebuild the included source with the matching development tools.
Direct GIF/MP4 export is outside this release. Diagonal splits are available in Showcase.