CMPKG packages
Export → CMPKG + media produces one .cmpkg file: a zip containing the
project in both XML and JSON plus every media file the project
references, with the references rewritten to point inside the package. It is
the one export that carries assets, and it is the format to use when handing
a whole scenario — script and files — to another team, a Desktop user, or an
engine pipeline.
Layout
Section titled “Layout”The_Ferry_at_Dusk.cmpkg (a zip)├── The_Ferry_at_Dusk.xml ChatMapper XML├── The_Ferry_at_Dusk.json ChatMapper JSON└── media/ ├── <asset-id>/ferry_01.mp3 ├── <asset-id>/ferry_02.mp3 └── <asset-id>/ferryman.png- The XML and JSON describe the same project; use whichever your pipeline reads.
- Every media reference in either document —
Audio Files,Video File,Animation Files,Pictures, and any customFilesfield the project registered — has been rewritten from the editor’s internal URL to the package-relative pathmedia/<asset-id>/<filename>. Resolve them relative to the zip root. - Media the project references but the editor no longer holds is left as-is (the original reference), so a missing file is visible rather than silently dropped.
- Media referenced by URL (attached with Media URL rather than uploaded) is not fetched; the URL is preserved.
Reading one
Section titled “Reading one”Any zip library. Read the .json (or .xml), parse it, and for each media
reference open the path inside the archive. The reference parser’s
dialogueSegments helper pairs | segments with the entries of Audio Files
by index.
Desktop compatibility
Section titled “Desktop compatibility”The Desktop app’s own .cmpkg is a zip of a .cmp (its encrypted binary
save) plus media. ChatMapper Cloud’s .cmpkg puts XML and JSON where the
.cmp would be. Desktop opens the XML inside directly; ChatMapper Cloud
imports either kind of package — a .cmpkg dropped on the import dialog is
detected by content, its project loaded and its media attached.
Packages are built from the project’s media as stored; there is no recompression. A project with an hour of WAV will produce an hour of WAV. Use the Voiceover Script CSV when a studio only needs the lines.