Types
The 46 asset types a Zero world is built from (scenes, modules, materials, shaders, meshes, tools, and the rest), with the fields and methods each one exposes to Luau.
- agentSkill
A skill packages what an agent needs to do one job well: the instructions, the assets and toolboxes the job runs through, and — for jobs with distinct branches — subskills that go deeper.
- animation asset type
A single animation clip, as a composite asset. The folder <name>.animation/ carries:
- assetType (asset type)
The assetType is the type of types — the meta-type that every <typename>.assetType/ folder is an instance of, including itself. A <typename>.assetType/ folder declares a new asset type called…
- avatar
A playable character, composed from three independent parts:
- Bundle (asset type)
A bundle is a composable, spawnable entity assembly— a saved entity hierarchy plus its components, sub-assets (meshes, textures, animations, materials, sub-bundles), and any nested data, packaged…
- Component (asset type)
A component is a reusable behavior + data unit attached to an entity. The component file declares public fields, methods, and lifecycle callbacks; the engine instantiates one per attachment and…
- Compute shader (asset type)
A .computeShader is a GPU compute (GPGPU) program with a zero-scaffolding authoring contract: you write only @compute fn main(...) plus a declarative bindings.yaml, and the engine GENERATES every…
- data (asset type)
A .data instance is a configured value binding to a dataType contract: values.yaml names the contract and supplies the field values the contract's schema declares. Instances carry values only —…
- dataType (asset type)
A dataType is a user-authored typed-data contract: it declares a set of fields — names, types, constraints, defaults — that any bound .data instance must satisfy. A contract can carry an optional…
- dynamicAsset (asset type)
A prompt-driven, self-regenerating 3D asset. A <name>.dynamicAsset/ folder holds a text prompt.json; the asset's model is generated from that prompt by the @builtin::services.meshy text-to-3D…
- editorPanel
A dock tab in the editor, as an asset. A <name>.editorPanel/ folder carries an init.luau that returns the tab's spec:
- effect
A finished, parameterised visual effect, authored as an asset. An explosion, a muzzle flash, a smoke plume: something an author reaches for and plays, rather than something they rebuild out of…
- .font asset type
A .font is a first-class font asset: font-file bytes (TTF / OTF / WOFF / WOFF2) converted into a guid-anchored asset via asset.create("font", name, { bytes = … }).
- gaussianSplat
A photographic capture of a real place, stored as a cloud of oriented 3D Gaussians rather than as triangles. Drop a .spz or .ply into the world and the importer turns it into one of these.
- Importer (asset type)
An importer is a Luau function that converts a source file (GLB, PNG, CSV, custom binary) into one or more derived assets registered in the engine. Importers extend the engine's file-format knowledge…
- inputBinding assetType
One control in a scheme — jump, move, boost — expressed as an asset. A <name>.inputBinding/ folder whose init.luau returns the binding record, living inside a .inputMap/ parent the same way a .tool…
- Input macro (asset type)
An input macro is a recorded or hand-authored sequence of input simulation events — keystrokes, mouse moves, button clicks, scroll wheel deltas — timestamped and played back via the sim toolbox…
- inputMap assetType
A control scheme, expressed as an asset. A <name>.inputMap/ folder whose init.luau returns the map record, and whose controls are the <name>.inputBinding/ child folders beside it — the same…
- lightmapData
A baked-lighting container: ONE asset per scene holding every baked lighting payload the GI bake flow produces — per-entity lightmaps and per-volume probe-field bricks. The container is what makes a…
- Material (asset type)
A material is a named, configured instance of a .shader. The shader defines the surface look (lighting model, available property fields, texture slots); the material picks values for those fields and…
- mesh
A mesh is renderable geometry — vertices and triangle indices, and, for a skinned mesh, the per-vertex skinning data that binds it to a skeleton. A component that draws geometry references a mesh,…
- Module (asset type)
A module is a reusable, stateless (or globally-stateful) Luau library that other code pulls in with require(). Modules are the unit of factored-out logic in a world: helpers, math libraries, format…
- Package (asset type)
A package is an asset — a <Name>.package/ folder that bundles components, modules, scenes, presets, tools, and any other typed sub-assets under one identity, installed into a world as one unit.…
- pixelTemplate (asset type)
A saved, reusable pixel-art sheet. A <name>.pixelTemplate/ folder asset carries a JSON payload template.pixbin (width, height, pixelSize, plane, palette, the flat pixel array, and — for animated…
- population
A hardware-instanced population at rest: one mesh drawn at every transform of a baked placement, as ONE draw call per variant at any instance count.
- Preset (asset type)
A preset is a captured, named configuration of a single component. Instead of typing the same fields into every component.add call, you save a preset once and load it. Presets are component-scoped:…
- procGraph (asset type)
A .procGraph asset is a procedural graph: a description of how to make something, written as code, that can be evaluated over and over with different numbers. Its init.luau returns proc.define(...) —…
- procNode — custom procedural nodes as content
A .procNode is a procedural operation authored as content: a folder whose init.luau returns a def table. When the asset registers, its def joins the proc op registry keyed by the asset's stable GUID,…
- procPack — a family of procedural ops as content
A .procPack is a FAMILY of procedural operations authored as content: a folder whose init.luau returns a pack table. When the asset registers, every def in its ops map joins the proc op registry…
- renderFeature
A render feature inserts custom GPU passes into the frame pipeline. The engine provides one generic capability — a per-frame render-pass queue and a set of pipeline-phase insertion points — and a…
- rig asset type
A skeleton, as a composite asset. A rig is its own primitive — not a mesh and not an animation. The folder <name>.rig/ carries:
- Scene (asset type)
A scene is a saved, loadable snapshot of an entity scenegraph inside a world: the entity hierarchy, transforms, components, lighting, and a declared player intent, plus an auto-discovered startup…
- sceneModule — a part of a scene, authored as code
A .sceneModule is a recipe for scene content: a folder whose init.luau declares the inputs a placement may set and returns the function that builds the content. Placing one runs the builder and lands…
- Service (asset type)
A service generates content you don't have yet — a 3D mesh, an image, a PBR material, a sound effect, a humanoid animation, a navigable splat world — from the inputs each operation declares, landing…
- serviceRun
The durable record of one service generation — what was asked for, which gateway job is doing it, and what state that job reached.
- Shader (asset type)
A shader is a WGSL program that runs on the GPU. Materials reference shaders and supply property values; renderable entities reference materials, not shaders directly. This README is the canonical…
- Shader module (asset type)
A .shaderModule is a block of WGSL that other shaders include rather than copy — a lighting model, a set of colour-space helpers, one package's shared prelude. It declares no entry point and is never…
- soundClip
An audio asset — a managed container holding a sound effect or music track, addressed by the .soundClip suffix.
- Style (asset type)
A style is a UI design-token bundle: colour palette, spacing scale, typography pairs, and the widget classes built from them. Registered with the UI theme system, its classes cascade to every widget…
- terrainData
A landscape's baked data, as one asset.
- Test Suite (asset type)
A test suite is a registrable asset that bundles one group of automated engine tests. Each <name>.testSuite/ folder holds an init.luau whose body registers a suite (and its tests) against the test…
- texture
An image asset — the raw bytes of a png / jpg / jpeg / hdr / ktx2 / webp / bmp / tga file. Loose image files under a textures/ directory classify as texture.
- Tool (asset type)
A tool is a single agent-callable function whose schema is its typed function signature. Tools are the workflow surface — composed Luau operations that bundle multiple engine APIs into one named…
- Toolbox (asset type)
A toolbox is a namespace folder that groups related .tool/ children plus shared helpers. Toolboxes are the addressing layer for tools — every tool's identity is <toolbox>.<name>, so the toolbox name…
- Voxel Template (asset type)
A voxel template is a reusable, named voxel grid that live instances link to. It is the source of truth for a family of VoxelShape instances spawned via Voxel.fromTemplate(<name>) — every live…
- workflow
A job whose shape is a program.