# Meta, Settings & Polish — Asset Creation Sheet (13 assets) > **UE5 Path:** `Content/Framework/Achievements/`, `Content/Framework/Settings/`, `Content/Framework/Polish/` --- ## Meta (11-meta — 2 assets) ### BPC_ProgressStatTracker **Attach to:** Player pawn | Variable | Type | Default | |----------|------|---------| | `TotalPlaytime` | Float | `0.0` | | `TotalKills` | Integer | `0` | | `TotalDeaths` | Integer | `0` | | `CollectiblesFound` | Integer | `0` | | `EndingsUnlocked` | `Array` | Empty | | `DifficultyCompleted` | `Array` | Empty | ### SS_AchievementSystem **Parent:** `GameInstanceSubsystem` — auto-created by GameInstance | Variable | Type | |----------|------| | `UnlockedAchievements` | `Array` | | `PendingNotifications` | `Array` | **UnlockAchievement(Tag):** → Check platform API → if not already unlocked → unlock → show toast → save --- ## Settings (12-settings — 2 assets) ### BPC_AccessibilitySettings **Attach to:** Player pawn | Variable | Type | Default | |----------|------|---------| | `bSubtitlesEnabled` | Boolean | `true` | | `SubtitleSize` | Float | `1.0` | | `ColorblindMode` | Integer | `0` | | `bAimAssist` | Boolean | `true` | | `AimAssistStrength` | Float | `0.5` | | `DifficultyLevel` | Integer | `2` | ### SS_SettingsSystem **Parent:** `GameInstanceSubsystem` — auto-created | Variable | Type | |----------|------| | `VideoSettings` | `S_VideoSettings` | | `AudioSettings` | `S_AudioSettings` | | `ControlSettings` | `S_ControlSettings` | | `AccessibilitySettings` | `S_AccessibilitySettings` | **ApplyAndSave():** → Write to config file → broadcast OnSettingsApplied --- ## Polish (13-polish — 9 assets) ### Components | Component | Purpose | |-----------|---------| | `BPC_AnalyticsTracker` | Event tracking, session metrics, telemetry | | `BPC_DevCheatManager` | God mode, noclip, give item, teleport | | `BPC_ErrorHandler` | Crash logging, error display, recovery | | `BPC_FPSCounter` | FPS display, min/max/avg tracking | | `BPC_LoadingScreen` | Progress bar, tips, background | | `BPC_TutorialSystem` | Contextual prompts, progression, dismiss | ### Widgets | Widget | Purpose | |--------|---------| | `WBP_CreditsScreen` | Auto-scroll credits, skip, post-credit scene | | `WBP_DebugMenu` | State viewer, log, performance, cheats | | `WBP_SplashScreen` | Studio/engine logo, skip | --- ## Data Assets — Remaining (14-data-assets — 16 total) Create Data Asset instances (not Blueprint children) for all content definitions. | Asset | Purpose | Key Properties | |-------|---------|---------------| | `DA_AdaptationRule` | Difficulty adaptation | MetricThreshold, Action, ScaleFactor | | `DA_AtmosphereProfile` | Room atmosphere | AudioLayer, LightSettings, FogSettings, PostProcess | | `DA_BehaviourVariant` | AI behavior | AttackPattern, PatrolStyle, AggressionLevel | | `DA_EncounterData` | Enemy group | EnemyTypes, SpawnRules, DifficultyTier | | `DA_EquipmentConfig` | Weapon/armor stats | DamageTypeResistances, Durability, Weight | | `DA_HapticProfile` | Force feedback | RumblePattern, Intensity, Duration | | `DA_InteractionData` | Interaction def | PromptText, Duration, Icon, Conditions | | `DA_ObjectiveData` | Quest def | Title, Description, Prerequisites, Rewards | | `DA_PuzzleData` | Puzzle def | Solution, Steps, Hints, Rewards | | `DA_RareEvent` | Rare event | Weight, Conditions, Effects, Cooldown | | `DA_RoomMutation` | Room change | LayoutChange, ObjectSwap, LightChange | | `DA_ScareEvent` | Scare def | Type, Anticipation, Payoff, Recovery | | `DA_InputMappingProfile` | Per-platform bindings | PC/Xbox/PS5 key arrays | | `DA_AudioSettings` | Audio config | Bus volumes, ducking, pool limits | | `DA_RoomAcousticPreset` | Room acoustics | Reverb, Occlusion, Reflection (7 presets) | ### How to Create Each Data Asset 1. Right-click → **Miscellaneous → Data Asset** 2. Class: `DA_{Type}` (if C++) or `PrimaryDataAsset` 3. Name: `DA_{Type}_{Name}` (e.g. `DA_ObjectiveData_Chapter1_FindKey`) 4. Fill properties per the spec file in `docs/blueprints/14-data-assets/` --- ## Test Meta/Settings/Polish - [ ] Unlock achievement → toast notification appears → saved to platform - [ ] Change settings → persist after restart - [ ] Press F1 → debug menu opens - [ ] Loading screen shows between levels with progress bar - [ ] Tutorial popups appear for first-time actions