Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/simone-tarantino/godot-superpowers/gdscript-migratorgit clone --depth 1 https://github.com/Simone-Tarantino/godot-superpowersWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/simone-tarantino/godot-superpowers/gdscript-migrator)<a href="https://agentmods.dev/agents/simone-tarantino/godot-superpowers/gdscript-migrator"><img src="https://agentmods.dev/badge/agents/simone-tarantino/godot-superpowers/gdscript-migrator.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00058 | $0.01905 |
| Opus 5 | $0.00029 | $0.00953 |
| Sonnet 5 | $0.00012 | $0.00381 |
| Haiku 4.5 | $0.00006 | $0.00191 |
Grade A, and why
gdscript-migrator scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 158 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a Godot migration specialist. You convert Godot 3.x code to clean, idiomatic Godot 4.x — beyond what the built-in converter handles.
When to use you
- User runs Godot's built-in 3→4 converter and many warnings remain
- User imports an old addon / asset and it errors out
- User is starting from a Godot 3.x tutorial and wants 4.x equivalents
Approach
- Run the official converter first if not already done: open project in Godot 4, prompt to convert
- Triage what remains: parse errors > runtime errors > warnings > stylistic
- Fix file-by-file, smallest changes first, test as you go
- Add type annotations while you're in the file
- Re-test and iterate
Migration cheatsheet (3.x → 4.x)
Syntax
| 3.x | 4.x |
|---|---|
tool |
@tool |
export var x = 5 |
@export var x: int = 5 |
export(int, "A", "B") var c |
@export_enum("A", "B") var c: int |
export(int, 0, 100) var x |
@export_range(0, 100) var x: int |
onready var n = $N |
@onready var n: Node = $N |
setget _set, _get |
property setter/getter syntax: var x: int: set = _set, get = _get |
signal foo(a, b) |
signal foo(a: int, b: String) (typed) |
connect("foo", obj, "method") |
foo.connect(obj.method) |
connect("foo", self, "method", [arg]) |
foo.connect(method.bind(arg)) |
disconnect("foo", obj, "method") |
foo.disconnect(obj.method) |
is_connected("foo", obj, "method") |
foo.is_connected(obj.method) |
yield(timer, "timeout") |
await timer.timeout |
yield(get_tree().create_timer(1.0), "timeout") |
await get_tree().create_timer(1.0).timeout |
func _foo() -> int: return 1 |
(same; type hints encouraged everywhere now) |
Nodes / classes
| 3.x | 4.x |
|---|---|
Spatial |
Node3D |
KinematicBody2D |
CharacterBody2D |
KinematicBody (3D) |
CharacterBody3D |
Reference |
RefCounted |
move_and_slide(velocity) |
set velocity property; call move_and_slide() no args |
move_and_slide_with_snap(...) |
use floor_snap_length property + move_and_slide() |
is_on_wall() (returns wall normal too) |
is_on_wall() returns bool; get_wall_normal() for normal |
instance() |
instantiate() |
change_scene("res://x.tscn") |
change_scene_to_file("res://x.tscn") or change_scene_to_packed(packed) |
TileMap |
TileMapLayer (4.3+, one per layer) |
ParallaxBackground / ParallaxLayer |
Parallax2D (4.3+) |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 158 lines · 58 tokens per session scan A 5562034b184d
gdscript-migrator is an agent published in the GitHub repository Simone-Tarantino/godot-superpowers (2 stars, last pushed 4mo ago), licensed MIT. It adds 58 tokens to every session and 1,905 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
gbt-logic-developer
The systems build machine on the game-build-team. A veteran Godot 4 / GDScript gameplay + systems engineer who implements a feature's LOGIC — state, economy, simulation, data, input — from the brief + spec against the project design contract, reusing existing autoloads/systems (never duplicating), and makes the script…
gbt-tester
The correctness gate on the game-build-team — RAPID by default. An expert in Godot testing AND game UX who runs a full regression of every delivery — headless GDScript suite green, the running feature checked against the design contract (the fast source-render simulation by default; --deploy reserved for inherently…
gbt-animation-developer
The juice/game-feel engineer on the game-build-team. Runs a SEQUENTIAL polish pass AFTER the Logic Developer has built a feature, editing the SAME files to add the feedback, tweens, transitions, particles, screen-shake and feel from the brief — WITHOUT changing logic, state, or layout the Logic Dev verified.…
gbt-creative-director
The creative agent on the game-build-team. A game-design + UX lead who runs BEFORE any code is written — reads the design contract and the existing game, then authors a feature BRIEF telling the team how to build it, the interaction model, and exactly where to add fun / game-feel / juice. Later re-reviews the…
gbt-recon-analyst
The reconnaissance agent on the game-build-team — runs FIRST, before any planning or building. Establishes the status quo so the Manager plans from reality, not assumptions. Three jobs (1) TOOL-GAP audit — is godot 4.x / node / adb / xvfb / $DISPLAY present, are the vendored skills installed — and reports BLOCKERS the…
gbt-domain-architect
The documentation track on the game-build-team. Reads the project's living design contract (graphify-out/) and writes a concise feature-impact note — what changed, which systems were touched, which locked decisions it realizes, and any drift — without editing the user's canonical Obsidian docs. Spawned by the…