summer-engine 3.0.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 +120 -0
- package/README.md +22 -7
- package/assets/audit/scene_audit.gd +4136 -0
- package/assets/seeing/seeing_probe.gd +1873 -0
- package/dist/cli/commands/setup.js +6 -19
- package/dist/cli/commands/skills.js +57 -32
- 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 +20 -4
- 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/core/skills-registry.d.ts +9 -1
- package/dist/core/skills-registry.js +25 -2
- package/dist/installer/agent-config.d.ts +9 -4
- package/dist/installer/agent-config.js +194 -392
- package/dist/installer/agent-table.d.ts +119 -0
- package/dist/installer/agent-table.js +619 -0
- package/dist/installer/setup.js +4 -2
- package/dist/installer/skill-locations.d.ts +8 -17
- package/dist/installer/skill-locations.js +22 -101
- package/dist/installer/version-check.d.ts +5 -1
- package/dist/installer/version-check.js +38 -28
- 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/README.md +48 -19
- package/integrations/amp/README.md +12 -0
- package/integrations/amp/manifest-target.json +3 -0
- package/integrations/antigravity/README.md +12 -0
- package/integrations/antigravity/manifest-target.json +3 -0
- package/integrations/claude-desktop/README.md +12 -0
- package/integrations/claude-desktop/manifest-target.json +3 -0
- package/integrations/cline/README.md +8 -9
- package/integrations/cline-cli/README.md +12 -0
- package/integrations/cline-cli/manifest-target.json +3 -0
- package/integrations/copilot-jetbrains/README.md +12 -0
- package/integrations/copilot-jetbrains/manifest-target.json +3 -0
- package/integrations/crush/README.md +12 -0
- package/integrations/crush/manifest-target.json +3 -0
- package/integrations/github-copilot/README.md +8 -8
- package/integrations/goose/README.md +12 -0
- package/integrations/goose/manifest-target.json +3 -0
- package/integrations/grok-build/README.md +12 -0
- package/integrations/grok-build/manifest-target.json +3 -0
- package/integrations/hermes/README.md +12 -0
- package/integrations/hermes/manifest-target.json +3 -0
- package/integrations/junie/README.md +12 -0
- package/integrations/junie/manifest-target.json +3 -0
- package/integrations/kilo-code/README.md +6 -10
- package/integrations/kimi-code/README.md +12 -0
- package/integrations/kimi-code/manifest-target.json +3 -0
- package/integrations/kiro/README.md +12 -0
- package/integrations/kiro/manifest-target.json +3 -0
- package/integrations/lm-studio/README.md +8 -8
- package/integrations/mistral-vibe/README.md +12 -0
- package/integrations/mistral-vibe/manifest-target.json +3 -0
- package/integrations/opencode/README.md +9 -12
- package/integrations/qoder/README.md +12 -0
- package/integrations/qoder/manifest-target.json +3 -0
- package/integrations/qwen-code/README.md +12 -0
- package/integrations/qwen-code/manifest-target.json +3 -0
- package/integrations/roo-code/README.md +8 -7
- package/integrations/rovo-dev/README.md +12 -0
- package/integrations/rovo-dev/manifest-target.json +3 -0
- package/integrations/trae/README.md +12 -0
- package/integrations/trae/manifest-target.json +3 -0
- package/integrations/visual-studio/README.md +12 -0
- package/integrations/visual-studio/manifest-target.json +3 -0
- package/integrations/vscode-copilot/README.md +9 -9
- package/integrations/warp/README.md +12 -0
- package/integrations/warp/manifest-target.json +3 -0
- package/integrations/windsurf/README.md +8 -9
- package/integrations/zed/README.md +12 -0
- package/integrations/zed/manifest-target.json +3 -0
- 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 +264 -0
- 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 +3 -3
- 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 +264 -0
- package/registry/generated/skills-registry.json +901 -206
- 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
|
@@ -147,8 +147,8 @@
|
|
|
147
147
|
{
|
|
148
148
|
"id": "reference/mcp-tools-reference",
|
|
149
149
|
"kind": "reference",
|
|
150
|
-
"version": "1.0
|
|
151
|
-
"content_hash": "
|
|
150
|
+
"version": "1.4.0",
|
|
151
|
+
"content_hash": "09d9e3a92558c4b28e14105a5b26fffdd47587144debc30e44f6e26b88d3baf1",
|
|
152
152
|
"summary": "Canonical reference for which Summer MCP tool to call — skills should reference tool names exactly as written here.",
|
|
153
153
|
"use_when": [
|
|
154
154
|
"choosing between Summer MCP tools and host tools for an operation",
|
|
@@ -236,8 +236,8 @@
|
|
|
236
236
|
{
|
|
237
237
|
"id": "reference/summer-folder",
|
|
238
238
|
"kind": "reference",
|
|
239
|
-
"version": "1.0.
|
|
240
|
-
"content_hash": "
|
|
239
|
+
"version": "1.0.2",
|
|
240
|
+
"content_hash": "80b561e1b454d38b7dc2952c2f7fd0d3b2a98ff1f596196c1213ef59cdec4b23",
|
|
241
241
|
"summary": "The canonical layout of the project-scoped .summer/ folder — GameSoul.md, art/audio bibles, build plan, memory, and locked state.",
|
|
242
242
|
"use_when": [
|
|
243
243
|
"authoring a skill that writes durable design output or project memory",
|
|
@@ -266,7 +266,7 @@
|
|
|
266
266
|
"id": "skill/3d-lighting",
|
|
267
267
|
"kind": "skill",
|
|
268
268
|
"version": "1.0.3",
|
|
269
|
-
"content_hash": "
|
|
269
|
+
"content_hash": "f0919c056c8f4f0dfd3e3d7c91e082514fb65b236a018700a96570330b3bf7b9",
|
|
270
270
|
"summary": "Set up 3D scene lighting — DirectionalLight3D vs Omni vs Spot, WorldEnvironment, sky, shadow tuning, ambient — per current Summer conventions.",
|
|
271
271
|
"use_when": [
|
|
272
272
|
"setting up lighting in a Summer Engine 3D scene — adding lights, configuring WorldEnvironment, sky, or shadows",
|
|
@@ -300,7 +300,7 @@
|
|
|
300
300
|
"id": "skill/adaptive-music",
|
|
301
301
|
"kind": "skill",
|
|
302
302
|
"version": "1.0.2",
|
|
303
|
-
"content_hash": "
|
|
303
|
+
"content_hash": "9fda6a4906064c0622ac5e584e12c0593f3cc3c7777393248262d78f70f55b5f",
|
|
304
304
|
"summary": "Wire music stems to game state — combat/explore/boss/tension crossfades on a shared bus, paired with a state machine and AudioBus structure.",
|
|
305
305
|
"use_when": [
|
|
306
306
|
"wiring music stems to game state — combat / explore / boss / tension crossfades on a shared bus",
|
|
@@ -335,7 +335,7 @@
|
|
|
335
335
|
"id": "skill/agent-playtesting",
|
|
336
336
|
"kind": "skill",
|
|
337
337
|
"version": "1.0.0",
|
|
338
|
-
"content_hash": "
|
|
338
|
+
"content_hash": "db2fb6587ceaeb70b70a77e616880bf6e4e897cc84ea3c7b28d7628c4d26d64c",
|
|
339
339
|
"summary": "Playtest by driving the LIVE game — deterministic launch, frame-stamped probes before/after each action, exact frame steps, scripted or recorded input.",
|
|
340
340
|
"use_when": [
|
|
341
341
|
"proving a gameplay feature works by driving the running game frame by frame with the runtime tools (summer_game_probe, summer_game_input, summer_game_control, summer_runtime_set/call/spawn/animate)",
|
|
@@ -389,11 +389,48 @@
|
|
|
389
389
|
"status": "preview",
|
|
390
390
|
"recommended": true
|
|
391
391
|
},
|
|
392
|
+
{
|
|
393
|
+
"id": "skill/ai-characters-in-games",
|
|
394
|
+
"kind": "skill",
|
|
395
|
+
"version": "0.3.0",
|
|
396
|
+
"content_hash": "0dc36031c8011152d0f672675648e89be40066812a471a43d906b976104f7d89",
|
|
397
|
+
"summary": "Safe AI characters in published games: no keys in the build, replies via Summer's player AI gateway, moderation, spend caps, offline brain and a report button.",
|
|
398
|
+
"use_when": [
|
|
399
|
+
"a character, creature or object should answer free-form player text or speech in a published game (talking flowers, shopkeepers, companions)",
|
|
400
|
+
"about to put a model name, a provider SDK or a provider key into a game project",
|
|
401
|
+
"handling AI refusals (ai_disabled, age_policy, credits_exhausted, limit_exceeded) or adding the report button for AI replies",
|
|
402
|
+
"topping up Summer credits, setting AI limits or the kill switch for a game's AI characters"
|
|
403
|
+
],
|
|
404
|
+
"facets": {
|
|
405
|
+
"lifecycle": [
|
|
406
|
+
"build"
|
|
407
|
+
],
|
|
408
|
+
"domains": [
|
|
409
|
+
"ai",
|
|
410
|
+
"npc"
|
|
411
|
+
],
|
|
412
|
+
"modalities": [
|
|
413
|
+
"scripts",
|
|
414
|
+
"scenes"
|
|
415
|
+
]
|
|
416
|
+
},
|
|
417
|
+
"compatibility": {
|
|
418
|
+
"engine": ">=4.6"
|
|
419
|
+
},
|
|
420
|
+
"related": {
|
|
421
|
+
"skills": [
|
|
422
|
+
"skill/design-npc",
|
|
423
|
+
"skill/multiplayer-state"
|
|
424
|
+
]
|
|
425
|
+
},
|
|
426
|
+
"status": "preview",
|
|
427
|
+
"recommended": false
|
|
428
|
+
},
|
|
392
429
|
{
|
|
393
430
|
"id": "skill/ambient-bed",
|
|
394
431
|
"kind": "skill",
|
|
395
432
|
"version": "1.0.2",
|
|
396
|
-
"content_hash": "
|
|
433
|
+
"content_hash": "76e395792693a2259eeb94f66587367493fd8d8801c8587cf8b79c5afe467643",
|
|
397
434
|
"summary": "Generate a long looping location ambience — forest, dungeon, city, spaceship, cave — a looping AudioStreamPlayer on the Ambient bus with a seamless loop.",
|
|
398
435
|
"use_when": [
|
|
399
436
|
"generating a long looping location ambience — forest at dawn, dungeon air, city street, spaceship hum, cave drip — non-melodic and low-energy",
|
|
@@ -422,7 +459,7 @@
|
|
|
422
459
|
"id": "skill/animated-loop",
|
|
423
460
|
"kind": "skill",
|
|
424
461
|
"version": "1.0.4",
|
|
425
|
-
"content_hash": "
|
|
462
|
+
"content_hash": "5d1a24967c57ced7e2e076d15cd086c024c7a6c6040e408b6b14ed4f6cc2826c",
|
|
426
463
|
"summary": "Generate a short seamlessly-looping video clip — splash background, animated logo backdrop, idle title-screen footage — wired as a looping VideoStreamPlayer.",
|
|
427
464
|
"use_when": [
|
|
428
465
|
"generating a short looping video clip — splash screen background, animated logo backdrop, idle title-screen footage, looping environment ambience",
|
|
@@ -456,7 +493,7 @@
|
|
|
456
493
|
"id": "skill/animation-tree",
|
|
457
494
|
"kind": "skill",
|
|
458
495
|
"version": "1.0.1",
|
|
459
|
-
"content_hash": "
|
|
496
|
+
"content_hash": "77ac27b5dba258438f9b3003f6b0ccf51e8565d4f1afd418d6e89c01f6a58162",
|
|
460
497
|
"summary": "Design and wire AnimationTree state machines and blend trees so clips respond to gameplay — locomotion blends, attack interrupts, hit reactions.",
|
|
461
498
|
"use_when": [
|
|
462
499
|
"the character has clips that must play in response to gameplay — idle/walk/run blends, attacks that interrupt locomotion, hit reactions",
|
|
@@ -496,7 +533,7 @@
|
|
|
496
533
|
"id": "skill/art-direction",
|
|
497
534
|
"kind": "skill",
|
|
498
535
|
"version": "1.0.2",
|
|
499
|
-
"content_hash": "
|
|
536
|
+
"content_hash": "d794e7372c56162e4f70db9107061d41c4c8fb9ec726b6175a63d8e3ccef711a",
|
|
500
537
|
"summary": "Define the game's visual style — references, palette, mood, lighting plan, post-processing, do/don't list — output as an art bible at .summer/art-bible.md.",
|
|
501
538
|
"use_when": [
|
|
502
539
|
"defining the visual style of the game — references, palette, mood, lighting plan, post-processing",
|
|
@@ -531,8 +568,8 @@
|
|
|
531
568
|
{
|
|
532
569
|
"id": "skill/asset-strategy",
|
|
533
570
|
"kind": "skill",
|
|
534
|
-
"version": "1.0.
|
|
535
|
-
"content_hash": "
|
|
571
|
+
"version": "1.0.3",
|
|
572
|
+
"content_hash": "50b3d701471143a483b216dde6be22c0351932e6cec9c8409375caffc339a0d6",
|
|
536
573
|
"summary": "Route any 'I need a [thing]' asset request to the right specialist skill — disambiguates 2D / 3D / audio / video / VFX / animation pipelines.",
|
|
537
574
|
"use_when": [
|
|
538
575
|
"planning asset creation, picking an asset pipeline, or routing an 'I need a [thing]' request to the right specialist skill",
|
|
@@ -571,6 +608,7 @@
|
|
|
571
608
|
"skill/animation-tree",
|
|
572
609
|
"skill/facial-and-lipsync",
|
|
573
610
|
"skill/generate-motion",
|
|
611
|
+
"skill/text-to-motion",
|
|
574
612
|
"skill/procedural-animation",
|
|
575
613
|
"skill/retarget",
|
|
576
614
|
"skill/adaptive-music",
|
|
@@ -600,7 +638,7 @@
|
|
|
600
638
|
"id": "skill/audio-direction",
|
|
601
639
|
"kind": "skill",
|
|
602
640
|
"version": "1.0.6",
|
|
603
|
-
"content_hash": "
|
|
641
|
+
"content_hash": "b6502094e22e4658f18c6833729b698f33c46651110cb2c465b4222c12fffc0b",
|
|
604
642
|
"summary": "Define the game's sonic identity — music style, instruments, SFX vocabulary, dynamic music plan — output as an audio bible at .summer/audio-bible.md.",
|
|
605
643
|
"use_when": [
|
|
606
644
|
"defining the sonic identity — music style, instruments, SFX vocabulary, dynamic music plan",
|
|
@@ -639,7 +677,7 @@
|
|
|
639
677
|
"id": "skill/auto-fire-targeting",
|
|
640
678
|
"kind": "skill",
|
|
641
679
|
"version": "1.0.0",
|
|
642
|
-
"content_hash": "
|
|
680
|
+
"content_hash": "279dce201a4b7d9ce6cd81d3a6753b4fbf368e167ff748d78605c941675409cd",
|
|
643
681
|
"summary": "Design or fix auto-fire weapon targeting (survivors, top-down ARPG, tower defense) — the pending-damage pattern that prevents over-commit and overkill.",
|
|
644
682
|
"use_when": [
|
|
645
683
|
"designing or fixing the targeting system for an auto-fire weapon (survivors-genre, top-down ARPG, tower-defense)",
|
|
@@ -667,7 +705,7 @@
|
|
|
667
705
|
"id": "skill/brainstorm-game",
|
|
668
706
|
"kind": "skill",
|
|
669
707
|
"version": "1.0.3",
|
|
670
|
-
"content_hash": "
|
|
708
|
+
"content_hash": "5c121d50cf20bc1aa8d163e868565a828a9041a44beb09c00d85a9784d1f6911",
|
|
671
709
|
"summary": "Turn a vague idea into a buildable plan — genre, scope, core loop, mechanics, art direction — written as a 1-page brief to .summer/GameSoul.md.",
|
|
672
710
|
"use_when": [
|
|
673
711
|
"the user wants help deciding what game to make, scoping a new project, or turning a vague idea into a buildable plan",
|
|
@@ -704,7 +742,7 @@
|
|
|
704
742
|
"id": "skill/brainstorming",
|
|
705
743
|
"kind": "skill",
|
|
706
744
|
"version": "1.0.3",
|
|
707
|
-
"content_hash": "
|
|
745
|
+
"content_hash": "a6d1ee4a4736f8206d1479a3edee3e014b8fc9280ae13a02bf6f9a3ce974bf7b",
|
|
708
746
|
"summary": "Explore user intent, requirements, and design before implementation — must run before any creative work: features, components, mechanics, behavior.",
|
|
709
747
|
"use_when": [
|
|
710
748
|
"starting creative work — designing a game, picking a mechanic, building features or components, modifying behavior",
|
|
@@ -731,8 +769,8 @@
|
|
|
731
769
|
{
|
|
732
770
|
"id": "skill/browse-templates",
|
|
733
771
|
"kind": "skill",
|
|
734
|
-
"version": "1.0.
|
|
735
|
-
"content_hash": "
|
|
772
|
+
"version": "1.0.5",
|
|
773
|
+
"content_hash": "40839f90ee91e540ef51c46d3cc1d09d1f78136a445df6df81169c79b7ef22de",
|
|
736
774
|
"summary": "List available Summer Engine project templates, present the choices, and create a project from the chosen one via summer create.",
|
|
737
775
|
"use_when": [
|
|
738
776
|
"the user wants to see available Summer Engine project templates, start from an existing template, or asks what templates exist",
|
|
@@ -756,11 +794,49 @@
|
|
|
756
794
|
"status": "stable",
|
|
757
795
|
"recommended": true
|
|
758
796
|
},
|
|
797
|
+
{
|
|
798
|
+
"id": "skill/camera-rigs",
|
|
799
|
+
"kind": "skill",
|
|
800
|
+
"version": "1.0.0",
|
|
801
|
+
"content_hash": "52cec93f1f8eb2e5d7bd2c0572fad53cace2129bc32a91005ae5675bfa9f7d00",
|
|
802
|
+
"summary": "Camera rigs for 2D and 3D: Camera2D follow with limits, first-person head camera, SpringArm3D third-person, orthographic top-down, FOV guidance.",
|
|
803
|
+
"use_when": [
|
|
804
|
+
"black screen on play, or the camera shows past the level edge",
|
|
805
|
+
"jerky camera follow, wrong FOV, or the third-person camera clips into walls",
|
|
806
|
+
"need a top-down, isometric, orthographic, orbit, or spring-arm camera"
|
|
807
|
+
],
|
|
808
|
+
"facets": {
|
|
809
|
+
"lifecycle": [
|
|
810
|
+
"build"
|
|
811
|
+
],
|
|
812
|
+
"domains": [
|
|
813
|
+
"scenes",
|
|
814
|
+
"3d",
|
|
815
|
+
"2d"
|
|
816
|
+
],
|
|
817
|
+
"modalities": [
|
|
818
|
+
"scenes",
|
|
819
|
+
"scripts"
|
|
820
|
+
]
|
|
821
|
+
},
|
|
822
|
+
"compatibility": {
|
|
823
|
+
"engine": ">=4.6"
|
|
824
|
+
},
|
|
825
|
+
"related": {
|
|
826
|
+
"skills": [
|
|
827
|
+
"skill/make-game",
|
|
828
|
+
"skill/character-movement",
|
|
829
|
+
"skill/fps-controller"
|
|
830
|
+
]
|
|
831
|
+
},
|
|
832
|
+
"status": "preview",
|
|
833
|
+
"recommended": false
|
|
834
|
+
},
|
|
759
835
|
{
|
|
760
836
|
"id": "skill/celeste-momentum-platforming",
|
|
761
837
|
"kind": "skill",
|
|
762
838
|
"version": "0.1.1",
|
|
763
|
-
"content_hash": "
|
|
839
|
+
"content_hash": "fd8c55567d782a602d86d3b2c74fceef71922a67e941ecdcd846cd292c2a7b1e",
|
|
764
840
|
"summary": "Celeste-style 2D precision platformer movement — momentum running, coyote time, variable jumps, dash, wall jump/slide, climb stamina, pixel corner correction.",
|
|
765
841
|
"use_when": [
|
|
766
842
|
"make the platformer movement feel like Celeste",
|
|
@@ -799,7 +875,7 @@
|
|
|
799
875
|
"id": "skill/character-animation-wiring",
|
|
800
876
|
"kind": "skill",
|
|
801
877
|
"version": "1.0.1",
|
|
802
|
-
"content_hash": "
|
|
878
|
+
"content_hash": "d3c62635ac74c60cee4478810f2853ef4a4f6f1bd1eb246c449171cdd80c8008",
|
|
803
879
|
"summary": "Wire a rigged, animated character end to end — inspect real clips and bones, locomotion state machine, method-track events, poses, blend shapes, root motion.",
|
|
804
880
|
"use_when": [
|
|
805
881
|
"a rigged GLB or Meshy rig with generated clips is in the scene and needs idle/walk/run wiring with blend times",
|
|
@@ -846,7 +922,7 @@
|
|
|
846
922
|
"id": "skill/character-model",
|
|
847
923
|
"kind": "skill",
|
|
848
924
|
"version": "1.0.2",
|
|
849
|
-
"content_hash": "
|
|
925
|
+
"content_hash": "74c7a03a61e8304cae681f8e2c5e9d0ec8e62d98687c1e669eba473e83a71ed0",
|
|
850
926
|
"summary": "Generate a rigged humanoid — player, NPC, enemy, boss — via T-pose reference, user-gated preview, and Meshy auto-rig, wired as CharacterBody3D or Node3D.",
|
|
851
927
|
"use_when": [
|
|
852
928
|
"generating a humanoid character ready for animation — player avatar, NPC, enemy, boss, companion",
|
|
@@ -885,11 +961,57 @@
|
|
|
885
961
|
"status": "stable",
|
|
886
962
|
"recommended": true
|
|
887
963
|
},
|
|
964
|
+
{
|
|
965
|
+
"id": "skill/character-movement",
|
|
966
|
+
"kind": "skill",
|
|
967
|
+
"version": "1.2.1",
|
|
968
|
+
"content_hash": "ba68f8a318d0a790ec4a1d872b88ffccedbcedd038327761ca913b404b6cc0d7",
|
|
969
|
+
"summary": "Player controllers for 2D and 3D, plus the canonical third-person controller for Summer humanoid packages: movement owns translation, clips follow state.",
|
|
970
|
+
"use_when": [
|
|
971
|
+
"building or fixing player movement — gravity, collision, side-scroller, top-down, or 3D walk",
|
|
972
|
+
"wiring an imported Summer character package (character.tscn) as the playable third-person player",
|
|
973
|
+
"walk, run, and jump animation states, facing, or mouse look for a player controller",
|
|
974
|
+
"the jump feels bad — coyote time, jump buffering, variable jump height, one-way platforms"
|
|
975
|
+
],
|
|
976
|
+
"facets": {
|
|
977
|
+
"lifecycle": [
|
|
978
|
+
"build"
|
|
979
|
+
],
|
|
980
|
+
"domains": [
|
|
981
|
+
"character-controller",
|
|
982
|
+
"gameplay",
|
|
983
|
+
"2d",
|
|
984
|
+
"3d"
|
|
985
|
+
],
|
|
986
|
+
"modalities": [
|
|
987
|
+
"scripts",
|
|
988
|
+
"scenes",
|
|
989
|
+
"animation"
|
|
990
|
+
]
|
|
991
|
+
},
|
|
992
|
+
"compatibility": {
|
|
993
|
+
"engine": ">=4.6"
|
|
994
|
+
},
|
|
995
|
+
"related": {
|
|
996
|
+
"skills": [
|
|
997
|
+
"skill/make-game",
|
|
998
|
+
"skill/camera-rigs",
|
|
999
|
+
"skill/combat-basics",
|
|
1000
|
+
"skill/fps-controller",
|
|
1001
|
+
"skill/celeste-momentum-platforming",
|
|
1002
|
+
"skill/character-animation-wiring",
|
|
1003
|
+
"skill/character-model",
|
|
1004
|
+
"skill/playtesting-a-feature"
|
|
1005
|
+
]
|
|
1006
|
+
},
|
|
1007
|
+
"status": "preview",
|
|
1008
|
+
"recommended": false
|
|
1009
|
+
},
|
|
888
1010
|
{
|
|
889
1011
|
"id": "skill/character-portrait",
|
|
890
1012
|
"kind": "skill",
|
|
891
1013
|
"version": "1.0.4",
|
|
892
|
-
"content_hash": "
|
|
1014
|
+
"content_hash": "9e1a42da307fc9871510b30b9bdfa9ce678ed7fbd0014f2624b61b382cceca11",
|
|
893
1015
|
"summary": "Generate a single polished character bust for dialogue UI, character select, lore cards, or codex entries. One character, locked composition, VN-style.",
|
|
894
1016
|
"use_when": [
|
|
895
1017
|
"generating a single polished bust/portrait of a character for dialogue UI, character-select screens, lore cards, or codex entries",
|
|
@@ -926,7 +1048,7 @@
|
|
|
926
1048
|
"id": "skill/cinematic-cutscene",
|
|
927
1049
|
"kind": "skill",
|
|
928
1050
|
"version": "1.0.4",
|
|
929
|
-
"content_hash": "
|
|
1051
|
+
"content_hash": "c963e958552b4e71bf2dac927e511071db565a1b9fb520858121ed1f357eb850",
|
|
930
1052
|
"summary": "Generate a non-interactive cutscene — reference-locked look, a 5-10s image-to-video shot, optional TTS dialogue — wired as a fading VideoStreamPlayer.",
|
|
931
1053
|
"use_when": [
|
|
932
1054
|
"generating a non-interactive cutscene clip — opening scene, story beat, character intro, ending",
|
|
@@ -958,11 +1080,51 @@
|
|
|
958
1080
|
"status": "stable",
|
|
959
1081
|
"recommended": true
|
|
960
1082
|
},
|
|
1083
|
+
{
|
|
1084
|
+
"id": "skill/combat-basics",
|
|
1085
|
+
"kind": "skill",
|
|
1086
|
+
"version": "1.0.0",
|
|
1087
|
+
"content_hash": "a69f4470d1c0babc3855334ebfd7e5d53aee02b85bc0dbd5ad1fc9c8b3c8bdbb",
|
|
1088
|
+
"summary": "Damage in Summer Engine: hitbox and hurtbox Areas on opposing layers, a reusable Health component, damage signals, knockback, hit feedback, projectiles.",
|
|
1089
|
+
"use_when": [
|
|
1090
|
+
"adding attacks, health and damage, or enemies that can be hit and hit back",
|
|
1091
|
+
"adding projectiles or bullets — homing, piercing, area-of-effect, or pooling hundreds of them",
|
|
1092
|
+
"wiring death and respawn, or debugging hits that never land or friendly fire"
|
|
1093
|
+
],
|
|
1094
|
+
"facets": {
|
|
1095
|
+
"lifecycle": [
|
|
1096
|
+
"build"
|
|
1097
|
+
],
|
|
1098
|
+
"domains": [
|
|
1099
|
+
"gameplay",
|
|
1100
|
+
"scripting",
|
|
1101
|
+
"game-design"
|
|
1102
|
+
],
|
|
1103
|
+
"modalities": [
|
|
1104
|
+
"scripts",
|
|
1105
|
+
"scenes"
|
|
1106
|
+
]
|
|
1107
|
+
},
|
|
1108
|
+
"compatibility": {
|
|
1109
|
+
"engine": ">=4.6"
|
|
1110
|
+
},
|
|
1111
|
+
"related": {
|
|
1112
|
+
"skills": [
|
|
1113
|
+
"skill/make-game",
|
|
1114
|
+
"skill/character-movement",
|
|
1115
|
+
"skill/game-feel",
|
|
1116
|
+
"skill/auto-fire-targeting",
|
|
1117
|
+
"skill/design-npc"
|
|
1118
|
+
]
|
|
1119
|
+
},
|
|
1120
|
+
"status": "preview",
|
|
1121
|
+
"recommended": false
|
|
1122
|
+
},
|
|
961
1123
|
{
|
|
962
1124
|
"id": "skill/concept-art",
|
|
963
1125
|
"kind": "skill",
|
|
964
1126
|
"version": "1.0.2",
|
|
965
|
-
"content_hash": "
|
|
1127
|
+
"content_hash": "5fff2853775020d661a607c1a4b1ecbb6161f30b4c98bb7f6bd2590453875719",
|
|
966
1128
|
"summary": "Explore art direction with 3-4 rough concept variants of a character, environment, or prop to pick a vibe before committing to a final asset.",
|
|
967
1129
|
"use_when": [
|
|
968
1130
|
"exploring art direction with rough variants before committing to a final asset",
|
|
@@ -1001,7 +1163,7 @@
|
|
|
1001
1163
|
"id": "skill/create-asset-sheet",
|
|
1002
1164
|
"kind": "skill",
|
|
1003
1165
|
"version": "1.0.3",
|
|
1004
|
-
"content_hash": "
|
|
1166
|
+
"content_hash": "9ccdf254e755f6854b421d349fbe5e73fb628040e09e25fa5fe1f197ca59270d",
|
|
1005
1167
|
"summary": "Generate a pack of 2D game assets from one prompt — tile sheet, UI kit, character pack, or biome set — sliced, classified, and saved as one pack ArtAsset.",
|
|
1006
1168
|
"use_when": [
|
|
1007
1169
|
"generating a pack of 2D game assets from a single prompt — a tile sheet, UI kit, menu screen, character pack, or biome set",
|
|
@@ -1041,7 +1203,7 @@
|
|
|
1041
1203
|
"id": "skill/debug",
|
|
1042
1204
|
"kind": "skill",
|
|
1043
1205
|
"version": "1.0.4",
|
|
1044
|
-
"content_hash": "
|
|
1206
|
+
"content_hash": "1673aa3a5dc7db710ef332ff3470165658e3a681b9ca3a746fc8c6e14b6f7f5c",
|
|
1045
1207
|
"summary": "Disciplined bug/crash/error loop for Summer projects — script errors, console, debugger, hypothesis, fix, verify — before making code or scene changes.",
|
|
1046
1208
|
"use_when": [
|
|
1047
1209
|
"the user reports a bug, crash, error, or unexpected behavior in a Summer project, before making code or scene changes",
|
|
@@ -1079,7 +1241,7 @@
|
|
|
1079
1241
|
"id": "skill/debugging-game-feel",
|
|
1080
1242
|
"kind": "skill",
|
|
1081
1243
|
"version": "1.0.3",
|
|
1082
|
-
"content_hash": "
|
|
1244
|
+
"content_hash": "97922d627b1b1f9c00cc64f7f78a067a274c1b395d7230572705c07f0a0c8b19",
|
|
1083
1245
|
"summary": "Debug features that work but feel wrong — floaty jumps, mushy combat, sluggish camera — subjective bugs living in tuning, timing, and feedback layers.",
|
|
1084
1246
|
"use_when": [
|
|
1085
1247
|
"a gameplay feature works correctly but feels wrong — floaty jumps, mushy combat, sluggish camera, weightless impacts",
|
|
@@ -1107,7 +1269,7 @@
|
|
|
1107
1269
|
"id": "skill/design-level",
|
|
1108
1270
|
"kind": "skill",
|
|
1109
1271
|
"version": "1.0.3",
|
|
1110
|
-
"content_hash": "
|
|
1272
|
+
"content_hash": "a501f56cbfe63d5635903904d22b6b569c0d665cfe8127591716e206252478e9",
|
|
1111
1273
|
"summary": "Design a single level — layout, pacing, encounters, secrets, reward gating — outputs a level design doc and a node-tree skeleton for summer_create_scene.",
|
|
1112
1274
|
"use_when": [
|
|
1113
1275
|
"designing a single level — layout, pacing, encounters, secrets, reward gating",
|
|
@@ -1145,7 +1307,7 @@
|
|
|
1145
1307
|
"id": "skill/design-mechanic",
|
|
1146
1308
|
"kind": "skill",
|
|
1147
1309
|
"version": "1.0.2",
|
|
1148
|
-
"content_hash": "
|
|
1310
|
+
"content_hash": "49d1e2fcced5d09e7de623a4acb62e79a820db0c954cf6b4f02fcef0a3a815cb",
|
|
1149
1311
|
"summary": "Design one game mechanic in detail — input, response, feedback, failure modes, depth, tunables — outputs a design doc, node-graph sketch, GDScript stub.",
|
|
1150
1312
|
"use_when": [
|
|
1151
1313
|
"designing one specific game mechanic in detail — input, response, feedback, failure modes, depth, tunables",
|
|
@@ -1183,7 +1345,7 @@
|
|
|
1183
1345
|
"id": "skill/design-npc",
|
|
1184
1346
|
"kind": "skill",
|
|
1185
1347
|
"version": "1.0.2",
|
|
1186
|
-
"content_hash": "
|
|
1348
|
+
"content_hash": "f4810568a894852c67a9cea0b3f5d299468ccb3e01816c82a719a2636203f0c9",
|
|
1187
1349
|
"summary": "Design enemy/NPC/boss/companion behavior — perception, personality, intent, action state machine, telegraphs — outputs a GDScript stub plus node tree.",
|
|
1188
1350
|
"use_when": [
|
|
1189
1351
|
"designing an enemy, NPC, boss, companion, civilian, or wave-spawned mob's behavior — perception, intent, state machine, telegraphs, defeat handling",
|
|
@@ -1219,7 +1381,7 @@
|
|
|
1219
1381
|
"id": "skill/diagnosing-perf-regressions",
|
|
1220
1382
|
"kind": "skill",
|
|
1221
1383
|
"version": "1.0.3",
|
|
1222
|
-
"content_hash": "
|
|
1384
|
+
"content_hash": "5c2a235feca5331ae089e1234ea8bf28789081ba52ded6fe60a0a84a08b0842a",
|
|
1223
1385
|
"summary": "Find why frame rate, frame time, or load time got worse since a known-good state — regression hunting, not general performance tuning.",
|
|
1224
1386
|
"use_when": [
|
|
1225
1387
|
"frame rate, frame time, or load time has gotten worse since a known-good state — 'it used to run at 60, now it's at 30'",
|
|
@@ -1247,7 +1409,7 @@
|
|
|
1247
1409
|
"id": "skill/dispatching-parallel-agents",
|
|
1248
1410
|
"kind": "skill",
|
|
1249
1411
|
"version": "1.0.3",
|
|
1250
|
-
"content_hash": "
|
|
1412
|
+
"content_hash": "896e46e9dd4315059bef0f07a6ba6de8f3e40e536f3f357b80b9fa08cb1fa083",
|
|
1251
1413
|
"summary": "Work 2+ independent tasks in parallel when they share no state and have no sequential dependencies.",
|
|
1252
1414
|
"use_when": [
|
|
1253
1415
|
"facing 2+ independent tasks that can be worked on without shared state or sequential dependencies",
|
|
@@ -1275,7 +1437,7 @@
|
|
|
1275
1437
|
"id": "skill/driving-the-editor-ui",
|
|
1276
1438
|
"kind": "skill",
|
|
1277
1439
|
"version": "1.0.0",
|
|
1278
|
-
"content_hash": "
|
|
1440
|
+
"content_hash": "a82a77a3496e6babf61ac41887cafcbeebad328611a30a82da45e8a2debd86ce",
|
|
1279
1441
|
"summary": "Drive the editor UI by name: invoke actions, clear blocking dialogs, switch the main screen, read a dock — and route scene work to the scene tools instead.",
|
|
1280
1442
|
"use_when": [
|
|
1281
1443
|
"an editor-workflow step a human would do with the mouse — open the Import dock, switch the 2D/3D/Script main screen, toggle a bottom panel, open an editor dialog by name",
|
|
@@ -1326,7 +1488,7 @@
|
|
|
1326
1488
|
"id": "skill/environment-kit",
|
|
1327
1489
|
"kind": "skill",
|
|
1328
1490
|
"version": "1.0.3",
|
|
1329
|
-
"content_hash": "
|
|
1491
|
+
"content_hash": "7a8e1ea3129387a28b626e583def984edb4b7f18be759ae184dbdb43769b9f90",
|
|
1330
1492
|
"summary": "Generate a modular environment kit — wall pieces, floor tiles, pillars, doors, arches, corners — snap-together meshes sharing one visual style.",
|
|
1331
1493
|
"use_when": [
|
|
1332
1494
|
"generating a modular environment kit of snap-together pieces that form a level — dungeon kit, modular walls, interior pieces",
|
|
@@ -1362,7 +1524,7 @@
|
|
|
1362
1524
|
"id": "skill/export-and-ship",
|
|
1363
1525
|
"kind": "skill",
|
|
1364
1526
|
"version": "1.0.3",
|
|
1365
|
-
"content_hash": "
|
|
1527
|
+
"content_hash": "459ad769af5e734676659117ce4fbb3226668b5e41211afc3373b45a52ed8bba",
|
|
1366
1528
|
"summary": "Assess and prepare a game export: inventory installed templates and targets, validate release assets and config, produce supported builds after approval.",
|
|
1367
1529
|
"use_when": [
|
|
1368
1530
|
"the user wants to assess or prepare a Summer game export — Steam, itch, HTML5, iOS, Android targets as available in the installed build",
|
|
@@ -1396,7 +1558,7 @@
|
|
|
1396
1558
|
"id": "skill/fabricating-assets",
|
|
1397
1559
|
"kind": "skill",
|
|
1398
1560
|
"version": "1.0.0",
|
|
1399
|
-
"content_hash": "
|
|
1561
|
+
"content_hash": "95009e577a012a72fa6f6dc4699e7ff595aee33ce518930ce129c35bd668e6a6",
|
|
1400
1562
|
"summary": "Fabricate meshes with a bpy script in the user's own Blender (summer_fabricate_3d) — kits with exact dimensions, VFX meshes, post-processing generated models.",
|
|
1401
1563
|
"use_when": [
|
|
1402
1564
|
"writing a Blender Python (bpy) script for summer_fabricate_3d and deciding whether fabrication, generation, or the free library is the right route for an asset",
|
|
@@ -1453,7 +1615,7 @@
|
|
|
1453
1615
|
"id": "skill/facial-and-lipsync",
|
|
1454
1616
|
"kind": "skill",
|
|
1455
1617
|
"version": "1.0.2",
|
|
1456
|
-
"content_hash": "
|
|
1618
|
+
"content_hash": "8ebe7363d46be0afcbe377d37384495e56103539121f61e3b0cb06d83bdedd13",
|
|
1457
1619
|
"summary": "Make a character's mouth move with a voice-over — phoneme extraction from audio, viseme blendshape mapping, and emotional facial expressions.",
|
|
1458
1620
|
"use_when": [
|
|
1459
1621
|
"the user has (or wants) a voice-over and needs the character's mouth to move with the words",
|
|
@@ -1491,8 +1653,8 @@
|
|
|
1491
1653
|
{
|
|
1492
1654
|
"id": "skill/fps-controller",
|
|
1493
1655
|
"kind": "skill",
|
|
1494
|
-
"version": "1.0.
|
|
1495
|
-
"content_hash": "
|
|
1656
|
+
"version": "1.0.4",
|
|
1657
|
+
"content_hash": "efa016e92bb775a6d10f8b085e8cdfd3412e03cc4910c63df6eba63fab8ab471",
|
|
1496
1658
|
"summary": "Production-quality first-person controller — WASD, mouse look, jump, coyote time, jump buffering, air control, and external-velocity handling.",
|
|
1497
1659
|
"use_when": [
|
|
1498
1660
|
"building an FPS, first-person movement, or a 3D character that walks, jumps, and reacts to external forces",
|
|
@@ -1515,6 +1677,10 @@
|
|
|
1515
1677
|
"engine": ">=4.6"
|
|
1516
1678
|
},
|
|
1517
1679
|
"related": {
|
|
1680
|
+
"skills": [
|
|
1681
|
+
"skill/character-movement",
|
|
1682
|
+
"skill/camera-rigs"
|
|
1683
|
+
],
|
|
1518
1684
|
"templates": [
|
|
1519
1685
|
"template/3d-fps-old-school"
|
|
1520
1686
|
]
|
|
@@ -1526,7 +1692,7 @@
|
|
|
1526
1692
|
"id": "skill/game-feel",
|
|
1527
1693
|
"kind": "skill",
|
|
1528
1694
|
"version": "1.0.2",
|
|
1529
|
-
"content_hash": "
|
|
1695
|
+
"content_hash": "2a68902d652651915a42e0c0b5347fc46b53b056b03fa15e225d66746ecf9d8f",
|
|
1530
1696
|
"summary": "Add juice: hit-flash, trauma-based camera shake, and audio ducking wired so one hit fires all three — for games that feel flat or lack impact.",
|
|
1531
1697
|
"use_when": [
|
|
1532
1698
|
"a Summer game feels flat, lacks impact, needs juice or punch",
|
|
@@ -1560,7 +1726,7 @@
|
|
|
1560
1726
|
"id": "skill/gameskill",
|
|
1561
1727
|
"kind": "skill",
|
|
1562
1728
|
"version": "1.0.2",
|
|
1563
|
-
"content_hash": "
|
|
1729
|
+
"content_hash": "4f8a86ee7ad0dee03dd804dda3f6a563424beb64d1e9a2f6c877bfb1f71c02d3",
|
|
1564
1730
|
"summary": "Capture what a game-dev session just learned as a reusable skill (project, user or Summer library) so the next session starts smarter.",
|
|
1565
1731
|
"use_when": [
|
|
1566
1732
|
"finishing a game-development session with learnings worth capturing as a reusable skill",
|
|
@@ -1588,7 +1754,7 @@
|
|
|
1588
1754
|
"id": "skill/gdscript-patterns",
|
|
1589
1755
|
"kind": "skill",
|
|
1590
1756
|
"version": "1.0.3",
|
|
1591
|
-
"content_hash": "
|
|
1757
|
+
"content_hash": "29741f2559f66eae8755e79a4e430088259bd83bf3297593e9cf334e7cc4661a",
|
|
1592
1758
|
"summary": "GDScript conventions — type hints, signals, exports, onready, lifecycle methods, get_node vs $NodePath, naming.",
|
|
1593
1759
|
"use_when": [
|
|
1594
1760
|
"writing or refactoring GDScript — type hints, signals, exports, onready, lifecycle methods, naming conventions",
|
|
@@ -1615,8 +1781,8 @@
|
|
|
1615
1781
|
{
|
|
1616
1782
|
"id": "skill/generate-motion",
|
|
1617
1783
|
"kind": "skill",
|
|
1618
|
-
"version": "1.0.
|
|
1619
|
-
"content_hash": "
|
|
1784
|
+
"version": "1.0.4",
|
|
1785
|
+
"content_hash": "40ecdc0ec0d9b3ed46de82d823d49a6767f4157d92cf730ca5959f14b0efe85b",
|
|
1620
1786
|
"summary": "Attach an animation clip to a rigged character from the curated Meshy motion library — idle, walk, run, attack — wired via AnimationPlayer.",
|
|
1621
1787
|
"use_when": [
|
|
1622
1788
|
"the user needs an animation clip on a rigged character — idle/walk/run/attack from the curated Meshy library",
|
|
@@ -1646,6 +1812,7 @@
|
|
|
1646
1812
|
"skill/facial-and-lipsync",
|
|
1647
1813
|
"skill/procedural-animation",
|
|
1648
1814
|
"skill/retarget",
|
|
1815
|
+
"skill/text-to-motion",
|
|
1649
1816
|
"skill/asset-strategy",
|
|
1650
1817
|
"skill/fps-controller"
|
|
1651
1818
|
]
|
|
@@ -1657,7 +1824,7 @@
|
|
|
1657
1824
|
"id": "skill/godogen-visual-proof-game-generation",
|
|
1658
1825
|
"kind": "skill",
|
|
1659
1826
|
"version": "0.1.1",
|
|
1660
|
-
"content_hash": "
|
|
1827
|
+
"content_hash": "5f2ba4ad043ece93016866550fd910df66a2525bdd4eb632fced680157d106a0",
|
|
1661
1828
|
"summary": "Godogen-style game generation with a visual QC loop — capture frames from the running game, self-verify against the brief, bounded fix rounds, proof clip.",
|
|
1662
1829
|
"use_when": [
|
|
1663
1830
|
"generate a whole small game from a short brief and prove it actually runs",
|
|
@@ -1696,7 +1863,7 @@
|
|
|
1696
1863
|
"id": "skill/headless-scripting",
|
|
1697
1864
|
"kind": "skill",
|
|
1698
1865
|
"version": "1.1.3",
|
|
1699
|
-
"content_hash": "
|
|
1866
|
+
"content_hash": "9f916bbf3750db44541aedb7c065eb48fb6e174e20ee71b12f30e698148c3ca9",
|
|
1700
1867
|
"summary": "Run a GDScript file against Summer Engine from the shell for operations no MCP tool exposes — navmesh baking, collision shapes, TileSets, re-imports.",
|
|
1701
1868
|
"use_when": [
|
|
1702
1869
|
"a Summer project needs an operation no MCP tool exposes — baking a navmesh, generating collision shapes, authoring an Animation, building a TileSet, re-importing assets",
|
|
@@ -1726,26 +1893,27 @@
|
|
|
1726
1893
|
"recommended": true
|
|
1727
1894
|
},
|
|
1728
1895
|
{
|
|
1729
|
-
"id": "skill/
|
|
1896
|
+
"id": "skill/in-game-purchases",
|
|
1730
1897
|
"kind": "skill",
|
|
1731
|
-
"version": "1.0.
|
|
1732
|
-
"content_hash": "
|
|
1733
|
-
"summary": "
|
|
1898
|
+
"version": "1.0.0",
|
|
1899
|
+
"content_hash": "87e5c785ec8919de1e364765a0913274d0d63771f024f35859a9f151fd3e62d8",
|
|
1900
|
+
"summary": "Sell items for Sparks and let short players buy Sparks in game via the Summer purchase sheet: checkout, Sparks purchase, results, testing, store policy.",
|
|
1734
1901
|
"use_when": [
|
|
1735
|
-
"
|
|
1736
|
-
"
|
|
1902
|
+
"adding a shop, buy button or paid item to a Summer game and wiring request_checkout",
|
|
1903
|
+
"a checkout was rejected with insufficient_funds and the player should be able to buy Sparks without leaving the game",
|
|
1904
|
+
"deciding whether an item should be sold for Sparks, or handling pending, declined, expired, rejected or manual_review purchase results"
|
|
1737
1905
|
],
|
|
1738
1906
|
"facets": {
|
|
1739
1907
|
"lifecycle": [
|
|
1740
1908
|
"build"
|
|
1741
1909
|
],
|
|
1742
1910
|
"domains": [
|
|
1743
|
-
"
|
|
1911
|
+
"gameplay",
|
|
1912
|
+
"scripting",
|
|
1744
1913
|
"game-design"
|
|
1745
1914
|
],
|
|
1746
1915
|
"modalities": [
|
|
1747
|
-
"scripts"
|
|
1748
|
-
"scenes"
|
|
1916
|
+
"scripts"
|
|
1749
1917
|
]
|
|
1750
1918
|
},
|
|
1751
1919
|
"compatibility": {
|
|
@@ -1753,18 +1921,18 @@
|
|
|
1753
1921
|
},
|
|
1754
1922
|
"related": {
|
|
1755
1923
|
"skills": [
|
|
1756
|
-
"skill/
|
|
1757
|
-
"skill/
|
|
1924
|
+
"skill/multiplayer-state",
|
|
1925
|
+
"skill/ui-basics"
|
|
1758
1926
|
]
|
|
1759
1927
|
},
|
|
1760
|
-
"status": "
|
|
1761
|
-
"recommended":
|
|
1928
|
+
"status": "preview",
|
|
1929
|
+
"recommended": false
|
|
1762
1930
|
},
|
|
1763
1931
|
{
|
|
1764
1932
|
"id": "skill/instantiate-asset-pack",
|
|
1765
1933
|
"kind": "skill",
|
|
1766
1934
|
"version": "1.0.3",
|
|
1767
|
-
"content_hash": "
|
|
1935
|
+
"content_hash": "1959d48f834a1fdab69c65ecf8ed05b2f20cd5c41583e51213cf91a2aa8f1956",
|
|
1768
1936
|
"summary": "Import a whole create-asset-sheet pack into the scene: groups composites, sorts paint order, emits Sprite2D/Node2D/NinePatchRect ops to lay it out.",
|
|
1769
1937
|
"use_when": [
|
|
1770
1938
|
"importing or spawning an entire asset pack (multi-slice ArtAsset from create-asset-sheet) into the current scene",
|
|
@@ -1799,7 +1967,7 @@
|
|
|
1799
1967
|
"id": "skill/investigating-bugs",
|
|
1800
1968
|
"kind": "skill",
|
|
1801
1969
|
"version": "1.0.3",
|
|
1802
|
-
"content_hash": "
|
|
1970
|
+
"content_hash": "59e177e99410d7609b4c9600942ebb1ac41d9ec55b03dbf18290792144dba437",
|
|
1803
1971
|
"summary": "Systematic investigation of any bug, test failure, or unexpected behavior before proposing fixes.",
|
|
1804
1972
|
"use_when": [
|
|
1805
1973
|
"encountering any bug, test failure, or unexpected behavior, before proposing fixes",
|
|
@@ -1828,7 +1996,7 @@
|
|
|
1828
1996
|
"id": "skill/lumera-single-image-scene-reconstruction",
|
|
1829
1997
|
"kind": "skill",
|
|
1830
1998
|
"version": "0.1.1",
|
|
1831
|
-
"content_hash": "
|
|
1999
|
+
"content_hash": "ec97b76f7d6994aef8cd71729060ea2c60ed7ec75db23050cfe675ff3af76540",
|
|
1832
2000
|
"summary": "Lumera-style single image to editable 3D scene — VLM-parsed object boxes and parametric lights, per-object meshes, HDR probe, .tscn assembly, refinement loop.",
|
|
1833
2001
|
"use_when": [
|
|
1834
2002
|
"turn this concept art or screenshot into an editable 3D scene with separate objects and lights",
|
|
@@ -1867,12 +2035,13 @@
|
|
|
1867
2035
|
{
|
|
1868
2036
|
"id": "skill/make-game",
|
|
1869
2037
|
"kind": "skill",
|
|
1870
|
-
"version": "1.0
|
|
1871
|
-
"content_hash": "
|
|
2038
|
+
"version": "1.1.0",
|
|
2039
|
+
"content_hash": "470ad99e15eaad332d1fa343dbb0e951ab4b1b9d031024df1ac236db595081cc",
|
|
1872
2040
|
"summary": "Orchestration spine for 'make me a game': brainstorm, plan, scaffold, mechanics, art, audio, polish, verify, ship — delegates to specialist skills.",
|
|
1873
2041
|
"use_when": [
|
|
1874
2042
|
"the user says 'make me a game', 'build me a game', 'I want to make a [genre] game', or 'let's build something' — running the full game-dev pipeline",
|
|
1875
|
-
"the user wants a complete playable game end to end, from brainstorm through shipping"
|
|
2043
|
+
"the user wants a complete playable game end to end, from brainstorm through shipping",
|
|
2044
|
+
"the user names a genre — platformer, survivors, top-down RPG, FPS, third-person, horror — and the build needs its architecture and build order"
|
|
1876
2045
|
],
|
|
1877
2046
|
"facets": {
|
|
1878
2047
|
"lifecycle": [
|
|
@@ -1900,33 +2069,39 @@
|
|
|
1900
2069
|
"skill/brainstorm-game",
|
|
1901
2070
|
"skill/new-project",
|
|
1902
2071
|
"skill/play",
|
|
1903
|
-
"skill/scene-composition"
|
|
2072
|
+
"skill/scene-composition",
|
|
2073
|
+
"skill/character-movement",
|
|
2074
|
+
"skill/camera-rigs",
|
|
2075
|
+
"skill/combat-basics",
|
|
2076
|
+
"skill/save-load"
|
|
1904
2077
|
]
|
|
1905
2078
|
},
|
|
1906
2079
|
"status": "stable",
|
|
1907
2080
|
"recommended": true
|
|
1908
2081
|
},
|
|
1909
2082
|
{
|
|
1910
|
-
"id": "skill/
|
|
2083
|
+
"id": "skill/multiplayer",
|
|
1911
2084
|
"kind": "skill",
|
|
1912
|
-
"version": "1.0.
|
|
1913
|
-
"content_hash": "
|
|
1914
|
-
"summary": "
|
|
2085
|
+
"version": "1.0.0",
|
|
2086
|
+
"content_hash": "7a7212fba4b1aee4d9c9e5649b2ade77836829e6d9409e010b9731d79232305b",
|
|
2087
|
+
"summary": "Start here for Summer multiplayer: how the authority, clients, Worlds and Sessions fit, and which skill comes next.",
|
|
1915
2088
|
"use_when": [
|
|
1916
|
-
"
|
|
1917
|
-
"
|
|
2089
|
+
"the user wants multiplayer, co-op, PvP, online play over the internet, or to play with friends in a Summer game",
|
|
2090
|
+
"the user asks for peer-to-peer, a player-hosted server, host migration, join-by-IP or a lobby",
|
|
2091
|
+
"deciding how a multiplayer Summer game is structured before writing networking code",
|
|
2092
|
+
"a multiplayer game was built with @rpc or MultiplayerSynchronizer and needs moving to Summer's networking"
|
|
1918
2093
|
],
|
|
1919
2094
|
"facets": {
|
|
1920
2095
|
"lifecycle": [
|
|
1921
2096
|
"build"
|
|
1922
2097
|
],
|
|
1923
2098
|
"domains": [
|
|
1924
|
-
"
|
|
1925
|
-
"
|
|
2099
|
+
"multiplayer",
|
|
2100
|
+
"project"
|
|
1926
2101
|
],
|
|
1927
2102
|
"modalities": [
|
|
1928
|
-
"
|
|
1929
|
-
"
|
|
2103
|
+
"scripts",
|
|
2104
|
+
"scenes"
|
|
1930
2105
|
]
|
|
1931
2106
|
},
|
|
1932
2107
|
"compatibility": {
|
|
@@ -1934,75 +2109,81 @@
|
|
|
1934
2109
|
},
|
|
1935
2110
|
"related": {
|
|
1936
2111
|
"skills": [
|
|
1937
|
-
"skill/
|
|
1938
|
-
"skill/
|
|
2112
|
+
"skill/multiplayer-project",
|
|
2113
|
+
"skill/multiplayer-movement",
|
|
2114
|
+
"skill/multiplayer-state",
|
|
2115
|
+
"skill/multiplayer-testing",
|
|
2116
|
+
"skill/multiplayer-publish",
|
|
2117
|
+
"skill/summer-matchmaking",
|
|
2118
|
+
"skill/summer-player-data"
|
|
1939
2119
|
]
|
|
1940
2120
|
},
|
|
1941
2121
|
"status": "stable",
|
|
1942
2122
|
"recommended": true
|
|
1943
2123
|
},
|
|
1944
2124
|
{
|
|
1945
|
-
"id": "skill/
|
|
2125
|
+
"id": "skill/multiplayer-movement",
|
|
1946
2126
|
"kind": "skill",
|
|
1947
2127
|
"version": "1.0.0",
|
|
1948
|
-
"content_hash": "
|
|
1949
|
-
"summary": "
|
|
2128
|
+
"content_hash": "ab68306636a6916030e4c1a6c3e06fb41cefb13bb1b47a5c2f0fa08e24067508",
|
|
2129
|
+
"summary": "Client-side movement in Summer multiplayer: owners move instantly, others glide, the authority checks each pose.",
|
|
1950
2130
|
"use_when": [
|
|
1951
|
-
"
|
|
1952
|
-
"
|
|
1953
|
-
"
|
|
2131
|
+
"moving players in a Summer multiplayer game: each player's own character, other players drawn smoothly",
|
|
2132
|
+
"remote players stutter, jitter, teleport or rubberband in a Summer multiplayer game",
|
|
2133
|
+
"stopping speed hacks and teleport cheats on player movement; respawning or teleporting a player on purpose"
|
|
1954
2134
|
],
|
|
1955
2135
|
"facets": {
|
|
1956
2136
|
"lifecycle": [
|
|
1957
|
-
"build"
|
|
1958
|
-
"launch",
|
|
1959
|
-
"support"
|
|
2137
|
+
"build"
|
|
1960
2138
|
],
|
|
1961
2139
|
"domains": [
|
|
1962
|
-
"
|
|
1963
|
-
"
|
|
1964
|
-
"
|
|
2140
|
+
"multiplayer",
|
|
2141
|
+
"character-controller",
|
|
2142
|
+
"scripting"
|
|
1965
2143
|
],
|
|
1966
2144
|
"modalities": [
|
|
1967
|
-
"
|
|
2145
|
+
"scripts",
|
|
2146
|
+
"scenes"
|
|
1968
2147
|
]
|
|
1969
2148
|
},
|
|
1970
2149
|
"compatibility": {
|
|
1971
2150
|
"engine": ">=4.6"
|
|
1972
2151
|
},
|
|
1973
2152
|
"related": {
|
|
1974
|
-
"tools": [
|
|
1975
|
-
"tool/open"
|
|
1976
|
-
],
|
|
1977
|
-
"references": [
|
|
1978
|
-
"reference/product-map"
|
|
1979
|
-
],
|
|
1980
2153
|
"skills": [
|
|
1981
|
-
"skill/
|
|
2154
|
+
"skill/multiplayer",
|
|
2155
|
+
"skill/multiplayer-project",
|
|
2156
|
+
"skill/multiplayer-state",
|
|
2157
|
+
"skill/multiplayer-testing"
|
|
1982
2158
|
]
|
|
1983
2159
|
},
|
|
1984
2160
|
"status": "stable",
|
|
1985
|
-
"recommended":
|
|
2161
|
+
"recommended": false
|
|
1986
2162
|
},
|
|
1987
2163
|
{
|
|
1988
|
-
"id": "skill/
|
|
2164
|
+
"id": "skill/multiplayer-project",
|
|
1989
2165
|
"kind": "skill",
|
|
1990
|
-
"version": "1.0.
|
|
1991
|
-
"content_hash": "
|
|
1992
|
-
"summary": "
|
|
2166
|
+
"version": "1.0.0",
|
|
2167
|
+
"content_hash": "8adf72332e33f20842ea8f3f008b9704dd28aa25b923bdbf0f80109dcea2b400",
|
|
2168
|
+
"summary": "Set up a Summer multiplayer project: both entry scenes, World and queue files, joining, and a first Local Play run.",
|
|
1993
2169
|
"use_when": [
|
|
1994
|
-
"
|
|
1995
|
-
"
|
|
2170
|
+
"making a Summer game playable online or co-op: the first multiplayer setup",
|
|
2171
|
+
"adding multiplayer to a Summer game: the client and authority scenes, summer.build.json, world.json and joining a queue",
|
|
2172
|
+
"a Summer multiplayer project has no summer.build.json or world.json yet, or Local Play cannot find the World",
|
|
2173
|
+
"laying out a multiplayer project in client/, authority/ and network/ folders"
|
|
1996
2174
|
],
|
|
1997
2175
|
"facets": {
|
|
1998
2176
|
"lifecycle": [
|
|
1999
2177
|
"build"
|
|
2000
2178
|
],
|
|
2001
2179
|
"domains": [
|
|
2002
|
-
"
|
|
2003
|
-
"project"
|
|
2180
|
+
"multiplayer",
|
|
2181
|
+
"project",
|
|
2182
|
+
"scripting"
|
|
2004
2183
|
],
|
|
2005
2184
|
"modalities": [
|
|
2185
|
+
"scripts",
|
|
2186
|
+
"scenes",
|
|
2006
2187
|
"project"
|
|
2007
2188
|
]
|
|
2008
2189
|
},
|
|
@@ -2011,33 +2192,41 @@
|
|
|
2011
2192
|
},
|
|
2012
2193
|
"related": {
|
|
2013
2194
|
"skills": [
|
|
2014
|
-
"skill/
|
|
2195
|
+
"skill/multiplayer",
|
|
2196
|
+
"skill/multiplayer-movement",
|
|
2197
|
+
"skill/multiplayer-state",
|
|
2198
|
+
"skill/multiplayer-testing",
|
|
2199
|
+
"skill/multiplayer-publish",
|
|
2200
|
+
"skill/summer-matchmaking",
|
|
2201
|
+
"skill/summer-parties",
|
|
2202
|
+
"skill/summer-world-saves"
|
|
2015
2203
|
]
|
|
2016
2204
|
},
|
|
2017
2205
|
"status": "stable",
|
|
2018
|
-
"recommended":
|
|
2206
|
+
"recommended": false
|
|
2019
2207
|
},
|
|
2020
2208
|
{
|
|
2021
|
-
"id": "skill/
|
|
2209
|
+
"id": "skill/multiplayer-publish",
|
|
2022
2210
|
"kind": "skill",
|
|
2023
|
-
"version": "1.0.
|
|
2024
|
-
"content_hash": "
|
|
2025
|
-
"summary": "
|
|
2211
|
+
"version": "1.0.0",
|
|
2212
|
+
"content_hash": "7d7f025367beb0f71efa96519a4325e9f3b97705c99ea597ea73aaf9da2052eb",
|
|
2213
|
+
"summary": "Ship a hosted Summer multiplayer game: the summer.games bundle, server preset, pre-upload checks, and a new Build.",
|
|
2026
2214
|
"use_when": [
|
|
2027
|
-
"
|
|
2028
|
-
"
|
|
2215
|
+
"publishing a hosted Summer multiplayer game online so other players can join it",
|
|
2216
|
+
"making the summer.games bundle of a hosted game: client.pck, server.pck and the Linux server preset",
|
|
2217
|
+
"a summer.games export error mentions summer.build.json, WorldDefinitions, the server preset, the composition or the source graph"
|
|
2029
2218
|
],
|
|
2030
2219
|
"facets": {
|
|
2031
2220
|
"lifecycle": [
|
|
2032
|
-
"
|
|
2221
|
+
"launch"
|
|
2033
2222
|
],
|
|
2034
2223
|
"domains": [
|
|
2035
|
-
"
|
|
2036
|
-
"
|
|
2224
|
+
"multiplayer",
|
|
2225
|
+
"deployment"
|
|
2037
2226
|
],
|
|
2038
2227
|
"modalities": [
|
|
2039
|
-
"
|
|
2040
|
-
"
|
|
2228
|
+
"project",
|
|
2229
|
+
"docs"
|
|
2041
2230
|
]
|
|
2042
2231
|
},
|
|
2043
2232
|
"compatibility": {
|
|
@@ -2045,26 +2234,24 @@
|
|
|
2045
2234
|
},
|
|
2046
2235
|
"related": {
|
|
2047
2236
|
"skills": [
|
|
2048
|
-
"skill/
|
|
2049
|
-
"skill/
|
|
2050
|
-
"skill/
|
|
2051
|
-
"skill/vehicle-model",
|
|
2052
|
-
"skill/asset-strategy",
|
|
2053
|
-
"skill/ambient-bed"
|
|
2237
|
+
"skill/multiplayer",
|
|
2238
|
+
"skill/multiplayer-project",
|
|
2239
|
+
"skill/multiplayer-testing"
|
|
2054
2240
|
]
|
|
2055
2241
|
},
|
|
2056
|
-
"status": "
|
|
2242
|
+
"status": "preview",
|
|
2057
2243
|
"recommended": false
|
|
2058
2244
|
},
|
|
2059
2245
|
{
|
|
2060
|
-
"id": "skill/
|
|
2246
|
+
"id": "skill/multiplayer-state",
|
|
2061
2247
|
"kind": "skill",
|
|
2062
|
-
"version": "1.0.
|
|
2063
|
-
"content_hash": "
|
|
2064
|
-
"summary": "
|
|
2248
|
+
"version": "1.0.0",
|
|
2249
|
+
"content_hash": "64c1639093e7d51a39125236270278799fcddc42dab98cdf3d2649deec09d912",
|
|
2250
|
+
"summary": "Authority-owned game state in Summer multiplayer: shared and private State groups, validated Commands, and Events.",
|
|
2065
2251
|
"use_when": [
|
|
2066
|
-
"
|
|
2067
|
-
"
|
|
2252
|
+
"score, health, doors, rounds, inventories or wallets in a Summer multiplayer game, and who owns them",
|
|
2253
|
+
"players need to collect, buy, use, open or trade things and the authority must validate it",
|
|
2254
|
+
"clients desync, cheat or double-spend; sending one-off effects to every player"
|
|
2068
2255
|
],
|
|
2069
2256
|
"facets": {
|
|
2070
2257
|
"lifecycle": [
|
|
@@ -2072,11 +2259,11 @@
|
|
|
2072
2259
|
],
|
|
2073
2260
|
"domains": [
|
|
2074
2261
|
"multiplayer",
|
|
2075
|
-
"
|
|
2262
|
+
"game-design",
|
|
2263
|
+
"scripting"
|
|
2076
2264
|
],
|
|
2077
2265
|
"modalities": [
|
|
2078
|
-
"scripts"
|
|
2079
|
-
"scenes"
|
|
2266
|
+
"scripts"
|
|
2080
2267
|
]
|
|
2081
2268
|
},
|
|
2082
2269
|
"compatibility": {
|
|
@@ -2084,29 +2271,235 @@
|
|
|
2084
2271
|
},
|
|
2085
2272
|
"related": {
|
|
2086
2273
|
"skills": [
|
|
2087
|
-
"skill/
|
|
2088
|
-
"skill/
|
|
2274
|
+
"skill/multiplayer",
|
|
2275
|
+
"skill/multiplayer-movement",
|
|
2276
|
+
"skill/multiplayer-testing",
|
|
2277
|
+
"skill/summer-player-data",
|
|
2278
|
+
"skill/summer-match-results",
|
|
2279
|
+
"skill/multiplayer-project",
|
|
2280
|
+
"skill/summer-analytics",
|
|
2281
|
+
"skill/summer-store",
|
|
2282
|
+
"skill/summer-world-chat",
|
|
2283
|
+
"skill/summer-world-saves"
|
|
2089
2284
|
]
|
|
2090
2285
|
},
|
|
2091
2286
|
"status": "stable",
|
|
2092
|
-
"recommended":
|
|
2287
|
+
"recommended": false
|
|
2093
2288
|
},
|
|
2094
2289
|
{
|
|
2095
|
-
"id": "skill/
|
|
2290
|
+
"id": "skill/multiplayer-testing",
|
|
2096
2291
|
"kind": "skill",
|
|
2097
|
-
"version": "1.0.
|
|
2098
|
-
"content_hash": "
|
|
2099
|
-
"summary": "
|
|
2292
|
+
"version": "1.0.0",
|
|
2293
|
+
"content_hash": "2226c9c44379c14c5e7693beb8957eab212c721206fbc272297ed9e284d764fc",
|
|
2294
|
+
"summary": "Test a Summer multiplayer game with Local Play: several players, a bad network, bots, and what a passing run shows.",
|
|
2100
2295
|
"use_when": [
|
|
2101
|
-
"
|
|
2102
|
-
"
|
|
2296
|
+
"running or testing a Summer multiplayer game locally with several players (Local Play)",
|
|
2297
|
+
"testing multiplayer under latency, jitter or packet loss, or with bots",
|
|
2298
|
+
"a multiplayer run says ok but nothing networked works, or deciding whether a multiplayer change is done"
|
|
2103
2299
|
],
|
|
2104
2300
|
"facets": {
|
|
2105
2301
|
"lifecycle": [
|
|
2106
|
-
"build"
|
|
2302
|
+
"build",
|
|
2303
|
+
"support"
|
|
2107
2304
|
],
|
|
2108
2305
|
"domains": [
|
|
2109
|
-
"
|
|
2306
|
+
"multiplayer",
|
|
2307
|
+
"playtest",
|
|
2308
|
+
"verification"
|
|
2309
|
+
],
|
|
2310
|
+
"modalities": [
|
|
2311
|
+
"scripts",
|
|
2312
|
+
"project"
|
|
2313
|
+
]
|
|
2314
|
+
},
|
|
2315
|
+
"compatibility": {
|
|
2316
|
+
"engine": ">=4.6"
|
|
2317
|
+
},
|
|
2318
|
+
"related": {
|
|
2319
|
+
"skills": [
|
|
2320
|
+
"skill/multiplayer",
|
|
2321
|
+
"skill/multiplayer-project",
|
|
2322
|
+
"skill/multiplayer-movement",
|
|
2323
|
+
"skill/multiplayer-state",
|
|
2324
|
+
"skill/multiplayer-publish",
|
|
2325
|
+
"skill/summer-friends",
|
|
2326
|
+
"skill/summer-match-results",
|
|
2327
|
+
"skill/summer-matchmaking",
|
|
2328
|
+
"skill/summer-parties",
|
|
2329
|
+
"skill/summer-player-data",
|
|
2330
|
+
"skill/summer-store",
|
|
2331
|
+
"skill/summer-world-chat"
|
|
2332
|
+
]
|
|
2333
|
+
},
|
|
2334
|
+
"status": "stable",
|
|
2335
|
+
"recommended": false
|
|
2336
|
+
},
|
|
2337
|
+
{
|
|
2338
|
+
"id": "skill/music-track",
|
|
2339
|
+
"kind": "skill",
|
|
2340
|
+
"version": "1.0.2",
|
|
2341
|
+
"content_hash": "549f169cf06ad03bf5a8ef5d056854a833453b4d8b715cdb603b291530c5c4ca",
|
|
2342
|
+
"summary": "Generate a looped or cinematic music track — loops authored at >=30s with a marked loop point, cinematic tracks at >=60s linear.",
|
|
2343
|
+
"use_when": [
|
|
2344
|
+
"generating a looped or cinematic music track — main theme, boss music, title screen, exploration loop, combat track",
|
|
2345
|
+
"a game has no music yet or needs a new track for a level, a cutscene, or the credits"
|
|
2346
|
+
],
|
|
2347
|
+
"facets": {
|
|
2348
|
+
"lifecycle": [
|
|
2349
|
+
"build"
|
|
2350
|
+
],
|
|
2351
|
+
"domains": [
|
|
2352
|
+
"audio",
|
|
2353
|
+
"assets"
|
|
2354
|
+
],
|
|
2355
|
+
"modalities": [
|
|
2356
|
+
"audio",
|
|
2357
|
+
"assets"
|
|
2358
|
+
]
|
|
2359
|
+
},
|
|
2360
|
+
"compatibility": {
|
|
2361
|
+
"engine": ">=4.6"
|
|
2362
|
+
},
|
|
2363
|
+
"related": {
|
|
2364
|
+
"skills": [
|
|
2365
|
+
"skill/adaptive-music",
|
|
2366
|
+
"skill/audio-direction"
|
|
2367
|
+
]
|
|
2368
|
+
},
|
|
2369
|
+
"status": "stable",
|
|
2370
|
+
"recommended": true
|
|
2371
|
+
},
|
|
2372
|
+
{
|
|
2373
|
+
"id": "skill/navigate-summer",
|
|
2374
|
+
"kind": "skill",
|
|
2375
|
+
"version": "1.0.0",
|
|
2376
|
+
"content_hash": "8fdf4a979ef8e40412fa23974097251937dbd5a553490be8b09842e5c7868b6f",
|
|
2377
|
+
"summary": "When to open a Summer web page or editor surface FOR the user (billing, their games, the scene just built) versus acting through the API, using summer_open.",
|
|
2378
|
+
"use_when": [
|
|
2379
|
+
"the user asks to see, check, or decide something — \"show me my billing\", \"where do I change my plan\", \"open my games\", \"let me look at the scene\", \"take me to the MCP guide for Cursor\"",
|
|
2380
|
+
"deciding whether to open a surface for the user or to do the work through Summer tools",
|
|
2381
|
+
"handing the user a link (headless, remote, or the user prefers a link) instead of launching a browser"
|
|
2382
|
+
],
|
|
2383
|
+
"facets": {
|
|
2384
|
+
"lifecycle": [
|
|
2385
|
+
"build",
|
|
2386
|
+
"launch",
|
|
2387
|
+
"support"
|
|
2388
|
+
],
|
|
2389
|
+
"domains": [
|
|
2390
|
+
"navigation",
|
|
2391
|
+
"agent-workflow",
|
|
2392
|
+
"meta"
|
|
2393
|
+
],
|
|
2394
|
+
"modalities": [
|
|
2395
|
+
"docs"
|
|
2396
|
+
]
|
|
2397
|
+
},
|
|
2398
|
+
"compatibility": {
|
|
2399
|
+
"engine": ">=4.6"
|
|
2400
|
+
},
|
|
2401
|
+
"related": {
|
|
2402
|
+
"tools": [
|
|
2403
|
+
"tool/open"
|
|
2404
|
+
],
|
|
2405
|
+
"references": [
|
|
2406
|
+
"reference/product-map"
|
|
2407
|
+
],
|
|
2408
|
+
"skills": [
|
|
2409
|
+
"skill/using-summer"
|
|
2410
|
+
]
|
|
2411
|
+
},
|
|
2412
|
+
"status": "stable",
|
|
2413
|
+
"recommended": true
|
|
2414
|
+
},
|
|
2415
|
+
{
|
|
2416
|
+
"id": "skill/new-project",
|
|
2417
|
+
"kind": "skill",
|
|
2418
|
+
"version": "1.0.4",
|
|
2419
|
+
"content_hash": "4a31b0bffe33ed5d3878f2d8bb6727874958d4cf1ed32ec02869bfab0c847918",
|
|
2420
|
+
"summary": "Create a fresh blank Summer Engine project — asks one question (project name) and runs summer create empty.",
|
|
2421
|
+
"use_when": [
|
|
2422
|
+
"the user wants a fresh blank Summer Engine project — from scratch, blank canvas",
|
|
2423
|
+
"starting a Summer Engine project with no template, only a name, ready for an empty main scene"
|
|
2424
|
+
],
|
|
2425
|
+
"facets": {
|
|
2426
|
+
"lifecycle": [
|
|
2427
|
+
"build"
|
|
2428
|
+
],
|
|
2429
|
+
"domains": [
|
|
2430
|
+
"scenes",
|
|
2431
|
+
"project"
|
|
2432
|
+
],
|
|
2433
|
+
"modalities": [
|
|
2434
|
+
"project"
|
|
2435
|
+
]
|
|
2436
|
+
},
|
|
2437
|
+
"compatibility": {
|
|
2438
|
+
"engine": ">=4.6"
|
|
2439
|
+
},
|
|
2440
|
+
"related": {
|
|
2441
|
+
"skills": [
|
|
2442
|
+
"skill/make-game"
|
|
2443
|
+
]
|
|
2444
|
+
},
|
|
2445
|
+
"status": "stable",
|
|
2446
|
+
"recommended": true
|
|
2447
|
+
},
|
|
2448
|
+
{
|
|
2449
|
+
"id": "skill/organic-model",
|
|
2450
|
+
"kind": "skill",
|
|
2451
|
+
"version": "1.0.3",
|
|
2452
|
+
"content_hash": "bdb8ea7c64de5cb70224ff2d6817d4173daabe5763f4ef613242ee2fe53f8b7f",
|
|
2453
|
+
"summary": "Generate organic 3D shapes — trees, rocks, mushrooms, coral, plants, vines, crystals — where AI artifacts read as natural irregularity.",
|
|
2454
|
+
"use_when": [
|
|
2455
|
+
"generating organic shapes — trees, rocks, mushrooms, coral, bushes, alien plants, vines, crystals, fruit, bones",
|
|
2456
|
+
"a level needs vegetation, rocks, or other natural shapes where irregularity reads as realism"
|
|
2457
|
+
],
|
|
2458
|
+
"facets": {
|
|
2459
|
+
"lifecycle": [
|
|
2460
|
+
"build"
|
|
2461
|
+
],
|
|
2462
|
+
"domains": [
|
|
2463
|
+
"3d",
|
|
2464
|
+
"assets"
|
|
2465
|
+
],
|
|
2466
|
+
"modalities": [
|
|
2467
|
+
"3d-models",
|
|
2468
|
+
"scenes"
|
|
2469
|
+
]
|
|
2470
|
+
},
|
|
2471
|
+
"compatibility": {
|
|
2472
|
+
"engine": ">=4.6"
|
|
2473
|
+
},
|
|
2474
|
+
"related": {
|
|
2475
|
+
"skills": [
|
|
2476
|
+
"skill/character-model",
|
|
2477
|
+
"skill/environment-kit",
|
|
2478
|
+
"skill/prop-model",
|
|
2479
|
+
"skill/vehicle-model",
|
|
2480
|
+
"skill/asset-strategy",
|
|
2481
|
+
"skill/ambient-bed"
|
|
2482
|
+
]
|
|
2483
|
+
},
|
|
2484
|
+
"status": "stable",
|
|
2485
|
+
"recommended": false
|
|
2486
|
+
},
|
|
2487
|
+
{
|
|
2488
|
+
"id": "skill/pixel-art",
|
|
2489
|
+
"kind": "skill",
|
|
2490
|
+
"version": "1.0.4",
|
|
2491
|
+
"content_hash": "d461185f9d8c0efc525fda441f948777f05ad1ca345a004651925af298649cbc",
|
|
2492
|
+
"summary": "Generate pixel-art assets — sprites, items, tiles, portraits — at a specific resolution with pixel-perfect grid, limited palette, retro feel.",
|
|
2493
|
+
"use_when": [
|
|
2494
|
+
"generating pixel-art assets — sprites, items, tiles, portraits — in a pixel style at a specific resolution (32x32, 64x64, 128x128)",
|
|
2495
|
+
"a retro or low-resolution 2D game needs sprites, tiles, or portraits on a fixed grid with a limited palette"
|
|
2496
|
+
],
|
|
2497
|
+
"facets": {
|
|
2498
|
+
"lifecycle": [
|
|
2499
|
+
"build"
|
|
2500
|
+
],
|
|
2501
|
+
"domains": [
|
|
2502
|
+
"2d",
|
|
2110
2503
|
"assets"
|
|
2111
2504
|
],
|
|
2112
2505
|
"modalities": [
|
|
@@ -2133,7 +2526,7 @@
|
|
|
2133
2526
|
"id": "skill/play",
|
|
2134
2527
|
"kind": "skill",
|
|
2135
2528
|
"version": "1.0.2",
|
|
2136
|
-
"content_hash": "
|
|
2529
|
+
"content_hash": "34786f984391c40daaa00179d393d811bc13f38b97cb4ad3740096892c083563",
|
|
2137
2530
|
"summary": "Run the project in Summer Engine, wait briefly, then report what's happening — clean run, errors, or warnings.",
|
|
2138
2531
|
"use_when": [
|
|
2139
2532
|
"the user says 'play', 'run it', 'test it', 'let me see it', or 'start the game'",
|
|
@@ -2166,7 +2559,7 @@
|
|
|
2166
2559
|
"id": "skill/playtesting-a-feature",
|
|
2167
2560
|
"kind": "skill",
|
|
2168
2561
|
"version": "1.1.2",
|
|
2169
|
-
"content_hash": "
|
|
2562
|
+
"content_hash": "852ca8259c4366dff6fc9e4c3e908c2434fd07587d3dd7a6f65ad96572dcc85f",
|
|
2170
2563
|
"summary": "Before claiming a gameplay feature done: actually run the game and walk through the feature. Static diagnostics and type checks do not count.",
|
|
2171
2564
|
"use_when": [
|
|
2172
2565
|
"about to claim a gameplay feature is done, shipped, or working — requires actually running the game and walking through the feature first",
|
|
@@ -2204,8 +2597,8 @@
|
|
|
2204
2597
|
{
|
|
2205
2598
|
"id": "skill/procedural-animation",
|
|
2206
2599
|
"kind": "skill",
|
|
2207
|
-
"version": "1.0.
|
|
2208
|
-
"content_hash": "
|
|
2600
|
+
"version": "1.0.4",
|
|
2601
|
+
"content_hash": "476eac45175a9151cac7b2553624e7e541fbb8eb03c01236d27f82721e12320a",
|
|
2209
2602
|
"summary": "Runtime bone modification on top of clips — head look-at, foot IK, hand-grabs-prop, additive lean, recoil. Code-and-modifier patterns, not generation.",
|
|
2210
2603
|
"use_when": [
|
|
2211
2604
|
"the user needs runtime-driven bone modification on top of clips — head look-at, foot IK on uneven ground, additive lean, hit recoil, ragdoll",
|
|
@@ -2245,7 +2638,7 @@
|
|
|
2245
2638
|
"id": "skill/prop-model",
|
|
2246
2639
|
"kind": "skill",
|
|
2247
2640
|
"version": "1.0.3",
|
|
2248
|
-
"content_hash": "
|
|
2641
|
+
"content_hash": "cba374b505cce54a0f00a56b85a94790d9a83b8264c6abdeab5d6634f5df88f1",
|
|
2249
2642
|
"summary": "Generate a single static 3D prop — sword, barrel, chest, lantern, throne, statue — one isolated object, no rigging, wired as a MeshInstance3D.",
|
|
2250
2643
|
"use_when": [
|
|
2251
2644
|
"generating a single static 3D prop — sword, barrel, chest, lantern, throne, statue, crate, key, potion, banner",
|
|
@@ -2283,7 +2676,7 @@
|
|
|
2283
2676
|
"id": "skill/psx-retro-rendering",
|
|
2284
2677
|
"kind": "skill",
|
|
2285
2678
|
"version": "0.1.1",
|
|
2286
|
-
"content_hash": "
|
|
2679
|
+
"content_hash": "ac9d16252308c0b9b7bae5fac8e73ffc4d66c55fff1d97beb0e706ff4b16a4fd",
|
|
2287
2680
|
"summary": "Hardware-informed PlayStation 1 rendering in Godot 4 — low-res output, RGB5 and exact dither, affine textures, vertex snapping, blend modes, fog; limits named.",
|
|
2288
2681
|
"use_when": [
|
|
2289
2682
|
"make my game render like a PlayStation 1 game, with texture warping, vertex wobble, and dithering",
|
|
@@ -2321,7 +2714,7 @@
|
|
|
2321
2714
|
"id": "skill/realtime-wet-surfaces",
|
|
2322
2715
|
"kind": "skill",
|
|
2323
2716
|
"version": "0.1.1",
|
|
2324
|
-
"content_hash": "
|
|
2717
|
+
"content_hash": "58eeea92f8afdf663cda02d5889e0d50f86d51e27a94be5ad3477202a2354eab",
|
|
2325
2718
|
"summary": "Real-time wetness on existing Godot 4 materials without losing their values — value-copying wet shader, geometry-driven wet mask, instance-uniform wet amount.",
|
|
2326
2719
|
"use_when": [
|
|
2327
2720
|
"make surfaces look wet when it rains and dry off afterwards",
|
|
@@ -2358,7 +2751,7 @@
|
|
|
2358
2751
|
"id": "skill/remote-deploy",
|
|
2359
2752
|
"kind": "skill",
|
|
2360
2753
|
"version": "1.0.2",
|
|
2361
|
-
"content_hash": "
|
|
2754
|
+
"content_hash": "a69518dca779885d1747b7e4a7481dfdd36846fb2736c2d83a74e283e01b40c5",
|
|
2362
2755
|
"summary": "Run or test the game on a real device — phone, tablet, another computer — via the Remote Deploy button, runnable export presets, and on-device debugging.",
|
|
2363
2756
|
"use_when": [
|
|
2364
2757
|
"the user wants to run or test the game on a real target instead of the editor — a phone, tablet, or another computer",
|
|
@@ -2386,7 +2779,7 @@
|
|
|
2386
2779
|
"id": "skill/retarget",
|
|
2387
2780
|
"kind": "skill",
|
|
2388
2781
|
"version": "1.0.3",
|
|
2389
|
-
"content_hash": "
|
|
2782
|
+
"content_hash": "8fec859fdd9166951b49ed698ce894b891e0a13db94bbedd4a507aa74217a229",
|
|
2390
2783
|
"summary": "Apply existing animation clips from one rigged character to a different rigged character — same library, multiple models, no regeneration.",
|
|
2391
2784
|
"use_when": [
|
|
2392
2785
|
"applying existing animation clips from one rigged character to a different rigged character — sharing one animation library across models",
|
|
@@ -2426,7 +2819,7 @@
|
|
|
2426
2819
|
"id": "skill/running-in-the-cloud",
|
|
2427
2820
|
"kind": "skill",
|
|
2428
2821
|
"version": "1.0.3",
|
|
2429
|
-
"content_hash": "
|
|
2822
|
+
"content_hash": "492c55f39aeeb6102afa376f248e300d6b54d13e6bf194859da3a7a86eb9ba9d",
|
|
2430
2823
|
"summary": "Run Summer Engine on a Linux box with no display — install it, launch headless, know when xvfb + software GL are needed, authenticate without a browser.",
|
|
2431
2824
|
"use_when": [
|
|
2432
2825
|
"Summer Engine runs in a cloud container, CI job, remote agent sandbox, or any Linux machine with no desktop",
|
|
@@ -2459,11 +2852,47 @@
|
|
|
2459
2852
|
"status": "stable",
|
|
2460
2853
|
"recommended": false
|
|
2461
2854
|
},
|
|
2855
|
+
{
|
|
2856
|
+
"id": "skill/save-load",
|
|
2857
|
+
"kind": "skill",
|
|
2858
|
+
"version": "1.0.0",
|
|
2859
|
+
"content_hash": "2435b5bfa043c8615accb4eec56c674f57857eec7948a5249e7c51c964d2497f",
|
|
2860
|
+
"summary": "Persist game state in Summer Engine: user:// paths, JSON progress vs ConfigFile settings, a versioned save schema with migration, autosave hooks.",
|
|
2861
|
+
"use_when": [
|
|
2862
|
+
"persisting progress, settings, high scores, checkpoints, or save slots",
|
|
2863
|
+
"deciding between JSON and ConfigFile for a save or settings file",
|
|
2864
|
+
"making saves survive game updates with a schema version and migration"
|
|
2865
|
+
],
|
|
2866
|
+
"facets": {
|
|
2867
|
+
"lifecycle": [
|
|
2868
|
+
"build"
|
|
2869
|
+
],
|
|
2870
|
+
"domains": [
|
|
2871
|
+
"scripting",
|
|
2872
|
+
"gameplay"
|
|
2873
|
+
],
|
|
2874
|
+
"modalities": [
|
|
2875
|
+
"scripts"
|
|
2876
|
+
]
|
|
2877
|
+
},
|
|
2878
|
+
"compatibility": {
|
|
2879
|
+
"engine": ">=4.6"
|
|
2880
|
+
},
|
|
2881
|
+
"related": {
|
|
2882
|
+
"skills": [
|
|
2883
|
+
"skill/make-game",
|
|
2884
|
+
"skill/gdscript-patterns",
|
|
2885
|
+
"skill/ui-basics"
|
|
2886
|
+
]
|
|
2887
|
+
},
|
|
2888
|
+
"status": "preview",
|
|
2889
|
+
"recommended": false
|
|
2890
|
+
},
|
|
2462
2891
|
{
|
|
2463
2892
|
"id": "skill/scene-composition",
|
|
2464
2893
|
"kind": "skill",
|
|
2465
2894
|
"version": "1.0.3",
|
|
2466
|
-
"content_hash": "
|
|
2895
|
+
"content_hash": "6afd25688b5b427c97c748b1820e8faa95ccc1457747b5ac3e14919592f6618b",
|
|
2467
2896
|
"summary": "Scene structure conventions — node hierarchy, when to extract sub-scenes, reusable prefab patterns, and instance-versus-add-node decisions.",
|
|
2468
2897
|
"use_when": [
|
|
2469
2898
|
"building or organizing Summer Engine scenes: node hierarchy conventions, sub-scene extraction, prefab patterns, PackedScene decisions",
|
|
@@ -2497,7 +2926,7 @@
|
|
|
2497
2926
|
"id": "skill/scene-hierarchy-design",
|
|
2498
2927
|
"kind": "skill",
|
|
2499
2928
|
"version": "0.1.1",
|
|
2500
|
-
"content_hash": "
|
|
2929
|
+
"content_hash": "c5444a338af1556101c729b3ad826d37ce9f79edd76afb4a00a82c5de4457e5d",
|
|
2501
2930
|
"summary": "Structure Summer Engine scenes by access pattern — asset vs live hierarchies, wrapper nodes per operation, sub-scenes for reuse, path-agnostic logic.",
|
|
2502
2931
|
"use_when": [
|
|
2503
2932
|
"how should I structure the node hierarchy for this level or character",
|
|
@@ -2534,7 +2963,7 @@
|
|
|
2534
2963
|
"id": "skill/scene-scripting",
|
|
2535
2964
|
"kind": "skill",
|
|
2536
2965
|
"version": "1.1.1",
|
|
2537
|
-
"content_hash": "
|
|
2966
|
+
"content_hash": "4d4cc4b0b8f02c64b3a4fb2e61a49664ea9e857931063c935430afd9c6c87735",
|
|
2538
2967
|
"summary": "One GDScript in the live editor (summer_run_script) builds scenes, 2D levels, HUDs and gameplay wiring instead of CRUD chains; verify with diff + screenshot.",
|
|
2539
2968
|
"use_when": [
|
|
2540
2969
|
"a scene change needs 3+ related ops or any computed placement — scattering, grids, rings, procedural meshes, geometry helpers, terrain, lighting rigs, keyframe animation, shader FX",
|
|
@@ -2590,29 +3019,414 @@
|
|
|
2590
3019
|
]
|
|
2591
3020
|
},
|
|
2592
3021
|
"status": "preview",
|
|
2593
|
-
"recommended": true
|
|
3022
|
+
"recommended": true
|
|
3023
|
+
},
|
|
3024
|
+
{
|
|
3025
|
+
"id": "skill/scene-to-level",
|
|
3026
|
+
"kind": "skill",
|
|
3027
|
+
"version": "1.0.3",
|
|
3028
|
+
"content_hash": "0e5eae1460ab376e49ab372dc5fdee6c20c9285a41c9c2cf2eacc0da56a3b1b9",
|
|
3029
|
+
"summary": "Go from a scene reference image or concept art to a playable scene — orchestrates concept, asset pack, terrain, composition, and scene assembly.",
|
|
3030
|
+
"use_when": [
|
|
3031
|
+
"going from a scene reference image or concept art to a playable Summer Engine scene populated with the right assets and terrain",
|
|
3032
|
+
"the user shares concept art or a reference screenshot and wants that location built as a playable scene"
|
|
3033
|
+
],
|
|
3034
|
+
"facets": {
|
|
3035
|
+
"lifecycle": [
|
|
3036
|
+
"build"
|
|
3037
|
+
],
|
|
3038
|
+
"domains": [
|
|
3039
|
+
"level-design",
|
|
3040
|
+
"game-design"
|
|
3041
|
+
],
|
|
3042
|
+
"modalities": [
|
|
3043
|
+
"scenes",
|
|
3044
|
+
"assets"
|
|
3045
|
+
]
|
|
3046
|
+
},
|
|
3047
|
+
"compatibility": {
|
|
3048
|
+
"engine": ">=4.6"
|
|
3049
|
+
},
|
|
3050
|
+
"related": {
|
|
3051
|
+
"skills": [
|
|
3052
|
+
"skill/character-portrait",
|
|
3053
|
+
"skill/create-asset-sheet",
|
|
3054
|
+
"skill/pixel-art",
|
|
3055
|
+
"skill/sprite-sheet",
|
|
3056
|
+
"skill/tileable-texture",
|
|
3057
|
+
"skill/use-widget-asset",
|
|
3058
|
+
"skill/design-mechanic",
|
|
3059
|
+
"skill/design-level"
|
|
3060
|
+
]
|
|
3061
|
+
},
|
|
3062
|
+
"status": "stable",
|
|
3063
|
+
"recommended": false
|
|
3064
|
+
},
|
|
3065
|
+
{
|
|
3066
|
+
"id": "skill/skill-create",
|
|
3067
|
+
"kind": "skill",
|
|
3068
|
+
"version": "1.0.3",
|
|
3069
|
+
"content_hash": "2db5cc11a99eba2ed1146c04859c9d5de03108565df5ae0d0f2cbbf5e981ac68",
|
|
3070
|
+
"summary": "Bootstrap a new Summer library skill (library/skills/<slug>/ with resource.yaml and SKILL.md), frontmatter, and stub sections.",
|
|
3071
|
+
"use_when": [
|
|
3072
|
+
"a contributor wants to add a new skill to the Summer library",
|
|
3073
|
+
"scaffolding a new library skill folder with canonical structure, frontmatter, and stub sections"
|
|
3074
|
+
],
|
|
3075
|
+
"facets": {
|
|
3076
|
+
"lifecycle": [
|
|
3077
|
+
"build"
|
|
3078
|
+
],
|
|
3079
|
+
"domains": [
|
|
3080
|
+
"agent-workflow",
|
|
3081
|
+
"meta"
|
|
3082
|
+
],
|
|
3083
|
+
"modalities": [
|
|
3084
|
+
"docs"
|
|
3085
|
+
]
|
|
3086
|
+
},
|
|
3087
|
+
"compatibility": {
|
|
3088
|
+
"engine": ">=4.6"
|
|
3089
|
+
},
|
|
3090
|
+
"related": {
|
|
3091
|
+
"skills": [
|
|
3092
|
+
"skill/skill-test"
|
|
3093
|
+
]
|
|
3094
|
+
},
|
|
3095
|
+
"status": "stable",
|
|
3096
|
+
"recommended": false
|
|
3097
|
+
},
|
|
3098
|
+
{
|
|
3099
|
+
"id": "skill/skill-improve",
|
|
3100
|
+
"kind": "skill",
|
|
3101
|
+
"version": "1.0.3",
|
|
3102
|
+
"content_hash": "672ba2b643be852bc2688a0c8cbdc13a0f4cc7707a4bd260ae75eeedd867109e",
|
|
3103
|
+
"summary": "Upgrade an underperforming Summer skill — run it against a behavioral spec with and without changes via a parallel-eval harness; ship the winner.",
|
|
3104
|
+
"use_when": [
|
|
3105
|
+
"a contributor wants to upgrade a Summer skill that is underperforming or to fix a regression",
|
|
3106
|
+
"comparing a skill with and without a change against a behavioral spec before shipping the winner"
|
|
3107
|
+
],
|
|
3108
|
+
"facets": {
|
|
3109
|
+
"lifecycle": [
|
|
3110
|
+
"build"
|
|
3111
|
+
],
|
|
3112
|
+
"domains": [
|
|
3113
|
+
"agent-workflow",
|
|
3114
|
+
"meta"
|
|
3115
|
+
],
|
|
3116
|
+
"modalities": [
|
|
3117
|
+
"docs"
|
|
3118
|
+
]
|
|
3119
|
+
},
|
|
3120
|
+
"compatibility": {
|
|
3121
|
+
"engine": ">=4.6"
|
|
3122
|
+
},
|
|
3123
|
+
"related": {
|
|
3124
|
+
"skills": [
|
|
3125
|
+
"skill/skill-test"
|
|
3126
|
+
]
|
|
3127
|
+
},
|
|
3128
|
+
"status": "stable",
|
|
3129
|
+
"recommended": false
|
|
3130
|
+
},
|
|
3131
|
+
{
|
|
3132
|
+
"id": "skill/skill-test",
|
|
3133
|
+
"kind": "skill",
|
|
3134
|
+
"version": "1.0.4",
|
|
3135
|
+
"content_hash": "40c052a0494f52eced2b97aa58db236f080da1fef360865bdb31975458796f40",
|
|
3136
|
+
"summary": "Lint a Summer skill before commit, audit the whole library, or check a behavioral spec assertion — static structural rules plus behavioral specs.",
|
|
3137
|
+
"use_when": [
|
|
3138
|
+
"a contributor wants to lint a Summer skill before commit, audit the whole library, or check a behavioral spec assertion",
|
|
3139
|
+
"running the structural lint and behavioral spec assertions for one skill or the whole library"
|
|
3140
|
+
],
|
|
3141
|
+
"facets": {
|
|
3142
|
+
"lifecycle": [
|
|
3143
|
+
"build"
|
|
3144
|
+
],
|
|
3145
|
+
"domains": [
|
|
3146
|
+
"agent-workflow",
|
|
3147
|
+
"meta"
|
|
3148
|
+
],
|
|
3149
|
+
"modalities": [
|
|
3150
|
+
"docs"
|
|
3151
|
+
]
|
|
3152
|
+
},
|
|
3153
|
+
"compatibility": {
|
|
3154
|
+
"engine": ">=4.6"
|
|
3155
|
+
},
|
|
3156
|
+
"related": {
|
|
3157
|
+
"skills": [
|
|
3158
|
+
"skill/skill-create",
|
|
3159
|
+
"skill/skill-improve"
|
|
3160
|
+
]
|
|
3161
|
+
},
|
|
3162
|
+
"status": "stable",
|
|
3163
|
+
"recommended": false
|
|
3164
|
+
},
|
|
3165
|
+
{
|
|
3166
|
+
"id": "skill/skintokens-auto-rigging",
|
|
3167
|
+
"kind": "skill",
|
|
3168
|
+
"version": "0.1.1",
|
|
3169
|
+
"content_hash": "cfde2e7d77e92aed9a9b056e240b400263144489e55aba312055f5f1fb702a14",
|
|
3170
|
+
"summary": "Offline auto-rigging with skin-tokens.cpp (GGML SkinTokens/TokenRig port) — skeleton and skin weights from a static GLB mesh on CPU/Vulkan, into Godot 4.",
|
|
3171
|
+
"use_when": [
|
|
3172
|
+
"auto-rig this static GLB mesh so I can animate it",
|
|
3173
|
+
"generate skin weights for a mesh that already has a skeleton",
|
|
3174
|
+
"batch-rig many creature or character meshes without hand-painting weights",
|
|
3175
|
+
"I have an unrigged AI-generated character and need a first-pass rig"
|
|
3176
|
+
],
|
|
3177
|
+
"facets": {
|
|
3178
|
+
"lifecycle": [
|
|
3179
|
+
"build"
|
|
3180
|
+
],
|
|
3181
|
+
"domains": [
|
|
3182
|
+
"assets",
|
|
3183
|
+
"pipeline",
|
|
3184
|
+
"3d",
|
|
3185
|
+
"animation"
|
|
3186
|
+
],
|
|
3187
|
+
"modalities": [
|
|
3188
|
+
"3d-models",
|
|
3189
|
+
"assets"
|
|
3190
|
+
]
|
|
3191
|
+
},
|
|
3192
|
+
"compatibility": {
|
|
3193
|
+
"engine": ">=4.6"
|
|
3194
|
+
},
|
|
3195
|
+
"related": {
|
|
3196
|
+
"skills": [
|
|
3197
|
+
"skill/character-model",
|
|
3198
|
+
"skill/retarget"
|
|
3199
|
+
]
|
|
3200
|
+
},
|
|
3201
|
+
"status": "preview",
|
|
3202
|
+
"recommended": false
|
|
3203
|
+
},
|
|
3204
|
+
{
|
|
3205
|
+
"id": "skill/skybox-panorama",
|
|
3206
|
+
"kind": "skill",
|
|
3207
|
+
"version": "1.0.3",
|
|
3208
|
+
"content_hash": "a2043febb3c3f4c1b855e3417145a116a4dd44561e700f242fe2f8c5b9e09fc8",
|
|
3209
|
+
"summary": "Generate a 360-degree equirectangular sky panorama and wire it as a PanoramaSkyMaterial Sky resource on WorldEnvironment in a 3D scene.",
|
|
3210
|
+
"use_when": [
|
|
3211
|
+
"generating a 360-degree panoramic sky image for use as a Sky resource (PanoramaSkyMaterial) in a 3D scene",
|
|
3212
|
+
"a 3D scene has a flat or default sky and needs a 360-degree backdrop matching the art direction"
|
|
3213
|
+
],
|
|
3214
|
+
"facets": {
|
|
3215
|
+
"lifecycle": [
|
|
3216
|
+
"build"
|
|
3217
|
+
],
|
|
3218
|
+
"domains": [
|
|
3219
|
+
"2d",
|
|
3220
|
+
"assets"
|
|
3221
|
+
],
|
|
3222
|
+
"modalities": [
|
|
3223
|
+
"images",
|
|
3224
|
+
"scenes"
|
|
3225
|
+
]
|
|
3226
|
+
},
|
|
3227
|
+
"compatibility": {
|
|
3228
|
+
"engine": ">=4.6"
|
|
3229
|
+
},
|
|
3230
|
+
"related": {
|
|
3231
|
+
"skills": [
|
|
3232
|
+
"skill/tileable-texture",
|
|
3233
|
+
"skill/asset-strategy"
|
|
3234
|
+
]
|
|
3235
|
+
},
|
|
3236
|
+
"status": "stable",
|
|
3237
|
+
"recommended": false
|
|
3238
|
+
},
|
|
3239
|
+
{
|
|
3240
|
+
"id": "skill/sound-effect",
|
|
3241
|
+
"kind": "skill",
|
|
3242
|
+
"version": "1.0.3",
|
|
3243
|
+
"content_hash": "2b11048a443c06f06892d8b5a195f716c013aa50fb5356b2af99d520ee5ca3f9",
|
|
3244
|
+
"summary": "Generate short SFX one-shots — footsteps, weapon swings, UI clicks, hit impacts — wired as AudioStreamPlayer/2D/3D that auto-frees on finished.",
|
|
3245
|
+
"use_when": [
|
|
3246
|
+
"generating short SFX one-shots — footsteps, weapon swings, UI clicks, hit impacts, environmental cues",
|
|
3247
|
+
"an action, impact, or UI interaction is silent and needs a short one-shot sound wired to it"
|
|
3248
|
+
],
|
|
3249
|
+
"facets": {
|
|
3250
|
+
"lifecycle": [
|
|
3251
|
+
"build"
|
|
3252
|
+
],
|
|
3253
|
+
"domains": [
|
|
3254
|
+
"audio",
|
|
3255
|
+
"assets"
|
|
3256
|
+
],
|
|
3257
|
+
"modalities": [
|
|
3258
|
+
"audio",
|
|
3259
|
+
"scenes"
|
|
3260
|
+
]
|
|
3261
|
+
},
|
|
3262
|
+
"compatibility": {
|
|
3263
|
+
"engine": ">=4.6"
|
|
3264
|
+
},
|
|
3265
|
+
"related": {
|
|
3266
|
+
"skills": [
|
|
3267
|
+
"skill/audio-direction"
|
|
3268
|
+
]
|
|
3269
|
+
},
|
|
3270
|
+
"status": "stable",
|
|
3271
|
+
"recommended": true
|
|
3272
|
+
},
|
|
3273
|
+
{
|
|
3274
|
+
"id": "skill/spatial-placement",
|
|
3275
|
+
"kind": "skill",
|
|
3276
|
+
"version": "1.1.0",
|
|
3277
|
+
"content_hash": "02202a4c162e804d386de6a87960e03dafc972ab3b32466a2bc358ba2be71b74",
|
|
3278
|
+
"summary": "Place 3D objects and modular kit pieces from measured geometry — inspect, place, starcast, measure, correct; floor, wall, facade, pipe and alcove recipes.",
|
|
3279
|
+
"use_when": [
|
|
3280
|
+
"positioning a prop, character, collider, or platform so it sits flush, avoids overlap, or keeps clearance",
|
|
3281
|
+
"placing something against a wall, inside an alcove, or on a shelf and needing to know which side is blocked and by how much",
|
|
3282
|
+
"repairing an overlap or a floating object after a placement",
|
|
3283
|
+
"post-placement checks on a rotated prop using its own local axes",
|
|
3284
|
+
"placing modular kit pieces — facade or wall modules edge to edge, storeys stacked, pipes, gutters and lamps on a wall, clamps along a pipe",
|
|
3285
|
+
"measuring a kit piece's size, origin and which way it faces before placing it",
|
|
3286
|
+
"checking that a facade line is flush, with no gaps and no module standing proud"
|
|
3287
|
+
],
|
|
3288
|
+
"facets": {
|
|
3289
|
+
"lifecycle": [
|
|
3290
|
+
"build"
|
|
3291
|
+
],
|
|
3292
|
+
"domains": [
|
|
3293
|
+
"scenes",
|
|
3294
|
+
"3d",
|
|
3295
|
+
"world-building",
|
|
3296
|
+
"level-design",
|
|
3297
|
+
"verification"
|
|
3298
|
+
],
|
|
3299
|
+
"modalities": [
|
|
3300
|
+
"scenes"
|
|
3301
|
+
]
|
|
3302
|
+
},
|
|
3303
|
+
"compatibility": {
|
|
3304
|
+
"engine": ">=4.6"
|
|
3305
|
+
},
|
|
3306
|
+
"related": {
|
|
3307
|
+
"tools": [
|
|
3308
|
+
"tool/starcast",
|
|
3309
|
+
"tool/inspect-asset",
|
|
3310
|
+
"tool/place-adjacent",
|
|
3311
|
+
"tool/attach-to-surface",
|
|
3312
|
+
"tool/repeat-along",
|
|
3313
|
+
"tool/connect-ports",
|
|
3314
|
+
"tool/raycast",
|
|
3315
|
+
"tool/measure",
|
|
3316
|
+
"tool/instantiate-scene",
|
|
3317
|
+
"tool/test-placement",
|
|
3318
|
+
"tool/snap-to-surface",
|
|
3319
|
+
"tool/align-distribute-3d",
|
|
3320
|
+
"tool/get-scene-tree",
|
|
3321
|
+
"tool/inspect-node",
|
|
3322
|
+
"tool/set-prop",
|
|
3323
|
+
"tool/batch"
|
|
3324
|
+
],
|
|
3325
|
+
"skills": [
|
|
3326
|
+
"skill/world-building-3d",
|
|
3327
|
+
"skill/scene-composition"
|
|
3328
|
+
]
|
|
3329
|
+
},
|
|
3330
|
+
"status": "preview",
|
|
3331
|
+
"recommended": true
|
|
3332
|
+
},
|
|
3333
|
+
{
|
|
3334
|
+
"id": "skill/sprite-sheet",
|
|
3335
|
+
"kind": "skill",
|
|
3336
|
+
"version": "1.0.4",
|
|
3337
|
+
"content_hash": "e63b37e29e0afc5c8b6bcc4bb074a9684566c8ec9cea3b1655ba611385e2b3f3",
|
|
3338
|
+
"summary": "Generate animated 2D character sprites laid out as a sprite sheet — walk cycle, attack, idle, death — wired into AnimatedSprite2D / SpriteFrames.",
|
|
3339
|
+
"use_when": [
|
|
3340
|
+
"generating animated 2D character sprites laid out as a grid of frames — walk cycle, attack frames, idle bob, death sequence",
|
|
3341
|
+
"a 2D sprite needs its frames laid out as one grid image for AnimatedSprite2D or SpriteFrames"
|
|
3342
|
+
],
|
|
3343
|
+
"facets": {
|
|
3344
|
+
"lifecycle": [
|
|
3345
|
+
"build"
|
|
3346
|
+
],
|
|
3347
|
+
"domains": [
|
|
3348
|
+
"2d",
|
|
3349
|
+
"assets"
|
|
3350
|
+
],
|
|
3351
|
+
"modalities": [
|
|
3352
|
+
"images",
|
|
3353
|
+
"assets"
|
|
3354
|
+
]
|
|
3355
|
+
},
|
|
3356
|
+
"compatibility": {
|
|
3357
|
+
"engine": ">=4.6"
|
|
3358
|
+
},
|
|
3359
|
+
"related": {
|
|
3360
|
+
"skills": [
|
|
3361
|
+
"skill/character-portrait",
|
|
3362
|
+
"skill/pixel-art",
|
|
3363
|
+
"skill/generate-motion",
|
|
3364
|
+
"skill/sound-effect",
|
|
3365
|
+
"skill/create-asset-sheet",
|
|
3366
|
+
"skill/asset-strategy"
|
|
3367
|
+
]
|
|
3368
|
+
},
|
|
3369
|
+
"status": "stable",
|
|
3370
|
+
"recommended": false
|
|
3371
|
+
},
|
|
3372
|
+
{
|
|
3373
|
+
"id": "skill/summer-analytics",
|
|
3374
|
+
"kind": "skill",
|
|
3375
|
+
"version": "1.0.0",
|
|
3376
|
+
"content_hash": "7558853177577fbd5998c1aaf2dd5ce4710c7b0249bae5c434454d6ab48fcad5",
|
|
3377
|
+
"summary": "Send game events to Summer analytics from the authority or client: fire-and-forget, never blocking gameplay.",
|
|
3378
|
+
"use_when": [
|
|
3379
|
+
"adding analytics, telemetry or event tracking to a Summer game: level completed, coin collected, tutorial funnel",
|
|
3380
|
+
"deciding what to track on the client versus the authority, and how to name analytics events and properties",
|
|
3381
|
+
"analytics capture fails with unavailable, capacity_exceeded or analytics_storage_limit_exceeded"
|
|
3382
|
+
],
|
|
3383
|
+
"facets": {
|
|
3384
|
+
"lifecycle": [
|
|
3385
|
+
"build"
|
|
3386
|
+
],
|
|
3387
|
+
"domains": [
|
|
3388
|
+
"multiplayer",
|
|
3389
|
+
"scripting"
|
|
3390
|
+
],
|
|
3391
|
+
"modalities": [
|
|
3392
|
+
"scripts"
|
|
3393
|
+
]
|
|
3394
|
+
},
|
|
3395
|
+
"compatibility": {
|
|
3396
|
+
"engine": ">=4.6"
|
|
3397
|
+
},
|
|
3398
|
+
"related": {
|
|
3399
|
+
"skills": [
|
|
3400
|
+
"skill/multiplayer",
|
|
3401
|
+
"skill/multiplayer-state",
|
|
3402
|
+
"skill/summer-match-results",
|
|
3403
|
+
"skill/summer-store"
|
|
3404
|
+
]
|
|
3405
|
+
},
|
|
3406
|
+
"status": "preview",
|
|
3407
|
+
"recommended": false
|
|
2594
3408
|
},
|
|
2595
3409
|
{
|
|
2596
|
-
"id": "skill/
|
|
3410
|
+
"id": "skill/summer-friends",
|
|
2597
3411
|
"kind": "skill",
|
|
2598
|
-
"version": "1.0.
|
|
2599
|
-
"content_hash": "
|
|
2600
|
-
"summary": "
|
|
3412
|
+
"version": "1.0.0",
|
|
3413
|
+
"content_hash": "ca70bb388a30e216ef2eb9ccd52feb7cb4a442724478bad4bf547131b846a4b4",
|
|
3414
|
+
"summary": "Summer friends in a game: a consented friends list, profile and chat screens, direct messages. Hosted only.",
|
|
2601
3415
|
"use_when": [
|
|
2602
|
-
"
|
|
2603
|
-
"
|
|
3416
|
+
"showing a friends list, who is online or which friends are playing this Summer game",
|
|
3417
|
+
"opening a player's Summer profile, friends list or chat screen from inside a game",
|
|
3418
|
+
"reading or writing a player's direct messages, or a friends call fails with permission_undeclared or permission_declined"
|
|
2604
3419
|
],
|
|
2605
3420
|
"facets": {
|
|
2606
3421
|
"lifecycle": [
|
|
2607
3422
|
"build"
|
|
2608
3423
|
],
|
|
2609
3424
|
"domains": [
|
|
2610
|
-
"
|
|
2611
|
-
"
|
|
3425
|
+
"multiplayer",
|
|
3426
|
+
"ui"
|
|
2612
3427
|
],
|
|
2613
3428
|
"modalities": [
|
|
2614
|
-
"
|
|
2615
|
-
"assets"
|
|
3429
|
+
"scripts"
|
|
2616
3430
|
]
|
|
2617
3431
|
},
|
|
2618
3432
|
"compatibility": {
|
|
@@ -2620,28 +3434,26 @@
|
|
|
2620
3434
|
},
|
|
2621
3435
|
"related": {
|
|
2622
3436
|
"skills": [
|
|
2623
|
-
"skill/
|
|
2624
|
-
"skill/
|
|
2625
|
-
"skill/
|
|
2626
|
-
"skill/
|
|
2627
|
-
"skill/tileable-texture",
|
|
2628
|
-
"skill/use-widget-asset",
|
|
2629
|
-
"skill/design-mechanic",
|
|
2630
|
-
"skill/design-level"
|
|
3437
|
+
"skill/multiplayer",
|
|
3438
|
+
"skill/multiplayer-testing",
|
|
3439
|
+
"skill/summer-parties",
|
|
3440
|
+
"skill/summer-world-chat"
|
|
2631
3441
|
]
|
|
2632
3442
|
},
|
|
2633
|
-
"status": "
|
|
3443
|
+
"status": "preview",
|
|
2634
3444
|
"recommended": false
|
|
2635
3445
|
},
|
|
2636
3446
|
{
|
|
2637
|
-
"id": "skill/
|
|
3447
|
+
"id": "skill/summer-leaderboards",
|
|
2638
3448
|
"kind": "skill",
|
|
2639
|
-
"version": "1.0.
|
|
2640
|
-
"content_hash": "
|
|
2641
|
-
"summary": "
|
|
3449
|
+
"version": "1.0.0",
|
|
3450
|
+
"content_hash": "87cceb28b1893d024d24842332ff5059a73682acd46690aad60e3118419bd35e",
|
|
3451
|
+
"summary": "Leaderboards in a Summer game: queue ratings from matches, and Game rankings your authority scores.",
|
|
2642
3452
|
"use_when": [
|
|
2643
|
-
"
|
|
2644
|
-
"a
|
|
3453
|
+
"the user wants a leaderboard, high scores, ranks, MMR, Elo or a 'top 50' screen in a Summer game",
|
|
3454
|
+
"a rated queue should show each player's rating, standing or percentile",
|
|
3455
|
+
"the authority should write a score, such as total coins or best time, to a Game-wide ranking",
|
|
3456
|
+
"a co-op mode should rate players against the content with authority_v1 rating deltas"
|
|
2645
3457
|
],
|
|
2646
3458
|
"facets": {
|
|
2647
3459
|
"lifecycle": [
|
|
@@ -2649,11 +3461,11 @@
|
|
|
2649
3461
|
],
|
|
2650
3462
|
"domains": [
|
|
2651
3463
|
"multiplayer",
|
|
2652
|
-
"
|
|
3464
|
+
"ui"
|
|
2653
3465
|
],
|
|
2654
3466
|
"modalities": [
|
|
2655
3467
|
"scripts",
|
|
2656
|
-
"
|
|
3468
|
+
"project"
|
|
2657
3469
|
]
|
|
2658
3470
|
},
|
|
2659
3471
|
"compatibility": {
|
|
@@ -2661,33 +3473,37 @@
|
|
|
2661
3473
|
},
|
|
2662
3474
|
"related": {
|
|
2663
3475
|
"skills": [
|
|
2664
|
-
"skill/
|
|
2665
|
-
"skill/
|
|
3476
|
+
"skill/multiplayer",
|
|
3477
|
+
"skill/summer-matchmaking",
|
|
3478
|
+
"skill/summer-match-results",
|
|
3479
|
+
"skill/summer-player-data"
|
|
2666
3480
|
]
|
|
2667
3481
|
},
|
|
2668
|
-
"status": "
|
|
2669
|
-
"recommended":
|
|
3482
|
+
"status": "preview",
|
|
3483
|
+
"recommended": false
|
|
2670
3484
|
},
|
|
2671
3485
|
{
|
|
2672
|
-
"id": "skill/
|
|
3486
|
+
"id": "skill/summer-match-results",
|
|
2673
3487
|
"kind": "skill",
|
|
2674
|
-
"version": "1.0.
|
|
2675
|
-
"content_hash": "
|
|
2676
|
-
"summary": "
|
|
3488
|
+
"version": "1.0.0",
|
|
3489
|
+
"content_hash": "d9c6d8e2ade6cbbf61841a30e92781ecea81dfa58c1859847a5be9afacb3e2fd",
|
|
3490
|
+
"summary": "End a Summer match: report each player's win, loss or draw, show results on clients, then close the World.",
|
|
2677
3491
|
"use_when": [
|
|
2678
|
-
"a
|
|
2679
|
-
"
|
|
3492
|
+
"a multiplayer Summer game needs a winner, a game-over screen or a match that ends",
|
|
3493
|
+
"reporting match outcomes, abandons or rating changes from the authority",
|
|
3494
|
+
"players disconnect, reconnect or leave mid-match and the authority must handle it",
|
|
3495
|
+
"the World should shut down after a match, or a persistent World runs several matches"
|
|
2680
3496
|
],
|
|
2681
3497
|
"facets": {
|
|
2682
3498
|
"lifecycle": [
|
|
2683
3499
|
"build"
|
|
2684
3500
|
],
|
|
2685
3501
|
"domains": [
|
|
2686
|
-
"
|
|
2687
|
-
"
|
|
3502
|
+
"multiplayer",
|
|
3503
|
+
"gameplay"
|
|
2688
3504
|
],
|
|
2689
3505
|
"modalities": [
|
|
2690
|
-
"
|
|
3506
|
+
"scripts"
|
|
2691
3507
|
]
|
|
2692
3508
|
},
|
|
2693
3509
|
"compatibility": {
|
|
@@ -2695,32 +3511,41 @@
|
|
|
2695
3511
|
},
|
|
2696
3512
|
"related": {
|
|
2697
3513
|
"skills": [
|
|
2698
|
-
"skill/
|
|
3514
|
+
"skill/multiplayer",
|
|
3515
|
+
"skill/multiplayer-state",
|
|
3516
|
+
"skill/summer-matchmaking",
|
|
3517
|
+
"skill/summer-leaderboards",
|
|
3518
|
+
"skill/summer-world-saves",
|
|
3519
|
+
"skill/multiplayer-testing",
|
|
3520
|
+
"skill/summer-analytics"
|
|
2699
3521
|
]
|
|
2700
3522
|
},
|
|
2701
3523
|
"status": "stable",
|
|
2702
3524
|
"recommended": false
|
|
2703
3525
|
},
|
|
2704
3526
|
{
|
|
2705
|
-
"id": "skill/
|
|
3527
|
+
"id": "skill/summer-matchmaking",
|
|
2706
3528
|
"kind": "skill",
|
|
2707
|
-
"version": "1.0.
|
|
2708
|
-
"content_hash": "
|
|
2709
|
-
"summary": "
|
|
3529
|
+
"version": "1.0.0",
|
|
3530
|
+
"content_hash": "3a8abe0ad4c52f564c271c3bf1a7586a9944ab99877f2f337a67fe8f6e186f50",
|
|
3531
|
+
"summary": "Get players into matches with Summer matchmaking: queues, teams, accept prompts, join progress and failures.",
|
|
2710
3532
|
"use_when": [
|
|
2711
|
-
"
|
|
2712
|
-
"
|
|
3533
|
+
"the user wants matchmaking, a lobby, a play button, quick play, ranked or casual modes in a multiplayer Summer game",
|
|
3534
|
+
"declaring queues, player counts, teams (2v2, 5v5), rated queues or a ready check in summer.build.json",
|
|
3535
|
+
"showing search progress, an Accept/Decline prompt, cancel search or join errors to players",
|
|
3536
|
+
"the authority needs to know which team or queue each player is on"
|
|
2713
3537
|
],
|
|
2714
3538
|
"facets": {
|
|
2715
3539
|
"lifecycle": [
|
|
2716
3540
|
"build"
|
|
2717
3541
|
],
|
|
2718
3542
|
"domains": [
|
|
2719
|
-
"
|
|
2720
|
-
"
|
|
3543
|
+
"multiplayer",
|
|
3544
|
+
"ux"
|
|
2721
3545
|
],
|
|
2722
3546
|
"modalities": [
|
|
2723
|
-
"
|
|
3547
|
+
"scripts",
|
|
3548
|
+
"project"
|
|
2724
3549
|
]
|
|
2725
3550
|
},
|
|
2726
3551
|
"compatibility": {
|
|
@@ -2728,32 +3553,38 @@
|
|
|
2728
3553
|
},
|
|
2729
3554
|
"related": {
|
|
2730
3555
|
"skills": [
|
|
2731
|
-
"skill/
|
|
3556
|
+
"skill/multiplayer",
|
|
3557
|
+
"skill/multiplayer-project",
|
|
3558
|
+
"skill/multiplayer-testing",
|
|
3559
|
+
"skill/summer-match-results",
|
|
3560
|
+
"skill/summer-leaderboards",
|
|
3561
|
+
"skill/summer-parties"
|
|
2732
3562
|
]
|
|
2733
3563
|
},
|
|
2734
|
-
"status": "
|
|
3564
|
+
"status": "preview",
|
|
2735
3565
|
"recommended": false
|
|
2736
3566
|
},
|
|
2737
3567
|
{
|
|
2738
|
-
"id": "skill/
|
|
3568
|
+
"id": "skill/summer-parties",
|
|
2739
3569
|
"kind": "skill",
|
|
2740
|
-
"version": "1.0.
|
|
2741
|
-
"content_hash": "
|
|
2742
|
-
"summary": "
|
|
3570
|
+
"version": "1.0.0",
|
|
3571
|
+
"content_hash": "88bab0e56dc6dc3ea83873e464531f170b15a0845cfcb8747925f7fe29216c80",
|
|
3572
|
+
"summary": "Let a Summer party play together: the leader presses Play, members follow into the same match. Hosted only.",
|
|
2743
3573
|
"use_when": [
|
|
2744
|
-
"
|
|
2745
|
-
"
|
|
3574
|
+
"friends in a Summer party should land in the same multiplayer match: party play, play with friends, squad up",
|
|
3575
|
+
"adding invite-friends and party buttons, a party roster or ready checks to a Summer game's menu",
|
|
3576
|
+
"a party join fails with party_member_offline, party_not_searching or capability_unavailable"
|
|
2746
3577
|
],
|
|
2747
3578
|
"facets": {
|
|
2748
3579
|
"lifecycle": [
|
|
2749
3580
|
"build"
|
|
2750
3581
|
],
|
|
2751
3582
|
"domains": [
|
|
2752
|
-
"
|
|
2753
|
-
"
|
|
3583
|
+
"multiplayer",
|
|
3584
|
+
"ui"
|
|
2754
3585
|
],
|
|
2755
3586
|
"modalities": [
|
|
2756
|
-
"
|
|
3587
|
+
"scripts"
|
|
2757
3588
|
]
|
|
2758
3589
|
},
|
|
2759
3590
|
"compatibility": {
|
|
@@ -2761,38 +3592,38 @@
|
|
|
2761
3592
|
},
|
|
2762
3593
|
"related": {
|
|
2763
3594
|
"skills": [
|
|
2764
|
-
"skill/
|
|
2765
|
-
"skill/
|
|
3595
|
+
"skill/multiplayer",
|
|
3596
|
+
"skill/multiplayer-project",
|
|
3597
|
+
"skill/multiplayer-testing",
|
|
3598
|
+
"skill/summer-matchmaking",
|
|
3599
|
+
"skill/summer-friends",
|
|
3600
|
+
"skill/summer-world-chat"
|
|
2766
3601
|
]
|
|
2767
3602
|
},
|
|
2768
|
-
"status": "
|
|
3603
|
+
"status": "preview",
|
|
2769
3604
|
"recommended": false
|
|
2770
3605
|
},
|
|
2771
3606
|
{
|
|
2772
|
-
"id": "skill/
|
|
3607
|
+
"id": "skill/summer-player-data",
|
|
2773
3608
|
"kind": "skill",
|
|
2774
|
-
"version": "0.
|
|
2775
|
-
"content_hash": "
|
|
2776
|
-
"summary": "
|
|
3609
|
+
"version": "1.0.0",
|
|
3610
|
+
"content_hash": "d65a852315fc4c0e3d3a1c59dd2af7653d3ea5209dbbd34fabaddc18827cb21b",
|
|
3611
|
+
"summary": "Save a player's progress so it follows them to every match: authority load and commit, autosave, safe retries.",
|
|
2777
3612
|
"use_when": [
|
|
2778
|
-
"
|
|
2779
|
-
"
|
|
2780
|
-
"
|
|
2781
|
-
"I have an unrigged AI-generated character and need a first-pass rig"
|
|
3613
|
+
"saving player progress, coins, unlocks, levels or settings in a multiplayer Summer game so they persist between matches",
|
|
3614
|
+
"a player's progress resets every match, or saves fail with save_id_conflict, superseded or operation_in_progress",
|
|
3615
|
+
"showing a player's saved progress in the menu before they join a match"
|
|
2782
3616
|
],
|
|
2783
3617
|
"facets": {
|
|
2784
3618
|
"lifecycle": [
|
|
2785
3619
|
"build"
|
|
2786
3620
|
],
|
|
2787
3621
|
"domains": [
|
|
2788
|
-
"
|
|
2789
|
-
"
|
|
2790
|
-
"3d",
|
|
2791
|
-
"animation"
|
|
3622
|
+
"multiplayer",
|
|
3623
|
+
"scripting"
|
|
2792
3624
|
],
|
|
2793
3625
|
"modalities": [
|
|
2794
|
-
"
|
|
2795
|
-
"assets"
|
|
3626
|
+
"scripts"
|
|
2796
3627
|
]
|
|
2797
3628
|
},
|
|
2798
3629
|
"compatibility": {
|
|
@@ -2800,34 +3631,38 @@
|
|
|
2800
3631
|
},
|
|
2801
3632
|
"related": {
|
|
2802
3633
|
"skills": [
|
|
2803
|
-
"skill/
|
|
2804
|
-
"skill/
|
|
3634
|
+
"skill/multiplayer",
|
|
3635
|
+
"skill/multiplayer-state",
|
|
3636
|
+
"skill/multiplayer-testing",
|
|
3637
|
+
"skill/summer-world-saves",
|
|
3638
|
+
"skill/summer-leaderboards",
|
|
3639
|
+
"skill/summer-store"
|
|
2805
3640
|
]
|
|
2806
3641
|
},
|
|
2807
|
-
"status": "
|
|
3642
|
+
"status": "stable",
|
|
2808
3643
|
"recommended": false
|
|
2809
3644
|
},
|
|
2810
3645
|
{
|
|
2811
|
-
"id": "skill/
|
|
3646
|
+
"id": "skill/summer-store",
|
|
2812
3647
|
"kind": "skill",
|
|
2813
|
-
"version": "1.0.
|
|
2814
|
-
"content_hash": "
|
|
2815
|
-
"summary": "
|
|
3648
|
+
"version": "1.0.0",
|
|
3649
|
+
"content_hash": "70d4d2e36f10a1d5a72ed2f3e8a833d3514324e86fb4ee727f605e81cc6cf82b",
|
|
3650
|
+
"summary": "Sell Summer items for Sparks in a multiplayer game: shop, checkout, owned items, authority entitlement checks.",
|
|
2816
3651
|
"use_when": [
|
|
2817
|
-
"
|
|
2818
|
-
"
|
|
3652
|
+
"adding a shop, in-game purchases, cosmetics or skins sold for Sparks to a Summer game",
|
|
3653
|
+
"checking on the authority that a player really owns an item before letting them use or equip it",
|
|
3654
|
+
"checkout shows pending, manual_review, insufficient_funds or unavailable, or bought items don't appear"
|
|
2819
3655
|
],
|
|
2820
3656
|
"facets": {
|
|
2821
3657
|
"lifecycle": [
|
|
2822
3658
|
"build"
|
|
2823
3659
|
],
|
|
2824
3660
|
"domains": [
|
|
2825
|
-
"
|
|
2826
|
-
"
|
|
3661
|
+
"multiplayer",
|
|
3662
|
+
"gameplay"
|
|
2827
3663
|
],
|
|
2828
3664
|
"modalities": [
|
|
2829
|
-
"
|
|
2830
|
-
"scenes"
|
|
3665
|
+
"scripts"
|
|
2831
3666
|
]
|
|
2832
3667
|
},
|
|
2833
3668
|
"compatibility": {
|
|
@@ -2835,34 +3670,38 @@
|
|
|
2835
3670
|
},
|
|
2836
3671
|
"related": {
|
|
2837
3672
|
"skills": [
|
|
2838
|
-
"skill/
|
|
2839
|
-
"skill/
|
|
3673
|
+
"skill/multiplayer",
|
|
3674
|
+
"skill/multiplayer-state",
|
|
3675
|
+
"skill/multiplayer-testing",
|
|
3676
|
+
"skill/summer-player-data",
|
|
3677
|
+
"skill/summer-analytics"
|
|
2840
3678
|
]
|
|
2841
3679
|
},
|
|
2842
|
-
"status": "
|
|
3680
|
+
"status": "preview",
|
|
2843
3681
|
"recommended": false
|
|
2844
3682
|
},
|
|
2845
3683
|
{
|
|
2846
|
-
"id": "skill/
|
|
3684
|
+
"id": "skill/summer-world-chat",
|
|
2847
3685
|
"kind": "skill",
|
|
2848
|
-
"version": "1.0.
|
|
2849
|
-
"content_hash": "
|
|
2850
|
-
"summary": "
|
|
3686
|
+
"version": "1.0.0",
|
|
3687
|
+
"content_hash": "dda281f1379c3be5814bc3bd81417efd3ba4ba2891691e911d64172fb8da2475",
|
|
3688
|
+
"summary": "Add match chat to a Summer game: one World channel shared by everyone in the match. Hosted only.",
|
|
2851
3689
|
"use_when": [
|
|
2852
|
-
"
|
|
2853
|
-
"
|
|
3690
|
+
"adding in-game text chat, match chat or a chat box to a multiplayer Summer game",
|
|
3691
|
+
"chat messages fail with text_not_allowed, rate_limited or unavailable, or chat history looks incomplete",
|
|
3692
|
+
"deciding where player chat should live instead of sending it through Commands or State"
|
|
2854
3693
|
],
|
|
2855
3694
|
"facets": {
|
|
2856
3695
|
"lifecycle": [
|
|
2857
3696
|
"build"
|
|
2858
3697
|
],
|
|
2859
3698
|
"domains": [
|
|
2860
|
-
"
|
|
2861
|
-
"
|
|
3699
|
+
"multiplayer",
|
|
3700
|
+
"ui"
|
|
2862
3701
|
],
|
|
2863
3702
|
"modalities": [
|
|
2864
|
-
"
|
|
2865
|
-
"
|
|
3703
|
+
"scripts",
|
|
3704
|
+
"ui"
|
|
2866
3705
|
]
|
|
2867
3706
|
},
|
|
2868
3707
|
"compatibility": {
|
|
@@ -2870,102 +3709,103 @@
|
|
|
2870
3709
|
},
|
|
2871
3710
|
"related": {
|
|
2872
3711
|
"skills": [
|
|
2873
|
-
"skill/
|
|
3712
|
+
"skill/multiplayer",
|
|
3713
|
+
"skill/multiplayer-state",
|
|
3714
|
+
"skill/multiplayer-testing",
|
|
3715
|
+
"skill/summer-friends",
|
|
3716
|
+
"skill/summer-parties"
|
|
2874
3717
|
]
|
|
2875
3718
|
},
|
|
2876
|
-
"status": "
|
|
2877
|
-
"recommended":
|
|
3719
|
+
"status": "preview",
|
|
3720
|
+
"recommended": false
|
|
2878
3721
|
},
|
|
2879
3722
|
{
|
|
2880
|
-
"id": "skill/
|
|
3723
|
+
"id": "skill/summer-world-saves",
|
|
2881
3724
|
"kind": "skill",
|
|
2882
|
-
"version": "1.0.
|
|
2883
|
-
"content_hash": "
|
|
2884
|
-
"summary": "
|
|
3725
|
+
"version": "1.0.0",
|
|
3726
|
+
"content_hash": "46ca59c7ae9612cfa6d37c61e8e28789cca3920d823973393e36ea80c72d853c",
|
|
3727
|
+
"summary": "Keep a persistent Summer World between restarts: checkpoint saves, restore before join, the final save.",
|
|
2885
3728
|
"use_when": [
|
|
2886
|
-
"
|
|
2887
|
-
"
|
|
2888
|
-
"
|
|
2889
|
-
"post-placement checks on a rotated prop using its own local axes"
|
|
3729
|
+
"building a persistent World, shared base, farm or realm in a Summer game that must survive server restarts",
|
|
3730
|
+
"saving and restoring World state with commit_save, load_save, finish_restore, save_requested or finish_snapshot",
|
|
3731
|
+
"deciding whether progress belongs in a World save or in player data"
|
|
2890
3732
|
],
|
|
2891
3733
|
"facets": {
|
|
2892
3734
|
"lifecycle": [
|
|
2893
3735
|
"build"
|
|
2894
3736
|
],
|
|
2895
3737
|
"domains": [
|
|
2896
|
-
"
|
|
2897
|
-
"
|
|
2898
|
-
"world-building",
|
|
2899
|
-
"level-design",
|
|
2900
|
-
"verification"
|
|
3738
|
+
"multiplayer",
|
|
3739
|
+
"scripting"
|
|
2901
3740
|
],
|
|
2902
3741
|
"modalities": [
|
|
2903
|
-
"
|
|
3742
|
+
"scripts"
|
|
2904
3743
|
]
|
|
2905
3744
|
},
|
|
2906
3745
|
"compatibility": {
|
|
2907
3746
|
"engine": ">=4.6"
|
|
2908
3747
|
},
|
|
2909
3748
|
"related": {
|
|
2910
|
-
"tools": [
|
|
2911
|
-
"tool/starcast",
|
|
2912
|
-
"tool/get-scene-tree",
|
|
2913
|
-
"tool/inspect-node",
|
|
2914
|
-
"tool/set-prop",
|
|
2915
|
-
"tool/batch"
|
|
2916
|
-
],
|
|
2917
3749
|
"skills": [
|
|
2918
|
-
"skill/
|
|
2919
|
-
"skill/
|
|
3750
|
+
"skill/multiplayer",
|
|
3751
|
+
"skill/multiplayer-project",
|
|
3752
|
+
"skill/multiplayer-state",
|
|
3753
|
+
"skill/summer-player-data",
|
|
3754
|
+
"skill/summer-match-results"
|
|
2920
3755
|
]
|
|
2921
3756
|
},
|
|
2922
3757
|
"status": "preview",
|
|
2923
|
-
"recommended":
|
|
3758
|
+
"recommended": false
|
|
2924
3759
|
},
|
|
2925
3760
|
{
|
|
2926
|
-
"id": "skill/
|
|
3761
|
+
"id": "skill/text-to-motion",
|
|
2927
3762
|
"kind": "skill",
|
|
2928
|
-
"version": "1.0.
|
|
2929
|
-
"content_hash": "
|
|
2930
|
-
"summary": "
|
|
3763
|
+
"version": "1.0.0",
|
|
3764
|
+
"content_hash": "fe0882161733d5708056d9ef5934848bef2f8bc8d0f2588950183c4150477303",
|
|
3765
|
+
"summary": "Custom 2-second animation clips from text prompts on any of the user's own rigged models — humanoids, animals, creatures, cartoon plants, props.",
|
|
2931
3766
|
"use_when": [
|
|
2932
|
-
"
|
|
2933
|
-
"a
|
|
3767
|
+
"a custom action the curated motion library lacks — nod, bow, shrug, wave with a specific arm, an emotional gesture",
|
|
3768
|
+
"animating a non-humanoid rig — a talking flower, animal, creature, turret or prop",
|
|
3769
|
+
"adding clips to an uploaded or custom-rigged GLB/FBX model",
|
|
3770
|
+
"\"make the flower nod\" / \"animate my creature from a text description\""
|
|
2934
3771
|
],
|
|
2935
3772
|
"facets": {
|
|
2936
3773
|
"lifecycle": [
|
|
2937
3774
|
"build"
|
|
2938
3775
|
],
|
|
2939
3776
|
"domains": [
|
|
2940
|
-
"
|
|
2941
|
-
"
|
|
3777
|
+
"animation",
|
|
3778
|
+
"generate",
|
|
3779
|
+
"3d"
|
|
2942
3780
|
],
|
|
2943
3781
|
"modalities": [
|
|
2944
|
-
"
|
|
2945
|
-
"assets"
|
|
3782
|
+
"animation"
|
|
2946
3783
|
]
|
|
2947
3784
|
},
|
|
2948
3785
|
"compatibility": {
|
|
2949
3786
|
"engine": ">=4.6"
|
|
2950
3787
|
},
|
|
2951
3788
|
"related": {
|
|
3789
|
+
"tools": [
|
|
3790
|
+
"tool/generate-motion",
|
|
3791
|
+
"tool/check-job",
|
|
3792
|
+
"tool/import-asset-by-id"
|
|
3793
|
+
],
|
|
2952
3794
|
"skills": [
|
|
2953
|
-
"skill/character-portrait",
|
|
2954
|
-
"skill/pixel-art",
|
|
2955
3795
|
"skill/generate-motion",
|
|
2956
|
-
"skill/
|
|
2957
|
-
"skill/
|
|
3796
|
+
"skill/character-model",
|
|
3797
|
+
"skill/retarget",
|
|
2958
3798
|
"skill/asset-strategy"
|
|
2959
3799
|
]
|
|
2960
3800
|
},
|
|
2961
|
-
"status": "
|
|
3801
|
+
"status": "preview",
|
|
2962
3802
|
"recommended": false
|
|
2963
3803
|
},
|
|
2964
3804
|
{
|
|
2965
3805
|
"id": "skill/tileable-texture",
|
|
2966
3806
|
"kind": "skill",
|
|
2967
3807
|
"version": "1.0.4",
|
|
2968
|
-
"content_hash": "
|
|
3808
|
+
"content_hash": "e3a3df5d6195173a362ad51f692e58a1455bf2d246bd270777eac9c53cb63991",
|
|
2969
3809
|
"summary": "Generate a seamless tileable texture for walls, floors, or terrain — repeats cleanly on all four edges, wired as a StandardMaterial3D albedo.",
|
|
2970
3810
|
"use_when": [
|
|
2971
3811
|
"generating a seamless tileable texture for walls, floors, terrain, or ceilings — a square tile that repeats cleanly on all four edges",
|
|
@@ -3003,7 +3843,7 @@
|
|
|
3003
3843
|
"id": "skill/trailer-shot",
|
|
3004
3844
|
"kind": "skill",
|
|
3005
3845
|
"version": "1.0.4",
|
|
3006
|
-
"content_hash": "
|
|
3846
|
+
"content_hash": "b95ca591049089a39e92122114f97df8457a55466aa3c06262e7dc19fd4da3bc",
|
|
3007
3847
|
"summary": "Generate marketing or trailer footage — slow-mo combat, establishing shots, hero beats, splash screens, pitch-deck B-roll — max punch in 5-10 seconds.",
|
|
3008
3848
|
"use_when": [
|
|
3009
3849
|
"generating marketing or trailer footage — slow-mo combat, dramatic establishing shots, hero beats, splash screens, pitch-deck B-roll",
|
|
@@ -3037,7 +3877,7 @@
|
|
|
3037
3877
|
"id": "skill/tune-performance",
|
|
3038
3878
|
"kind": "skill",
|
|
3039
3879
|
"version": "1.0.3",
|
|
3040
|
-
"content_hash": "
|
|
3880
|
+
"content_hash": "09e4496efe1f63f83803ed53cf96ff8eefab179e706a2288809e345fbde6b26f",
|
|
3041
3881
|
"summary": "Profile a slow game via summer_get_diagnostics, identify rendering/physics/scripting hotspots, propose fixes with before/after metric expectations.",
|
|
3042
3882
|
"use_when": [
|
|
3043
3883
|
"the game is slow, drops framerate, stutters, takes forever to start, or runs poorly on specific hardware",
|
|
@@ -3075,7 +3915,7 @@
|
|
|
3075
3915
|
"id": "skill/ui-basics",
|
|
3076
3916
|
"kind": "skill",
|
|
3077
3917
|
"version": "1.0.3",
|
|
3078
|
-
"content_hash": "
|
|
3918
|
+
"content_hash": "c725af703d014a7c6db43889db82077834231fbd3e4549f91b6b74af7ceaa20b",
|
|
3079
3919
|
"summary": "Build Summer Engine UI — HUDs, menus, health bars, dialogue boxes, Control trees — anchors, containers, responsive layout, theme vs inline styling.",
|
|
3080
3920
|
"use_when": [
|
|
3081
3921
|
"building Summer Engine UI: HUDs, main menus, pause menus, health bars, progress bars, dialogue boxes, or any Control-node tree",
|
|
@@ -3105,7 +3945,7 @@
|
|
|
3105
3945
|
"id": "skill/ui-graphics",
|
|
3106
3946
|
"kind": "skill",
|
|
3107
3947
|
"version": "1.0.3",
|
|
3108
|
-
"content_hash": "
|
|
3948
|
+
"content_hash": "1ca56c3d612d8ed34e91589748393f0c76ff82f2a24ed5ad37728840b58308fb",
|
|
3109
3949
|
"summary": "Generate game-UI elements — icons, buttons, panels, frames, HUD widgets, badges — flat design, transparent background, wired via TextureRect/NinePatchRect.",
|
|
3110
3950
|
"use_when": [
|
|
3111
3951
|
"generating UI elements — icons, buttons, panels, frames, HUD widgets, badges — in flat-design, transparent-background game-UI style",
|
|
@@ -3141,7 +3981,7 @@
|
|
|
3141
3981
|
"id": "skill/use-widget-asset",
|
|
3142
3982
|
"kind": "skill",
|
|
3143
3983
|
"version": "1.0.3",
|
|
3144
|
-
"content_hash": "
|
|
3984
|
+
"content_hash": "d241b049b7c66767743b3ab6e90d697942a83014ba8b13a00948cc82e5dbb9b7",
|
|
3145
3985
|
"summary": "Wire a widget slice from a create-asset-sheet pack (panel, button, slider, bar, toggle) into NinePatchRect, TextureProgressBar, or TextureRect via sliceMeta.",
|
|
3146
3986
|
"use_when": [
|
|
3147
3987
|
"consuming a widget slice (panel, button, slider, progress bar, toggle pair) from a create-asset-sheet pack so it behaves like a real UI control",
|
|
@@ -3177,8 +4017,8 @@
|
|
|
3177
4017
|
{
|
|
3178
4018
|
"id": "skill/using-summer",
|
|
3179
4019
|
"kind": "skill",
|
|
3180
|
-
"version": "1.0.
|
|
3181
|
-
"content_hash": "
|
|
4020
|
+
"version": "1.0.5",
|
|
4021
|
+
"content_hash": "f2ab3f7a5ab1d593b2f7f3cbca7c8b9e5bc4162caae67ce9a2183ec520cd7564",
|
|
3182
4022
|
"summary": "Session bootstrap for Summer projects — establishes how to find and use Summer skills and the summer-engine MCP before any response.",
|
|
3183
4023
|
"use_when": [
|
|
3184
4024
|
"starting any conversation in a Summer Engine project",
|
|
@@ -3210,7 +4050,7 @@
|
|
|
3210
4050
|
"skill/debug",
|
|
3211
4051
|
"skill/design-mechanic",
|
|
3212
4052
|
"skill/design-level",
|
|
3213
|
-
"skill/
|
|
4053
|
+
"skill/multiplayer",
|
|
3214
4054
|
"skill/art-direction",
|
|
3215
4055
|
"skill/brainstorm-game",
|
|
3216
4056
|
"skill/play",
|
|
@@ -3225,7 +4065,7 @@
|
|
|
3225
4065
|
"id": "skill/vehicle-model",
|
|
3226
4066
|
"kind": "skill",
|
|
3227
4067
|
"version": "1.0.3",
|
|
3228
|
-
"content_hash": "
|
|
4068
|
+
"content_hash": "85bb3a692dc14b8c97fcdeca56fcd189eefd6e430cbda48b564231192849e8bf",
|
|
3229
4069
|
"summary": "Generate a hard-surface vehicle — car, spaceship, mech, boat, tank — static mesh with optional detail-texture pass, wired as Vehicle3D or MeshInstance3D.",
|
|
3230
4070
|
"use_when": [
|
|
3231
4071
|
"generating a hard-surface vehicle — car, motorcycle, spaceship, hover bike, boat, mech, tank, helicopter",
|
|
@@ -3266,7 +4106,7 @@
|
|
|
3266
4106
|
"id": "skill/verification-before-completion",
|
|
3267
4107
|
"kind": "skill",
|
|
3268
4108
|
"version": "1.0.3",
|
|
3269
|
-
"content_hash": "
|
|
4109
|
+
"content_hash": "f2f4b2d1eb16254e0abb4ba4d4a94b770dbcc5e763c1dac2f604ded4d38deb76",
|
|
3270
4110
|
"summary": "Run verification commands and confirm output before claiming work complete, fixed, or passing — evidence before assertions, always.",
|
|
3271
4111
|
"use_when": [
|
|
3272
4112
|
"about to claim work is complete, fixed, or passing, before committing or creating PRs",
|
|
@@ -3293,14 +4133,19 @@
|
|
|
3293
4133
|
{
|
|
3294
4134
|
"id": "skill/verifying-scenes",
|
|
3295
4135
|
"kind": "skill",
|
|
3296
|
-
"version": "1.
|
|
3297
|
-
"content_hash": "
|
|
3298
|
-
"summary": "Prove scene work landed
|
|
4136
|
+
"version": "1.5.0",
|
|
4137
|
+
"content_hash": "ba03998253f61ed6a4ea7a0e21c2a9a04a52ae6e8f8879b8b38ce09abd56a2bf",
|
|
4138
|
+
"summary": "Prove scene work landed (snapshot, diff, screenshots, runtime reads), audit 3D scenes for holes and misplacement, review them with shot sheets and zooms.",
|
|
3299
4139
|
"use_when": [
|
|
3300
4140
|
"after any mutation batch, asset import, or lighting change, before claiming it worked",
|
|
3301
4141
|
"during a playtest, to read live runtime state (spawned nodes, actual stats) without stopping the game",
|
|
3302
4142
|
"deciding what counts as evidence for a visual or structural claim",
|
|
3303
|
-
"taking before/after screenshots from the same saved camera viewpoint, or an annotated screenshot whose numbered labels map to node paths"
|
|
4143
|
+
"taking before/after screenshots from the same saved camera viewpoint, or an annotated screenshot whose numbered labels map to node paths",
|
|
4144
|
+
"\"make this environment beautiful\" / reviewing a level like an artist: hero views, a shot sheet after each change, debug views of the weakest shot, zooms into problems",
|
|
4145
|
+
"finding good camera views automatically (establishing, player eye level, low-angle hero, detail, down a lane)",
|
|
4146
|
+
"after each build stage of a 3D scene and before calling it done - run the scene audit, then frame every error and look item up close",
|
|
4147
|
+
"open band ends and seams on a facade, a gap in a band, a duct missing its elbow - the audit's exposed_edge, depth_step and open_fixture_end checks",
|
|
4148
|
+
"accepting the audit's look items you judged fine so later audits stop repeating them"
|
|
3304
4149
|
],
|
|
3305
4150
|
"facets": {
|
|
3306
4151
|
"lifecycle": [
|
|
@@ -3327,7 +4172,13 @@
|
|
|
3327
4172
|
"tool/screenshot",
|
|
3328
4173
|
"tool/wait-for-event",
|
|
3329
4174
|
"tool/recent-events",
|
|
3330
|
-
"tool/camera-bookmark"
|
|
4175
|
+
"tool/camera-bookmark",
|
|
4176
|
+
"tool/frame-nodes",
|
|
4177
|
+
"tool/shot-sheet",
|
|
4178
|
+
"tool/debug-views",
|
|
4179
|
+
"tool/zoom",
|
|
4180
|
+
"tool/frame-shot",
|
|
4181
|
+
"tool/scene-audit"
|
|
3331
4182
|
],
|
|
3332
4183
|
"skills": [
|
|
3333
4184
|
"skill/scene-scripting",
|
|
@@ -3342,7 +4193,7 @@
|
|
|
3342
4193
|
"id": "skill/vfx-dissolve",
|
|
3343
4194
|
"kind": "skill",
|
|
3344
4195
|
"version": "1.0.3",
|
|
3345
|
-
"content_hash": "
|
|
4196
|
+
"content_hash": "b6824e9f41cd472ad2ee86ee3d0439b0e3bae0107d48a18c9cbfe937e24ec908",
|
|
3346
4197
|
"summary": "Dissolve effect — a mesh disintegrating with a glowing burning edge, driven by a noise-threshold ShaderMaterial overriding the target's material.",
|
|
3347
4198
|
"use_when": [
|
|
3348
4199
|
"authoring a dissolve effect — an object disintegrating with a glowing burning edge (disintegrate, burn away, vanish into ash)",
|
|
@@ -3381,7 +4232,7 @@
|
|
|
3381
4232
|
"id": "skill/vfx-fire",
|
|
3382
4233
|
"kind": "skill",
|
|
3383
4234
|
"version": "1.0.3",
|
|
3384
|
-
"content_hash": "
|
|
4235
|
+
"content_hash": "e43423adcc146065afaa04ef7e1f592f7becb7150e2a8ed7aa218f5ee5b2dff3",
|
|
3385
4236
|
"summary": "Fire effect — animated flames built with a particle shader, GPUParticles3D, and a noise-based color ramp — torches, campfires, candles.",
|
|
3386
4237
|
"use_when": [
|
|
3387
4238
|
"authoring a fire visual effect — torch, campfire, bonfire, flame, burning object, candle",
|
|
@@ -3422,7 +4273,7 @@
|
|
|
3422
4273
|
"id": "skill/vfx-hit-spark",
|
|
3423
4274
|
"kind": "skill",
|
|
3424
4275
|
"version": "1.0.2",
|
|
3425
|
-
"content_hash": "
|
|
4276
|
+
"content_hash": "b3b1f2e54e87c53d0e246d637c1883a776c54d8c81dbf9d4c4caa4b05beeace3",
|
|
3426
4277
|
"summary": "Hit-spark effect — a one-shot burst of additive billboard particles oriented to a surface normal, fired on impact.",
|
|
3427
4278
|
"use_when": [
|
|
3428
4279
|
"authoring a hit-spark effect — impact spark, bullet hit, sword clash, ricochet, sparks at a hit point",
|
|
@@ -3462,7 +4313,7 @@
|
|
|
3462
4313
|
"id": "skill/vfx-lightning",
|
|
3463
4314
|
"kind": "skill",
|
|
3464
4315
|
"version": "1.0.3",
|
|
3465
|
-
"content_hash": "
|
|
4316
|
+
"content_hash": "ffe0b3392308b113456af7c0695093f6c1266e9742e396b173d76a414958c8bb",
|
|
3466
4317
|
"summary": "Lightning bolt effect — procedural jagged path drawn via ImmediateMesh, glow shader, sparks at endpoints, screen shake.",
|
|
3467
4318
|
"use_when": [
|
|
3468
4319
|
"authoring a lightning bolt effect — chain lightning, electric attack, tesla coil, shock spell, energy beam",
|
|
@@ -3501,7 +4352,7 @@
|
|
|
3501
4352
|
"id": "skill/vfx-magic-glow",
|
|
3502
4353
|
"kind": "skill",
|
|
3503
4354
|
"version": "1.0.2",
|
|
3504
|
-
"content_hash": "
|
|
4355
|
+
"content_hash": "c47ade08987bb2aebbd6520380f3113763c4ab8c43a6cc0d019dfbe7dd57c735",
|
|
3505
4356
|
"summary": "Magic-glow effect — a pulsing OmniLight3D plus drifting additive motes plus optional emission shader on the source mesh.",
|
|
3506
4357
|
"use_when": [
|
|
3507
4358
|
"authoring a magic-glow effect — enchanted item, soul gem, pulsing aura, rune glow, magical orb, wisp",
|
|
@@ -3541,7 +4392,7 @@
|
|
|
3541
4392
|
"id": "skill/vfx-muzzle-flash",
|
|
3542
4393
|
"kind": "skill",
|
|
3543
4394
|
"version": "1.0.3",
|
|
3544
|
-
"content_hash": "
|
|
4395
|
+
"content_hash": "bdf0f38be8d8190e9caaaa81ba4bded36dd54b77d2a9f3bbb8b09827f6c8a952",
|
|
3545
4396
|
"summary": "Muzzle-flash effect — a one-shot ~80 ms burst at a gun barrel built with a particle one-shot or a flashing quad with a star-burst shader.",
|
|
3546
4397
|
"use_when": [
|
|
3547
4398
|
"authoring a muzzle-flash effect — gun fire, weapon flash, barrel flash, spell-cast burst at a hand",
|
|
@@ -3582,7 +4433,7 @@
|
|
|
3582
4433
|
"id": "skill/vfx-smoke",
|
|
3583
4434
|
"kind": "skill",
|
|
3584
4435
|
"version": "1.0.2",
|
|
3585
|
-
"content_hash": "
|
|
4436
|
+
"content_hash": "36d777150975adc5c0387ec05d7133c6ceef0f6461f3fe37f52e4af1c202fddc",
|
|
3586
4437
|
"summary": "Smoke effect — a slow-rising column or puff of soft particles built with a noise + density falloff shader on a quad mesh, GPUParticles3D.",
|
|
3587
4438
|
"use_when": [
|
|
3588
4439
|
"authoring a smoke effect — smoke trail, puff, chimney smoke, steam, fog cloud, explosion smoke",
|
|
@@ -3620,7 +4471,7 @@
|
|
|
3620
4471
|
"id": "skill/vfx-water-ripple",
|
|
3621
4472
|
"kind": "skill",
|
|
3622
4473
|
"version": "1.0.2",
|
|
3623
|
-
"content_hash": "
|
|
4474
|
+
"content_hash": "87113090360d6523ccdd42e4c462d832dce9012893f4f3cab041692d18c8cc7b",
|
|
3624
4475
|
"summary": "Water-ripple effect — animated normal-distortion ripples on a water plane (or as a Decal) triggered by impacts.",
|
|
3625
4476
|
"use_when": [
|
|
3626
4477
|
"authoring a water-ripple effect — raindrop ripples, splash ripples, footstep in a puddle, fish jumps",
|
|
@@ -3636,7 +4487,75 @@
|
|
|
3636
4487
|
],
|
|
3637
4488
|
"modalities": [
|
|
3638
4489
|
"scenes",
|
|
3639
|
-
"shaders"
|
|
4490
|
+
"shaders"
|
|
4491
|
+
]
|
|
4492
|
+
},
|
|
4493
|
+
"compatibility": {
|
|
4494
|
+
"engine": ">=4.6"
|
|
4495
|
+
},
|
|
4496
|
+
"related": {
|
|
4497
|
+
"skills": [
|
|
4498
|
+
"skill/scene-scripting",
|
|
4499
|
+
"skill/sound-effect",
|
|
4500
|
+
"skill/vfx-hit-spark",
|
|
4501
|
+
"skill/vfx-smoke"
|
|
4502
|
+
]
|
|
4503
|
+
},
|
|
4504
|
+
"status": "stable",
|
|
4505
|
+
"recommended": false
|
|
4506
|
+
},
|
|
4507
|
+
{
|
|
4508
|
+
"id": "skill/voice-line",
|
|
4509
|
+
"kind": "skill",
|
|
4510
|
+
"version": "1.0.2",
|
|
4511
|
+
"content_hash": "0aac374234cbac82d64ac410212fb7211d985ffe08572217aabb17a172d6c76e",
|
|
4512
|
+
"summary": "Generate TTS voice lines — NPC barks, narrator, dialogue — with voice-id sourcing, a character-to-voice decision tree, and multi-line dialogue support.",
|
|
4513
|
+
"use_when": [
|
|
4514
|
+
"\"the NPC needs a greeting / a bark / a narrator intro read aloud\"",
|
|
4515
|
+
"giving a character a voice that fits their personality (gruff, cheerful, robotic)",
|
|
4516
|
+
"a back-and-forth dialogue between two or more characters"
|
|
4517
|
+
],
|
|
4518
|
+
"facets": {
|
|
4519
|
+
"lifecycle": [
|
|
4520
|
+
"build"
|
|
4521
|
+
],
|
|
4522
|
+
"domains": [
|
|
4523
|
+
"audio",
|
|
4524
|
+
"assets"
|
|
4525
|
+
],
|
|
4526
|
+
"modalities": [
|
|
4527
|
+
"audio",
|
|
4528
|
+
"assets"
|
|
4529
|
+
]
|
|
4530
|
+
},
|
|
4531
|
+
"compatibility": {
|
|
4532
|
+
"engine": ">=4.6"
|
|
4533
|
+
},
|
|
4534
|
+
"status": "stable",
|
|
4535
|
+
"recommended": true
|
|
4536
|
+
},
|
|
4537
|
+
{
|
|
4538
|
+
"id": "skill/web-and-touch-input",
|
|
4539
|
+
"kind": "skill",
|
|
4540
|
+
"version": "1.0.0",
|
|
4541
|
+
"content_hash": "5a67ec23a03e1162725652d09af7458f47070e66e80040ef671eb22da334cbe8",
|
|
4542
|
+
"summary": "Input for the browser and phones: the first-click rule for sound and mouse capture, focus, and touch buttons or a virtual stick on the same actions.",
|
|
4543
|
+
"use_when": [
|
|
4544
|
+
"the game plays in the browser and sound, mouse capture or keys do not work until something is clicked",
|
|
4545
|
+
"the game should be playable on a phone or tablet with touch controls",
|
|
4546
|
+
"adding a virtual joystick, on-screen buttons or touch camera controls"
|
|
4547
|
+
],
|
|
4548
|
+
"facets": {
|
|
4549
|
+
"lifecycle": [
|
|
4550
|
+
"build"
|
|
4551
|
+
],
|
|
4552
|
+
"domains": [
|
|
4553
|
+
"gameplay",
|
|
4554
|
+
"ui"
|
|
4555
|
+
],
|
|
4556
|
+
"modalities": [
|
|
4557
|
+
"scenes",
|
|
4558
|
+
"scripts"
|
|
3640
4559
|
]
|
|
3641
4560
|
},
|
|
3642
4561
|
"compatibility": {
|
|
@@ -3644,50 +4563,58 @@
|
|
|
3644
4563
|
},
|
|
3645
4564
|
"related": {
|
|
3646
4565
|
"skills": [
|
|
3647
|
-
"skill/
|
|
3648
|
-
"skill/
|
|
3649
|
-
"skill/
|
|
3650
|
-
"skill/vfx-smoke"
|
|
4566
|
+
"skill/make-game",
|
|
4567
|
+
"skill/character-movement",
|
|
4568
|
+
"skill/ui-basics"
|
|
3651
4569
|
]
|
|
3652
4570
|
},
|
|
3653
|
-
"status": "
|
|
3654
|
-
"recommended":
|
|
4571
|
+
"status": "preview",
|
|
4572
|
+
"recommended": true
|
|
3655
4573
|
},
|
|
3656
4574
|
{
|
|
3657
|
-
"id": "skill/
|
|
4575
|
+
"id": "skill/web-compatibility-look",
|
|
3658
4576
|
"kind": "skill",
|
|
3659
|
-
"version": "1.0.
|
|
3660
|
-
"content_hash": "
|
|
3661
|
-
"summary": "
|
|
4577
|
+
"version": "1.0.0",
|
|
4578
|
+
"content_hash": "f8649a98317c623e77f7b3d390d03b2317d1a455cecba707ea940467be8567a3",
|
|
4579
|
+
"summary": "Make a web or browser game look high-end in the Compatibility renderer (WebGL 2): what works, what to avoid, 2D and 3D recipes, web performance.",
|
|
3662
4580
|
"use_when": [
|
|
3663
|
-
"
|
|
3664
|
-
"
|
|
3665
|
-
"
|
|
4581
|
+
"the game plays in the browser or is exported for the web and must look finished",
|
|
4582
|
+
"the look is flat, grey or default in the web preview, or a Forward+ feature does nothing there",
|
|
4583
|
+
"choosing lighting, fog, glow, shaders or post effects for a web or Compatibility project"
|
|
3666
4584
|
],
|
|
3667
4585
|
"facets": {
|
|
3668
4586
|
"lifecycle": [
|
|
3669
4587
|
"build"
|
|
3670
4588
|
],
|
|
3671
4589
|
"domains": [
|
|
3672
|
-
"
|
|
3673
|
-
"
|
|
4590
|
+
"rendering",
|
|
4591
|
+
"2d",
|
|
4592
|
+
"3d"
|
|
3674
4593
|
],
|
|
3675
4594
|
"modalities": [
|
|
3676
|
-
"
|
|
3677
|
-
"
|
|
4595
|
+
"scenes",
|
|
4596
|
+
"shaders"
|
|
3678
4597
|
]
|
|
3679
4598
|
},
|
|
3680
4599
|
"compatibility": {
|
|
3681
4600
|
"engine": ">=4.6"
|
|
3682
4601
|
},
|
|
3683
|
-
"
|
|
4602
|
+
"related": {
|
|
4603
|
+
"skills": [
|
|
4604
|
+
"skill/3d-lighting",
|
|
4605
|
+
"skill/art-direction",
|
|
4606
|
+
"skill/tune-performance",
|
|
4607
|
+
"skill/ui-basics"
|
|
4608
|
+
]
|
|
4609
|
+
},
|
|
4610
|
+
"status": "preview",
|
|
3684
4611
|
"recommended": true
|
|
3685
4612
|
},
|
|
3686
4613
|
{
|
|
3687
4614
|
"id": "skill/world-building-3d",
|
|
3688
4615
|
"kind": "skill",
|
|
3689
|
-
"version": "1.1.
|
|
3690
|
-
"content_hash": "
|
|
4616
|
+
"version": "1.1.1",
|
|
4617
|
+
"content_hash": "c39021254fa26dcd20ffc1bf584c2ec51b0615c905e8eb81f03b4f284adcafd3",
|
|
3691
4618
|
"summary": "Compose, ground, space, and validate 3D scenes with Summer's four bounded spatial tools — exact paths, one geometric decision at a time, verified.",
|
|
3692
4619
|
"use_when": [
|
|
3693
4620
|
"placing or grounding props on floors, shelves, ramps, or tables without hand-tuning transforms",
|
|
@@ -3736,7 +4663,7 @@
|
|
|
3736
4663
|
"id": "skill/writing-plans",
|
|
3737
4664
|
"kind": "skill",
|
|
3738
4665
|
"version": "1.0.3",
|
|
3739
|
-
"content_hash": "
|
|
4666
|
+
"content_hash": "7846da78ec8fd662d13caae273aa0c1919a6db15e1091cca9a03169a8da9dc06",
|
|
3740
4667
|
"summary": "Turn a spec or requirements for a multi-step task into a written implementation plan before touching code.",
|
|
3741
4668
|
"use_when": [
|
|
3742
4669
|
"you have a spec or requirements for a multi-step task, before touching code",
|
|
@@ -3764,7 +4691,7 @@
|
|
|
3764
4691
|
"id": "skill/writing-skills",
|
|
3765
4692
|
"kind": "skill",
|
|
3766
4693
|
"version": "1.0.3",
|
|
3767
|
-
"content_hash": "
|
|
4694
|
+
"content_hash": "2eef769b007e087746b71ea8701adbbf0e46d270a75c1cc8de525ae5be99d24a",
|
|
3768
4695
|
"summary": "Create, edit, and verify agent skills — format, structure, testing with subagents, and best practices.",
|
|
3769
4696
|
"use_when": [
|
|
3770
4697
|
"creating new skills, editing existing skills, or verifying skills work before deployment",
|
|
@@ -4056,8 +4983,8 @@
|
|
|
4056
4983
|
{
|
|
4057
4984
|
"id": "template/3d-lan-multiplayer-starter",
|
|
4058
4985
|
"kind": "template",
|
|
4059
|
-
"version": "1.0.
|
|
4060
|
-
"content_hash": "
|
|
4986
|
+
"version": "1.0.2",
|
|
4987
|
+
"content_hash": "846fc27f210946148cd76a3168095a8c700fc345eb60eac099179668483be4bd",
|
|
4061
4988
|
"summary": "3D LAN multiplayer starter built on GDQuest's open-source work — host/join flow and synced players.",
|
|
4062
4989
|
"use_when": [
|
|
4063
4990
|
"starting a LAN or local multiplayer 3D game",
|
|
@@ -4075,7 +5002,7 @@
|
|
|
4075
5002
|
"compatibility": {
|
|
4076
5003
|
"engine": ">=4.6"
|
|
4077
5004
|
},
|
|
4078
|
-
"status": "
|
|
5005
|
+
"status": "deprecated"
|
|
4079
5006
|
},
|
|
4080
5007
|
{
|
|
4081
5008
|
"id": "template/3d-open-world-explore-tps",
|
|
@@ -4369,15 +5296,66 @@
|
|
|
4369
5296
|
"publish": false
|
|
4370
5297
|
}
|
|
4371
5298
|
},
|
|
5299
|
+
{
|
|
5300
|
+
"id": "tool/attach-to-surface",
|
|
5301
|
+
"kind": "tool",
|
|
5302
|
+
"version": "1.0.0",
|
|
5303
|
+
"content_hash": "e2207bbdab1a86f499382d89314fc48ea501080d814f15ffdfb9d06b47f047db",
|
|
5304
|
+
"summary": "Mount a piece on a wall, ceiling or floor — turn its measured back into the surface found by a ray, keep it upright, seat it at a standoff. Saves the scene.",
|
|
5305
|
+
"use_when": [
|
|
5306
|
+
"mounting a downpipe, gutter, lamp, AC unit, sign or fire escape on a facade",
|
|
5307
|
+
"turning a piece so its back faces a wall instead of guessing its rotation",
|
|
5308
|
+
"seating a piece against a surface at an exact standoff"
|
|
5309
|
+
],
|
|
5310
|
+
"facets": {
|
|
5311
|
+
"lifecycle": [
|
|
5312
|
+
"build"
|
|
5313
|
+
],
|
|
5314
|
+
"domains": [
|
|
5315
|
+
"scenes",
|
|
5316
|
+
"3d",
|
|
5317
|
+
"world-building",
|
|
5318
|
+
"level-design"
|
|
5319
|
+
],
|
|
5320
|
+
"modalities": [
|
|
5321
|
+
"scenes"
|
|
5322
|
+
]
|
|
5323
|
+
},
|
|
5324
|
+
"compatibility": {
|
|
5325
|
+
"engine": ">=4.6"
|
|
5326
|
+
},
|
|
5327
|
+
"related": {
|
|
5328
|
+
"tools": [
|
|
5329
|
+
"tool/raycast",
|
|
5330
|
+
"tool/snap-to-surface",
|
|
5331
|
+
"tool/inspect-asset",
|
|
5332
|
+
"tool/starcast"
|
|
5333
|
+
],
|
|
5334
|
+
"skills": [
|
|
5335
|
+
"skill/spatial-placement"
|
|
5336
|
+
]
|
|
5337
|
+
},
|
|
5338
|
+
"status": "preview",
|
|
5339
|
+
"mcp_tool_name": "summer_attach_to_surface",
|
|
5340
|
+
"remote": false,
|
|
5341
|
+
"authority": {
|
|
5342
|
+
"filesystem": true,
|
|
5343
|
+
"editor_mutation": true,
|
|
5344
|
+
"network": false,
|
|
5345
|
+
"credentials": false,
|
|
5346
|
+
"publish": false
|
|
5347
|
+
}
|
|
5348
|
+
},
|
|
4372
5349
|
{
|
|
4373
5350
|
"id": "tool/batch",
|
|
4374
5351
|
"kind": "tool",
|
|
4375
|
-
"version": "1.0
|
|
4376
|
-
"content_hash": "
|
|
4377
|
-
"summary": "Run
|
|
5352
|
+
"version": "1.1.0",
|
|
5353
|
+
"content_hash": "ec6fa446a214a15c5562061ba0f39072f698ea69243e4326e4931683bc62f286",
|
|
5354
|
+
"summary": "Run engine ops in one call, verbatim; one undo step unless single-only ops split it. ReparentNode keeps and verifies its subtree; raw ConnectSignal is refused.",
|
|
4378
5355
|
"use_when": [
|
|
4379
5356
|
"multi-node builds that should undo as one step (no single-only ops in the list)",
|
|
4380
|
-
"reaching engine ops that have no dedicated tool"
|
|
5357
|
+
"reaching engine ops that have no dedicated tool",
|
|
5358
|
+
"placing many kit pieces, one InstantiateScene op per piece with its position and rotation, read back with receipt summary"
|
|
4381
5359
|
],
|
|
4382
5360
|
"facets": {
|
|
4383
5361
|
"lifecycle": [
|
|
@@ -4518,12 +5496,60 @@
|
|
|
4518
5496
|
"publish": false
|
|
4519
5497
|
}
|
|
4520
5498
|
},
|
|
5499
|
+
{
|
|
5500
|
+
"id": "tool/connect-ports",
|
|
5501
|
+
"kind": "tool",
|
|
5502
|
+
"version": "1.0.0",
|
|
5503
|
+
"content_hash": "d3423ce431ff8bde3f0f288d5b4bf47788fca541694390168f0b31baff40a45a",
|
|
5504
|
+
"summary": "Join one piece's port (a Marker3D, or an open pipe end id such as '+Y') to another's, facing it; refuses joins that tilt the piece. Saves the scene.",
|
|
5505
|
+
"use_when": [
|
|
5506
|
+
"joining a pipe, duct or gutter section end to end with the previous one",
|
|
5507
|
+
"fitting a bend, funnel or outlet onto a run",
|
|
5508
|
+
"snapping any two pieces together by named Marker3D anchors"
|
|
5509
|
+
],
|
|
5510
|
+
"facets": {
|
|
5511
|
+
"lifecycle": [
|
|
5512
|
+
"build"
|
|
5513
|
+
],
|
|
5514
|
+
"domains": [
|
|
5515
|
+
"scenes",
|
|
5516
|
+
"3d",
|
|
5517
|
+
"world-building"
|
|
5518
|
+
],
|
|
5519
|
+
"modalities": [
|
|
5520
|
+
"scenes"
|
|
5521
|
+
]
|
|
5522
|
+
},
|
|
5523
|
+
"compatibility": {
|
|
5524
|
+
"engine": ">=4.6"
|
|
5525
|
+
},
|
|
5526
|
+
"related": {
|
|
5527
|
+
"tools": [
|
|
5528
|
+
"tool/inspect-asset",
|
|
5529
|
+
"tool/attach-to-surface",
|
|
5530
|
+
"tool/measure"
|
|
5531
|
+
],
|
|
5532
|
+
"skills": [
|
|
5533
|
+
"skill/spatial-placement"
|
|
5534
|
+
]
|
|
5535
|
+
},
|
|
5536
|
+
"status": "preview",
|
|
5537
|
+
"mcp_tool_name": "summer_connect_ports",
|
|
5538
|
+
"remote": false,
|
|
5539
|
+
"authority": {
|
|
5540
|
+
"filesystem": true,
|
|
5541
|
+
"editor_mutation": true,
|
|
5542
|
+
"network": false,
|
|
5543
|
+
"credentials": false,
|
|
5544
|
+
"publish": false
|
|
5545
|
+
}
|
|
5546
|
+
},
|
|
4521
5547
|
{
|
|
4522
5548
|
"id": "tool/connect-signal",
|
|
4523
5549
|
"kind": "tool",
|
|
4524
|
-
"version": "1.0
|
|
4525
|
-
"content_hash": "
|
|
4526
|
-
"summary": "Connect a signal between two nodes; the receiver
|
|
5550
|
+
"version": "1.1.0",
|
|
5551
|
+
"content_hash": "d37c9147743f97b9cd6f3acd1e287ef2af7df20b273c48dca05bb6cb427d236f",
|
|
5552
|
+
"summary": "Connect a signal between two nodes so the saved scene keeps it (CONNECT_PERSIST, verified from the saved .tscn); the receiver should define the target method.",
|
|
4527
5553
|
"use_when": [
|
|
4528
5554
|
"wiring events like body_entered, pressed, or timeout",
|
|
4529
5555
|
"\"when the button is pressed, call my function\"",
|
|
@@ -4687,69 +5713,227 @@
|
|
|
4687
5713
|
"editor_mutation": false,
|
|
4688
5714
|
"network": true,
|
|
4689
5715
|
"credentials": false,
|
|
4690
|
-
"publish": true
|
|
5716
|
+
"publish": true
|
|
5717
|
+
}
|
|
5718
|
+
},
|
|
5719
|
+
{
|
|
5720
|
+
"id": "tool/creator-releases",
|
|
5721
|
+
"kind": "tool",
|
|
5722
|
+
"version": "1.0.2",
|
|
5723
|
+
"content_hash": "75e19a8b5e872d42d9b52ae255cf55b24f7d455323d028cfa0856abf955cb0b5",
|
|
5724
|
+
"summary": "List creator-owned releases from the Summercraft creator API with server-verified scope and ownership.",
|
|
5725
|
+
"use_when": [
|
|
5726
|
+
"reviewing which versions of a project are live per channel",
|
|
5727
|
+
"\"what version is live right now?\"",
|
|
5728
|
+
"\"did the publish go through?\" — confirming a release landed"
|
|
5729
|
+
],
|
|
5730
|
+
"facets": {
|
|
5731
|
+
"lifecycle": [
|
|
5732
|
+
"launch"
|
|
5733
|
+
],
|
|
5734
|
+
"domains": [
|
|
5735
|
+
"creator",
|
|
5736
|
+
"deployment"
|
|
5737
|
+
]
|
|
5738
|
+
},
|
|
5739
|
+
"compatibility": {
|
|
5740
|
+
"engine": ">=4.6"
|
|
5741
|
+
},
|
|
5742
|
+
"status": "stable",
|
|
5743
|
+
"mcp_tool_name": "summer_creator_releases",
|
|
5744
|
+
"remote": true,
|
|
5745
|
+
"cli_command": "summer releases",
|
|
5746
|
+
"authority": {
|
|
5747
|
+
"filesystem": false,
|
|
5748
|
+
"editor_mutation": false,
|
|
5749
|
+
"network": true,
|
|
5750
|
+
"credentials": false,
|
|
5751
|
+
"publish": false
|
|
5752
|
+
}
|
|
5753
|
+
},
|
|
5754
|
+
{
|
|
5755
|
+
"id": "tool/debug-views",
|
|
5756
|
+
"kind": "tool",
|
|
5757
|
+
"version": "1.0.0",
|
|
5758
|
+
"content_hash": "deb767453ff63dcacf4b92208baa69b49b1b15b7d3d557b1c23f839a3d45c9f8",
|
|
5759
|
+
"summary": "One pose as a grid of beauty, lighting-only, unshaded/albedo, world normals, overdraw and wireframe views.",
|
|
5760
|
+
"use_when": [
|
|
5761
|
+
"understanding WHY a shot reads badly: light direction and pools, texture/value balance, normal seams, overdraw hot spots, triangle density",
|
|
5762
|
+
"checking floating or duplicated geometry, flipped normals or missing light in one framed view",
|
|
5763
|
+
"judging an environment like an artist, on the weakest shot of a sheet"
|
|
5764
|
+
],
|
|
5765
|
+
"facets": {
|
|
5766
|
+
"lifecycle": [
|
|
5767
|
+
"build"
|
|
5768
|
+
],
|
|
5769
|
+
"domains": [
|
|
5770
|
+
"verification",
|
|
5771
|
+
"scenes",
|
|
5772
|
+
"3d"
|
|
5773
|
+
],
|
|
5774
|
+
"modalities": [
|
|
5775
|
+
"scenes"
|
|
5776
|
+
]
|
|
5777
|
+
},
|
|
5778
|
+
"compatibility": {
|
|
5779
|
+
"engine": ">=4.6"
|
|
5780
|
+
},
|
|
5781
|
+
"related": {
|
|
5782
|
+
"tools": [
|
|
5783
|
+
"tool/shot-sheet",
|
|
5784
|
+
"tool/zoom",
|
|
5785
|
+
"tool/frame-shot",
|
|
5786
|
+
"tool/camera-bookmark"
|
|
5787
|
+
],
|
|
5788
|
+
"skills": [
|
|
5789
|
+
"skill/verifying-scenes"
|
|
5790
|
+
]
|
|
5791
|
+
},
|
|
5792
|
+
"status": "preview",
|
|
5793
|
+
"mcp_tool_name": "summer_debug_views",
|
|
5794
|
+
"remote": false,
|
|
5795
|
+
"authority": {
|
|
5796
|
+
"filesystem": true,
|
|
5797
|
+
"editor_mutation": false,
|
|
5798
|
+
"network": false,
|
|
5799
|
+
"credentials": false,
|
|
5800
|
+
"publish": false
|
|
5801
|
+
}
|
|
5802
|
+
},
|
|
5803
|
+
{
|
|
5804
|
+
"id": "tool/fabricate-3d",
|
|
5805
|
+
"kind": "tool",
|
|
5806
|
+
"version": "1.0.0",
|
|
5807
|
+
"content_hash": "a81490caa6d84592309e7d06848186916263f18b7e1d98877672767ff9fa83a0",
|
|
5808
|
+
"summary": "Fabricate a mesh with a bpy script in the user's own Blender (headless, engine-supervised), import the .glb into res://, optionally instantiate it.",
|
|
5809
|
+
"use_when": [
|
|
5810
|
+
"a modular kit with exact dimensions and snapping — walls, pipes, fences, rails — where generation cannot hold size and style across many pieces",
|
|
5811
|
+
"VFX meshes — shatter pieces, curve sweeps, trails, LOD chains — that are one-liners in bpy and absent from the engine",
|
|
5812
|
+
"post-processing a generated model (decimate, UV unwrap, bake) before it goes into the scene",
|
|
5813
|
+
"\"write a Blender script that builds ...\" / \"fabricate a parametric ... with booleans and bevels\""
|
|
5814
|
+
],
|
|
5815
|
+
"facets": {
|
|
5816
|
+
"lifecycle": [
|
|
5817
|
+
"build"
|
|
5818
|
+
],
|
|
5819
|
+
"domains": [
|
|
5820
|
+
"3d",
|
|
5821
|
+
"assets",
|
|
5822
|
+
"scripting"
|
|
5823
|
+
],
|
|
5824
|
+
"modalities": [
|
|
5825
|
+
"3d-models",
|
|
5826
|
+
"scripts",
|
|
5827
|
+
"assets"
|
|
5828
|
+
]
|
|
5829
|
+
},
|
|
5830
|
+
"compatibility": {
|
|
5831
|
+
"engine": ">=4.6"
|
|
5832
|
+
},
|
|
5833
|
+
"related": {
|
|
5834
|
+
"tools": [
|
|
5835
|
+
"tool/run-script",
|
|
5836
|
+
"tool/generate-3d",
|
|
5837
|
+
"tool/search-assets",
|
|
5838
|
+
"tool/import-asset",
|
|
5839
|
+
"tool/import-hdri",
|
|
5840
|
+
"tool/instantiate-scene",
|
|
5841
|
+
"tool/world-snapshot",
|
|
5842
|
+
"tool/snapshot-diff",
|
|
5843
|
+
"tool/screenshot"
|
|
5844
|
+
],
|
|
5845
|
+
"skills": [
|
|
5846
|
+
"skill/fabricating-assets",
|
|
5847
|
+
"skill/asset-strategy",
|
|
5848
|
+
"skill/environment-kit",
|
|
5849
|
+
"skill/scene-scripting",
|
|
5850
|
+
"skill/verifying-scenes"
|
|
5851
|
+
]
|
|
5852
|
+
},
|
|
5853
|
+
"status": "preview",
|
|
5854
|
+
"mcp_tool_name": "summer_fabricate_3d",
|
|
5855
|
+
"remote": false,
|
|
5856
|
+
"authority": {
|
|
5857
|
+
"filesystem": true,
|
|
5858
|
+
"editor_mutation": true,
|
|
5859
|
+
"network": false,
|
|
5860
|
+
"credentials": false,
|
|
5861
|
+
"publish": false
|
|
4691
5862
|
}
|
|
4692
5863
|
},
|
|
4693
5864
|
{
|
|
4694
|
-
"id": "tool/
|
|
5865
|
+
"id": "tool/frame-nodes",
|
|
4695
5866
|
"kind": "tool",
|
|
4696
|
-
"version": "1.0.
|
|
4697
|
-
"content_hash": "
|
|
4698
|
-
"summary": "
|
|
5867
|
+
"version": "1.0.0",
|
|
5868
|
+
"content_hash": "4a6c94a6ad6dc741d4283434dbdd6d46a8c356793694007623ed0556024eba1b",
|
|
5869
|
+
"summary": "Frame nodes by their world bounds and render with the scene's REAL environment and lights (optionally save the pose as a bookmark).",
|
|
4699
5870
|
"use_when": [
|
|
4700
|
-
"
|
|
4701
|
-
"
|
|
4702
|
-
"
|
|
5871
|
+
"\"show me the houses/props with the real lighting\" — fit a camera to one or more nodes and render it with the scene's WorldEnvironment",
|
|
5872
|
+
"framing a node from a chosen side (front/back/left/right/top/iso or an explicit direction) for a lighting or mood check; an explicit direction is checked for walls and back faces between the camera and the nodes",
|
|
5873
|
+
"creating a hero-view bookmark that fits a group of nodes, so later shot sheets and compares line up"
|
|
4703
5874
|
],
|
|
4704
5875
|
"facets": {
|
|
4705
5876
|
"lifecycle": [
|
|
4706
|
-
"
|
|
5877
|
+
"build"
|
|
4707
5878
|
],
|
|
4708
5879
|
"domains": [
|
|
4709
|
-
"
|
|
4710
|
-
"
|
|
5880
|
+
"verification",
|
|
5881
|
+
"scenes",
|
|
5882
|
+
"3d"
|
|
5883
|
+
],
|
|
5884
|
+
"modalities": [
|
|
5885
|
+
"scenes"
|
|
4711
5886
|
]
|
|
4712
5887
|
},
|
|
4713
5888
|
"compatibility": {
|
|
4714
5889
|
"engine": ">=4.6"
|
|
4715
5890
|
},
|
|
4716
|
-
"
|
|
4717
|
-
|
|
4718
|
-
|
|
4719
|
-
|
|
5891
|
+
"related": {
|
|
5892
|
+
"tools": [
|
|
5893
|
+
"tool/screenshot",
|
|
5894
|
+
"tool/camera-bookmark",
|
|
5895
|
+
"tool/shot-sheet",
|
|
5896
|
+
"tool/frame-shot",
|
|
5897
|
+
"tool/zoom"
|
|
5898
|
+
],
|
|
5899
|
+
"skills": [
|
|
5900
|
+
"skill/verifying-scenes"
|
|
5901
|
+
]
|
|
5902
|
+
},
|
|
5903
|
+
"status": "preview",
|
|
5904
|
+
"mcp_tool_name": "summer_frame_nodes",
|
|
5905
|
+
"remote": false,
|
|
4720
5906
|
"authority": {
|
|
4721
|
-
"filesystem":
|
|
5907
|
+
"filesystem": true,
|
|
4722
5908
|
"editor_mutation": false,
|
|
4723
|
-
"network":
|
|
5909
|
+
"network": false,
|
|
4724
5910
|
"credentials": false,
|
|
4725
5911
|
"publish": false
|
|
4726
5912
|
}
|
|
4727
5913
|
},
|
|
4728
5914
|
{
|
|
4729
|
-
"id": "tool/
|
|
5915
|
+
"id": "tool/frame-shot",
|
|
4730
5916
|
"kind": "tool",
|
|
4731
5917
|
"version": "1.0.0",
|
|
4732
|
-
"content_hash": "
|
|
4733
|
-
"summary": "
|
|
5918
|
+
"content_hash": "896345ba57bd0d99d3d3fd2c721ee05866686c3450f9f8ec61bad24157c15cd3",
|
|
5919
|
+
"summary": "Smart framing: find, score and bookmark camera poses for a shot type (establishing, eye level, low-angle, detail, corridor) with in-engine visibility tests.",
|
|
4734
5920
|
"use_when": [
|
|
4735
|
-
"a
|
|
4736
|
-
"
|
|
4737
|
-
"
|
|
4738
|
-
"
|
|
5921
|
+
"\"find a good view of X\" / \"frame an establishing shot\" / \"show it from the player's eye\" / \"look down the street\"",
|
|
5922
|
+
"choosing hero views to bookmark for an environment review loop",
|
|
5923
|
+
"checking whether walls or terrain block the view of a subject, and which props frame it (a camera behind or inside a one-sided wall is rejected; transparent foliage and glass are see-through cover)",
|
|
5924
|
+
"three different establishing views at once (one per side while the score allows), scored on the key light's direction and the world edge below the horizon"
|
|
4739
5925
|
],
|
|
4740
5926
|
"facets": {
|
|
4741
5927
|
"lifecycle": [
|
|
4742
5928
|
"build"
|
|
4743
5929
|
],
|
|
4744
5930
|
"domains": [
|
|
4745
|
-
"
|
|
4746
|
-
"
|
|
4747
|
-
"
|
|
5931
|
+
"verification",
|
|
5932
|
+
"scenes",
|
|
5933
|
+
"3d"
|
|
4748
5934
|
],
|
|
4749
5935
|
"modalities": [
|
|
4750
|
-
"
|
|
4751
|
-
"scripts",
|
|
4752
|
-
"assets"
|
|
5936
|
+
"scenes"
|
|
4753
5937
|
]
|
|
4754
5938
|
},
|
|
4755
5939
|
"compatibility": {
|
|
@@ -4757,30 +5941,22 @@
|
|
|
4757
5941
|
},
|
|
4758
5942
|
"related": {
|
|
4759
5943
|
"tools": [
|
|
4760
|
-
"tool/
|
|
4761
|
-
"tool/
|
|
4762
|
-
"tool/
|
|
4763
|
-
"tool/
|
|
4764
|
-
"tool/
|
|
4765
|
-
"tool/instantiate-scene",
|
|
4766
|
-
"tool/world-snapshot",
|
|
4767
|
-
"tool/snapshot-diff",
|
|
4768
|
-
"tool/screenshot"
|
|
5944
|
+
"tool/shot-sheet",
|
|
5945
|
+
"tool/camera-bookmark",
|
|
5946
|
+
"tool/frame-nodes",
|
|
5947
|
+
"tool/debug-views",
|
|
5948
|
+
"tool/zoom"
|
|
4769
5949
|
],
|
|
4770
5950
|
"skills": [
|
|
4771
|
-
"skill/fabricating-assets",
|
|
4772
|
-
"skill/asset-strategy",
|
|
4773
|
-
"skill/environment-kit",
|
|
4774
|
-
"skill/scene-scripting",
|
|
4775
5951
|
"skill/verifying-scenes"
|
|
4776
5952
|
]
|
|
4777
5953
|
},
|
|
4778
5954
|
"status": "preview",
|
|
4779
|
-
"mcp_tool_name": "
|
|
5955
|
+
"mcp_tool_name": "summer_frame_shot",
|
|
4780
5956
|
"remote": false,
|
|
4781
5957
|
"authority": {
|
|
4782
5958
|
"filesystem": true,
|
|
4783
|
-
"editor_mutation":
|
|
5959
|
+
"editor_mutation": false,
|
|
4784
5960
|
"network": false,
|
|
4785
5961
|
"credentials": false,
|
|
4786
5962
|
"publish": false
|
|
@@ -5049,13 +6225,15 @@
|
|
|
5049
6225
|
{
|
|
5050
6226
|
"id": "tool/generate-motion",
|
|
5051
6227
|
"kind": "tool",
|
|
5052
|
-
"version": "1.0
|
|
5053
|
-
"content_hash": "
|
|
5054
|
-
"summary": "Generate a curated mocap
|
|
6228
|
+
"version": "1.1.0",
|
|
6229
|
+
"content_hash": "717ddb290afa9515ba84e041371c78eb5e26a875bda5c9914235fb4751f5b6ef",
|
|
6230
|
+
"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.",
|
|
5055
6231
|
"use_when": [
|
|
5056
6232
|
"adding idle, walk, run, or combat clips to a rigged character",
|
|
5057
6233
|
"\"make my character walk / run / swing a sword\"",
|
|
5058
|
-
"\"I need an idle animation for the rigged NPC\""
|
|
6234
|
+
"\"I need an idle animation for the rigged NPC\"",
|
|
6235
|
+
"a custom action the curated library lacks — nod, bow, shrug, wave with the right arm",
|
|
6236
|
+
"animating a non-humanoid rig — a talking flower, animal, creature, turret or prop"
|
|
5059
6237
|
],
|
|
5060
6238
|
"facets": {
|
|
5061
6239
|
"lifecycle": [
|
|
@@ -5215,6 +6393,40 @@
|
|
|
5215
6393
|
"publish": false
|
|
5216
6394
|
}
|
|
5217
6395
|
},
|
|
6396
|
+
{
|
|
6397
|
+
"id": "tool/get-board",
|
|
6398
|
+
"kind": "tool",
|
|
6399
|
+
"version": "1.0.0",
|
|
6400
|
+
"content_hash": "9cf6a23419cc4b1764dd816801aa791b0500d4fc1eeaf4ba7f490f97011cc574",
|
|
6401
|
+
"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.",
|
|
6402
|
+
"use_when": [
|
|
6403
|
+
"starting a build step for a game made from a planning board",
|
|
6404
|
+
"\"does the game look like the board?\"",
|
|
6405
|
+
"comparing a screenshot with the chosen look and picked cards"
|
|
6406
|
+
],
|
|
6407
|
+
"facets": {
|
|
6408
|
+
"lifecycle": [
|
|
6409
|
+
"build"
|
|
6410
|
+
],
|
|
6411
|
+
"domains": [
|
|
6412
|
+
"game-design",
|
|
6413
|
+
"verification"
|
|
6414
|
+
]
|
|
6415
|
+
},
|
|
6416
|
+
"compatibility": {
|
|
6417
|
+
"engine": ">=4.6"
|
|
6418
|
+
},
|
|
6419
|
+
"status": "stable",
|
|
6420
|
+
"mcp_tool_name": "summer_get_board",
|
|
6421
|
+
"remote": true,
|
|
6422
|
+
"authority": {
|
|
6423
|
+
"filesystem": false,
|
|
6424
|
+
"editor_mutation": false,
|
|
6425
|
+
"network": true,
|
|
6426
|
+
"credentials": false,
|
|
6427
|
+
"publish": false
|
|
6428
|
+
}
|
|
6429
|
+
},
|
|
5218
6430
|
{
|
|
5219
6431
|
"id": "tool/get-console",
|
|
5220
6432
|
"kind": "tool",
|
|
@@ -5354,12 +6566,13 @@
|
|
|
5354
6566
|
{
|
|
5355
6567
|
"id": "tool/get-project-context",
|
|
5356
6568
|
"kind": "tool",
|
|
5357
|
-
"version": "
|
|
5358
|
-
"content_hash": "
|
|
5359
|
-
"summary": "Bind to the open project and return
|
|
6569
|
+
"version": "2.0.0",
|
|
6570
|
+
"content_hash": "c8cde53eababe6b12b5e8ca07a189673b09a84d51eea0a844815f7e648465f6e",
|
|
6571
|
+
"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.",
|
|
5360
6572
|
"use_when": [
|
|
5361
6573
|
"first call in every fresh session, to avoid guessing scene filenames",
|
|
5362
|
-
"deliberately rebinding after the engine switched projects"
|
|
6574
|
+
"deliberately rebinding after the engine switched projects",
|
|
6575
|
+
"reading the open scene's tree, the engine's op list or project settings (include)"
|
|
5363
6576
|
],
|
|
5364
6577
|
"facets": {
|
|
5365
6578
|
"lifecycle": [
|
|
@@ -5534,6 +6747,45 @@
|
|
|
5534
6747
|
"publish": false
|
|
5535
6748
|
}
|
|
5536
6749
|
},
|
|
6750
|
+
{
|
|
6751
|
+
"id": "tool/grep",
|
|
6752
|
+
"kind": "tool",
|
|
6753
|
+
"version": "1.0.0",
|
|
6754
|
+
"content_hash": "57676c00eaf3003becb56c41ed837102cc29f82822d52d52d4389e9dba77115f",
|
|
6755
|
+
"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.",
|
|
6756
|
+
"use_when": [
|
|
6757
|
+
"finding where something is in big project files without reading them whole",
|
|
6758
|
+
"\"which entries of a big JSON file list fits_into?\" / \"every mount_side entry\"",
|
|
6759
|
+
"\"where is _on_door_body_entered defined?\" / \"which scenes use this material?\""
|
|
6760
|
+
],
|
|
6761
|
+
"facets": {
|
|
6762
|
+
"lifecycle": [
|
|
6763
|
+
"build"
|
|
6764
|
+
],
|
|
6765
|
+
"domains": [
|
|
6766
|
+
"file",
|
|
6767
|
+
"project"
|
|
6768
|
+
]
|
|
6769
|
+
},
|
|
6770
|
+
"compatibility": {
|
|
6771
|
+
"engine": ">=4.6"
|
|
6772
|
+
},
|
|
6773
|
+
"related": {
|
|
6774
|
+
"tools": [
|
|
6775
|
+
"tool/read-file"
|
|
6776
|
+
]
|
|
6777
|
+
},
|
|
6778
|
+
"status": "preview",
|
|
6779
|
+
"mcp_tool_name": "summer_grep",
|
|
6780
|
+
"remote": false,
|
|
6781
|
+
"authority": {
|
|
6782
|
+
"filesystem": false,
|
|
6783
|
+
"editor_mutation": false,
|
|
6784
|
+
"network": false,
|
|
6785
|
+
"credentials": false,
|
|
6786
|
+
"publish": false
|
|
6787
|
+
}
|
|
6788
|
+
},
|
|
5537
6789
|
{
|
|
5538
6790
|
"id": "tool/import-asset",
|
|
5539
6791
|
"kind": "tool",
|
|
@@ -5753,16 +7005,67 @@
|
|
|
5753
7005
|
"publish": false
|
|
5754
7006
|
}
|
|
5755
7007
|
},
|
|
7008
|
+
{
|
|
7009
|
+
"id": "tool/inspect-asset",
|
|
7010
|
+
"kind": "tool",
|
|
7011
|
+
"version": "1.0.0",
|
|
7012
|
+
"content_hash": "f40a87d891da6193cf9efeb91a0cc6f4d831fd536fbfcad4d02d67ea7444d38d",
|
|
7013
|
+
"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.",
|
|
7014
|
+
"use_when": [
|
|
7015
|
+
"learning a kit piece's real size, origin and which way it faces before placing it",
|
|
7016
|
+
"finding a piece's front and back planes (largest planar faces with their normals) or its pipe and duct ends (open boundary loops)",
|
|
7017
|
+
"reading the Marker3D anchors or collision shapes a kit piece ships with"
|
|
7018
|
+
],
|
|
7019
|
+
"facets": {
|
|
7020
|
+
"lifecycle": [
|
|
7021
|
+
"build"
|
|
7022
|
+
],
|
|
7023
|
+
"domains": [
|
|
7024
|
+
"scenes",
|
|
7025
|
+
"3d",
|
|
7026
|
+
"world-building",
|
|
7027
|
+
"assets"
|
|
7028
|
+
],
|
|
7029
|
+
"modalities": [
|
|
7030
|
+
"scenes"
|
|
7031
|
+
]
|
|
7032
|
+
},
|
|
7033
|
+
"compatibility": {
|
|
7034
|
+
"engine": ">=4.6"
|
|
7035
|
+
},
|
|
7036
|
+
"related": {
|
|
7037
|
+
"tools": [
|
|
7038
|
+
"tool/instantiate-scene",
|
|
7039
|
+
"tool/attach-to-surface",
|
|
7040
|
+
"tool/connect-ports",
|
|
7041
|
+
"tool/starcast"
|
|
7042
|
+
],
|
|
7043
|
+
"skills": [
|
|
7044
|
+
"skill/spatial-placement"
|
|
7045
|
+
]
|
|
7046
|
+
},
|
|
7047
|
+
"status": "preview",
|
|
7048
|
+
"mcp_tool_name": "summer_inspect_asset",
|
|
7049
|
+
"remote": false,
|
|
7050
|
+
"authority": {
|
|
7051
|
+
"filesystem": false,
|
|
7052
|
+
"editor_mutation": false,
|
|
7053
|
+
"network": false,
|
|
7054
|
+
"credentials": false,
|
|
7055
|
+
"publish": false
|
|
7056
|
+
}
|
|
7057
|
+
},
|
|
5756
7058
|
{
|
|
5757
7059
|
"id": "tool/inspect-node",
|
|
5758
7060
|
"kind": "tool",
|
|
5759
|
-
"version": "1.0
|
|
5760
|
-
"content_hash": "
|
|
5761
|
-
"summary": "
|
|
7061
|
+
"version": "1.1.0",
|
|
7062
|
+
"content_hash": "8016dc147b6eac09b87b75f7806b4f996bc80dd8204d29f9e701f40a1d9d75fd",
|
|
7063
|
+
"summary": "A node's editable properties with values, Variant types and resources, or only named fields plus derived transform, global_transform, scene_file_path.",
|
|
5762
7064
|
"use_when": [
|
|
5763
7065
|
"before modifying a node, to understand its current state",
|
|
5764
7066
|
"\"what is the player's speed / position / collision layer?\"",
|
|
5765
|
-
"\"which material and mesh does this MeshInstance3D use?\""
|
|
7067
|
+
"\"which material and mesh does this MeshInstance3D use?\"",
|
|
7068
|
+
"\"where is this piece, locally and in the world, and which scene is it?\" — fields:[transform, global_transform, scene_file_path]"
|
|
5766
7069
|
],
|
|
5767
7070
|
"facets": {
|
|
5768
7071
|
"lifecycle": [
|
|
@@ -5790,11 +7093,12 @@
|
|
|
5790
7093
|
{
|
|
5791
7094
|
"id": "tool/inspect-resource",
|
|
5792
7095
|
"kind": "tool",
|
|
5793
|
-
"version": "1.0
|
|
5794
|
-
"content_hash": "
|
|
5795
|
-
"summary": "
|
|
7096
|
+
"version": "1.1.0",
|
|
7097
|
+
"content_hash": "410f1d81c41b6b22a0bf754acf6d347b01313ee4fc0c546ba64852f951f1b5ed",
|
|
7098
|
+
"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.",
|
|
5796
7099
|
"use_when": [
|
|
5797
7100
|
"reading sub-properties that the node inspector only names",
|
|
7101
|
+
"\"how many surfaces, triangles and which materials does this mesh .res have?\"",
|
|
5798
7102
|
"\"what colour is this material?\" / \"how big is this collision shape?\"",
|
|
5799
7103
|
"\"what settings does the WorldEnvironment resource have?\""
|
|
5800
7104
|
],
|
|
@@ -5870,13 +7174,14 @@
|
|
|
5870
7174
|
{
|
|
5871
7175
|
"id": "tool/instantiate-scene",
|
|
5872
7176
|
"kind": "tool",
|
|
5873
|
-
"version": "1.0
|
|
5874
|
-
"content_hash": "
|
|
5875
|
-
"summary": "Add an existing scene or 3D model file as a child node,
|
|
7177
|
+
"version": "1.1.0",
|
|
7178
|
+
"content_hash": "f53c8c4d2df1ae52eb8d47518f780c16c910b17e9b9b443e33bc4030b7a8b039",
|
|
7179
|
+
"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).",
|
|
5876
7180
|
"use_when": [
|
|
5877
7181
|
"placing a .tscn prefab or imported 3D model into a scene",
|
|
5878
7182
|
"\"put three copies of the enemy prefab in the level\"",
|
|
5879
|
-
"\"add the imported car.glb to the scene\""
|
|
7183
|
+
"\"add the imported car.glb to the scene\"",
|
|
7184
|
+
"placing a kit piece at an exact position and rotation in one call per piece"
|
|
5880
7185
|
],
|
|
5881
7186
|
"facets": {
|
|
5882
7187
|
"lifecycle": [
|
|
@@ -6001,6 +7306,55 @@
|
|
|
6001
7306
|
"publish": false
|
|
6002
7307
|
}
|
|
6003
7308
|
},
|
|
7309
|
+
{
|
|
7310
|
+
"id": "tool/measure",
|
|
7311
|
+
"kind": "tool",
|
|
7312
|
+
"version": "1.0.0",
|
|
7313
|
+
"content_hash": "d6104d4b6e3ace9f0397b65ffdb2f2da2c541422ba02e776d7eab0fed5400094",
|
|
7314
|
+
"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.",
|
|
7315
|
+
"use_when": [
|
|
7316
|
+
"checking that two facade modules meet edge to edge, or how far apart or overlapping two pieces are on each axis",
|
|
7317
|
+
"checking that every module of a facade line has its front on one plane (plane mode) and which ones stand proud or sit recessed",
|
|
7318
|
+
"verifying a placement numerically before the screenshot"
|
|
7319
|
+
],
|
|
7320
|
+
"facets": {
|
|
7321
|
+
"lifecycle": [
|
|
7322
|
+
"build"
|
|
7323
|
+
],
|
|
7324
|
+
"domains": [
|
|
7325
|
+
"scenes",
|
|
7326
|
+
"3d",
|
|
7327
|
+
"world-building",
|
|
7328
|
+
"verification"
|
|
7329
|
+
],
|
|
7330
|
+
"modalities": [
|
|
7331
|
+
"scenes"
|
|
7332
|
+
]
|
|
7333
|
+
},
|
|
7334
|
+
"compatibility": {
|
|
7335
|
+
"engine": ">=4.6"
|
|
7336
|
+
},
|
|
7337
|
+
"related": {
|
|
7338
|
+
"tools": [
|
|
7339
|
+
"tool/starcast",
|
|
7340
|
+
"tool/place-adjacent",
|
|
7341
|
+
"tool/screenshot"
|
|
7342
|
+
],
|
|
7343
|
+
"skills": [
|
|
7344
|
+
"skill/spatial-placement"
|
|
7345
|
+
]
|
|
7346
|
+
},
|
|
7347
|
+
"status": "preview",
|
|
7348
|
+
"mcp_tool_name": "summer_measure",
|
|
7349
|
+
"remote": false,
|
|
7350
|
+
"authority": {
|
|
7351
|
+
"filesystem": false,
|
|
7352
|
+
"editor_mutation": false,
|
|
7353
|
+
"network": false,
|
|
7354
|
+
"credentials": false,
|
|
7355
|
+
"publish": false
|
|
7356
|
+
}
|
|
7357
|
+
},
|
|
6004
7358
|
{
|
|
6005
7359
|
"id": "tool/navigation-probe",
|
|
6006
7360
|
"kind": "tool",
|
|
@@ -6122,15 +7476,49 @@
|
|
|
6122
7476
|
"build"
|
|
6123
7477
|
],
|
|
6124
7478
|
"domains": [
|
|
6125
|
-
"project",
|
|
6126
|
-
"scenes"
|
|
7479
|
+
"project",
|
|
7480
|
+
"scenes"
|
|
7481
|
+
]
|
|
7482
|
+
},
|
|
7483
|
+
"compatibility": {
|
|
7484
|
+
"engine": ">=4.6"
|
|
7485
|
+
},
|
|
7486
|
+
"status": "stable",
|
|
7487
|
+
"mcp_tool_name": "summer_open_main_scene",
|
|
7488
|
+
"remote": false,
|
|
7489
|
+
"authority": {
|
|
7490
|
+
"filesystem": false,
|
|
7491
|
+
"editor_mutation": true,
|
|
7492
|
+
"network": false,
|
|
7493
|
+
"credentials": false,
|
|
7494
|
+
"publish": false
|
|
7495
|
+
}
|
|
7496
|
+
},
|
|
7497
|
+
{
|
|
7498
|
+
"id": "tool/open-scene",
|
|
7499
|
+
"kind": "tool",
|
|
7500
|
+
"version": "1.0.2",
|
|
7501
|
+
"content_hash": "1e0bebc35369eae6c894b02603963829bc75a5b4e2db42ae5c1b1bd92827d363",
|
|
7502
|
+
"summary": "Open a scene file in the editor to switch tabs.",
|
|
7503
|
+
"use_when": [
|
|
7504
|
+
"switching the editor to an explicitly known scene path",
|
|
7505
|
+
"\"switch to level2.tscn\" / \"open the player prefab in the editor\"",
|
|
7506
|
+
"a tool needs a different scene to be the active tab"
|
|
7507
|
+
],
|
|
7508
|
+
"facets": {
|
|
7509
|
+
"lifecycle": [
|
|
7510
|
+
"build"
|
|
7511
|
+
],
|
|
7512
|
+
"domains": [
|
|
7513
|
+
"scenes",
|
|
7514
|
+
"editor"
|
|
6127
7515
|
]
|
|
6128
7516
|
},
|
|
6129
7517
|
"compatibility": {
|
|
6130
7518
|
"engine": ">=4.6"
|
|
6131
7519
|
},
|
|
6132
7520
|
"status": "stable",
|
|
6133
|
-
"mcp_tool_name": "
|
|
7521
|
+
"mcp_tool_name": "summer_open_scene",
|
|
6134
7522
|
"remote": false,
|
|
6135
7523
|
"authority": {
|
|
6136
7524
|
"filesystem": false,
|
|
@@ -6141,15 +7529,15 @@
|
|
|
6141
7529
|
}
|
|
6142
7530
|
},
|
|
6143
7531
|
{
|
|
6144
|
-
"id": "tool/
|
|
7532
|
+
"id": "tool/place-adjacent",
|
|
6145
7533
|
"kind": "tool",
|
|
6146
|
-
"version": "1.0.
|
|
6147
|
-
"content_hash": "
|
|
6148
|
-
"summary": "
|
|
7534
|
+
"version": "1.0.0",
|
|
7535
|
+
"content_hash": "891191f1947f53ad9803922be0075636554b4279914e5a6c4e9f064c1c7f3f25",
|
|
7536
|
+
"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.",
|
|
6149
7537
|
"use_when": [
|
|
6150
|
-
"
|
|
6151
|
-
"
|
|
6152
|
-
"a
|
|
7538
|
+
"laying facade or wall modules edge to edge along a street line",
|
|
7539
|
+
"stacking a storey, cornice or crown on the piece below",
|
|
7540
|
+
"putting a piece flush beside another with the same base height and front plane"
|
|
6153
7541
|
],
|
|
6154
7542
|
"facets": {
|
|
6155
7543
|
"lifecycle": [
|
|
@@ -6157,17 +7545,33 @@
|
|
|
6157
7545
|
],
|
|
6158
7546
|
"domains": [
|
|
6159
7547
|
"scenes",
|
|
6160
|
-
"
|
|
7548
|
+
"3d",
|
|
7549
|
+
"world-building",
|
|
7550
|
+
"level-design"
|
|
7551
|
+
],
|
|
7552
|
+
"modalities": [
|
|
7553
|
+
"scenes"
|
|
6161
7554
|
]
|
|
6162
7555
|
},
|
|
6163
7556
|
"compatibility": {
|
|
6164
7557
|
"engine": ">=4.6"
|
|
6165
7558
|
},
|
|
6166
|
-
"
|
|
6167
|
-
|
|
7559
|
+
"related": {
|
|
7560
|
+
"tools": [
|
|
7561
|
+
"tool/measure",
|
|
7562
|
+
"tool/align-distribute-3d",
|
|
7563
|
+
"tool/repeat-along",
|
|
7564
|
+
"tool/inspect-asset"
|
|
7565
|
+
],
|
|
7566
|
+
"skills": [
|
|
7567
|
+
"skill/spatial-placement"
|
|
7568
|
+
]
|
|
7569
|
+
},
|
|
7570
|
+
"status": "preview",
|
|
7571
|
+
"mcp_tool_name": "summer_place_adjacent",
|
|
6168
7572
|
"remote": false,
|
|
6169
7573
|
"authority": {
|
|
6170
|
-
"filesystem":
|
|
7574
|
+
"filesystem": true,
|
|
6171
7575
|
"editor_mutation": true,
|
|
6172
7576
|
"network": false,
|
|
6173
7577
|
"credentials": false,
|
|
@@ -6177,15 +7581,16 @@
|
|
|
6177
7581
|
{
|
|
6178
7582
|
"id": "tool/play",
|
|
6179
7583
|
"kind": "tool",
|
|
6180
|
-
"version": "1.
|
|
6181
|
-
"content_hash": "
|
|
6182
|
-
"summary": "Start the game quietly
|
|
7584
|
+
"version": "1.3.0",
|
|
7585
|
+
"content_hash": "847dc3ae4e1602479d2198e6cfa39f31e7b6285d05f97731ffd424830f708afd",
|
|
7586
|
+
"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).",
|
|
6183
7587
|
"use_when": [
|
|
6184
7588
|
"runtime verification after edits",
|
|
6185
7589
|
"the user wants to try the game or one level after a change",
|
|
6186
7590
|
"reproducing a bug that only shows at runtime",
|
|
6187
7591
|
"a deterministic, repeatable playtest run — pin the global RNG with seed and the timestep with fixed_fps",
|
|
6188
7592
|
"launching a deterministic or parallel offscreen playtest instance (seed, fixed frame rate, named offscreen instance) for the runtime tools to drive",
|
|
7593
|
+
"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",
|
|
6189
7594
|
"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"
|
|
6190
7595
|
],
|
|
6191
7596
|
"facets": {
|
|
@@ -6259,15 +7664,65 @@
|
|
|
6259
7664
|
"publish": false
|
|
6260
7665
|
}
|
|
6261
7666
|
},
|
|
7667
|
+
{
|
|
7668
|
+
"id": "tool/raycast",
|
|
7669
|
+
"kind": "tool",
|
|
7670
|
+
"version": "1.0.0",
|
|
7671
|
+
"content_hash": "c1b0a03e470031d6c0adfaeccab2c2c8eb386cb08fec980bcfa4c0f43ea5af8e",
|
|
7672
|
+
"summary": "Cast one ray from any point in an open scene — hit node, point and normal; physics first, visual AABB fallback declared. Read-only.",
|
|
7673
|
+
"use_when": [
|
|
7674
|
+
"finding the wall, floor or ceiling in front of a point and its normal before anything is placed there",
|
|
7675
|
+
"choosing where a lamp, pipe or sign mounts on a facade",
|
|
7676
|
+
"checking what a line of sight or a drop line hits"
|
|
7677
|
+
],
|
|
7678
|
+
"facets": {
|
|
7679
|
+
"lifecycle": [
|
|
7680
|
+
"build"
|
|
7681
|
+
],
|
|
7682
|
+
"domains": [
|
|
7683
|
+
"scenes",
|
|
7684
|
+
"3d",
|
|
7685
|
+
"world-building"
|
|
7686
|
+
],
|
|
7687
|
+
"modalities": [
|
|
7688
|
+
"scenes"
|
|
7689
|
+
]
|
|
7690
|
+
},
|
|
7691
|
+
"compatibility": {
|
|
7692
|
+
"engine": ">=4.6"
|
|
7693
|
+
},
|
|
7694
|
+
"related": {
|
|
7695
|
+
"tools": [
|
|
7696
|
+
"tool/attach-to-surface",
|
|
7697
|
+
"tool/starcast",
|
|
7698
|
+
"tool/snap-to-surface"
|
|
7699
|
+
],
|
|
7700
|
+
"skills": [
|
|
7701
|
+
"skill/spatial-placement"
|
|
7702
|
+
]
|
|
7703
|
+
},
|
|
7704
|
+
"status": "preview",
|
|
7705
|
+
"mcp_tool_name": "summer_raycast",
|
|
7706
|
+
"remote": false,
|
|
7707
|
+
"authority": {
|
|
7708
|
+
"filesystem": false,
|
|
7709
|
+
"editor_mutation": false,
|
|
7710
|
+
"network": false,
|
|
7711
|
+
"credentials": false,
|
|
7712
|
+
"publish": false
|
|
7713
|
+
}
|
|
7714
|
+
},
|
|
6262
7715
|
{
|
|
6263
7716
|
"id": "tool/read-file",
|
|
6264
7717
|
"kind": "tool",
|
|
6265
|
-
"version": "1.0
|
|
6266
|
-
"content_hash": "
|
|
6267
|
-
"summary": "Read a text file
|
|
7718
|
+
"version": "1.1.0",
|
|
7719
|
+
"content_hash": "a17383c044d72243bd190c4d0f4e45f16fba35ad741796a3d68d9ffb495b7f8d",
|
|
7720
|
+
"summary": "Read a project text file, a line or byte window of it, or the entries of a .json picked by json_path/keys, with the full-file sha256 receipt.",
|
|
6268
7721
|
"use_when": [
|
|
6269
7722
|
"reading project files through the engine",
|
|
6270
|
-
"getting the sha256 required before overwriting a file"
|
|
7723
|
+
"getting the sha256 required before overwriting a file",
|
|
7724
|
+
"reading a file too big for one result in pages (offset/limit)",
|
|
7725
|
+
"\"read the wall_door_b entry of a kit manifest\" — json_path / keys instead of the whole file"
|
|
6271
7726
|
],
|
|
6272
7727
|
"facets": {
|
|
6273
7728
|
"lifecycle": [
|
|
@@ -6281,6 +7736,13 @@
|
|
|
6281
7736
|
"compatibility": {
|
|
6282
7737
|
"engine": ">=4.6"
|
|
6283
7738
|
},
|
|
7739
|
+
"related": {
|
|
7740
|
+
"tools": [
|
|
7741
|
+
"tool/grep",
|
|
7742
|
+
"tool/write-file",
|
|
7743
|
+
"tool/replace-text"
|
|
7744
|
+
]
|
|
7745
|
+
},
|
|
6284
7746
|
"status": "stable",
|
|
6285
7747
|
"mcp_tool_name": "summer_read_file",
|
|
6286
7748
|
"remote": false,
|
|
@@ -6295,8 +7757,8 @@
|
|
|
6295
7757
|
{
|
|
6296
7758
|
"id": "tool/read-library",
|
|
6297
7759
|
"kind": "tool",
|
|
6298
|
-
"version": "1.
|
|
6299
|
-
"content_hash": "
|
|
7760
|
+
"version": "1.1.0",
|
|
7761
|
+
"content_hash": "ded3e95871d25d27a9a53b4f7bc70433587c9d62b81387409505a3e97fb3e2e3",
|
|
6300
7762
|
"summary": "Load one library entry by id — a skill's body and metadata, a tool's call recipe, a template's pin, a reference's text — ending in the feedback footer.",
|
|
6301
7763
|
"use_when": [
|
|
6302
7764
|
"summer_search_library returned an id and you need the entry itself before acting",
|
|
@@ -6427,16 +7889,66 @@
|
|
|
6427
7889
|
"publish": false
|
|
6428
7890
|
}
|
|
6429
7891
|
},
|
|
7892
|
+
{
|
|
7893
|
+
"id": "tool/repeat-along",
|
|
7894
|
+
"kind": "tool",
|
|
7895
|
+
"version": "1.0.0",
|
|
7896
|
+
"content_hash": "0f8df6a49ce6ea622343627bbf71ef997831da8830251bf6828bb5e3dcfc619e",
|
|
7897
|
+
"summary": "Instance copies of one scene along a line in one call — clamps every 0.45 m, braces, fence posts, window rows — and get the created node paths back.",
|
|
7898
|
+
"use_when": [
|
|
7899
|
+
"placing wall clamps, gutter braces or duct braces at a fixed spacing along a run",
|
|
7900
|
+
"a row of fence posts, bollards, lamps or window modules",
|
|
7901
|
+
"filling a line with as many copies as fit at a spacing"
|
|
7902
|
+
],
|
|
7903
|
+
"facets": {
|
|
7904
|
+
"lifecycle": [
|
|
7905
|
+
"build"
|
|
7906
|
+
],
|
|
7907
|
+
"domains": [
|
|
7908
|
+
"scenes",
|
|
7909
|
+
"3d",
|
|
7910
|
+
"world-building",
|
|
7911
|
+
"level-design"
|
|
7912
|
+
],
|
|
7913
|
+
"modalities": [
|
|
7914
|
+
"scenes"
|
|
7915
|
+
]
|
|
7916
|
+
},
|
|
7917
|
+
"compatibility": {
|
|
7918
|
+
"engine": ">=4.6"
|
|
7919
|
+
},
|
|
7920
|
+
"related": {
|
|
7921
|
+
"tools": [
|
|
7922
|
+
"tool/instantiate-scene",
|
|
7923
|
+
"tool/batch",
|
|
7924
|
+
"tool/attach-to-surface"
|
|
7925
|
+
],
|
|
7926
|
+
"skills": [
|
|
7927
|
+
"skill/spatial-placement"
|
|
7928
|
+
]
|
|
7929
|
+
},
|
|
7930
|
+
"status": "preview",
|
|
7931
|
+
"mcp_tool_name": "summer_repeat_along",
|
|
7932
|
+
"remote": false,
|
|
7933
|
+
"authority": {
|
|
7934
|
+
"filesystem": true,
|
|
7935
|
+
"editor_mutation": true,
|
|
7936
|
+
"network": false,
|
|
7937
|
+
"credentials": false,
|
|
7938
|
+
"publish": false
|
|
7939
|
+
}
|
|
7940
|
+
},
|
|
6430
7941
|
{
|
|
6431
7942
|
"id": "tool/replace-node",
|
|
6432
7943
|
"kind": "tool",
|
|
6433
|
-
"version": "1.0
|
|
6434
|
-
"content_hash": "
|
|
6435
|
-
"summary": "Replace a node with
|
|
7944
|
+
"version": "1.1.0",
|
|
7945
|
+
"content_hash": "73ffc0dc80960e12daee3ec03cdf2a92014d259c1092fb23e60b19ef680f6549",
|
|
7946
|
+
"summary": "Replace a node with another scene or type, keeping its parent, index, name, transform and children, and verify the saved scene holds it.",
|
|
6436
7947
|
"use_when": [
|
|
6437
7948
|
"swapping a placeholder for a prefab or changing a body type",
|
|
6438
7949
|
"\"turn this StaticBody3D into a RigidBody3D but keep its children\"",
|
|
6439
|
-
"swapping the placeholder cube for the real prefab in place"
|
|
7950
|
+
"swapping the placeholder cube for the real prefab in place",
|
|
7951
|
+
"swapping one kit piece for another (a wall host for a door host) without hand-copying its transform"
|
|
6440
7952
|
],
|
|
6441
7953
|
"facets": {
|
|
6442
7954
|
"lifecycle": [
|
|
@@ -6450,6 +7962,13 @@
|
|
|
6450
7962
|
"compatibility": {
|
|
6451
7963
|
"engine": ">=4.6"
|
|
6452
7964
|
},
|
|
7965
|
+
"related": {
|
|
7966
|
+
"tools": [
|
|
7967
|
+
"tool/remove-node",
|
|
7968
|
+
"tool/instantiate-scene",
|
|
7969
|
+
"tool/read-file"
|
|
7970
|
+
]
|
|
7971
|
+
},
|
|
6453
7972
|
"status": "stable",
|
|
6454
7973
|
"mcp_tool_name": "summer_replace_node",
|
|
6455
7974
|
"remote": false,
|
|
@@ -6833,18 +8352,77 @@
|
|
|
6833
8352
|
"publish": false
|
|
6834
8353
|
}
|
|
6835
8354
|
},
|
|
8355
|
+
{
|
|
8356
|
+
"id": "tool/scene-audit",
|
|
8357
|
+
"kind": "tool",
|
|
8358
|
+
"version": "1.3.0",
|
|
8359
|
+
"content_hash": "474abfec07fd4dc9a955bbaf7894bc5bea743f81842646b847bf091611ed2e37",
|
|
8360
|
+
"summary": "Read-only pass over any 3D scene, from geometry and materials: see-through holes, exposed edges, open pipe ends, floor gaps, clipping props.",
|
|
8361
|
+
"use_when": [
|
|
8362
|
+
"after each build stage of a 3D level or kit-built street: \"what is wrong with this scene and where exactly?\"",
|
|
8363
|
+
"before calling a scene done: find see-through walls (an insert narrower than its frame), floor tiles with holes, props floating, sunk or poking into walls",
|
|
8364
|
+
"facade bands with an open end or a gap, seams between modules and modules out of line seen from the street; a duct or downpipe with a missing elbow, coupler or section",
|
|
8365
|
+
"the same look items keep coming back: accept the ones you judged fine (accept:[{key, reason}]) so later audits count them but hide them until their evidence changes",
|
|
8366
|
+
"finding props turned the wrong way against a wall (a bench standing perpendicular to it), stretched texture strips, duplicated pieces",
|
|
8367
|
+
"flickering faces: coplanar overlaps anywhere (props, roofs, ledges, inserts against hosts, decals, two surfaces of one mesh), judged by the 24-bit depth precision at the view distance",
|
|
8368
|
+
"bare ground at wall bases, an underlay plane covering drain channels, buried props: floor_gap and sunken say which surface a ray hits first",
|
|
8369
|
+
"a lit city scene in the Compatibility renderer: meshes lit by more than the per-object light limit, hard spot rims"
|
|
8370
|
+
],
|
|
8371
|
+
"facets": {
|
|
8372
|
+
"lifecycle": [
|
|
8373
|
+
"build"
|
|
8374
|
+
],
|
|
8375
|
+
"domains": [
|
|
8376
|
+
"verification",
|
|
8377
|
+
"scenes",
|
|
8378
|
+
"3d",
|
|
8379
|
+
"level-design"
|
|
8380
|
+
],
|
|
8381
|
+
"modalities": [
|
|
8382
|
+
"scenes"
|
|
8383
|
+
]
|
|
8384
|
+
},
|
|
8385
|
+
"compatibility": {
|
|
8386
|
+
"engine": ">=4.6"
|
|
8387
|
+
},
|
|
8388
|
+
"related": {
|
|
8389
|
+
"tools": [
|
|
8390
|
+
"tool/frame-nodes",
|
|
8391
|
+
"tool/zoom",
|
|
8392
|
+
"tool/shot-sheet",
|
|
8393
|
+
"tool/raycast",
|
|
8394
|
+
"tool/measure",
|
|
8395
|
+
"tool/inspect-asset"
|
|
8396
|
+
],
|
|
8397
|
+
"skills": [
|
|
8398
|
+
"skill/verifying-scenes",
|
|
8399
|
+
"skill/spatial-placement"
|
|
8400
|
+
]
|
|
8401
|
+
},
|
|
8402
|
+
"status": "preview",
|
|
8403
|
+
"mcp_tool_name": "summer_scene_audit",
|
|
8404
|
+
"remote": false,
|
|
8405
|
+
"authority": {
|
|
8406
|
+
"filesystem": true,
|
|
8407
|
+
"editor_mutation": false,
|
|
8408
|
+
"network": false,
|
|
8409
|
+
"credentials": false,
|
|
8410
|
+
"publish": false
|
|
8411
|
+
}
|
|
8412
|
+
},
|
|
6836
8413
|
{
|
|
6837
8414
|
"id": "tool/screenshot",
|
|
6838
8415
|
"kind": "tool",
|
|
6839
|
-
"version": "1.
|
|
6840
|
-
"content_hash": "
|
|
8416
|
+
"version": "1.2.0",
|
|
8417
|
+
"content_hash": "1b3955c9e46ce009b49de86f00418b60d10f55fff0f9804cea7586bcdfc1b551",
|
|
6841
8418
|
"summary": "Capture a frame from the editor viewport, an offscreen scene render (fixed or bookmarked pose, numbered labels), or the running game, as an actual image.",
|
|
6842
8419
|
"use_when": [
|
|
6843
8420
|
"visually verifying layout, scale, framing, or runtime state",
|
|
6844
8421
|
"\"show me what the scene looks like right now\"",
|
|
6845
8422
|
"\"did the model land where I put it?\" / \"does the UI overlap?\"",
|
|
6846
8423
|
"\"take a screenshot of the game\" / \"screenshot the running game\" — target \"game\" grabs the live frame",
|
|
6847
|
-
"before/after frames from the SAME viewpoint (framing \"bookmark\" / \"free\"), or an annotated screenshot with numbered labels mapped to node paths (marks)"
|
|
8424
|
+
"before/after frames from the SAME viewpoint (framing \"bookmark\" / \"free\"), or an annotated screenshot with numbered labels mapped to node paths (marks)",
|
|
8425
|
+
"\"what changed since the last render of this view?\" — framing \"bookmark\" with compare_previous returns previous | now | difference map in one image"
|
|
6848
8426
|
],
|
|
6849
8427
|
"facets": {
|
|
6850
8428
|
"lifecycle": [
|
|
@@ -6861,7 +8439,10 @@
|
|
|
6861
8439
|
"related": {
|
|
6862
8440
|
"tools": [
|
|
6863
8441
|
"tool/camera-bookmark",
|
|
6864
|
-
"tool/world-snapshot"
|
|
8442
|
+
"tool/world-snapshot",
|
|
8443
|
+
"tool/frame-nodes",
|
|
8444
|
+
"tool/shot-sheet",
|
|
8445
|
+
"tool/frame-shot"
|
|
6865
8446
|
],
|
|
6866
8447
|
"skills": [
|
|
6867
8448
|
"skill/verifying-scenes"
|
|
@@ -6882,7 +8463,7 @@
|
|
|
6882
8463
|
"id": "tool/search-assets",
|
|
6883
8464
|
"kind": "tool",
|
|
6884
8465
|
"version": "1.0.2",
|
|
6885
|
-
"content_hash": "
|
|
8466
|
+
"content_hash": "0a76fbd9af655fa350bdbad9b55675ba59bf36182fefd0c831271e9b57d15748",
|
|
6886
8467
|
"summary": "Search the Summer asset library and your own assets by keyword and meaning; returns names, types, preview and import-ready URLs.",
|
|
6887
8468
|
"use_when": [
|
|
6888
8469
|
"finding an existing asset in the public library before generating a new one",
|
|
@@ -7063,6 +8644,56 @@
|
|
|
7063
8644
|
"publish": false
|
|
7064
8645
|
}
|
|
7065
8646
|
},
|
|
8647
|
+
{
|
|
8648
|
+
"id": "tool/shot-sheet",
|
|
8649
|
+
"kind": "tool",
|
|
8650
|
+
"version": "1.0.0",
|
|
8651
|
+
"content_hash": "45db27ac2ad936e72212fc8172bc6facaddc4e8ee7eee723b9decf88f3629dbf",
|
|
8652
|
+
"summary": "Render N bookmarks and/or poses into one labelled grid image with real lighting; compare each bookmark with its previous render (difference map).",
|
|
8653
|
+
"use_when": [
|
|
8654
|
+
"seeing every hero view of an environment at once after a change, in one image",
|
|
8655
|
+
"\"did this change make it better?\" — compare_previous puts previous, now and a difference map side by side per bookmark; plain sheets in between never reset that baseline",
|
|
8656
|
+
"rendering several poses in one debug view (lighting, unshaded, normals, overdraw, wireframe) for a quick sweep"
|
|
8657
|
+
],
|
|
8658
|
+
"facets": {
|
|
8659
|
+
"lifecycle": [
|
|
8660
|
+
"build"
|
|
8661
|
+
],
|
|
8662
|
+
"domains": [
|
|
8663
|
+
"verification",
|
|
8664
|
+
"scenes",
|
|
8665
|
+
"3d"
|
|
8666
|
+
],
|
|
8667
|
+
"modalities": [
|
|
8668
|
+
"scenes"
|
|
8669
|
+
]
|
|
8670
|
+
},
|
|
8671
|
+
"compatibility": {
|
|
8672
|
+
"engine": ">=4.6"
|
|
8673
|
+
},
|
|
8674
|
+
"related": {
|
|
8675
|
+
"tools": [
|
|
8676
|
+
"tool/camera-bookmark",
|
|
8677
|
+
"tool/frame-shot",
|
|
8678
|
+
"tool/debug-views",
|
|
8679
|
+
"tool/zoom",
|
|
8680
|
+
"tool/screenshot"
|
|
8681
|
+
],
|
|
8682
|
+
"skills": [
|
|
8683
|
+
"skill/verifying-scenes"
|
|
8684
|
+
]
|
|
8685
|
+
},
|
|
8686
|
+
"status": "preview",
|
|
8687
|
+
"mcp_tool_name": "summer_shot_sheet",
|
|
8688
|
+
"remote": false,
|
|
8689
|
+
"authority": {
|
|
8690
|
+
"filesystem": true,
|
|
8691
|
+
"editor_mutation": false,
|
|
8692
|
+
"network": false,
|
|
8693
|
+
"credentials": false,
|
|
8694
|
+
"publish": false
|
|
8695
|
+
}
|
|
8696
|
+
},
|
|
7066
8697
|
{
|
|
7067
8698
|
"id": "tool/slice-asset-sheet",
|
|
7068
8699
|
"kind": "tool",
|
|
@@ -7100,12 +8731,14 @@
|
|
|
7100
8731
|
{
|
|
7101
8732
|
"id": "tool/snap-to-surface",
|
|
7102
8733
|
"kind": "tool",
|
|
7103
|
-
"version": "1.
|
|
7104
|
-
"content_hash": "
|
|
8734
|
+
"version": "1.2.0",
|
|
8735
|
+
"content_hash": "b7c9d59e4c42872f02689437a4e091d0429733b4dbf93850aac3fe8e363c93f0",
|
|
7105
8736
|
"summary": "Move one 3D subject along a world ray until it sits at the requested gap from the first surface (floor, ramp, shelf, table), then save the scene.",
|
|
7106
8737
|
"use_when": [
|
|
7107
8738
|
"seating a prop on a floor, ramp, table, or shelf instead of hand-tuning its Y position",
|
|
7108
|
-
"grounding an imported or instantiated model that floats or sinks into its support"
|
|
8739
|
+
"grounding an imported or instantiated model that floats or sinks into its support",
|
|
8740
|
+
"lifting a prop that is sunk a few centimetres into the ground back onto it",
|
|
8741
|
+
"seating a prop without a collider (a fern, a bottle) on a PlaneMesh or other mesh-only ground"
|
|
7109
8742
|
],
|
|
7110
8743
|
"facets": {
|
|
7111
8744
|
"lifecycle": [
|
|
@@ -7128,7 +8761,8 @@
|
|
|
7128
8761
|
"tool/test-placement",
|
|
7129
8762
|
"tool/align-distribute-3d",
|
|
7130
8763
|
"tool/world-snapshot",
|
|
7131
|
-
"tool/set-prop"
|
|
8764
|
+
"tool/set-prop",
|
|
8765
|
+
"tool/starcast"
|
|
7132
8766
|
],
|
|
7133
8767
|
"skills": [
|
|
7134
8768
|
"skill/world-building-3d"
|
|
@@ -7625,13 +9259,15 @@
|
|
|
7625
9259
|
{
|
|
7626
9260
|
"id": "tool/world-snapshot",
|
|
7627
9261
|
"kind": "tool",
|
|
7628
|
-
"version": "1.0
|
|
7629
|
-
"content_hash": "
|
|
7630
|
-
"summary": "
|
|
9262
|
+
"version": "1.1.0",
|
|
9263
|
+
"content_hash": "09d31f36f56fb04eefcd8d4c7b875e320a7525e75659f4a022ca8c5782982d58",
|
|
9264
|
+
"summary": "Structured scene snapshot (paths, transforms, world AABBs, fingerprints, counts), filterable by subtree, class and field; the read around every mutation.",
|
|
7631
9265
|
"use_when": [
|
|
7632
9266
|
"taking a diffable baseline before a mutation batch, or verifying transforms/AABBs/fingerprints after one",
|
|
7633
9267
|
"\"where exactly is everything in this scene?\" — positions, sizes, bounds",
|
|
7634
|
-
"\"are these two props overlapping?\" / \"is anything floating?\""
|
|
9268
|
+
"\"are these two props overlapping?\" / \"is anything floating?\"",
|
|
9269
|
+
"\"where did the pieces of House3 land?\" — path_prefix + fields:[pos, aabb] reads one subtree cheaply",
|
|
9270
|
+
"counting instances per class in one subtree (matched_counts)"
|
|
7635
9271
|
],
|
|
7636
9272
|
"facets": {
|
|
7637
9273
|
"lifecycle": [
|
|
@@ -7704,6 +9340,55 @@
|
|
|
7704
9340
|
"credentials": false,
|
|
7705
9341
|
"publish": false
|
|
7706
9342
|
}
|
|
9343
|
+
},
|
|
9344
|
+
{
|
|
9345
|
+
"id": "tool/zoom",
|
|
9346
|
+
"kind": "tool",
|
|
9347
|
+
"version": "1.0.0",
|
|
9348
|
+
"content_hash": "89aa4303b4c395883ffbc34ca9aa9896fd7bbc75ed23f9d3993550c17ab725ea",
|
|
9349
|
+
"summary": "High-resolution close-up of exactly a frame region or of mark N, rendered as the exact sub-frustum at full resolution (real detail, not upscaled pixels).",
|
|
9350
|
+
"use_when": [
|
|
9351
|
+
"checking seams, gaps, floating pieces, texture resolution or tiling up close",
|
|
9352
|
+
"looking closer at a numbered mark from a marks render (summer_frame_nodes marks:true, or summer_screenshot marks at the same size)",
|
|
9353
|
+
"inspecting a region a difference map or debug view flagged"
|
|
9354
|
+
],
|
|
9355
|
+
"facets": {
|
|
9356
|
+
"lifecycle": [
|
|
9357
|
+
"build"
|
|
9358
|
+
],
|
|
9359
|
+
"domains": [
|
|
9360
|
+
"verification",
|
|
9361
|
+
"scenes",
|
|
9362
|
+
"3d"
|
|
9363
|
+
],
|
|
9364
|
+
"modalities": [
|
|
9365
|
+
"scenes"
|
|
9366
|
+
]
|
|
9367
|
+
},
|
|
9368
|
+
"compatibility": {
|
|
9369
|
+
"engine": ">=4.6"
|
|
9370
|
+
},
|
|
9371
|
+
"related": {
|
|
9372
|
+
"tools": [
|
|
9373
|
+
"tool/frame-nodes",
|
|
9374
|
+
"tool/screenshot",
|
|
9375
|
+
"tool/debug-views",
|
|
9376
|
+
"tool/shot-sheet"
|
|
9377
|
+
],
|
|
9378
|
+
"skills": [
|
|
9379
|
+
"skill/verifying-scenes"
|
|
9380
|
+
]
|
|
9381
|
+
},
|
|
9382
|
+
"status": "preview",
|
|
9383
|
+
"mcp_tool_name": "summer_zoom",
|
|
9384
|
+
"remote": false,
|
|
9385
|
+
"authority": {
|
|
9386
|
+
"filesystem": true,
|
|
9387
|
+
"editor_mutation": false,
|
|
9388
|
+
"network": false,
|
|
9389
|
+
"credentials": false,
|
|
9390
|
+
"publish": false
|
|
9391
|
+
}
|
|
7707
9392
|
}
|
|
7708
9393
|
]
|
|
7709
9394
|
}
|