What problem does it solve? Unreal C++ bugs are hard to diagnose without proper diagnostics. This Skill guides you through defining custom log categories, choosing the right verbosity level, using structured logging with UE_LOGFMT, and picking the correct assertion macro (check vs verify vs ensure) so failures are caught early and logs stay scannable. ## Core Features & Use Cases - Custom Log Categories: Declare and define per-module log categories with DECLARE_LOG_CATEGORY_EXTERN/DEFINE_LOG_CATEGORY, including file-private and class-static variants. - Structured Logging: Use UE_LOGFMT with positional or named fields, UE_LOG_CONTEXT thread-local scopes, and custom SerializeForLog overloads for machine-readable output. - Assertion Selection: Choose between check (halts, compiled out in shipping), verify (expression always runs), and ensure (non-fatal, reports once) based on whether continuing is safe. - Use Case: When adding diagnostics to a new gameplay module, define a dedicated log category, emit UE_LOGFMT events with named fields for weapon fire and damage, and guard nullable pointers with ensure so the editor stays alive during PIE debugging. ## Quick Start Ask the assistant to add a custom log category and appropriate check/ensure assertions to your Unreal C++ gameplay class.