Project layout¶
What lives where, and which parts are tracked in Perforce vs generated by the engine (kept out via .p4ignore).
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, and one editor module, RephrasedEditor (Source/RephrasedEditor/), which holds Details-panel customizations and editor tools for rune content.
Source/Rephrased/Rephrased.Build.cs declares its dependencies:
- Public:
Core,CoreUObject,Engine,InputCore,UMG,Niagara,EnhancedInput,GameplayTags - Private:
Slate,SlateCore,RenderCore,RHI,ImageCore,ApplicationCore
If you need a new engine module (e.g. AIModule for navigation), add it to PublicDependencyModuleNames and rebuild.
The two .Target.cs files (Rephrased.Target.cs, RephrasedEditor.Target.cs) define the game and editor build targets. Don't touch them unless you know why.
Source/Rephrased subfolders¶
Source/Rephrased/
RephraseCharacter.* player movement, interaction, native RuneCoordinator
RuneDataAsset.* word definitions and noun rules
Save/ checkpoint save subsystem, save game, save id component
RuneSystem/
Activation/ WorldRune, RuneCoordinator, RuneTransaction
Core/ shared rune enums and structs
Drawing/ drawing graph, state, widget, presentation, unlock actor
Effects/ RuneableObject, noun rules, status tags, puzzle actor
Behaviors/ puzzle performance behaviors
Puzzles/ mural puzzle controller, light blocker volume
Tests/ rune automation coverage (PROT-001, CORE-009, SAVE-001)
Files at the top level are project-wide actors (RephraseCharacter, PedestalActor, AudioManager, etc.). Anything under RuneSystem/ is part of the rune subsystem and is grouped by responsibility.
Content folder conventions¶
Shipped layout (reorganization merged 2026-09-05, PR #19). Source of truth: Content organization.
Current depot note, refreshed after art reorganization CL 114583:
Content/Rephrased/is the shared project-owned content root.Content/Developers/is a root-level scratch tree with discipline folders:Art/,Audio/,Design/,Engineer/,Owner/,QA/,UIUX/,Usability/.Content/Imports/is for vendor/template packs and should be treated as read-only source material.Content/Rephrased/Art/currently containsArchive-Prepro/,Audio/,BP/,Characters/,Decal/,Environments/,Fonts/,MaterialFunction/,Materials/,Mesh/,Props/,Shaders/,Texture/, andVFX/.-
Content/Rephrased/Audio/Archive-Prepro/exists for legacy/pre-production audio reference from CL114583; new reusable audio should still follow lead direction before promotion. -
Content/Rephrased/Art/— art library by type:Characters/(main character +Animation/newAbp),Audio/,Fonts/,Materials/,Shaders/,VFX/,Environments/,Props/,Archive-Prepro/. Content/Rephrased/Gameplay/— gameplay assets by system:Core/for player/game framework,Runes/Nouns/andRunes/Verbs/for word data,Runes/WorldRunes/for world runes,Runes/Drawing/for the drawing graph, andPuzzleDevices/for puzzle devices.Content/2ndPlayable/LV_2ndPlayable— current playable map.Content/Rephrased/Input/— default and rune-drawing mapping contexts plusIA_*actions.Content/Rephrased/UI/— drawing and gameplay widgets.Content/Rephrased/Levels/Prepro/— archived pre-production maps.Content/Rephrased/Levels/Archives/— old demo and playable builds.Content/Rephrased/_Archives/— prototyping-only assets.Content/Imports/— vendor/template packs only (Underworld, Stylish Fire VFX, Variant_Platforming, UnrealTemplate, Fab, Mannequins, Kenney_Keyboard_UI, Zacksly_PS5_Controls).Content/Developers/<Discipline>/<Name>/— personal playground maps and scratch experiments (Art, Audio, Design, Engineer, Owner, QA, UIUX, Usability).
Move .uasset and .umap files through Unreal Editor or Unreal MCP, then fix redirectors and verify references. Do not move content folders in Explorer.
.uproject¶
Rephrased.uproject declares the engine version (5.8), enabled plugins, and module list. Plugins currently enabled:
ModelingToolsEditorMode— editor only, used for blockoutGameplayStateTree— reserved for future NPC scripting; not used yetAura— disabledModelContextProtocol+EditorToolset+AllToolsets— suggested Unreal MCP in the 5.8 editor (see Unreal MCP)GameInput+GameInputWindows— Windows gamepad input (Win64 only);RawInputandXInputDevice— disabledNiagaraFluids— Niagara fluid simulation
If you enable a new plugin via the editor, the change lands in the .uproject — review the diff before submitting.
Where new code goes¶
- New puzzle performance behavior →
Source/Rephrased/RuneSystem/Behaviors/ - New rune-responsive puzzle actor →
Source/Rephrased/RuneSystem/Effects/when it belongs to the rune system - New activation or transaction behavior →
Source/Rephrased/RuneSystem/Activation/ - New drawing behavior →
Source/Rephrased/RuneSystem/Drawing/ - New rune automation →
Source/Rephrased/RuneSystem/Tests/PROT-001/
If your file doesn't fit anywhere, ask before introducing a new folder.
Change history¶
- 2026-10-02 — Gabriel Li — Listed the RephrasedEditor module, the full Build.cs dependencies, the
Save/,Core/, andPuzzles/source folders, the current Art and Imports folders, and the input and Niagara plugins (CORE-011). - 2026-09-29 — Gabriel Li — Updated rune source and content folders (CORE-009).
-
2026-09-07 - Gabriel Li - Matched the Content folder summary to the current depot after art reorganization CL 114583.
-
2026-09-05 - Gabriel Li - Source-control wording flipped to Perforce (tracked-in-Perforce, ignored via
.p4ignore, review diff before submit); git is legacy. Supersedes the 2026-05-23 GitHub note below. -
2026-09-05 - Gabriel Li - Replaced pre-reorg content rules with the shipped hybrid layout (PR #19) and Developers/
/ scratch convention. -
2026-08-27 - Gabriel Li - Added content organization plan link and current Rephrased/Imports/Developers folder policy.
-
2026-08-14 — Gabriel Li — Unreal MCP plugins listed as suggested.
- 2026-08-13 — Gabriel Li — Listed
tools/rephrased-mcpand Unreal MCP plugins; engine pin remains 5.8. - 2026-08-12 — Gabriel Li —
.uprojectengine pin is 5.8. - 2026-05-23 — Gabriel Li — Moved under Rephrased project track; source control wording updated to GitHub (not Perforce).