Godot-Languages-Support/godot-lang-support

A community-maintained list of Language Support Projects for Godot Engine.

569

272 commits

updated Oct 2, 2026

See the code

README

🗺 An overview of the available language bindings for Godot & Co

This repository aims to provide a faithful overview of the available language bindings, and other related projects that target the Godot Engine, or one of its many forks.

For each language support project, look for the individual LICENSE file on the public repository that is linked. This document itself is licensed under the CC-BY-4.0. We do welcome help to keep it as up-to-date as possible!

Categories

You can always expect entries below to be ordered (by emoji!) exactly in the order given below. If any entry isn't in order, feel free to submit a PR!

1. By maintainer

  • 💍 Official
  • 👥 Community-maintained

2. By method

  • ⚙️ Module
  • 🧩 GDExtension
  • 🏄 "Surfs" in another language
  • 🏰 Sandboxes the code
  • 🔧 Auxiliary Language Tooling / Ecosystem Extension

3. By editor support

  • 🧬 Can be edited inside the Godot Engine (and its forks)
  • 🔌 Has support for the Godot API being edited in an external editor.

4. By target platform

  • 🌍 Web
  • ⚡ On JIT restricted platforms (Consoles, iOS)

Console support is not available by default; an SDK and implementation are also needed. Respect that JIT restricted platforms also don't allow downloading code from remote sources.

🏆🥇 Production ready

These languages are documented and stable. In alphabetical order.

C++ / Godot module 💍 ⚙️ 🌍 ⚡

You can code your entire project (or parts of it) in C++ and include the game logic as Godot modules.

C++ / Jenova 👥 🧩 🔧 🧬 🔌

Jenova provides hot-reloadable C++ scripting and support for Visual Studio, VS Code, and the Godot editor.

There is also support for nested GDExtension development and a built-in virtual machine for running an entire OS that can be embedded into the game and interacted with.

It is one of the most advanced and best-maintained community extensions.

The performance is factually on the same level as native C++, with a 0.005ms impact for calling functions from Godot.

Jenova also provides its API for the development of extensions, although that is currently undocumented.

It is only available for Windows, Linux, and macOS, for both development and export.

You can use Jenova during the development stage and then switch to one of the other C++ integrations, or GDExtension itself, to ship the game to more platforms.

In that case, you should be aware of potentially missing features with these extensions. As an example, users should not use functions stored in JenovaSDK unless they build it statically and link against it.

C++, Rust and Zig / godot-sandbox 👥 🧩 🏰 🔧 🌍 ⚡

This mainly focuses on C++ and Rust support, and also features Zig. It sandboxes the code, making it suitable for modding support.

C# 💍 ⚙️ 🔌

C# support is made possible by an official Godot module. If you have the .NET version of Godot or Blazium, it comes built-in.

GDScript 💍 ⚙️ 🧬 🔌 🌍

GDScript is actively maintained, documented, and stable. It is the primary language in the Godot ecosystem, has the most tutorials online, and deep Godot editor support.

Go 👥 🧩 🌍 ⚡

Go bindings to GDExtension. Possible to use it for shaders.

Haxe 👥 🏄 🔌 🌍

Compiles Haxe to GDScript. Made with the reflaxe framework.

JavaScript and Typescript 👥 ⚙️ 🧬 🔌 🌍 ⚡

JavaScript and TypeScript extension, with multiple different backends to choose from.

Kotlin, Java, and Scala. 👥 ⚙️ 🔌 🌍 ⚡

Provides proper support for Kotlin and Java. Aims to support Scala in the near future as well.

GraalVM with Native Image is also supported.

Their Discord is nice and friendly.

Lua 👥 🧩 ⚡

New and exciting binding that allows Lua to be used both directly and by calling into it from other languages.

Nim 👥 🧩 🔌 🌍 ⚡

Feature-complete, hot-reloadable implementation of Nim.

Orchestrator 👥 🧩 🧬 ⚡

Orchestrator is a visual scripting language with advanced macro support for high-level abstractions.

Friendly and competent support. Also usable for dialog scripting.

It provides rich API support, is implemented in C++, and compiles to native code.

Rust 👥 🧩 🔌 🌍 ⚡

You can find the project homepage here.

Very well-supported, good documentation, and an active community.

Swift 👥 🧩 🔌 ⚡

Very well-supported implementation by Miguel Deicaza.

There is also SwiftGodotKit

🤪 Curiosities

Stable programming languages... with a twist 😉

Enu 👥 ⚙️ 🔧 🧬

Logo-like framework in a block-based 3D world. Based on Nim.

Ink 👥 🏄 🔌

Scripting language for writing interactive narrative.

🥈 Halfway there

In active development, and comparable to being in the beta stage.

The emojis here might be incomplete.

Block Coding 👥 🧩 🧬

Scratch-like visual coding in blocks.

BlockFlow 👥 🧩 🧬

Eventsheet-based coding. A visual scripting designed to help in those scenarios where you need visual control of things that may happen sequentially in-game.

C 👥🧩

The TinyCC C compiler integrated as a GDExtension.

C++ / godot-object-compiler 👥⚙️🧩🔧

Godot ClassDB binding code generator for C++ GDExtensions and Modules.

D 👥 🧩 🔌

New, maintained binding to GDExtension, ported from the previous GDNative extension.

Dart 👥 🧩

The project's README contains a detailed roadmap.

FlowKit 👥 🧬

Intuitive visual event-based language.

Go 2 👥 🧩 🔌

Go bindings to GDExtension.

Lua 👥 ⚙️ 🧬 🔌

This version of Lua is currently undergoing a partial rewrite and seems to be stuck in development.

Odin 👥 🧩 🔌

An upcoming Odin binding using GDExtension. The README also mentions a (heavily-caveated) preprocessor mode called "Godin" for autogenerating Godot boilerplate.

Python 👥 🧩 🧬 🔌

Currently in reconstruction.

Python 2 👥 🧩 🧬 🔌

Python implementation from scratch.

Python 3 👥 🧩 🔌 (everyone loves Python)

Yet another Python GDExtension binding. Seems relatively inactive compared to the first two.

V 👥 🧩 🔌

Bindings for the V programming language.

WASM 👥 🏰 🏄 🌍

Bindings for wasm. Implemented via the Rust bindings.

WASM 2 👥 🏰 ⚙️ 🧩 🌍

Allows loading WASM libraries from other languages. Available as both a module and a GDExtension.

Zig 👥 🧩 🔌

Makes good progress, still in beta.

Zig 2 👥 🧩 🔌

Almost no documentation is provided. This project's status is uncertain.

Java 👥 🧩 🔌

Java bindings for Godot 4 via Panama FFI (Foreign Function & Memory API, ~50ns per call). Compile-time annotation processing (APT) for type discovery — zero runtime reflection. Requires Java 25+.

Kotlin 👥 🧩 🔌

In Development, uses Kotlin Native instead of JVM

Scala Native 👥 🧩

In Development, uses Scala Native instead of JVM.

Scala Native (SBT) 💍 🧩 🔌

Scala Native typesafe, batteries included implementation with the SBT build tool. Has a built-in Godot plugin for launching an SBT server from the editor. Supports simple syntax, can build nodes without any annotations (also supports annotations for custom inspector display e.g. show range, file open). Focused on implementing a seamless experience for developing games with Godot using Scala Native.

Verse 👥 🧩 🧬

Experimental support for Epic's Verse as a scripting language.

Help

As a small volunteer team with only two active maintainers (@ShalokShalom and @Vivraan), tracking community favourites versus cool upcoming demos of the GDExtension technology is challenging, given our busy schedules and attention spans 🫠

We welcome active contributors! If you are a language binding maintainer or wish to update us about new, existing, or discontinued projects, please submit a pull request with the relevant edits to this README.

We also accept issue submissions, but we will always prioritise PRs:

  • PRs allow us to gather attention from various community members, including project maintainers, when describing the project.
  • PRs take the pressure off, giving us time for detailed reviews and comments, and may even help us merge changes faster.

GitHub Copilot/LLM/GenAI Statement

We aren't a code repository, but we will be ironsighted about requests that we suspect have used generative AI. What we do use and permit is the use of grammar checkers, like LanguageTool and Grammarly.

What about Godot 3?

This list is for Godot 4. In case you are looking for Godot 3 bindings, find them at this commit

Note that some of the projects mentioned there have transitioned from Godot 3 to Godot 4, so you will have to use one of their older versions for compatibility. Contact project maintainers for more information and let us know ASAP!

Godot Engine and its modules are developed in C++. For info on those, please start with the official docs for contributing to the engine and understanding engine development.

In contrast, the languages provided here are for programming the game logic (often called scripting). There are different methods for extending the engine and granting additional language support:

  • Modules: maintainers/Developers define custom implementations of Godot's Script, ScriptInstance, and ScriptLanguage types in a module. Users add the module to the engine source code and compile the engine themselves (or a developer may provide precompiled binaries).

  • GDExtension: This is the official, new way to implement plugins for Godot 4. One of the limitations here is that it won't support the Nintendo Switch. It has the benefit that it does not need to be compiled into the engine, and gives more control over it.

Licensing note

The Godot Engine and its individual forks are licensed by their respective maintainers. Relevant licensing information is available on their website or on public source code mirrors.

  • See the language/scripting section on Wikipedia.
  • Gamesfromscratch made a video about some of the supported languages.
  • Jeff Ward gave a talk at GodotConf 2025 about adding new Script Languages to Godot.
  • (You can expand this list!)

Enjoy ^-^

blazium
gdextension
godot
godot3
godot4
godot-engine
godotengine
modules
pluginscript

Godot-Languages-Support/godot-lang-support

A community-maintained list of Language Support Projects for Godot Engine.

569

272 commits

updated Oct 2, 2026

See the code

README

🗺 An overview of the available language bindings for Godot & Co

This repository aims to provide a faithful overview of the available language bindings, and other related projects that target the Godot Engine, or one of its many forks.

For each language support project, look for the individual LICENSE file on the public repository that is linked. This document itself is licensed under the CC-BY-4.0. We do welcome help to keep it as up-to-date as possible!

Categories

You can always expect entries below to be ordered (by emoji!) exactly in the order given below. If any entry isn't in order, feel free to submit a PR!

1. By maintainer

  • 💍 Official
  • 👥 Community-maintained

2. By method

  • ⚙️ Module
  • 🧩 GDExtension
  • 🏄 "Surfs" in another language
  • 🏰 Sandboxes the code
  • 🔧 Auxiliary Language Tooling / Ecosystem Extension

3. By editor support

  • 🧬 Can be edited inside the Godot Engine (and its forks)
  • 🔌 Has support for the Godot API being edited in an external editor.

4. By target platform

  • 🌍 Web
  • ⚡ On JIT restricted platforms (Consoles, iOS)

Console support is not available by default; an SDK and implementation are also needed. Respect that JIT restricted platforms also don't allow downloading code from remote sources.

🏆🥇 Production ready

These languages are documented and stable. In alphabetical order.

C++ / Godot module 💍 ⚙️ 🌍 ⚡

You can code your entire project (or parts of it) in C++ and include the game logic as Godot modules.

C++ / Jenova 👥 🧩 🔧 🧬 🔌

Jenova provides hot-reloadable C++ scripting and support for Visual Studio, VS Code, and the Godot editor.

There is also support for nested GDExtension development and a built-in virtual machine for running an entire OS that can be embedded into the game and interacted with.

It is one of the most advanced and best-maintained community extensions.

The performance is factually on the same level as native C++, with a 0.005ms impact for calling functions from Godot.

Jenova also provides its API for the development of extensions, although that is currently undocumented.

It is only available for Windows, Linux, and macOS, for both development and export.

You can use Jenova during the development stage and then switch to one of the other C++ integrations, or GDExtension itself, to ship the game to more platforms.

In that case, you should be aware of potentially missing features with these extensions. As an example, users should not use functions stored in JenovaSDK unless they build it statically and link against it.

C++, Rust and Zig / godot-sandbox 👥 🧩 🏰 🔧 🌍 ⚡

This mainly focuses on C++ and Rust support, and also features Zig. It sandboxes the code, making it suitable for modding support.

C# 💍 ⚙️ 🔌

C# support is made possible by an official Godot module. If you have the .NET version of Godot or Blazium, it comes built-in.

GDScript 💍 ⚙️ 🧬 🔌 🌍

GDScript is actively maintained, documented, and stable. It is the primary language in the Godot ecosystem, has the most tutorials online, and deep Godot editor support.

Go 👥 🧩 🌍 ⚡

Go bindings to GDExtension. Possible to use it for shaders.

Haxe 👥 🏄 🔌 🌍

Compiles Haxe to GDScript. Made with the reflaxe framework.

JavaScript and Typescript 👥 ⚙️ 🧬 🔌 🌍 ⚡

JavaScript and TypeScript extension, with multiple different backends to choose from.

Kotlin, Java, and Scala. 👥 ⚙️ 🔌 🌍 ⚡

Provides proper support for Kotlin and Java. Aims to support Scala in the near future as well.

GraalVM with Native Image is also supported.

Their Discord is nice and friendly.

Lua 👥 🧩 ⚡

New and exciting binding that allows Lua to be used both directly and by calling into it from other languages.

Nim 👥 🧩 🔌 🌍 ⚡

Feature-complete, hot-reloadable implementation of Nim.

Orchestrator 👥 🧩 🧬 ⚡

Orchestrator is a visual scripting language with advanced macro support for high-level abstractions.

Friendly and competent support. Also usable for dialog scripting.

It provides rich API support, is implemented in C++, and compiles to native code.

Rust 👥 🧩 🔌 🌍 ⚡

You can find the project homepage here.

Very well-supported, good documentation, and an active community.

Swift 👥 🧩 🔌 ⚡

Very well-supported implementation by Miguel Deicaza.

There is also SwiftGodotKit

🤪 Curiosities

Stable programming languages... with a twist 😉

Enu 👥 ⚙️ 🔧 🧬

Logo-like framework in a block-based 3D world. Based on Nim.

Ink 👥 🏄 🔌

Scripting language for writing interactive narrative.

🥈 Halfway there

In active development, and comparable to being in the beta stage.

The emojis here might be incomplete.

Block Coding 👥 🧩 🧬

Scratch-like visual coding in blocks.

BlockFlow 👥 🧩 🧬

Eventsheet-based coding. A visual scripting designed to help in those scenarios where you need visual control of things that may happen sequentially in-game.

C 👥🧩

The TinyCC C compiler integrated as a GDExtension.

C++ / godot-object-compiler 👥⚙️🧩🔧

Godot ClassDB binding code generator for C++ GDExtensions and Modules.

D 👥 🧩 🔌

New, maintained binding to GDExtension, ported from the previous GDNative extension.

Dart 👥 🧩

The project's README contains a detailed roadmap.

FlowKit 👥 🧬

Intuitive visual event-based language.

Go 2 👥 🧩 🔌

Go bindings to GDExtension.

Lua 👥 ⚙️ 🧬 🔌

This version of Lua is currently undergoing a partial rewrite and seems to be stuck in development.

Odin 👥 🧩 🔌

An upcoming Odin binding using GDExtension. The README also mentions a (heavily-caveated) preprocessor mode called "Godin" for autogenerating Godot boilerplate.

Python 👥 🧩 🧬 🔌

Currently in reconstruction.

Python 2 👥 🧩 🧬 🔌

Python implementation from scratch.

Python 3 👥 🧩 🔌 (everyone loves Python)

Yet another Python GDExtension binding. Seems relatively inactive compared to the first two.

V 👥 🧩 🔌

Bindings for the V programming language.

WASM 👥 🏰 🏄 🌍

Bindings for wasm. Implemented via the Rust bindings.

WASM 2 👥 🏰 ⚙️ 🧩 🌍

Allows loading WASM libraries from other languages. Available as both a module and a GDExtension.

Zig 👥 🧩 🔌

Makes good progress, still in beta.

Zig 2 👥 🧩 🔌

Almost no documentation is provided. This project's status is uncertain.

Java 👥 🧩 🔌

Java bindings for Godot 4 via Panama FFI (Foreign Function & Memory API, ~50ns per call). Compile-time annotation processing (APT) for type discovery — zero runtime reflection. Requires Java 25+.

Kotlin 👥 🧩 🔌

In Development, uses Kotlin Native instead of JVM

Scala Native 👥 🧩

In Development, uses Scala Native instead of JVM.

Scala Native (SBT) 💍 🧩 🔌

Scala Native typesafe, batteries included implementation with the SBT build tool. Has a built-in Godot plugin for launching an SBT server from the editor. Supports simple syntax, can build nodes without any annotations (also supports annotations for custom inspector display e.g. show range, file open). Focused on implementing a seamless experience for developing games with Godot using Scala Native.

Verse 👥 🧩 🧬

Experimental support for Epic's Verse as a scripting language.

Help

As a small volunteer team with only two active maintainers (@ShalokShalom and @Vivraan), tracking community favourites versus cool upcoming demos of the GDExtension technology is challenging, given our busy schedules and attention spans 🫠

We welcome active contributors! If you are a language binding maintainer or wish to update us about new, existing, or discontinued projects, please submit a pull request with the relevant edits to this README.

We also accept issue submissions, but we will always prioritise PRs:

  • PRs allow us to gather attention from various community members, including project maintainers, when describing the project.
  • PRs take the pressure off, giving us time for detailed reviews and comments, and may even help us merge changes faster.

GitHub Copilot/LLM/GenAI Statement

We aren't a code repository, but we will be ironsighted about requests that we suspect have used generative AI. What we do use and permit is the use of grammar checkers, like LanguageTool and Grammarly.

What about Godot 3?

This list is for Godot 4. In case you are looking for Godot 3 bindings, find them at this commit

Note that some of the projects mentioned there have transitioned from Godot 3 to Godot 4, so you will have to use one of their older versions for compatibility. Contact project maintainers for more information and let us know ASAP!

Godot Engine and its modules are developed in C++. For info on those, please start with the official docs for contributing to the engine and understanding engine development.

In contrast, the languages provided here are for programming the game logic (often called scripting). There are different methods for extending the engine and granting additional language support:

  • Modules: maintainers/Developers define custom implementations of Godot's Script, ScriptInstance, and ScriptLanguage types in a module. Users add the module to the engine source code and compile the engine themselves (or a developer may provide precompiled binaries).

  • GDExtension: This is the official, new way to implement plugins for Godot 4. One of the limitations here is that it won't support the Nintendo Switch. It has the benefit that it does not need to be compiled into the engine, and gives more control over it.

Licensing note

The Godot Engine and its individual forks are licensed by their respective maintainers. Relevant licensing information is available on their website or on public source code mirrors.

  • See the language/scripting section on Wikipedia.
  • Gamesfromscratch made a video about some of the supported languages.
  • Jeff Ward gave a talk at GodotConf 2025 about adding new Script Languages to Godot.
  • (You can expand this list!)

Enjoy ^-^

blazium
gdextension
godot
godot3
godot4
godot-engine
godotengine
modules
pluginscript

Significant stargazers

Rémi Verschelde

1,792 followers · starred Sep 2020

Emmanuel Leblond

207 followers · starred Sep 2020

Simon Hartcher

118 followers · starred Jun 2025

Jakob Gillich

94 followers · starred Mar 2025