Control Unity Editor play mode. Use when: starting/stopping/pausing play mode, testing game behavior, or when user asks to play or stop. Controls play/stop/pause of Unity Editor.
Control Unity Editor play mode (play/stop/pause/step) or query its state without side effects (status).
uloop control-play-mode [options]
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| --action | string | Play | Play - start Play Mode, Stop - stop Play Mode, Pause - pause Play Mode, Step - advance one frame while paused, Status - report current state without changing anything, Resume - alias of Play in every state, including starting Play Mode when stopped |
| --timeout-seconds | integer | 180 | Maximum seconds to wait for the requested play mode state |
Returns JSON with the current play mode state:
IsPlaying: Whether Unity is currently in play modeIsPaused: Whether play mode is pausedChanged: Whether the requested action changed the current play mode stateWasAlreadyStopped: Whether Stop was requested while Play Mode was already stoppedResumedFromPause: Whether Play resumed a paused Play Mode session instead of starting a new oneMessage: Description of the action performedWarning (string, optional): Set when the action carries a caveat. A fresh Play start always notes that the session started from Edit-time scene state; additionally, when active hot-reload patches or enabled pause points exist and Domain Reload is enabled, it reports how many of them the Play-entry domain reload will discard. Pause points enabled with --persist are counted separately: they are re-armed after the reload, and the warning points at pause-point-status for the re-arm result. Status also reports when Play Mode is running while the Unity Editor is unfocused, because progress may be throttled; run uloop focus-window, or use the pause-point --await/--trigger flow instead of polling for progress.StoppedBy (string, optional): Why Play Mode last stopped: cli-control-play-mode, cli-compile-stop-setting, cli-run-tests-cancel, script-compilation, or unknown. Present on Stop when Play Mode was already stopped, and on Status when Play Mode is not running. Omitted when this Editor session has no confirmed stop.StoppedAt (string, optional): UTC ISO 8601 timestamp of that stop. Omitted together with StoppedBy when no stop is recorded.Changed: false, WasAlreadyStopped: truePlay on an Editor that is already playing is a no-op: it sets Changed: false and leaves the current session (its accumulated state, spawned objects, progress) untouched instead of restarting it. If you need a clean state for verification, explicitly Stop then Play rather than relying on Play alone to reset anything.Play while Play Mode is paused resumes the same session: it sets Changed: true, ResumedFromPause: true, and Message: "Play mode resumed" — the session is not restarted.Resume is an alias of Play and behaves identically in every state, including starting Play Mode when stopped.Step advances exactly one frame and leaves PlayMode paused (the Editor's Next Frame button); it is independent of Time.timeScale and requires PlayMode to be running--timeout-seconds for projects with slow PlayMode entry.uloop get-logs --log-type Error for pre-existing errors. An error already present when PlayMode starts can otherwise be mistaken for one caused by the action under test.Status reads the current state with no side effects: Changed is always false, no waiting, no scene saving, and it is never rejected by compile errors. It reports whether compile errors would currently block Play (BlockedByCompileErrors with the CompileErrors list), read from the last compile result without triggering a new compile. It does not predict unsaved-changes blocking: BlockedByUnsavedChanges describes a failed save attempt during a Play request, and Status never attempts one.Play fails immediately with a CONTROL_PLAY_MODE_UNSAVED_CHANGES error when unsaved changes cannot be saved quietly — most commonly an Untitled scene, which has no path to save to. The error message lists exactly which scenes or prefab stages blocked it; save the Untitled scene to an explicit path (or discard the changes), then retry.Play from Edit mode triggers a domain reload (unless Enter Play Mode Options disable it), which discards all active hot-reload patches and enabled pause points other than those enabled with --persist, which are re-armed afterwards. The response Warning reports the counts being dropped and, separately, how many re-arm. Edits that were only hot-reloaded are not part of the compiled assemblies, so the new session runs the last compiled code — run uloop compile before Play to keep them, or re-apply uloop hot-reload after Play Mode starts.npx skills add hatayama/uloop-control-play-mode下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer