What problem does it solve? Unreal C++ code without proper diagnostics makes bugs hard to find: developers misuse log categories, pick wrong verbosity levels, pass FString without dereferencing to %s, or choose check when ensure would keep the editor alive. This Skill provides the correct patterns for UE_LOG, UE_LOGFMT, and the check/verify/ensure assertion families grounded in UE 5.8 engine source. ## Core Features & Use Cases - Log category setup: Declare and define custom log categories with DECLARE_LOG_CATEGORY_EXTERN/DEFINE_LOG_CATEGORY, including file-static and class-static variants, with correct default and compile-time verbosity. - Structured logging with UE_LOGFMT: Emit machine-readable log events with positional or named fields, UE_LOG_CONTEXT thread-local scopes, and custom SerializeForLog overloads. - Assertion selection: Choose between check (halts, compiled out in shipping), verify (expression always runs), and ensure (non-fatal, reports once) based on whether continuing after failure is safe. - Use Case: While adding diagnostics to a new gameplay module, an agent defines a dedicated LogMyFeature category, adds UE_LOGFMT calls with named fields for weapon fire events, and guards nullable pointers with ensureMsgf so the editor stays alive during PIE debugging. ## Quick Start Add a custom log category and appropriate check/ensure assertions to my Unreal C++ gameplay class using this skill.