Importing assets
Editor docs
The editor converts source files in assets/ into what the game ships: images to WebP or KTX2,
audio to Ogg Opus, glTF models to one optimised .glb. Every importer is JavaScript or WebAssembly
inside the editor, so there is no native tool to install. Models are glTF 2.0 only, by design:
export .glb or .gltf from Blender or your modelling tool. The editor is a
preview.
Preview: the glTF importer, drag-and-drop import and File → Import… shipped on 3 November 2026 and have not yet been run end to end in the editor. Packaged builds and Windows and Linux are not verified.
Bring files into the project#
- Drop files from your file manager onto the Assets panel. They are copied into the folder the panel shows.
- File → Import… opens a file dialog and copies the files you pick into the same folder. It needs the Assets panel open.
Up to 64 files at a time, each a regular file of at most 512 MiB (no links, sidecars or dot files).
A name already taken becomes rock 2.png, rock 3.png…; nothing is overwritten. The panel lists
what was copied and what was refused. A copied file is then imported like any other.
The importers#
| Importer | Sources | Output, beside the source | Options |
|---|---|---|---|
| Image | .png .jpg .jpeg .webp | The image kept, or PNG, WebP, KTX2 ETC1S or KTX2 UASTC | Output, max size, quality, sRGB, mipmaps |
| Audio | .flac .aiff .aif .m4a | <name>.ogg (Ogg Opus, 48 kHz) | Bitrate (6–256 kbit/s, default 96), channels (auto, mono, stereo) |
| glTF | .glb .gltf | One plain .glb: ship.gltf → ship.glb, ship.glb → ship.imported.glb. Draco and meshopt are decoded. | Dedup, prune, weld, simplify (ratio, error), quantize, texture resize with a max size |
KTX2 encodes of images over 12 megapixels (up to 4096 × 4096) run in a hidden window with threaded
WebAssembly.
The engine plays .wav as it is, so .wav is not converted.
When an import runs#
An asset is imported when it was never imported, when its importer changed, when the source file or its options changed, or when an output is missing. Reimport forces one.
Opening a project never converts anything on its own: an image with no options keeps its size and
format, and a model waits to be asked. A .glb or .gltf is not imported until you apply
options or choose Reimport.
Each output gets its own sidecar, so the engine's loaders read the right settings. The source's
sidecar records the importer, the source's hash and options, and the outputs. When you chose the
options and an output replaces the source, the source is marked publish: false and left out of
builds. If an output's name already holds a file this source did not make, the import is refused
and nothing is overwritten.
In the Assets panel#
- A badge on each tile: queued, importing with its progress, done, or failed with the message.
- Import settings in the details pane, a form per importer, with Apply and Reimport.
- Reimport in a tile's context menu.
- A status bar chip ("Importing 1 of 3…", "Import failed: N assets") and a Console line for each import and each failure.
Thumbnails#
Models (.glb, .gltf) and prefabs get a picture in the Assets panel's tiles and details pane. The
scene view renders each one (128 px PNG), one at a time, while no game is playing; the generic icon
shows until it is ready. Thumbnails are cached in the project's private
.ignifx/thumbnails/ and redrawn when the file changes.
Materials and atlases have no thumbnail yet.
Known limitations#
- References are not repointed. After an import replaces
rock.pngwithrock.ktx2, orship.gltfwithship.glb, materials and scenes that name the source still name it: repoint them by hand. - A
.gltf's separate.binand texture files are not watched: editing one does not re-import the.gltf. Run Reimport. - A prefab's thumbnail is redrawn only when the prefab file changes, not when a model it uses does.
- There are no MCP tools for importing yet; agents add files to
assets/directly.