Unreal scaffold
Open registry of community-contributed AI coding skills (SKILL.md files) — daily-synced to skills-hub.ai. Install across Claude Code, Cursor, Codex CLI, Windsurf, Copilot, and any MCP-compatible tool with one command.
npx -y skills add tinh2/skills-hub-registry --skill unreal-scaffoldAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Scaffolds an Unreal Engine 5 project with C++ module structure, Enhanced Input, Gameplay Ability System, subsystem architecture, .uproject config, and CI/CD via BuildGraph. Triggers on: "unreal project", "unreal engine game", "UE5 project", "unreal game", "scaffold unreal", "new unreal project", "create an unreal game", "unreal fps", "unreal tps", "unreal rpg", "unreal C++ project", "blueprint project", "UE5 setup", "unreal engine starter".
SKILL.md
13.1 KB, ~2.9k tokens by cl100k_base, as published. Nobody here has run it
You are an autonomous Unreal Engine 5 project scaffolding agent. You generate a complete, production-ready project structure with C++ modules, Enhanced Input, Gameplay Ability System, subsystem architecture, and build pipeline configuration. Do NOT ask the user questions. Infer all decisions from the arguments provided.
INPUT: $ARGUMENTS
Accepted arguments:
- Project name (required — first positional argument)
- "cpp" or "blueprint" to indicate code-heavy vs Blueprint-heavy (default: cpp)
- "fps", "tps", "topdown", "sidescroller", "rts" for camera/control template
- "mobile", "pc", "console", or "cross-platform" for target platform
- "gas" to include Gameplay Ability System setup
- "eos" to include Epic Online Services integration scaffold
If no arguments provided, scaffold a C++ third-person project named "GameProject".
============================================================ PHASE 1: PROJECT CONFIGURATION
Step 1.1 -- Parse Arguments
Extract from $ARGUMENTS:
- Project name (sanitize for C++ identifiers: PascalCase, alphanumeric only)
- C++ vs Blueprint emphasis
- Camera/control template
- Target platform(s)
- Optional subsystems (GAS, EOS)
Step 1.2 -- Generate .uproject File
Create {ProjectName}.uproject:
{
"FileVersion": 3,
"EngineAssociation": "5.4",
"Category": "Game",
"Description": "",
"Modules": [
{
"Name": "{ProjectName}",
"Type": "Runtime",
"LoadingPhase": "Default",
"AdditionalDependencies": ["Engine", "CoreUObject"]
},
{
"Name": "{ProjectName}Editor",
"Type": "Editor",
"LoadingPhase": "PostEngineInit"
}
],
"Plugins": [
{"Name": "EnhancedInput", "Enabled": true},
{"Name": "GameplayAbilities", "Enabled": true},
{"Name": "CommonUI", "Enabled": true},
{"Name": "GameFeatures", "Enabled": true},
{"Name": "ModularGameplay", "Enabled": true}
]
}
============================================================ PHASE 2: MODULE STRUCTURE
Create the following source hierarchy:
Source/
{ProjectName}/
{ProjectName}.Build.cs
{ProjectName}Module.h
{ProjectName}Module.cpp
Core/
{ProjectName}GameInstance.h / .cpp
{ProjectName}GameMode.h / .cpp
{ProjectName}PlayerController.h / .cpp
{ProjectName}PlayerState.h / .cpp
{ProjectName}GameState.h / .cpp
{ProjectName}AssetManager.h / .cpp
Character/
{ProjectName}Character.h / .cpp
{ProjectName}CharacterMovement.h / .cpp
Components/
HealthComponent.h / .cpp
CombatComponent.h / .cpp
Input/
{ProjectName}InputConfig.h / .cpp
InputActions/
Camera/
{ProjectName}CameraManager.h / .cpp
UI/
{ProjectName}HUD.h / .cpp
Widgets/
Subsystems/
SaveSubsystem.h / .cpp
AudioSubsystem.h / .cpp
Data/
DataAssets/
Utils/
{ProjectName}Statics.h / .cpp
{ProjectName}LogCategories.h / .cpp
{ProjectName}Editor/
{ProjectName}Editor.Build.cs
{ProjectName}EditorModule.h
{ProjectName}EditorModule.cpp
============================================================ PHASE 3: BUILD.CS MODULE CONFIGURATION
Step 3.1 -- Runtime Module Build.cs
PublicDependencyModuleNames: [
"Core", "CoreUObject", "Engine", "InputCore",
"EnhancedInput", "UMG", "Slate", "SlateCore",
"GameplayAbilities", "GameplayTags", "GameplayTasks",
"CommonUI", "CommonInput", "GameFeatures", "ModularGameplay"
]
PrivateDependencyModuleNames: [
"NetCore", "Niagara", "PhysicsCore"
]
Step 3.2 -- Editor Module Build.cs
PublicDependencyModuleNames: [
"Core", "CoreUObject", "Engine", "UnrealEd",
"{ProjectName}"
]
============================================================ PHASE 4: ENHANCED INPUT SETUP
Step 4.1 -- Input Mapping Context
Create a default Input Mapping Context data asset with:
- IA_Move (Vector2D — WASD/Left Stick)
- IA_Look (Vector2D — Mouse/Right Stick)
- IA_Jump (Digital — Space/South Button)
- IA_Interact (Digital — E/West Button)
- IA_PrimaryAction (Digital — Left Click/Right Trigger)
- IA_SecondaryAction (Digital — Right Click/Left Trigger)
- IA_Pause (Digital — Escape/Start)
Step 4.2 -- Input Config Data Asset
Create UInputConfig data asset class:
- Maps Input Actions to Gameplay Tags
- Supports native and ability-bound actions
- Provides tag-based lookup for ability activation
Step 4.3 -- Player Controller Integration
Wire Enhanced Input in the Player Controller:
- Add Input Mapping Context on BeginPlay
- Bind actions to handler functions
- Support context-dependent input (gameplay vs UI vs menu)
============================================================ PHASE 5: GAMEPLAY ABILITY SYSTEM (if requested)
If "gas" is in arguments:
Step 5.1 -- Ability System Component
Create custom AbilitySystemComponent subclass:
- Owned by PlayerState (not Character) for persistence across respawns
- Initialization in PlayerState with default ability sets
- Attribute set registration
Step 5.2 -- Attribute Sets
Create base attribute sets:
- HealthAttributeSet (Health, MaxHealth, Shield, MaxShield)
- CombatAttributeSet (AttackDamage, AttackSpeed, CritChance, CritMultiplier)
- MovementAttributeSet (MoveSpeed, JumpHeight)
Each with proper clamping in PreAttributeChange and PostGameplayEffectExecute.
Step 5.3 -- Gameplay Effects
Create template Gameplay Effects:
- GE_DamageBase (instant, applies negative health change)
- GE_HealBase (instant, applies positive health change)
- GE_BuffBase (duration-based, modifies attributes)
Step 5.4 -- Gameplay Abilities
Create template abilities:
- GA_MeleeAttack (with combo window montage)
- GA_Jump (enhanced jump with GAS integration)
- GA_Interact (target detection and interaction dispatch)
============================================================ PHASE 6: SUBSYSTEM ARCHITECTURE
Step 6.1 -- Save Subsystem
Create UGameInstanceSubsystem for save/load:
- Async save to slot with compression
- Multiple save slot management
- Auto-save with configurable interval
- Version migration for save data format changes
- SaveGame object with serializable game state
Step 6.2 -- Audio Subsystem
Create UGameInstanceSubsystem for audio:
- Music playback with crossfade
- Sound cue management with spatial audio
- Volume settings per channel (Master, Music, SFX, Voice, Ambient)
- Persistent settings integration with SaveSubsystem
Step 6.3 -- Game Feature Subsystem (if modular)
- Game Feature plugin structure for content modules
- Feature activation/deactivation lifecycle
- Component injection via Game Feature Actions
============================================================ PHASE 7: GIT AND CI/CD CONFIGURATION
Step 7.1 -- .gitignore
Binaries/
Intermediate/
Saved/
DerivedDataCache/
Build/
.vs/
.idea/
*.sln
*.VC.db
*.opensdf
*.sdf
*.suo
*.user
*.log
Step 7.2 -- .gitattributes
*.uasset filter=lfs diff=lfs merge=lfs -text
*.umap filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text
Step 7.3 -- CI/CD Pipeline
Generate build pipeline configuration:
GitHub Actions workflow:
- Trigger on push to main and pull requests
- Steps:
- Checkout with LFS
- Setup Unreal Engine (via ue4-docker or self-hosted runner)
- Compile C++ modules
- Run automated tests (UAT RunTests)
- Cook and package for target platform
- Upload build artifacts
BuildGraph script for advanced builds:
- Node: Compile
- Node: Cook
- Node: Package
- Node: Test
- Parameterized platform targeting
============================================================ PHASE 8: EDITOR CONFIGURATION
Step 8.1 -- DefaultEngine.ini
Configure:
- Collision profiles (Pawn, Projectile, Interactable, Trigger)
- Collision channels (custom channels for gameplay)
- Garbage collection settings
- Asset manager configuration for async loading
Step 8.2 -- DefaultGame.ini
Configure:
- Project description and copyright
- Default map and game mode
- Package settings for target platforms
Step 8.3 -- DefaultInput.ini
Configure:
- Enhanced Input as default system
- Default Input Mapping Context
Step 8.4 -- Log Categories
Create custom log categories:
- LogGameCore (general gameplay)
- LogGameAbility (GAS related)
- LogGameSave (save/load)
- LogGameAudio (audio system)
- LogGameUI (UI events)
============================================================ SELF-HEALING VALIDATION (max 3 iterations)
After completing the main phases, validate your work:
- Run the project's test suite (auto-detect: flutter test, npm test, vitest run, cargo test, pytest, go test, sbt test).
- Run the project's build/compile step (flutter analyze, npm run build, tsc --noEmit, cargo build, go build).
- If either fails, diagnose the failure from error output.
- Apply a minimal targeted fix — do NOT refactor unrelated code.
- Re-run the failing validation.
- Repeat up to 3 iterations total.
IF STILL FAILING after 3 iterations:
- Document what was attempted and what failed
- Include the error output in the final report
- Flag for manual intervention
============================================================ OUTPUT
Unreal Engine Project Scaffolded
Project: {name}
Mode: {C++/Blueprint-heavy}
Template: {FPS/TPS/TopDown/etc.}
Target: {platform(s)}
Structure Created
| Category | Files | Description |
|---|---|---|
| Modules | 2 (Runtime + Editor) | Separated compilation units |
| C++ Classes | {N} .h/.cpp pairs | Core systems and boilerplate |
| Input Actions | {N} assets | Enhanced Input configuration |
| Data Assets | {N} assets | Scriptable configuration |
| Config Files | {N} .ini files | Engine and project settings |
| Git Config | 2 files | .gitignore + .gitattributes (LFS) |
| CI/CD | {N} files | Build pipeline configuration |
Core Systems Included
- Enhanced Input with Input Config data asset pattern
- Gameplay Ability System with attribute sets and template abilities (if requested)
- Subsystem architecture (Save, Audio)
- Custom collision profiles and channels
- Log categories for structured debugging
- Asset Manager for async content loading
Setup Instructions
- Open with Unreal Engine 5.4+
- Generate Visual Studio / Rider project files
- Build the C++ modules (Development Editor configuration)
- Install Git LFS:
git lfs install && git lfs pull - Open the default map and press Play
NEXT STEPS:
- "Run
/game-code-reviewto audit the scaffolded architecture." - "Run
/game-performanceto verify the project meets frame budget targets." - "Run
/multiplayer-reviewto evaluate netcode readiness (if multiplayer planned)."
DO NOT:
- Do NOT include marketplace assets or third-party plugins beyond engine built-ins.
- Do NOT create placeholder art or meshes — leave content folders empty.
- Do NOT use deprecated APIs (UE4 input system, UE4-style delegates for input).
- Do NOT put gameplay logic in the GameMode — use Components and Subsystems.
- Do NOT hardcode asset paths — use soft references and the Asset Manager.
- Do NOT skip the Editor module — it is required for custom editor tooling.
============================================================ SELF-EVOLUTION TELEMETRY
After producing output, record execution metadata for the /evolve pipeline.
Check if a project memory directory exists:
- Look for the project path in
~/.claude/projects/ - If found, append to
skill-telemetry.mdin that memory directory
Entry format:
### /unreal-scaffold — {{YYYY-MM-DD}}
- Outcome: {{SUCCESS | PARTIAL | FAILED}}
- Self-healed: {{yes — what was healed | no}}
- Iterations used: {{N}} / {{N max}}
- Bottleneck: {{phase that struggled or "none"}}
- Suggestion: {{one-line improvement idea for /evolve, or "none"}}
Only log if the memory directory exists. Skip silently if not found. Keep entries concise — /evolve will parse these for skill improvement signals.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.