Gojiberry AI
AI agents that find and contact high-intent leads for you
Try Gojiberry free →
Hermes Agent
Run your Hermes agent, fully managed
Launch on Hostinger →
Hostinger VPS
Spin up a VPS in one click, 20% off
Launch on Hostinger →
Firecrawl
Crawl and scrape any site into clean data
Try Firecrawl free →
Runable
One AI agent to build, run, and grow your business
Try Runable free →
Context.dev
One API to scrape, enrich, and extract the web
Start building free →
Jotform
Forms, workflows, and AI Agents for your team
Try Jotform free →
Runable
One AI agent to build, run, and grow your business
Try Runable free →
OpenClaw
Deploy a managed OpenClaw agent in 60 seconds
Launch on Hostinger →
Sponsor here
9/10 sponsor slots taken — 1 left
Claim it →
Claude Market
Menu
SkillsMCPPluginsMarketplacesNewsletterSubmit MCPSkillPluginMCPMCP, plugin, or skillAdvertise
Claude Market
SkillsMCPPluginsMarketplacesNewsletterSubmit MCPSkillPluginMCPMCP, plugin, or skillAdvertise
Skills/gamedev-skills/awesome-gamedev-agent-skills/godot-signals-groups
godot-signals-groups logo

godot-signals-groups

gamedev-skills/awesome-gamedev-agent-skills
895 installs462 stars
Run it on Hostinger, 20% off →Your friend gets 20% off too, using this linkFree API →|View on GitHub|Create your own skill →

Installation

npx skills add https://github.com/gamedev-skills/awesome-gamedev-agent-skills --skill godot-signals-groups

Summary

>

SKILL.md

Godot Signals & Groups (4.x)

Decouple nodes with the observer pattern (signals) and act on many nodes at once (groups), instead of hard-coding references between scenes. Targets Godot 4.7.

When to use

  • Use when a node needs to tell others "something happened" (player died, item picked

up, wave cleared) without holding direct references to them.

  • Use when you need to address a whole category of nodes at once ("pause all enemies",

"save every checkpoint").

*When not to use: raw signal syntax* basics → godot-gdscript; scene structure and instancing → godot-nodes-scenes. For cross-scene global events, emit from an autoload (see godot-nodes-scenes).

Core workflow

  1. Decide the direction. A child/sub-scene should emit a signal upward; the parent

connects to it. This keeps the child reusable and ignorant of who listens.

  1. Declare typed signals on the emitter; emit() them when the event occurs.
  2. Connect with a Callable (sig.connect(_on_sig)), optionally in the editor's Node

dock. Use CONNECT_ONE_SHOT for fire-once, bind() to pass extra context.

  1. Use groups for broadcast: add nodes to a named group, then iterate

get_tree().get_nodes_in_group(...) or call_group(...).

  1. Disconnect when needed (e.g. before freeing a long-lived listener) and check

is_connected() to avoid duplicate connections.

Patterns

1. Emit upward, connect from the parent

# coin.gd (reusable pickup — knows nothing about the player or HUD)
extends Area2D
signal collected(value: int)

func _on_body_entered(body: Node) -> void:
    if body.is_in_group("player"):
        collected.emit(10)
        queue_free()
# level.gd (the parent wires the coin to game state)
func _ready() -> void:
    for coin in get_tree().get_nodes_in_group("coins"):
        coin.collected.connect(_on_coin_collected)

func _on_coin_collected(value: int) -> void:
    GameState.add_score(value)

2. Connect flags: one-shot and bind extra arguments

func _ready() -> void:
    # Fire exactly once, then auto-disconnect.
    $Door.opened.connect(_on_door_opened, CONNECT_ONE_SHOT)
    # bind() appends arguments supplied at connect time (after the signal's own args).
    $RedButton.pressed.connect(_on_button.bind("red"))

func _on_button(color: String) -> void:
    print("Pressed the %s button" % color)

3. Groups: broadcast to many nodes

func pause_all_enemies() -> void:
    # Call a method on every node in the "enemies" group (no-op if missing).
    get_tree().call_group("enemies", "set_paused", true)

func count_enemies() -> int:
    return get_tree().get_nodes_in_group("enemies").size()

Add a node to a group from code or via the editor's Node > Groups tab:

func _ready() -> void:
    add_to_group("enemies")        # remove_from_group("enemies") to leave

4. Await a signal inline

func open_chest() -> void:
    $AnimationPlayer.play("open")
    await $AnimationPlayer.animation_finished   # pause until it emits
    spawn_loot()

Pitfalls

  • 3.x connect signature is gone. connect("died", self, "_on_died") →

died.connect(_on_died). The target is implied by the Callable. The legacy Object.connect("died", Callable(self, "_on_died")) works but the method-name string form does not.

  • Duplicate connections fire handlers multiple times. Connecting again in _ready()

after re-adding a node stacks callbacks. Guard with if not sig.is_connected(cb): sig.connect(cb).

  • Connecting to a freed node errors. Disconnect long-lived listeners, or rely on

Godot auto-disconnecting when the connected object is freed (it does for nodes).

  • Groups are global to the SceneTree, not per-scene. Two levels using the same group

name share membership. Namespace group names if that matters.

  • call_group silently ignores nodes lacking the method. Typos in the method name

fail quietly — prefer a typed signal when the contract matters.

  • Signal args must match. Emitting with the wrong arg count/types raises an error;

declare typed params and emit exactly those.

References

  • For connection flags, deferred connections, custom signal arguments, awaiting with

timeouts, and signals vs. direct calls trade-offs, read references/signal-patterns.md.

Related skills

  • godot-gdscript — signal/await syntax fundamentals.
  • godot-nodes-scenes — autoloads for global event buses.
  • game-ai — state machines that often drive and consume these events.

Score

0–100
55/ 100

Grade

C

Popularity15/30

895 installs — growing adoption.

Completeness19/30

Documented: full SKILL.md body, one-line install. Missing: description, category/license metadata.

Trust15/25

Community skill with a public GitHub source repository you can review.

Freshness6/15

No update timestamp is tracked for this skill in our catalog.

Scored automatically from popularity, completeness, trust, and freshness — computed only from data in our catalog, never fabricated.

Proud of your score? Add this badge to your README.

Paste a snippet into your GitHub README. The badge updates automatically and links back to this page.

Godot Signals Groups skill score badge previewScore badge

Markdown

[![Godot Signals Groups skill](https://www.claudemarket.ai/skills/gamedev-skills/awesome-gamedev-agent-skills/godot-signals-groups/badges/score.svg)](https://www.claudemarket.ai/skills/gamedev-skills/awesome-gamedev-agent-skills/godot-signals-groups)

HTML

<a href="https://www.claudemarket.ai/skills/gamedev-skills/awesome-gamedev-agent-skills/godot-signals-groups"><img src="https://www.claudemarket.ai/skills/gamedev-skills/awesome-gamedev-agent-skills/godot-signals-groups/badges/score.svg" alt="Godot Signals Groups skill"/></a>

Godot Signals Groups FAQ

How do I install the Godot Signals Groups skill?

Run “npx skills add https://github.com/gamedev-skills/awesome-gamedev-agent-skills --skill godot-signals-groups” in your terminal. The skill is added to your agent's skills directory and picked up automatically on the next run — no restart or extra configuration needed.

What does the Godot Signals Groups skill do?

> The full SKILL.md on this page shows the exact instructions the skill gives your agent.

Is the Godot Signals Groups skill free?

Yes. Godot Signals Groups is a free, open-source skill published from gamedev-skills/awesome-gamedev-agent-skills. As with any third-party skill, review the source repository before installing it into an agent with sensitive access.

Does Godot Signals Groups work with Claude Code and OpenClaw?

Yes. Skills use the portable SKILL.md format, so Godot Signals Groups works with Claude Code, OpenClaw, Codex, Hermes, and any other agent that reads SKILL.md skills.

Recommended skills

Browse all →
find-skills logo

find-skills

vercel-labs/skills

2.9M installsInstall
grill-me logo

grill-me

mattpocock/skills

817K installsInstall
frontend-design logo

frontend-design

anthropics/skills

762K installsInstall
grill-with-docs logo

grill-with-docs

mattpocock/skills

696K installsInstall
improve-codebase-architecture logo

improve-codebase-architecture

mattpocock/skills

671K installsInstall
agent-browser logo

agent-browser

vercel-labs/agent-browser

652K installsInstall

Related guides

Hand-picked reading to help you choose, install, and use agent skills.

GuideBest Openclaw Skills 2026GuideHow To Evaluate Openclaw Skill Before InstallingGuideOpenclaw Skills Complete Guide

Skills by category

FrontendBackend & APIsTesting & QASecurityDevOps & CI/CDMCP & ToolingAutomationData & Analysis+27 more

MCP servers by category

MCP & ToolingBackend & APIsData & AnalysisDevOps & CI/CDAutomationSecurityDocsTesting & QA+24 more

Plugins by category

AutomationDevOps & CI/CDData & AnalysisDesign & CreativeSecurityBackend & APIsFrontendTesting & QA+16 more

Marketplaces by category

AutomationData & AnalysisDevOps & CI/CDDesign & CreativeFrontendBackend & APIsTesting & QASecurity+21 more

The Agent Stack

Weekly Claude Code, Agent SDK, and MCP moves worth your time — free.

Claude Market

AI agent skills directory, marketplace, and workflow hub for OpenClaw, Hermes Agent, Claude Code, Codex, and MCP-powered operator stacks.

Independent project, not affiliated with Anthropic.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Plugins
  • Browse Marketplaces
  • Newsletter

More

  • Submit a Tool
  • Create a Skill
  • Advertise
  • Free Tools
  • API
  • Shipping
  • Contact
  • Terms
  • Privacy
© 2026 Claude Market · Not affiliated with Anthropic
Fazier badgeFeatured on Twelve ToolsFeatured on Wired BusinessRemote OpenClaw - Featured on AI Agents DirectoryListed on Turbo0Featured on Uneed