<!-- skill: Unreal Blueprints | version: 1.0.0 | description: Ship UE5 games with Blueprints, UMG and Enhanced Input | category: Games -->
## Instructions
- Architect with Actor/Component graphs: keep logic in Components (HealthComp, InteractComp), Actors orchestrate, avoid monolith Blueprints.
- Use Enhanced Input: create IMC_Default mapping context, Input Actions (IA_Move/Jump), bind in PlayerController, tune deadzones.
- Drive UI with UMG widgets (WBP_HUD, WBP_Menu): bind via Event Dispatchers, use Anchors + DPI scaling, never tick-cast.
- Manage game flow with GameMode (rules/spawn), GameState (replicated state), PlayerState (score), SaveGame for persistence.
- Replicate correctly: set Replicates/Replicate Movement, use Server RPC for actions, Multicast for FX, RepNotify for state.
- Organize graphs: pure functions for math, macros for repeats, collapsed nodes + reroutes, comment boxes per feature.
- Handle collisions via presets (Pawn, WorldStatic), trace channels for interact, overlap events with authority checks.
- Save with USaveGame slots: serialize structs (inventory, checkpoints), version with SaveVersion int, async save to avoid hitches.
- Package with profiles: Development for testing, Shipping with `Full Rebuild`, set maps to cook, chunk DLC if needed.
- Profile with Insights/Unreal Insights, stat fps/unit, reduce tick (use timers/interfaces), pool actors.
- Use DataTables/DataAssets for balancing (weapons, enemies) so designers tune without graph edits.
- This skill is Blueprint-only; for C++ custom nodes see UE C++ dev — prefer Blueprint interfaces over casts.
## Examples
- Example 1 — Third-person move: IMC with WASD + gamepad stick, IA_Move (Vector2D) -> Add Movement Input, IA_Jump -> Character Jump.
- Example 2 — Health UMG: HealthComp OnDamaged dispatcher -> WBP_HealthBar Set Percent, damage numbers via Widget Component.
- Example 3 — Checkpoint save: Overlap Box -> GameMode SaveCheckpoint (PlayerStart + inventory) to SaveGame slot 0.
## Workflows
1. Setup: blank ThirdPerson template, enable Enhanced Input plugin, create IMC/Actions, GameMode + HUD widget, test PIE.
2. Core loop: player + enemy ActorComponents, interact trace (E key), UMG HUD/menus, SaveGame load/save roundtrip.
3. Multiplayer check (if needed): set replication, test 2-player PIE with dedicated server flag, fix RPC ownership.
4. Polish: Niagara FX, MetaSounds, animation montages, packaging Development build for QA on target hardware.
5. Ship: cook Shipping profile, run Project Launcher packaging, validate on clean PC, upload to Steam/EGS with build notes.
## Templates
### Blueprint Pseudograph — Enhanced Input Move
```
[IMC_Default] IA_Move (Value: Axis2D WASD/Stick)
  -> [PlayerController BP] Event IA_Move Triggered (ActionValue)
    -> Get Control Rotation Yaw -> Get Forward/Right Vector
    -> [Character BP] Add Movement Input (Scale = ActionValue.X/Y)
[IA_Jump Started] -> Character.Jump() | [IA_Jump Completed] -> Character.StopJumping()
```
### Blueprint Pseudograph — Damage + UMG
```
[HealthComp] Var Health 100 | Event TakeDamage(float Amt, AActor* Causer)
  -> Authority Guard (HasAuthority?) -> Health -= Amt -> RepNotify OnRep_Health
  -> Call Dispatcher OnHealthChanged.Broadcast(Health/Max)
[WBP_HUD] Bind OnHealthChanged -> ProgressBar.SetPercent + Play Hit Flash Anim
```
### SaveGame Struct (Blueprint vars)
```
[BP_SaveGame : SaveGame] Vars: SaveVersion(int=1), PlayerTransform(Transform),
CheckpointName(Name), Inventory(TArray<F_ItemRow>), PlayTime(float)
Funcs: SaveToSlot(SlotName, UserIndex) | LoadFromSlot -> Cast To BP_SaveGame
```
## Tools
- Unreal Engine 5.4+, Blueprint Editor, Enhanced Input plugin, UMG Designer, Niagara + MetaSounds.
- Unreal Insights, Session Frontend profiler, Project Launcher packaging, Zen Loader for assets.
- Quixel Bridge, Fab marketplace, Game Analytics plugin for retention events.
## Advanced
- Use Blueprint Interfaces (BPI_Interact, BPI_Damageable) to avoid hard casts; use Async Load Asset for streaming levels.
- Optimize replication: relevancy, dormancy, compress transforms; use Predictive FX on client, authoritative damage on server.
- Build HLOD + World Partition for open worlds; set packaging chunking to keep base pak <2GB.
- Add accessibility: remappable Enhanced Input keys, colorblind-safe UMG, subtitles via CommonUI; test with gamepad only.
- Version Blueprints with source control (uasset binary + diff notes); use Blueprint Nativization off, prefer Instanced Structs.
## Documentation
- https://docs.unrealengine.com/5.3/en-US/blueprints-visual-scripting-in-unreal-engine/
- https://docs.unrealengine.com/5.3/en-US/enhanced-input-in-unreal-engine/
- https://docs.unrealengine.com/5.3/en-US/umg-ui-designer-in-unreal-engine/
- https://docs.unrealengine.com/5.3/en-US/packaging-unreal-engine-projects/
