| name | godot-gdscript-mastery |
| description | Expert GDScript landmine guidance: static typing opcodes, signal-up/call-down, %UniqueName/@onready lifecycle, Callable bind/unbind, await sequences, typed collections, and safe Dictionary iteration. Use for code review, refactoring hot paths, or project standards. Trigger keywords: static_typing, signal_architecture, unique_nodes, @onready, class_name, signal_up_call_down, Callable.bind, typed_collections, await_sequence. |
GDScript Mastery
Expert guidance for writing performant, maintainable GDScript — Godot-landmine decision trees, not a style-guide reprint.
Do NOT Load
- Do not load this skill for general prose style or Godot 3→4 migration checklists — those live in Official Documentation.
- Do not preload every script below; open only the MANDATORY pointer for the Core Directive you are implementing.
- Do not treat EditorScript utilities (
type_checker, performance_analyzer, signal_architecture_validator) as runtime gameplay code.
NEVER Do in GDScript
- NEVER use
@onready and @export on the same variable — Initialization order will cause @onready to overwrite the Inspector value.
- NEVER modify a Dictionary's size while iterating it — Use
dict.keys().duplicate() or iterate a clone to safely erase elements.
- NEVER use string-based
connect("signal", ...) — Always use the Signal object syntax (button.pressed.connect(...)) for compile-time safety.
- NEVER attempt to override non-virtual native engine methods — Overriding
queue_free() or get_class() is unsupported and will be ignored by engine callbacks.