World components
Every field below is derived from the engine’s own component registry — the same one the editor’s Details panel reads — so the types and defaults here are the values you get when you add the component, and they cannot drift from the code. The prose that explains how to use each one lives in the guides linked per entry.
Marker
A named point or region of gameplay interest — spawn point, waypoint, trigger zone — queryable like any component.
Explained in gameplay/markers.
| Field | Type | Default | Notes |
|---|---|---|---|
type | string | empty | |
properties | object | empty |
ParticleEmitter
A particle system: emission, lifetime, shape, forces, noise, colour and size over life, sub-emitters and trails.
Explained in world/particles.
| Field | Type | Default | Notes |
|---|---|---|---|
rate | number | 10 | Range ≥ 0. |
burstCount | number | 0 | Range ≥ 0, step 1. |
burstInterval | number | 1 | Range ≥ 0. |
duration | number | 5 | Range ≥ 0. |
looping | boolean | true | |
playOnStart | boolean | true | |
maxParticles | number | 1000 | Range ≥ 1, step 1. |
lifetimeMin | number | 5 | Range ≥ 0. |
lifetimeMax | number | 5 | Range ≥ 0. |
shape | enum | Cone | One of Point, Circle, Rectangle, Cone. |
shapeRadius | number | 100 | Range ≥ 0. |
shapeSize | Vec2 | (100, 100) | |
shapeAngle | number | 25 | |
speedMin | number | 500 | |
speedMax | number | 500 | |
angleSpreadMin | number | 0 | |
angleSpreadMax | number | 360 | |
startSizeMin | number | 100 | Range ≥ 0. |
startSizeMax | number | 100 | Range ≥ 0. |
endSizeMin | number | 100 | Range ≥ 0. |
endSizeMax | number | 100 | Range ≥ 0. |
sizeEasing | enum | Linear | One of Linear, EaseIn, EaseOut, EaseInOut. |
startColor | Color | #ffffff | |
endColor | Color | #ffffff00 | |
colorEasing | enum | Linear | One of Linear, EaseIn, EaseOut, EaseInOut. |
rotationMin | number | 0 | |
rotationMax | number | 0 | |
angularVelocityMin | number | 0 | |
angularVelocityMax | number | 0 | |
gravity | Vec2 | (0, 0) | |
damping | number | 0 | Range ≥ 0. |
noiseStrength | number | 0 | Range ≥ 0. |
noiseFrequency | number | 0.01 | Range ≥ 0. |
noiseScrollSpeed | number | 0 | |
noiseOctaves | number | 1 | Range 1–8, step 1. |
texture | Asset<texture> | none | |
spriteColumns | number | 1 | Range ≥ 1, step 1. |
spriteRows | number | 1 | Range ≥ 1, step 1. |
spriteFPS | number | 10 | Range ≥ 0. |
spriteLoop | boolean | true | |
blendMode | enum | Additive | One of Normal, Additive, Multiply, Screen, PremultipliedAlpha, PmaAdditive, Lighten, Darken, Overlay, None. |
layer | enum (sortingLayers) | 0 | Range step 1. |
material | Asset<material> | none | |
simulationSpace | enum | World | One of World, Local. |
enabled | boolean | true | |
subEmitterTrigger | enum | Death | One of Death, Birth. |
subEmitterChance | number | 1 | Range 0–1. |
subEmitterInheritVelocity | number | 0 | Range 0–1. |
subEmitter | Entity | none | |
trailEnabled | boolean | false | |
trailWidth | number | 8 | Range ≥ 0. |
trailPoints | number | 6 | Range 2–12, step 1. |
trailMinDistance | number | 6 | Range ≥ 0. |
collisionEnabled | boolean | false | |
collisionFloor | number | 0 | |
collisionBounce | number | 0.5 | Range 0–1. |
collisionFriction | number | 0.1 | Range 0–1. |
collisionLifetimeLoss | number | 0 | Range 0–1. |
colorGradient | object | {"stops":[]} | |
sizeCurve | object | {"keys":[]} |
ParticleForceField
A field that pushes particles around — point, directional, vortex or drag.
Explained in world/particles.
| Field | Type | Default | Notes |
|---|---|---|---|
type | enum | Directional | One of Directional, Point, Vortex, Drag. |
strength | number | 200 | |
radius | number | 0 | Range ≥ 0. |
direction | Vec2 | (1, 0) | |
falloff | boolean | true | |
enabled | boolean | true |
Tilemap
A Tiled map asset projected into the scene; the engine derives one layer entity per map layer.
Explained in world/tilemaps.
| Field | Type | Default | Notes |
|---|---|---|---|
source | Asset<tilemap> | none |
TilemapLayer
One layer of tiles — its tileset, cell size, orientation, sorting and collision.
Explained in world/tilemaps.
| Field | Type | Default | Notes |
|---|---|---|---|
cellSize | Vec2 | (32, 32) | |
orientation | enum | Orthogonal | Grid layout: orthogonal, isometric, staggered, or hexagonal. One of Orthogonal, Isometric, Staggered, Hexagonal. |
hexSideLength | number | 0 | Hexagonal side length in px (0 = a regular pointy hex = tileHeight/2). Ignored unless orientation is Hexagonal. Range ≥ 0, step 1. |
staggerAxis | enum | Y | Stagger axis (staggered/hex): Y shifts rows, X shifts columns. One of Y, X. |
staggerIndex | enum | Odd | Which lines carry the half-cell shift (staggered/hex). One of Odd, Even. |
originOffset | Vec2 | (0, 0) | |
tileset | Asset<texture> | none | |
tilesetColumns | number | 1 | Range ≥ 1, step 1. |
renderLayer | enum (sortingLayers) | 0 | Range step 1. |
tintColor | Color | #ffffff | |
opacity | number | 1 | Layer transparency (0 = invisible, 1 = opaque). Range 0–1. |
parallaxFactor | Vec2 | (1, 1) | |
visible | boolean | true |