Repository navigation
ContentTool 1.2.1
ContentTool 1.2.1 lists shipped sounds by name and extracts loose audio as WAV files so you can find the sound you want to replace.
Find a sound by name or id
ct_list audio [filter]now shows every shipped sound by name, read at runtime from the game's ownSoundbanksInfo.xmlin<install>\PhoenixPointWin64_Data\StreamingAssets\Audio\GeneratedSoundBanks\Windows\.- Each row is
<id> <name> <bank> loose|in-bank, for example:6372602 5_IND_Taunt_03 Barks loose. - The filter is a case-insensitive substring of the name, the id or the bank:
ct_list audio taunt,ct_list audio 6372602,ct_list audio Barks. - Media in several banks show their bank names joined with
+and match any of them. - The list covers 7691 named media: 3105 loose
.wemfiles are extractable; 4591 inside.bnksoundbanks are listed asin-bankso you can find their ids, but are not extractable. - The pane shows the first 10 rows and then names a file; the whole list is always written to
<persistentDataPath>\ContentTool\Logs\ct_list-audio-<stamp>.txt. A capture such as PPCLI still receives every row. - If the XML is missing, the header ends with
- NO NAMES: <reason>and rows fall back to numeric names.
Extract one sound or all loose audio
ct_extract audio <mediaId>now also writes<ShortName>__<id>.wavbeside the byte-for-byte.wem.- Use
ct_extract audio --all [filter]to decode every loose media the filter matches into...\ContentTool\Extracted\audio\<ShortName>__<id>.wav. - Bulk extraction writes
index.csvwith columnsid,shortName,bank,loose,wav, covering all media including the in-bank ones. - Progress is reported every 200 files. The whole library is 3105 decodes.
- The final line is
extracted N of M loose media (K in-bank skipped) into <dir>. - A failing decode is counted and named, never fatal.
Use the media id for replacements
- The Wwise MEDIA id is the number in a loose
.wemfilename. It is what ContentTool replaces and what these commands take. - The Wwise EVENT id is
AK.Wwise.Eventin the game's defs. It is never a loose filename. - If the only id you have is an event id, search the sound's name in the list instead.
- Replacing a sound is unchanged: the manifest row and the file still use the media id.
Follow the updated guides
- The sounds guide now covers finding and extracting sounds. The old
ct_list audio confirmexample is gone: it could never match anything because the list held only numbers. - The find-content guide has also been rewritten.
Keep long output visible
- The game's mod logger creates a console text object with shadow per call. One call over roughly 8 000 characters throws
Mesh can not have more than 65000 vertices, losing the frame's console geometry. Splitting at 8 000 characters still failed: five parts, five throws. - ContentTool now sends one bounded message per command, at most 5 000 characters: verdict head,
... N line(s) not shown, last lines includingct_project: …, and the full-text file path<persistentDataPath>\ContentTool\Logs\log-<stamp>.txt. The console pane shows the same bounded text.ct_list audiokeeps 10 rows plusct_list-audio-<stamp>.txt; a capture such as PPCLI receives every line. - Verified in game: long-verdict
ct_project,ct_list audio, and enabled project startup bake; zero exceptions, trailer visible.
Install
- Unzip so that
Mods\ContentTool\ContentTool.dllandMods\ContentTool\meta.jsonexist under your Phoenix PointModsfolder. - Enable
ContentToolin the in-game mod manager, then restart. - Mods that depend on ContentTool list
com.morgott.ContentToolin theirmeta.jsonDependencies.