Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Engine capabilities

This page answers two questions: what the engine can do today, and how a mod reaches each capability. It is published with the modding docs at docs.manifold.quest. Each row links to the contract that documents it and to evidence on main. Use it to orient yourself, then follow the contract link for the rules. To build something end to end, follow a guide: make a creature or add a held item.

Verified against main at 303bc46bd (2026-10-01). A pull request that changes a capability or how a mod reaches it updates its row (keeping it current).

Reading the table

Status

StatusMeaning
shippedOn main, working on both hosts unless the row says otherwise.
previewOn main but partial: one host only, a subset, or not yet wired end to end. The row says what is missing.
designA spec exists; nothing usable is on main. The contract column links the spec.

Mod reach

ReachHow a mod uses it
data/<dir>RON entries in a data-stage registry. No code.
assetFiles in the mod’s assets/, locales/ or similar: models, UI documents, particles, block RON.
declDeclared from the guest’s ModApp and delivered in the declarations() payload of manifold:core/plugin-lifecycle.
WITA function-bearing import or export of a mod contract package.
consoleConsole commands, usually for operators and testing.
toolingcargo mod and the authoring tools.
engine-onlyExists, but no mod route yet.
not yetNeither the capability nor a mod route exists.

No contract track is released yet. Every 0.2 WIT interface is on the open, unreleased track, so it may still change before the first release (contract step R1). The legacy manifold:game@0.1.0 and manifold:client@0.1.0 packages are being replaced (steps M2 and M3).

How mods reach the engine today

  • Data is the widest route. Archetypes, gameplay, AI, navigation, spawning, physics materials and game rules are all RON registries (registries).
  • Assets carry blocks, models, animation graphs, particles, UI and text.
  • Declarations register blocks, terrain recipes, actions, components, resources, systems and console commands from the guest.
  • WIT is narrow today. It covers ECS bundles and systems, player block-edit decisions, text types and logging, plus the legacy UI, storage, asset and clock imports. There is no WIT for entities, gameplay, AI, animation or physics yet. Those packages wait for the contract foundation and each program’s contract step.

World and blocks

CapabilityStatusMod reachContractEvidence
Block types: solidity, render pass, light, collision, texturespreview: only the bundled game module’s blocks registernot yet for other mods: their add_block is dropped (issue #527)nonecrates/manifold-world/src/block_loader.rs, crates/manifold-server/tests/block_defs_handshake.rs
Block textures: per-face, flipbook animation, emissive masks, tinted glasspreview: the atlas reads only the bundled game’s archivenot yet for other mods (issue #527)nonecrates/manifold-world/src/block_loader.rs, crates/manifold-texture-atlas/tests/browser_texture_crossing.rs
Block shapes: non-cube meshes and custom collisionpreview: AABB collision only; all blocks render as cubesasset (Block RON collision)Enki D (design) (docs/superpowers/specs/2026-09-27-enki-d-block-models-props-design.md)crates/manifold-world/src/collision_shape.rs
Block states: orientation, properties, layersdesign (value vocabulary only)not yetEnki A (design) (docs/superpowers/specs/2026-09-27-enki-a-block-data-model-design.md)crates/manifold-block-model/src/lib.rs
Block behaviour hooks: break, place, random tickpreview: native trait, no guest dispatchengine-onlynonecrates/manifold-engine/src/block_behavior.rs
Player block-edit decisions: approve, reject, rewriteshipped (server side); one handler, the first loaded mod that imports it (issue #529)WIT manifold:world/block-worldMod contract, block transactionscrates/manifold-server/tests/block_world_roundtrip.rs
Guest voxel readsdesignnot yetMod contractcrates/manifold-wasm-abi/wit/world/block-world.wit
Bulk block transactions: all-or-nothing, replicated, undoablepreview: no guest interfaceconsole /fill, /setblockBlock transactions#479
Terrain recipes and biomesshipped; browser single-player uses the catalog defaultdecl add_terrain_recipe + asset (terrain RON)Terrain mod contractgame/flagship-game/assets/terrain/alpine_world.ron
Baked heightfields and water networkspreview: import is native-onlyasset (baked recipe)Terrain mod contractsame page, “Optional water networks”
Fluids: flow, reactions, appearance, swimmingshippednot yet for other mods (issue #527)Fluid authoringcrates/manifold-world/src/fluid/, #181
Block lighting: RGB emitters, flicker, per-face emissionshipped; the 2026-09-20 audit lists known defectsnot yet for other mods (issue #527)nonedocs/benchmarks/lighting-audit-2026-09-20.md
Sky and day/night: sun, moons, stars, paletteshippedWIT ecs/resource-bundle (sky resources) + decl disable_skynonegame/flagship-game/src/guest_views.rs
Far terrain and GPU terrainshipped (auto-selected per device)engine-onlyFar terrain (docs/architecture/far-terrain-boundary-contract.md), GPU terrain (docs/architecture/gpu-terrain-rendering.md)crates/manifold-render
Game rules: typed, per world and per space, replicatedshippeddata/game-rules + console /gameruleGame rulescrates/manifold-engine/src/world/game_rules/decl.rs

Rendering, audio and presentation

CapabilityStatusMod reachContractEvidence
Post-processing: bloom, SSAO, shadows, TAAshippedengine-onlyScene TAA (docs/architecture/scene-taa.md)crates/manifold-render/src/post_process/
Shader packs and custom materialsdesign (draft ABI)not yetShader modding draft (rendering_stuff/shader-modding-contract.md)no pack loader in crates/manifold-render
Particles: block events, ambient, server cues, editor (F10)shippedasset (particles/**, Block RON) + WIT bundle (EffectCue)Particle system (design) (docs/superpowers/specs/2026-09-26-particle-system-design.md)crates/manifold-host-core/src/particles.rs
Audio cues: spatial one-shotspreview: every module’s sounds.ron in the host’s set; a joining client does not load a delivered module’s sounds yetWIT bundle (SoundCue)nonecrates/manifold-host-core/src/sounds.rs
Placed models and props in the worlddesignnot yetEnki D (design) (docs/superpowers/specs/2026-09-27-enki-d-block-models-props-design.md)—

UI, text and input

CapabilityStatusMod reachContractEvidence
Mod UI: widget trees, state, events, HUD layersshippedWIT legacy game/ui + UI plugin exportUI authoring (validation only)crates/manifold-wasm-abi/wit/legacy/game/ui.wit
Game presentation: title, theme, menus, inventory windowshippedengine-only (game embedding; .ui.ron, .theme.ron)Extension contracts (docs/architecture/extension-contracts.md), Manifold look (docs/manifold-look.md)crates/manifold-ui-chrome/src/lib.rs
Client plugins: HUD reskin, overlays, UI overridespreview: native only, no distributionWIT legacy manifold:clientnonecrates/manifold-client-plugin-host/src/instance.rs
UI editor (F6)shipped (developer tool)engine-onlyUI authoringcrates/manifold-ui-editor/src/lib.rs
Localization: message keys, Fluent catalogs, shaping, RTLshippedasset (locales/<lang>/*.ftl) + WIT core/textText and localizationcrates/manifold-wasm-abi/wit/core/text.wit
Translation packspreview: browser players cannot install themasset (translations/)Text and localization—
Input actions, contexts and keybindsshippeddecl add_action, add_context, bind_input_roleInput system (design) (docs/superpowers/specs/2026-09-29-input-system-design.md)crates/manifold-input/src/lib.rs
Gamepadpreview: evaluator only, no device backendsame action bindingsInput system (design) (docs/superpowers/specs/2026-09-29-input-system-design.md)crates/manifold-input/src/control.rs
Console commands from modsshipped (server registry)decl register_commandConsole commandscrates/manifold-server-state/src/console/command_fold.rs

Entities and the data stage

CapabilityStatusMod reachContractEvidence
Data stage: declare, patch, final-fixes, validate, freeze, hashshipped (no hot reload; cargo mod validate --base needs a game-module base’s built component)data/<dir> + tooling cargo mod validateData stagecrates/manifold-engine/src/data/stage.rs, tools/cargo-mod/src/data_validate.rs
Structural funnel, hooks and observersshippedengine-onlyEntity core (docs/architecture/entity-core.md)crates/manifold-test-support/tests/structural_funnel_guard.rs
Archetypes: inheritance, variants, templates, spawningshippeddata/archetypes + decl add_archetype + console /entity spawnArchetypescrates/manifold-engine/src/archetype/def.rs
Mod-defined components and guest systemsshippedWIT ecs/resource-bundle, ecs/plugin-systems + decl add_component, add_resourceMod contract (packaging only)crates/manifold-wasm-abi/wit/ecs/resource-bundle.wit
Relationships: owned-by, child-of, targetspreview: data-declared kinds get no components yetdata/relationshipsEntity core (docs/architecture/entity-core.md)crates/manifold-ecs/src/relation.rs
Spatial index and layersshippeddata/spatial-layers (layers only)Entity core (docs/architecture/entity-core.md)crates/manifold-ecs/src/spatial.rs
Durable identity and entity persistenceshippedengine-onlyEntity persistence (docs/architecture/entity-persistence.md)crates/manifold-server-state/src/entity_persistence.rs

Gameplay

CapabilityStatusMod reachContractEvidence
Tags, conditions and statsshippeddata/tags, data/predicates, data/statsGameplaycrates/manifold-gameplay/src/stats.rs
Effects: stacking, periods, immunity, cleanseshipped (guest execution waits for Talos B6)data/effectsGameplaycrates/manifold-gameplay/src/effects.rs
Damage pipeline: types, elements, formulas, hooks, healing, per-region damageshipped (guest hooks wait for B6)data/damage_types, data/elements, data/damage_formulas, data/damage_hooks + console /entity damageGameplaycrates/manifold-gameplay/src/damage.rs
Physics damage sources: impacts, explosionspreview: character impacts deal damage; nothing fills explosions until Daedalus Fdata/impact_damage, data/explosion_damageGameplaycrates/manifold-gameplay/src/damage/sources.rs
Death, corpses and loot tablesshippeddata/loot_tablesGameplaycrates/manifold-gameplay/src/loot.rs
Factions, parties and PvPshippeddata/factionsGameplaycrates/manifold-gameplay/src/factions.rs
Cues and presentation fieldsshippeddata/cues, data/presentationGameplaycrates/manifold-gameplay/src/cues.rs
Abilities: chains, telegraphs, projectiles, charges, costsshipped; the HUD draws server-confirmed hit markers and damage numbers on both hosts (issue #532)data/abilities + console /entity abilityGameplay#463, #516
Owner ability predictionpreview: own presses onlydata/abilities (predict)Gameplaycrates/manifold-gameplay/src/abilities/predict.rs
Equipment slots and item kindsshipped (not persisted; no stacks)data/equipment_slots, data/items + console /entity equipGameplaycrates/manifold-gameplay/src/equipment.rs
Gameplay configshippeddata/gameplayGameplaycrates/manifold-gameplay/src/data.rs

Items

CapabilityStatusMod reachContractEvidence
Inventory and hotbarshipped inside the flagship game, not an engine feature; items there are block idsengine-only (HotbarBlocks projection)nonegame/flagship-game/src/inventory.rs
Game modes and creative catalogshipped inside the flagship gameWIT bundle (block catalog resource)Enki C (design) (docs/superpowers/specs/2026-09-27-enki-c-ui-runtime-design.md)game/flagship-game/src/game_mode.rs
Item instances, stacks, containers, moves, pickup, craftingdesignnot yetItems overview (design) (docs/superpowers/specs/2026-09-30-items-overview-design.md)#481

AI and navigation

CapabilityStatusMod reachContractEvidence
Character integrator and motion overrides (players and agents)shippedengine-onlyNavigationcrates/manifold-player/src/integrator/integrate.rs
Ground pathfinding: locomotion profiles, corridors, repair, reachabilityshipped (walkers, walker_large, climbers, swimmers)data/locomotion + console /ai pathNavigationcrates/manifold-nav/src/profile.rs
Flow fields, flight, swimming, climbing, doors, flockingpreview: no digging; flow fields serve ground profiles onlydata/locomotionNavigationcrates/manifold-nav/src/flow.rs, crates/manifold-nav/src/flight.rs
Perception: sight with voxel line of sight, hearing, awareness states, damage, owner and item sensorspreview: no touch sensor or hearing occlusiondata/awarenessBrainscrates/manifold-ai/src/perception.rs, crates/manifold-ai/src/hearing.rs
Brains: archetype brains, utility brains, state trees, memories, curvesshippeddata/brains, data/state_trees, data/memories, data/curvesBrainscrates/manifold-ai/src/data.rs
AI level of detail and work budgetshipped: Full, Reduced and Dormant tiers, the degradation ladderdata/ai_lod + console /ai lodBrainscrates/manifold-ai/src/lod.rs
Spawners, spawn rules, caps, despawn bandspreview: no herds, encounters or persistent spawnersdata/spawn_rules, data/spawn_categories, data/spawnersPopulationcrates/manifold-ai/src/coord/spawn/data.rs
Reservationsshipped (not saved)engine-onlyPopulationcrates/manifold-ai/src/coord/reservation.rs
Coordination: squads, threat, tokens, directors, smart objects, chores, offline simulationdesignnot yetTalos E (design) (docs/superpowers/specs/2026-09-27-talos-e-coordination-population-design.md)—
AI and entity debugging: traces, /ai why, inspector, overlaysshippedconsole /entity, /aiConsole commandscrates/manifold-server-state/src/console/ai_commands.rs

Animation and models

CapabilityStatusMod reachContractEvidence
Model import, recipes and validationshippedasset (GLB + .model.ron) + tooling cargo mod validateModel assetscrates/manifold-model/src/recipe.rs
Blockbench exporter and Blender add-onshippedtoolingModel assetstools/blockbench-manifold/manifold_model.js
Animation graphs: machines, 1D blends, layers, masks, slots, one-shotsshipped (no nested machines or 2D blends)asset (.graph.ron) + console /animModel assetscrates/manifold-anim/src/graph/compile.rs
Skeleton profiles, sockets and held itemspreview: one built-in profile; held items show on remote characters only, at hand_r; no player or weapon model ships (issue #533)asset (recipe skeleton, sockets, item grip)Model assetscrates/manifold-anim/src/profile.rs
Pose modifiers: two-bone IK, look-at, hand-to-grippreview: no foot placement, springs or ragdollsassetModel assetscrates/manifold-anim/src/modifier/mod.rs
Binding tables, gameplay events, root motionshippedasset (.bind.ron, clip events)Animated characters (docs/architecture/animated-characters.md)crates/manifold-anim/src/binding.rs
Hit volumes and lag-compensated hit queriesshippedasset (hit_volumes, body_regions)Animated characters (docs/architecture/animated-characters.md)crates/manifold-anim/src/hit.rs
NPC replication and interpolationshippedengine-onlyAnimated characters (docs/architecture/animated-characters.md), network time (docs/architecture/network-time.md)crates/manifold-server-state/src/replication/agent_motion.rs
Asset Lab (F7) and asset hot reloadpreview: hot reload is native onlyassetModel assetscrates/manifold-model-lab/src/lib.rs
Animation interface and custom modifier nodes for modspreview: console onlyconsole /anim; WIT not yetPygmalion H (design) (docs/superpowers/specs/2026-09-27-pygmalion-h-mod-contract-design.md)crates/manifold-anim/src/api/mod.rs
Animation at scale: budgets, followers, baked crowdsdesignnot yetPygmalion F (design) (docs/superpowers/specs/2026-09-27-pygmalion-f-rendering-scale-design.md)—

Physics

CapabilityStatusMod reachContractEvidence
Rigid bodies: collider sets, owners, quotas, regions, threadsshipped (clients draw every body as a box)console /physics; WIT not yetPhysics runtime (docs/architecture/physics-runtime.md)crates/manifold-physics/src/runtime/mod.rs
Terrain colliders, physics events and queriesshippedengine-onlyPhysics runtime (docs/architecture/physics-runtime.md)crates/manifold-physics/src/runtime/terrain/mod.rs
Physical materialspreview: every block uses the default materialdata/physical-materialsPhysics runtime (docs/architecture/physics-runtime.md)crates/manifold-physics/src/materials.rs
Gravity gun: grab, punt, extractshippedengine-only + console /physics extractPhysics runtime (docs/architecture/physics-runtime.md)crates/manifold-physics/src/grab.rs
Jointspreview: slider only, created in testsengine-onlyPhysics runtime (docs/architecture/physics-runtime.md)crates/manifold-physics/src/joints/apply.rs
Assemblies: block grids as one rigid bodypreview: data model and colliders onlyengine-onlyPhysics runtime (docs/architecture/physics-runtime.md)crates/manifold-physics/src/assembly/grid.rs
Riding, seats, carry, knockback, fall damagepreview: carry, knockback and impacts for players and agents; riding, seats and fall damage are designengine-onlyNavigation, Daedalus D (design) (docs/superpowers/specs/2026-09-27-daedalus-d-characters-interaction-design.md)crates/manifold-player/src/impacts.rs
Destruction: cuts, blasts, islands, collapsepreview: algorithms only, not wired innot yetDaedalus F (design) (docs/superpowers/specs/2026-09-27-daedalus-f-destruction-world-forces-design.md)crates/manifold-world/src/destruction/mod.rs
Motion stream and path segmentspreview: agents’ path segments replicate (manifold-player:active-path); the motion stream is the wire codec onlyengine-onlyDaedalus E (design) (docs/superpowers/specs/2026-09-27-daedalus-e-replication-prediction-design.md)crates/manifold-net-protocol/src/motion/segment.rs

The rigid-body rows run on a vendored parry3d 0.29 with one backported fix (tools/patches/parry3d). The patch is temporary: the rapier 0.36 upgrade removes it (issue #534).

Multiplayer, saves and delivery

CapabilityStatusMod reachContractEvidence
Replicating mod state: synced resources, bridged componentsshippeddecl (resource sync, component policy)Host parity (docs/architecture/host-parity.md), network time (docs/architecture/network-time.md)crates/manifold-mod-types/src/lifecycle.rs
Browser client over iroh, native client and dedicated servershippedengine-onlyHost parity (docs/architecture/host-parity.md)crates/manifold-host-web/src/iroh_transport.rs
Browser and native paritypreview: guards plus a manual litmus—Parity manifest (docs/architecture/browser-native-parity-manifest.md), accepted divergences (docs/parity/ACCEPTED-DIVERGENCES.md)—
World saves: chunks, metadata, entities, fluidsshipped (native redb, browser OPFS)engine-onlyEntity persistence (docs/architecture/entity-persistence.md) (entities only)crates/manifold-host-web/src/opfs_save.rs
Mod delivery at join (content-addressed, cached on both hosts; an installed .mod with the server’s bytes is used without a transfer)preview: a joining client (native or browser) builds its session content from the server’s set before world data applies, so a delivered module’s blocks, actions, components, archetypes, data, textures and sounds join; a failure names the modautomaticMod contract, data stagecrates/manifold-server/tests/mod_delivery_e2e.rs, game/flagship/tests/installed_block_module.rs, crates/manifold-host-web/e2e/assert-block-probe-join.mjs
Mod config storage, asset reads, clockshippedWIT legacy persistent-storage, asset-source, clockMod contract (listing only)crates/manifold-wasm-abi/wit/legacy/game/
Blob storage and player-local filesdesignnot yetContract foundation (design) (docs/superpowers/specs/2026-09-29-contract-foundation-design.md)—

Mods and the data stage

Packaging and loading

CapabilityStatusMod reachContractEvidence
.mod archives: manifest, wasm, assets/, data/, locales/shippedtoolingnonecrates/manifold-mod-archive/src/lib.rs
Manifest mod.toml: kinds, dependencies, ordering, collisions, overlaysshippedtoolingnonecrates/manifold-modloader/src/manifest.rs
Several game modules: dependencies, load order, asset overlay; installed modules add blocks, actions, components and texturesshipped for baked and installed modules (dedicated server, native singleplayer and hosting); a joining client, native or browser, builds the server’s set (delivered modules included) at connecttoolingMod contractgame/flagship/tests/installed_block_module.rs
Guest SDK: ModApp and #[mod_entry]shippeddecl + WITMod contract (macro only)crates/manifold-mod-substrate/src/runtime/mod_app.rs
cargo mod build, inspect, validate, publishshipped (no signing or registry)toolingnonetools/cargo-mod/src/main.rs
cargo mod new, dev, test, reportdesignnot yetModding north star (docs/modding-api-north-star.md)—

Contract machinery

CapabilityStatusMod reachContractEvidence
Versioned WIT packages, linking by importshippedWITMod contractcrates/manifold-contract/src/component.rs
Import check: unknown interface or trackpreview: native onlyengine-onlyMod contractcrates/manifold-modloader/src/contract.rs
Old-track adapters and export facadesshipped as machinery; no release to adapt yetengine-onlyMod contractcrates/manifold-wasm-host/tests/contract_tracks.rs
Payload classification and schemasshipped; ron::Value in UI trees pending (Enki C P0), packed layout tables arrive with their layoutsengine-onlyMod contract, payload referencecrates/manifold-contract/tests/payload_shapes.rs
contract.json, generated WIT reference, breaking-change gateshipped; the gate has nothing to compare until the first releasetoolingMod contract, contract referencetools/contract-describe/tests/gate.rs
Consent prompts, preview tracks, permission cataloguedesign (consent classes recorded, not enforced)not yetContract foundation (design) (docs/superpowers/specs/2026-09-29-contract-foundation-design.md)crates/manifold-wasm-abi/wit/ATTRIBUTES.toml
Sandbox: host-assigned trust, native epoch interruptsshipped natively; browser metering not provenengine-onlyExtension contracts (docs/architecture/extension-contracts.md)crates/manifold-wasm-host/tests/game_module_sandbox.rs
Guest hooks, kernels, extension points, jobs, mod channelspreview: shared hook ABI and native kernel linking onlynot yetExtension contracts (docs/architecture/extension-contracts.md), mod contractcrates/manifold-hook-abi/src/lib.rs
Hot reload of guest code and datadesignnot yetData stage—

Data registries a mod can ship. Each is a directory under the mod’s data/. The data registry reference documents every one, with its fields and an example; see data stage for file stages and patching.

Components come from code declarations, and binding tables come from model assets. Neither is declared in data/.

Debugging and tools

CapabilityStatusMod reachContractEvidence
Framescope providers and capturesshipped (engine-side providers)engine-onlyFramescope providers (docs/framescope-provider-guide.md)crates/framescope-core/examples/custom_provider.rs
Deterministic replaypreview: partial coverageengine-onlyReplay design (docs/deterministic-replay-design.md)crates/manifold-replay/src/lib.rs
Deterministic random and maths helpersshippedengine-onlynonecrates/manifold-det/src/random.rs

Keeping this page current

A pull request updates the affected rows when it:

  • ships, removes or narrows a capability;
  • adds a mod route (a registry, an asset format, a declaration, a WIT interface, a console command); or
  • adds the capability’s contract page.

Update the “Verified against” revision when you re-check the whole page. A row whose contract column says “none” or links a spec is a documentation gap: a shipped capability should get a contract page under docs/architecture/.