Test and update
Keep authored behavior tests separate from tests of Scape's host. A standalone Gizmo test should import the SDK and your own definition, without depending on game services.
Validate locally
Run the exported project's build command before connecting:
sh
yarn build1
Use ObjectRegistry from @scape/sdk/runtime to exercise registration, initial state, actions, views and effects. The worked-example kits include tests you can adapt. Run them from the exported example project:
sh
yarn test1
The blank template has no test suite yet; add your own tests and test command as you build it.
Test valid and malformed payloads, missing permissions, state bounds, and repeated actions. Use deterministic time and randomness in the context. For reactions, inspect execute results. For effects, use the exported validators to check numeric limits.
The local runtime validates data and permissions but does not sandbox code or bound arbitrary execution. Scape's uploaded-code environment supplies that isolation.
Try it in the world
Connect the project using the quickstart. Exercise both participant and editor paths. Check a second placed instance to ensure state remains independent.
For sound or movement, test overlapping instances, blocked cells, floor/session changes and reduced motion. Device output needs device review; a waveform or numeric test does not prove physical audio or haptics.
Live updates are atomic
The host validates the entire project before activation. One invalid definition rejects the update and leaves the prior accepted build running. The CLI and sidebar identify the last confirmed build.
Existing placed state must validate with new code. Reordering definitions preserves identity; removing a used definition or changing identity/version requires removing affected instances first. Changing fixed walkability also requires removing placed instances.
There is no automatic migration, shared project state or global reset capability. A project may contain up to 16 definitions; an empty project is allowed if no placed instances depend on its definitions.
Disconnect and reconnect
Stopping the CLI revokes its upload session. Accepted code and state stay in the developer world. Reconnect to resume development; a new approval replaces the previous connection for that world.
Source maps, credentials and unrelated local files are not uploaded by the development tool. Embedded model and optional audio assets are part of the bounded project bundle.
