Talos docs

Runtime codes

What a script is thrown, a query refuses with, or the log prints while a game runs or builds.

NameSummary
animator-ik-unknownthe animator declares no IK chain by that name, or the entity has no animator (AnimatorIkError)
animator-look-at-missingthe animator component declares no lookAt, or the entity has no animator (AnimatorLookAtError)
animator-loop-seama looping state plays a clip whose last frame is far from its first (or, in a clips state, one clip that does not meet the next), so the pose jumps at every wrap; printed once per asset and state when the animator is built, listed on GET /feel → loop_seams
animator-param-unknownthe animator declares no parameter by that name, or the entity has no animator (AnimatorParamError)
animator-play-invalida blend or blendOut time is negative or not a number (AnimatorPlayError)
animator-play-unknownplay named a state, or a then, the animator does not have (AnimatorPlayError)
animator-stride-ratea point of a stride-matched blend tree plays at more than 3x its clip's rate on its own at, or less than a third of it, because its clip's ground speed (measured from its feet or root, or its refSpeed) is far from where it sits; printed once per asset and point when the animator is built, listed on GET /feel → strides
animator-unknownset named a state the animator does not have, so nothing changed; printed once per entity and name, every call counted on GET /feel → animator_misses
at_capacity503: a bounded resource is full, so the request was refused rather than queued
audio-loops-stackedthree or more loops of one sound play at once with none placed in the world (ctx.audio.play(asset, { loop: true }) without at, or looping non-spatial audio components), so they add up in the centre to one sound up to 20·log10(n) dB louder that masks the rest of the mix: usually one loop per entity, such as every car's engine; said once per asset, against the behaviour (or the audio component's entity) that started the third
author-failedan authoring script (authoring/<name>.ts, run by behaviour.write with run) did not run to the end: it threw (with its line), a read it made was refused (outside the project, a dot-folder, node_modules, a link out, not text, over 16 MB), it ran past 10 s or 256 MB or made over 20,000 entities, or its default export is not a function; the scene is left as it was
bad_request400: the body or query parameters are wrong; the message quotes what was expected
behaviour-detacheda Behaviour instance's engine members were used on an instance the engine did not construct (new MyBehaviour() in a script)
behaviour-hook-unknowna class X extends Behaviour has a method Behaviour never calls — Awake, FixedUpdate, LateUpdate, OnTriggerStay, OnCollisionStay, OnCollisionExit, or an object-form hook such as update; thrown in init
behaviour-prop-unknowna class X extends Behaviour was given a script prop with no field of that name, so it would set nothing (thrown in init, which disables the behaviour); the message lists the fields
body.not-finitea ctx.body force, torque, impulse or point has a NaN or infinite component
body.space-invalida ctx.body push was given a space other than "world" or "local"
body.velocity-not-dynamicctx.body.velocity was assigned on a kinematic or static body, or through a handle kept past its body; only a dynamic body has a velocity of its own to set
build-not-readythe revision asked for has no Ready build
build-pipeline-runninga build pipeline already runs for this workspace
build-pipeline-stoppingthe build pipeline is stopping
build.asset-missinga file the scene names (an asset, or a texture its material file names) is not in this revision where it resolves; Play and export refuse the scene (content-incomplete), a bare argus run draws a placeholder. Also on a scene write (scene.patch and the other structural tools), checked on disk
build.asset-outside-projectan asset path leads outside the project, so no revision holds it
build.importa behaviour imports something the engine does not bundle (an npm package, a Node built-in, a file outside the project, a value from @argus/api); the message opens with script-import
build.infrastructurethe build could not read its own inputs
build.material-layer-missinga file a material file's layers need (a layer material named by path from the material's folder, or a texture that layer names from its own folder) is not in this revision; the layer is left out at run time (HD) rather than the scene refused. Also on a scene write, checked on disk
build.module-loada behaviour threw while its module was evaluated
build.module-not-founda scene names a script module with no .ts or .js file
build.module-outside-projecta script module path leads outside the project
build.module-unreadablea built-in module could not be read
build.not-publishedevery check passed, but publishing the build failed
build.sandboxa behaviour touches something the engine's sandbox does not provide (window, fetch, require, …)
build.scene-invalida scene breaks a contract rule; the message opens with the rule's code
build.scene-warninga scene triggers a contract warning; the message opens with the rule's code
build.shader-hd-partialan HD project's export packs a user shader that HD's G-buffer pass draws, with paths still on the fallback: the line names the shader and what is pending (the same words as the runtime code render.hd.user-shader-partial): per-entity floats, transmission, tonemap: off on unlit. A family HD cannot draw at all is not a warning: the export is refused (project-invalid) naming the material, the shader and why
build.shader-pass-not-exportedthe project contains a *.shader.wgsl with //! kind: pass; nothing in a project runs pass shaders yet, so the export leaves it out of the pack
build.shader-scene-prewarm-heavya scene's predicted shader pre-warm (pipeline count times the measured cost of one) is over 400 ms on the reference machine, so its load would hitch
build.startup-scene-missingthe project's startupScene is not in this revision
build.toolchain-unavailablethe TypeScript toolchain could not be found, so behaviours were not checked
build.transpilea behaviour does not compile (esbuild's error)
build.transpile-failedesbuild itself did not run to its end
build.typechecka behaviour has a TypeScript type error at the line and column given
build.typecheck-failedthe TypeScript checker itself did not run to its end
camera-fov-overrides-scenea script's ctx.camera.set(kind, { fov }) differs from the scene camera's fov, so the view is drawn at the script's number and the scene's is never seen; said once until ctx.camera.follow(null), with the scene camera as the entity
camera-probe-wider-than-bodyctx.camera.set's probeRadius is wider than the body the camera follows, so the arm sweeps the body's radius instead; said once per follow target, with the followed entity as the entity
capability_denied403: the session does not grant what the endpoint needs
component-absentthe entity has no component of that kind to read or write (ComponentWriteError)
component-field-typea field was given a value of the wrong type (a colour that is not #rrggbb or [r, g, b] in 0..1, …)
component-field-unknownthe component has no writable field by that name
component-not-writablethat component cannot be written at run time; entity.set takes material, light or mesh
data.recordctx.data.record(name, value) was given a name that is not 1 to 64 of A-Z, a-z, 0-9, _, -, ., or a value that is not a finite number, a boolean or a string of at most 256 characters; the call throws and nothing is recorded for that tick
entity-despawneda handle kept across frames names an entity that has since been despawned (DespawnedEntityError); from a per-tick hook it ends that call only and the behaviour keeps running (disabled: false), from init it disables the behaviour
entity.not-finiteentity.yaw was set to NaN or an infinite number (RangeError); the rotation is unchanged
entity.parent-cycleentity.setParent was given this entity or one of its descendants as the parent, which would make the hierarchy a loop (RangeError); nothing changed
entity.parent-despawnedentity.setParent was given a handle whose entity has been despawned (ReparentError); nothing changed
entity.parent-unknownentity.setParent was given a scene id no live entity has (ReparentError); nothing changed
files-bad-jsonreadJson was given a file that is not JSON; the message has the line and column
files-missingthe project has no file at that path, the path names a folder, or a segment's case differs from the file's
files-not-textthe file is not UTF-8 text
files-path-refusedthe path is not a file under the project's data/ folder: it is outside data/, climbs with .., is absolute, has a \ or an empty or . segment, or reaches outside the project through a symbolic link
files-too-largethe file is over 1 MiB, the most ctx.files reads
input-binding-aritythe wrong number of keys for the action's kind: a 2D axis takes four (up, left, down, right), a 1D axis two (negative, then positive), or alternate sets of them back to back
input-no-mapthis world has no action map, so there is nothing to rebind
input-read-without-routingA behaviour read ctx.input on an entity that has the handle (a controller or vehicle) but that player input is not routed to: input reaches one entity, the scene's spawn { "for": "player" } beside another component (else the first controller, else the first vehicle), so every action on this one reads false and every axis zero. Said once per entity per session, with the entity as the entity
input-unknown-actionthe live context binds no action by that name
input-unknown-bindinga bare token matched no device, or a pad:/mouse: name is not one
input-unknown-keya keys entry, or a key:-prefixed token, is not a key name
internal500: the engine failed while answering
joint.limits-invalidctx.joint.setLimits was given something other than [min, max] with both finite and min at most max, or null
joint.motor-invalidctx.joint.setMotor was given a target that is not finite, a maxForce, stiffness or damping that is negative or not finite, a mode other than velocity or position, or no maxForce for the joint's first motor
look-lut-path-emptya colour LUT was given with no path, so it was dropped
look-range-inverteda look range's minimum was above its maximum; the maximum was raised to it
look-value-not-finitea camera look value was NaN or infinite and its default was used
look-value-out-of-rangea camera look (post-processing) value was outside its range and was clamped
nav-bounds-required400 on GET /navmesh: the navmesh has more polygons than one answer carries
nav-bounds-too-large400 on GET /navmesh: more polygons fall inside the bounds than one answer carries
nav-undeclaredthe scene declares no navigation, so it has no navmesh to route on
not-newest-revisiona newer revision has been submitted, so this one is not built
not_found404: the named entity, frame or navmesh does not exist
null-handlea behaviour read ctx.animator, ctx.controller, ctx.nav or ctx.input on an entity that has no such component, so the handle was null
physics.buoyancy.force-refusedthe solver refused a buoyancy force on a body that should be dynamic (a non-finite force, or a body that stopped being dynamic); reported once per entity, and that body is not floating
physics.buoyancy.probe-capa buoyancy hull asked for more than 256 probes (an auto grid of resolution 7 or 8, or a longer authored probes list), so the engine used the largest grid under the cap or the first 256 probes
physics.layer-unknownan entity's layer (or a camera's layers, hideLayers or rig.collisionLayers) names a layer the project does not declare, and the scene has no table the layer-unknown rule could check it against (no project, no meta.layers) or the entity was spawned after the check; the entity is put on default. Reported once per name, on stderr and by World::layer_problems. As the layers option of ctx.world.raycast / shapeCast it is thrown as a RangeError and the cast is not made
physics.water.lake-capthe scene has more than 4 water components; only the 4 with the highest levels count (ties by priority, then scene order) and the rest are ignored
physics.water.river-capthe terrain's hydrology has more than 32 rivers or 256 k centreline points under waterways; the rivers with the smallest discharge are dropped (the log lists their ids) and bodies do not float on them
plant-bake-missinga recipe has no cooked meshes in the project's state folder, or its bake.json lists a mesh that is gone
plant-bake-stalethe cooked meshes are from an older recipe, an older template it names or an older generator, so they no longer match the recipe
quality-custom-defaultsa custom quality profile without basedOn left out optional knobs (it predates them), so they took their declared defaults; said once, naming them
quality-custom-missingthe preset is Custom and no Custom knobs were given, so High was used
quality-not-available-in-rendererthis renderer has no path for that value yet, so the knob fell back
quality-unsupported-on-devicethe GPU cannot do what the knob asks, so it fell back to what it can
quality-value-not-a-stepa quality knob was in range but not one of its steps (a shadow size that is not a power of two); the nearest was used
quality-value-not-finitea quality knob was NaN or infinite and the preset's value was used
quality-value-out-of-rangea quality knob was outside its range and was clamped
quality-value-unknowna quality knob named a value this engine does not know (a newer engine's, or a typo), so the file still loaded and the knob took its safe value (transparency.sorting: per-instance; hair.mode: cards)
render-backend-forced-unavailablethe project forces a graphics backend (render.backend "vulkan" or "dx12") that cannot start on this machine (no adapter on it, or DirectX 12 off Windows); the game stops rather than fall back.
render-decal-range-inverteda decal fade ended before it started; the end was moved to the start
render-decal-rotation-not-unita decal rotation was not a unit quaternion and was normalised (identity when zero)
render-decal-texture-unknowna decal named a texture that was never registered, so that channel has none
render-decal-value-not-finitea decal value was NaN or infinite and its default was used
render-decal-value-out-of-rangea decal value was outside its range and was clamped
render-decals-over-budgetmore decals than the budget; the lowest-priority ones were dropped
render-decals-unsupportedthe device cannot run the decal pass, so no decal is drawn
render-tonemap-substitutedmeta.render.tonemap names a curve the renderer does not have: on the standard renderer one of HD's (agx, agx-punchy, unreal-filmic), drawn as aces; on HD aces, drawn as unreal-filmic (ACES-based)
render.hd.cloud_shadow_unavailablethe device allows fewer than 17 sampled textures per shader stage, so the HD cloud layer draws but casts no shadow on the ground, the fog or the particles
render.hd.ground-cover-no-heightreserved: the HD renderer will report this when a layer's terrain has no height raster to stand blades on, so the layer is not drawn
render.hd.ground-cover-over-budgetreserved: the HD renderer will report this when a frame's ground cover wants more blades than its budget, and thins them
render.hd.pass-point-skippeda kind: pass escape-hatch shader at afterOpaque or beforeTonemap is not run on HD (its HDR image is inside HD's post chain); said once
render.hd.rt-deform-over-budgetswaying virtual-geometry instances within the ray-tracing deformation range (RtCoreDesc::deform_wind_range) are tracing their undeformed shape (sheared by the stem sway) because the per-frame deformation budget (deform_budget_instances, deform_budget_vertices) or the slot cap (deform_max_wind_slots) is spent; logged when it starts, the count is RtStats.deform.over_budget
render.hd.rt-proxy-invalida virtual-geometry mesh was given its own ray-tracing proxy (add_vg_mesh_with_rt_proxy, set_vg_rt_proxy) that is malformed, has no triangles, has more than 65,536 triangles, or names a material slot the mesh does not have; the mesh was not added
render.hd.rt_unavailablethe device or build has no ray tracing, so HD3 ray-traced effects are off
render.hd.screen-fx-viewsa frame of several views (a headset's stereo pair) on HD cannot draw screen effects or user-shader particles, so it draws without them; said once
render.hd.shading_substituteda material draws with vertex (Gouraud) shading (meta.render.shading or a material file's shading), which HD lights per pixel rather than per vertex: diffuse only, no specular, metal, normal or ORM map
render.hd.splat_formata Gaussian splat file is not one the loader reads (not a 3DGS .ply with x y z f_dc_* opacity scale_* rot_*, a compressed PLY, a coloured point cloud, or a .splat whose size is not whole 32-byte records); nothing was loaded
render.hd.splat_too_largea splat capture has more splats than one HD renderer holds (16,777,216) or bigger lists than the device can bind; nothing was loaded
render.hd.splat_truncateda Gaussian splat file ends before the data its header promises; nothing was loaded
render.hd.unavailablethe HD renderer could not start on this device, so the standard renderer draws instead
render.hd.user-rt-staticHD's ray-traced paths (reflections, global illumination, ray-traced shadows through a cut-out) see a drawn user family as a bake made once when its materials register: its surface() at time 0, instanceRandom 0.5, white vertex colour, no wind and a flat card facing the viewer, 256x256 texels by default. Once per family, when its source reads one of those inputs (in.time, in.wind, in.instanceRandom, in.viewDir, in.screenUv, in.frontFacing, in.worldPos, in.objectPos, in.normal, in.tangent, its whole input passed to a helper) or the header declares per-entity floats (they bake at the header defaults); the line names them. Raster draws the live surface, so reflections of a family that animates or varies per entity show its frozen look
render.hd.user-shader-partialHD draws a user shader family in some paths and not in others yet, once per family; the line names the family (shader family N (model, blend)) and what is pending. Either the family is not drawn by HD at all and its materials draw the family's flat PBR fallback (a vertex() family needs HD's vertex stage; a device without the bindless texture table; or its pipeline did not build), or it is drawn (opaque and mask lit/unlit in the G-buffer pass; stylized, blend, add and reads: depth in the forward and weighted-OIT passes) and names the paths still on the fallback: ray-traced hits when the family has no bake (reflections, global illumination, ray-traced shadows; with ray tracing on, a drawn family's materials are baked at the end of the load (when they register, after it) and that is not pending), per-entity floats (they read the header defaults), transmission. Meshes with a user material draw as raster, not virtual geometry, and say nothing
render.hd.vg_resident_fulla headless run, capture or --record keeps frames exact, so virtual-geometry pages never stream; a mesh whose pages no longer fit the resident pool is drawn as an ordinary mesh instead
render.hd.vg_streaming_autothe virtual-geometry meshes' pages no longer fit one resident pool, so they stream within it from then on (coarser detail loads first, finer detail follows the view)
render.hd.water.river-flow-inconsistentfor one river the discharge its drawn geometry carries (width, depth, speed) and the terrain's flow_m3s differ by more than 4 times, once per river; speed follows the geometry
render.hd.water.river-id-unknowna waterways override names a river, waterfall or lake id the terrain's hydrology does not hold (ids change when the terrain's drainage does); the override is ignored
render.hd.water.river-junction-gapa tributary ends more than 5 cm above or below the river it joins, once per river; the water is built as it is
render.screen-effecta screen effect listed in the scene's render settings was skipped (its shader did not build or its params were refused) or the renderer refused the set, so the frame draws without it
render.shader.compiled-after-loada user shader's pipeline was first compiled after the scene loaded, so one frame hitched; the pre-warm list did not hold it. On HD the line can name a family's variant (shader family X (two-sided, skinned) in HD) first drawn after the load: it builds behind the frames and its draws show the material's fallback until it is ready
render.shader.downgradeda shader effect this device or renderer cannot draw was replaced by the nearest one it can, as on web, phones and the standard renderer where HD features do not apply; the line names what changed (also named at export time for a raw screen derivative in an HD project's hit and bake variants)
render.shader.fallbacka user shader's pipeline failed to compile, once per shader family; its materials draw with the built-in fallback derived from the shader at t=0 (its average base colour, emission, roughness and metallic)
render.shader.families-manymore shader families are visible than the advised count for the target (64 on web, Android and iOS), so draws and pipelines cost more than they need
render.shader.reload-failedan edited shader's new version could not replace the running one, so the last good version keeps drawing: its pipeline did not build, or HD draws the running version and cannot draw the new one (the line names why, e.g. the edit adds vertex()); the hot reload returns the same text as a shader-compile-error
render.shader.vg-skippeda mesh whose shader has vertex() is drawn by HD's raster path, not virtual geometry, so it costs the raster path's price
replay-bad-filethe replay file cannot be read, is not a Talos replay, is a format this engine does not read, or has lines out of order
replay-camera-unknown--replay-camera entity:ID names an entity the scene does not have
replay-engine-mismatchthe replay was recorded by another engine version, which does not promise the same simulation
replay-scene-mismatchthe scene that loaded is not the one the replay was recorded on (the SHA-256 of the scene file's canonical JSON differs)
replay-seed-mismatch--seed names a different seed than the replay was recorded with
replay-start-mismatchthe world is not at the tick the replay starts from
road-source-invalidthe road file is there but is not a valid road (bad JSON, too few points, a width or step out of range), so it was not built
road-source-missingthe road component's source file is missing or unreadable, so the road, its walls and its gates were not built
save-bad-keythe key is not 1 to 64 characters of A-Z a-z 0-9 . _ -
save-fullwriting the value would take the save file past its size limit
scene-invalidthe scene file is not a valid scene; the message lists the contract violations
scene-load-faileda scene switch was refused and the current scene is still running; the event's code says why
scene-missingthere is no scene file at that path in this project
scene-no-rootthis world was opened from a document, not a file, so it has no folder to resolve a scene path against
scene-path-refusedthe scene path breaks a project-path rule (absolute, .., outside the project)
script-call-inapplicablea behaviour called entity.visible = … on an entity with no mesh or sprite, or ctx.ui.set("screen:node", …) on a screen that is not on the stack; the call did nothing and the behaviour kept running; said once per entity or screen and call per session
script-errora behaviour threw, ran away (work budget or hard cap) or was interrupted, and is disabled from that frame on; disabled: false marks the two that leave it running: a stale handle from a per-tick hook, and an update over its wall-clock budget (phase budget) for 10 ticks in a row, reported at once and then at most every 600 ticks
script-importa behaviour imports something the engine does not bundle: an npm package, a Node built-in, a file outside the project, a value from the types-only @argus/api, or @argus/gameplay with no gameplay build to bundle it from; the load is refused, naming the file and line
script-unknown-hooka behaviour's default export has a member named like another engine's hook (Update, Start, FixedUpdate, OnTriggerEnter, _process) or a Talos hook in the wrong case, which the engine never calls; said once per module version at load, and refused by behaviour.write's check when the export is not written with satisfies Behavior
script-warninga behaviour did something the engine accepted but that is almost certainly a mistake; the log line and the script_warning event carry the specific code (e.g. null-handle)
session_mismatch409: the session id or nonce is another server's (a restarted game on the same port)
session_required428: this endpoint needs a session identity and the request had none
snapshot-modifiedthe revision's files changed on disk after it was recorded
spawn-bad-overridean overrides key does not apply to the prefab (no such entity, component or path), overrides were given with like, or the prefab with them fails the contract
spawn-duplicate-idthe id asked for is empty or already taken by a live entity
spawn-no-sourcectx.world.spawn was called with neither like nor prefab, so it names nothing to spawn (SpawnError)
spawn-two-sourcesctx.world.spawn was given both like and prefab; it spawns one or the other
spawn-unknown-prefabprefab names no prefab file of the scene's project, or one the contract refused at load (the load log and engine check say why), or the scene is in no project
spawn-unknown-sourceno live entity has the id like names; spawn copies an entity the scene already has
spawn-unsupportedthis world cannot spawn entities (a headless or mock world)
splat-view-outsidethe camera stood more than 1 m outside where a splat capture was taken (its camera trajectory, or its bounds when none is known), so the capture shows streaks and holes from there; printed once as the view leaves, and World::splat_views gives the distance every frame
sprite-frame-unknownctx.sprite.frame was set to a name no frame of the sprite has
sprite-image-missinga sprite picture's asset did not load: it is not in scene.assets, not a texture asset, its file is missing or not an image the engine reads, or it is larger than the GPU's largest texture; the frames that show it draw nothing (LoadReport::sprite_images_missing counts them)
sprite-play-unknownplay named an animation the sprite's component does not declare, or a then that is not one of its animations; the message lists the ones it has
sprite-rect-outsidea view's rect reaches outside its image, so it was clamped to the image's edges
stale_stamp409: an exact read named a committed state the server no longer has
synth-bad-namename is missing or is not 1 to 64 of a-z 0-9 - _ starting with a letter or digit; it becomes the asset id and the file name
synth-bad-parama parameter is the wrong kind or out of its range: a frequency outside 1 to 20,000 Hz, a wave or filter type the synthesiser does not have, a note name it cannot read, a voice with no dur
synth-bad-sample-ratesampleRate is not a whole number from 8,000 to 48,000, or was given with a preset (a preset is made at 44,100 Hz)
synth-bad-specthe description names both preset and voices or neither, has a field that level does not take, or pairs options with voices or drive/echo with a preset
synth-failedthe synthesiser ran and did not write the sound (it threw, printed no answer, or ran past 60 s)
synth-not-foundNode, or the recipe's synth.mjs (under the SDK folder or a checkout), is not on this machine
synth-too-largethe WAV would be over 1 MiB (about 11.9 s at 44.1 kHz)
synth-too-longthe sound would be longer than 12 s, an echo's tail included
synth-unknown-presetpreset is not one of the recipe's: blip, whoosh, engine-loop, explosion, jingle
teleport-heading-ignoreda tool's POST /entity/{id}/teleport gave the character the camera films a yaw, and two ticks later the view still faces more than 0.1 rad away from it: a behaviour wrote its own old heading back over the turn (ctx.camera.set with its yaw), so shots and uses aimed along the view still go the old way; said once per teleport, with the character as the entity and teleport as the module
terrain-multiplea scene has a second entity with a terrain component; only the first one gets collision, and the log says which entity was refused (report.terrains_refused)
tilemap-layer-unknownctx.tilemap.get, set or size named a layer the component does not have; the message lists the ones it has
tilemap-sheet-shortthe tileset image is smaller than grid × tileSize (with margin and spacing) says; tiles past its edge draw nothing
time.after-invalidctx.time.after was given seconds that are negative or not finite, or was called outside a behaviour's hook or listener (RangeError); no timer is set
timeout503: the simulation did not answer in time (paused in a debugger, blocked on a load, shutting down)
ui.activate.blocksthe node is a blocker: it takes a click only to stop one reaching the game, and activates nothing
ui.activate.clippeda clipping ancestor removes every pixel of the node, and no scroll container above it brings the node into view (activation scrolls those first)
ui.activate.disabledthe node is disabled, and a disabled node refuses activation
ui.activate.hiddenthe node is under display: none, so it is not laid out or drawn
ui.activate.no-such-nodeno screen on the stack holds that id
ui.activate.not-hittablethe node answers no hit test; on a click-through screen a node must say hit-test: always
ui.activate.not-interactiveneither the node nor any ancestor of it takes activation
ui.activate.not-on-topthe node's screen is not the topmost screen taking input
ui.activate.occludedanother node is painted over the point a click would land on
ui.asset.atlas-budgetthe project's UI images are over the 32 MB atlas budget
ui.asset.image-missingan Image or Icon names a file that is not in the project; a placeholder is drawn
ui.bind.unknown-nodea binding names a node the screen does not have
ui.bind.unknown-propa binding names a property that is not bindable
ui.bind.value-kindthe bound value is the wrong kind for the property
ui.css.calccalc() is not supported
ui.css.combinator-deptha selector chains more than two child or descendant combinators (one inside @size)
ui.css.deferred-propertya property this engine has not implemented yet
ui.css.duplicate-declarationthe same property twice in one rule; the last wins
ui.css.important!important is not supported
ui.css.media-querymedia queries are not supported
ui.css.physical-sidea physical side (left, margin-right) where a logical one mirrors for right-to-left locales
ui.css.reserved-tokenan attempt to define a token the engine reserves
ui.css.syntaxthe stylesheet does not parse at that point
ui.css.unknown-at-rulean at-rule the engine does not support
ui.css.unknown-functiona CSS function the engine does not support
ui.css.unknown-propertya property the engine does not support
ui.css.unknown-selectora selector form outside the supported subset
ui.css.unknown-semantica semantic colour or token name the theme does not define
ui.css.unknown-size-classa size class the engine does not define
ui.css.unknown-unita unit the engine does not support
ui.css.unknown-valuea value the property does not take
ui.css.value-rangea value outside the range the property takes
ui.describe.formatthe screen description is not the format the engine reads
ui.describe.model-view-subject.tentativeTENTATIVE (code to be numbered): a model-view names neither asset nor entity, so it draws an empty box
ui.describe.model-view-value.tentativeTENTATIVE: a model-view attribute is not a documented spelling (camera, yaw, spin, fov, an empty string, an unknown key)
ui.describe.root-idthe screen's root carries an id; it is kept as an alias of <screen>:root, which is the name reports use
ui.describe.too-largethe description is past the size the engine reads
ui.describe.unknown-propa prop the element does not take
ui.describe.unknown-rolea node's role is not one the engine knows
ui.describe.valuea prop's value is the wrong kind, a key repeats among siblings, or the root has an id
ui.diagnostics.overflowmore diagnostics than the sink holds; the count of the dropped ones is given
ui.draw.gradient-truncateda gradient has more stops than the renderer draws; the rest are dropped
ui.draw.group-opacityopacity on a group is applied to each child rather than the group as one
ui.draw.rotate-unsupporteda rotation in transform; the node is drawn unrotated
ui.draw.view-box-outsidean object-view-box reaches past its image; the part inside is drawn
ui.focus.nav-target-missinga nav-up/nav-down/nav-left/nav-right names a node that is not there
ui.focus.no-focusablea screen that takes input has nothing a pad or keyboard can focus
ui.focus.no-such-nodeno screen on the stack holds that id
ui.focus.not-focusablethe node does not take focus, or is disabled
ui.focus.target-missingthe initial-focus target names a node that is not there
ui.focus.unreachablethe node takes focus and Tab never arrives at it
ui.font.facean @font-face file is missing or not a font the engine reads; that family's text draws in the chain's font
ui.font.glyph-missinga bitmap font has no cell for a character in the text; it is skipped
ui.font.unavailablethe project has screens and no font was found, so the text on them is not drawn
ui.get.not-a-fieldthe node is not a text field, so it has no value to read
ui.get.unknown-nodeno screen on the stack holds that id, or a bare id two screens answer to
ui.get.unknown-propthat property cannot be read
ui.input.bad-keyno key by that name
ui.input.no-fieldtext arrived and no text field holds focus, so there is nothing to type into
ui.layout.failedlayout could not place the tree
ui.layout.grid-placement-ignoredgrid-column or grid-row on an item whose parent is not display: grid
ui.layout.grid-tracks-truncateda track list longer than the engine's limit; only the first sixteen are used
ui.layout.grid-unsupportedthat part of grid is not in the supported subset
ui.layout.image-zero-sizean image whose file loaded laid out with no width or no height, so nothing of it is drawn
ui.locale.filea ui/locales/<tag>.json the engine cannot use; that one language is dropped
ui.locale.missing-glyphsa locale has characters no font in the project's font chain draws; they show as squares
ui.locale.missing-parama {name} slot in a string has no parameter; it draws [[key:name]]
ui.locale.unknownthe project ships no locale by that name; the message lists the ones it does
ui.model-view.count-cap.tentativeTENTATIVE: more than 4 model-view nodes are visible; the extras draw only their background
ui.model-view.unresolved.tentativeTENTATIVE: a model-view's asset path or entity name did not resolve to a mesh; its box draws empty
ui.scale.out-of-rangethe UI-scale multiplier is outside the supported range
ui.screen.bad-jsonthe screen's description has an error, or its render threw at the props it was given
ui.screen.compilea screen file failed to compile; it is not registered
ui.screen.duplicatea push or replace named a screen already on the stack, or two screens share a name
ui.screen.missinga screen names another screen that does not exist
ui.screen.no-exita screen that takes input has no way back out of it
ui.screen.preparedan exported build's prepared screens are missing or unreadable
ui.screen.props-unboundrender reads props and the screen declares no scenario, so they were undefined when described
ui.screen.scenariosa screen declares fewer than two scenarios, so the critic and the preview have little to show
ui.screen.stack-emptythe screen stack was left empty where a screen was expected
ui.screen.toolsthe screen describer could not start, so no screen was registered and every push is refused
ui.screen.unknownno screen answers to that name; the message lists the ones that do
ui.scroll.not-scrollablescroll-top or scroll-left written to a node that is not a scroll container
ui.set.bad-valuethe property is bindable and the value is the wrong kind for it
ui.set.unknown-nodeno screen on the stack holds that id, or a bare id is ambiguous
ui.set.unknown-propthe property is not bindable; the message carries the hint
ui.stack.emptypop with nothing on the stack
ui.style.gradient-stopsa gradient's stops are malformed or out of order
ui.style.root-size-ignoreda width or height on a screen's root is ignored; the root fills the viewport
ui.style.token-cycletokens refer to one another in a loop
ui.style.token-kinda token's value is the wrong kind for the property using it (a length where a colour goes)
ui.style.unknown-tokena var(--…) or token names no declared token
ui.style.unsupported-valuea value the engine cannot draw for that property
ui.theme.unknownthe project's stylesheets declare no theme by that name
ui.transition.not-animatablea transition names a property that cannot be animated; it changes at once
ui.tree.duplicate-idtwo nodes in one screen claim one id
ui.tree.invalid-ida node id holds / or :, the id grammar's own separators; the derived id was used instead
ui.unavailablethis world has no UI runtime, so every ctx.ui call is refused
ui.viewport.no-surfacethis source has no surface of its own, so there is nothing to resize
unavailable503: the command queue is full or the simulation is shutting down
unchecked-contenta headless worker started with --require-checked was given no --load-descriptor, so it would run the authoring tree, whose TypeScript no check has seen; it refuses to start
unsupported501: this engine or source does not implement that endpoint
vehicle.not-finitectx.vehicle.drive was given a throttle, brake, steer or handbrake that is NaN or infinite
web-unsupporteda behaviour running in the web runtime called a ctx member the web backend does not implement yet; it throws WebUnsupportedError naming the member
wheel.not-finitectx.wheel.setMotorTorque, setBrakeTorque or setSteer was given a NaN or infinite number