Filenames inside a downloaded ZIP follow an asset name + role suffix pattern. Even when a project grows to dozens or hundreds of assets, you can keep them on a consistent naming scheme.
Quick flow
- Workspace → pick an asset → click the download icon under the 3D viewer
- File name: whatever you type in the File Name input at the top of the popover gets substituted into the
$assettoken (it starts out filled with the asset's name) - Naming preset: expand Advanced and pick a preset under Naming preset (default = "Asset name")
- Download → every file inside the ZIP gets renamed consistently
Default behavior
With the default preset (Asset name) selected:
MyHero.fbx
└─ MyHero.fbm/
├─ MyHero.png ← BaseColor
├─ MyHero_n.png ← Normal
├─ MyHero_MetallicSmoothness.png ← with Target engine: Unity
└─ MyHero_Occlusion.png ← with Target engine: Unity
MyHero is replaced by whatever you typed in the File Name input at download time. You can rename per-download freely.
Tokens
In Dashboard → Export Naming, you can save templates built from tokens. Click the chips next to each input to insert tokens precisely at the cursor (typing them by hand risks typos).
$asset— the value typed in the download popover's Asset name input$date— today's date (YYYYMMDD)
Example — project-prefix grouping
Template: tycoon_$asset / Download input: character01 →
tycoon_character01.fbx
└─ tycoon_character01.fbm/
├─ tycoon_character01.png
├─ tycoon_character01_n.png
└─ tycoon_character01_MetallicSmoothness.png
Example — date-based versioning
Template: $date_$asset / Input: character01 →
20260530_character01.fbx
Example — category-based presets
Separate presets for characters / environment / props:
| Preset name | Mesh template | Result (input orc) |
|---|---|---|
| Character | char_$asset | char_orc.fbx |
| Environment | env_$asset | env_orc.fbx |
| Prop | prop_$asset | prop_orc.fbx |
Role suffixes are automatic
Texture filenames get role suffixes automatically — you don't need to add them in your template.
- no suffix — the BaseColor map
_n— Normal map_MetallicSmoothness·_Occlusion— when Target engine is Unity (packed Metallic + Smoothness for Unity Lit / URP Lit, and the Occlusion map)_ORM·_Emissive·_AO·_Roughness·_Metallic·_Smoothness— when the model has those maps
Create a preset
In the dashboard's Export Naming page:
- Preset name (e.g. "Tycoon project")
- Mesh template —
$assetor your pattern - Texture template —
$assetor your pattern - Click Create
As you type, the preview tree below shows the exact file names you'll get (the .fbx and the textures inside .fbm/). Saved presets can be dragged to reorder, Edited, or deleted with the trash icon. Saving under an existing name overwrites that preset.
Click the $asset / $date chips next to each input to insert tokens at the caret. Typing them by hand risks typos ($aset, $asest) that produce literal strings in filenames instead of the intended substitution.
Engine recommendations
| Engine | Pattern | Target engine | Why |
|---|---|---|---|
| Unity | $asset (default) | Unity | Auto material wiring — Unity URP/Lit recognizes _MetallicSmoothness / _Occlusion suffixes automatically |
| Unreal | $asset | Generic | Unreal also splits BaseColor/Normal/ORM. Role suffixes serve as auxiliary identifiers |
| Blender / Godot / three.js | $asset | Generic | glTF/PBR standard workflow |
| Multi-project | <project>_$asset | Engine-specific | Auto-prefix when assets from multiple projects share a directory |
Apply at download
When downloading an asset, expand Advanced in the popover and pick your saved preset under Naming preset. A link under the list takes you straight to the Export Naming page. Built-in:
- Asset name — single
$assettoken (the most common case, default)
Your saved presets (e.g. Tycoon project) show up alongside built-ins in the same dropdown. Each row shows the raw template (e.g. tycoon_$asset) underneath the name so you can verify which pattern this preset stamps.
Per-format behavior
| Format | Outer filename | Inside (ZIP) |
|---|---|---|
| GLB | MyHero.glb | (textures embedded in the GLB binary) |
| STL | MyHero.stl | (no textures) |
| FBX | MyHero.zip | MyHero.fbx + every texture inside MyHero.fbm/ |
| OBJ | MyHero.zip | MyHero.obj, MyHero.mtl, every texture |
| Textures only | MyHero.zip | textures only (no model file) |
GLB and STL are single-file formats, so the template applies only to the outer filename. FBX / OBJ / textures-only also apply the template to every file inside the ZIP.
FAQ
Can mesh and texture templates be the same?
Yes. The default preset uses $asset for both, which is the most common workflow. Split them only when you need to (e.g. mesh = $asset, texture = tex_$asset).
Are non-ASCII asset names supported?
Yes. At download time, only characters your operating system can't use are cleaned up. Letters in other scripts and parentheses are kept; spaces and characters like \ / : * ? " < > | become _ (my character → my_character). Leading and trailing ., _, and - are trimmed, and names are capped at 64 characters.
Can I have multiple presets? Yes. Create per-project or per-engine presets and pick one at download time.
Can I batch-rename files I already downloaded? This feature applies only at download time. For files already on disk, use your OS's batch-rename tools.
Where did the material template go? Material names are almost always the same as the mesh name in practice, so the UI doesn't separate them. The mesh template is applied to material names automatically.
Can I pick which texture maps to download? Downloads include every texture map the model has. If you only need the maps, use the Textures only format. You can, however, choose a lighter size (4K, 2K, 1K, or 512) with Texture resolution.
Troubleshooting
Underscores showed up in my file names
Spaces and characters your OS forbids (\ / : * ? " < > |) become _. Non-ASCII letters are preserved as-is. Remove spaces or replace them yourself for cleaner output.
Preset won't save
- Preset name: Hangul, Han, kana, Latin letters, digits, space,
_, and-only; up to 64 characters. - Template: the same characters plus
.and$; up to 128 characters (spaces turn into_as you type).
Duplicate filenames inside the ZIP
Don't type role suffixes like _n or _MetallicSmoothness into the texture template. The worker appends them automatically, so doing it yourself produces double suffixes such as MyHero_MetallicSmoothness_MetallicSmoothness.png. The only tokens you can use are $asset and $date.