skills/ue-level-streaming-analyzer/SKILL.md
Analyze World Partition, HLOD, Data Layers, and level streaming configuration for performance and correctness. Use when debugging streaming issues, optimizing level loading, auditing world partition setup, or investigating pop-in/hitches. Triggers on "world partition", "level streaming", "HLOD", "data layers", "streaming distance", "level loading", "pop-in".
npx skillsauth add sipherxyz/universal-ue-skills ue-level-streaming-analyzerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Analyze World Partition configuration, HLODs, Data Layers, and streaming settings for AAA performance.
Locate world partition assets:
Content/{ProjectName}/Maps/{LevelName}/
├── {LevelName}.umap # Main level
├── {LevelName}_HLOD/ # HLOD actors
├── __ExternalActors__/ # External actor storage
└── __ExternalObjects__/ # External object storage
Analyze WorldSettings for:
| Setting | Recommended | Impact |
|---------|-------------|--------|
| RuntimeGrid | 12800 (128m cells) | Memory vs granularity |
| LoadingRange | Based on view distance | Pop-in timing |
| DataLayersInitiallyActive | Minimal set | Initial load time |
| bEnableStreaming | true | Required for WP |
Check Data Layer configuration:
## Data Layer Report
### Active by Default
| Layer | Actor Count | Estimated Memory |
|-------|-------------|------------------|
| {LayerName} | {count} | {size} |
### Streaming Layers
| Layer | Streaming Policy | Distance |
|-------|------------------|----------|
| {LayerName} | {policy} | {dist} |
### Issues Found
- {Layer} has no streaming distance set
- {Layer} overlaps with {OtherLayer}
Analyze HLOD setup:
| HLOD Level | Cell Size | Simplification | Purpose | |------------|-----------|----------------|---------| | HLOD0 | 12800 | Merged Static Meshes | Near LOD | | HLOD1 | 25600 | Simplified Meshes | Mid LOD | | HLOD2 | 51200 | Imposters | Far LOD |
Quality Checks:
Per-actor streaming settings:
## Streaming Distance Analysis
### Oversized Streaming Distances
Actors loading from too far away (causes memory pressure):
| Actor | Current Distance | Recommended | Reason |
|-------|------------------|-------------|--------|
| {Actor} | 50000 | 25000 | Small prop, not visible at distance |
### Undersized Streaming Distances
Actors loading too late (causes pop-in):
| Actor | Current Distance | Recommended | Reason |
|-------|------------------|-------------|--------|
| {Actor} | 5000 | 15000 | Large landmark, visible from far |
Issue: Data Layer "Gameplay" has 500+ actors always loaded
Impact: High base memory, long initial load
Fix: Split into streaming sub-layers by area
Issue: Cell (12,5) has 200 actors, cell (12,6) has 5 actors
Impact: Inconsistent streaming hitches
Fix: Redistribute actors or adjust grid size
Issue: HLOD actors are stale or missing
Impact: No LOD transitions, high draw calls at distance
Fix: Build HLODs: World Partition → Build → Build HLODs
Issue: Multiple actors competing for same streaming slot
Impact: Random pop-in, inconsistent loading
Fix: Assign explicit priorities based on gameplay importance
# Level Streaming Analysis: {LevelName}
## Executive Summary
- **Status**: {OK/WARNING/CRITICAL}
- **Estimated Memory Budget**: {GB}
- **Streaming Cell Count**: {N}
- **HLOD Status**: {Current/Stale/Missing}
## World Partition Configuration
| Setting | Value | Assessment |
|---------|-------|------------|
| Grid Size | {N} | {OK/Adjust} |
| Loading Range | {N} | {OK/Adjust} |
## Data Layer Summary
| Layer | Actors | Memory | Always Loaded |
|-------|--------|--------|---------------|
| {Layer} | {N} | {MB} | {Yes/No} |
## HLOD Summary
| Level | Cells | Status | Triangle Budget |
|-------|-------|--------|-----------------|
| HLOD0 | {N} | {status} | {triangles} |
## Critical Issues
1. {Issue with fix}
## Optimization Recommendations
1. {Recommendation with expected improvement}
| Command | Purpose |
|---------|---------|
| wp.Runtime.ToggleDrawRuntimeHash2D | Visualize streaming grid |
| wp.Runtime.ToggleDrawRuntimeHash3D | 3D streaming visualization |
| wp.EnableStreaming 1 | Enable WP streaming |
| stat LevelStreaming | Streaming statistics |
| obj list class=WorldPartitionRuntimeCell | List loaded cells |
Project-specific considerations:
development
This skill should be used when implementing features in isolation using git worktrees. Triggers on "create worktree", "isolated workspace", "parallel development", or when starting implementation that should not affect main workspace.
testing
Manage VFX team issues on GitHub Projects - timeline scheduling, status updates, member commit checks, bulk assign. Use when managing VFX team project board, adding issues to timeline, checking member progress, or bulk-updating issue fields.
tools
Generate C++ validation rules from JSON definitions. Use when team updates ValidationRules.json or asks to add/modify validation rules.
development
Check codebase for Microsoft Xbox XR (Xbox Requirements) compliance issues. Scans for account picker, cloud saves, achievements, Quick Resume, and Xbox certification requirements. Use before console submission or when preparing for Microsoft certification. Triggers on "XR", "Xbox certification", "Microsoft compliance", "Xbox cert", "Xbox requirements", "GDK compliance".