$npx -y skills add teixasalone/UnrealEngine5-Skills --skill ue5-performance-packagingUE5.6/UE5.7 performance and packaging readiness workflow. Use when requests involve PIE performance checks, runtime stat review, pre-package validation, build configuration sanity, and release readiness checklists.
| 1 | # Quick Start |
| 2 | - Confirm target platform and build configuration. |
| 3 | - Collect current performance symptoms and packaging goal. |
| 4 | - Output a pre-package checklist plus measurement plan. |
| 5 | |
| 6 | # UE5.7 API Anchors |
| 7 | - Runtime quality and frame-budget anchors: |
| 8 | - `UGameUserSettings::SetOverallScalabilityLevel(...)` |
| 9 | - `UGameUserSettings::SetFrameRateLimit(...)` |
| 10 | - `UGameUserSettings::ApplySettings(...)` |
| 11 | - Packaging settings anchors: |
| 12 | - `UProjectPackagingSettings` |
| 13 | - `BuildConfiguration`, `MapsToCook`, `DirectoriesToAlwaysCook` |
| 14 | - `UsePakFile`, `bUseIoStore`, `bGenerateChunks` |
| 15 | - Asset dependency validation anchors: |
| 16 | - `FAssetRegistryModule`, `IAssetRegistry` |
| 17 | - `GetAssetsByPath(...)` |
| 18 | - `GetDependencies(...)`, `GetReferencers(...)` |
| 19 | - Profiling instrumentation anchors: |
| 20 | - `TRACE_CPUPROFILER_EVENT_SCOPE(...)` |
| 21 | - `DECLARE_CYCLE_STAT(...)` |
| 22 | - Practical runtime stat commands: |
| 23 | - `stat unit`, `stat gpu`, `stat scenerendering`, `memreport -full` |
| 24 | |
| 25 | # Performance and Packaging Contract |
| 26 | - Every performance/packaging task must define: |
| 27 | - target platform + build config + test map |
| 28 | - reproducible capture scenario (camera path, duration, net mode) |
| 29 | - baseline metrics and acceptance thresholds |
| 30 | - packaging configuration set and dependency scan scope |
| 31 | - go/no-go output with explicit blockers |
| 32 | - If any item is missing, readiness evaluation is incomplete. |
| 33 | |
| 34 | # Workflow |
| 35 | ## 1) Reproducible Baseline Capture |
| 36 | - Freeze test map, camera path, scalability, and net mode. |
| 37 | - Capture `stat unit` and `stat gpu` under same scenario repeatedly. |
| 38 | - Use median or percentile metrics, not single-frame spikes. |
| 39 | |
| 40 | ## 2) Hotspot Isolation |
| 41 | - Identify top-cost gameplay/render systems in the capture window. |
| 42 | - Correlate high-cost actors/assets with scene context. |
| 43 | - Add scoped CPU markers for custom systems when attribution is unclear. |
| 44 | |
| 45 | ## 3) Asset and Dependency Validation |
| 46 | - Scan target paths for missing or broken asset references. |
| 47 | - Query dependencies and referencers for problematic assets. |
| 48 | - Validate required map/game mode assets are included in package scope. |
| 49 | |
| 50 | ## 4) Packaging Configuration Validation |
| 51 | - Check `UProjectPackagingSettings` fields for target release policy. |
| 52 | - Validate maps-to-cook, always-cook directories, and build configuration. |
| 53 | - Validate Pak/IoStore/chunk strategy against distribution requirements. |
| 54 | |
| 55 | ## 5) Package Readiness Trial |
| 56 | - Run pre-package checklist and dry-run style verification. |
| 57 | - Isolate first blocking packaging error and dependency chain. |
| 58 | - Record unresolved blockers with owner and risk. |
| 59 | |
| 60 | ## 6) Go/No-Go Decision |
| 61 | - Approve only when metrics and packaging checks meet thresholds. |
| 62 | - Report remaining risks and recommended mitigation actions. |
| 63 | - Lock scenario and settings used for sign-off evidence. |
| 64 | |
| 65 | # Constraints |
| 66 | - Do not claim optimization wins without measurable before/after data. |
| 67 | - Keep profiling scenario reproducible (map, camera path, net mode). |
| 68 | - Distinguish editor overhead from packaged runtime behavior. |
| 69 | - Avoid changing quality scalability settings without reporting it. |
| 70 | - Keep packaging checks deterministic; avoid ad-hoc config toggles during sign-off. |
| 71 | - Always report metric units (ms, fps, memory) and capture duration. |
| 72 | |
| 73 | # Failure Handling |
| 74 | - Symptom: performance data is noisy across runs. |
| 75 | - Locate: non-deterministic scenario setup and background variance. |
| 76 | - Fix: lock scenario, warm up run, and compare median/percentile values. |
| 77 | - Symptom: optimization claims do not reproduce. |
| 78 | - Locate: mismatched quality settings, map, or runtime mode. |
| 79 | - Fix: publish exact capture config and rerun before/after under same conditions. |
| 80 | - Symptom: package build fails with long error cascade. |
| 81 | - Locate: first blocking error and its direct dependency chain. |
| 82 | - Fix: resolve earliest blocker first; rerun to reveal next blockers. |
| 83 | - Symptom: packaged build launches with missing assets. |
| 84 | - Locate: cook list coverage and dependency graph gaps. |
| 85 | - Fix: include missing maps/directories and resolve broken references. |
| 86 | - Symptom: packaged build perf is worse than PIE baseline. |
| 87 | - Locate: packaged-only config differences and runtime content path. |
| 88 | - Fix: compare packaged config to baseline and align scalability/device settings. |
| 89 | - Symptom: memory usage regresses near content-heavy scenes. |
| 90 | - Locate: high-memory assets and streaming policy behavior. |
| 91 | - Fix: reduce resident asset pressure and adjust streaming/cook strategy. |
| 92 | |
| 93 | # Packaging Ops |
| 94 | - Prefer explicit map/cook lists over implicit discovery for release builds. |
| 95 | - Use AssetRegistry queries to validate dependencies before packaging. |
| 96 | - Keep one source of truth for release packaging settings per target profile. |
| 97 | - Re-run readiness checks after any packaging setting change. |
| 98 | |
| 99 | # UE5.6 / UE5.7 Compatibility Notes |
| 100 | - `UGameUserSettings`, `UP |