Skip to content

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.

FieldTypeDefaultNotes
typestringempty
propertiesobjectempty

ParticleEmitter

A particle system: emission, lifetime, shape, forces, noise, colour and size over life, sub-emitters and trails.

Explained in world/particles.

FieldTypeDefaultNotes
ratenumber10 Range ≥ 0.
burstCountnumber0 Range ≥ 0, step 1.
burstIntervalnumber1 Range ≥ 0.
durationnumber5 Range ≥ 0.
loopingbooleantrue
playOnStartbooleantrue
maxParticlesnumber1000 Range ≥ 1, step 1.
lifetimeMinnumber5 Range ≥ 0.
lifetimeMaxnumber5 Range ≥ 0.
shapeenumCone One of Point, Circle, Rectangle, Cone.
shapeRadiusnumber100 Range ≥ 0.
shapeSizeVec2(100, 100)
shapeAnglenumber25
speedMinnumber500
speedMaxnumber500
angleSpreadMinnumber0
angleSpreadMaxnumber360
startSizeMinnumber100 Range ≥ 0.
startSizeMaxnumber100 Range ≥ 0.
endSizeMinnumber100 Range ≥ 0.
endSizeMaxnumber100 Range ≥ 0.
sizeEasingenumLinear One of Linear, EaseIn, EaseOut, EaseInOut.
startColorColor#ffffff
endColorColor#ffffff00
colorEasingenumLinear One of Linear, EaseIn, EaseOut, EaseInOut.
rotationMinnumber0
rotationMaxnumber0
angularVelocityMinnumber0
angularVelocityMaxnumber0
gravityVec2(0, 0)
dampingnumber0 Range ≥ 0.
noiseStrengthnumber0 Range ≥ 0.
noiseFrequencynumber0.01 Range ≥ 0.
noiseScrollSpeednumber0
noiseOctavesnumber1 Range 1–8, step 1.
textureAsset<texture>none
spriteColumnsnumber1 Range ≥ 1, step 1.
spriteRowsnumber1 Range ≥ 1, step 1.
spriteFPSnumber10 Range ≥ 0.
spriteLoopbooleantrue
blendModeenumAdditive One of Normal, Additive, Multiply, Screen, PremultipliedAlpha, PmaAdditive, Lighten, Darken, Overlay, None.
layerenum (sortingLayers)0 Range step 1.
materialAsset<material>none
simulationSpaceenumWorld One of World, Local.
enabledbooleantrue
subEmitterTriggerenumDeath One of Death, Birth.
subEmitterChancenumber1 Range 0–1.
subEmitterInheritVelocitynumber0 Range 0–1.
subEmitterEntitynone
trailEnabledbooleanfalse
trailWidthnumber8 Range ≥ 0.
trailPointsnumber6 Range 2–12, step 1.
trailMinDistancenumber6 Range ≥ 0.
collisionEnabledbooleanfalse
collisionFloornumber0
collisionBouncenumber0.5 Range 0–1.
collisionFrictionnumber0.1 Range 0–1.
collisionLifetimeLossnumber0 Range 0–1.
colorGradientobject{"stops":[]}
sizeCurveobject{"keys":[]}

ParticleForceField

A field that pushes particles around — point, directional, vortex or drag.

Explained in world/particles.

FieldTypeDefaultNotes
typeenumDirectional One of Directional, Point, Vortex, Drag.
strengthnumber200
radiusnumber0 Range ≥ 0.
directionVec2(1, 0)
falloffbooleantrue
enabledbooleantrue

Tilemap

A Tiled map asset projected into the scene; the engine derives one layer entity per map layer.

Explained in world/tilemaps.

FieldTypeDefaultNotes
sourceAsset<tilemap>none

TilemapLayer

One layer of tiles — its tileset, cell size, orientation, sorting and collision.

Explained in world/tilemaps.

FieldTypeDefaultNotes
cellSizeVec2(32, 32)
orientationenumOrthogonalGrid layout: orthogonal, isometric, staggered, or hexagonal. One of Orthogonal, Isometric, Staggered, Hexagonal.
hexSideLengthnumber0Hexagonal side length in px (0 = a regular pointy hex = tileHeight/2). Ignored unless orientation is Hexagonal. Range ≥ 0, step 1.
staggerAxisenumYStagger axis (staggered/hex): Y shifts rows, X shifts columns. One of Y, X.
staggerIndexenumOddWhich lines carry the half-cell shift (staggered/hex). One of Odd, Even.
originOffsetVec2(0, 0)
tilesetAsset<texture>none
tilesetColumnsnumber1 Range ≥ 1, step 1.
renderLayerenum (sortingLayers)0 Range step 1.
tintColorColor#ffffff
opacitynumber1Layer transparency (0 = invisible, 1 = opaque). Range 0–1.
parallaxFactorVec2(1, 1)
visiblebooleantrue