File formats·skills/ignifx/references/formats/components.md
components
Animator (ignifx/Animator)#
| Field | Kind | Default | Description |
|---|---|---|---|
animator | asset | null | The .animator.json document this state machine runs. |
defaultLayer | str | "" | The layer play() and currentState() use when given no name. |
speed | f32 | 1 | A multiplier on every state's own rate. |
updateWhenPaused | bool | false | Whether the animator keeps advancing while app.pause() holds. |
applyOnAwake | bool | true | Whether the first pose is written before the first update. |
AudioListener (ignifx/AudioListener)#
The ears spatial audio is heard from; usually on the main camera entity.
| Field | Kind | Default | Description |
|---|
AudioSource (ignifx/AudioSource)#
A sound attached to an entity: which clip, which bus, how loud, how many at once, and how it behaves in 3D.
| Field | Kind | Default | Description |
|---|---|---|---|
clip | asset | null | The sound to play. |
bus | str | "SFX" | Which mixer bus this source routes into. |
volume | f32 | 1 | The sound's own linear gain. |
pitch | f32 | 1 | Playback rate; takes effect on the next play(). |
loop | bool | false | Whether instances repeat instead of ending. |
playOnAwake | bool | false | Play once as soon as the entity comes alive. |
maxInstances | i32 | 8 | How many may sound at once; the oldest is stolen. |
spatial | bool | false | Position the sound in 3D instead of in the stereo field. |
minDistance | f32 | 1 | Distance below which no attenuation is applied. |
maxDistance | f32 | 50 | Maximum distance, used by the linear model. |
rolloff | f32 | 1 | How steeply the sound falls off with distance. |
distanceModel | enum | "inverse" | Which attenuation curve to use. |
cone | record | {"innerAngle":360,"outerAngle":360,"outerVolume":0} | Directionality of a spatial source; 360/360 is omnidirectional. |
pan | f32 | 0 | Stereo pan of a non-spatial source. |
Billboard (ignifx/Billboard)#
| Field | Kind | Default | Description |
|---|---|---|---|
mode | enum | "full" | Whether the billboard is free or locked upright. |
faceCameraPlane | bool | false | Whether to align with the view plane rather than aim at the eye. |
BoxCollider (ignifx/BoxCollider)#
A box collision shape, sized in local units and scaled by the entity.
| Field | Kind | Default | Description |
|---|---|---|---|
center | vec3 | [0,0,0] | |
isTrigger | bool | false | |
material | asset | null | |
inlineMaterial | optional | null | |
layerOverride | str | "" | |
size | vec3 | [1,1,1] |
BoxCollider2D (ignifx/BoxCollider2D)#
An axis-aligned box, sized in local metres and scaled by the entity.
| Field | Kind | Default | Description |
|---|---|---|---|
offset | vec2 | [0,0] | |
isTrigger | bool | false | |
material | asset | null | |
inlineMaterial | optional | null | |
frictionCombine | enum | "average" | |
restitutionCombine | enum | "average" | |
oneWay | bool | false | |
layerOverride | str | "" | |
size | vec2 | [1,1] |
Camera (ignifx/Camera)#
The camera an entity renders the world through; the entity's transform is the view.
| Field | Kind | Default | Description |
|---|---|---|---|
projection | enum | "perspective" | Perspective, or a flat orthographic view. |
fov | f32 | 60 | Vertical field of view, in degrees. |
orthographicSize | f32 | 5 | Half the visible height, in metres. |
near | f32 | 0.1 | Near clip plane, in metres. |
far | f32 | 1000 | Far clip plane, in metres. |
viewport | record | {"x":0,"y":0,"width":1,"height":1} | Normalized viewport; y is measured from the bottom. |
clearColor | optional | null | Overrides the scene clear colour while this camera renders. |
priority | i32 | 0 | The enabled camera with the highest priority renders. |
Camera2D (ignifx/Camera2D)#
The 2D camera: orthographic size in metres, pixel-perfect snapping, bounds, and follow fields.
| Field | Kind | Default | Description |
|---|---|---|---|
orthographicSize | f32 | 5 | Half the viewport height, in metres. |
pixelPerfect | bool | false | Snap zoom to an integer and positions to whole pixels. |
referenceResolution | vec2 | [640,360] | The design resolution a pixel-perfect camera fits an integer zoom to. |
boundsMin | optional | null | The lower bound of the camera's travel, in metres. |
boundsMax | optional | null | The upper bound of the camera's travel, in metres. |
follow | entityRef | null | The entity Camera2DFollow tracks. |
followDamping | f32 | 0.15 | Seconds the follow takes to catch up; 0 is rigid. |
followOffset | vec2 | [0,0] | A constant offset added to the followed position. |
deadZone | vec2 | [0,0] | Half-size of the rectangle the target moves in freely. |
priority | i32 | 0 | Highest enabled camera wins. |
CapsuleCollider (ignifx/CapsuleCollider)#
A capsule collision shape standing along X, Y, or Z.
| Field | Kind | Default | Description |
|---|---|---|---|
center | vec3 | [0,0,0] | |
isTrigger | bool | false | |
material | asset | null | |
inlineMaterial | optional | null | |
layerOverride | str | "" | |
radius | f32 | 0.5 | |
height | f32 | 2 | |
direction | enum | "y" |
CapsuleCollider2D (ignifx/CapsuleCollider2D)#
A capsule standing along X or Y.
| Field | Kind | Default | Description |
|---|---|---|---|
offset | vec2 | [0,0] | |
isTrigger | bool | false | |
material | asset | null | |
inlineMaterial | optional | null | |
frictionCombine | enum | "average" | |
restitutionCombine | enum | "average" | |
oneWay | bool | false | |
layerOverride | str | "" | |
radius | f32 | 0.25 | |
height | f32 | 1 | |
direction | enum | "y" |
CharacterController (ignifx/CharacterController)#
A kinematic capsule with collide-and-slide, support detection, and body pushing.
| Field | Kind | Default | Description |
|---|---|---|---|
radius | f32 | 0.4 | |
height | f32 | 1.8 | |
center | vec3 | [0,0,0] | |
slopeLimit | f32 | 45 | |
skinWidth | f32 | 0.05 | |
pushStrength | f32 | 1 | |
interpolation | enum | "interpolate" |
CharacterController2D (ignifx/CharacterController2D)#
A kinematic character with collide-and-slide, slopes, autostep, and snap-to-ground.
| Field | Kind | Default | Description |
|---|---|---|---|
shape | enum | "capsule" | |
radius | f32 | 0.25 | |
height | f32 | 1 | |
offset | vec2 | [0,0] | |
slopeLimit | f32 | 45 | |
stepOffset | f32 | 0 | |
snapToGround | f32 | 0 | |
skinWidth | f32 | 0.01 | |
onOneWayPlatforms | bool | true | |
pushBodies | bool | false | |
interpolation | enum | "interpolate" |
CircleCollider2D (ignifx/CircleCollider2D)#
A circle; the larger scale axis wins.
| Field | Kind | Default | Description |
|---|---|---|---|
offset | vec2 | [0,0] | |
isTrigger | bool | false | |
material | asset | null | |
inlineMaterial | optional | null | |
frictionCombine | enum | "average" | |
restitutionCombine | enum | "average" | |
oneWay | bool | false | |
layerOverride | str | "" | |
radius | f32 | 0.5 |
CylinderCollider (ignifx/CylinderCollider)#
A cylinder collision shape standing along Y.
| Field | Kind | Default | Description |
|---|---|---|---|
center | vec3 | [0,0,0] | |
isTrigger | bool | false | |
material | asset | null | |
inlineMaterial | optional | null | |
layerOverride | str | "" | |
radius | f32 | 0.5 | |
height | f32 | 2 |
EdgeCollider2D (ignifx/EdgeCollider2D)#
An open chain of line segments — a platformer's ground contour.
| Field | Kind | Default | Description |
|---|---|---|---|
offset | vec2 | [0,0] | |
isTrigger | bool | false | |
material | asset | null | |
inlineMaterial | optional | null | |
frictionCombine | enum | "average" | |
restitutionCombine | enum | "average" | |
oneWay | bool | false | |
layerOverride | str | "" | |
points | array | [] |
Environment (ignifx/Environment)#
The world's image-based lighting, skybox, fog, image processing, and clear colour.
| Field | Kind | Default | Description |
|---|---|---|---|
environment | asset | null | The .env image-based lighting to install. |
rotation | f32 | 0 | Rotation of the environment around world Y, in degrees. |
blur | f32 | 0 | How blurred the specular reflection is. |
skybox | record | {"enabled":true,"size":20} | The background the environment draws. |
fog | record | {"mode":"none","color":[0.784314,0.784314,0.784314,1],"density":0.01,"start":10,"end":100} | Distance fog. |
imageProcessing | record | {"exposure":1,"contrast":1,"toneMapping":"none"} | Exposure, contrast, and tone mapping. Recompiles PBR pipelines when it changes. |
clearColor | color | [0,0,0,1] | The colour the scene is cleared to, in sRGB. |
First person controller (ignifx/FirstPersonController)#
| Field | Kind | Default | Description |
|---|---|---|---|
cameraPivot | entityRef | null | The child entity that pitches; usually the camera's entity. |
moveAction | str | "Move" | The vector2 action that walks. |
lookAction | str | "Look" | The vector2 action that looks around. |
jumpAction | str | "Jump" | The button action that jumps. |
sprintAction | str | "Sprint" | The button action that sprints. |
crouchAction | str | "Crouch" | The button action that crouches. |
sensitivity | f32 | 0.15 | Degrees of rotation per unit of look input. |
invertY | bool | false | Whether looking up needs the stick pushed down. |
walkSpeed | f32 | 4 | Ground speed, in m/s. |
sprintSpeed | f32 | 7 | Ground speed while sprinting, in m/s. |
crouchSpeed | f32 | 1.8 | Ground speed while crouched, in m/s. |
standHeight | f32 | 1.8 | The controller height while standing, in metres. |
crouchHeight | f32 | 1 | The controller height while crouched, in metres. |
gravity | f32 | 20 | Downward acceleration, in m/s squared. |
jumpHeight | f32 | 1.1 | How high a jump reaches, in metres. |
coyoteTime | f32 | 0.1 | How long a jump stays legal after leaving the ground. |
jumpBufferTime | f32 | 0.1 | How long an early jump press is remembered. |
airControl | f32 | 0.5 | How much of the ground speed applies mid-air. |
lockPointerOnClick | bool | true | Whether the first click requests pointer lock. |
headBobAmplitude | f32 | 0 | How far the head bobs while walking, in metres; 0 disables it. |
headBobFrequency | f32 | 1.8 | Head bobs per metre travelled. |
sprintFovKick | f32 | 0 | Extra vertical FOV while sprinting, in degrees; 0 disables it. |
HeightfieldCollider (ignifx/HeightfieldCollider)#
A terrain collision shape built from a regular grid of height samples.
| Field | Kind | Default | Description |
|---|---|---|---|
center | vec3 | [0,0,0] | |
isTrigger | bool | false | |
material | asset | null | |
inlineMaterial | optional | null | |
layerOverride | str | "" | |
heights | array | [] | |
samplesX | u32 | 2 | |
samplesZ | u32 | 2 | |
size | vec3 | [1,1,1] |
HudText (ignifx/HudText)#
Pixel-space text drawn by Babylon Lite, anchored to a corner of the render target.
| Field | Kind | Default | Description |
|---|---|---|---|
font | asset | null | The TTF or OTF the glyphs come from. |
text | str | "" | The literal string to draw; ignored when i18nKey is set. |
i18nKey | str | "" | A translation key looked up in app.i18n; wins over text. |
fontSize | f32 | 32 | The em size, in render-target pixels. |
color | color | [1,1,1,1] | The colour every glyph starts with. |
align | enum | "left" | Which edge the lines align to. |
maxWidth | f32 | 0 | The wrap width in pixels; 0 does not wrap. |
lineHeight | f32 | 1.2 | The line-height multiplier. |
opacity | f32 | 1 | The whole-block alpha multiplier. |
anchor | enum | "topLeft" | Which corner of the screen the position is measured from. |
position | vec2 | [0,0] | The offset from the anchor, in render-target pixels. |
order | i32 | 0 | Sort order within the text renderer; lower draws first. |
Light (ignifx/Light)#
A directional, point, spot, or hemispheric light, with optional shadow casting.
| Field | Kind | Default | Description |
|---|---|---|---|
type | enum | "directional" | Which kind of light this is. |
color | color | [1,1,1,1] | The light's sRGB colour. |
intensity | f32 | 1 | How bright the light is. |
range | f32 | 10 | Distance at which a point or spot light reaches zero. |
spotAngle | f32 | 45 | A spot light's full cone angle, in degrees. |
spotExponent | f32 | 2 | A spot light's falloff exponent; higher is sharper. |
groundColor | color | [0,0,0,1] | A hemispheric light's sRGB colour from below. |
shadows | record | {"enabled":false,"technique":"pcf","mapSize":1024,"bias":0.00005,"normalBias":0,"darkness":0,"cascades":4,"maxDistance":0} | Shadow casting; point and hemispheric lights cannot cast (IGX-0703). |
includeOnly | array | [] | Light only these entities' renderers. |
exclude | array | [] | Never light these entities' renderers. |
LOD group (ignifx/LodGroup)#
| Field | Kind | Default | Description |
|---|---|---|---|
levels | array | [] | The levels, nearest first. |
hysteresis | f32 | 0.1 | How far past a threshold a switch waits, as a fraction. |
MeshCollider (ignifx/MeshCollider)#
A triangle-mesh or convex-hull shape built from real geometry; needs a GPU app.
| Field | Kind | Default | Description |
|---|---|---|---|
center | vec3 | [0,0,0] | |
isTrigger | bool | false | |
material | asset | null | |
inlineMaterial | optional | null | |
layerOverride | str | "" | |
mesh | asset | null | |
convex | bool | false | |
includeChildren | bool | true |
MeshRenderer (ignifx/MeshRenderer)#
Draws one clone of a mesh asset with a material.
| Field | Kind | Default | Description |
|---|---|---|---|
mesh | asset | null | The geometry template to clone. |
materials | array | [] | One per submesh; empty uses the default material. |
castShadows | bool | true | Whether this mesh is rendered into shadow maps. |
receiveShadows | bool | true | Whether shadow maps darken this mesh. |
renderOrder | i32 | 0 | Sort key within the opaque or transparent phase; lower draws first. |
pickable | bool | true | Whether picking considers this mesh at all. |
Model (ignifx/Model)#
One instance of a loaded glTF, cloned under the entity's node.
| Field | Kind | Default | Description |
|---|---|---|---|
model | asset | null | The glTF template to instantiate. |
materialOverrides | map | {} | Replaces a glTF material, by its name. |
castShadows | bool | true | Whether the instance is rendered into shadow maps. |
receiveShadows | bool | true | Whether shadow maps darken the instance. |
pickable | bool | true | Whether picking considers the instance at all. |
MusicPlayer (ignifx/MusicPlayer)#
A playlist of music tracks with crossfading, routed to the Music bus.
| Field | Kind | Default | Description |
|---|---|---|---|
playlist | array | [] | The tracks, in the order they are played. |
bus | str | "Music" | Which mixer bus the music routes into. |
volume | f32 | 1 | The gain a track fades up to. |
playOnAwake | bool | false | Start the first playlist entry as soon as the entity is alive. |
autoAdvance | bool | true | Crossfade to the next track when one ends. |
loopPlaylist | bool | true | Wrap to the first track after the last one. |
loopTrack | bool | false | Repeat the current track instead of ending it. |
crossfadeSeconds | f32 | 1.5 | How long a crossfade takes, in seconds. |
Nav mesh agent (ignifx/NavMeshAgent)#
| Field | Kind | Default | Description |
|---|---|---|---|
surface | entityRef | null | The entity carrying the NavMeshSurface to join; the first baked one when unset. |
speed | f32 | 3.5 | The agent's top speed, in metres per second. |
acceleration | f32 | 8 | How hard the agent accelerates, in metres per second squared. |
radius | f32 | 0.5 | The agent's radius, in metres. |
height | f32 | 2 | The agent's height, in metres. |
stoppingDistance | f32 | 0.25 | How close counts as arrived, in metres. |
separationWeight | f32 | 0 | How hard agents push apart; 0 disables separation. |
updateRotation | bool | true | Whether the agent turns the entity to face the way it is moving. |
updatePosition | bool | true | Whether the crowd's position is written onto the transform. |
Nav mesh obstacle (ignifx/NavMeshObstacle)#
| Field | Kind | Default | Description |
|---|---|---|---|
surface | entityRef | null | The entity carrying the NavMeshSurface to cut; the first baked one when unset. |
shape | enum | "box" | Whether the hole is a box or a cylinder. |
size | vec3 | [1,2,1] | The box's full size, in metres. |
radius | f32 | 0.5 | The cylinder's radius, in metres. |
height | f32 | 2 | The cylinder's height, in metres. |
Nav mesh surface (ignifx/NavMeshSurface)#
| Field | Kind | Default | Description |
|---|---|---|---|
layers | layerMask | [] | Which layers' MeshRenderers are baked; empty means every layer. |
bakeOnAwake | bool | true | Whether the surface bakes itself as soon as it is enabled. |
cellSize | f32 | 0.2 | Recast voxel width, in metres. |
cellHeight | f32 | 0.2 | Recast voxel height, in metres. |
walkableSlopeAngle | f32 | 45 | The steepest walkable slope, in degrees. |
agentHeight | f32 | 2 | The headroom an agent needs, in metres. |
agentRadius | f32 | 0.5 | How far agents stay from a wall, in metres. |
agentClimb | f32 | 0.4 | The tallest step an agent walks up, in metres. |
maxEdgeLength | f32 | 12 | The longest contour edge, in voxels. |
maxSimplificationError | f32 | 1.3 | How far a simplified edge may stray, in voxels. |
minRegionArea | f32 | 8 | Regions smaller than this are discarded, in voxels squared. |
mergeRegionArea | f32 | 20 | Regions smaller than this are merged, in voxels squared. |
maxVertsPerPoly | u32 | 6 | The largest navmesh polygon, in vertices. |
detailSampleDistance | f32 | 6 | Detail-mesh sampling distance, in voxels. |
detailSampleMaxError | f32 | 1 | Detail-mesh vertical error, in voxels. |
tileSize | u32 | 0 | Tile size in voxels; 32-64 when maxObstacles is above zero. |
maxObstacles | u32 | 0 | How many NavMeshObstacles fit; above zero builds a tile cache. |
maxAgents | u32 | 64 | How many NavMeshAgents this surface's crowd holds. |
maxAgentRadius | f32 | 1 | The largest agent radius the crowd will see, in metres. |
randomSeed | u32 | 0 | The seed Recast's randomized queries use, so paths are reproducible. |
prebaked | str | "" | A .navmesh.bin address; unsupported by the pinned Babylon Lite. |
ParallaxLayer (ignifx/ParallaxLayer)#
Scrolls one sorting layer at a fraction of the camera's speed.
| Field | Kind | Default | Description |
|---|---|---|---|
sortingLayer | str | "Default" | Which sorting layer scrolls slowly. |
factor | vec2 | [0.5,1] | Fraction of the camera's motion the layer follows. |
repeatX | bool | false | Tile the layer horizontally across the camera's view. |
repeatY | bool | false | Tile the layer vertically. |
repeatWidth | f32 | 0 | World width of one repetition, in metres. |
repeatHeight | f32 | 0 | World height of one repetition, in metres. |
Platform mover (ignifx/PlatformMover)#
| Field | Kind | Default | Description |
|---|---|---|---|
offset | vec3 | [0,0,6] | How far the platform travels from where it started. |
duration | f32 | 4 | How long one leg of the trip takes, in seconds. |
waitSeconds | f32 | 0.5 | How long the platform pauses at each end. |
carryRiders | bool | true | Whether characters standing on the platform ride it. |
PlayerInput (ignifx/PlayerInput)#
Binds an entity to an input actions document and one device slot, for local multiplayer.
| Field | Kind | Default | Description |
|---|---|---|---|
actions | asset | null | |
deviceSlot | i32 | 0 | |
scheme | str | "" |
PolygonCollider2D (ignifx/PolygonCollider2D)#
The convex hull of a point list, in local metres.
| Field | Kind | Default | Description |
|---|---|---|---|
offset | vec2 | [0,0] | |
isTrigger | bool | false | |
material | asset | null | |
inlineMaterial | optional | null | |
frictionCombine | enum | "average" | |
restitutionCombine | enum | "average" | |
oneWay | bool | false | |
layerOverride | str | "" | |
points | array | [] |
PostProcessStack (ignifx/PostProcessStack)#
Bloom, SMAA, and image processing, inserted into the scene's frame graph.
| Field | Kind | Default | Description |
|---|---|---|---|
bloom | record | {"enabled":false,"order":0,"weight":0.15,"kernel":64,"threshold":0.9,"exposure":1,"scale":0.5} | Bloom. |
smaa | record | {"enabled":false,"order":1,"threshold":0.05,"maxSearchSteps":16,"diagonalDetection":false,"cornerDetection":false} | SMAA anti-aliasing. Needs a single-sample source. |
imageProcessing | record | {"enabled":false,"order":2} | Exposure, contrast, and tone mapping as a pass — the alternative to Environment. |
Projectile (ignifx/Projectile)#
| Field | Kind | Default | Description |
|---|---|---|---|
speed | f32 | 30 | How fast the projectile leaves the muzzle, in m/s. |
gravityScale | f32 | 1 | How much gravity the projectile feels; 0 flies straight. |
lifetimeSeconds | f32 | 5 | How long the projectile lives before destroying itself. |
destroyOnHit | bool | true | Whether the projectile destroys itself on its first contact. |
owner | entityRef | null | The entity that fired it, so it does not hit its own shooter. |
Rigidbody (ignifx/Rigidbody)#
Makes an entity's colliders a dynamic, kinematic, or static Havok body.
| Field | Kind | Default | Description |
|---|---|---|---|
bodyType | enum | "dynamic" | |
mass | f32 | 1 | |
startAsleep | bool | false | |
freezeRotation | record | {"x":false,"y":false,"z":false} | |
interpolation | enum | "interpolate" | |
collisionEvents | enum | "auto" | |
kinematicSync | enum | "teleport" |
Rigidbody2D (ignifx/Rigidbody2D)#
Makes an entity's 2D colliders a dynamic, kinematic, or static Rapier body.
| Field | Kind | Default | Description |
|---|---|---|---|
bodyType | enum | "dynamic" | |
mass | f32 | 1 | |
gravityScale | f32 | 1 | |
linearDamping | f32 | 0 | |
angularDamping | f32 | 0.05 | |
freezeRotation | bool | false | |
interpolation | enum | "interpolate" | |
collisionEvents | enum | "auto" |
Rigidbody mover (ignifx/RigidbodyMover)#
| Field | Kind | Default | Description |
|---|---|---|---|
moveAction | str | "Move" | The vector2 action that steers. |
force | f32 | 40 | How hard the body is pushed, in newtons. |
maxSpeed | f32 | 12 | The horizontal speed the mover stops adding force at. |
cameraRelative | bool | true | Whether the stick is read relative to the main camera. |
torqueSteering | bool | false | Whether the stick's X steers by torque rather than by force. |
SphereCollider (ignifx/SphereCollider)#
A sphere collision shape; the largest scale axis wins.
| Field | Kind | Default | Description |
|---|---|---|---|
center | vec3 | [0,0,0] | |
isTrigger | bool | false | |
material | asset | null | |
inlineMaterial | optional | null | |
layerOverride | str | "" | |
radius | f32 | 0.5 |
SpriteAnimator (ignifx/SpriteAnimator)#
Plays a clip of atlas frames on ignifx's clock, respecting timeScale and pause.
| Field | Kind | Default | Description |
|---|---|---|---|
animations | asset | null | The .spriteanim.json document holding the clips. |
defaultClip | str | "" | Which clip to start on; empty plays the document's first. |
playOnAwake | bool | true | Start the default clip as soon as the document has loaded. |
speed | f32 | 1 | A multiplier on each clip's own frame rate. |
SpriteLayerEffect (ignifx/SpriteLayerEffect)#
A per-layer WGSL fragment effect with an fx.params vec4.
| Field | Kind | Default | Description |
|---|---|---|---|
sortingLayer | str | "Default" | Which sorting layer the effect applies to. |
kind | enum | "tint" | Which shader to install. |
tint | color | [1,1,1,1] | The colour the tint effect multiplies by. |
params | vec4 | [0,0,0,0] | The fx.params vec4 a custom shader reads. |
shader | str | "" | The WGSL fragment body a custom effect installs. |
SpriteRenderer (ignifx/SpriteRenderer)#
One sprite drawn from one frame of one atlas, on one sorting layer.
| Field | Kind | Default | Description |
|---|---|---|---|
sprite | asset | null | The atlas this sprite draws a frame of. |
color | color | [1,1,1,1] | Tint multiplied into every texel. |
flipX | bool | false | Mirror horizontally. |
flipY | bool | false | Mirror vertically. |
sortingLayer | str | "Default" | Which sorting layer the sprite draws on. |
orderInLayer | i32 | 0 | Sub-order within the sorting layer; higher draws in front. |
blend | enum | "alpha" | How the colour combines with the background. |
pivotOverride | optional | null | Overrides the frame's own pivot, in [0,1] of the frame. |
screenSpace | bool | false | Keep the identity view instead of following the Camera2D. |
pickable | bool | true | Whether app.twoD.pickAt considers this sprite. |
Third person camera (ignifx/ThirdPersonCamera)#
| Field | Kind | Default | Description |
|---|---|---|---|
target | entityRef | null | The entity the camera orbits. |
lookAction | str | "Look" | The vector2 action that orbits the camera. |
distance | f32 | 4.5 | How far behind the target the camera sits, in metres. |
minPitch | f32 | -30 | The lowest pitch, in degrees. |
maxPitch | f32 | 60 | The highest pitch, in degrees. |
sensitivity | f32 | 0.2 | Degrees of orbit per unit of look input. |
damping | f32 | 0.08 | The follow time constant, in seconds; 0 snaps. |
shoulderOffset | vec3 | [0.5,1.5,0] | The pivot offset from the target, in its own space. |
invertY | bool | false | Whether looking up needs the stick pushed down. |
collisionEnabled | bool | true | Whether the boom is shortened by geometry in the way. |
collisionRadius | f32 | 0.25 | The radius of the sphere swept along the boom. |
collisionLayers | layerMask | [] | Which layers block the camera; empty means every layer. |
collisionRecoverySpeed | f32 | 6 | How fast the boom eases back out, in m/s. |
Third person controller (ignifx/ThirdPersonController)#
| Field | Kind | Default | Description |
|---|---|---|---|
moveAction | str | "Move" | The vector2 action that steers the character. |
jumpAction | str | "Jump" | The button action that jumps. |
sprintAction | str | "Sprint" | The button action that sprints. |
walkSpeed | f32 | 4 | Ground speed with the stick fully pressed, in m/s. |
sprintSpeed | f32 | 7 | Ground speed while sprinting, in m/s. |
turnSpeed | f32 | 720 | How fast the character faces its direction, in deg/s. |
gravity | f32 | 20 | Downward acceleration, in m/s squared. |
jumpHeight | f32 | 1.2 | How high a jump reaches, in metres. |
coyoteTime | f32 | 0.12 | How long a jump stays legal after leaving the ground. |
jumpBufferTime | f32 | 0.12 | How long an early jump press is remembered. |
airControl | f32 | 0.4 | How much of the ground speed applies mid-air. |
stepHeight | f32 | 0 | The tallest step the probe lifts over; 0 disables it. |
slideSpeed | f32 | 6 | How fast the character slides down a too-steep slope. |
rotateToMovement | bool | true | Whether the entity turns to face the way it is moving. |
3D settings (ignifx/threeD-settings)#
The threeD project settings section.
| Field | Kind | Default | Description |
|---|---|---|---|
navigationSeed | u32 | 1337 | The seed Recast's randomized queries start from. |
navigationWasmUrl | str | "" | Where the Recast wasm is served from; empty uses Lite's inlined copy. |
autoBakeNavMesh | bool | true | Whether a NavMeshSurface bakes itself when the world loads. |
Tilemap (ignifx/Tilemap)#
A grid of tile ids with cell arithmetic and merged collision geometry.
| Field | Kind | Default | Description |
|---|---|---|---|
map | asset | null | The .tilemap.json document. |
chunkSize | u32 | 32 | How many cells one render and collision chunk spans. |
cellSizeOverride | f32 | 0 | Metres per cell, overriding the document's own; 0 uses it. |
TilemapCollider2D (ignifx/TilemapCollider2D)#
The merged collision surface of a Tilemap, rebuilt when its tiles change.
| Field | Kind | Default | Description |
|---|---|---|---|
offset | vec2 | [0,0] | |
isTrigger | bool | false | |
material | asset | null | |
inlineMaterial | optional | null | |
frictionCombine | enum | "average" | |
restitutionCombine | enum | "average" | |
oneWay | bool | false | |
layerOverride | str | "" |
TilemapRenderer (ignifx/TilemapRenderer)#
Draws a Tilemap's cells as sprites, materialising only the chunks the camera sees.
| Field | Kind | Default | Description |
|---|---|---|---|
atlas | asset | null | The atlas the tile frames come from. |
sortingLayer | str | "Default" | Sorting layer used when a map layer names none. |
cullChunks | bool | true | Drop chunks outside the camera's visible bounds. |
WorldAnchor (ignifx/WorldAnchor)#
Keeps a DOM element at an entity's screen position, with clamping and distance scaling.
| Field | Kind | Default | Description |
|---|---|---|---|
offset | vec3 | [0,0,0] | A world-space offset added before projecting, in metres. |
hideWhenBehindCamera | bool | true | Hide the element when the anchor is behind the camera. |
clampToScreen | bool | false | Keep the element inside the overlay instead of hiding it. |
scaleWithDistance | bool | false | Shrink the element as the anchor gets further away. |
referenceDistance | f32 | 10 | The distance at which the scale is 1, in metres. |
minScale | f32 | 0.25 | The smallest scale distance scaling may produce. |
maxScale | f32 | 2 | The largest scale distance scaling may produce. |
WorldText (ignifx/WorldText)#
3D text in the render scene: signs and banners, optionally billboarded.
| Field | Kind | Default | Description |
|---|---|---|---|
font | asset | null | The TTF or OTF the glyphs come from. |
text | str | "" | The literal string to draw; ignored when i18nKey is set. |
i18nKey | str | "" | A translation key looked up in app.i18n; wins over text. |
fontSize | f32 | 32 | The em size, in render-target pixels. |
color | color | [1,1,1,1] | The colour every glyph starts with. |
align | enum | "left" | Which edge the lines align to. |
maxWidth | f32 | 0 | The wrap width in pixels; 0 does not wrap. |
lineHeight | f32 | 1.2 | The line-height multiplier. |
opacity | f32 | 1 | The whole-block alpha multiplier. |
offset | vec3 | [0,0,0] | A local offset added to the entity's position, in metres. |
pixelsPerUnit | f32 | 100 | How many pixels of laid-out text span one metre. |
billboard | bool | false | Turn the text to face the camera. |
alwaysOnTop | bool | false | Draw through geometry in front of the text. |
WorldText2D (ignifx/WorldText2D)#
Pixel-space text placed at an entity's projected position: damage numbers and name tags.
| Field | Kind | Default | Description |
|---|---|---|---|
font | asset | null | The TTF or OTF the glyphs come from. |
text | str | "" | The literal string to draw; ignored when i18nKey is set. |
i18nKey | str | "" | A translation key looked up in app.i18n; wins over text. |
fontSize | f32 | 32 | The em size, in render-target pixels. |
color | color | [1,1,1,1] | The colour every glyph starts with. |
align | enum | "left" | Which edge the lines align to. |
maxWidth | f32 | 0 | The wrap width in pixels; 0 does not wrap. |
lineHeight | f32 | 1.2 | The line-height multiplier. |
opacity | f32 | 1 | The whole-block alpha multiplier. |
offset | vec3 | [0,0,0] | A world-space offset added before projecting, in metres. |
screenOffset | vec2 | [0,0] | A screen-space offset added after projecting, in pixels. |
pivot | enum | "center" | Which point of the block sits on the projected position. |
hideWhenBehindCamera | bool | true | Hide the label when the anchor is behind the camera. |
order | i32 | 0 | Sort order within the text renderer; lower draws first. |