Skip to main content
skill CX Codex

unreal-engine-cpp-pro — Claude Code skill: C++ guide for Unreal

Skill for Unreal Engine 5.x C++ development: UObject hygiene, garbage collection, reflection system, and performance patterns.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add sickn33/agentic-awesome-skills --skill unreal-engine-cpp-pro -a claude-code
Open on GitHub

What unreal-engine-cpp-pro does

The skill teaches the agent to write C++ for Unreal Engine 5 following Epic Games standards. It covers UObject hygiene (wrapping pointers in UPROPERTY for garbage collector tracking), the reflection system (UCLASS, USTRUCT, UFUNCTION), and performance patterns: disabling tick by default (bCanEverTick = false), using timers instead of Tick, caching component references in BeginPlay to avoid GetComponentByClass in hot loops. The agent knows naming prefixes (U for UObject, A for AActor, F for structs), can implement interfaces, and uses soft references (TSoftClassPtr) to avoid forcing load chains.

Includes a pre-commit checklist: does the actor need tick, are UObject* members wrapped in UPROPERTY, do hard references cause unnecessary loads. LoadSynchronous() stalls the game thread — the agent knows this and recommends async loading for latency-sensitive paths. For debugging, it suggests UE_LOG with custom categories, on-screen messages, and Visual Logger for AI systems.

What it helps with

  • write an Actor or Component for UE5 following Epic standards
  • disable tick and switch to timers for performance
  • wrap UObject pointers in UPROPERTY so the garbage collector tracks them
  • replace hard references with TSoftClassPtr to avoid forced loading
  • cache components in BeginPlay instead of looking them up every frame

Example prompts for the agent

  • create an Actor with a health component for UE5, no tick
  • implement an interaction interface following unreal-engine-cpp-pro rules
  • replace hard weapon references with TSoftClassPtr and async loading

How to install unreal-engine-cpp-pro

1Skills CLI (Vercel)

npx skills add sickn33/agentic-awesome-skills --skill unreal-engine-cpp-pro -a claude-code

2Manually: put the files in place

~/.claude/skills/unreal-engine-cpp-pro/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/unreal-engine-cpp-pro/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about unreal-engine-cpp-pro

How to install unreal-engine-cpp-pro in Claude Code?

Run npx skills add sickn33/agentic-awesome-skills --skill unreal-engine-cpp-pro -a claude-code. The skill will land in ~/.claude/skills/unreal-engine-cpp-pro/SKILL.md.

What does unreal-engine-cpp-pro do?

It teaches the agent to write C++ for Unreal Engine 5 following Epic standards: wrapping pointers in UPROPERTY, disabling tick by default, caching components, using soft references instead of hard ones to avoid forced loading, and a pre-commit checklist.

Why does unreal-engine-cpp-pro recommend disabling tick?

Tick is called every frame and drains performance. The skill sets bCanEverTick = false by default and moves to timers (GetWorldTimerManager()) or event-driven logic whenever possible.

Source text

SKILL.md · MIT
---
name: unreal-engine-cpp-pro
description: "Expert guide for Unreal Engine 5.x C++ development, covering UObject hygiene, performance patterns, and best practices."
risk: safe
source: self
date_added: "2026-02-27"
---

# Unreal Engine C++ Pro

This skill provides expert-level guidelines for developing with Unreal Engine 5 using C++. It focuses on writing robust, performant, and standard-compliant code.

## When to Use
Use this skill when:
- Developing C++ code for Unreal Engine 5.x projects
- Writing Actors, Components, or UObject-derived classes
- Optimizing performance-critical code in Unreal Engine
- Debugging memory leaks or garbage collection issues
- Implementing Blueprint-exposed functionality
- Following Epic Games' coding standards and conventions
- Working with Unreal's reflection system (UCLASS, USTRUCT, UFUNCTION)
- Managing asset loading and soft references

Do not use this skill when:
- Working with Blueprint-only projects (no C++ code)
- Developing for Unreal Engine versions prior to 5.x
- Working on non-Unreal game engines
- The task is unrelated to Unreal Engine development

## Core Principles

1.  **UObject & Garbage Collection**:
    *   Always use `UPROPERTY()` for `UObject*` member variables to ensure they are tracked by the Garbage Collector (GC).
    *   Use `TStrongObjectPtr<>` cautiously for a scoped strong reference outside a reflected UObject graph; do not routinely root objects manually. Manual `AddToRoot()` requires deliberate paired `RemoveFromRoot()` lifecycle management.
    *   Understand the `IsValid()` check vs `nullptr`. `IsValid()` handles pending kill state safely.

2.  **Unreal Reflection System**:
    *   Use `UCLASS()`, `USTRUCT()`, `UENUM()`, `UFUNCTION()` to expose types to the reflection system and Blueprints.
    *   Minimize `BlueprintReadWrite` when possible; prefer `BlueprintReadOnly` for state that shouldn't be trampled by logic in UI/Level BPs.

3.  **Performance First**:
    *   **Tick**: Disable Ticking (`bCanEverTick = false`) by default. Only enable it if absolutely necessary. Prefer timers (`GetWorldTimerManager()`) or event-driven logic.
    *   **Casting**: Avoid `Cast<T>()` in hot loops. Cache references in `BeginPlay`.
    *   **Structs vs Classes**: Use `F` structs for data-heavy, non-UObject types to reduce overhead.

## Naming Conventions (Strict)

Follow Epic Games' coding standard:

*   **Templates**: Prefix with `T` (e.g., `TArray`, `TMap`).
*   **UObject**: Prefix with `U` (e.g., `UCharacterMovementComponent`).
*   **AActor**: Prefix with `A` (e.g., `AMyGameMode`).
*   **SWidget**: Prefix with `S` (Slate widgets).
*   **Structs**: Prefix with `F` (e.g., `FVector`).
*   **Enums**: Prefix with `E` (e.g., `EWeaponState`).
*   **Interfaces**: Prefix with `I` (e.g., `IInteractable`).
*   **Booleans**: Prefix with `b` (e.g., `bIsDead`).

## Common Patterns

### 1. Robust Component Lookup
Avoid `GetComponentByClass` in `Tick`. Do it in `PostInitializeComponents` or `BeginPlay`.

```cpp
void AMyCharacter::PostInitializeComponents() {
    Super::PostInitializeComponents();
    HealthComp = FindComponentByClass<UHealthComponent>();
    check(HealthComp); // Fail hard in dev if missing
}
```

### 2. Interface Implementation
Use interfaces to decouple systems (e.g., Interaction system).

```cpp
// Interface call check
if (IsValid(TargetActor) && TargetActor->Implements<UInteractable>()) {
    IInteractable::Execute_OnInteract(TargetActor, this);
}
```

### 3. Soft References (synchronous illustration)
Avoid hard references (`UPROPERTY(EditDefaultsOnly) TSubclassOf<AActor>`) for massive assets which force load orders. Use `TSoftClassPtr` or `TSoftObjectPtr`.

```cpp
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TSoftClassPtr<AWeapon> WeaponClassToLoad;

void AMyCharacter::Equip() {
    if (WeaponClassToLoad.IsPending()) {
        WeaponClassToLoad.LoadSynchronous(); // Or use StreamableManager for async
    }
}
```

## Debugging

*   **Logging**: Use `UE_LOG` with custom categories.
    ```cpp
    DEFINE_LOG_CATEGORY_STATIC(LogMyGame, Log, All);
    UE_LOG(LogMyGame, Warning, TEXT("Health is low: %f"), CurrentHealth);
    ```
*   **Screen Messages**:
    ```cpp
    if (GEngine) GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Died!"));
    ```
*   **Visual Logger**: extremely useful for AI debugging. Implement `IVisualLoggerDebugSnapshotInterface`.

## Checklist before PR

- [ ] Does this Actor need to Tick? Can it be a Timer?
- [ ] Are all `UObject*` members wrapped in `UPROPERTY`?
- [ ] Are hard references (TSubclassOf) causing load chains? Can they be Soft Ptrs?
- [ ] Did you clean up verified delegates in `EndPlay`?

## Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

The actor files are illustrative and require replacing `MYGAME_API`, generating project headers and building in the target engine. `LoadSynchronous()` can stall the game thread; use the target version's streamable async loading API for latency-sensitive paths. Prefer reflected `TObjectPtr` members where supported. [Epic object-pointer guidance](https://dev.epicgames.com/documentation/en-us/unreal-engine/object-pointers-in-unreal-engine).

© sickn33 · MIT · sickn33/agentic-awesome-skills

Similar skills

Everything for Game dev and 3D: Unity, Unreal, Godot, Blender →

From the same set101

The whole set →
superpowers-lab Sets an evaluation workflow to test experimental upstream skills against a baseline in an isolated environment before adopting them. CX Codex +1 1,400installs multi-agent-brainstorming Runs a sequential design review with a designer, constrained reviewers, and an arbiter. Use it to expose assumptions and failure modes before implementation. CX Codex +1 1,400installs context-compression A skill for managing context compression when agent sessions exceed token limits. Instead of naive truncation, it maintains structured summaries with file inventory, decisions, and state. CX Codex +1 1,400installs test-driven-development Guides coding agents through a strict test-driven development workflow: red, green, and refactor. Useful when fixing bugs or implementing new features with regression checks. CX Codex +1 1,400installs security-auditor Turns your AI coder into a security expert: conducts audits, analyzes vulnerabilities, reviews SDLC and compliance with OWASP, GDPR, PCI-DSS standards. CX Codex +1 1,400installs lint-and-validate Runs configured linters and type checkers after code changes, telling actual failures apart from tools that never ran. CX Codex +1 1,300installs architect-review Turns the agent into an architecture reviewer: it weighs design decisions, names the risks and tradeoffs, and asks for a validation plan. CX Codex +1 1,300installs langgraph A skill for building production-grade agents with deliberate structure. Design graph topology, manage state, add cycles and branches, persist progress via checkpoints, and loop humans back into decisions. CX Codex +1 1,300installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor