/Godot 3.2


Inherits: Resource < Reference < Object

An external library containing functions or script classes to use in Godot.


A GDNative library can implement NativeScripts, global functions to call with the GDNative class, or low-level engine extensions through interfaces such as ARVRInterfaceGDNative. The library must be compiled for each platform and architecture that the project will run on.



ConfigFile config_file
bool load_once true
bool reloadable true
bool singleton false
String symbol_prefix "godot_"


PoolStringArray get_current_dependencies ( ) const
String get_current_library_path ( ) const

Property Descriptions

ConfigFile config_file

Setter set_config_file(value)
Getter get_config_file()

This resource in INI-style ConfigFile format, as in .gdnlib files.

bool load_once

Default true
Setter set_load_once(value)
Getter should_load_once()

If true, Godot loads only one copy of the library and each script that references the library will share static data like static or global variables.

If false, Godot loads a separate copy of the library into memory for each script that references it.

bool reloadable

Default true
Setter set_reloadable(value)
Getter is_reloadable()

If true, the editor will temporarily unload the library whenever the user switches away from the editor window, allowing the user to recompile the library without restarting Godot.

Note: If the library defines tool scripts that run inside the editor, reloadable must be false. Otherwise, the editor will attempt to unload the tool scripts while they're in use and crash.

bool singleton

Default false
Setter set_singleton(value)
Getter is_singleton()

If true, Godot loads the library at startup rather than the first time a script uses the library, calling {prefix}gdnative_singleton after initializing the library (where {prefix} is the value of symbol_prefix). The library remains loaded as long as Godot is running.

Note: A singleton library cannot be reloadable.

String symbol_prefix

Default "godot_"
Setter set_symbol_prefix(value)
Getter get_symbol_prefix()

The prefix this library's entry point functions begin with. For example, a GDNativeLibrary would declare its gdnative_init function as godot_gdnative_init by default.

On platforms that require statically linking libraries (currently only iOS), each library must have a different symbol_prefix.

Method Descriptions

PoolStringArray get_current_dependencies ( ) const

Returns paths to all dependency libraries for the current platform and architecture.

String get_current_library_path ( ) const

Returns the path to the dynamic library file for the current platform and architecture.

© 2014–2020 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.