If you want to help, or if you are a language maintainer, see here: https://github.com/Vivraan/godot-lang-support/issues
This list is for Godot 4. In case you are looking for Godot 3 bindings, find them here
Note that some of that projects have moved on to Godot 4, so you will have to use one of their older versions.
See the README or contact the project for further information.
The engine itself, and the Godot modules are developed in C++. For 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. There are different methods for extending the engine, and granting additional language support:
-
Modules: Maintainers/Developers define custom implementations of Godot's
Script
,ScriptInstance
, andScriptLanguage
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 wont 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.
- 𧬠Can be edited inside Godot Engine
- π Has support for the Godot API in an external editor.
- π Official
- π₯ Community-maintained
- βοΈ Module
- 𧩠GDExtension
- π "Surfs" on another language
- π° Sandboxes the code
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 not only hot reloadable C++ game scripting, editor support within Visual Studio, Visual Studio Code, and Godot itself, but also a lot of other features like support for nested GDExtension development, an inbuilt virtual machine for starting an entire OS, that can be embedded into the game, and interact with it.
It also provides its own API for the development of extensions, although currently undocumented.
Limited to Windows and Linux as development platform.
A non-free edition that provides encrypted code obfuscation and more, is also available.
C++, Rust and Zig π₯ π° π§©
This mainly focuses on Cpp and Rust support and also features Zig. It sandboxes the code and is suitable for modding support.
C# π π βοΈ π§©
C# support is made possible by an official Godot module. If you have the dotnet version of Godot or Blazium, it comes built-in. It does not support web export via wasm as of now.
D π₯ π π§©
New, maintained binding to GDExtension.
GDScript π 𧬠π βοΈ
GDScript is actively maintained, documented and is stable. It is the primary language in the Godot ecosystem, has the most tutorials online, and deep Godot editor support. Can be extended with Golden Nugget.
Haxe π₯ π π
Does compile 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. Their Discord is nice and friendly.
Lua π₯ π§©
New and exciting binding, that allows to use Lua both directly, and as well 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 to provide 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.
Swift π₯ π π§©
Very well-supported implementation by Miguel Deicaza.
There is also SwiftGodotKit
Stable programming languages, ... with a twist π
Enu π₯ 𧬠βοΈ
Experimental block-based language and framework.
Ink π₯ π π
Scripting language for writing interactive narrative.
In active development, and comparable to being in the beta stage.
Block Coding 𧬠π₯ π§©
Scratch-like visual coding in blocks.
Dart π₯ π§©
The project's README contains a detailed roadmap.
Go 1 π₯ π π§©
Go bindings to GDExtension.
Go 2 π₯ π π§©
Go bindings to GDExtension. Possible to use it for shaders.
Lua π₯ 𧬠π βοΈ
This version of Lua is currently undergoing a partial rewrite and seems to be stuck in development.
Python π₯ 𧬠π π§©
Currently in reconstruction.
Python 2 π₯ 𧬠π§©
Python implementation from scratch.
WASM π₯ π° π
Bindings for wasm. Implemented via the Rust bindings.
WASM 2 π₯ π° βοΈ π§©
Allows to load WASM libraries from other languages. Available as both module and GDExtension.
Zig π₯ π π§©
Almost no documentation is provided, uncertain about the status of the project.
- See the language/scripting section on Wikipedia.
- Gamesfromscratch made a video about some of the supported languages.
- (You can expand this list!)