Skip to content

Worked examples

These 11 public demos are in the repository’s demos folder. Choose one close to your goal, then use its README alongside the linked recipe. NoDepTexture is a test fixture under tests/fixtures, not a demo.

Demo What it shows Route Recipe link Needs DLL GitHub link to demo folder
MaterialTweak Change a value on a shipped material. Replace Material properties No Open demo
WeaponMesh Replace a shipped rifle’s mesh and five textures; its DLL changes the inventory icon. Replace Replace weapon art Yes Open demo
WeaponAdd Publish three models and build three new weapons from shipped definitions. Add + Build Add a weapon Yes Open demo
ReplaceUiSounds Replace three shipped UI sounds. Replace Replace sounds No Open demo
MenuMusic Replace two shipped menu music tracks by media ID. Replace Replace sounds No Open demo
AddUiSounds Bake two new sounds; its DLL loads their bank and plays them on a hotkey. Add Add sounds Yes Open demo
IntroVideo Replace an intro video, its sound, and its subtitles. Replace Videos Yes Open demo
QuitCutscene Add a video key; its DLL plays the clip when leaving the main menu. Add Videos Yes Open demo
CustomCreature Build a new creature from a model, rig, clips, and a shipped donor. Build Creatures Yes Open demo
HumanoidSoldier Build a playable soldier with a retargeted model and game clips. Build Humanoid soldiers No Open demo
ReplaceCharacterBody Build a new body for an existing DLC character while keeping her identity. Build Replace a character body No Open demo

How to try a demo

  1. Clone or download the repository. Open a terminal at its root. Build ContentTool first:
dotnet build ContentTool.csproj -c Release

Of the six demo projects with DLLs, CustomCreature and WeaponAdd reference bin\Release\ContentTool\ContentTool.dll through their project files, so build ContentTool before building either of them. ContentTool and every demo project find the game’s assemblies through PPRoot; if Phoenix Point is outside the project file’s default location, supply -p:PPRoot="<Phoenix Point>" to each build.

  1. Copy the built bin\Release\ContentTool folder into <Phoenix Point>\Mods\. Copy your chosen demo into its own sibling folder, <Phoenix Point>\Mods\<Demo>\. Keep its meta.json, ppcontent.json, and any Content, Icons, or Dist folders it contains. The demo must not sit inside Mods\ContentTool\.

  2. If the table says Yes under Needs DLL, build that demo’s .csproj in Release configuration. Copy its built <Demo>.dll into Mods\<Demo>\, beside meta.json. The demo README names its build project and any game dependency.

  3. Start Phoenix Point. In Mods, tick Content Tool. Bake the copied demo from the game console: use ct_sound bake <Demo> for ReplaceUiSounds and MenuMusic; use ct_project <Demo> for the other demos. IntroVideo replaces sound as well as video, so run both commands for it. Read the final result and fix any refusal before continuing.

  4. Tick the demo in Mods and follow its README’s in-game check. A clean bake checks files and declarations; the in-game check tells you whether the intended effect appeared.

For the full sequence from validation through packaging, see the lifecycle.