Appearance
Workshop and publish error codes
Search this page by the exact code shown in Checks. Error-level items block publish; warnings and information require an intentional review.
schema.invalid
The project does not match the supported schema. Reopen the last working cloud draft or undo the source edit. Do not hand-edit serialized project JSON unless you are developing the schema itself.
scene.player_missing
The start scene needs exactly one entity with a Player component. Add the curated player asset or restore the template player.
scene.multiple_players
More than one Player exists in the start scene. Keep one controlled player; use ordinary bodies/sprites for non-player characters.
scene.empty
The scene contains no entities. Delete the unused scene or add intentional content before linking to it.
entity.transform_missing
A Sprite or Collider cannot be placed without Transform. Add Transform to the entity; do not compensate with another entity's position.
entity.outside_scene
The entity position is beyond the world dimensions. Pan to it and move it inside, or enlarge the world intentionally in World settings.
sensor.no_behavior
A sensor cannot affect play without controlled logic or a purpose-built trigger component. Add touch logic, Dialogue, Checkpoint, Hazard, Launcher, Pickup, or Portal behavior as appropriate.
pickup.inventory_missing
At least one Pickup exists but the player has no Inventory component. Add Inventory to the player or use a score collectible instead.
logic.score_argument
An add-score command needs one finite numeric value. Recreate the visual action with a bounded number.
logic.effect_argument
An effect command needs one allowlisted effect name. Select an effect from Workshop instead of entering an arbitrary capability.
logic.animation_argument
Animation playback needs one existing creator clip name. Create or rename the clip in the Visual animation editor, then compile the behavior again.
logic.animation_stop_argument
Animation stop accepts no values. Use animation.stop(); to return to the automatic or default clip.
logic.destroy_argument
Destroy-self accepts no values. Remove the attached argument or recreate the action.
logic.launch_argument
Launch needs two finite velocity values between -2000 and 2000, with at least one non-zero axis. Correct the Launcher component or RiftScript arguments.
logic.launch_event
player.launch can run only in a player_touched handler, where the authoritative runtime can identify the touching player. Move the call into that event or use a Launch pad component.
logic.execution_failed
Controlled logic failed or exceeded its instruction, command, stack, or memory budget during headless validation. Workshop test mode reports the exact program/event/instruction and, for RiftScript, the mapped line. Use Open source at line …, correct the typed value or reduce the handler, and test again.
logic.invalid_program
Compiled bytecode failed control-flow, stack, capability-arity, explicit-return, random-range, or handler-size verification. Recompile the Visual behavior or RiftScript source. Do not hand-edit serialized instructions. RiftScript reports the corresponding source location as RS3002 before attachment; source that expands past the fixed limit is stopped earlier as RS0008.
budget.project_bytes
Serialized project data exceeds 2 MiB. Remove duplicated/unreachable content and reuse prefabs.
budget.entities
The project exceeds 20,000 entities. Consolidate decorative geometry and remove unused instances.
budget.instructions
The project exceeds the 100,000-instruction aggregate publish limit. Each individual handler must also fit the fixed 1,000-instruction per-tick VM allowance, reported as logic.invalid_program, RiftScript RS0008 during bounded function expansion, or RS3002 during bytecode verification. Split the design into smaller controlled behaviors and remove repeated branches.
runtime.simulation_failed
The deterministic 120-tick publishing simulation failed. Fix the earlier source-linked error; if none is shown, preserve the draft and report the immutable project/version identifiers through the activated private support channel.
API messages
UNAUTHORIZED means the required signed guest, verified account, or moderator session is missing/expired. CONFLICT means the requested state no longer matches the stored revision, eligibility, or idempotency record. RATE_LIMITED requires waiting rather than retrying rapidly. SERVICE_UNAVAILABLE means a platform kill switch is intentionally closed.