Packaging and publishing

10.1 Purpose

  • Define how a level is prepared for distribution and submission to the in‑game Repository.
  • Make sure the level is self-contained and does not depend on files outside the package.

10.2 Package contents

  • Include: /levels/YourMap and required /art folders referenced by the level.
  • Exclude: /source and any working files, caches, or editor autosaves.

Typical package layout:

your_map.zip
└── levels/
    └── your_map/
        ├── info.json
        ├── preview.png
        ├── main/
        ├── art/
        ├── forest/
        ├── main.materials.json
        └── other level files

Do not include:

  • /source authoring files
  • Blender/Photoshop/Substance project files
  • temporary exports
  • texture cache files
  • editor backup/autosave files
  • files from another mod unless you have permission and include them intentionally

10.3 Metadata and presentation

  • info.json: author, version, description, tags.
  • preview.png: representative screenshot at recommended resolution.

The metadata should describe what the level is and what players can expect.

Check:

  • Level title is readable and not only an internal folder name.
  • Author and version are correct.
  • Description is concise.
  • Preview image represents normal gameplay.
  • Spawn points listed in info.json exist in the level.

10.4 Structure and paths

  • Ensure all material and mesh references use relative paths within the package.
  • Keep naming consistent and lowercase_with_underscores.

Before packaging, search for local absolute paths such as:

C:\
D:\

These paths work only on the creator’s machine and will fail for other players.

Also check for references to files in:

/source
/temp

unless they are intentionally shipped game paths.

10.5 Verification

  • Test the .zip on a clean install/profile with no other mods enabled.
  • Confirm load success, materials present, and expected performance.

Recommended verification pass:

  1. Create the .zip.
  2. Move the unpacked working folder out of the user levels/mods path.
  3. Install only the packaged .zip.
  4. Clear cache if you changed material or folder structure.
  5. Start the game fresh and load the level.
  6. Check the log for missing files and invalid JSON.
  7. Drive the main route and visit dense areas.

If the packaged version works only while the working folder is present, the package is missing files.

10.6 Versioning and updates

  • Increment versions clearly (e.g., 1.0.0 → 1.1.0 for content changes).
  • Provide a changelog and keep backward‑compatibility notes where relevant.

Use version increments consistently:

Change type Example version change
Small fix 1.0.01.0.1
New area/content 1.0.01.1.0
Major rebuild or compatibility break 1.0.02.0.0

For updates, avoid renaming stable spawn points, waypoints, or gameplay references unless necessary.

10.7 Publishing criteria

  • Self‑contained package; no external dependencies.
  • No missing assets or path errors on first load.
  • Clear metadata and preview image.
  • Default spawn works.
  • No obvious warning materials.
  • Main roads and collision are usable.
  • Performance is acceptable in dense areas.

10.8 Common packaging issues

  • Missing textures because main.materials.json references a file outside the level.
  • Missing meshes because the .dae or .cdae was not included.
  • Spawn selection broken because info.json references a missing SpawnSphere.
  • Level works unpacked but not zipped because a dependency was outside the package.
  • Wrong folder nesting, for example your_map.zip/your_map/levels/your_map/... instead of your_map.zip/levels/your_map/....

See also: Level metadata (info.json) , Material JSON files , Testing and validation .

Last modified: June 24, 2026

Any further questions?

Join our discord
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.