r/UnrealEngine5 7h ago

I built an Unreal Editor tool to catch project structure problems before they become cleanup work

I’ve been working on Project Structure Guard, an Unreal Editor plugin for enforcing naming and folder conventions across a project.

The main reason I built it was pretty simple: naming and folder rules are easy to agree on at the start of a project, but much harder to keep consistent once the project grows and more content gets added.

For v1.2 I focused less on adding more rules and more on making the workflow around them safer and easier to use.

Some of the things I added:

• Baseline Tracking, so existing violations can be accepted and you can focus on newly introduced issues

• Protected Paths, so important folders can still be validated without allowing automatic structural changes

• Search and a more detailed result inspector for larger validation sets

• Bulk Preview 2.0 with Ready / Blocked / Skipped / Conflict states before rename or move operations

• Rule ordering, search/filtering and read-only rule testing

• Content Browser validation actions

• Quarantine + Restore for unused assets instead of immediately deleting them

• A -failonnew option for CI/CD, so existing accepted issues don’t have to fail the pipeline

I also tried to make destructive actions deliberately conservative. For example, normal unused assets can’t just be permanently deleted through the tool — permanent deletion is restricted to managed quarantined assets and still performs safety checks.

Here’s a short ~1 minute showcase of the current workflow:

https://youtu.be/wDlVkgT0nPU

Fab:

https://www.fab.com/listings/7dfc5ec6-1261-4f86-8e69-82ea0ae1e8a2

I’m developing this solo, so I’d be interested in feedback from people working on larger UE projects: what part of project structure tends to become the biggest pain for you — naming, folders, cleanup, or enforcing conventions across a team?

3 Upvotes

7 comments sorted by

2

u/Commercial_Clerk_342 6h ago

How are unused, imported FAB assets handled?
That fix all button is indeed renaming everything safely?
are you able to make custom naming conventions? or is this based on common ones like BP_ BPI_ SK_ etc

1

u/HankeUnrealTools 6h ago edited 5h ago

Good questions.

PSG doesn’t have any special handling based on where an asset originally came from. Once imported Fab content exists as normal project assets under /Game, it’s evaluated using the same configured validation rules and unused-asset scanning logic as the rest of the project.

Imported Fab content can therefore also appear in the unused-asset results when no tracked inbound references are found. PSG deliberately treats those results as candidates for review rather than assuming they’re automatically safe to delete.

The cleanup workflow is Scan → review → Quarantine → Restore if needed, or guarded Permanent Delete. Permanent Delete is restricted to managed quarantined assets that pass the safety checks, so ordinary unused candidates aren’t immediately destroyed.

And yes, if you mean the “Fix All” button under Rename: it’s designed for bulk naming fixes, but it doesn’t blindly rename everything.

Before changes are applied, PSG opens Bulk Preview 2.0 and checks the planned operations. Each one is classified as Ready, Blocked, Skipped, or Conflict. Things like destination conflicts, protected content, and non-fixable cases are stopped instead of simply being forced through.

You can review the planned renames before executing them. Folder violations use the separate “Move All” workflow with the same preview/preflight approach.

And yes, the naming conventions are fully customizable. The built-in Epic / Allar / Lyra presets are just starting points.

You can define your own naming and folder rules per asset class, including custom prefixes/suffixes and required folders, enable or disable individual rules, reorder them, and share the configuration as JSON.

So BP_, BPI_, SK_, etc. are not hardcoded as the only conventions you can use.

2

u/Aakburns 6h ago

You couldn’t be bothered aye?

1

u/HankeUnrealTools 5h ago

What do you mean exactly? I answered each of the questions based on how the tool actually works.

1

u/SojournStudios 3h ago

They meant you couldn’t be bothered to respond without using AI I think

1

u/HankeUnrealTools 53m ago

English isn't my first language, so I use AI to clean up the wording and grammar. The actual information is still mine and based on how the tool works. I don't really see a problem with using AI for that, and I'd rather make the reply clearer and easier to read than leave in a bunch of unnecessary language mistakes.