Skip to content

Diagnostics and profiling

With Dev access on the plot, run /plot diagnostics to see active tasks, states, frame counts, work, execution time, and the last source error. These tools help an ordinary creator debug their own plot.

/plot diagnostics
/plot diagnostics profile on
/plot diagnostics profile off
/plot diagnostics cancel 12
/plot diagnostics stop
/plot diagnostics error

A waiting task is not necessarily stuck: it may be suspended by Wait or an awaited child. Repeated active work may indicate an unbounded loop or timer chain. Compare behavior with your expected event frequency; broad movement events can fire often.

Enable profile on to collect per-source-block timing. Enabling starts a fresh sample. Trigger the behavior being investigated, inspect diagnostics again, then disable profiling when finished. A frequently called cheap block and one rare expensive block can require different fixes.

Use the actual displayed task ID for cancel. It cancels that task with bounded Finally cleanup. stop stops the plot program and its work, so use it when you intend the whole game to stop. Recompile/activate a valid program when ready to resume.

Enter Dev and run error. Craftly matches the recorded stable source node to the current draft. It reports missing/ambiguous/removed nodes rather than teleporting to an unrelated block. The recorded error belongs to its compiled revision; newer draft edits may differ.

Initialize missing values, correct receiver/argument types, keep locations inside plot bounds, perform event mutations before Wait, and bound loops/collections. For old behavior after editing, confirm compilation succeeded before assuming a runtime bug.