Skip to content

Project Structure

A Gode-enabled project is a normal Godot project with an addon installed at res://addons/gode.

my_project/
addons/
gode/
binary/
config/
gode.gd
gode.gd.uid
plugin.cfg
runtime/
tsc/
types/
Path Purpose
binary/ Runtime GDExtension manifest, platform-specific runtime libraries, and desktop editor-only native libraries under binary/editor/.
config/ Bundled templates such as tsconfig.json and gode.json.
gode.gd Godot plugin entry point.
plugin.cfg Godot editor plugin metadata.
runtime/ Godot-side runtime helpers.
tsc/ Bundled TypeScript compiler.
types/ Generated TypeScript declaration files for Godot APIs.

native_extensions/paths should contain only res://addons/gode/binary/gode.gdextension. When the editor plugin is enabled, Gode registers gode_editor.gdextension in the local .godot/extension_list.cfg cache for development-only native editor APIs without exporting the editor extension.

File Required Notes
tsconfig.json Created automatically when missing Controls TypeScript diagnostics and emit policy.
gode.json Only needed for explicit export policy Created automatically for external-dependency projects during export.
package.json Optional Enables external-dependency project behavior.
Lockfile Recommended when using packages Commit the lockfile for your package manager.
node_modules/ Installed dependency snapshot Usually ignored in source control, but must exist before export when dependencies are declared.

Gode writes generated TypeScript output for editor use, runtime loading, and export packaging. This is an implementation detail:

res://.gode/build/typescript/

Do not attach generated JavaScript to scenes. Do not commit generated output.

Commit:

  • Project TypeScript source files.
  • addons/gode release files required by your team.
  • tsconfig.json after it is generated or customized.
  • gode.json when export behavior matters.
  • package.json and lockfiles for npm-enabled projects.

Ignore:

  • .godot/
  • .gode/
  • package-manager install caches.
  • build outputs and platform exports.