Skip to content

Export

Exporting copies the files of a collection into a folder, typically inside your game project, and writes two files next to them: manifest.json, which lists what was copied, and CREDITS.md, which lists the packs, licenses and authors to credit. Your library’s files are only read, never changed.

For a walkthrough, see the Export a collection tutorial.

Any of these opens the export dialog for a collection:

  • Export… in the collection header (open the collection in the sidebar first).
  • Right-click the collection in the sidebar and choose Export….
  • Export current collection… in the command palette (Cmd/Ctrl+K), while the collection is open. With no collection open, the status bar says “Export: select a collection in the sidebar first.”

The export dialog for Dungeon Level 1: destination, the By type, Keep paths and Flat layout cards, the Rename policy and a note about one file name clash

The title names the collection, with “N assets · size · from N packs” under it. Those numbers leave out archived assets.

Type a folder path or click Choose… to pick one. The folder is created if it doesn’t exist. The dialog remembers the last destination you exported each collection to and fills it in next time.

Card Where each file goes Example
By type A folder per asset type, named in lower case: texture, model_3d, audio, model_2d, shader, font, video, archive, doc, unknown. texture/stone_wall.png
Keep paths The same path the file has inside its library folder. textures/stone_wall.png
Flat Straight into the destination, no subfolders. stone_wall.png

Each card previews the first entries it would create in the destination. By type is the default; after that, the dialog uses the layout of your last export.

Option What happens when the target file is already there
Skip The existing file is kept and the asset isn’t copied. The default.
Rename The asset is copied under a new name with _1, _2, … before the extension (wood_planks_1.png).
Overwrite The existing file is replaced. This can’t be undone.

The dialog remembers your last choice. It checks the destination as you type and says what will happen, for example “2 files already exist and will be skipped.” or “No existing files will be touched.” On macOS and Windows, names that differ only in case count as the same file.

Name clashes inside the export. Two assets can end up with the same target, such as two wood_planks.png from different packs with By type or Flat. The note counts them separately (“1 file conflicts (1 share a name in this export) and will be …”). The first one is copied; the policy decides what happens to the next: Skip leaves it out, Rename saves it as wood_planks_1.png, and Overwrite replaces the first copy with it, so only one file is left. Keep paths avoids clashes unless both files have the same path in different library folders.

Include N archived assets adds the collection’s archived members to the export. It’s off every time you open the dialog, and reads No archived assets (disabled) when there are none.

This section names the two extra files. The CREDITS.md line lists the packs that will be credited (“Credits 2 packs: Stone and Wood Textures (CC0-1.0), …”, showing each pack’s license line).

The lower part of the export dialog: manifest.json and CREDITS.md descriptions, the packs to credit, and a NO LICENSE warning with a Fix button

When some assets in the export have no license, a NO LICENSE warning says “N assets have no license and will be listed under “No License Detected” in CREDITS.md.” Fix… closes the dialog and opens the License fixer. Come back with Export… when you’re done. You can also export anyway.

The button says how many files will be copied (Export 11 files). Under Skip, files that would clash aren’t counted. It’s disabled until there’s a destination and something to copy.

The export runs as soon as you click it; the dialog closes and the status bar reports “Exported N files (N skipped, N errors)”.

  • Each asset in the collection, as an exact copy of its file. Archived assets only when you include them.
  • Nothing else. Files that belong with an asset aren’t picked up on their own: an .obj model’s .mtl file, or the textures a model uses, are only copied if they’re in the collection too.
  • Assets whose file is missing on disk, or whose library folder was removed, count as errors and aren’t copied.
  • manifest.json and CREDITS.md are written at the top of the destination every time, replacing any earlier ones, whatever you chose under If a file already exists.

Exporting isn’t on the undo stack. Delete the exported files yourself if you need to.

manifest.json describes the export and every file that was actually copied. This is a real one, from a collection of five assets exported with By type:

{
"assets": [
{
"hash": "714af7e5fa31c775af8ddce92bb0d2ac8baf91c4463f0e7e182d4cb4a4390f6d",
"name": "stone_wall.png",
"size_bytes": 7125,
"source": "textures/stone_wall.png",
"tags": [
"dungeon",
"tileable"
],
"target": "texture/stone_wall.png",
"type": "TEXTURE"
},
{
"hash": "4def744015d7f16f6b6615bc5ecc6a760dc592eb8dc97bb1e63713660c3ac707",
"name": "mossy_ground.png",
"size_bytes": 12344,
"source": "textures/mossy_ground.png",
"tags": [
"dungeon"
],
"target": "texture/mossy_ground.png",
"type": "TEXTURE"
},
{
"hash": "457336ae1317b223fbfbad5b4276228fff80d869bafec5c7bcf03862d73082ab",
"name": "coin.svg",
"size_bytes": 280,
"source": "ui_icons/coin.svg",
"tags": [],
"target": "texture/coin.svg",
"type": "TEXTURE"
},
{
"hash": "07e7a15b7df51e600099973c9eb9b40f34292245e1bbf101d34be1fdab97239e",
"name": "magic_glow.png",
"size_bytes": 927,
"source": "particles/magic_glow.png",
"tags": [],
"target": "texture/magic_glow.png",
"type": "TEXTURE"
},
{
"hash": "a197bb3411f09909f1b664bbebaf64eb70c15b7626e76bef14117483d6110198",
"name": "spark.png",
"size_bytes": 875,
"source": "particles/spark.png",
"tags": [],
"target": "texture/spark.png",
"type": "TEXTURE"
}
],
"collection": "Dungeon Level 1",
"exported_at": 1794457456.86875,
"stats": {
"copied": 5,
"errors": 0,
"skipped": 0,
"total": 5
}
}

Keys appear in alphabetical order, indented with two spaces.

Field Type Meaning
collection string The collection’s name.
exported_at number When the export ran, in seconds since 1970-01-01 UTC (Unix time), with a fractional part.
stats.copied integer Files copied.
stats.skipped integer Assets not copied because the target existed and the policy was Skip.
stats.errors integer Assets that couldn’t be copied (file missing, folder removed, write failed).
stats.total integer Assets the export tried: the collection’s members, plus archived ones if included.
assets array One entry per copied file, in collection order. Skipped and failed assets aren’t listed.
assets[].source string The file’s path inside its library folder, with / separators.
assets[].target string Where it was written, relative to the destination, after any rename (texture/wood_planks_1.png).
assets[].name string The file name.
assets[].type string The asset type: TEXTURE, MODEL_3D, MODEL_2D, AUDIO, SHADER, FONT, VIDEO, ARCHIVE, DOC or UNKNOWN.
assets[].size_bytes integer File size in bytes, as of the last scan.
assets[].hash string SHA-256 of the file’s contents in hex, as of the last scan. "" if the file hasn’t been hashed yet.
assets[].tags array of strings The asset’s tag names, alphabetically.

Use source and hash to find where a file came from, or to tell whether a re-export would bring in a changed file.

CREDITS.md is a Markdown file meant to go in your game’s credits, or to be pasted into them. It covers every asset the export tried, including ones that were skipped because they already existed. This is the real one written next to the manifest.json above:

# Credits
## Stone and Wood Textures
**Author:** Salaryman Inc.
**License:** CC0 1.0 Universal
Assets:
- mossy_ground.png
- stone_wall.png
---
## LICENSE.txt
CC0 1.0 Universal
https://creativecommons.org/publicdomain/zero/1.0/
Stone and Wood Textures: these files were made by Salaryman Inc. as demo content for the Salaryman
Asset Manager documentation. To the extent possible under law, Salaryman Inc.
has waived all copyright and related or neighboring rights to them. You can
copy, modify, distribute and use them, even for commercial purposes, all
without asking permission. Credit is appreciated but not required.
## ui_icons
# UI icons
Five flat icons for menus and HUDs.
License: CC0 1.0 (public domain dedication).
---
## Own Work
No attribution required.
Assets:
- magic_glow.png
---
## No License Detected
Assets:
- spark.png

It’s built from up to four kinds of sections, in this order, with a --- line between kinds:

  1. One section per pack, in the order the packs were added: ## Pack name, then **Author:**, **Source:** and **License:** lines (each only when that field is filled in; the license is its first line), then Assets: and the file names, alphabetically.
  2. One section per license file used by the exported assets (found by a scan or chosen in the License fixer), headed by the folder the file is in, relative to its library folder, or by the file’s name when it’s at the top of the library folder (a file you chose outside your library folders is headed by its folder’s name). The section holds the file’s full text. Assets in a pack get both their pack section and their license file’s section.
  3. Own Work: assets you marked as your own work in the License fixer that aren’t in a pack, under “No attribution required.”
  4. No License Detected: every exported asset that is unlicensed. The export dialog warns about these before you export.

Before you ship, make sure the No License Detected section is gone, and read the license sections: some licenses ask for specific wording in your credits.