Перейти к контенту
Медиа 1 для объявления Plugin Cleaner - UE5 Engine Plugin Audit, Evidence & Safe .uproject Disable

Описание

Your project is running plugins nobody on your team ever chose.

On Unreal Engine 5.8, 173 engine plugins are enabled by default. They appear nowhere in your .uproject, so no diff ever showed them to a reviewer — and every one of them is loading in your editor right now. The manual answer is grim, and the UE forums record it: turn plugins off one at a time and see what breaks.

Plugin Cleaner examines every enabled plugin across six reference channels and gives each one a verdict with its evidence attached — the file, the channel and the dependency that proves it.

  • Referenced — keep. Named with the exact asset, Build.cs entry or config line that proves it.

  • No reference found. Note the wording: that is a claim about what the scan could read, not a verdict on your project. It never says “unused”.

  • Undecidable — keep. Anything it could not read pushes a plugin toward keep, never away.

It tells you what it cannot see. Asset guidelines are not indexed by the asset registry, so a plugin required only by one would show as no-reference-found — and the report says so, in the report, every run. String-constructed loads are detected and listed unattributed, because a path assembled at runtime cannot be resolved by any static analysis and this tool refuses to guess which plugin it might reach.

The fix is a diff, not a mystery. Disabling is a surgical text edit to your .uproject: "Enabled": true becomes "Enabled": false, with no JSON reformat and no reordered keys — every byte the tool did not deliberately change is byte-identical. The unified diff is embedded in every report before anything touches disk, and writing takes a timestamped backup that one call reverts.

What a real run looks like

Plugins examined : 246 Referenced : 7 No reference found: 239 Undecidable : 0 Project packages walked : 5 Files read : 4

Getting Started / How to launch

Full documentation: Plugin Cleaner documentation

Plugin Cleaner is a commandlet, not an editor panel — it is built to run in CI as well as on a workstation. There is no window to find. The launch point is the command line in step 5.

  1. Unzip the download. You get a single folder named PluginCleaner.

  2. Copy it into your project’s Plugins folder, so you have YourProject/Plugins/PluginCleaner/PluginCleaner.uplugin. Create Plugins if it does not exist.

  3. Launch the project once. Unreal compiles the editor module on first load.

  4. Confirm it loaded: Edit → Plugins, search Plugin Cleaner. It is enabled by default. Your log should contain no “Skipping load of PluginCleaner” line.

  5. Run it. This is the launch point — from your project directory:

UnrealEditor-Cmd.exe MyProject.uproject -run=PluginCleaner -Out=Saved/PluginCleaner -unattended -nopause

  1. Open Saved/PluginCleaner/report.html — the designed report shown in the screenshots: the verdict bar, the work counts, the evidence rows, and the proposed .uproject diff.

  2. Nothing has been modified at this point. Read the embedded diff first.

  3. Apply it: add -Apply. A timestamped backup of the .uproject is written first, and one call restores it.

  4. Gate it in CI: add -FailOnFindings and read the exit code.

Commandlet switches: -run=PluginCleaner · -Out=<dir> · -Apply · -FailOnFindings · -IncludeProjectPlugins · -ReadAssetGuidelines

Exit codes: 0 clean · 1 findings (opt-in) · 2 scanned nothing · 3 scan refused · 4 apply failed. Exit code 2 exists deliberately: a scan that examined nothing and reported a clean result is the failure this tool was built to refuse, so it is a distinct exit code rather than a success.

Supported Target Build Platforms: Win64. This matches the PlatformAllowList in PluginCleaner.uplugin exactly. CSAF builds and tests on Windows only, and this listing states only what is verified.

Включённые форматы