Repository navigation
ContentTool 1.1.0
Import and bake fixes driven by a real modding session — a modder could not get his character models into the game, and every problem he hit turned out to be ours.
Skinning quality
- Up to four bone influences per vertex. ContentTool used to keep only the two strongest weights and discard the rest. That was never a Phoenix Point or Unity requirement — the game itself ships meshes with both two and four, declared per mesh. Replacing one of its four-influence meshes actively downgraded it. A replacement now keeps whatever the target mesh declares, and a new model added from a .glb carries what the file really has. More than four is still unsupported and is refused rather than silently trimmed.
- Per-bone bounds cover every influence. Bones weighted only in the third or fourth slot used to get empty or undersized boxes, which could make body parts cull or pop during animation.
Models that used to be refused or mangled
- Body-part meshes exported with the rig now import. Each attachment joint hangs under a different bone, which is normal for that kind of export; the importer used to reject it and told you to run Object > Apply > All Transforms. That advice was wrong and could damage a rig — it is gone, along with the refusal. You do not need to apply transforms.
- Models ripped from a live scene keep their weights. The game renames attachment bones at runtime to a decorated form, so no bone matched by name and every vertex was silently welded to its nearest bone. Those names are now understood.
- A mesh with no armature is refused on a rigged character instead of being welded into something that collapses the moment it animates. Unrigged replacements for static objects, such as weapons, work exactly as before.
Baking
- One unusable file no longer kills the whole build. Any refusal — a missing texture, a bad material, an unfound mesh — used to abandon that bundle and every bundle after it, producing no output at all while reporting a single failure. Problems are now reported and skipped, and the rest still bakes.
- A failed bake can no longer leave an older bundle marked current, so you cannot unknowingly test stale content. Note the consequence: while a project still reports a failure, it re-bakes on every launch.
- Refusal messages say what is actually wrong and where — a texture in the wrong folder now names the folder it is in and the one it belongs in.
- New warning: if a source mesh contains a tiny leftover part (a stray triangle from cutting or optimising), it now tells you, because the game assigns materials by part order and a shard can push your real geometry onto the wrong material.
Workbench
- The unit picker is visible again. The list of 791 templates was being pushed off the bottom of the panel, so the workbench appeared stuck on one model. Added
ct_bench unit <name>to select one from the console.
Documentation
New guide: Replace vs Add — which one you want, why a replacement binds to the game's own skeleton, and why a Replace mod bakes once on the player's machine while an Add mod ships ready to run.