Resources
A resource is anything you upload or create once and use in many places.
| Resource | Used by |
|---|---|
| model | a 3D object |
| image | a texture, or a picture in an interface card |
| video | a video surface, or a card |
| audio | a sound source, or one-shot sounds from a script |
| font | text |
| material | reused across objects |
| geometry | reused across objects |
| prefab | a saved tree of objects you can drop in again |
| splat | a Gaussian-splat capture |
| card | an interface layout |
| patch | a visual graph you can reuse and call |
| script | TypeScript behaviour |
Folders and paths
Resources live in folders, just like files. A path is the folder names joined with slashes:
Models/Trees/oak.glb
Names are unique inside a folder, so a path always points at exactly one thing.
Scripts import each other by path, which means renaming or moving a resource rewrites the imports in every script that used it. You do not have to go and fix them by hand.
A model that arrives with its own textures tucks them underneath itself. Move or delete the model and they follow — you never manage them one by one.
Objects point at resources, they do not contain them
A model object holds a reference to a model. A material's colour map holds a reference to an image. A text object holds a reference to a font.
This is what makes swapping cheap: change what a reference points at and everything using it updates at once. Repaint every sign in your scene by editing one material.
It also explains a symptom: a missing resource shows up as an object that exists but does not draw, rather than as an error message.
Loading happens while the scene runs
Resources arrive after the scene has already opened, which you will notice:
- a model can pop in a moment after the scene starts;
- a texture can be briefly absent on a finished-looking material;
- text appears a beat late, because it lays itself out asynchronously.
For anything that has to be on screen at the very first frame (a title card, a logo) avoid depending on a large download, or keep the scene hidden until the content has arrived.
Next: Cameras — what your visitor looks through.