Skip to content

Project layout

What lives where, and which parts are tracked in Git vs generated by the engine.

Top-level folders

Folder Tracked Purpose
Source/ yes C++ code. The only folder where engineers write code by default.
Content/ yes Blueprints, data assets, levels, materials, particles, audio, fonts. Authored in the editor.
Config/ yes .ini settings: input bindings, collision channels, default game settings, editor preferences.
Rephrased Wiki/ yes This wiki, the TDD, the dev log.
tools/rephrased-mcp/ yes Team MCP toolkit (tasks, wiki, review). Agents call it; engineers do not need the tool names.
Plugins/ sometimes Project-local plugins. Unreal MCP ships with the engine, not this folder.
Binaries/ no Compiled DLLs. Built locally; ignored.
Intermediate/ no Build artifacts, generated .gen.cpp files for the reflection system. Safe to delete; will be rebuilt.
Saved/ no Logs, autosaves, shader cache, screenshots. Per-machine.
DerivedDataCache/ no Cooked asset cache. Per-machine.

If something is in Intermediate/, Saved/, Binaries/, or DerivedDataCache/, do not check it in.

C++ module

The project ships one runtime module: Rephrased_Demo.

Source/Rephrased_Demo/Rephrased_Demo.Build.cs declares its dependencies:

  • Public: Core, CoreUObject, Engine, InputCore, UMG, Niagara, EnhancedInput
  • Private: Slate, SlateCore

If you need a new engine module (e.g. AIModule for navigation), add it to PublicDependencyModuleNames and rebuild.

The two .Target.cs files (Rephrased_Demo.Target.cs, Rephrased_DemoEditor.Target.cs) define the game and editor build targets. Don't touch them unless you know why.

Source/Rephrased_Demo subfolders

Source/Rephrased_Demo/
  *.h *.cpp                      most gameplay actors and subsystems live flat at this level
  RuneSystem/
    Components/                  URuneEffectComponent and concrete verb subclasses
    Strategies/                  EffectStrategy, ComponentVerbStrategy, NounTransformStrategy
    Subsystems/                  RuneEventBus, RuneableObjectRegistry, RuneEffectHistory, RuneRedefinitionManager
    Core/                        shared enums and structs (RuneSystemEnums.h, RuneSystemStructs.h)

Files at the top level are project-wide actors (RephraseCharacter, MemoryPalace, AudioManager, etc.). Anything under RuneSystem/ is part of the rune subsystem and is grouped by responsibility.

Content folder conventions

  • Content/Blueprints/ — Blueprint subclasses of C++ base classes (BP_Rune, BP_RuneSlot, etc.)
  • Content/Runes/URuneDataAsset instances (one asset per rune word: TREE, FLOAT, IS, etc.)
  • Content/Input/IA_* input actions and IMC_* input mapping contexts
  • Content/Levels/.umap files
  • Content/VFX/ — Niagara systems and emitters

Specific paths can be checked in the editor's Content Browser; this list is the rough shape.

.uproject

Rephrased_Demo.uproject declares the engine version (5.8), enabled plugins, and module list. Plugins currently enabled:

  • ModelingToolsEditorMode — editor only, used for blockout
  • GameplayStateTree — reserved for future NPC scripting; not used yet
  • Aura — disabled
  • ModelContextProtocol + EditorToolset + AllToolsets — suggested Unreal MCP in the 5.8 editor (see Unreal MCP)

If you enable a new plugin via the editor, the change lands in the .uproject — review the diff before committing.

Where new code goes

  • New verb effect component → Source/Rephrased_Demo/RuneSystem/Components/
  • New puzzle device subclassing ARuneableObjectSource/Rephrased_Demo/
  • New subsystem → Source/Rephrased_Demo/RuneSystem/Subsystems/ (if rune-related) or top-level
  • New strategy → Source/Rephrased_Demo/RuneSystem/Strategies/

If your file doesn't fit anywhere, ask before introducing a new folder.

Change history

  • 2026-08-14 — Gabriel Li — Unreal MCP plugins listed as suggested.
  • 2026-08-13 — Gabriel Li — Listed tools/rephrased-mcp and Unreal MCP plugins; engine pin remains 5.8.
  • 2026-08-12 — Gabriel Li — .uproject engine pin is 5.8.
  • 2026-05-23 — Gabriel Li — Moved under Rephrased project track; source control wording updated to GitHub (not Perforce).