Skip to main content

Workflow: Import

Import brings source assets into the project and converts them into runtime-ready data where needed. The editor writes imported output to Library/ and tracks assets through GUIDs in Library/asset_db.json.

Source Folders

Asset typeFolderSource formats
3D modelsAssets/Models/.obj, .fbx
Level Builder meshesAssets/Meshes/.pmsh
TexturesAssets/Textures/.png, .bmp, .tga
MaterialsAssets/Materials/.mat.json
AudioAssets/Audio/.wav
ScriptsAssets/Scripts/.lua

Compiled outputs go to Library/ and are staged into Build/ps1/disc_root/DATA during PS1 builds.

Project Browser selecting station_floor with texture preview, resize and format settings in the Inspector

Selecting a source texture in Project opens Texture Import Settings. Preview the output, choose resizing and a PS1 format, then apply or reimport the asset.

Open the image to view it at full size.

Import Flow

  1. Add source files to the right folder under Assets/, or choose Assets > Import > Multiple Supported Assets... to select a mixed batch of models, textures, WAV audio, and Lua scripts.
  2. The editor detects the files and creates import metadata or asset database entries.
  3. Select the asset to adjust import settings in the Inspector.
  4. If a static model is dense, open PS1 Asset Optimizer, inspect the recommendation, set the target, and generate the runtime copy.
  5. Apply or reimport when settings change.
  6. Assign the imported asset to a component, material, UI image, or Audio Source. For long music, enable Streaming Music (CD-XA) and use the global Music Lua API instead.

Mixed imports enter the normal per-type queues; they do not bypass type-specific validation or import settings. Model optimization and other long-running asset operations show progress and can be cancelled before their transaction is published.

Find References

Select an asset and use Find References in the Inspector before moving or deleting shared content. The search scans authored scene JSON and material documents, excludes generated Library/ and Build/ data, and reports the exact document path for every match.

A report with no matches means the asset is an orphan candidate, not that it is automatically safe to delete. Lua may choose an asset or scene by string, and content outside the supported authored-document scan may still depend on it. Review script usage and source control history before deletion.

For format details, see:

Model Import Settings

Model importer settings appear in the Inspector when a model source is selected.

Models are imported through Assimp and written as .msh runtime assets. An FBX with Import Hard-Skinned Animation enabled also produces a bounded .skn asset under Library/animations/. See Skeletal Animation for the one-weight, one-material path.

External files selected through the import dialog are copied into Assets/Models/ first. The optimizer never overwrites that source. Its target, quality, symmetry, and preservation constraints are stored in metadata so Reimport can reproduce the generated result.

Model optimization and import run in the background with visible progress and cancellation. After generation, compare Source and Generated in the same preview modes. The editor serializes other asset work behind an active model import and keeps project mutations read-only until the transaction completes, so asset database publication remains coherent.

Texture Import Settings

Texture importer settings control PS1 format, resizing, resample filter, palette and dithering. Indexed formats reduce artwork to 16 or 256 colors; 16 bpp uses the PS1 direct-color format. Enable dithering for smoother gradients, or leave it off to preserve crisp pixel patterns.

Use Auto for general artwork, Nearest for pixel art and masks, Area for deliberate downscaling, and Mitchell for smooth enlargement. The smooth filters use premultiplied alpha to avoid transparent-edge color bleeding.

Textures are imported into PS1-oriented .tex data and later placed into VRAM by the runtime.

Level Builder Meshes

Level Builder saves editable .pmsh files under Assets/Meshes/ and compiled .msh files under Library/meshes/. See Level Builder.