Skip to content

gregorik/PSO-Autopilot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

✈️ PSO Autopilot (Core)

📺 Watch a video
📺 More test runs

PSOProm

[This repository deals with advanced bypasses of standard Unreal C++ bottlenecks. 🟢 Currently available for B2B consulting and remote contract/Co-Dev integration (CET Timezone). Contact form.]

💥 A Solution to Unreal Engine 5 OOM Crashes

The "Shader Compilation" plugins on assorted marketplaces brute-force load all of your assets at once. If you have a massive 50GB project, this will cause your RAM to spike, your loading screen to freeze entirely, and eventually result in an Out-Of-Memory (OOM) crash.

PSO Autopilot aims to fix this.

🧠 The Core Feature: Memory-Safe Chunking

Instead of loading thousands of materials simultaneously, PSO Autopilot Core uses the FStreamableManager to asynchronously stream your Materials in controlled batches (e.g., 100 at a time). After a batch is compiled via the Engine's native FShaderPipelineCache, the plugin explicitly drops references and yields to Unreal's asynchronous Garbage Collection. Your RAM footprint remains completely flat, making this tool safe for massive open-world projects.

📖 A detailed manual is available at: https://gregorigin.com/PSO_Autopilot/
💎 A Pro version is available at Fab. It includes important additional functionality: Time-Sliced Game Thread Yielding, Smart Cache Skipping, Engine PSO Pacing, and much more. If you are releasing a commercial game and want a truly seamless player experience, you probably want the Pro version.

💬 Discord support

Feature Comparison Core GitHub version (0.1+ MIT) Pro FAB edition (0.3+ Closed)
📦 Version Core Fully featured + updated
🚚 Distribution Source only Binaries, vetted by Epic
⚙️ Engine support UE 5.7.0 UE 5.6 - 5.7.3+
🧠 Memory-Safe Chunking ✅ Included ✅ Included
🛡️ OOM Crash Mitigation ✅ Included ✅ Included
⏱️ Sub-second Loading Screens ✅ Included ✅ Included
Time-Sliced Game Thread Yielding ❌ n/a ✅ Included
⏭️ Smart Cache Skipping ❌ n/a ✅ Included
🐎 Engine PSO Pacing ❌ n/a ✅ Included
🎆 Niagara Systems Support ❌ n/a ✅ Included
🚀 Zero-Redundancy Boot ❌ n/a ✅ Included
🛑 Exclude Specific Classes From Scan ❌ n/a ✅ Included
🎯 Explicit Assets to Warm ❌ n/a ✅ Included
🔄 Runtime-Queued Assets ❌ n/a ✅ Included
🔗 Package Dependency Expansion ❌ n/a ✅ Included
💽 Destination-Level Package Preloading ❌ n/a ✅ Included
🧱 Asset-Specific PSO Precache ❌ n/a ✅ Included
🧪 3-level Torture Test Demo ❌ n/a ✅ Included
🏗️ Production Boot-Flow Sample ❌ n/a ✅ Included
🔄 Updates ❌ n/a ✅ Regular, vetted by Epic
🕵️ Quality Assurance GitHub Issues ✅ Vetted by Epic, tested by author
💬 Support GitHub Issues ✅ Forum & Email


🛠️ How to Use

  1. Copy the PSOAutopilotCore folder into your project's Plugins folder.
  2. Regenerate Visual Studio files and compile.
  3. Open Unreal Engine. Go to Edit > Project Settings > PSO Autopilot Core. Set your target directories and batch sizes.
  4. In your Loading Screen UI Blueprint, call Get Game Instance Subsystem -> PSO Autopilot Core Subsystem.
  5. Bind an event to On Progress Updated to drive your loading bar.
  6. Call Start Warmup.

Code by Andras Gregori. MIT License.