SnapCompareDocumentationSupport

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.

  1. Open SnapCompare. Choose Window > SnapCompare after enabling the plugin.
  2. Capture A. Keep the camera in place while adjusting lighting, materials or other settings.
  3. Capture B. Drag the divider to inspect both images. Use the floating bar to switch orientation, swap the displayed images or center the divider.
The main panel combines capture previews, comparison actions and saved history.
The viewport capture button cycles between A and B. Keyboard shortcuts remain available when toolbar buttons are hidden.

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.

  1. Close Unreal Editor before replacing plugin binaries.
  2. Copy the SnapCompare folder into YourProject/Plugins/.
  3. Open the project, enable SnapCompare in Edit > Plugins, and restart when prompted.
  4. 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.

A native Unreal viewport comparison of two lighting and scene settings.

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.

The active return point and restoration scope appear above the dimmed newer entries.
Timeline restoration covers supported tracked values. It does not reconstruct actor creation or deletion, structural Blueprint edits, external files, or arbitrary game state.

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.

Previews stay compact; the stored value remains available in the tooltip.
Property History extends the existing context menu with recorded previous values.

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.

Select a row for its full paths, edit context and source details.
  • 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.

The composer displays three captured views with two independently positioned dividers.

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.

Imported images and exported presentations remain your content. Check that you have permission to redistribute any artwork or screenshots included in an export.

Project settings

Settings in the main panel and Project Settings > Plugins > SnapCompare edit the same project preferences.

SettingDefaultUse
Maximum comparisons15Keep 1 to 1,000 catalogue entries. Pruned PNG files remain.
Values per property5Keep 1 to 100 quick-history values per property.
Property history buttonOffAdd a shortcut beside supported Details values.
Main toolbar buttonOnShow the editor toolbar shortcut.
Viewport capture buttonsOnUse the native toolbar or a viewport corner with adjustable margins.
Viewport history buttonOffAdd a shortcut to the main panel.
Comparison controlsOnShow 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

ContextKeysAction
EditorCtrl + Shift + BCapture A
EditorCtrl + Shift + NCapture B
Focused comparisonArrow keysMove the divider; hold Shift for smaller steps.
Focused comparisonEscClose
PIE / Development gameF10Capture A, then B
PIE / Development gameShift + F10Start a new A
PIE / Development gameF9Toggle 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 projectContents
Saved/SnapCompare/History/Comparison catalogue, full-resolution Before/After PNGs and thumbnails.
Saved/SnapCompare/PropertyHistory.jsonDurable-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.

Selected screenshot