skills/game-dev/unreal-engine/SKILL.md
Unreal Engine is a cross-platform game engine for creating high-fidelity 3D games and simulations using C++ and Blueprin
npx skillsauth add alphaonedev/openclaw-graph unreal-engineInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill enables the AI to assist with Unreal Engine development, focusing on creating 3D games and simulations using C++ and Blueprints for cross-platform projects.
Use this skill for high-fidelity 3D game development, such as building multiplayer games, simulations, or VR experiences; when projects require advanced rendering, physics, or AI behaviors; or when integrating C++ with visual scripting for rapid prototyping.
UPrimitiveComponent::SetSimulatePhysics(true); to enable physics on an object.r.DefaultFeature.AutoExposure=True.AsyncTask(ENamedThreads::GameThread, [](){ /* code */ }); for background operations.To start a project, generate a new Unreal project using UBT, then write C++ code or Blueprints for game logic. For C++ patterns, extend UCLASS objects and override methods; for Blueprints, create event graphs linked to actors. Always use the Editor for iterative testing: launch via UnrealEditor.exe MyProject.uproject, then compile changes with UnrealBuildTool.exe. Pattern for error-prone tasks: wrap code in try-catch for UObject operations and log via UE_LOG(LogTemp, Warning, TEXT("Message"));.
UnrealBuildTool.exe -project=Path/To/Project.uproject -target=MyGame -configuration=Development -platform=Win64; clean builds using -clean.UnrealEditor.exe -game -log to launch in play mode with logging.AActor* Actor = GetWorld()->SpawnActor<AActor>(AActor::StaticClass(), FVector(0,0,0), FRotator::ZeroRotator);; access components via UStaticMeshComponent* MeshComp = Actor->FindComponentByClass<UStaticMeshComponent>();.FVector NewLocation = Actor->GetActorLocation() + FVector(1,0,0); Actor->SetActorLocation(NewLocation);.[Core.System] AllowCommandLineAudioDeviceSelection=True; load configs in code with GConfig->GetFloat(TEXT("Section.Key"), Value, GEngineIni);.Integrate Unreal Engine into workflows by installing via Epic Games Launcher (requires an Epic account; use env var $EPIC_API_KEY for authenticated downloads if scripting automation). For external tools, link libraries in Build.cs files, e.g., add PublicDependencyModuleNames.Add("Core"); in MyProject.Build.cs. When embedding with other skills, chain with "game-dev" cluster tools: pass outputs from a C++ compiler skill to UBT. Use environment variables for paths, like $UNREAL_ENGINE_PATH for the root directory, and set in scripts as export UNREAL_ENGINE_PATH=/path/to/engine. For API integrations, use Unreal's HTTP module: TSharedRef<IHttpRequest> Request = FHttpModule::Get().CreateRequest(); Request->OnRequestComplete().BindLambda([](FHttpRequestPtr Req, FHttpResponsePtr Res){ /* handle response */ }); Request->ProcessRequest();.
Common errors include build failures from missing dependencies; check logs with UnrealBuildTool.exe -verbose and fix by adding modules in Build.cs, e.g., if "Core" is missing, add it and rebuild. For runtime crashes, use ensure(Condition) for assertions or catch exceptions in async code: try { AsyncTask(ENamedThreads::AnyBackgroundThreadNormal, [](){ throw; }); } catch (...) { UE_LOG(LogTemp, Error, TEXT("Async error caught")); }. Handle Blueprint compilation errors by validating nodes in the Editor; in code, use if (IsValid(Actor)) { /* proceed */ } else { UE_LOG(LogTemp, Warning, TEXT("Actor is invalid")); }. For network issues, verify with if (Request->GetResponse()->GetResponseCode() == 200) { /* success */ } else { UE_LOG(LogTemp, Error, TEXT("HTTP error: %d"), Request->GetResponse()->GetResponseCode()); }.
UnrealBuildTool.exe -project=NewProject.uproject -newprojecttype=Game -game=Blank; then in code, add to MyActor.h: UFUNCTION() void MyFunction(); and in MyActor.cpp: void AMyActor::MyFunction() { GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Function called")); }; compile with UnrealBuildTool.exe Development Win64 NewProject.void AMyCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); PlayerInputComponent->BindAxis("MoveForward", this, &AMyCharacter::MoveForward); } void AMyCharacter::MoveForward(float Value) { AddMovementInput(GetActorForwardVector(), Value); }.tools
Root web development: project structure, tooling selection, deployment decisions
development
WebAssembly: Rust/Go/C to WASM, wasm-bindgen, Emscripten, WASM Component Model
development
Vue 3: Composition API script setup, Pinia, Vue Router 4, SFCs, Vite, Nuxt 3
tools
Tailwind CSS 4: utility classes, config, JIT, arbitrary values, darkMode, plugins, shadcn/ui