Repository navigation
ContentTool 1.0.0
ContentTool is the content engine other Phoenix Point mods build on. A mod that depends on it can
replace what the game ships — textures, models, materials, animation curves, sounds, videos,
whole asset bundles — and add content the game never had, such as a new weapon or a new
creature. Everything is applied in memory while the game runs: your Phoenix Point installation is
never written to, and removing the mod leaves nothing behind to undo.
On its own ContentTool changes nothing. You are most likely here because a mod you installed
requires it.
Install
- Download
ContentTool-1.0.0.zipbelow. - Copy the
ContentToolfolder into<Steam library>\steamapps\common\Phoenix Point\Mods\. - Start the game, open Mods, tick Content Tool.
If a content mod declares ContentTool as a dependency, the mod manager enables it for you.
What is new in this release
A model off the internet can be a playable soldier — with no C# at all.
The HumanoidSoldier demo takes a foreign humanoid .glb, fits it onto Phoenix Point's own
skeleton, and the campaign starts you with it. The whole mod is a meta.json and a
ppcontent.json; there is no assembly, no Harmony patch, nothing to compile.
A shipped character can be given a new body. ReplaceCharacterBody swaps the body of a
character the game already ships, again from the manifest alone.
"startingRoster": true puts a code-less mod's unit in the roster the campaign begins with, so
a new soldier is playable from the first mission rather than something you have to spawn.
"useGameAnimations": true plays the game's own animation clips on your model. A mod that
sets it ships zero animation bytes — the walk, the aim, the reload all come from Phoenix Point.
This is new and not yet battle-tested: it is the fastest route to a moving character, but expect
rough edges on rigs that stray far from the shipped proportions.
The offline model pipeline — tools\ppskel.py (fit a foreign rig to the game's skeleton),
ClipCensus (sample the shipped clips), tools\ppretarget.py (retarget onto them),
tools\ppzip.py (compress). Together they cut the demo model by 65% with every clip kept.
Fixes that matter if you are building a .glb creature
- The aimed shot that never came back. A null in
AimIKon a custom-rigged creature froze the
camera mid-shot and left the turn hanging. Fixed — an aimed shot on a foreign rig now resolves. - Animation events are inherited from the vanilla clips. Without them a custom body played its
animation silently and without effect: no footstep, no muzzle flash, no hit frame. Your model now
gets the events the original clip carried.
Notes
- Sounds are the one thing that cannot be taken back mid-session. Unticking a mod leaves a replaced
sound loaded until you restart; restarting is the clean undo. - One shipped resource has exactly one owning mod. Two mods claiming the same one is refused by
name in your player log, never silently. - If a mod's content does not appear, the reason is a named line in
Player.log— search it for
ct_.
Documentation for modders: https://ubermorgott.github.io/PhoenixPoint-Mod-ContentTool/