summer-engine 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +27 -5
- package/.codex-plugin/plugin.json +28 -6
- package/.cursor-plugin/plugin.json +27 -5
- package/.factory-plugin/plugin.json +27 -5
- package/.opencode/plugins/summer.js +1 -1
- package/CHANGELOG.md +102 -0
- package/README.md +18 -3
- package/assets/audit/scene_audit.gd +4136 -0
- package/assets/seeing/seeing_probe.gd +1873 -0
- package/dist/cli/commands/skills.js +20 -2
- package/dist/core/api-client.d.ts +9 -1
- package/dist/core/api-client.js +21 -4
- package/dist/core/capabilities/agent-playbook.js +46 -0
- package/dist/core/capabilities/audit/accept.d.ts +55 -0
- package/dist/core/capabilities/audit/accept.js +147 -0
- package/dist/core/capabilities/audit/args.d.ts +95 -0
- package/dist/core/capabilities/audit/args.js +89 -0
- package/dist/core/capabilities/audit/audit.d.ts +56 -0
- package/dist/core/capabilities/audit/audit.js +287 -0
- package/dist/core/capabilities/audit/frame.d.ts +14 -0
- package/dist/core/capabilities/audit/frame.js +35 -0
- package/dist/core/capabilities/audit/gaps.d.ts +96 -0
- package/dist/core/capabilities/audit/gaps.js +257 -0
- package/dist/core/capabilities/audit/judge.d.ts +162 -0
- package/dist/core/capabilities/audit/judge.js +1134 -0
- package/dist/core/capabilities/audit/math.d.ts +110 -0
- package/dist/core/capabilities/audit/math.js +263 -0
- package/dist/core/capabilities/audit/summary.d.ts +74 -0
- package/dist/core/capabilities/audit/summary.js +212 -0
- package/dist/core/capabilities/board.d.ts +31 -0
- package/dist/core/capabilities/board.js +43 -0
- package/dist/core/capabilities/camera-view.d.ts +4 -2
- package/dist/core/capabilities/camera-view.js +6 -3
- package/dist/core/capabilities/connect-signal.d.ts +85 -0
- package/dist/core/capabilities/connect-signal.js +285 -0
- package/dist/core/capabilities/engine-fallbacks.d.ts +5 -0
- package/dist/core/capabilities/engine-fallbacks.js +5 -0
- package/dist/core/capabilities/engine-ops.d.ts +5 -1
- package/dist/core/capabilities/engine-ops.js +0 -3
- package/dist/core/capabilities/engine-receipt.d.ts +12 -0
- package/dist/core/capabilities/engine-receipt.js +26 -0
- package/dist/core/capabilities/file-read.d.ts +64 -0
- package/dist/core/capabilities/file-read.js +325 -0
- package/dist/core/capabilities/game-task-plan.js +4 -2
- package/dist/core/capabilities/grep.d.ts +60 -0
- package/dist/core/capabilities/grep.js +190 -0
- package/dist/core/capabilities/inspect-node.d.ts +56 -0
- package/dist/core/capabilities/inspect-node.js +225 -0
- package/dist/core/capabilities/inspect-resource.d.ts +61 -0
- package/dist/core/capabilities/inspect-resource.js +376 -0
- package/dist/core/capabilities/math3d.d.ts +28 -0
- package/dist/core/capabilities/math3d.js +88 -0
- package/dist/core/capabilities/motion-generation.d.ts +62 -0
- package/dist/core/capabilities/motion-generation.js +138 -0
- package/dist/core/capabilities/placement-batch.d.ts +102 -0
- package/dist/core/capabilities/placement-batch.js +483 -0
- package/dist/core/capabilities/placement-math.d.ts +70 -0
- package/dist/core/capabilities/placement-math.js +209 -0
- package/dist/core/capabilities/placement-script.d.ts +42 -0
- package/dist/core/capabilities/placement-script.js +1096 -0
- package/dist/core/capabilities/placement.d.ts +485 -0
- package/dist/core/capabilities/placement.js +1731 -0
- package/dist/core/capabilities/project-context.d.ts +33 -2
- package/dist/core/capabilities/project-context.js +87 -4
- package/dist/core/capabilities/replace-node.d.ts +91 -0
- package/dist/core/capabilities/replace-node.js +423 -0
- package/dist/core/capabilities/runtime-control.d.ts +18 -2
- package/dist/core/capabilities/runtime-control.js +67 -2
- package/dist/core/capabilities/scene-batch.d.ts +63 -0
- package/dist/core/capabilities/scene-batch.js +394 -0
- package/dist/core/capabilities/scene-readback.d.ts +36 -0
- package/dist/core/capabilities/scene-readback.js +54 -0
- package/dist/core/capabilities/seeing/args.d.ts +348 -0
- package/dist/core/capabilities/seeing/args.js +178 -0
- package/dist/core/capabilities/seeing/candidates.d.ts +127 -0
- package/dist/core/capabilities/seeing/candidates.js +282 -0
- package/dist/core/capabilities/seeing/math.d.ts +134 -0
- package/dist/core/capabilities/seeing/math.js +269 -0
- package/dist/core/capabilities/seeing/probe.d.ts +62 -0
- package/dist/core/capabilities/seeing/probe.js +188 -0
- package/dist/core/capabilities/seeing/scoring.d.ts +235 -0
- package/dist/core/capabilities/seeing/scoring.js +639 -0
- package/dist/core/capabilities/seeing/seeing.d.ts +233 -0
- package/dist/core/capabilities/seeing/seeing.js +1341 -0
- package/dist/core/capabilities/seeing/shot-store.d.ts +52 -0
- package/dist/core/capabilities/seeing/shot-store.js +204 -0
- package/dist/core/capabilities/surface-snap-mesh.d.ts +88 -0
- package/dist/core/capabilities/surface-snap-mesh.js +425 -0
- package/dist/core/capabilities/surface-snap.d.ts +77 -0
- package/dist/core/capabilities/surface-snap.js +461 -0
- package/dist/core/capabilities/tool-dispatch.js +231 -72
- package/dist/core/capabilities/tscn.d.ts +85 -0
- package/dist/core/capabilities/tscn.js +391 -0
- package/dist/core/capabilities/world-snapshot.d.ts +58 -0
- package/dist/core/capabilities/world-snapshot.js +150 -0
- package/dist/core/capability-skew.d.ts +5 -5
- package/dist/core/capability-skew.js +14 -6
- package/dist/core/headless/worker-engine-client.d.ts +1 -1
- package/dist/core/headless/worker-engine-client.js +2 -2
- package/dist/core/library-read.d.ts +37 -5
- package/dist/core/library-read.js +264 -33
- package/dist/core/library-search.d.ts +2 -2
- package/dist/installer/agent-config.js +5 -3
- package/dist/installer/agent-table.d.ts +16 -0
- package/dist/installer/agent-table.js +52 -17
- package/dist/mcp/server.js +9 -3
- package/dist/mcp/tools/asset-tools.js +21 -3
- package/dist/mcp/tools/audit-tools.d.ts +23 -0
- package/dist/mcp/tools/audit-tools.js +60 -0
- package/dist/mcp/tools/debug-tools.js +3 -1
- package/dist/mcp/tools/file-tools.js +17 -4
- package/dist/mcp/tools/generate-tools.js +74 -66
- package/dist/mcp/tools/library-tools.js +2 -0
- package/dist/mcp/tools/perception-tools.js +6 -19
- package/dist/mcp/tools/placement-tools.d.ts +24 -0
- package/dist/mcp/tools/placement-tools.js +91 -0
- package/dist/mcp/tools/project-tools.js +18 -15
- package/dist/mcp/tools/scene-tools.js +71 -83
- package/dist/mcp/tools/seeing-tools.d.ts +24 -0
- package/dist/mcp/tools/seeing-tools.js +64 -0
- package/dist/mcp/tools/spatial-tools.js +17 -9
- package/dist/mcp/tools/visual-tools.js +59 -7
- package/gemini-extension.json +26 -4
- package/integrations/amp/README.md +1 -1
- package/integrations/crush/README.md +1 -1
- package/integrations/grok-build/README.md +1 -1
- package/integrations/hermes/README.md +1 -1
- package/integrations/kimi-code/README.md +1 -1
- package/integrations/mistral-vibe/README.md +1 -1
- package/integrations/opencode/README.md +1 -1
- package/integrations/rovo-dev/README.md +1 -1
- package/integrations/vscode-copilot/README.md +1 -1
- package/integrations/warp/README.md +1 -1
- package/integrations/windsurf/README.md +1 -1
- package/library/references/mcp-tools-reference/mcp-tools-reference.md +59 -15
- package/library/references/mcp-tools-reference/resource.yaml +1 -1
- package/library/references/summer-folder/resource.yaml +1 -1
- package/library/references/summer-folder/summer-folder.md +1 -1
- package/library/skills/3d-lighting/SKILL.md +1 -1
- package/library/skills/README.md +36 -14
- package/library/skills/adaptive-music/SKILL.md +1 -1
- package/library/skills/agent-playtesting/SKILL.md +1 -1
- package/library/skills/ai-characters-in-games/SKILL.md +220 -0
- package/library/skills/ai-characters-in-games/resource.yaml +30 -0
- package/library/skills/ambient-bed/SKILL.md +1 -1
- package/library/skills/animated-loop/SKILL.md +1 -1
- package/library/skills/animation-tree/SKILL.md +1 -1
- package/library/skills/art-direction/SKILL.md +1 -1
- package/library/skills/asset-strategy/SKILL.md +2 -1
- package/library/skills/asset-strategy/resource.yaml +2 -1
- package/library/skills/audio-direction/SKILL.md +1 -1
- package/library/skills/auto-fire-targeting/SKILL.md +1 -1
- package/library/skills/brainstorm-game/SKILL.md +1 -1
- package/library/skills/brainstorming/SKILL.md +1 -1
- package/library/skills/browse-templates/SKILL.md +3 -3
- package/library/skills/browse-templates/resource.yaml +1 -1
- package/library/skills/camera-rigs/SKILL.md +128 -0
- package/library/skills/camera-rigs/resource.yaml +29 -0
- package/library/skills/celeste-momentum-platforming/SKILL.md +1 -1
- package/library/skills/character-animation-wiring/SKILL.md +1 -1
- package/library/skills/character-model/SKILL.md +1 -1
- package/library/skills/character-movement/SKILL.md +326 -0
- package/library/skills/character-movement/references/default-third-person-controller.gd +201 -0
- package/library/skills/character-movement/references/default-third-person-verification-probe.gd +154 -0
- package/library/skills/character-movement/references/movement-3d.md +136 -0
- package/library/skills/character-movement/references/platformer-feel.md +83 -0
- package/library/skills/character-movement/resource.yaml +40 -0
- package/library/skills/character-portrait/SKILL.md +1 -1
- package/library/skills/cinematic-cutscene/SKILL.md +1 -1
- package/library/skills/combat-basics/SKILL.md +159 -0
- package/library/skills/combat-basics/references/projectiles-and-aoe.md +100 -0
- package/library/skills/combat-basics/resource.yaml +34 -0
- package/library/skills/concept-art/SKILL.md +1 -1
- package/library/skills/create-asset-sheet/SKILL.md +1 -1
- package/library/skills/debug/SKILL.md +1 -1
- package/library/skills/debugging-game-feel/SKILL.md +1 -1
- package/library/skills/design-level/SKILL.md +1 -1
- package/library/skills/design-mechanic/SKILL.md +1 -1
- package/library/skills/design-npc/SKILL.md +1 -1
- package/library/skills/diagnosing-perf-regressions/SKILL.md +1 -1
- package/library/skills/dispatching-parallel-agents/SKILL.md +1 -1
- package/library/skills/driving-the-editor-ui/SKILL.md +1 -1
- package/library/skills/environment-kit/SKILL.md +1 -1
- package/library/skills/export-and-ship/SKILL.md +1 -1
- package/library/skills/fabricating-assets/SKILL.md +1 -1
- package/library/skills/facial-and-lipsync/SKILL.md +1 -1
- package/library/skills/fps-controller/SKILL.md +9 -7
- package/library/skills/fps-controller/resource.yaml +4 -1
- package/library/skills/game-feel/SKILL.md +1 -1
- package/library/skills/gameskill/SKILL.md +1 -1
- package/library/skills/gdscript-patterns/SKILL.md +1 -1
- package/library/skills/generate-motion/SKILL.md +9 -9
- package/library/skills/generate-motion/resource.yaml +2 -1
- package/library/skills/godogen-visual-proof-game-generation/SKILL.md +1 -1
- package/library/skills/headless-scripting/SKILL.md +1 -1
- package/library/skills/in-game-purchases/SKILL.md +254 -0
- package/library/skills/in-game-purchases/resource.yaml +29 -0
- package/library/skills/instantiate-asset-pack/SKILL.md +1 -1
- package/library/skills/investigating-bugs/SKILL.md +1 -1
- package/library/skills/lumera-single-image-scene-reconstruction/SKILL.md +1 -1
- package/library/skills/make-game/SKILL.md +25 -3
- package/library/skills/make-game/references/2d-platformer-polish.md +93 -0
- package/library/skills/make-game/references/2d-platformer.md +117 -0
- package/library/skills/make-game/references/2d-rpg-content.md +234 -0
- package/library/skills/make-game/references/2d-rpg.md +241 -0
- package/library/skills/make-game/references/2d-survivors-progression.md +201 -0
- package/library/skills/make-game/references/2d-survivors.md +237 -0
- package/library/skills/make-game/references/3d-fps-systems.md +216 -0
- package/library/skills/make-game/references/3d-fps.md +177 -0
- package/library/skills/make-game/references/3d-horror-systems.md +186 -0
- package/library/skills/make-game/references/3d-horror.md +201 -0
- package/library/skills/make-game/references/3d-third-person-systems.md +220 -0
- package/library/skills/make-game/references/3d-third-person.md +215 -0
- package/library/skills/make-game/resource.yaml +6 -1
- package/library/skills/multiplayer/SKILL.md +150 -0
- package/library/skills/multiplayer/resource.yaml +33 -0
- package/library/skills/multiplayer-movement/SKILL.md +510 -0
- package/library/skills/multiplayer-movement/files.md +501 -0
- package/library/skills/multiplayer-movement/resource.yaml +30 -0
- package/library/skills/multiplayer-project/SKILL.md +521 -0
- package/library/skills/multiplayer-project/files.md +448 -0
- package/library/skills/multiplayer-project/resource.yaml +36 -0
- package/library/skills/multiplayer-publish/SKILL.md +229 -0
- package/library/skills/multiplayer-publish/export-errors.md +89 -0
- package/library/skills/multiplayer-publish/resource.yaml +28 -0
- package/library/skills/multiplayer-state/SKILL.md +438 -0
- package/library/skills/multiplayer-state/files.md +592 -0
- package/library/skills/multiplayer-state/resource.yaml +35 -0
- package/library/skills/multiplayer-testing/SKILL.md +236 -0
- package/library/skills/multiplayer-testing/resource.yaml +39 -0
- package/library/skills/music-track/SKILL.md +1 -1
- package/library/skills/navigate-summer/SKILL.md +1 -1
- package/library/skills/new-project/SKILL.md +1 -1
- package/library/skills/organic-model/SKILL.md +1 -1
- package/library/skills/pixel-art/SKILL.md +1 -1
- package/library/skills/play/SKILL.md +1 -1
- package/library/skills/playtesting-a-feature/SKILL.md +1 -1
- package/library/skills/procedural-animation/SKILL.md +2 -2
- package/library/skills/procedural-animation/resource.yaml +1 -1
- package/library/skills/prop-model/SKILL.md +1 -1
- package/library/skills/psx-retro-rendering/SKILL.md +1 -1
- package/library/skills/realtime-wet-surfaces/SKILL.md +2 -2
- package/library/skills/remote-deploy/SKILL.md +1 -1
- package/library/skills/retarget/SKILL.md +1 -1
- package/library/skills/running-in-the-cloud/SKILL.md +1 -1
- package/library/skills/save-load/SKILL.md +156 -0
- package/library/skills/save-load/resource.yaml +27 -0
- package/library/skills/scene-composition/SKILL.md +1 -1
- package/library/skills/scene-hierarchy-design/SKILL.md +1 -1
- package/library/skills/scene-scripting/SKILL.md +1 -1
- package/library/skills/scene-to-level/SKILL.md +1 -1
- package/library/skills/skill-create/SKILL.md +1 -1
- package/library/skills/skill-improve/SKILL.md +1 -1
- package/library/skills/skill-test/SKILL.md +1 -1
- package/library/skills/skintokens-auto-rigging/SKILL.md +1 -1
- package/library/skills/skybox-panorama/SKILL.md +1 -1
- package/library/skills/sound-effect/SKILL.md +1 -1
- package/library/skills/spatial-placement/SKILL.md +134 -3
- package/library/skills/spatial-placement/references/kit-placement-tools.md +364 -0
- package/library/skills/spatial-placement/resource.yaml +16 -2
- package/library/skills/sprite-sheet/SKILL.md +1 -1
- package/library/skills/summer-analytics/SKILL.md +147 -0
- package/library/skills/summer-analytics/resource.yaml +28 -0
- package/library/skills/summer-friends/SKILL.md +226 -0
- package/library/skills/summer-friends/resource.yaml +28 -0
- package/library/skills/summer-leaderboards/SKILL.md +231 -0
- package/library/skills/summer-leaderboards/resource.yaml +30 -0
- package/library/skills/summer-match-results/SKILL.md +286 -0
- package/library/skills/summer-match-results/resource.yaml +32 -0
- package/library/skills/summer-matchmaking/SKILL.md +301 -0
- package/library/skills/summer-matchmaking/resource.yaml +32 -0
- package/library/skills/summer-parties/SKILL.md +253 -0
- package/library/skills/summer-parties/resource.yaml +30 -0
- package/library/skills/summer-player-data/SKILL.md +322 -0
- package/library/skills/summer-player-data/resource.yaml +30 -0
- package/library/skills/summer-store/SKILL.md +271 -0
- package/library/skills/summer-store/resource.yaml +29 -0
- package/library/skills/summer-world-chat/SKILL.md +195 -0
- package/library/skills/summer-world-chat/resource.yaml +30 -0
- package/library/skills/summer-world-saves/SKILL.md +284 -0
- package/library/skills/summer-world-saves/resource.yaml +29 -0
- package/library/skills/text-to-motion/SKILL.md +99 -0
- package/library/skills/text-to-motion/prompts-and-controls.md +34 -0
- package/library/skills/text-to-motion/resource.yaml +41 -0
- package/library/skills/text-to-motion/rigging-for-text-motion.md +54 -0
- package/library/skills/tileable-texture/SKILL.md +1 -1
- package/library/skills/trailer-shot/SKILL.md +1 -1
- package/library/skills/tune-performance/SKILL.md +1 -1
- package/library/skills/ui-basics/SKILL.md +10 -1
- package/library/skills/ui-graphics/SKILL.md +1 -1
- package/library/skills/use-widget-asset/SKILL.md +1 -1
- package/library/skills/using-summer/SKILL.md +2 -2
- package/library/skills/using-summer/resource.yaml +2 -2
- package/library/skills/vehicle-model/SKILL.md +1 -1
- package/library/skills/verification-before-completion/SKILL.md +1 -1
- package/library/skills/verifying-scenes/SKILL.md +76 -2
- package/library/skills/verifying-scenes/resource.yaml +13 -2
- package/library/skills/vfx-dissolve/SKILL.md +1 -1
- package/library/skills/vfx-fire/SKILL.md +1 -1
- package/library/skills/vfx-hit-spark/SKILL.md +1 -1
- package/library/skills/vfx-lightning/SKILL.md +1 -1
- package/library/skills/vfx-magic-glow/SKILL.md +1 -1
- package/library/skills/vfx-muzzle-flash/SKILL.md +1 -1
- package/library/skills/vfx-smoke/SKILL.md +1 -1
- package/library/skills/vfx-water-ripple/SKILL.md +1 -1
- package/library/skills/voice-line/SKILL.md +1 -1
- package/library/skills/web-and-touch-input/SKILL.md +38 -0
- package/library/skills/web-and-touch-input/resource.yaml +28 -0
- package/library/skills/web-compatibility-look/SKILL.md +62 -0
- package/library/skills/web-compatibility-look/resource.yaml +30 -0
- package/library/skills/world-building-3d/SKILL.md +8 -1
- package/library/skills/world-building-3d/references/spatial-tools.md +1 -1
- package/library/skills/world-building-3d/resource.yaml +2 -1
- package/library/skills/writing-plans/SKILL.md +1 -1
- package/library/skills/writing-skills/SKILL.md +1 -1
- package/library/templates/3d-lan-multiplayer-starter/resource.yaml +2 -2
- package/library/tools/attach-to-surface/resource.yaml +142 -0
- package/library/tools/batch/resource.yaml +9 -3
- package/library/tools/connect-ports/resource.yaml +120 -0
- package/library/tools/connect-signal/resource.yaml +3 -2
- package/library/tools/debug-views/resource.yaml +94 -0
- package/library/tools/frame-nodes/resource.yaml +104 -0
- package/library/tools/frame-shot/resource.yaml +134 -0
- package/library/tools/generate-motion/resource.yaml +44 -9
- package/library/tools/get-board/resource.yaml +50 -0
- package/library/tools/get-project-context/resource.yaml +13 -2
- package/library/tools/grep/resource.yaml +77 -0
- package/library/tools/inspect-asset/resource.yaml +71 -0
- package/library/tools/inspect-node/resource.yaml +9 -2
- package/library/tools/inspect-resource/resource.yaml +16 -5
- package/library/tools/instantiate-scene/resource.yaml +27 -2
- package/library/tools/measure/resource.yaml +96 -0
- package/library/tools/place-adjacent/resource.yaml +113 -0
- package/library/tools/play/resource.yaml +15 -2
- package/library/tools/raycast/resource.yaml +101 -0
- package/library/tools/read-file/resource.yaml +36 -2
- package/library/tools/read-library/resource.yaml +2 -2
- package/library/tools/repeat-along/resource.yaml +129 -0
- package/library/tools/replace-node/resource.yaml +11 -5
- package/library/tools/scene-audit/resource.yaml +144 -0
- package/library/tools/screenshot/resource.yaml +13 -2
- package/library/tools/search-assets/resource.yaml +18 -0
- package/library/tools/shot-sheet/resource.yaml +110 -0
- package/library/tools/snap-to-surface/resource.yaml +4 -1
- package/library/tools/world-snapshot/resource.yaml +24 -3
- package/library/tools/zoom/resource.yaml +105 -0
- package/package.json +1 -1
- package/registry/generated/aliases.json +17 -3
- package/registry/generated/counts.json +3 -3
- package/registry/generated/gemini-extension.json +26 -4
- package/registry/generated/index.json +2154 -469
- package/registry/generated/marketplace.claude.json +2 -2
- package/registry/generated/plugin.claude.json +27 -5
- package/registry/generated/plugin.codex.json +28 -6
- package/registry/generated/plugin.cursor.json +27 -5
- package/registry/generated/plugin.factory.json +27 -5
- package/registry/generated/skills-index.md +36 -14
- package/registry/generated/skills-registry.json +421 -124
- package/registry/generated/templates-registry.json +2 -2
- package/library/skills/host-authoritative-state/SKILL.md +0 -332
- package/library/skills/host-authoritative-state/resource.yaml +0 -28
- package/library/skills/peer-to-peer-multiplayer/SKILL.md +0 -373
- package/library/skills/peer-to-peer-multiplayer/resource.yaml +0 -28
- package/library/skills/setup-multiplayer/SKILL.md +0 -336
- package/library/skills/setup-multiplayer/resource.yaml +0 -28
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
id: tool/generate-motion
|
|
2
2
|
kind: tool
|
|
3
|
-
version: 1.0
|
|
4
|
-
summary: Generate a curated mocap
|
|
3
|
+
version: 1.1.0
|
|
4
|
+
summary: Generate animation clips for a rigged model — curated humanoid mocap by name, or text-to-motion on any of your own rigs; costs credits, so confirm first.
|
|
5
5
|
use_when:
|
|
6
6
|
- adding idle, walk, run, or combat clips to a rigged character
|
|
7
7
|
- '"make my character walk / run / swing a sword"'
|
|
8
8
|
- '"I need an idle animation for the rigged NPC"'
|
|
9
|
+
- a custom action the curated library lacks — nod, bow, shrug, wave with the right arm
|
|
10
|
+
- animating a non-humanoid rig — a talking flower, animal, creature, turret or prop
|
|
9
11
|
do_not_use_when:
|
|
10
|
-
- the target model
|
|
11
|
-
- the motion is
|
|
12
|
+
- the target model is not rigged — rig it first
|
|
13
|
+
- the motion is mechanical (doors, vehicles, cameras) — animate with a script or AnimationPlayer
|
|
12
14
|
facets:
|
|
13
15
|
lifecycle:
|
|
14
16
|
- build
|
|
@@ -34,27 +36,60 @@ input_schema:
|
|
|
34
36
|
properties:
|
|
35
37
|
rigAssetId:
|
|
36
38
|
type: string
|
|
37
|
-
description: Asset ID of a rigged
|
|
39
|
+
description: "Asset ID of the rigged 3d_model. meshy-library: a Summer-rigged humanoid (summer_generate_3d with options.rig=true). text-to-motion: any of your own rigged GLB/FBX models"
|
|
38
40
|
backend:
|
|
39
41
|
type: string
|
|
40
42
|
enum:
|
|
41
43
|
- meshy-library
|
|
44
|
+
- text-to-motion
|
|
42
45
|
default: meshy-library
|
|
43
|
-
description: "
|
|
46
|
+
description: "meshy-library (default): curated humanoid mocap clip by motionName. text-to-motion: custom clips from text prompts on any of your own rigs (humanoid, animal, creature, plant, prop)"
|
|
44
47
|
motionName:
|
|
45
48
|
type: string
|
|
46
|
-
description: "
|
|
49
|
+
description: "meshy-library only (required there): curated motion name — idle, walk, run, jump, attack, or an exact library name"
|
|
50
|
+
prompt:
|
|
51
|
+
type: string
|
|
52
|
+
minLength: 1
|
|
53
|
+
maxLength: 300
|
|
54
|
+
description: "text-to-motion: one action as a verb phrase, e.g. 'waves hello with the right arm' (1-300 chars). Shorthand for prompts: [prompt]"
|
|
55
|
+
prompts:
|
|
56
|
+
type: array
|
|
57
|
+
items:
|
|
58
|
+
type: string
|
|
59
|
+
minLength: 1
|
|
60
|
+
maxLength: 300
|
|
61
|
+
minItems: 1
|
|
62
|
+
maxItems: 8
|
|
63
|
+
description: "text-to-motion: 1-8 actions, one clip each (each 1-300 chars)"
|
|
64
|
+
takes:
|
|
65
|
+
type: integer
|
|
66
|
+
minimum: 1
|
|
67
|
+
maximum: 4
|
|
68
|
+
description: "text-to-motion: variations per prompt, 1-4 (default 1). Every take is a billed clip"
|
|
69
|
+
lockJoints:
|
|
70
|
+
type: array
|
|
71
|
+
items:
|
|
72
|
+
type: string
|
|
73
|
+
minLength: 1
|
|
74
|
+
description: "text-to-motion: bone names held still, e.g. ['Hips','Spine'] for a rooted plant. Never on characters that walk or jump"
|
|
75
|
+
cfgScale:
|
|
76
|
+
type: number
|
|
77
|
+
minimum: 1.5
|
|
78
|
+
maximum: 8
|
|
79
|
+
description: "text-to-motion: prompt adherence 1.5-8 (default 3); 5 for bigger, clearer gestures on stylized rigs"
|
|
80
|
+
idempotencyKey:
|
|
81
|
+
type: string
|
|
82
|
+
description: Stable retry key so the same logical request is not billed or queued twice
|
|
47
83
|
wait:
|
|
48
84
|
type: boolean
|
|
49
85
|
default: true
|
|
50
|
-
description: Wait for completion (default true, up to
|
|
86
|
+
description: Wait for completion (default true, up to 10 min). Set false to get jobId immediately.
|
|
51
87
|
options:
|
|
52
88
|
type: object
|
|
53
89
|
additionalProperties: {}
|
|
54
90
|
description: Backend-specific passthrough
|
|
55
91
|
required:
|
|
56
92
|
- rigAssetId
|
|
57
|
-
- motionName
|
|
58
93
|
additionalProperties: false
|
|
59
94
|
authority:
|
|
60
95
|
filesystem: false
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
id: tool/get-board
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: Read the person's approved planning board (look, characters, place, storyboard, picks) with the look and picked cards as images to compare screenshots against.
|
|
5
|
+
use_when:
|
|
6
|
+
- starting a build step for a game made from a planning board
|
|
7
|
+
- '"does the game look like the board?"'
|
|
8
|
+
- comparing a screenshot with the chosen look and picked cards
|
|
9
|
+
do_not_use_when:
|
|
10
|
+
- the game was not made from a planning board (no project id in the brief)
|
|
11
|
+
facets:
|
|
12
|
+
lifecycle:
|
|
13
|
+
- build
|
|
14
|
+
domains:
|
|
15
|
+
- game-design
|
|
16
|
+
- verification
|
|
17
|
+
compatibility:
|
|
18
|
+
engine: ">=4.6"
|
|
19
|
+
source: official
|
|
20
|
+
license: MIT
|
|
21
|
+
status: stable
|
|
22
|
+
aliases:
|
|
23
|
+
- summer_get_board
|
|
24
|
+
implementation:
|
|
25
|
+
module: src/mcp/tools/generate-tools.ts
|
|
26
|
+
export: registerGenerateTools
|
|
27
|
+
surfaces:
|
|
28
|
+
mcp:
|
|
29
|
+
tool_name: summer_get_board
|
|
30
|
+
remote: true
|
|
31
|
+
input_schema:
|
|
32
|
+
type: object
|
|
33
|
+
properties:
|
|
34
|
+
project:
|
|
35
|
+
type: string
|
|
36
|
+
description: The game's project id (given in your build brief)
|
|
37
|
+
pictures:
|
|
38
|
+
type: boolean
|
|
39
|
+
description: Also return the look and the picked cards as images (default true)
|
|
40
|
+
required:
|
|
41
|
+
- project
|
|
42
|
+
additionalProperties: false
|
|
43
|
+
authority:
|
|
44
|
+
filesystem: false
|
|
45
|
+
editor_mutation: false
|
|
46
|
+
network: true
|
|
47
|
+
credentials: false
|
|
48
|
+
publish: false
|
|
49
|
+
evidence_checks:
|
|
50
|
+
- none
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
id: tool/get-project-context
|
|
2
2
|
kind: tool
|
|
3
|
-
version:
|
|
4
|
-
summary: Bind to the open project and return
|
|
3
|
+
version: 2.0.0
|
|
4
|
+
summary: "Bind to the open project and return a compact context (project, current and main scene, health summary, template pin, memory, warnings); tree on request."
|
|
5
5
|
use_when:
|
|
6
6
|
- first call in every fresh session, to avoid guessing scene filenames
|
|
7
7
|
- deliberately rebinding after the engine switched projects
|
|
8
|
+
- reading the open scene's tree, the engine's op list or project settings (include)
|
|
8
9
|
facets:
|
|
9
10
|
lifecycle:
|
|
10
11
|
- build
|
|
@@ -28,6 +29,16 @@ surfaces:
|
|
|
28
29
|
input_schema:
|
|
29
30
|
type: object
|
|
30
31
|
properties:
|
|
32
|
+
include:
|
|
33
|
+
type: array
|
|
34
|
+
items:
|
|
35
|
+
type: string
|
|
36
|
+
enum:
|
|
37
|
+
- scene_tree
|
|
38
|
+
- capabilities
|
|
39
|
+
- settings
|
|
40
|
+
maxItems: 3
|
|
41
|
+
description: "Heavy blocks to add to the compact default: 'scene_tree' (the open scene's node tree, up to 200 nodes), 'capabilities' (the engine's full op/capability lists), 'settings' (project settings, curated groups). settingsPrefix/settingsPrefixes imply 'settings'."
|
|
31
42
|
settingsPrefix:
|
|
32
43
|
type: string
|
|
33
44
|
description: Only return project settings whose key starts with this prefix, e.g. 'audio/' or 'application/config/'. Omit for the curated default set.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
id: tool/grep
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: Search project files with a regex (ripgrep through the engine) and get file, line and text per match, with optional context lines and a result cap.
|
|
5
|
+
use_when:
|
|
6
|
+
- finding where something is in big project files without reading them whole
|
|
7
|
+
- '"which entries of a big JSON file list fits_into?" / "every mount_side entry"'
|
|
8
|
+
- '"where is _on_door_body_entered defined?" / "which scenes use this material?"'
|
|
9
|
+
do_not_use_when:
|
|
10
|
+
- you already know the file and want its content — summer_read_file (offset/limit, json_path)
|
|
11
|
+
- searching the Summer library — summer_search_library
|
|
12
|
+
facets:
|
|
13
|
+
lifecycle:
|
|
14
|
+
- build
|
|
15
|
+
domains:
|
|
16
|
+
- file
|
|
17
|
+
- project
|
|
18
|
+
compatibility:
|
|
19
|
+
engine: ">=4.6"
|
|
20
|
+
related:
|
|
21
|
+
tools:
|
|
22
|
+
- tool/read-file
|
|
23
|
+
source: official
|
|
24
|
+
license: MIT
|
|
25
|
+
status: preview
|
|
26
|
+
aliases:
|
|
27
|
+
- summer_grep
|
|
28
|
+
implementation:
|
|
29
|
+
module: src/mcp/tools/file-tools.ts
|
|
30
|
+
export: registerFileTools
|
|
31
|
+
surfaces:
|
|
32
|
+
mcp:
|
|
33
|
+
tool_name: summer_grep
|
|
34
|
+
remote: false
|
|
35
|
+
input_schema:
|
|
36
|
+
type: object
|
|
37
|
+
properties:
|
|
38
|
+
pattern:
|
|
39
|
+
type: string
|
|
40
|
+
minLength: 1
|
|
41
|
+
description: Ripgrep regular expression, e.g. '"fits_into"' or 'func _on_.*_pressed'
|
|
42
|
+
path:
|
|
43
|
+
type: string
|
|
44
|
+
description: "Search scope: a res:// directory or file, e.g. 'res://kit/' or 'res://kit/kit_manifest.json'. Default: the whole project."
|
|
45
|
+
glob:
|
|
46
|
+
type: string
|
|
47
|
+
description: File filter passed to ripgrep --glob, e.g. '*.gd', '**/*.json', '!addons/**'. A glob also reaches files .gitignore would skip.
|
|
48
|
+
case_sensitive:
|
|
49
|
+
type: boolean
|
|
50
|
+
description: "Match case exactly (default false: case-insensitive)."
|
|
51
|
+
context_lines:
|
|
52
|
+
type: integer
|
|
53
|
+
minimum: 0
|
|
54
|
+
maximum: 10
|
|
55
|
+
description: Lines of context before and after each match (0-10, default 0).
|
|
56
|
+
max_results:
|
|
57
|
+
type: integer
|
|
58
|
+
exclusiveMinimum: 0
|
|
59
|
+
maximum: 500
|
|
60
|
+
description: Most matches to return (default 50, max 500). truncated:true means there were more.
|
|
61
|
+
max_line_chars:
|
|
62
|
+
type: integer
|
|
63
|
+
minimum: 40
|
|
64
|
+
maximum: 2000
|
|
65
|
+
description: Clip every returned line to this many characters (default 240).
|
|
66
|
+
multiline:
|
|
67
|
+
type: boolean
|
|
68
|
+
description: Let the pattern span lines (ripgrep -U --multiline-dotall).
|
|
69
|
+
required:
|
|
70
|
+
- pattern
|
|
71
|
+
additionalProperties: false
|
|
72
|
+
authority:
|
|
73
|
+
filesystem: false
|
|
74
|
+
editor_mutation: false
|
|
75
|
+
network: false
|
|
76
|
+
credentials: false
|
|
77
|
+
publish: false
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
id: tool/inspect-asset
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: Measure a 3D asset file without adding it to a scene — AABB, origin, meshes, largest planar faces, open pipe ends, Marker3D anchors, collision shapes.
|
|
5
|
+
use_when:
|
|
6
|
+
- learning a kit piece's real size, origin and which way it faces before placing it
|
|
7
|
+
- finding a piece's front and back planes (largest planar faces with their normals) or its pipe and duct ends (open boundary loops)
|
|
8
|
+
- reading the Marker3D anchors or collision shapes a kit piece ships with
|
|
9
|
+
do_not_use_when:
|
|
10
|
+
- the piece is already in the scene and you need what surrounds it — summer_starcast
|
|
11
|
+
- you need the measurement between two placed nodes — summer_measure
|
|
12
|
+
facets:
|
|
13
|
+
lifecycle:
|
|
14
|
+
- build
|
|
15
|
+
domains:
|
|
16
|
+
- scenes
|
|
17
|
+
- 3d
|
|
18
|
+
- world-building
|
|
19
|
+
- assets
|
|
20
|
+
modalities:
|
|
21
|
+
- scenes
|
|
22
|
+
compatibility:
|
|
23
|
+
engine: ">=4.6"
|
|
24
|
+
related:
|
|
25
|
+
tools:
|
|
26
|
+
- tool/instantiate-scene
|
|
27
|
+
- tool/attach-to-surface
|
|
28
|
+
- tool/connect-ports
|
|
29
|
+
- tool/starcast
|
|
30
|
+
skills:
|
|
31
|
+
- skill/spatial-placement
|
|
32
|
+
source: official
|
|
33
|
+
license: MIT
|
|
34
|
+
status: preview
|
|
35
|
+
aliases:
|
|
36
|
+
- summer_inspect_asset
|
|
37
|
+
implementation:
|
|
38
|
+
module: src/mcp/tools/placement-tools.ts
|
|
39
|
+
export: registerPlacementTools
|
|
40
|
+
surfaces:
|
|
41
|
+
mcp:
|
|
42
|
+
tool_name: summer_inspect_asset
|
|
43
|
+
remote: false
|
|
44
|
+
input_schema:
|
|
45
|
+
type: object
|
|
46
|
+
properties:
|
|
47
|
+
path:
|
|
48
|
+
type: string
|
|
49
|
+
minLength: 1
|
|
50
|
+
maxLength: 512
|
|
51
|
+
description: Asset to measure, e.g. 'res://kit/facade/wall_single_01.tscn' (.tscn, .scn, .glb, .gltf, .res, .tres, .mesh or .obj). Loaded and instanced off-scene, never added to an open scene.
|
|
52
|
+
maxTriangles:
|
|
53
|
+
type: integer
|
|
54
|
+
minimum: 100
|
|
55
|
+
maximum: 300000
|
|
56
|
+
default: 60000
|
|
57
|
+
description: Triangle budget (100-300000) for the face and open-loop analysis (AABBs and counts are always complete). summary.warnings says when the budget cut the analysis and which budget covers the whole mesh.
|
|
58
|
+
detail:
|
|
59
|
+
type: string
|
|
60
|
+
enum: [summary, full]
|
|
61
|
+
default: summary
|
|
62
|
+
description: "summary: open_loops lists only port-like loops (radius over 2 cm with a partner loop facing another way, or the one opening of an end piece on its bounding-box face), or none. full: every open loop, including the outline of flat sheets. Every loop has a stable id ('+Y', '+Y#2') that summer_connect_ports accepts. Both start with the summary block (AABB, origin, the two largest opposite plane pairs with one_sided flags, port-like loop ids)."
|
|
63
|
+
required:
|
|
64
|
+
- path
|
|
65
|
+
additionalProperties: false
|
|
66
|
+
authority:
|
|
67
|
+
filesystem: false
|
|
68
|
+
editor_mutation: false
|
|
69
|
+
network: false
|
|
70
|
+
credentials: false
|
|
71
|
+
publish: false
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
id: tool/inspect-node
|
|
2
2
|
kind: tool
|
|
3
|
-
version: 1.0
|
|
4
|
-
summary:
|
|
3
|
+
version: 1.1.0
|
|
4
|
+
summary: A node's editable properties with values, Variant types and resources, or only named fields plus derived transform, global_transform, scene_file_path.
|
|
5
5
|
use_when:
|
|
6
6
|
- before modifying a node, to understand its current state
|
|
7
7
|
- "\"what is the player's speed / position / collision layer?\""
|
|
8
8
|
- '"which material and mesh does this MeshInstance3D use?"'
|
|
9
|
+
- '"where is this piece, locally and in the world, and which scene is it?" — fields:[transform, global_transform, scene_file_path]'
|
|
9
10
|
do_not_use_when:
|
|
10
11
|
- sub-properties of the material, mesh, or shape itself — summer_inspect_resource
|
|
11
12
|
- live values while the game runs — summer_inspect_runtime_node
|
|
@@ -35,6 +36,12 @@ input_schema:
|
|
|
35
36
|
path:
|
|
36
37
|
type: string
|
|
37
38
|
description: Node path from scene tree, e.g. 'Player', 'World/Enemies/Boss', 'DirectionalLight3D'
|
|
39
|
+
fields:
|
|
40
|
+
type: array
|
|
41
|
+
items:
|
|
42
|
+
type: string
|
|
43
|
+
maxItems: 48
|
|
44
|
+
description: "Only these fields: property names or globs (e.g. 'position', 'surface_material_override/*') and the derived fields transform, global_transform, scene_file_path, aabb, warnings. Omit for every property."
|
|
38
45
|
required:
|
|
39
46
|
- path
|
|
40
47
|
additionalProperties: false
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
id: tool/inspect-resource
|
|
2
2
|
kind: tool
|
|
3
|
-
version: 1.0
|
|
4
|
-
summary:
|
|
3
|
+
version: 1.1.0
|
|
4
|
+
summary: Read a resource file (a mesh's AABB, surfaces and materials; a scene's nodes; any resource's non-default properties) or a resource a node holds.
|
|
5
5
|
use_when:
|
|
6
6
|
- reading sub-properties that the node inspector only names
|
|
7
|
+
- '"how many surfaces, triangles and which materials does this mesh .res have?"'
|
|
7
8
|
- '"what colour is this material?" / "how big is this collision shape?"'
|
|
8
9
|
- '"what settings does the WorldEnvironment resource have?"'
|
|
9
10
|
do_not_use_when:
|
|
@@ -33,9 +34,19 @@ input_schema:
|
|
|
33
34
|
properties:
|
|
34
35
|
path:
|
|
35
36
|
type: string
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
minLength: 1
|
|
38
|
+
maxLength: 512
|
|
39
|
+
description: A resource FILE, e.g. 'res://materials/ground.tres', a mesh 'res://kit/meshes/wall_01.res', or a scene/model 'res://models/player.glb'. Loaded read-only in the editor. Do not combine with nodePath.
|
|
40
|
+
nodePath:
|
|
41
|
+
type: string
|
|
42
|
+
minLength: 1
|
|
43
|
+
maxLength: 256
|
|
44
|
+
description: With property, a node of the ACTIVE scene tab whose resource to read, e.g. 'Floor'.
|
|
45
|
+
property:
|
|
46
|
+
type: string
|
|
47
|
+
minLength: 1
|
|
48
|
+
maxLength: 128
|
|
49
|
+
description: With nodePath, the node property holding the resource, e.g. 'mesh', 'material_override', 'shape', 'environment'.
|
|
39
50
|
additionalProperties: false
|
|
40
51
|
authority:
|
|
41
52
|
filesystem: false
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
id: tool/instantiate-scene
|
|
2
2
|
kind: tool
|
|
3
|
-
version: 1.0
|
|
4
|
-
summary: Add an existing scene or 3D model file as a child node,
|
|
3
|
+
version: 1.1.0
|
|
4
|
+
summary: Add an existing scene or 3D model file as a child node, optionally placed in the same call (position, rotation_degrees, scale or transform).
|
|
5
5
|
use_when:
|
|
6
6
|
- placing a .tscn prefab or imported 3D model into a scene
|
|
7
7
|
- '"put three copies of the enemy prefab in the level"'
|
|
8
8
|
- '"add the imported car.glb to the scene"'
|
|
9
|
+
- placing a kit piece at an exact position and rotation in one call per piece
|
|
9
10
|
do_not_use_when:
|
|
10
11
|
- a bare built-in node type like Camera3D or Timer — summer_add_node
|
|
11
12
|
facets:
|
|
@@ -47,6 +48,30 @@ input_schema:
|
|
|
47
48
|
type: number
|
|
48
49
|
exclusiveMinimum: 0
|
|
49
50
|
description: Normalize the instance's physical size - uniformly scale it so its largest world-AABB dimension equals this many units (chair 1.0, car 4.5, person 1.7). Strongly recommended for imported .glb/.gltf models. Older engine builds ignore it; the result then lacks scale_applied and carries a target_size_note.
|
|
51
|
+
position:
|
|
52
|
+
type: array
|
|
53
|
+
minItems: 3
|
|
54
|
+
maxItems: 3
|
|
55
|
+
items:
|
|
56
|
+
type: number
|
|
57
|
+
description: Parent-local position [x, y, z], set right after the instance is created (on the node path its receipt reports).
|
|
58
|
+
rotation_degrees:
|
|
59
|
+
type: array
|
|
60
|
+
minItems: 3
|
|
61
|
+
maxItems: 3
|
|
62
|
+
items:
|
|
63
|
+
type: number
|
|
64
|
+
description: Parent-local rotation in degrees [x, y, z].
|
|
65
|
+
scale:
|
|
66
|
+
type: array
|
|
67
|
+
minItems: 3
|
|
68
|
+
maxItems: 3
|
|
69
|
+
items:
|
|
70
|
+
type: number
|
|
71
|
+
description: Local scale [x, y, z]. Not with target_size.
|
|
72
|
+
transform:
|
|
73
|
+
type: string
|
|
74
|
+
description: Full local transform as "Transform3D(xx, xy, xz, yx, yy, yz, zx, zy, zz, ox, oy, oz)". Not with position, rotation_degrees, scale or target_size.
|
|
50
75
|
required:
|
|
51
76
|
- scenePath
|
|
52
77
|
- parent
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
id: tool/measure
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: Gap or overlap per axis between two placed nodes, or whether one face of many nodes is coplanar — catches facade gaps and modules standing proud. Read-only.
|
|
5
|
+
use_when:
|
|
6
|
+
- checking that two facade modules meet edge to edge, or how far apart or overlapping two pieces are on each axis
|
|
7
|
+
- checking that every module of a facade line has its front on one plane (plane mode) and which ones stand proud or sit recessed
|
|
8
|
+
- verifying a placement numerically before the screenshot
|
|
9
|
+
do_not_use_when:
|
|
10
|
+
- you want clearance around one node in every direction — summer_starcast
|
|
11
|
+
- you want to test a pose before moving anything — summer_test_placement
|
|
12
|
+
facets:
|
|
13
|
+
lifecycle:
|
|
14
|
+
- build
|
|
15
|
+
domains:
|
|
16
|
+
- scenes
|
|
17
|
+
- 3d
|
|
18
|
+
- world-building
|
|
19
|
+
- verification
|
|
20
|
+
modalities:
|
|
21
|
+
- scenes
|
|
22
|
+
compatibility:
|
|
23
|
+
engine: ">=4.6"
|
|
24
|
+
related:
|
|
25
|
+
tools:
|
|
26
|
+
- tool/starcast
|
|
27
|
+
- tool/place-adjacent
|
|
28
|
+
- tool/screenshot
|
|
29
|
+
skills:
|
|
30
|
+
- skill/spatial-placement
|
|
31
|
+
source: official
|
|
32
|
+
license: MIT
|
|
33
|
+
status: preview
|
|
34
|
+
aliases:
|
|
35
|
+
- summer_measure
|
|
36
|
+
implementation:
|
|
37
|
+
module: src/mcp/tools/placement-tools.ts
|
|
38
|
+
export: registerPlacementTools
|
|
39
|
+
surfaces:
|
|
40
|
+
mcp:
|
|
41
|
+
tool_name: summer_measure
|
|
42
|
+
remote: false
|
|
43
|
+
input_schema:
|
|
44
|
+
type: object
|
|
45
|
+
properties:
|
|
46
|
+
scenePath:
|
|
47
|
+
type: string
|
|
48
|
+
minLength: 1
|
|
49
|
+
maxLength: 512
|
|
50
|
+
description: Exact scene, e.g. 'res://levels/street.tscn'. It must be open in the editor (any tab).
|
|
51
|
+
mode:
|
|
52
|
+
type: string
|
|
53
|
+
enum: [pair, plane]
|
|
54
|
+
default: pair
|
|
55
|
+
description: "pair: gap or overlap per axis between nodes a and b. plane: whether one face of every node in nodes lies on one plane."
|
|
56
|
+
a:
|
|
57
|
+
type: string
|
|
58
|
+
description: pair mode, first node (exact path from the scene root).
|
|
59
|
+
b:
|
|
60
|
+
type: string
|
|
61
|
+
description: pair mode, second node.
|
|
62
|
+
axis:
|
|
63
|
+
type: string
|
|
64
|
+
enum: [x, y, z]
|
|
65
|
+
description: pair mode, report only this axis.
|
|
66
|
+
nodes:
|
|
67
|
+
type: array
|
|
68
|
+
minItems: 2
|
|
69
|
+
maxItems: 32
|
|
70
|
+
items:
|
|
71
|
+
type: string
|
|
72
|
+
description: plane mode, 2-32 nodes whose face is checked.
|
|
73
|
+
face:
|
|
74
|
+
type: string
|
|
75
|
+
enum: ["+x", "-x", "+y", "-y", "+z", "-z"]
|
|
76
|
+
description: plane mode, which face, e.g. '+z' for the face pointing along +z.
|
|
77
|
+
space:
|
|
78
|
+
type: string
|
|
79
|
+
enum: [world, local]
|
|
80
|
+
default: world
|
|
81
|
+
description: "world axes, or the axes of a (pair) / nodes[0] (plane) for rotated facades."
|
|
82
|
+
tolerance:
|
|
83
|
+
type: number
|
|
84
|
+
minimum: 0
|
|
85
|
+
maximum: 1
|
|
86
|
+
default: 0.005
|
|
87
|
+
description: Distance treated as touching (pair) or coplanar (plane). Default 5 mm.
|
|
88
|
+
required:
|
|
89
|
+
- scenePath
|
|
90
|
+
additionalProperties: false
|
|
91
|
+
authority:
|
|
92
|
+
filesystem: false
|
|
93
|
+
editor_mutation: false
|
|
94
|
+
network: false
|
|
95
|
+
credentials: false
|
|
96
|
+
publish: false
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
id: tool/place-adjacent
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: Move one node so its bounds face sits against another's along an axis, lining up the other axes — facade modules edge to edge, storeys stacked. Saves the scene.
|
|
5
|
+
use_when:
|
|
6
|
+
- laying facade or wall modules edge to edge along a street line
|
|
7
|
+
- stacking a storey, cornice or crown on the piece below
|
|
8
|
+
- putting a piece flush beside another with the same base height and front plane
|
|
9
|
+
do_not_use_when:
|
|
10
|
+
- aligning or spacing a whole group along one axis — summer_align_distribute_3d
|
|
11
|
+
- seating a piece on a floor or a wall surface — summer_snap_to_surface or summer_attach_to_surface
|
|
12
|
+
facets:
|
|
13
|
+
lifecycle:
|
|
14
|
+
- build
|
|
15
|
+
domains:
|
|
16
|
+
- scenes
|
|
17
|
+
- 3d
|
|
18
|
+
- world-building
|
|
19
|
+
- level-design
|
|
20
|
+
modalities:
|
|
21
|
+
- scenes
|
|
22
|
+
compatibility:
|
|
23
|
+
engine: ">=4.6"
|
|
24
|
+
related:
|
|
25
|
+
tools:
|
|
26
|
+
- tool/measure
|
|
27
|
+
- tool/align-distribute-3d
|
|
28
|
+
- tool/repeat-along
|
|
29
|
+
- tool/inspect-asset
|
|
30
|
+
skills:
|
|
31
|
+
- skill/spatial-placement
|
|
32
|
+
source: official
|
|
33
|
+
license: MIT
|
|
34
|
+
status: preview
|
|
35
|
+
aliases:
|
|
36
|
+
- summer_place_adjacent
|
|
37
|
+
implementation:
|
|
38
|
+
module: src/mcp/tools/placement-tools.ts
|
|
39
|
+
export: registerPlacementTools
|
|
40
|
+
surfaces:
|
|
41
|
+
mcp:
|
|
42
|
+
tool_name: summer_place_adjacent
|
|
43
|
+
remote: false
|
|
44
|
+
input_schema:
|
|
45
|
+
type: object
|
|
46
|
+
properties:
|
|
47
|
+
scenePath:
|
|
48
|
+
type: string
|
|
49
|
+
minLength: 1
|
|
50
|
+
maxLength: 512
|
|
51
|
+
description: Exact scene, e.g. 'res://levels/street.tscn'. It must be open in the editor (any tab).
|
|
52
|
+
subject:
|
|
53
|
+
type: string
|
|
54
|
+
minLength: 1
|
|
55
|
+
maxLength: 256
|
|
56
|
+
description: Node to move (exact path from the scene root).
|
|
57
|
+
reference:
|
|
58
|
+
type: string
|
|
59
|
+
minLength: 1
|
|
60
|
+
maxLength: 256
|
|
61
|
+
description: Node that stays put.
|
|
62
|
+
axis:
|
|
63
|
+
type: string
|
|
64
|
+
enum: [x, y, z]
|
|
65
|
+
description: Axis along which the two pieces meet.
|
|
66
|
+
side:
|
|
67
|
+
type: string
|
|
68
|
+
enum: [min, max]
|
|
69
|
+
description: "max: subject on the reference's +axis side (its min face against the reference's max face). min: the -axis side."
|
|
70
|
+
gap:
|
|
71
|
+
type: number
|
|
72
|
+
minimum: -100
|
|
73
|
+
maximum: 1000
|
|
74
|
+
default: 0
|
|
75
|
+
description: Distance between the two faces along axis. 0 = flush; negative = overlap.
|
|
76
|
+
alignOtherAxes:
|
|
77
|
+
oneOf:
|
|
78
|
+
- type: string
|
|
79
|
+
enum: [min, center, max, none]
|
|
80
|
+
- type: object
|
|
81
|
+
properties:
|
|
82
|
+
x:
|
|
83
|
+
type: string
|
|
84
|
+
enum: [min, center, max, none]
|
|
85
|
+
y:
|
|
86
|
+
type: string
|
|
87
|
+
enum: [min, center, max, none]
|
|
88
|
+
z:
|
|
89
|
+
type: string
|
|
90
|
+
enum: [min, center, max, none]
|
|
91
|
+
additionalProperties: false
|
|
92
|
+
default: none
|
|
93
|
+
description: "How to line up the other two axes: one mode for both, or per axis, e.g. {y: min, z: max} for same base height and one front plane."
|
|
94
|
+
space:
|
|
95
|
+
type: string
|
|
96
|
+
enum: [world, local]
|
|
97
|
+
default: world
|
|
98
|
+
description: world axes, or the reference's own axes for a rotated facade.
|
|
99
|
+
required:
|
|
100
|
+
- scenePath
|
|
101
|
+
- subject
|
|
102
|
+
- reference
|
|
103
|
+
- axis
|
|
104
|
+
- side
|
|
105
|
+
additionalProperties: false
|
|
106
|
+
authority:
|
|
107
|
+
filesystem: true
|
|
108
|
+
editor_mutation: true
|
|
109
|
+
network: false
|
|
110
|
+
credentials: false
|
|
111
|
+
publish: false
|
|
112
|
+
evidence_checks:
|
|
113
|
+
- scene-valid
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
id: tool/play
|
|
2
2
|
kind: tool
|
|
3
|
-
version: 1.
|
|
4
|
-
summary: Start the game quietly
|
|
3
|
+
version: 1.3.0
|
|
4
|
+
summary: Start the game quietly (editor keeps tab and focus) — main or a given scene, embedded or offscreen, with pins, or a local multiplayer session (players).
|
|
5
5
|
use_when:
|
|
6
6
|
- runtime verification after edits
|
|
7
7
|
- the user wants to try the game or one level after a change
|
|
8
8
|
- reproducing a bug that only shows at runtime
|
|
9
9
|
- a deterministic, repeatable playtest run — pin the global RNG with seed and the timestep with fixed_fps
|
|
10
10
|
- launching a deterministic or parallel offscreen playtest instance (seed, fixed frame rate, named offscreen instance) for the runtime tools to drive
|
|
11
|
+
- testing a Summer multiplayer game on this machine — players:2 (Local Play) runs its authority headless and two clients that join through the game's own Summer.client.join; no account, Docker or extra tools
|
|
11
12
|
- launching while the user works on the same machine — the default (focus omitted or false) sends PlayGame agent:true, so the editor does not switch to the Game tab or grab focus; the game still runs embedded and is visible to the runtime tools
|
|
12
13
|
do_not_use_when:
|
|
13
14
|
- the game is already running and needs a restart — summer_stop first (seed/fixed_fps cannot reach a game that is already up)
|
|
@@ -80,6 +81,18 @@ input_schema:
|
|
|
80
81
|
focus:
|
|
81
82
|
type: boolean
|
|
82
83
|
description: "Default false = QUIET play (PlayGame agent:true): the editor does not switch to the Game tab or grab focus for the embedded game, so the user keeps working. Pass true to launch the way the toolbar Play button does (Game tab + focus) — only when the user is watching and asked to see it. The result echoes agent_quiet:true when honoured; a launch result without it (posture_note) means the engine predates quiet play and most likely took focus."
|
|
84
|
+
players:
|
|
85
|
+
type: integer
|
|
86
|
+
minimum: 0
|
|
87
|
+
maximum: 64
|
|
88
|
+
description: "Local Play for a Summer multiplayer game (engine with Local Play): start the game's authority headless plus this many clients on this machine, each joining through the game's own Summer.client.join. The scenes and queue come from the project's summer.build.json WorldDefinition; no account, Docker or game flags are needed. Omit it and pass queue to start the queue's minPlayers from summer.build.json; 0 forces one ordinary run. The result's local_play block lists every process and persona, plus warnings when the roster is outside the queue's minPlayers..maxPlayers."
|
|
89
|
+
spectators:
|
|
90
|
+
type: integer
|
|
91
|
+
minimum: 0
|
|
92
|
+
description: "Local Play: also start this many spectator clients (only with players)."
|
|
93
|
+
queue:
|
|
94
|
+
type: string
|
|
95
|
+
description: "Local Play: the summer.build.json queue the local World stands in for (default: the first declared queue)."
|
|
83
96
|
additionalProperties: false
|
|
84
97
|
authority:
|
|
85
98
|
filesystem: false
|