Skip to content
Back to skills

Godot Port

ASecurity

Port a Godot 4 project (GDScript) to Unity, Unreal Engine, three.js/web or Godot C# with ReversePort — signals, node paths, autoloads, scenes, physics bodies, input actions and coordinates done right. Use whenever the source of a port is a Godot project, including "make a web/browser version of my Godot game".

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 13, 2026
developmenttypescriptgoc#nodeapi

Works with

  • api

Security analysis

A100/100

Scanned October 13, 2026

npx -y skills add laaielichter/reverseport --skill godot-port --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Godot Port?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Godot Port
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/laaielichter-godot-port/badge)](https://www.skillsdirectory.com/skills/laaielichter-godot-port)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: godot-port
description: Port a Godot 4 project (GDScript) to Unity, Unreal Engine, three.js/web or Godot C# with ReversePort — signals, node paths, autoloads, scenes, physics bodies, input actions and coordinates done right. Use whenever the source of a port is a Godot project, including "make a web/browser version of my Godot game".
---

# Porting from Godot

Use the port-project skill for the loop; this skill holds the Godot-specific judgement.

## Before planning

- `re_scene {file:"project.godot"}` → main scene, autoloads (singletons), input actions, physics tick rate.
  Autoloads become singletons (Unity: DontDestroyOnLoad MonoBehaviour; Unreal: GameInstanceSubsystem; web: module
  singleton). Input actions must be recreated by name in the target.
- Binary `.scn`/`.res` cannot be read as text: open them in Godot and save as `.tscn`/`.tres` first.
- `port_map {from:"godot", to}` — read the conventions once; they decide naming and coordinates.

## Things that silently break

| Godot                                                   | Watch out                                                                                         |
| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| `-transform.basis.z` is forward                         | Unity forward is +Z, Unreal +X. Never copy direction math unconverted.                            |
| `rotation` is radians, Euler order YXZ                  | Unity eulerAngles are degrees; three.js default order is XYZ (set `rotation.order = 'YXZ'`).      |
| meters                                                  | Unreal is centimeters: speeds, forces, ranges, gravity ×100.                                      |
| `_physics_process` at 60 Hz                             | Unity FixedUpdate is 50 Hz by default; Unreal ticks per frame. Retune or set the rate.            |
| `move_and_slide()` uses `velocity` and delta internally | Unity `CharacterController.Move` wants a displacement (× deltaTime) and no built-in gravity.      |
| signals connected in the editor                         | They live in `.tscn` `[connection]` sections: `re_scene` lists them; recreate each one.           |
| `$Path` / `get_node`                                    | Target: serialized references (Unity), component pointers (Unreal), direct references (web).      |
| `await` on signals/timers                               | Unity: coroutines (or Awaitable); Unreal: timers/delegates; web: promises with a game-time timer. |
| groups                                                  | Unity tags, Unreal actor tags; port_scene carries the first group as the tag.                     |
| Camera3D `fov` is vertical                              | Unreal FieldOfView is horizontal: `port_convert {fov, aspect}`.                                   |

## Targets

- **godot-csharp**: the smallest port. Scenes, resources and project.godot are copied with script paths swapped by
  `port_scene`; only scripts are rewritten (`public partial class X : Base`, PascalCase API, `double delta`,
  `[Export]`, `[Signal] delegate void XEventHandler()`, struct properties copied out and back).
- **unity**: scenes become `*.scene.json` specs + the editor builder; build them in Unity after the scripts compile so
  components attach by class name.
- **threejs**: scenes become TypeScript builder modules (`buildMain()`); physics with Rapier; UI in HTML/CSS. Godot can
  export meshes as glTF for GLTFLoader.
- **unreal**: scripts become `.h/.cpp` pairs with UCLASS/UPROPERTY/UFUNCTION; scenes become specs in cm, Z-up.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.