Skip to content

Troubleshooting

Check the result of /plot compile. Failed validation/save retains the last successful program. Confirm the correct plot and mode, then trigger the event again. Autocompile attempts can fail too; they do not guarantee activation of an incomplete draft.

Choose the correct block family and Target Object. No Object exposes static/plot/world calls. Player actions need a Player-compatible receiver. Value transformations live under Set Variable. Search respects applicability; it does not reveal unavailable operations.

Create the declaration and assign it before reading. A Private Variable in one method is not another method’s local. For a legitimate absent initial value, use compatible ?? fallback or Is Assigned; an undeclared expression name still needs a declaration.

Check exact target/class declarations, nullable flags, collection element/key types, and method signatures. List and Dictionary types are invariant. A String that displays digits is not automatically a Number. Class and field identities are not recreated merely by reusing an old name.

The original event mutation window is synchronous. Perform cancellation/damage/drop changes before Wait. Captured values can be read afterward, but the event itself cannot be changed once its lease expires.

Another developer may hold the block lock. Permissions, block identity, and plot/mode context are rechecked before saving. Reopen an intact block after resolving the conflict; do not assume stale dialog contents were applied.

Transient entities are removed when nobody remains in Play. This happens even while builders/developers are present. Saved target UUIDs do not prevent runtime cleanup. Frames, paintings, and cushions follow their permanent-decoration rules.

Dev includes Build. Revoking only an explicit Build grant does not remove Build inherited from Dev. Owners manage access using /plot permissions.

Inspect /plot diagnostics, profile the relevant behavior, and check for repeated event triggers or detached task creation. Cancel the displayed task ID or stop the program when intended. Bound loops and recheck state after suspension.

Make space, then Objects → Recover Items. Objects is a replenishing source, not a storage chest: depositing ordinary items there discards them on close.

See expression troubleshooting. Check syntax, declaration, scope, nullable inputs, and whether a Number argument contains exactly one complete expression.