Project Optimise - Tool to help find potential problems and optimisations in your projects

Unreal Engine Tool: Project Optimise

I made a tool to help you find potential problems and optimisations in your Unreal Engine 5 projects (currently works with UE5.3, 5.4, 5.5). It’s built using Unreal Editor Utility Widgets, so it’s lightweight, easy to set up and use.

Check it out on the The FAB marketplace HERE

It has three main areas of functionality.

Optimisations:
  • Search for 19 different types of optimisations
  • Spread across 8 asset types
Bugs:
  • Search for 10 different types of bugs
  • Spread across 7 asset types
Naming Checks:
  • Check for assets not using consistent naming conventions
  • Define the prefixes you prefer to use in your own projects

Below you can see it in action - I’m searching and generating a list of any Static Meshes in my project that have no LODs (you can see that it finds 59).
GIF_GumroadThumb_UseTool_Opti_SM_NoLODs

NOTE: The tool doesn’t make changes to your project; it only reads your assets to generate logs of potential issues that you could look into.

I thought this was important because projects are highly contextual. What’s correct for one project may not apply to another. For example, a static mesh without collision might be an intentional design choice rather than a bug.

Guides:
Video Guides:

Functionality Breakdown

Optimisation Searches:
  • Static Meshes:
    • No LODs
    • X or More Materials
    • X or More UV Channels
    • X Or More Verts
    • With Nanite Enabled/Disabled
  • Skeletal Meshes:
    • No LODs
    • X Or More Materials
    • X Or More Verts
  • Materials:
    • Using Translucency
    • Using Two-Sided
    • List All Master Mats
  • Textures:
    • Non-Power Of Two
    • Has size X
  • Sounds:
    • No Concurrency Settings
  • Misc:
    • Unused Project Assets
  • Foliage:
    • Cast Shadow Enabled
  • Blueprints:
    • Replication Set To True
    • Net Update Frequency Greater Than Or Equal To X
    • Network Cull Distance Greater Than Or Equal To X
Bug Searches:
  • Static Meshes:
    • No Collision
    • Missing Materials
  • Skeletal Meshes:
    • Missing Physics Assets
    • Missing Materials
  • Materials:
    • Missing Phys Mats
  • Textures:
    • LODs Bias Value Of X
  • Sounds:
    • Missing Attenuation Settings
  • Sounds:
    • Missing Sound Class Asset
  • Misc:
    • Project Redirectors
  • Foliage:
    • Missing Meshes

Why This Tool Exists

I have been making games in the Unreal Engine for over 10 years now and I’ve seen how easily small issues can creep into your project without you ever realising. While these problems might seem minor on their own, when they accumulate, they can harm the player’s experience just as much as a major bug could. Think of it as death by 1000 cuts (bugs).

For instance, a sound cue missing its Sound Class could make it unaffected by volume settings, or a static mesh used for a pickup might have no collision, causing it to fall through the floor when dropped.

In much the same way, as your game grows it is easy for small optimisation opportunities to be missed and build up to create a larger impact on your games framerate. This can be for many reasons (all of which I’ve done): rushed development, change in design, lack of optimisation knowledge at that time, and simply human error.

And so that is why this tool exists. I use it in my own projects to help me weed out issues and keep my projects as solid as possible.

I hope you find the tool useful, let me know if you have any suggestions to make it better!

Project Optimise Tool V3.2 Released

Originally, I was just planning on making sure the tool worked with the new Unreal Engine 5.6 release. However I ended up taking the opportunity to add some improvements, new searches, as well as bug fixes!


Here is a video where I break down the changes in the new update V3.2


Below, you can see the tool in action, running a new type of search that can help you find Static Meshes with Nanite Disabled that have no LODs set. Exposing an easy opportunity to optimise your project.

ProjectOptimiseV3-2_Update_StaticMeshNoLodNaniteDisabled


FULL PATCH NOTES:

Here’s what’s new in Project Optimise V3.2

  • Now supports Unreal Engine 5.6

  • 5 new optimisation searches added:

    • Static Mesh Optimisation Search - Same Material Assigned to Multiple Slots

    • Static Mesh Optimisation Search - No LODs & Nanite Disabled

    • Skeletal Mesh Optimisation Search - Same Material Assigned to Multiple Slots

    • Texture Optimisation Search - Virtual Textures Enabled / Disabled

    • Sound Optimisation search - WAV Length

  • Updated Blueprint replication search to use an enabled / disabled toggle

  • Search results are now sorted by size (where relevant)

    • Helping you spot problem assets more quickly. For example, materials are sorted by texture sample count, high to low
  • New page system for search results

    • Makes a larger number of results easier to navigate
  • New ‘Select’ button in each result row

    • Allows you to quickly jump to the asset in the Content Browser with one click
  • Added extra details to some search results

    • E.g. List All Master Materials search now shows texture sample count per material
  • UI/UX polish

    • Cleaned up text, refined flow, and made things a bit more minimal and intuitive
  • UI performance improvements

    • Reduced hitching when displaying large result sets
  • Misc bug fixes


I hope this update makes the tool even more helpful in keeping your project organised, optimised, and stable.

If there’s anything else you’d like to see in the tool, feel free to let me know.