К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

godot-gdscript — скилл для Claude Code: что делает и как установить

Помогает писать типизированный код на GDScript 2.0 для Godot 4.7 и обновлять старые скрипты с версии 3.x. Пригодится при отладке логики узлов, сигналов и корутин.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill godot-gdscript -a claude-code
Открыть на GitHub

Что делает godot-gdscript

Скилл задаёт правила разработки на GDScript для Godot 4.7. Он внедряет статическую типизацию переменных и функций, что снижает число ошибок ещё на этапе парсинга. Агент следит за жизненным циклом узла: переносит подготовку ссылок в @onready, а расчёты физики направляет строго в _physics_process.

Внутри собраны паттерны для синтаксиса Godot 4.x. Скилл заменяет устаревший yield на await, переводит строки сигналов на объекты Callable и настраивает параметры инспектора через @export. Скрипт сразу сломается в рантайме, если запросить $NodePath внутри _init(), поэтому скилл требует инициализировать дочерние узлы строго через _ready() или @onready.

В правилах учтены нюансы версии Godot 4.7. Переопределённые методы теперь наследуют типы возврата родителя, из-за чего каждая ветка обязана возвращать значение. Для архитектуры сцен скилл не подходит. Для таких задач нужны отдельные наборы инструкций репозитория.

Какие задачи решает

  • переписать вызовы yield и строковые сигналы из Godot 3.x на await и Callable
  • добавить статическую типизацию в переменные, массивы и возвращаемые значения функций
  • вынести параметры скрипта в инспектор с помощью @export и @export_range
  • исправить ошибки порядка инициализации узлов при обращении через $NodePath

Примеры запросов агенту

  • Переведи этот скрипт с Godot 3 на Godot 4.7: обнови сигналы и замени yield на await.
  • Добавь статическую типизацию в Player.gd и вынеси скорость перемещения в инспектор.
  • Проверь жизненный цикл в Enemy.gd: перенеси поиск нод на @onready и настрой _physics_process.

Как установить godot-gdscript

1Через Skills CLI (Vercel)

npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill godot-gdscript -a claude-code

2Вручную: положить файлы

~/.claude/skills/godot-gdscript/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/godot-gdscript/

Из того же набора40

Весь набор →
game-feel gamedev-skills Скилл учит агента добавлять отклик к игровым действиям: тряску камеры, стоп-кадр, твины с easing, сквош и отброс. Для случаев, когда механика работает, но ощущается ватной. Claude Code CX Codex Cursor +1 9 400установок game-ui-ux gamedev-skills Архитектурный скилл для создания адаптивных игровых интерфейсов, стека экранов и навигации с геймпада без покадрового опроса состояния. Claude Code CX Codex Cursor +1 9 200установок level-design gamedev-skills Помогает спроектировать игровой уровень от блокута до плейтеста: маршруты, темп, препятствия и столкновения. Нужен при работе с whitebox, критическим путём и геймплейными комнатами. Claude Code CX Codex Cursor +1 7 500установок camera-systems gamedev-skills Рецепты для игровых камер в 2D и 3D: плавное следование, мёртвые зоны, опережение движения и обработка столкновений для Godot и Unity. Claude Code CX Codex Cursor +1 7 100установок audio-design gamedev-skills Скилл учит раскладывать игровой звук по шинам, глушить музыку под голос и собирать адаптивный саундтрек слоями. Примеры кода — на GDScript под Godot 4.7, с пометками для Unity. Claude Code CX Codex Cursor +1 7 100установок performance-optimization gamedev-skills Скилл учит искать узкое место в игре по профайлеру движка, а не по догадке, и даёт набор правок: пулы объектов, батчинг, отказ от лишних аллокаций. Claude Code CX Codex Cursor +1 7 100установок game-ai gamedev-skills Помогает проектировать логику врагов и NPC: конечные автоматы, деревья поведения, алгоритмы руления и поиск пути A*. Пригодится при сборке поведения ботов для любого движка. Claude Code CX Codex Cursor +1 7 100установок input-systems gamedev-skills Архитектура игровых управлений: отображение клавиш на действия, перекоординирование с проверкой конфликтов, поддержка клавиатуры, геймпада и сенсора, мёртвые зоны, буферизация и coyote time. Claude Code CX Codex Cursor +1 6 800установок

Похожие

game-automation rehan-remade Скилл запускает игры, снимает экран через GPU-захват и управляет окном через виртуальные клавиши и мышь. Нужен ИИ-агенту для автоматической проверки модов в реальной игре. Claude Code CX Codex Cursor +1 1 500установок reverse-engineering rehan-remade Помогает агенту разобрать игру изнутри: декомпилировать код, вскрыть форматы ассетов, снять дамп живой памяти. Пригодится, когда для мода нужен точный адрес функции или устройство файла. Claude Code CX Codex Cursor +1 1 500установок mod-any-game rehan-remade Скилл для создания модов к ПК-играм: от разведки движка и резервных копий сейвов до генерации ассетов и сборки первого рабочего прототипа. Claude Code CX Codex Cursor +1 1 500установок orbit-card heygen-com Скилл для встраивания готового 10-секундного 3D-блока HyperFrames: карточка фичи облетает сферу из точек по траектории камеры из Blender. Claude Code CX Codex Cursor +1 9 800установок sdf earthtojake Скилл создаёт и проверяет SDFormat-файлы для моделей и миров, а затем помогает подготовить их к передаче в симулятор. Claude Code CX Codex Cursor +1 10 500установок urdf earthtojake Скилл помогает создавать, проверять и отлаживать описания роботов в формате URDF. Пригодится для работы со звеньями, сочленениями и геометрией. Claude Code CX Codex Cursor +1 10 400установок hatch-pet официальный openai Создаёт и упаковывает анимированных питомцев и спрайт-листы для Codex. Пригодится, когда нужен персонаж по описанию, изображению или фирменным ориентирам. Claude Code CX Codex Cursor +1 3 300установок gcode earthtojake Нарезает модели STL, 3MF и OBJ в G-code через OrcaSlicer. Подходит, когда нужно подготовить файл для печати без подключения к принтеру. Claude Code CX Codex Cursor +1 9 500установок

Вопросы о godot-gdscript

Как установить godot-gdscript в Claude Code?

Выполните в терминале команду npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill godot-gdscript -a claude-code.

Что делает скилл godot-gdscript?

Он инструктирует агента писать идиоматичный код на GDScript 2.0 для Godot 4.7. Скилл внедряет статическую типизацию, правильное использование @onready и @export, а также современный синтаксис сигналов.

Подходит ли godot-gdscript для проектов на C# или построения сцен?

Нет, этот скилл рассчитан только на файлы .gd. Для работы с деревом сцен и инстансами предназначен godot-nodes-scenes, а для кода на C# — скилл godot-csharp.

Исходный текст

SKILL.md · Apache-2.0
---
name: godot-gdscript
description: >
  Write idiomatic GDScript for Godot 4.7: static typing, the node lifecycle
  (_ready/_process/_physics_process), @export/@onready/@tool annotations,
  signals, and await for asynchronous flow. Use when editing .gd scripts in a
  Godot project (project.godot), writing or debugging GDScript, or porting 3.x
  GDScript to 4.x (function signatures, yield to await, export to @export).
---

# Godot GDScript (4.x)

Write correct, statically typed GDScript and use the node lifecycle and signal
system the way the engine intends. Targets **Godot 4.7** (GDScript 2.0).

## When to use

- Use when writing or fixing `.gd` files: declaring variables, functions, classes,
  using `@export`/`@onready`, connecting signals, or awaiting coroutines/signals.
- Use when porting Godot 3.x scripts to 4.x and the script no longer parses.

**When *not* to use:** scene/node structure and instancing questions →
`godot-nodes-scenes`; signal *architecture*/decoupling patterns →
`godot-signals-groups`; using C# instead of GDScript → `godot-csharp`.

## Core workflow

1. **Type everything you can.** GDScript 2.0 supports static types
   (`var hp: int = 10`, `func add(a: int, b: int) -> int:`). Types catch errors at
   parse time and speed up the VM. Use `:=` for inferred types.
2. **Use the lifecycle callbacks for their purpose:** `_ready()` once when the node
   and its children enter the tree; `_process(delta)` every rendered frame;
   `_physics_process(delta)` on the fixed physics tick (use it for movement/physics).
3. **Grab node references with `@onready`**, not in `_init()` — children do not exist
   until the node enters the tree.
4. **Expose tunables with `@export`** so designers edit them in the Inspector.
5. **React to events with signals + `await`**, not polling, where it reads cleanly.
6. **Run and read errors.** The Debugger panel prints typed errors with line numbers;
   fix the first error first (later ones are often cascades).

## Patterns

### 1. A typed script with lifecycle, @export, and @onready

```gdscript
extends Node2D
class_name Spinner            # registers a global type usable in other scripts

@export var speed: float = 90.0          # editable in the Inspector (degrees/sec)
@export_range(0, 10, 0.5) var wobble := 2.0
@onready var sprite: Sprite2D = $Sprite2D # resolved when the node enters the tree

func _ready() -> void:
    # Runs once, after children are ready. Safe to touch $Sprite2D here.
    sprite.modulate = Color.AQUA

func _process(delta: float) -> void:
    # delta is seconds since last frame; multiply rates by it for FPS independence.
    rotation_degrees += speed * delta
```

### 2. Signals: declare, emit, connect (4.x Callable syntax)

```gdscript
extends Node

signal health_changed(current: int, maximum: int)   # typed signal params

var health := 100

func take_damage(amount: int) -> void:
    health = maxi(health - amount, 0)    # maxi/maxf are typed; max() returns Variant
    health_changed.emit(health, 100)     # 4.x: emit as a method on the signal

func _ready() -> void:
    # 4.x: connect with a Callable, not a string method name.
    health_changed.connect(_on_health_changed)

func _on_health_changed(current: int, maximum: int) -> void:
    print("HP: %d/%d" % [current, maximum])
```

### 3. await — pause until a timer or signal fires (replaces 3.x yield)

```gdscript
func flash_then_continue() -> void:
    modulate = Color.RED
    await get_tree().create_timer(0.2).timeout   # resume after 0.2s
    modulate = Color.WHITE
    # await any signal: var result = await some_node.some_signal
```

### 4. Lambdas, typed arrays, and safe access

```gdscript
var enemies: Array[Node] = []                    # typed array

func cull_dead() -> void:
    enemies = enemies.filter(func(e): return e.is_inside_tree())

func get_first_name(d: Dictionary) -> String:
    return d.get("name", "unknown")              # default avoids missing-key errors
```

## Pitfalls

- **3.x → 4.x signal API changed.** `emit_signal("x")` still works but prefer
  `x.emit(...)`; `connect("x", self, "_on_x")` is gone — use `x.connect(_on_x)` with a
  Callable. `yield(obj, "sig")` is now `await obj.sig`.
- **`export var` is now `@export var`** (annotation). Likewise `onready`→`@onready`,
  `tool`→`@tool`, `remote`/`master` RPC keywords → the `@rpc(...)` annotation.
- **`@onready` and `$NodePath` in `_init()` fail** — the node isn't in the tree yet.
  Initialize node references in `_ready()` or with `@onready`.
- **Integer division truncates.** `5 / 2 == 2`. Use `5.0 / 2` or cast to `float`.
- **`_process` vs `_physics_process`.** Put `move_and_slide()` and physics in
  `_physics_process(delta)`; using `_process` makes motion frame-rate dependent.
- **`class_name` must be unique** project-wide and is required to use the type name in
  other scripts or as an Inspector type.
- **An override stops parsing after upgrading to 4.7** → since 4.7 an overriding method
  inherits the parent's typed return, so every path must `return` a value (add
  `return null` at the end if needed). Also new in 4.7: setting one element of a packed
  array property (`points[0] = v`) no longer calls that property's setter; reassign the
  whole array if the setter must run.

## References

- For the full annotation list, advanced typing, and style conventions, read
  `references/annotations-and-typing.md`.

## Related skills

- `godot-nodes-scenes` — the scene tree, instancing, and autoloads.
- `godot-signals-groups` — event-driven architecture with signals and groups.
- `godot-resources` — data-driven design with custom `Resource` types.
- `godot-csharp` — the same engine concepts using C#/.NET.

© gamedev-skills · Apache-2.0 · gamedev-skills/awesome-gamedev-agent-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой