1:"$Sreact.fragment" 2:I[3361,["619","static/chunks/619-ba102abea3e3d0e4.js","558","static/chunks/app/layout-8ed3165a2efc4aed.js"],"default"] 3:I[8320,["619","static/chunks/619-ba102abea3e3d0e4.js","558","static/chunks/app/layout-8ed3165a2efc4aed.js"],"default"] 4:I[9766,[],""] 5:I[8924,[],""] 6:I[2619,["619","static/chunks/619-ba102abea3e3d0e4.js","214","static/chunks/app/guides/stemcode-unreal-engine-developers/page-0aa623f29d826b1a.js"],""] 7:I[9526,["619","static/chunks/619-ba102abea3e3d0e4.js","558","static/chunks/app/layout-8ed3165a2efc4aed.js"],"default"] 8:I[1503,["619","static/chunks/619-ba102abea3e3d0e4.js","558","static/chunks/app/layout-8ed3165a2efc4aed.js"],"default"] 9:I[2067,["619","static/chunks/619-ba102abea3e3d0e4.js","558","static/chunks/app/layout-8ed3165a2efc4aed.js"],"default"] a:I[271,["619","static/chunks/619-ba102abea3e3d0e4.js","558","static/chunks/app/layout-8ed3165a2efc4aed.js"],"default"] 10:I[7150,[],""] :HL["/_next/static/css/a106fc8500d469f6.css","style"] b:T44d,{"@context":"https://schema.org","@type":"BlogPosting","headline":"StemCode for Unreal Engine Developers: C++, Modules, Builds, and Repository-Aware AI","description":"Use StemCode with Unreal Engine C++ projects, modules, plugins, UnrealBuildTool, AutomationTool, command-line tests, refactoring, and code review.","datePublished":"2026-10-01","dateModified":"2026-10-01","author":{"@type":"Organization","name":"GrowBitLabs","url":"https://growbitlabs.com"},"publisher":{"@type":"Organization","name":"GrowBitLabs","url":"https://growbitlabs.com"},"mainEntityOfPage":"https://growbitlabs.com/guides/stemcode-unreal-engine-developers","url":"https://growbitlabs.com/guides/stemcode-unreal-engine-developers","keywords":"StemCode Unreal Engine, Unreal Engine AI coding agent, Unreal C++ AI assistant, Unreal AutomationTool, UnrealBuildTool, Unreal command line, UE C++ refactoring AI, Unreal Engine code review AI","about":{"@type":"SoftwareApplication","name":"StemCode","applicationCategory":"DeveloperApplication","operatingSystem":"Windows, macOS, Linux","url":"https://growbitlabs.com/stemcode"}}0:{"P":null,"b":"52mZGPOTbZG1yQUVMfwha","p":"","c":["","guides","stemcode-unreal-engine-developers"],"i":false,"f":[[["",{"children":["guides",{"children":["stemcode-unreal-engine-developers",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/a106fc8500d469f6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"children":[["$","div",null,{"className":"scroll-progress","id":"scrollProgress"}],["$","$L3",null,{}],["$","main",null,{"id":"top","children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","section",null,{"className":"inner-hero","children":["$","div",null,{"className":"container","children":[["$","div",null,{"className":"inner-eyebrow reveal","children":[["$","span",null,{"children":"404"}],["$","i",null,{}],["$","span",null,{"children":"PAGE NOT FOUND"}]]}],["$","div",null,{"className":"inner-hero-copy reveal","children":[["$","h1",null,{"children":["This page took a wrong ",["$","em",null,{"children":"turn."}]]}],["$","p",null,{"children":"The address may have changed, or the page may no longer be available."}],["$","div",null,{"className":"inner-hero-actions","children":[["$","$L6",null,{"className":"btn primary","href":"/","children":"GO HOME"}],["$","$L6",null,{"className":"btn text","href":"/stemcode","children":"VIEW STEMCODE →"}]]}]]}]]}]}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","$L7",null,{}],["$","footer",null,{"className":"site-footer","children":["$","div",null,{"className":"container footer-shell","children":[["$","div",null,{"className":"footer-brand-block","children":[["$","$L6",null,{"className":"brand brand-footer","href":"/","aria-label":"GrowBitLabs home","children":["$","img",null,{"className":"brand-logo","src":"/assets/logo.png","alt":"GrowBitLabs logo"}]}],["$","p",null,{"children":"Home of StemCode and GrowBit Convo. Local-first AI development, private AI infrastructure, and agent engineering."}]]}],["$","div",null,{"className":"footer-columns","children":[["$","nav",null,{"aria-label":"Solutions links","children":[["$","strong",null,{"children":"SOLUTIONS"}],["$","$L6",null,{"href":"/stemcode","children":"StemCode"}],["$","$L6",null,{"href":"/stemcode-survey","children":"StemCode Survey"}],["$","$L6",null,{"href":"/compare","children":"StemCode Comparisons"}],["$","$L6",null,{"href":"/growbit-convo","children":"GrowBit Convo"}],["$","$L6",null,{"href":"/open-models","children":"Open Models"}],["$","$L6",null,{"href":"/pricing","children":"Pricing"}],["$","$L6",null,{"href":"/enterprise","children":"Enterprise"}],["$","$L6",null,{"href":"/docs","children":"StemCode Docs"}],["$","$L6",null,{"href":"/guides","children":"Developer Guides"}]]}],["$","nav",null,{"aria-label":"Company links","children":[["$","strong",null,{"children":"COMPANY"}],["$","$L6",null,{"href":"/about","children":"About"}],["$","$L6",null,{"href":"/services","children":"Services"}],["$","$L6",null,{"href":"/contact","children":"Contact"}],["$","$L6",null,{"href":"/careers","children":"Careers"}],["$","$L6",null,{"href":"/press","children":"Press"}]]}],["$","nav",null,{"aria-label":"Legal links","children":[["$","strong",null,{"children":"LEGAL"}],["$","$L6",null,{"href":"/privacy","children":"Privacy Policy"}],["$","$L6",null,{"href":"/terms","children":"Terms of Service"}],["$","$L8",null,{}]]}],["$","nav",null,{"aria-label":"Social links","children":[["$","strong",null,{"children":"SOCIAL"}],["$","a",null,{"href":"https://www.linkedin.com/company/growbitlabs","target":"_blank","rel":"noopener noreferrer","children":"LinkedIn"}],["$","a",null,{"href":"https://www.facebook.com/growbitlabs/","target":"_blank","rel":"noopener noreferrer","children":"Facebook"}]]}]]}],["$","div",null,{"className":"footer-bottom","children":[["$","span",null,{"children":["(c) ",["$","span",null,{"id":"year"}]," GrowBitLabs"]}],["$","span",null,{"children":"StemCode + GrowBit Convo"}]]}]]}]}],["$","$L9",null,{}],["$","$La",null,{}]]}]}]}]]}],{"children":["guides",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["stemcode-unreal-engine-developers",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"$b"}}],"$Lc","$Ld"],null,"$Le"]}],{},null,false]},null,false]},null,false]},null,false],"$Lf",false]],"m":"$undefined","G":["$10",[]],"s":false,"S":true} 20:I[4431,[],"OutletBoundary"] 22:I[5278,[],"AsyncMetadataOutlet"] 24:I[4431,[],"ViewportBoundary"] 26:I[4431,[],"MetadataBoundary"] 27:"$Sreact.suspense" c:["$","section",null,{"className":"inner-hero docs-hero","children":["$","div",null,{"className":"container","children":[["$","div",null,{"className":"inner-eyebrow reveal","children":[["$","$L6",null,{"href":"/guides","children":"RESOURCES / GUIDES"}],["$","i",null,{}],["$","span",null,{"children":"UNREAL ENGINE"}]]}],["$","div",null,{"className":"inner-hero-copy reveal","children":[["$","h1",null,{"children":["StemCode for Unreal Engine Developers: AI Coding with ",["$","em",null,{"children":"C++, modules, and plugins."}]]}],["$","p",null,{"children":"Use StemCode with Unreal Engine C++ projects, modules, plugins, UnrealBuildTool, AutomationTool, command-line tests, refactoring, and code review."}],["$","div",null,{"className":"inner-hero-actions docs-hero-actions","children":[["$","a",null,{"className":"btn primary","href":"#setup","children":"START SETUP"}],["$","$L6",null,{"className":"btn text","href":"/stemcode","children":"EXPLORE STEMCODE →"}]]}],["$","div",null,{"className":"docs-meta-strip","aria-label":"Guide metadata","children":[["$","span",null,{"children":["PUBLISHED ","2026-10-01"]}],["$","span",null,{"children":"STEMCODE DEVELOPER GUIDE"}],["$","span",null,{"children":"LOCAL-FIRST AI CODING"}]]}]]}]]}]}] 11:T461,# Unreal Engine Project Instructions This is a Unreal Engine project. Important source and configuration paths: - *.uproject - Source/ - Config/ - Plugins/ - *.Build.cs - *.Target.cs Generated or disposable paths — do not modify: - Binaries/ - DerivedDataCache/ - Intermediate/ - Saved/ - .vs/ - Build output/ Follow these rules: - This is an Unreal Engine project. - Do not edit Binaries, DerivedDataCache, Intermediate, or Saved output. - Do not treat binary .uasset or .umap files as normal text source. - Respect runtime, developer, and editor module boundaries. - Preserve Unreal reflection, serialization, Blueprint exposure, and replication semantics. - Use the project's checked-in UBT/UAT wrappers and target configuration for automated validation. - Explain required Blueprint, asset, project settings, or Editor changes after code edits. Validation: - "/Engine/Build/BatchFiles/RunUBT.bat" Development -Project=".uproject" - "" ".uproject" -ExecCmds="Automation RunTest ;Quit" -ReportExportPath="TestReports" -unattended -nop4d:["$","section",null,{"className":"docs-layout section","children":["$","div",null,{"className":"container docs-shell docs-shell-wide","children":[["$","aside",null,{"className":"docs-sidebar","aria-label":"Guide table of contents","children":[["$","span",null,{"className":"toc-label","children":"GUIDE"}],["$","$L6",null,{"href":"/guides","children":"All developer guides"}],["$","$L6",null,{"href":"/stemcode","children":"StemCode overview"}],["$","$L6",null,{"href":"/docs","children":"StemCode docs"}],["$","span",null,{"className":"toc-label","children":"ON THIS PAGE"}],["$","a",null,{"href":"#agents-md","children":"AGENTS.md project instructions"}],[["$","a","#why",{"href":"#why","children":"Why StemCode"}],["$","a","#setup",{"href":"#setup","children":"Install and set up"}],["$","a","#project",{"href":"#project","children":"Project context"}],["$","a","#intelligence",{"href":"#intelligence","children":"Code intelligence"}],["$","a","#cli",{"href":"#cli","children":"Native CLI"}],["$","a","#workflow",{"href":"#workflow","children":"Development workflow"}],["$","a","#validation",{"href":"#validation","children":"Build and test"}],["$","a","#memory",{"href":"#memory","children":"Project memory"}],["$","a","#review",{"href":"#review","children":"Review changes"}],["$","a","#faq",{"href":"#faq","children":"FAQ"}]]]}],["$","article",null,{"className":"docs-content","children":[["$","section",null,{"id":"agents-md","className":"docs-section reveal","children":[["$","span",null,{"children":"PROJECT INSTRUCTIONS / AGENTS.MD"}],["$","h2",null,{"children":"Give StemCode durable repository instructions before asking it to edit."}],["$","p",null,{"children":["Add an ",["$","code",null,{"children":"AGENTS.md"}]," file at the repository root for persistent project instructions. StemCode loads",["$","code",null,{"children":" AGENTS.md"}]," or ",["$","code",null,{"children":".agent/AGENTS.md"}]," from the workspace into the model context, so this is the right place for architecture boundaries, generated-file rules, coding conventions, validation expectations, and manual setup notes that should apply across sessions."]}],["$","div",null,{"className":"docs-note","children":[["$","b",null,{"children":"Keep AGENTS.md practical and repository-specific"}],["$","p",null,{"children":"Prefer concrete rules the agent can act on: where important source lives, what it must not edit, which patterns it should preserve, and which checks it should run after a change."}]]}],["$","pre",null,{"children":["$","code",null,{"children":"$11"}]}],["$","p",null,{"children":"Commit the file with the project so the same instructions are reviewable and shared by everyone using StemCode in the repository."}]]}],[["$","section",null,{"id":"why","className":"docs-section reveal","children":["$L12","$L13","$L14","$L15"]}],"$L16","$L17","$L18","$L19","$L1a","$L1b","$L1c","$L1d","$L1e"],"$L1f"]}]]}]}] e:["$","$L20",null,{"children":["$L21",["$","$L22",null,{"promise":"$@23"}]]}] f:["$","$1","h",{"children":[null,[["$","$L24",null,{"children":"$L25"}],null],["$","$L26",null,{"children":["$","div",null,{"hidden":true,"children":["$","$27",null,{"fallback":null,"children":"$L28"}]}]}]]}] 12:["$","span",null,{"children":"01 / WHY STEMCODE"}] 13:["$","h2",null,{"children":"Use repository-aware AI without replacing the tools your stack already needs."}] 14:["$","p",null,{"children":"StemCode works best when it can understand the repository around a task, inspect related files, use code intelligence where available, run the project's normal validation commands, and review the final diff before you accept a change."}] 15:["$","div",null,{"className":"docs-callout docs-callout-strong","children":[["$","strong",null,{"children":["GOOD FIT FOR ","UNREAL ENGINE"," WORK"]}],["$","p",null,{"children":"Unreal Engine projects using C++, gameplay modules, plugins, UObjects, Actors, Components, subsystems, config files, UnrealBuildTool, AutomationTool, automation tests, source-controlled project files, and team build scripts."}]]}] 16:["$","section",null,{"id":"setup","className":"docs-section reveal","children":[["$","span",null,{"children":"02 / SETUP"}],["$","h2",null,{"children":"Install StemCode and open the project root."}],["$","p",null,{"children":"Launch StemCode from the Unreal project root so it can see the .uproject file, Source, Config, Plugins, build scripts, and Git history. Keep the Unreal Editor for Blueprint authoring, asset editing, profiling, cooking, packaging, and visual debugging."}],["$","div",null,{"className":"doc-command","children":[["$","b",null,{"children":"npm"}],["$","code",null,{"children":"npm install -g stemcode"}]]}],["$","div",null,{"className":"doc-command","children":[["$","b",null,{"children":"pnpm"}],["$","code",null,{"children":"pnpm add -g stemcode"}]]}],["$","pre",null,{"children":["$","code",null,{"children":["cd your-project","\n","stemcode","\n","/init"]}]}],["$","p",null,{"children":"Keep StemCode at the repository root so project instructions, source, configuration, tests, and Git history are visible from one workspace."}]]}] 17:["$","section",null,{"id":"project","className":"docs-section reveal","children":[["$","span",null,{"children":"03 / PROJECT CONTEXT"}],["$","h2",null,{"children":"Keep authored source visible and generated Unreal output out of the search path."}],["$","p",null,{"children":"Unreal repositories mix reviewable C++ and configuration with generated build products and often large binary assets. Focus the agent on source code, module definitions, plugins, configuration, and repository automation."}],["$","div",null,{"className":"docs-grid-2","children":[["$","div",null,{"className":"docs-feature-card","children":[["$","span",null,{"children":"INSPECT"}],["$","h3",null,{"children":"Keep source-of-truth files visible."}],["$","pre",null,{"children":["$","code",null,{"children":"*.uproject\nSource/\nConfig/\nPlugins/\n*.Build.cs\n*.Target.cs"}]}]]}],["$","div",null,{"className":"docs-feature-card","children":[["$","span",null,{"children":"IGNORE"}],["$","h3",null,{"children":"Skip generated or disposable output."}],["$","pre",null,{"children":["$","code",null,{"children":"Binaries/\nDerivedDataCache/\nIntermediate/\nSaved/\n.vs/\nBuild output/"}]}]]}]]}],["$","p",null,{"children":["Add generated paths to Git ignore rules or",["$","code",null,{"children":" .stemcode/.stemcodeignore"}]," so repository search stays focused."]}],["$","div",null,{"className":"docs-feature-card","children":[["$","span",null,{"children":"FIRST PROMPT"}],["$","h3",null,{"children":"Understand the project before changing it."}],["$","p",null,{"children":"Analyze this Unreal Engine repository. Map modules, plugins, major gameplay systems, UObject and Actor relationships, subsystems, interfaces, build targets, configuration, and tests. Identify Blueprint or asset dependencies that code alone cannot fully describe. Do not modify files yet."}]]}]]}] 18:["$","section",null,{"id":"intelligence","className":"docs-section reveal","children":[["$","span",null,{"children":"04 / CODE INTELLIGENCE"}],["$","h2",null,{"children":"Combine C++ symbol navigation with Unreal naming and reflection context."}],["$","p",null,{"children":"A C++ language server can help with definitions, references, diagnostics, and implementations, while repository search remains important for macros, generated reflection code boundaries, module dependencies, and configuration."}],[["$","div","CLANGD-Install clangd and make it available on PATH",{"className":"doc-command","children":[["$","b",null,{"children":"CLANGD"}],["$","code",null,{"children":"Install clangd and make it available on PATH"}]]}]],["$","pre",null,{"children":["$","code",null,{"children":["/lsp refresh","\n","/lsp"]}]}],["$","div",null,{"className":"docs-note","children":[["$","b",null,{"children":"Use both semantic navigation and repository search"}],["$","p",null,{"children":"Treat Unreal reflection macros, generated headers, module boundaries, ownership rules, replication, and engine lifecycle as first-class context. A mechanically valid C++ refactor can still be wrong if it breaks UPROPERTY/UFUNCTION expectations, module dependencies, serialization, or Blueprint exposure."}]]}]]}] 19:["$","section",null,{"id":"cli","className":"docs-section reveal","children":[["$","span",null,{"children":"05 / NATIVE CLI"}],["$","h2",null,{"children":"Use UnrealBuildTool, AutomationTool, and Editor command-line automation."}],["$","p",null,{"children":"Unreal provides native command-line tooling rather than one single project CLI. UnrealBuildTool builds targets, AutomationTool handles unattended workflows such as BuildCookRun, and the Editor executable can run Automation tests from the command line. Keep engine-root and project paths in repository scripts or CI variables."}],[["$","div","UAT COMMANDS-\"/Engine/Build/BatchFiles/RunUAT.bat\" -List",{"className":"doc-command","children":[["$","b",null,{"children":"UAT COMMANDS"}],["$","code",null,{"children":"\"/Engine/Build/BatchFiles/RunUAT.bat\" -List"}]]}],["$","div","BUILD TARGET-\"/Engine/Build/BatchFiles/RunUBT.bat\" Development -Project=\".uproject\"",{"className":"doc-command","children":[["$","b",null,{"children":"BUILD TARGET"}],["$","code",null,{"children":"\"/Engine/Build/BatchFiles/RunUBT.bat\" Development -Project=\".uproject\""}]]}],["$","div","AUTOMATION TESTS-\"\" \".uproject\" -ExecCmds=\"Automation RunTest ;Quit\" -ReportExportPath=\"TestReports\" -unattended -nop4",{"className":"doc-command","children":[["$","b",null,{"children":"AUTOMATION TESTS"}],["$","code",null,{"children":"\"\" \".uproject\" -ExecCmds=\"Automation RunTest ;Quit\" -ReportExportPath=\"TestReports\" -unattended -nop4"}]]}]],["$","p",null,{"children":"On macOS and Linux, use the corresponding .sh scripts. Prefer checked-in wrappers around UBT/UAT so target, platform, engine version, and report paths are reproducible. BuildCookRun is useful for CI cooking and packaging, but reuse the project’s existing arguments instead of inventing a new release pipeline inside an AI prompt."}]]}] 1a:["$","section",null,{"id":"workflow","className":"docs-section reveal","children":[["$","span",null,{"children":["06"," / DEVELOPMENT WORKFLOW"]}],["$","h2",null,{"children":"Let code changes respect the Engine’s object, module, and asset boundaries."}],["$","p",null,{"children":"Use StemCode for source-level investigation and implementation, then validate behavior in Unreal Editor and the project’s established build pipeline. Avoid pretending binary .uasset content can be safely understood or rewritten as text."}],["$","div",null,{"className":"docs-grid-2","children":[["$","div","Trace before implementing",{"className":"docs-feature-card","children":[["$","span",null,{"children":"FEATURE"}],["$","h3",null,{"children":"Trace before implementing"}],["$","p",null,{"children":"Trace the existing interaction system across interfaces, Actors, Components, controllers, and subsystems. Then add the requested interaction type using the current patterns and list any Blueprint or asset setup that must be done in the Editor."}]]}],["$","div","Protect dependency boundaries",{"className":"docs-feature-card","children":[["$","span",null,{"children":"MODULES"}],["$","h3",null,{"children":"Protect dependency boundaries"}],["$","p",null,{"children":"Review this change for incorrect module dependencies, public versus private include usage, Build.cs updates, and unnecessary coupling between runtime and editor modules."}]]}],["$","div","Review network behavior",{"className":"docs-feature-card","children":[["$","span",null,{"children":"REPLICATION"}],["$","h3",null,{"children":"Review network behavior"}],["$","p",null,{"children":"Trace authority, replication, RPCs, ownership, and state synchronization for this feature. Identify client/server assumptions before making changes."}]]}],["$","div","Inspect hot paths",{"className":"docs-feature-card","children":[["$","span",null,{"children":"PERFORMANCE"}],["$","h3",null,{"children":"Inspect hot paths"}],["$","p",null,{"children":"Review this gameplay path for repeated world queries, unnecessary ticking, avoidable allocations, expensive casts, and work that could be event driven."}]]}]]}]]}] 1b:["$","section",null,{"id":"validation","className":"docs-section reveal","children":[["$","span",null,{"children":["07"," / BUILD AND TEST"]}],["$","h2",null,{"children":"Build through the project’s real Unreal toolchain and automation."}],["$","p",null,{"children":"Unreal build commands vary by engine installation, platform, target, and CI setup. Prefer scripts already committed to the repository or the same UnrealBuildTool, AutomationTool, and command-line test commands used by the team."}],[["$","div","BUILD-\"/Engine/Build/BatchFiles/RunUBT.bat\" Development -Project=\".uproject\"",{"className":"doc-command","children":[["$","b",null,{"children":"BUILD"}],["$","code",null,{"children":"\"/Engine/Build/BatchFiles/RunUBT.bat\" Development -Project=\".uproject\""}]]}],["$","div","TEST-\"\" \".uproject\" -ExecCmds=\"Automation RunTest ;Quit\" -ReportExportPath=\"TestReports\" -unattended -nop4",{"className":"doc-command","children":[["$","b",null,{"children":"TEST"}],["$","code",null,{"children":"\"\" \".uproject\" -ExecCmds=\"Automation RunTest ;Quit\" -ReportExportPath=\"TestReports\" -unattended -nop4"}]]}]],["$","p",null,{"children":"Start with the affected module or target when possible, then run broader automation. Open the project in Unreal Editor for Blueprint compilation, asset references, PIE behavior, replication checks, and any content-side validation the CLI cannot cover."}],["$","pre",null,{"children":["$","code",null,{"children":"Run the smallest relevant validation first. If it passes, run the broader project checks and review the final diff."}]}]]}] 1c:["$","section",null,{"id":"memory","className":"docs-section reveal","children":[["$","span",null,{"children":["08"," / PROJECT MEMORY"]}],["$","h2",null,{"children":"Keep longer-lived architecture context alongside your project instructions."}],["$","p",null,{"children":["Use ",["$","code",null,{"children":"AGENTS.md"}]," for concise rules the agent should follow on every task. Keep longer architecture notes, domain context, and workflow references in repository-level StemCode memory so both stay reviewable and versionable."]}],["$","pre",null,{"children":["$","code",null,{"children":"This is an Unreal Engine project.\nDo not edit Binaries, DerivedDataCache, Intermediate, or Saved output.\nDo not treat binary .uasset or .umap files as normal text source.\nRespect runtime, developer, and editor module boundaries.\nPreserve Unreal reflection, serialization, Blueprint exposure, and replication semantics.\nUse the project's checked-in UBT/UAT wrappers and target configuration for automated validation.\nExplain required Blueprint, asset, project settings, or Editor changes after code edits."}]}]]}] 1d:["$","section",null,{"id":"review","className":"docs-section reveal","children":[["$","span",null,{"children":["09"," / REVIEW"]}],["$","h2",null,{"children":"Review the change in terms of your stack, not only the generated code."}],["$","p",null,{"children":"Ask StemCode to inspect its own diff and check the integration points that are easiest to miss in a repository-wide change."}],["$","pre",null,{"children":["$","code",null,{"children":"- UObject lifetime and ownership\n- UPROPERTY and UFUNCTION reflection behavior\n- module and plugin dependencies\n- replication and authority assumptions\n- tick and hot-path performance\n- Blueprint/API compatibility\n- required asset or Editor setup\n- UBT/UAT and automation test results"}]}]]}] 1e:["$","section",null,{"id":"faq","className":"docs-section reveal","children":[["$","span",null,{"children":["10"," / FAQ"]}],["$","h2",null,{"children":"Common setup questions."}],[["$","$1","What is the Unreal Engine CLI?",{"children":[["$","h3",null,{"children":"What is the Unreal Engine CLI?"}],["$","p",null,{"children":"Unreal uses several command-line entry points instead of one CLI: UnrealBuildTool for targets, AutomationTool for unattended workflows such as BuildCookRun, and UnrealEditor or UnrealEditor-Cmd for commandlets and Automation tests."}]]}],["$","$1","Can StemCode edit Blueprints?",{"children":[["$","h3",null,{"children":"Can StemCode edit Blueprints?"}],["$","p",null,{"children":"Repository-level code workflows are strongest on text source and configuration. Blueprint graphs and binary assets should be handled in Unreal Editor unless a dedicated integration exposes safe structured operations."}]]}],["$","$1","Should Intermediate or DerivedDataCache be indexed?",{"children":[["$","h3",null,{"children":"Should Intermediate or DerivedDataCache be indexed?"}],["$","p",null,{"children":"No in normal projects. They are generated and can overwhelm search. Keep Source, Config, Plugins, project files, and build scripts visible instead."}]]}],["$","$1","What about generated Unreal headers?",{"children":[["$","h3",null,{"children":"What about generated Unreal headers?"}],["$","p",null,{"children":"Treat generated output as derived state. Work from your authored headers and source while preserving the reflection macros and build rules that generate the engine-side code."}]]}]]]}] 1f:["$","section",null,{"className":"docs-section reveal","children":[["$","span",null,{"children":"NEXT STEP"}],["$","h2",null,{"children":"Put StemCode to work in a real repository."}],["$","p",null,{"children":"Install StemCode, open the project you already work in, and begin with a repository-understanding task before asking the agent to change code. That gives the model better context and keeps the workflow reviewable."}],["$","div",null,{"className":"docs-grid-2 docs-spaced","children":[["$","div",null,{"className":"docs-feature-card","children":[["$","span",null,{"children":"INSTALL"}],["$","h3",null,{"children":"Start with the CLI."}],["$","pre",null,{"children":["$","code",null,{"children":["npm install -g stemcode","\n","cd your-project","\n","stemcode"]}]}]]}],["$","div",null,{"className":"docs-feature-card","children":[["$","span",null,{"children":"LEARN"}],["$","h3",null,{"children":"Go deeper."}],["$","p",null,{"children":"Read the full StemCode documentation for providers, permissions, LSP integrations, memory, MCP, CI review, and advanced workspace configuration."}],["$","$L6",null,{"className":"inline-arrow","href":"/docs","children":"READ THE DOCS →"}]]}]]}]]}] 25:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#f4f5f0"}]] 21:null 29:I[622,[],"IconMark"] 23:{"metadata":[["$","title","0",{"children":"StemCode for Unreal Engine Developers: C++, Modules, Builds, and Repository-Aware AI | GrowBitLabs"}],["$","meta","1",{"name":"description","content":"Use StemCode with Unreal Engine C++ projects, modules, plugins, UnrealBuildTool, AutomationTool, command-line tests, refactoring, and code review."}],["$","meta","2",{"name":"keywords","content":"StemCode Unreal Engine,Unreal Engine AI coding agent,Unreal C++ AI assistant,Unreal AutomationTool,UnrealBuildTool,Unreal command line,UE C++ refactoring AI,Unreal Engine code review AI"}],["$","meta","3",{"name":"robots","content":"index, follow"}],["$","meta","4",{"name":"googlebot","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://growbitlabs.com/guides/stemcode-unreal-engine-developers"}],["$","meta","6",{"property":"og:title","content":"StemCode for Unreal Engine Developers: C++, Modules, Builds, and Repository-Aware AI"}],["$","meta","7",{"property":"og:description","content":"Use StemCode with Unreal Engine C++ projects, modules, plugins, UnrealBuildTool, AutomationTool, command-line tests, refactoring, and code review."}],["$","meta","8",{"property":"og:url","content":"https://growbitlabs.com/guides/stemcode-unreal-engine-developers"}],["$","meta","9",{"property":"og:type","content":"article"}],["$","meta","10",{"property":"article:published_time","content":"2026-10-01"}],["$","meta","11",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","12",{"name":"twitter:title","content":"StemCode for Unreal Engine Developers: C++, Modules, Builds, and Repository-Aware AI"}],["$","meta","13",{"name":"twitter:description","content":"Use StemCode with Unreal Engine C++ projects, modules, plugins, UnrealBuildTool, AutomationTool, command-line tests, refactoring, and code review."}],["$","link","14",{"rel":"icon","href":"/assets/fav.png","sizes":"196x186","type":"image/png"}],["$","link","15",{"rel":"apple-touch-icon","href":"/assets/fav.png","sizes":"196x186","type":"image/png"}],["$","$L29","16",{}]],"error":null,"digest":"$undefined"} 28:"$23:metadata"