Releases: godothub/gode
Releases · godothub/gode
1.6.3
Changes
- Fixed JavaScript script instance argument marshaling from Godot callbacks by copying the incoming Variant pointer array before calling JS methods, preventing unstable native crashes in high-frequency callbacks.
- Advanced V8 microtasks from the Gode event loop and JavaScript signal callables so
await obj.to_signal(...)resumes reliably during gameplay. - Fixed generated inherited class method dispatch on subclass wrappers by resolving the shared Godot object handle before casting, preventing crashes such as
SceneMultiplayercalling inheritedMultiplayerAPImethods. - Reworked Godot object wrapper caching to preserve JavaScript script instance identity without relying on weak-reference finalizers that could crash during V8 garbage collection.
- Added async Promise rejection handling for JavaScript script methods and notifications, so errors after
awaitare reported to Godot instead of terminating the game process as unhandled Node rejections.
1.6.2
Changes
- Added live write-back for generated built-in values returned from Godot object properties, so member assignments such as
velocity.xandglobal_transform.originupdate the owner property. - Fixed weak object wrapper cache reuse after JavaScript GC, preventing repeated calls such as
get_multiplayer()from returning an invalid wrapper. - Resolved generated built-in constructor overloads by argument type instead of arity, including
Basis(Quaternion)andTransform3D(Quaternion, Vector3)style flows. - Added nested built-in parent write-back so chained assignments such as
global_transform.basis.x = ...propagate back to the owning property. - Evaluated generated built-in operators through Godot
Variant, enabling cross-type operations declared by the API such asBasis.multiply(Vector3)andTransform3D.multiply(Vector3). - Accepted
Quaternionvalues where generated bindings expectBasis, matching common root-motion and transform construction paths. - Corrected generated
Basis.x/y/zmember access to use Godot axis columns instead of godot-cpp row storage, fixing camera-relative direction calculations.
1.6.1
Changes
- Exposed generated built-in static methods on constructors, including APIs such as
Basis.looking_at(). - Preserved default arguments for generated built-in method bindings.
- Resolved underscored property accessors such as
_set_sizeto public setters when generating class properties. - Generated read-only class properties from getter-only Godot API metadata, including properties such as
World3D.direct_space_state.
1.6.0
Changes
- Exposed Godot class enum values on class constructors and singleton instances, so runtime code can use expressions such as
ResourceLoader.THREAD_LOAD_LOADED. - Exposed built-in type constants on JavaScript constructors and instances, including values such as
Vector3.UP,Vector3.ZERO, andColor.WHITE. - Preserved Godot API default arguments in generated JavaScript class bindings, so calls such as
Node3D.look_at(target)use Godot's documented defaults instead of zero/empty fallback values. - Expanded generated default argument support for
RIDand typed array parameters. - Added JavaScript iteration support for Godot arrays and packed arrays, enabling
for...ofloops over values such asArrayandPackedInt32Array. - Added JavaScript and TypeScript script method metadata, including method lists and argument counts.
- Improved Object wrapper fallback and ownership tracking for wrapped Godot objects.
1.5.0
Changes
- Added JavaScript autoload support for scripts whose default export extends a Godot base class, including
godot.Nodestyle imports. - Added JavaScript script metadata parsing for static
signalsdeclarations, so JavaScript-defined signals are visible to Godot metadata APIs and can be connected normally. - Added JavaScript RPC metadata support through static
rpc_config, enabling Godot RPC calls to target JavaScript methods with configured mode, transfer mode, channel, and local-call behavior. - Exported Godot runtime singletons from the
godotmodule andglobalThis, with lazy singleton lookup and editor-only protection forEditorInterface. - Improved Object wrapper lifetime handling by updating wrapped object IDs, retaining
RefCountedinstances, and reporting clearer class/method errors when a wrapped Godot object has already been deleted. - Fixed scene/resource instantiation paths that returned wrapped Godot objects from JavaScript, including
PackedScene.instantiate()usage in headless/runtime flows. - Expanded English and Chinese documentation for advanced JavaScript/TypeScript usage, including autoloads, signals, RPC metadata, exports/tool scripts, resource loading, debugging, TypeScript workflow, and export guidance.
v1.4.2
Gode 1.4.2 focuses on editor stability, clearer TypeScript workflow ownership, and runtime cleanup.
Changes
- Fixed a Godot editor PopupMenu error when enabling the plugin by moving JavaScript and TypeScript script icons into the GDExtension manifest instead of mutating the editor theme at runtime.
- Removed automatic
tsc --watchstartup from the plugin. TypeScript compilation is now fully controlled by the project, so users can configure their own compiler, watcher, bundler, or package manager workflow. - Updated TypeScript script loading so
.tsand.tsxscripts resolve their runtime JavaScript output fromres://dist. - Kept JavaScript script loading direct, without falling back to
res://dist. - Fixed script source detection for JavaScript resources.
- Fixed an ObjectDB leak warning on shutdown by releasing registered JavaScript and TypeScript language singletons during GDExtension teardown.
- Updated export documentation to recommend export presets that include runtime JavaScript/JSON files,
dist,node_modules, andpackage.json.
v1.4.1
Fix packaged gdextension path