MR
Mayur Rathi
@mayurrathi
⭐ 40.7k GitHub stars

Unreal Engine Cpp Pro

Unreal Engine Cpp Pro is an learning AI skill with a core value of Expert guide for Unreal Engine 5. It helps developers solve real-world problems in the learning domain, boosting efficiency, automating repetitive tasks, and optimizing workflows.

Expert guide for Unreal Engine 5.x C++ development, covering UObject hygiene, performance patterns, and best practices.

Last verified on: 2026-07-08

Quick Facts

Category learning
Works With Claude
Source sickn33/antigravity-awesome-skills
Stars ⭐ 40.7k
Last Verified 2026-07-08
Risk Level Low
mkdir -p ./skills/unreal-engine-cpp-pro && curl -sfL https://raw.githubusercontent.com/sickn33/antigravity-awesome-skills/main/skills/unreal-engine-cpp-pro/SKILL.md -o ./skills/unreal-engine-cpp-pro/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

# 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<>` if you need to keep a root reference outside of a UObject graph, but prefer `addToRoot()` generally.

* 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 (TargetActor->Implements<UInteractable>()) {
    IInteractable::Execute_OnInteract(TargetActor, this);
}

3. Async Loading (Soft References)

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 `IVi

🎯 Best For

  • UI designers
  • Product designers
  • Claude users
  • Students
  • Lifelong learners

💡 Use Cases

  • Generating component mockups
  • Creating design system tokens
  • Using Unreal Engine Cpp Pro in daily workflow
  • Automating repetitive learning tasks

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Unreal Engine Cpp Pro to Your Work

    Provide context for your task — paste source material, describe your audience, or share existing work to guide the AI.

  4. 4

    Review and Refine

    Edit the AI output for accuracy, tone, and completeness. Add human insight where the AI lacks context.

❓ Frequently Asked Questions

Does this work with Figma?

Some design skills integrate with Figma plugins. Check the Works With section for supported tools.

How do I install Unreal Engine Cpp Pro?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/unreal-engine-cpp-pro/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Skipping usability testing

AI-generated designs should be validated with real users before development.

Not reading the full skill

Skills contain important context and edge cases beyond the quick start.

🔗 Related Skills