Skip to main content

Compilation Testing Guide

Testing ElysMusicEngine Compilation​

Before submitting to Epic/FAB Marketplace, test compilation locally:

Quick Test (Single Version)​

.\test_compilation.ps1 -UEVersion 5.4

Test Multiple Versions​

.\test_compilation.ps1 -TestVersions @("5.0", "5.1", "5.2", "5.3", "5.4", "5.5")

Clean Build​

.\test_compilation.ps1 -UEVersion 5.4 -CleanOutput

Verbose Output​

.\test_compilation.ps1 -UEVersion 5.4 -Verbose

What the Script Does​

  1. ✅ Locates Unreal Engine installations
  2. ✅ Runs RunUAT BuildPlugin for each version
  3. ✅ Captures build logs
  4. ✅ Reports compilation errors and warnings
  5. ✅ Validates output binaries
  6. ✅ Provides summary of results

Build Output​

Build artifacts are saved to: BuildTest/UE_[Version]/

Each build includes:

  • Compiled plugin binaries
  • BuildLog.txt - Full build output
  • BuildLog_Error.txt - Error output

Common Issues​

Missing UE Installation​

Error: Unreal Engine X.X not found

Solution: Script searches in:

  • C:\Program Files\Epic Games\UE_X.X
  • D:\Program Files\Epic Games\UE_X.X
  • E:\Epic Games\UE_X.X

Edit $UEBasePaths in the script if your installation is elsewhere.

Compilation Errors​

Error: error C2065: 'GEngine': undeclared identifier

Solution: Missing #include "Engine/Engine.h" - Already fixed in this update.

Error: error C2027: use of undefined type 'UWorld'

Solution: Missing #include "Engine/World.h" - Already fixed in this update.

Error: cannot convert from 'UWorld *' to 'const UObject *'

Solution: These types should be convertible. Check for missing includes or module dependencies.

CI/CD Integration​

The GitHub Actions workflow (.github/workflows/unreal-build.yml) performs:

  1. Structure Validation - Checks plugin files and directories
  2. Code Validation - Verifies ERP naming, includes, dependencies
  3. Documentation Validation - Lints markdown files
  4. Instructions - Reminds to run local compilation tests

Note: GitHub Actions does NOT compile the plugin (UE is too large for CI). Always test locally before submitting.

Pre-Submission Checklist​

  • Run test_compilation.ps1 for all target UE versions
  • Fix all compilation errors
  • Review and address warnings
  • Test plugin in-editor
  • Run prepare_fab_package.py --validate
  • Verify no binaries in git (Binaries/, Intermediate/)
  • Update CHANGELOG.md if applicable
  • Submit to Epic/FAB

Manual UAT Command​

If you prefer manual testing:

cd "C:\Program Files\Epic Games\UE_5.4\Engine\Build\BatchFiles"

.\RunUAT.bat BuildPlugin `
-Plugin="C:\Path\To\ElysMusicEngine.uplugin" `
-Package="C:\Path\To\Output" `
-Rocket

Troubleshooting​

Script Execution Policy​

If PowerShell blocks the script:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Build Hangs​

  • Increase timeout in script if needed
  • Check Task Manager for stuck UnrealBuildTool.exe
  • Manually kill and retry with -CleanOutput

Missing Dependencies​

Ensure these are installed:

  • Visual Studio 2022 (for UE 5.3+)
  • .NET SDK
  • Windows SDK

Getting Help​

If compilation tests fail:

  1. Check BuildTest/UE_[Version]/BuildLog.txt
  2. Search error codes in Unreal Engine documentation
  3. Review include paths and module dependencies
  4. Open an issue with:
    • UE version
    • Full error message
    • Relevant build log section