Skip to content

User Manual

ShipCheck User Guide

This guide explains how to use ShipCheck inside Unreal Engine, how to read the results, how to create custom presets, and how to solve common problems.

Opening ShipCheck

Open the dashboard from the Unreal Engine main menu:

Ecal Studios > ShipCheck - Release Checklist

ShipCheck opens as a dockable editor tab. You can place it next to the Content Browser, Output Log, Project Settings, or anywhere else in your editor layout.

Running Your First Check

Choose a Preset

At the top of the dashboard, choose the preset that best matches what you are preparing.

Preset Best For
Game Build General packaged game releases
Steam Demo Public demos, Next Fest builds, test demos
Internal QA Builds sent to testers or collaborators
Fab Plugin Submission Unreal Engine plugins prepared for Fab
Fab Asset Submission Asset packs prepared for Fab

The preset decides which checks are included in the run.

Click Run ShipCheck

Press Run ShipCheck.

ShipCheck scans the project and fills the results list. On most projects this only takes a short moment.

Review the Readiness Score

The readiness score gives you a quick overview of the current release state.

A high score usually means the project is in good shape. A lower score means there are failed checks, warnings, or unconfirmed manual tasks that should be reviewed before shipping.

Do not treat the score as the only decision. Always check the result list as well.

Read the Result List

Each row shows:

  • Status
  • Check name
  • Short message
  • Severity
  • Manual confirmation checkbox when needed

Failed checks should usually be fixed first. Warnings are often less urgent, but still worth reviewing. Manual checks need your own confirmation.

Use the Details Panel

Click a check result to open the details panel.

The details panel explains:

  • What was checked
  • Why it matters
  • What ShipCheck found
  • What ShipCheck expected
  • What you can do to fix or confirm it

This is the most important part of the tool when you are unsure what a result means.

Confirm Manual Checks

Manual checks are tasks that ShipCheck cannot safely verify by itself.

Examples include:

  • Testing on a clean machine
  • Confirming store page text is final
  • Verifying target hardware
  • Checking screenshots or trailers
  • Reviewing release notes

Once you have done the task, tick the checkbox in the result row.

Export a Report

After a run, you can export the results.

Button Output
Export .md Human-readable Markdown report
Export .json Machine-readable JSON report
Copy Summary Short summary for chat, issue trackers, or build notes

By default, reports are saved to:

Saved/ShipCheck/Reports/

Understanding Result States

State Meaning
Passed ShipCheck found no issue for this check
Warning Something looks suspicious or worth reviewing
Failed A clear issue was detected
Manual A human needs to confirm this item
Skipped The current preset did not include this check
Not Applicable The check does not apply to this project

Working With Custom Presets

Custom presets are one of the most useful features in ShipCheck. They let you turn your own release process into a repeatable checklist.

Creating a Custom Preset

  1. Click the + button next to the preset dropdown.
  2. Enter a preset name.
  3. Add an optional description.
  4. Choose the automated checks you want.
  5. Add custom manual checks if needed.
  6. Save the preset.

The preset appears in the dropdown and can be used like any built-in preset.

Editing a Custom Preset

  1. Select your custom preset in the dropdown.
  2. Click Edit.
  3. Change the selected checks or manual checks.
  4. Save the preset.

Built-in presets cannot be edited. This protects the default workflows from accidental changes.

Deleting a Custom Preset

  1. Select your custom preset.
  2. Click Del.
  3. Confirm the deletion.

Deleted presets are removed permanently unless you restore Saved/ShipCheck/CustomData.json from a backup.

Custom Manual Checks

Custom manual checks are release reminders that matter to your project but cannot be fully automated.

Each manual check can include:

Field Purpose
Name The visible check title
Explanation Why this check matters
Fix Hint What to do if it is not ready
Severity How important the check is

Good examples of custom manual checks:

  • Confirm the build was tested on Steam Deck
  • Verify the store screenshots are final
  • Confirm the README matches the current version
  • Check that the support email is correct
  • Confirm the final build number is written in release notes
  • Verify save files from older versions still load

Keep custom checks short and practical. They should be easy to understand when you are tired, busy, or close to a release deadline.

Check Categories

Project Settings

Checks important project metadata such as version, company name, project name, and platform icon setup.

These details are easy to forget, but they help make a project feel finished and properly prepared.

Maps

Checks whether the Game Default Map is set and whether the referenced map exists.

A missing or wrong default map can cause confusing packaged build problems.

Packaging

Reviews packaging-related setup such as build configuration and whether important release packaging options are enabled.

Debug

Looks for obvious debug leftovers and reminds you to review Blueprint debug output before release.

ShipCheck uses safe scanning methods and does not load every Blueprint graph into memory just to find Print String nodes. For a full Print String review, use Unreal's Find in Blueprints tool.

Assets

Checks common asset cleanup issues such as redirectors, oversized textures, and broken hard dependencies.

Plugins

Checks enabled plugins against your configured developer plugin denylist.

This is useful for catching tools or experimental plugins that should not be enabled for a release build.

Localization

Checks whether localization targets and culture folders are present.

This does not replace a full localization review, but it helps catch missing setup early.

Release Notes

Checks whether expected documentation files, such as README and changelog files, are present.

Fab Prep

Reviews plugin descriptor information and other submission-related details that matter when preparing a Fab upload.

Settings

Open ShipCheck settings from:

Edit > Project Settings > Plugins > ShipCheck

Common settings include:

Setting Purpose
Default Preset The preset selected when ShipCheck opens
Export Folder Where reports are saved
Max Texture Resolution Threshold for oversized texture warnings
Developer Plugin Denylist Plugins that should be flagged when enabled
Expected README Path Path used by documentation checks
Expected Changelog Path Path used by documentation checks
Save History Enables or disables run history

Release Notes Field

The dashboard includes a Release Notes field.

Anything you write there is included in exported reports. This is useful for:

  • Known issues
  • Build notes
  • Tester instructions
  • Version notes
  • Release reminders

Example:

Known issue: controller glyphs are still placeholder images.
QA note: please test the settings menu before approving this build.

Run History

ShipCheck saves a summary of each run to:

Saved/ShipCheck/History.json

The history helps you see how the project changed over time.

You can use it to track readiness improvements, compare release candidates, or keep a lightweight record of pre-release checks.

FAQ

Does ShipCheck add anything to my packaged game?

No. ShipCheck is editor-only. It does not add runtime code, assets, or systems to your packaged game.

Will ShipCheck automatically fix my project?

No. ShipCheck is a diagnostic tool.

It tells you what looks wrong and gives you suggested fixes, but it does not change project settings, delete files, or modify assets. This is intentional, because release preparation should stay under your control.

Can I create my own custom checks?

Yes. Click the + button next to the preset dropdown and add custom manual checks inside the preset editor.

Custom checks are manual because they are based on your own release process, but you can give them a name, explanation, severity, and fix hint.

Can I edit or delete custom presets?

Yes. Select the custom preset, then use Edit or Del.

Built-in presets are read-only and cannot be changed or deleted.

Where are custom presets saved?

Custom presets and custom manual checks are saved here:

Saved/ShipCheck/CustomData.json

They persist between editor sessions.

Why does the Print String check say manual review recommended?

A full Blueprint graph scan can be expensive because it may require loading many Blueprint assets into memory.

ShipCheck uses a safer lightweight scan and recommends using Find in Blueprints for a dedicated Print String review.

Why do redirectors come back after I fix them?

Redirectors can be recreated whenever you move or rename assets.

After reorganizing content, right-click the Content folder and choose Fix Up Redirectors in Folder. It is also a good idea to do this before packaging or submitting a project.

Can I use ShipCheck on a Blueprint-only project?

Yes, but Blueprint-only projects may need one empty C++ class so Unreal can build and load C++ plugins correctly.

The class can remain empty.

Can I use ShipCheck for plugin projects?

Yes. The Fab Plugin Submission preset is built for plugin authors and checks plugin-related release items.

How do I add a plugin to the developer denylist?

Open:

Edit > Project Settings > Plugins > ShipCheck

Then add plugin names to the developer denylist.

Examples:

PythonScriptPlugin
ChaosVehiclesPlugin
Does ShipCheck support Mac and Linux?

ShipCheck is built as a C++ Slate editor plugin and does not rely on platform-specific runtime systems. It is intended to work on Windows, macOS, and Linux editor environments supported by Unreal.

Troubleshooting

The ShipCheck menu does not appear

First, check that the plugin is enabled.

Go to:

Edit > Plugins

Search for ShipCheck, enable it, and restart the editor.

If the menu still does not appear, open the Output Log and search for:

LogShipCheck

The log usually points to the reason the plugin did not load.

The plugin fails to compile

Check the basics first:

  • Use Unreal Engine 5.5, 5.6, or 5.7.
  • Make sure the full plugin folder was copied.
  • Confirm the Source folder is present.
  • Confirm the Resources folder is present.
  • Regenerate project files.
  • Rebuild in Development Editor.

The most common causes are an unsupported engine version or an incomplete plugin folder.

Run ShipCheck does nothing

Make sure a preset is selected.

Then check the Output Log for:

LogShipCheck

If the button is disabled or appears stuck, a previous run may still be finishing.

The oversized texture check reports nothing

ShipCheck reads texture metadata from the Asset Registry without loading every texture.

If assets were recently imported, the metadata may not be ready yet. Try validating assets, saving the project, and running ShipCheck again.

Also check the maximum texture resolution setting. A value of 0 disables the check.

The Plugin Descriptor check says Not Applicable

This is normal for projects that do not contain a .uplugin file inside the project Plugins folder.

The check only applies to plugin projects.

Markdown or JSON export fails

Check that Unreal has write permission to:

Saved/ShipCheck/Reports/

Also confirm that you have run ShipCheck at least once in the current session. Export buttons may be unavailable until there is a result to export.

You can change the export folder in ShipCheck settings.

A custom preset is missing after restarting

Custom presets are loaded from:

Saved/ShipCheck/CustomData.json

Make sure the file exists and contains valid JSON.

If the editor crashed while saving, the file may be incomplete. Restore it from a backup if possible, or delete it and recreate the presets.

A custom manual check does not appear

Custom manual checks only appear in the preset where they were added.

Open the preset editor for that preset and make sure the check is selected.

History is not being saved

Check that Save History is enabled in ShipCheck settings.

The history file is written here:

Saved/ShipCheck/History.json

If the file is not created, check folder permissions for the project Saved directory.

Copyright (c) 2026 Ecal Studios. All Rights Reserved.