RosettaScript
A GridBridge Labs Tool
GDScript 3 → GDScript 4 Converter

Migrate your scripts.
Godot 3 syntax, Godot 4 output.

The automatic GDScript 3→4 converter for Godot. Free mechanical conversion for any script. AI-refined Pro tier that handles Tween, File→FileAccess, KinematicBody→CharacterBody, and semantic rewrites Godot's built-in converter misses — explained line-by-line.

◈  Paste your GDScript 3
GDScript 4 Output  ◈
GDScript 3 Editable — paste your script
GDScript 4 Converted output

      
Click  Convert  to run the free Tier 1 transpiler
Your output
◈ ◈ ◈

See what Pro produces.

Tier 1 gives you syntax-correct GDScript 4 that runs. Pro sends the original GDScript 3 + Tier 1 output to Claude, which refactors to idiomatic Godot 4 and explains every change. Below: a real capture from our player.gd test fixture.

Tier 1 · Mechanical 18 lines · syntax-correct

    
Tier 2 · Claude-refined 15 lines · 3 refinements

    
line 9
Typed const SPEED := 200.0 with inferred float literal.
GDScript 4 prefers typed constants. Making SPEED explicitly a float avoids integer math surprises when multiplying Vector2.
line 11
Added explicit type hints: func _physics_process(delta: float) -> void.
Godot 4's static analyzer catches misuse at compile time when types are declared. Idiomatic 4.x style.
line 18
Replaced velocity = move_and_slide(velocity, Vector2.UP) with move_and_slide().
CharacterBody2D exposes velocity as a built-in property and up_direction is set via the export, so move_and_slide() takes no arguments in Godot 4.
◈ ◈ ◈

Simple pricing.

Mechanical conversion is free forever. Pro tier unlocks Claude refinement with explanations — pay per conversion or go unlimited. Credits work on both Godot and LSL conversions.

Free No account
Free · forever
Try it above. No signup.
  • Mechanical syntax conversion
  • Unlimited scripts
  • KinematicBody → CharacterBody
  • move_and_slide / is_on_floor updates
  • Manual-review flags for risky patterns
Single Pay as you go
$2 · one-time
L$500 · 1 conversion
  • One Claude-refined conversion
  • Idiomatic GDScript 4 output
  • Line-by-line explanations
  • Tween / FileAccess rewrites
  • Typed variables + return hints
10-Pack Best value
$12 · one-time
L$3,000 · $1.20 each
  • 10 Claude-refined conversions
  • 40% off the single-conversion price
  • Credits never expire
  • Works on Godot + LSL both
50-Pack Power user
$40 · one-time
L$10,000 · $0.80 each
  • 50 Claude-refined conversions
  • 60% off the single-conversion price
  • Credits never expire
  • Works on Godot + LSL both
Unlimited Monthly
$20 / month
L$5,000/mo · Cancel anytime
  • Unlimited Claude-refined conversions
  • For heavy-conversion months
  • Works on Godot + LSL both
  • Cancel from the Stripe portal
◈ ◈ ◈

Key transformations.

A quick reference for what the free Tier 1 transpiler handles automatically.

KinematicBody2D
CharacterBody2DPhysics bodies
move_and_slide(v, UP)
move_and_slide()Built-in velocity
Tween.new()
create_tween()SceneTreeTween
yield(sig, "name")
await sig.nameAwait signals
File.new()
FileAccess.open()File I/O
onready var x
@onready var xAnnotations
export(int) var x
@export var x: intTyped exports
connect("s", self, "m")
s.connect(m)Signal connect
func _ready():
func _ready() -> void:Type hints