summer-engine 3.8.0 → 4.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 -13
- package/.claude-plugin/plugin.json +24 -22
- package/.codex-plugin/plugin.json +18 -22
- package/.cursor-plugin/plugin.json +8 -14
- package/.factory-plugin/plugin.json +6 -13
- package/AGENTS.md +19 -12
- package/CHANGELOG.md +133 -0
- package/GEMINI.md +3 -3
- package/README.md +118 -37
- package/assets/icon.png +0 -0
- package/commands/start.md +71 -0
- package/commands/summer.md +3 -2
- package/dist/cli/banner.js +3 -0
- package/dist/cli/commands/config.js +3 -2
- package/dist/cli/commands/create.js +12 -3
- package/dist/cli/commands/list.d.ts +5 -0
- package/dist/cli/commands/list.js +30 -13
- package/dist/cli/commands/login.d.ts +27 -0
- package/dist/cli/commands/login.js +58 -12
- package/dist/cli/commands/memory.js +6 -2
- package/dist/cli/commands/ops.d.ts +64 -0
- package/dist/cli/commands/ops.js +329 -0
- package/dist/cli/commands/setup.d.ts +4 -0
- package/dist/cli/commands/setup.js +254 -26
- package/dist/cli/commands/skills.js +28 -11
- package/dist/cli/commands/status.d.ts +26 -0
- package/dist/cli/commands/status.js +36 -21
- package/dist/cli/index.js +7 -0
- package/dist/core/agent-host.d.ts +65 -0
- package/dist/core/agent-host.js +193 -0
- package/dist/core/capabilities/agent-playbook.d.ts +3 -0
- package/dist/core/capabilities/agent-playbook.js +54 -2
- package/dist/core/capabilities/apps.d.ts +33 -10
- package/dist/core/capabilities/apps.js +25 -12
- package/dist/core/capabilities/audit/args.d.ts +6 -6
- package/dist/core/capabilities/doctor.d.ts +3 -0
- package/dist/core/capabilities/doctor.js +20 -15
- package/dist/core/capabilities/fabricate-mesh.d.ts +4 -4
- package/dist/core/capabilities/game-task-plan.d.ts +12 -6
- package/dist/core/capabilities/game-task-plan.js +80 -5
- package/dist/core/capabilities/hdri-import.d.ts +2 -2
- package/dist/core/capabilities/motion-generation.d.ts +2 -2
- package/dist/core/capabilities/motion-generation.js +2 -2
- package/dist/core/capabilities/navigation/open.d.ts +6 -2
- package/dist/core/capabilities/navigation/open.js +3 -0
- package/dist/core/capabilities/placement.d.ts +23 -23
- package/dist/core/capabilities/publish-build.js +2 -0
- package/dist/core/capabilities/runtime-control.d.ts +42 -42
- package/dist/core/capabilities/scene-script-target.d.ts +17 -0
- package/dist/core/capabilities/scene-script-target.js +70 -0
- package/dist/core/capabilities/seeing/args.d.ts +16 -16
- package/dist/core/capabilities/sfx-choices.d.ts +4 -0
- package/dist/core/capabilities/sfx-choices.js +13 -6
- package/dist/core/capabilities/tool-dispatch.d.ts +12 -3
- package/dist/core/capabilities/tool-dispatch.js +81 -46
- package/dist/core/capabilities/ui-control.d.ts +2 -2
- package/dist/core/capabilities/world-snapshot.d.ts +4 -4
- package/dist/core/embeddings.d.ts +2 -0
- package/dist/core/embeddings.js +1 -1
- package/dist/core/error-codes.d.ts +62 -0
- package/dist/core/error-codes.js +97 -0
- package/dist/core/format.d.ts +2 -0
- package/dist/core/format.js +2 -1
- package/dist/core/hosted-mcp.d.ts +22 -0
- package/dist/core/hosted-mcp.js +56 -1
- package/dist/core/library-read.js +5 -0
- package/dist/core/library-search.d.ts +2 -2
- package/dist/core/library-search.js +2 -1
- package/dist/core/oauth.js +4 -0
- package/dist/core/ops/areas.d.ts +11 -0
- package/dist/core/ops/areas.js +24 -0
- package/dist/core/ops/catalog.d.ts +45 -0
- package/dist/core/ops/catalog.js +157 -0
- package/dist/core/ops/cloud.d.ts +64 -0
- package/dist/core/ops/cloud.js +198 -0
- package/dist/core/ops/contract.d.ts +120 -0
- package/dist/core/ops/contract.js +134 -0
- package/dist/core/ops/engine-answer.d.ts +25 -0
- package/dist/core/ops/engine-answer.js +117 -0
- package/dist/core/ops/engine.d.ts +55 -0
- package/dist/core/ops/engine.js +649 -0
- package/dist/core/ops/public-catalog.d.ts +48 -0
- package/dist/core/ops/public-catalog.js +56 -0
- package/dist/core/ops/save-files.d.ts +78 -0
- package/dist/core/ops/save-files.js +419 -0
- package/dist/core/ops/search.d.ts +8 -0
- package/dist/core/ops/search.js +187 -0
- package/dist/core/skills-registry.d.ts +16 -1
- package/dist/core/skills-registry.js +35 -2
- package/dist/core/telemetry.d.ts +32 -0
- package/dist/core/telemetry.js +38 -10
- package/dist/core/tool-profiles.d.ts +25 -0
- package/dist/core/tool-profiles.js +41 -0
- package/dist/installer/agent-config.d.ts +17 -4
- package/dist/installer/agent-config.js +27 -6
- package/dist/installer/agent-table.d.ts +12 -0
- package/dist/installer/agent-table.js +33 -9
- package/dist/installer/cli-permissions.d.ts +65 -0
- package/dist/installer/cli-permissions.js +182 -0
- package/dist/installer/setup.d.ts +4 -0
- package/dist/installer/setup.js +12 -4
- package/dist/installer/skills-refresh.d.ts +29 -0
- package/dist/installer/skills-refresh.js +261 -0
- package/dist/installer/version-check.d.ts +51 -11
- package/dist/installer/version-check.js +147 -37
- package/dist/mcp/command.js +7 -0
- package/dist/mcp/hosted-mount.d.ts +27 -2
- package/dist/mcp/hosted-mount.js +53 -23
- package/dist/mcp/legacy-toolset.d.ts +27 -0
- package/dist/mcp/legacy-toolset.js +43 -0
- package/dist/mcp/ops-surface.d.ts +59 -0
- package/dist/mcp/ops-surface.js +453 -0
- package/dist/mcp/server.d.ts +45 -11
- package/dist/mcp/server.js +263 -89
- package/dist/mcp/tool-results.d.ts +26 -0
- package/dist/mcp/tool-results.js +81 -0
- package/dist/mcp/tool-surface.d.ts +65 -0
- package/dist/mcp/tool-surface.js +317 -0
- package/dist/mcp/tools/app-tools.js +9 -2
- package/dist/mcp/tools/asset-tools.js +55 -53
- package/dist/mcp/tools/audit-tools.js +21 -21
- package/dist/mcp/tools/debug-tools.js +6 -6
- package/dist/mcp/tools/fabricate-tools.js +6 -6
- package/dist/mcp/tools/generate-tools.js +76 -70
- package/dist/mcp/tools/project-tools.d.ts +9 -4
- package/dist/mcp/tools/project-tools.js +16 -10
- package/dist/mcp/tools/scene-tools.js +12 -23
- package/dist/mcp/tools/script-tools.js +9 -5
- package/dist/mcp/tools/with-engine.d.ts +6 -0
- package/dist/mcp/tools/with-engine.js +19 -0
- package/dist/project-memory/agent-instructions.d.ts +47 -0
- package/dist/project-memory/agent-instructions.js +226 -0
- package/gemini-extension.json +6 -13
- package/hooks/pre-commit-doctor.sh +5 -4
- package/hooks/session-start.sh +24 -28
- package/integrations/README.md +1 -1
- package/integrations/claude/README.md +6 -0
- package/integrations/claude/manifest-target.json +4 -0
- package/integrations/claude-desktop/README.md +1 -1
- package/integrations/copilot-jetbrains/README.md +1 -1
- package/integrations/gemini/README.md +11 -0
- package/integrations/junie/README.md +1 -1
- package/integrations/lm-studio/README.md +1 -1
- package/integrations/trae/README.md +1 -1
- package/integrations/visual-studio/README.md +1 -1
- package/integrations/windsurf/README.md +1 -1
- package/library/references/mcp-tools-reference/mcp-tools-reference.md +79 -51
- package/library/references/mcp-tools-reference/resource.yaml +1 -1
- package/library/references/product-map/resource.yaml +2 -2
- package/library/skills/3d-lighting/SKILL.md +69 -28
- package/library/skills/3d-lighting/resource.yaml +1 -1
- package/library/skills/README.md +121 -118
- package/library/skills/adaptive-music/SKILL.md +40 -23
- package/library/skills/adaptive-music/resource.yaml +1 -1
- package/library/skills/agent-playtesting/SKILL.md +23 -1
- package/library/skills/agent-playtesting/resource.yaml +1 -1
- package/library/skills/ai-characters-in-games/SKILL.md +16 -1
- package/library/skills/ai-characters-in-games/resource.yaml +1 -1
- package/library/skills/ambient-bed/SKILL.md +38 -13
- package/library/skills/ambient-bed/resource.yaml +1 -1
- package/library/skills/animated-loop/SKILL.md +60 -32
- package/library/skills/animated-loop/resource.yaml +1 -1
- package/library/skills/animation-tree/SKILL.md +27 -1
- package/library/skills/animation-tree/resource.yaml +1 -1
- package/library/skills/art-direction/SKILL.md +17 -3
- package/library/skills/art-direction/resource.yaml +1 -1
- package/library/skills/asset-strategy/SKILL.md +51 -4
- package/library/skills/asset-strategy/resource.yaml +2 -1
- package/library/skills/audio-direction/SKILL.md +26 -10
- package/library/skills/audio-direction/resource.yaml +1 -1
- package/library/skills/auto-fire-targeting/SKILL.md +15 -1
- package/library/skills/auto-fire-targeting/resource.yaml +1 -1
- package/library/skills/bounded-engine-runs/SKILL.md +1 -1
- package/library/skills/bounded-engine-runs/resource.yaml +1 -1
- package/library/skills/brainstorm-game/SKILL.md +14 -1
- package/library/skills/brainstorm-game/resource.yaml +1 -1
- package/library/skills/brainstorming/SKILL.md +1 -1
- package/library/skills/brainstorming/resource.yaml +1 -1
- package/library/skills/browse-templates/SKILL.md +11 -1
- package/library/skills/browse-templates/resource.yaml +1 -1
- package/library/skills/camera-rigs/SKILL.md +22 -2
- package/library/skills/camera-rigs/resource.yaml +1 -1
- package/library/skills/celeste-momentum-platforming/resource.yaml +1 -0
- package/library/skills/character-animation-wiring/SKILL.md +28 -4
- package/library/skills/character-animation-wiring/resource.yaml +1 -1
- package/library/skills/character-model/SKILL.md +83 -47
- package/library/skills/character-model/resource.yaml +1 -1
- package/library/skills/character-movement/SKILL.md +27 -3
- package/library/skills/character-movement/resource.yaml +1 -1
- package/library/skills/character-portrait/SKILL.md +39 -19
- package/library/skills/character-portrait/resource.yaml +1 -1
- package/library/skills/cinematic-cutscene/SKILL.md +79 -46
- package/library/skills/cinematic-cutscene/resource.yaml +1 -1
- package/library/skills/combat-basics/SKILL.md +20 -1
- package/library/skills/combat-basics/resource.yaml +1 -1
- package/library/skills/compatibility-renderer-traps/SKILL.md +12 -1
- package/library/skills/compatibility-renderer-traps/resource.yaml +1 -1
- package/library/skills/concept-art/SKILL.md +29 -12
- package/library/skills/concept-art/resource.yaml +1 -1
- package/library/skills/concept-to-level/SKILL.md +258 -0
- package/library/skills/concept-to-level/references/technical-rules.md +150 -0
- package/library/skills/concept-to-level/resource.yaml +44 -0
- package/library/skills/create-asset-sheet/SKILL.md +37 -13
- package/library/skills/create-asset-sheet/resource.yaml +1 -1
- package/library/skills/debug/SKILL.md +34 -2
- package/library/skills/debug/resource.yaml +1 -1
- package/library/skills/debugging-game-feel/SKILL.md +13 -1
- package/library/skills/debugging-game-feel/resource.yaml +1 -1
- package/library/skills/design-level/SKILL.md +40 -35
- package/library/skills/design-level/resource.yaml +1 -1
- package/library/skills/design-mechanic/SKILL.md +18 -1
- package/library/skills/design-mechanic/resource.yaml +1 -1
- package/library/skills/design-npc/SKILL.md +43 -24
- package/library/skills/design-npc/resource.yaml +1 -1
- package/library/skills/diagnosing-perf-regressions/SKILL.md +13 -1
- package/library/skills/diagnosing-perf-regressions/resource.yaml +1 -1
- package/library/skills/driving-the-editor-ui/SKILL.md +24 -1
- package/library/skills/driving-the-editor-ui/resource.yaml +1 -1
- package/library/skills/environment-kit/SKILL.md +43 -16
- package/library/skills/environment-kit/resource.yaml +1 -1
- package/library/skills/export-and-ship/SKILL.md +29 -6
- package/library/skills/export-and-ship/resource.yaml +1 -1
- package/library/skills/fabricating-assets/SKILL.md +30 -7
- package/library/skills/fabricating-assets/resource.yaml +3 -3
- package/library/skills/facial-and-lipsync/SKILL.md +36 -15
- package/library/skills/facial-and-lipsync/resource.yaml +1 -1
- package/library/skills/fps-controller/SKILL.md +50 -41
- package/library/skills/fps-controller/resource.yaml +1 -1
- package/library/skills/game-feel/SKILL.md +34 -8
- package/library/skills/game-feel/resource.yaml +1 -1
- package/library/skills/gameskill/SKILL.md +15 -4
- package/library/skills/gameskill/resource.yaml +1 -1
- package/library/skills/gdscript-patterns/SKILL.md +16 -1
- package/library/skills/gdscript-patterns/resource.yaml +1 -1
- package/library/skills/generate-motion/SKILL.md +51 -21
- package/library/skills/generate-motion/resource.yaml +1 -1
- package/library/skills/godogen-visual-proof-game-generation/SKILL.md +18 -1
- package/library/skills/godogen-visual-proof-game-generation/resource.yaml +1 -0
- package/library/skills/grow-analytics/SKILL.md +13 -3
- package/library/skills/grow-analytics/resource.yaml +1 -1
- package/library/skills/headless-scripting/SKILL.md +14 -1
- package/library/skills/headless-scripting/resource.yaml +1 -1
- package/library/skills/in-game-purchases/SKILL.md +12 -1
- package/library/skills/in-game-purchases/resource.yaml +1 -1
- package/library/skills/instantiate-asset-pack/SKILL.md +19 -2
- package/library/skills/instantiate-asset-pack/resource.yaml +1 -1
- package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +1 -0
- package/library/skills/make-game/SKILL.md +33 -4
- package/library/skills/make-game/references/2d-platformer.md +1 -1
- package/library/skills/make-game/references/3d-fps.md +1 -1
- package/library/skills/make-game/references/3d-horror.md +1 -1
- package/library/skills/make-game/references/3d-third-person.md +2 -2
- package/library/skills/make-game/resource.yaml +1 -1
- package/library/skills/multiplayer/SKILL.md +13 -1
- package/library/skills/multiplayer/resource.yaml +1 -1
- package/library/skills/multiplayer-movement/SKILL.md +19 -1
- package/library/skills/multiplayer-movement/resource.yaml +1 -1
- package/library/skills/multiplayer-project/SKILL.md +18 -1
- package/library/skills/multiplayer-project/resource.yaml +1 -1
- package/library/skills/multiplayer-publish/SKILL.md +25 -7
- package/library/skills/multiplayer-publish/resource.yaml +3 -3
- package/library/skills/multiplayer-state/SKILL.md +17 -1
- package/library/skills/multiplayer-state/resource.yaml +1 -1
- package/library/skills/multiplayer-testing/SKILL.md +16 -1
- package/library/skills/multiplayer-testing/resource.yaml +1 -1
- package/library/skills/music-track/SKILL.md +38 -13
- package/library/skills/music-track/resource.yaml +1 -1
- package/library/skills/navigate-summer/SKILL.md +26 -9
- package/library/skills/navigate-summer/resource.yaml +1 -1
- package/library/skills/new-project/SKILL.md +12 -1
- package/library/skills/new-project/resource.yaml +1 -1
- package/library/skills/organic-model/SKILL.md +48 -18
- package/library/skills/organic-model/resource.yaml +1 -1
- package/library/skills/pixel-art/SKILL.md +42 -23
- package/library/skills/pixel-art/resource.yaml +1 -1
- package/library/skills/play/SKILL.md +19 -1
- package/library/skills/play/resource.yaml +1 -1
- package/library/skills/playtesting-a-feature/SKILL.md +24 -1
- package/library/skills/playtesting-a-feature/resource.yaml +1 -1
- package/library/skills/procedural-animation/SKILL.md +38 -16
- package/library/skills/procedural-animation/resource.yaml +1 -1
- package/library/skills/prop-model/SKILL.md +48 -19
- package/library/skills/prop-model/resource.yaml +1 -1
- package/library/skills/psx-retro-rendering/resource.yaml +1 -0
- package/library/skills/publish-your-game/SKILL.md +43 -6
- package/library/skills/publish-your-game/resource.yaml +3 -3
- package/library/skills/realtime-wet-surfaces/resource.yaml +1 -0
- package/library/skills/release-readiness/SKILL.md +13 -1
- package/library/skills/release-readiness/resource.yaml +1 -1
- package/library/skills/remote-deploy/SKILL.md +15 -1
- package/library/skills/remote-deploy/resource.yaml +1 -1
- package/library/skills/retarget/SKILL.md +43 -20
- package/library/skills/retarget/resource.yaml +1 -1
- package/library/skills/running-in-the-cloud/SKILL.md +11 -1
- package/library/skills/running-in-the-cloud/resource.yaml +1 -1
- package/library/skills/save-load/SKILL.md +16 -1
- package/library/skills/save-load/resource.yaml +1 -1
- package/library/skills/scene-composition/SKILL.md +18 -1
- package/library/skills/scene-composition/resource.yaml +1 -1
- package/library/skills/scene-hierarchy-design/SKILL.md +26 -2
- package/library/skills/scene-hierarchy-design/resource.yaml +1 -1
- package/library/skills/scene-scripting/SKILL.md +96 -636
- package/library/skills/scene-scripting/references/ctx-api.md +184 -0
- package/library/skills/scene-scripting/references/recipes-2d-ui.md +193 -0
- package/library/skills/scene-scripting/references/recipes-3d.md +280 -0
- package/library/skills/scene-scripting/resource.yaml +4 -4
- package/library/skills/scene-to-level/SKILL.md +24 -2
- package/library/skills/scene-to-level/resource.yaml +1 -1
- package/library/skills/skill-create/resource.yaml +1 -0
- package/library/skills/skill-improve/resource.yaml +1 -0
- package/library/skills/skill-test/SKILL.md +12 -2
- package/library/skills/skill-test/resource.yaml +1 -0
- package/library/skills/skintokens-auto-rigging/resource.yaml +1 -0
- package/library/skills/skybox-panorama/SKILL.md +47 -21
- package/library/skills/skybox-panorama/resource.yaml +1 -1
- package/library/skills/sound-effect/SKILL.md +52 -20
- package/library/skills/sound-effect/resource.yaml +1 -1
- package/library/skills/spatial-placement/SKILL.md +44 -9
- package/library/skills/spatial-placement/resource.yaml +1 -1
- package/library/skills/sprite-sheet/SKILL.md +55 -27
- package/library/skills/sprite-sheet/resource.yaml +1 -1
- package/library/skills/store-art/SKILL.md +14 -3
- package/library/skills/store-art/resource.yaml +2 -2
- package/library/skills/store-listing/SKILL.md +13 -3
- package/library/skills/store-listing/resource.yaml +2 -2
- package/library/skills/summer-analytics/SKILL.md +22 -5
- package/library/skills/summer-analytics/resource.yaml +2 -2
- package/library/skills/summer-apps/SKILL.md +77 -32
- package/library/skills/summer-apps/manifest.md +1 -1
- package/library/skills/summer-apps/minimal-app.md +7 -7
- package/library/skills/summer-apps/resource.yaml +1 -1
- package/library/skills/summer-apps/sdk-reference.md +5 -5
- package/library/skills/summer-apps-design/SKILL.md +1 -1
- package/library/skills/summer-apps-design/resource.yaml +1 -1
- package/library/skills/summer-assets/SKILL.md +86 -0
- package/library/skills/summer-assets/resource.yaml +34 -0
- package/library/skills/summer-cli/SKILL.md +133 -0
- package/library/skills/summer-cli/resource.yaml +31 -0
- package/library/skills/summer-friends/SKILL.md +14 -0
- package/library/skills/summer-leaderboards/SKILL.md +16 -0
- package/library/skills/summer-match-results/SKILL.md +17 -0
- package/library/skills/summer-matchmaking/SKILL.md +17 -0
- package/library/skills/summer-parties/SKILL.md +14 -0
- package/library/skills/summer-player-data/SKILL.md +14 -0
- package/library/skills/summer-store/SKILL.md +16 -1
- package/library/skills/summer-world-chat/SKILL.md +14 -0
- package/library/skills/summer-world-saves/SKILL.md +14 -0
- package/library/skills/text-to-motion/SKILL.md +45 -23
- package/library/skills/text-to-motion/prompts-and-controls.md +5 -5
- package/library/skills/text-to-motion/resource.yaml +1 -1
- package/library/skills/text-to-motion/rigging-for-text-motion.md +2 -2
- package/library/skills/tileable-texture/SKILL.md +37 -15
- package/library/skills/tileable-texture/resource.yaml +1 -1
- package/library/skills/trailer-shot/SKILL.md +46 -24
- package/library/skills/trailer-shot/resource.yaml +1 -1
- package/library/skills/tune-performance/SKILL.md +32 -6
- package/library/skills/tune-performance/resource.yaml +1 -1
- package/library/skills/ui-basics/SKILL.md +55 -36
- package/library/skills/ui-basics/resource.yaml +1 -1
- package/library/skills/ui-graphics/SKILL.md +64 -38
- package/library/skills/ui-graphics/resource.yaml +1 -1
- package/library/skills/use-widget-asset/SKILL.md +15 -1
- package/library/skills/use-widget-asset/resource.yaml +1 -1
- package/library/skills/using-summer/SKILL.md +32 -5
- package/library/skills/using-summer/resource.yaml +3 -2
- package/library/skills/vehicle-model/SKILL.md +92 -57
- package/library/skills/vehicle-model/resource.yaml +1 -1
- package/library/skills/verification-before-completion/SKILL.md +1 -1
- package/library/skills/verification-before-completion/resource.yaml +1 -1
- package/library/skills/verifying-scenes/SKILL.md +31 -2
- package/library/skills/verifying-scenes/resource.yaml +1 -1
- package/library/skills/vfx-dissolve/SKILL.md +21 -2
- package/library/skills/vfx-dissolve/resource.yaml +1 -1
- package/library/skills/vfx-fire/SKILL.md +41 -41
- package/library/skills/vfx-fire/resource.yaml +1 -1
- package/library/skills/vfx-hit-spark/SKILL.md +24 -1
- package/library/skills/vfx-hit-spark/resource.yaml +1 -1
- package/library/skills/vfx-lightning/SKILL.md +30 -16
- package/library/skills/vfx-lightning/resource.yaml +1 -1
- package/library/skills/vfx-magic-glow/SKILL.md +46 -32
- package/library/skills/vfx-magic-glow/resource.yaml +1 -1
- package/library/skills/vfx-muzzle-flash/SKILL.md +43 -35
- package/library/skills/vfx-muzzle-flash/resource.yaml +1 -1
- package/library/skills/vfx-smoke/SKILL.md +39 -31
- package/library/skills/vfx-smoke/resource.yaml +1 -1
- package/library/skills/vfx-water-ripple/SKILL.md +35 -31
- package/library/skills/vfx-water-ripple/resource.yaml +1 -1
- package/library/skills/voice-line/SKILL.md +87 -40
- package/library/skills/voice-line/resource.yaml +1 -1
- package/library/skills/web-and-touch-input/SKILL.md +20 -1
- package/library/skills/web-and-touch-input/resource.yaml +1 -1
- package/library/skills/web-compatibility-look/SKILL.md +21 -1
- package/library/skills/web-compatibility-look/resource.yaml +1 -1
- package/library/skills/world-building-3d/SKILL.md +29 -1
- package/library/skills/world-building-3d/resource.yaml +1 -1
- package/library/skills/writing-skills/resource.yaml +1 -0
- package/library/tools/add-node/GUIDE.md +14 -0
- package/library/tools/align-distribute-3d/GUIDE.md +7 -0
- package/library/tools/app-call/resource.yaml +1 -1
- package/library/tools/app-guide/resource.yaml +2 -2
- package/library/tools/app-page/resource.yaml +1 -1
- package/library/tools/app-screenshot/resource.yaml +19 -1
- package/library/tools/app-tools/resource.yaml +1 -1
- package/library/tools/attach-to-surface/GUIDE.md +15 -0
- package/library/tools/batch/GUIDE.md +27 -0
- package/library/tools/camera-bookmark/GUIDE.md +12 -0
- package/library/tools/capture-gameplay/GUIDE.md +3 -0
- package/library/tools/capture-gameplay/resource.yaml +3 -3
- package/library/tools/check-job/resource.yaml +1 -1
- package/library/tools/clear-console/GUIDE.md +3 -0
- package/library/tools/connect-ports/GUIDE.md +9 -0
- package/library/tools/connect-signal/GUIDE.md +14 -0
- package/library/tools/create-debug-report/GUIDE.md +10 -0
- package/library/tools/create-scene/GUIDE.md +10 -0
- package/library/tools/debug-views/GUIDE.md +7 -0
- package/library/tools/enable-plugin/GUIDE.md +3 -0
- package/library/tools/export-game/GUIDE.md +3 -0
- package/library/tools/export-game/resource.yaml +3 -3
- package/library/tools/export-templates/GUIDE.md +3 -0
- package/library/tools/fabricate-3d/GUIDE.md +19 -0
- package/library/tools/frame-nodes/GUIDE.md +9 -0
- package/library/tools/frame-shot/GUIDE.md +9 -0
- package/library/tools/game-control/GUIDE.md +9 -0
- package/library/tools/game-input/GUIDE.md +9 -0
- package/library/tools/game-probe/GUIDE.md +9 -0
- package/library/tools/generate-3d/resource.yaml +3 -3
- package/library/tools/generate-motion/resource.yaml +2 -2
- package/library/tools/get-console/GUIDE.md +9 -0
- package/library/tools/get-console/resource.yaml +5 -0
- package/library/tools/get-debugger-errors/GUIDE.md +7 -0
- package/library/tools/get-debugger-errors/resource.yaml +5 -0
- package/library/tools/get-debugger-warnings/GUIDE.md +7 -0
- package/library/tools/get-debugger-warnings/resource.yaml +5 -0
- package/library/tools/get-diagnostics/GUIDE.md +13 -0
- package/library/tools/get-project-context/GUIDE.md +25 -0
- package/library/tools/get-runtime-tree/GUIDE.md +7 -0
- package/library/tools/get-runtime-tree/resource.yaml +5 -0
- package/library/tools/get-scene-tree/GUIDE.md +11 -0
- package/library/tools/get-scene-tree/resource.yaml +5 -0
- package/library/tools/get-script-errors/GUIDE.md +5 -0
- package/library/tools/grep/GUIDE.md +11 -0
- package/library/tools/import-asset/GUIDE.md +8 -0
- package/library/tools/import-asset-by-id/GUIDE.md +12 -0
- package/library/tools/import-from-url/GUIDE.md +10 -0
- package/library/tools/import-from-url-batch/GUIDE.md +3 -0
- package/library/tools/import-hdri/GUIDE.md +16 -0
- package/library/tools/input-map-bind/GUIDE.md +11 -0
- package/library/tools/inspect-asset/GUIDE.md +14 -0
- package/library/tools/inspect-asset/resource.yaml +5 -0
- package/library/tools/inspect-node/GUIDE.md +11 -0
- package/library/tools/inspect-node/resource.yaml +5 -0
- package/library/tools/inspect-resource/GUIDE.md +7 -0
- package/library/tools/inspect-resource/resource.yaml +5 -0
- package/library/tools/inspect-runtime-node/GUIDE.md +7 -0
- package/library/tools/inspect-runtime-node/resource.yaml +5 -0
- package/library/tools/instantiate-scene/GUIDE.md +12 -0
- package/library/tools/is-running/GUIDE.md +3 -0
- package/library/tools/measure/GUIDE.md +8 -0
- package/library/tools/navigation-probe/GUIDE.md +9 -0
- package/library/tools/open/resource.yaml +2 -2
- package/library/tools/open-main-scene/GUIDE.md +6 -0
- package/library/tools/open-scene/GUIDE.md +8 -0
- package/library/tools/place-adjacent/GUIDE.md +7 -0
- package/library/tools/play/GUIDE.md +13 -0
- package/library/tools/project-setting/GUIDE.md +9 -0
- package/library/tools/publish-build/resource.yaml +6 -6
- package/library/tools/raycast/GUIDE.md +7 -0
- package/library/tools/read-file/GUIDE.md +10 -0
- package/library/tools/read-library/resource.yaml +5 -0
- package/library/tools/recent-events/GUIDE.md +7 -0
- package/library/tools/remove-node/GUIDE.md +3 -0
- package/library/tools/repeat-along/GUIDE.md +5 -0
- package/library/tools/replace-node/GUIDE.md +9 -0
- package/library/tools/replace-text/GUIDE.md +5 -0
- package/library/tools/run-editor-script/GUIDE.md +16 -0
- package/library/tools/run-script/GUIDE.md +30 -0
- package/library/tools/run-script/resource.yaml +6 -3
- package/library/tools/runtime-animate/GUIDE.md +7 -0
- package/library/tools/runtime-call/GUIDE.md +7 -0
- package/library/tools/runtime-set/GUIDE.md +9 -0
- package/library/tools/runtime-spawn/GUIDE.md +9 -0
- package/library/tools/save-scene/GUIDE.md +3 -0
- package/library/tools/scene-audit/GUIDE.md +29 -0
- package/library/tools/screenshot/GUIDE.md +17 -0
- package/library/tools/select-node/GUIDE.md +3 -0
- package/library/tools/set-prop/GUIDE.md +23 -0
- package/library/tools/set-resource-property/GUIDE.md +8 -0
- package/library/tools/shot-sheet/GUIDE.md +7 -0
- package/library/tools/snap-to-surface/GUIDE.md +17 -0
- package/library/tools/snapshot-diff/GUIDE.md +7 -0
- package/library/tools/starcast/GUIDE.md +12 -0
- package/library/tools/stop/GUIDE.md +3 -0
- package/library/tools/test-placement/GUIDE.md +7 -0
- package/library/tools/ui-actions/GUIDE.md +12 -0
- package/library/tools/ui-activate/GUIDE.md +11 -0
- package/library/tools/ui-screenshot/GUIDE.md +9 -0
- package/library/tools/ui-tree/GUIDE.md +10 -0
- package/library/tools/wait-for-event/GUIDE.md +11 -0
- package/library/tools/world-snapshot/GUIDE.md +9 -0
- package/library/tools/write-file/GUIDE.md +5 -0
- package/library/tools/zoom/GUIDE.md +5 -0
- package/package.json +8 -5
- package/registry/generated/counts.json +2 -2
- package/registry/generated/gemini-extension.json +6 -13
- package/registry/generated/index.json +482 -349
- package/registry/generated/marketplace.claude.json +2 -13
- package/registry/generated/plugin.claude-directory.json +168 -0
- package/registry/generated/plugin.claude.json +24 -22
- package/registry/generated/plugin.codex.json +18 -22
- package/registry/generated/plugin.cursor.json +8 -14
- package/registry/generated/plugin.factory.json +6 -13
- package/registry/generated/server.json +43 -0
- package/registry/generated/skills-index.md +121 -118
- package/registry/generated/skills-registry.json +167 -115
- package/registry/operations/fixtures/invalid-deprecated-without-replacement.json +60 -0
- package/registry/operations/fixtures/invalid-name.json +60 -0
- package/registry/operations/fixtures/invalid-publish-without-owner.json +82 -0
- package/registry/operations/fixtures/invalid-spend-without-estimate.json +42 -0
- package/registry/operations/fixtures/invalid-unknown-field.json +61 -0
- package/registry/operations/fixtures/valid-player-facing.json +82 -0
- package/registry/operations/fixtures/valid-read.json +60 -0
- package/registry/operations/fixtures/valid-spend.json +43 -0
- package/registry/operations/legacy-names.json +1241 -0
- package/registry/operations/public-catalog.json +33160 -0
- package/registry/schemas/operation.schema.json +318 -0
- package/registry/schemas/skill.schema.json +4 -0
- package/CLAUDE.md +0 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vfx-lightning
|
|
3
|
-
description: "Lightning bolt effect
|
|
3
|
+
description: "Lightning bolt effect: a jagged procedural path with a glow shader, end sparks and screen shake."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: visual-effects
|
|
@@ -222,31 +222,22 @@ Recommended: register one `LightningCaster` as an autoload (`/root/Lightning`) s
|
|
|
222
222
|
|
|
223
223
|
Place one `LightningCaster` per "world" (or autoload it), then call from gameplay code.
|
|
224
224
|
|
|
225
|
-
|
|
226
|
-
|
|
225
|
+
Write the two files, then place the caster with ONE `summer_run_script` call
|
|
226
|
+
with an explicit `scenePath` — one transactional run, and several casters or
|
|
227
|
+
anything computed is a loop in the same script:
|
|
227
228
|
|
|
228
229
|
```
|
|
229
230
|
summer_write_file(path="res://addons/vfx/lightning/lightning.gdshader", content="<section 2>", create_only=true)
|
|
230
231
|
summer_write_file(path="res://addons/vfx/lightning/lightning_caster.gd", content="<section 3>", create_only=true)
|
|
231
232
|
|
|
232
|
-
|
|
233
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/LightningCaster", key="script", value="res://addons/vfx/lightning/lightning_caster.gd")
|
|
234
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/LightningCaster", key="bolt_color", value="Color(0.55, 0.75, 1.0)")
|
|
235
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/LightningCaster", key="trauma_amount", value=0.6)
|
|
236
|
-
summer_save_scene(scenePath="res://main.tscn")
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
Or, on engines with `summer_run_script` (see `scene-scripting`), the two node
|
|
240
|
-
calls collapse into one transactional ctx script — worth it when placing several
|
|
241
|
-
casters or anything computed:
|
|
242
|
-
|
|
243
|
-
```gdscript
|
|
233
|
+
summer_run_script(scenePath="res://main.tscn", source="""
|
|
244
234
|
func run(ctx):
|
|
245
|
-
var caster
|
|
235
|
+
var caster = ctx.add_node("Node3D", "LightningCaster", ctx.find("World"))
|
|
246
236
|
caster.set_script(load("res://addons/vfx/lightning/lightning_caster.gd"))
|
|
247
237
|
caster.set("bolt_color", Color(0.55, 0.75, 1.0))
|
|
248
238
|
caster.set("trauma_amount", 0.6)
|
|
249
239
|
ctx.save_scene()
|
|
240
|
+
""")
|
|
250
241
|
```
|
|
251
242
|
|
|
252
243
|
Then verify — the caster `preload`s its own shader, so a shader that failed to write
|
|
@@ -415,3 +406,26 @@ After firing this recipe, suggest:
|
|
|
415
406
|
- `vfx-magic-glow` — pre-cast charge-up
|
|
416
407
|
- `vfx-muzzle-flash` — for the cast-release flash
|
|
417
408
|
- `game-feel` — full game-feel pairing
|
|
409
|
+
|
|
410
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
411
|
+
## From a shell
|
|
412
|
+
|
|
413
|
+
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
|
|
414
|
+
|
|
415
|
+
| In this skill | Command |
|
|
416
|
+
|---|---|
|
|
417
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
418
|
+
| `summer_create_scene` | `summer engine create-scene` |
|
|
419
|
+
| `summer_get_debugger_errors` | `summer engine get-debugger-errors` |
|
|
420
|
+
| `summer_get_script_errors` | `summer engine get-script-errors` |
|
|
421
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
422
|
+
| `summer_play` | `summer engine play` |
|
|
423
|
+
| `summer_project_setting` | `summer engine project-setting` |
|
|
424
|
+
| `summer_read_file` | `summer engine read-file` |
|
|
425
|
+
| `summer_run_script` | `summer engine run-script` |
|
|
426
|
+
| `summer_save_scene` | `summer engine save-scene` |
|
|
427
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
428
|
+
| `summer_set_resource_property` | `summer engine set-resource-property` |
|
|
429
|
+
| `summer_stop` | `summer engine stop` |
|
|
430
|
+
| `summer_write_file` | `summer engine write-file` |
|
|
431
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/vfx-lightning
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.3
|
|
4
|
-
summary: Lightning bolt effect
|
|
4
|
+
summary: "Lightning bolt effect: a jagged procedural path with a glow shader, end sparks and screen shake."
|
|
5
5
|
use_when:
|
|
6
6
|
- authoring a lightning bolt effect — chain lightning, electric attack, tesla coil, shock spell, energy beam
|
|
7
7
|
- a spell, weapon, or hazard needs a jagged electric arc with glow, endpoint sparks, and camera shake
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vfx-magic-glow
|
|
3
|
-
description: "Magic-glow effect
|
|
3
|
+
description: "Magic-glow effect: a pulsing OmniLight3D, drifting additive motes and an optional emission shader."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: visual-effects
|
|
@@ -195,42 +195,16 @@ Node3D ("MagicGlow") [script: magic_glow.gd]
|
|
|
195
195
|
|
|
196
196
|
### 4. Wire it in (MCP calls)
|
|
197
197
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
(not `property`) and only accepts a string, number, or boolean.
|
|
198
|
+
Write the script once, then wire each glow with ONE `summer_run_script` call
|
|
199
|
+
with an explicit `scenePath` — one transactional run instead of a chain of
|
|
200
|
+
`summer_set_prop` calls. For an enchanted sword:
|
|
202
201
|
|
|
203
202
|
```
|
|
204
203
|
summer_write_file(path="res://addons/vfx/magic-glow/magic_glow.gd", content="<section 2>", create_only=true)
|
|
205
204
|
|
|
206
|
-
|
|
207
|
-
summer_set_prop(scenePath="res://main.tscn", path="./Player/Hand/Sword/Glow", key="script", value="res://addons/vfx/magic-glow/magic_glow.gd")
|
|
208
|
-
summer_set_prop(scenePath="res://main.tscn", path="./Player/Hand/Sword/Glow", key="glow_color", value="Color(0.55, 0.85, 1.0)")
|
|
209
|
-
summer_set_prop(scenePath="res://main.tscn", path="./Player/Hand/Sword/Glow", key="light_energy_base", value=1.2)
|
|
210
|
-
summer_set_prop(scenePath="res://main.tscn", path="./Player/Hand/Sword/Glow", key="light_energy_amplitude", value=0.6)
|
|
211
|
-
summer_set_prop(scenePath="res://main.tscn", path="./Player/Hand/Sword/Glow", key="mote_count", value=16)
|
|
212
|
-
summer_set_prop(scenePath="res://main.tscn", path="./Player/Hand/Sword/Glow", key="mote_radius", value=0.20)
|
|
213
|
-
summer_set_prop(scenePath="res://main.tscn", path="./Player/Hand/Sword/Glow", key="pulse_source_mesh", value="../Blade")
|
|
214
|
-
summer_save_scene(scenePath="res://main.tscn")
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
For a soul gem on a pedestal:
|
|
218
|
-
|
|
219
|
-
```
|
|
220
|
-
summer_add_node(scenePath="res://main.tscn", parent="./World/Pedestal/SoulGem", type="Node3D", name="Glow")
|
|
221
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/Pedestal/SoulGem/Glow", key="glow_color", value="Color(0.85, 0.45, 1.0)")
|
|
222
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/Pedestal/SoulGem/Glow", key="pulse_hz", value=0.4)
|
|
223
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/Pedestal/SoulGem/Glow", key="mote_count", value=32)
|
|
224
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/Pedestal/SoulGem/Glow", key="mote_radius", value=0.30)
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
Either wiring block is also ONE ctx script on engines with `summer_run_script`
|
|
228
|
-
(see `scene-scripting`) — the eight `summer_set_prop` calls become one
|
|
229
|
-
transactional run, and computed placement (a glow per gem in a ring) becomes a loop:
|
|
230
|
-
|
|
231
|
-
```gdscript
|
|
205
|
+
summer_run_script(scenePath="res://main.tscn", source="""
|
|
232
206
|
func run(ctx):
|
|
233
|
-
var glow
|
|
207
|
+
var glow = ctx.add_node("Node3D", "Glow", ctx.find("Sword"))
|
|
234
208
|
glow.set_script(load("res://addons/vfx/magic-glow/magic_glow.gd"))
|
|
235
209
|
glow.set("glow_color", Color(0.55, 0.85, 1.0))
|
|
236
210
|
glow.set("light_energy_base", 1.2)
|
|
@@ -239,6 +213,23 @@ func run(ctx):
|
|
|
239
213
|
glow.set("mote_radius", 0.20)
|
|
240
214
|
glow.set("pulse_source_mesh", NodePath("../Blade"))
|
|
241
215
|
ctx.save_scene()
|
|
216
|
+
""")
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
For a soul gem on a pedestal (computed placement, such as a glow per gem in a
|
|
220
|
+
ring, is a loop in the same script):
|
|
221
|
+
|
|
222
|
+
```
|
|
223
|
+
summer_run_script(scenePath="res://main.tscn", source="""
|
|
224
|
+
func run(ctx):
|
|
225
|
+
var glow = ctx.add_node("Node3D", "Glow", ctx.find("SoulGem"))
|
|
226
|
+
glow.set_script(load("res://addons/vfx/magic-glow/magic_glow.gd"))
|
|
227
|
+
glow.set("glow_color", Color(0.85, 0.45, 1.0))
|
|
228
|
+
glow.set("pulse_hz", 0.4)
|
|
229
|
+
glow.set("mote_count", 32)
|
|
230
|
+
glow.set("mote_radius", 0.30)
|
|
231
|
+
ctx.save_scene()
|
|
232
|
+
""")
|
|
242
233
|
```
|
|
243
234
|
|
|
244
235
|
Judge the pulse with `summer_screenshot framing:"camera"` — emissive glow does not
|
|
@@ -428,3 +419,26 @@ After firing this recipe, suggest:
|
|
|
428
419
|
- `vfx-dissolve` — for summon arrival pairing
|
|
429
420
|
- `vfx-fire` — for the `magic-fire` variant
|
|
430
421
|
- `gdscript-patterns` — for the controller idioms (signals, exports, `@tool`)
|
|
422
|
+
|
|
423
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
424
|
+
## From a shell
|
|
425
|
+
|
|
426
|
+
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
|
|
427
|
+
|
|
428
|
+
| In this skill | Command |
|
|
429
|
+
|---|---|
|
|
430
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
431
|
+
| `summer_create_scene` | `summer engine create-scene` |
|
|
432
|
+
| `summer_get_debugger_errors` | `summer engine get-debugger-errors` |
|
|
433
|
+
| `summer_get_script_errors` | `summer engine get-script-errors` |
|
|
434
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
435
|
+
| `summer_play` | `summer engine play` |
|
|
436
|
+
| `summer_read_file` | `summer engine read-file` |
|
|
437
|
+
| `summer_run_script` | `summer engine run-script` |
|
|
438
|
+
| `summer_save_scene` | `summer engine save-scene` |
|
|
439
|
+
| `summer_screenshot` | `summer engine screenshot` |
|
|
440
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
441
|
+
| `summer_set_resource_property` | `summer engine set-resource-property` |
|
|
442
|
+
| `summer_stop` | `summer engine stop` |
|
|
443
|
+
| `summer_write_file` | `summer engine write-file` |
|
|
444
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/vfx-magic-glow
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.2
|
|
4
|
-
summary: Magic-glow effect
|
|
4
|
+
summary: "Magic-glow effect: a pulsing OmniLight3D, drifting additive motes and an optional emission shader."
|
|
5
5
|
use_when:
|
|
6
6
|
- authoring a magic-glow effect — enchanted item, soul gem, pulsing aura, rune glow, magical orb, wisp
|
|
7
7
|
- an item, altar, or portal should read as magical or important with a pulsing light and drifting motes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vfx-muzzle-flash
|
|
3
|
-
description: "Muzzle-flash effect
|
|
3
|
+
description: "Muzzle-flash effect: a one-shot ~80 ms burst at a gun barrel, from particles or a star-burst quad."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: visual-effects
|
|
@@ -201,54 +201,39 @@ Node3D ("MuzzleFlash") [script: muzzle_flash.gd]
|
|
|
201
201
|
|
|
202
202
|
Place the node at the **barrel tip** of the weapon. If your gun model has a `BarrelTip` Marker3D, parent there directly.
|
|
203
203
|
|
|
204
|
-
|
|
205
|
-
|
|
204
|
+
Write the two files, then mount the flash with ONE `summer_run_script` call with
|
|
205
|
+
an explicit `scenePath` — one transactional run, and mounting a flash on every
|
|
206
|
+
weapon in the scene is a loop instead of a chain of calls per gun:
|
|
206
207
|
|
|
207
208
|
```
|
|
208
209
|
summer_write_file(path="res://addons/vfx/muzzle-flash/muzzle_flash.gdshader", content="<section 2>", create_only=true)
|
|
209
210
|
summer_write_file(path="res://addons/vfx/muzzle-flash/muzzle_flash.gd", content="<section 3>", create_only=true)
|
|
210
211
|
|
|
211
|
-
|
|
212
|
-
summer_set_prop(scenePath="res://main.tscn", path="./Player/Weapon/BarrelTip/MuzzleFlash", key="script", value="res://addons/vfx/muzzle-flash/muzzle_flash.gd")
|
|
213
|
-
summer_set_prop(scenePath="res://main.tscn", path="./Player/Weapon/BarrelTip/MuzzleFlash", key="flash_size", value=0.6)
|
|
214
|
-
summer_set_prop(scenePath="res://main.tscn", path="./Player/Weapon/BarrelTip/MuzzleFlash", key="flash_duration", value=0.08)
|
|
215
|
-
summer_set_prop(scenePath="res://main.tscn", path="./Player/Weapon/BarrelTip/MuzzleFlash", key="light_energy", value=4.0)
|
|
216
|
-
summer_save_scene(scenePath="res://main.tscn")
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
Then in your weapon script, on `fire()`:
|
|
220
|
-
|
|
221
|
-
```gdscript
|
|
222
|
-
$BarrelTip/MuzzleFlash.fire()
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
Or connect the weapon's `fired` signal in the scene:
|
|
226
|
-
|
|
227
|
-
```
|
|
228
|
-
summer_connect_signal(scenePath="res://main.tscn", emitter="./Player/Weapon", signal="fired", receiver="./Player/Weapon/BarrelTip/MuzzleFlash", method="fire")
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
### 5a. One-script wiring (summer_run_script)
|
|
232
|
-
|
|
233
|
-
On engines with `summer_run_script` (see `scene-scripting`), the node calls
|
|
234
|
-
above are ONE transactional ctx script — and mounting a flash on every weapon in the
|
|
235
|
-
scene becomes a loop instead of a CRUD chain per gun:
|
|
236
|
-
|
|
237
|
-
```gdscript
|
|
212
|
+
summer_run_script(scenePath="res://main.tscn", source="""
|
|
238
213
|
func run(ctx):
|
|
239
|
-
var tip
|
|
240
|
-
var flash
|
|
214
|
+
var tip = ctx.find("BarrelTip")
|
|
215
|
+
var flash = ctx.add_node("Node3D", "MuzzleFlash", tip)
|
|
241
216
|
flash.set_script(load("res://addons/vfx/muzzle-flash/muzzle_flash.gd"))
|
|
242
217
|
flash.set("flash_size", 0.6)
|
|
243
218
|
flash.set("flash_duration", 0.08)
|
|
244
219
|
flash.set("light_energy", 4.0)
|
|
245
|
-
var weapon
|
|
220
|
+
var weapon = ctx.find("Weapon")
|
|
246
221
|
weapon.connect("fired", Callable(flash, "fire"), CONNECT_PERSIST)
|
|
247
|
-
# CONNECT_PERSIST is required
|
|
222
|
+
# CONNECT_PERSIST is required: a bare connect() works live but is NOT saved
|
|
248
223
|
ctx.save_scene()
|
|
224
|
+
""")
|
|
249
225
|
```
|
|
250
226
|
|
|
251
|
-
|
|
227
|
+
Then in your weapon script, on `fire()`:
|
|
228
|
+
|
|
229
|
+
```gdscript
|
|
230
|
+
$BarrelTip/MuzzleFlash.fire()
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
The script above already connects the weapon's `fired` signal to the flash; the
|
|
234
|
+
one-call form is `summer_connect_signal(scenePath="res://main.tscn", emitter="./Player/Weapon", signal="fired", receiver="./Player/Weapon/BarrelTip/MuzzleFlash", method="fire")`.
|
|
235
|
+
|
|
236
|
+
### 5a. Verify
|
|
252
237
|
|
|
253
238
|
`muzzle_flash.gd` `preload`s its own shader, so a shader that failed to write takes
|
|
254
239
|
the script down at parse time. Check before firing a shot.
|
|
@@ -387,3 +372,26 @@ After firing this recipe, suggest:
|
|
|
387
372
|
- `vfx-hit-spark` — companion impact effect
|
|
388
373
|
- `vfx-lightning` — for energy weapons (replace the flash with a beam)
|
|
389
374
|
- `game-feel` — recoil + hit-stop wiring
|
|
375
|
+
|
|
376
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
377
|
+
## From a shell
|
|
378
|
+
|
|
379
|
+
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
|
|
380
|
+
|
|
381
|
+
| In this skill | Command |
|
|
382
|
+
|---|---|
|
|
383
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
384
|
+
| `summer_connect_signal` | `summer engine connect-signal` |
|
|
385
|
+
| `summer_create_scene` | `summer engine create-scene` |
|
|
386
|
+
| `summer_get_debugger_errors` | `summer engine get-debugger-errors` |
|
|
387
|
+
| `summer_get_script_errors` | `summer engine get-script-errors` |
|
|
388
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
389
|
+
| `summer_play` | `summer engine play` |
|
|
390
|
+
| `summer_read_file` | `summer engine read-file` |
|
|
391
|
+
| `summer_run_script` | `summer engine run-script` |
|
|
392
|
+
| `summer_save_scene` | `summer engine save-scene` |
|
|
393
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
394
|
+
| `summer_set_resource_property` | `summer engine set-resource-property` |
|
|
395
|
+
| `summer_stop` | `summer engine stop` |
|
|
396
|
+
| `summer_write_file` | `summer engine write-file` |
|
|
397
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/vfx-muzzle-flash
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.3
|
|
4
|
-
summary: Muzzle-flash effect
|
|
4
|
+
summary: "Muzzle-flash effect: a one-shot ~80 ms burst at a gun barrel, from particles or a star-burst quad."
|
|
5
5
|
use_when:
|
|
6
6
|
- authoring a muzzle-flash effect — gun fire, weapon flash, barrel flash, spell-cast burst at a hand
|
|
7
7
|
- a gun or spell-casting hand shoots with no visible flash at the barrel or palm
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vfx-smoke
|
|
3
|
-
description: "Smoke effect
|
|
3
|
+
description: "Smoke effect: a rising column or puff of soft particles with a noise and density falloff shader."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: visual-effects
|
|
@@ -228,42 +228,19 @@ child nodes, and `ParticleProcessMaterial` is a `Material` — you cannot
|
|
|
228
228
|
|
|
229
229
|
### 5. Wire it in (MCP calls)
|
|
230
230
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
231
|
+
Write the three files, then wire the emitter with ONE `summer_run_script` call
|
|
232
|
+
with an explicit `scenePath` — transactional, and it builds the QuadMesh +
|
|
233
|
+
ShaderMaterial resources directly instead of `.tres` sidecars. For chimney
|
|
234
|
+
smoke, parent the Smoke just above the heat source:
|
|
235
235
|
|
|
236
236
|
```
|
|
237
237
|
summer_write_file(path="res://addons/vfx/_building-blocks/noise-3d-fbm.gdshaderinc", content="<from this skill>", create_only=true)
|
|
238
238
|
summer_write_file(path="res://addons/vfx/smoke/smoke.gdshader", content="<section 2>", create_only=true)
|
|
239
239
|
summer_write_file(path="res://addons/vfx/smoke/smoke_controller.gd", content="<section 3>", create_only=true)
|
|
240
240
|
|
|
241
|
-
|
|
242
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/Cottage/Chimney/Smoke", key="script", value="res://addons/vfx/smoke/smoke_controller.gd")
|
|
243
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/Cottage/Chimney/Smoke", key="position", value="Vector3(0, 0.3, 0)")
|
|
244
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/Cottage/Chimney/Smoke", key="rise_height", value=4.0)
|
|
245
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/Cottage/Chimney/Smoke", key="particle_count", value=48)
|
|
246
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/Cottage/Chimney/Smoke", key="wind_direction", value="Vector3(0.4, 0, 0.1)")
|
|
247
|
-
summer_save_scene(scenePath="res://main.tscn")
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
For pairing with a fire:
|
|
251
|
-
|
|
252
|
-
```
|
|
253
|
-
summer_add_node(scenePath="res://main.tscn", parent="./World/Campfire", type="GPUParticles3D", name="Smoke")
|
|
254
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/Campfire/Smoke", key="position", value="Vector3(0, 1.5, 0)") # above flame top
|
|
255
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/Campfire/Smoke", key="rise_height", value=3.0)
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
### 5a. One-script wiring (summer_run_script)
|
|
259
|
-
|
|
260
|
-
On engines with `summer_run_script` (see `scene-scripting`), the node wiring
|
|
261
|
-
above is ONE ctx script — transactional, and it builds the QuadMesh + ShaderMaterial
|
|
262
|
-
resources directly instead of `.tres` sidecars:
|
|
263
|
-
|
|
264
|
-
```gdscript
|
|
241
|
+
summer_run_script(scenePath="res://main.tscn", source="""
|
|
265
242
|
func run(ctx):
|
|
266
|
-
var smoke
|
|
243
|
+
var smoke = ctx.add_node("GPUParticles3D", "Smoke", ctx.find("Chimney"))
|
|
267
244
|
smoke.set_script(load("res://addons/vfx/smoke/smoke_controller.gd"))
|
|
268
245
|
smoke.process_material = ParticleProcessMaterial.new()
|
|
269
246
|
var quad := QuadMesh.new()
|
|
@@ -277,11 +254,16 @@ func run(ctx):
|
|
|
277
254
|
smoke.set("particle_count", 48)
|
|
278
255
|
smoke.set("wind_direction", Vector3(0.4, 0, 0.1))
|
|
279
256
|
ctx.save_scene()
|
|
257
|
+
""")
|
|
280
258
|
```
|
|
281
259
|
|
|
260
|
+
For pairing with a fire, run the same script with `ctx.find("Campfire")` as the
|
|
261
|
+
parent, `position = Vector3(0, 1.5, 0)` (above the flame top) and
|
|
262
|
+
`rise_height` 3.0.
|
|
263
|
+
|
|
282
264
|
Verify with `summer_snapshot_diff` (exactly one node added) and a `summer_screenshot`.
|
|
283
265
|
|
|
284
|
-
###
|
|
266
|
+
### 5a. Verify
|
|
285
267
|
|
|
286
268
|
The shader and the controller are compiled code. Check them before tuning anything.
|
|
287
269
|
|
|
@@ -466,3 +448,29 @@ After firing this recipe, suggest:
|
|
|
466
448
|
- `vfx-fire` — sister recipe, almost always paired
|
|
467
449
|
- `vfx-dissolve` — for ash particles after disintegration
|
|
468
450
|
- `gdscript-patterns` — for the controller idioms (signals, exports, `@tool`)
|
|
451
|
+
|
|
452
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
453
|
+
## From a shell
|
|
454
|
+
|
|
455
|
+
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
|
|
456
|
+
|
|
457
|
+
| In this skill | Command |
|
|
458
|
+
|---|---|
|
|
459
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
460
|
+
| `summer_create_scene` | `summer engine create-scene` |
|
|
461
|
+
| `summer_get_debugger_errors` | `summer engine get-debugger-errors` |
|
|
462
|
+
| `summer_get_script_errors` | `summer engine get-script-errors` |
|
|
463
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
464
|
+
| `summer_inspect_resource` | `summer engine inspect-resource` |
|
|
465
|
+
| `summer_play` | `summer engine play` |
|
|
466
|
+
| `summer_read_file` | `summer engine read-file` |
|
|
467
|
+
| `summer_run_script` | `summer engine run-script` |
|
|
468
|
+
| `summer_save_scene` | `summer engine save-scene` |
|
|
469
|
+
| `summer_screenshot` | `summer engine screenshot` |
|
|
470
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
471
|
+
| `summer_set_resource_property` | `summer engine set-resource-property` |
|
|
472
|
+
| `summer_snapshot_diff` | `summer engine snapshot-diff` |
|
|
473
|
+
| `summer_stop` | `summer engine stop` |
|
|
474
|
+
| `summer_world_snapshot` | `summer engine world-snapshot` |
|
|
475
|
+
| `summer_write_file` | `summer engine write-file` |
|
|
476
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/vfx-smoke
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.2
|
|
4
|
-
summary: Smoke effect
|
|
4
|
+
summary: "Smoke effect: a rising column or puff of soft particles with a noise and density falloff shader."
|
|
5
5
|
use_when:
|
|
6
6
|
- authoring a smoke effect — smoke trail, puff, chimney smoke, steam, fog cloud, explosion smoke
|
|
7
7
|
- a chimney, campfire, explosion, or vent needs a rising smoke column or puff in a 3D scene
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vfx-water-ripple
|
|
3
|
-
description: "Water-ripple effect
|
|
3
|
+
description: "Water-ripple effect: animated normal-distortion ripples on a water plane or Decal, set off by impacts."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: visual-effects
|
|
@@ -221,54 +221,35 @@ MeshInstance3D ("Water") [script: water_ripple_surface.gd]
|
|
|
221
221
|
|
|
222
222
|
### 5. Wire it in (MCP calls)
|
|
223
223
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
224
|
+
Write the two files, then wire the surface with ONE `summer_run_script` call
|
|
225
|
+
with an explicit `scenePath` — transactional, and it builds the subdivided
|
|
226
|
+
PlaneMesh directly, so no `plane.tres` sidecar is needed:
|
|
227
227
|
|
|
228
228
|
```
|
|
229
229
|
summer_write_file(path="res://addons/vfx/water-ripple/water_ripple.gdshader", content="<section 2>", create_only=true)
|
|
230
230
|
summer_write_file(path="res://addons/vfx/water-ripple/water_ripple_surface.gd", content="<section 3>", create_only=true)
|
|
231
231
|
|
|
232
|
-
|
|
233
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/Puddle", key="script", value="res://addons/vfx/water-ripple/water_ripple_surface.gd")
|
|
234
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/Puddle", key="position", value="Vector3(0, 0.01, 0)")
|
|
235
|
-
|
|
236
|
-
# Whole resources are assigned by path with summer_set_prop.
|
|
237
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/Puddle", key="mesh", value="res://addons/vfx/water-ripple/plane.tres")
|
|
238
|
-
# `normal_texture` is an exported script property on the controller, not a
|
|
239
|
-
# MeshInstance3D property — MeshInstance3D has no `normal_texture`.
|
|
240
|
-
summer_set_prop(scenePath="res://main.tscn", path="./World/Puddle", key="normal_texture", value="res://addons/vfx/water-ripple/water_normals.png")
|
|
241
|
-
|
|
242
|
-
# subProperty is required — this is how you reach into the PlaneMesh itself.
|
|
243
|
-
summer_set_resource_property(scenePath="res://main.tscn", nodePath="./World/Puddle", resourceProperty="mesh", subProperty="subdivide_width", value=32)
|
|
244
|
-
summer_set_resource_property(scenePath="res://main.tscn", nodePath="./World/Puddle", resourceProperty="mesh", subProperty="subdivide_depth", value=32)
|
|
245
|
-
|
|
246
|
-
summer_save_scene(scenePath="res://main.tscn")
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
### 5a. One-script wiring (summer_run_script)
|
|
250
|
-
|
|
251
|
-
On engines with `summer_run_script` (see `scene-scripting`), the node and
|
|
252
|
-
resource wiring is ONE transactional ctx script — and it builds the subdivided
|
|
253
|
-
PlaneMesh directly, so the `plane.tres` sidecar disappears:
|
|
254
|
-
|
|
255
|
-
```gdscript
|
|
232
|
+
summer_run_script(scenePath="res://main.tscn", source="""
|
|
256
233
|
func run(ctx):
|
|
257
|
-
var puddle
|
|
234
|
+
var puddle = ctx.add_node("MeshInstance3D", "Puddle", ctx.find("World"))
|
|
258
235
|
var plane := PlaneMesh.new()
|
|
259
236
|
plane.subdivide_width = 32
|
|
260
237
|
plane.subdivide_depth = 32
|
|
261
238
|
puddle.mesh = plane
|
|
262
239
|
puddle.position = Vector3(0, 0.01, 0)
|
|
263
240
|
puddle.set_script(load("res://addons/vfx/water-ripple/water_ripple_surface.gd"))
|
|
241
|
+
# normal_texture is an exported property of the controller script, not of MeshInstance3D
|
|
264
242
|
puddle.set("normal_texture", load("res://addons/vfx/water-ripple/water_normals.png"))
|
|
265
243
|
ctx.save_scene()
|
|
244
|
+
""")
|
|
266
245
|
```
|
|
267
246
|
|
|
268
247
|
Set the mesh BEFORE the script if the controller reads it in `_ready`; either way,
|
|
269
|
-
`ctx.add_node` has already owned the node, so it survives the save.
|
|
248
|
+
`ctx.add_node` has already owned the node, so it survives the save. Tuning one
|
|
249
|
+
mesh value later is one `summer_set_resource_property` call (`resourceProperty="mesh"`,
|
|
250
|
+
`subProperty="subdivide_width"`): it reaches into a resource, it never assigns one.
|
|
270
251
|
|
|
271
|
-
###
|
|
252
|
+
### 5a. Verify
|
|
272
253
|
|
|
273
254
|
The shader and the controller are compiled code, and the controller `preload`s the
|
|
274
255
|
shader — a shader that failed to write takes the script down at parse time.
|
|
@@ -420,3 +401,26 @@ After firing this recipe, suggest:
|
|
|
420
401
|
- `vfx-hit-spark` — sister recipe for the upward droplets
|
|
421
402
|
- `vfx-smoke` — for steam over hot liquids
|
|
422
403
|
- `gdscript-patterns` — for the controller idioms
|
|
404
|
+
|
|
405
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
406
|
+
## From a shell
|
|
407
|
+
|
|
408
|
+
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
|
|
409
|
+
|
|
410
|
+
| In this skill | Command |
|
|
411
|
+
|---|---|
|
|
412
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
413
|
+
| `summer_create_scene` | `summer engine create-scene` |
|
|
414
|
+
| `summer_get_debugger_errors` | `summer engine get-debugger-errors` |
|
|
415
|
+
| `summer_get_script_errors` | `summer engine get-script-errors` |
|
|
416
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
417
|
+
| `summer_inspect_resource` | `summer engine inspect-resource` |
|
|
418
|
+
| `summer_play` | `summer engine play` |
|
|
419
|
+
| `summer_read_file` | `summer engine read-file` |
|
|
420
|
+
| `summer_run_script` | `summer engine run-script` |
|
|
421
|
+
| `summer_save_scene` | `summer engine save-scene` |
|
|
422
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
423
|
+
| `summer_set_resource_property` | `summer engine set-resource-property` |
|
|
424
|
+
| `summer_stop` | `summer engine stop` |
|
|
425
|
+
| `summer_write_file` | `summer engine write-file` |
|
|
426
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/vfx-water-ripple
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.2
|
|
4
|
-
summary: Water-ripple effect
|
|
4
|
+
summary: "Water-ripple effect: animated normal-distortion ripples on a water plane or Decal, set off by impacts."
|
|
5
5
|
use_when:
|
|
6
6
|
- authoring a water-ripple effect — raindrop ripples, splash ripples, footstep in a puddle, fish jumps
|
|
7
7
|
- rain, footsteps, or falling objects should disturb a water surface with spreading ripples
|