@@ -515,7 +515,8 @@ typedef void *GDExtensionScriptInstanceDataPtr; // Pointer to custom ScriptInsta
515515typedef GDExtensionBool (* GDExtensionScriptInstanceSet )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionConstStringNamePtr p_name , GDExtensionConstVariantPtr p_value );
516516typedef GDExtensionBool (* GDExtensionScriptInstanceGet )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionConstStringNamePtr p_name , GDExtensionVariantPtr r_ret );
517517typedef const GDExtensionPropertyInfo * (* GDExtensionScriptInstanceGetPropertyList )(GDExtensionScriptInstanceDataPtr p_instance , uint32_t * r_count );
518- typedef void (* GDExtensionScriptInstanceFreePropertyList )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionPropertyInfo * p_list );
518+ typedef void (* GDExtensionScriptInstanceFreePropertyList )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionPropertyInfo * p_list ); // Deprecated. Use GDExtensionScriptInstanceFreePropertyList2 instead.
519+ typedef void (* GDExtensionScriptInstanceFreePropertyList2 )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionPropertyInfo * p_list , uint32_t p_count );
519520typedef GDExtensionBool (* GDExtensionScriptInstanceGetClassCategory )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionPropertyInfo * p_class_category );
520521
521522typedef GDExtensionVariantType (* GDExtensionScriptInstanceGetPropertyType )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionConstStringNamePtr p_name , GDExtensionBool * r_is_valid );
@@ -529,7 +530,8 @@ typedef void (*GDExtensionScriptInstancePropertyStateAdd)(GDExtensionConstString
529530typedef void (* GDExtensionScriptInstanceGetPropertyState )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionScriptInstancePropertyStateAdd p_add_func , void * p_userdata );
530531
531532typedef const GDExtensionMethodInfo * (* GDExtensionScriptInstanceGetMethodList )(GDExtensionScriptInstanceDataPtr p_instance , uint32_t * r_count );
532- typedef void (* GDExtensionScriptInstanceFreeMethodList )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionMethodInfo * p_list );
533+ typedef void (* GDExtensionScriptInstanceFreeMethodList )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionMethodInfo * p_list ); // Deprecated. Use GDExtensionScriptInstanceFreeMethodList2 instead.
534+ typedef void (* GDExtensionScriptInstanceFreeMethodList2 )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionMethodInfo * p_list , uint32_t p_count );
533535
534536typedef GDExtensionBool (* GDExtensionScriptInstanceHasMethod )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionConstStringNamePtr p_name );
535537
@@ -589,7 +591,7 @@ typedef struct {
589591
590592 GDExtensionScriptInstanceFree free_func ;
591593
592- } GDExtensionScriptInstanceInfo ; // Deprecated. Use GDExtensionScriptInstanceInfo2 instead.
594+ } GDExtensionScriptInstanceInfo ; // Deprecated. Use GDExtensionScriptInstanceInfo3 instead.
593595
594596typedef struct {
595597 GDExtensionScriptInstanceSet set_func ;
@@ -630,7 +632,48 @@ typedef struct {
630632
631633 GDExtensionScriptInstanceFree free_func ;
632634
633- } GDExtensionScriptInstanceInfo2 ;
635+ } GDExtensionScriptInstanceInfo2 ; // Deprecated. Use GDExtensionScriptInstanceInfo3 instead.
636+
637+ typedef struct {
638+ GDExtensionScriptInstanceSet set_func ;
639+ GDExtensionScriptInstanceGet get_func ;
640+ GDExtensionScriptInstanceGetPropertyList get_property_list_func ;
641+ GDExtensionScriptInstanceFreePropertyList2 free_property_list_func ;
642+ GDExtensionScriptInstanceGetClassCategory get_class_category_func ; // Optional. Set to NULL for the default behavior.
643+
644+ GDExtensionScriptInstancePropertyCanRevert property_can_revert_func ;
645+ GDExtensionScriptInstancePropertyGetRevert property_get_revert_func ;
646+
647+ GDExtensionScriptInstanceGetOwner get_owner_func ;
648+ GDExtensionScriptInstanceGetPropertyState get_property_state_func ;
649+
650+ GDExtensionScriptInstanceGetMethodList get_method_list_func ;
651+ GDExtensionScriptInstanceFreeMethodList2 free_method_list_func ;
652+ GDExtensionScriptInstanceGetPropertyType get_property_type_func ;
653+ GDExtensionScriptInstanceValidateProperty validate_property_func ;
654+
655+ GDExtensionScriptInstanceHasMethod has_method_func ;
656+
657+ GDExtensionScriptInstanceCall call_func ;
658+ GDExtensionScriptInstanceNotification2 notification_func ;
659+
660+ GDExtensionScriptInstanceToString to_string_func ;
661+
662+ GDExtensionScriptInstanceRefCountIncremented refcount_incremented_func ;
663+ GDExtensionScriptInstanceRefCountDecremented refcount_decremented_func ;
664+
665+ GDExtensionScriptInstanceGetScript get_script_func ;
666+
667+ GDExtensionScriptInstanceIsPlaceholder is_placeholder_func ;
668+
669+ GDExtensionScriptInstanceSet set_fallback_func ;
670+ GDExtensionScriptInstanceGet get_fallback_func ;
671+
672+ GDExtensionScriptInstanceGetLanguage get_language_func ;
673+
674+ GDExtensionScriptInstanceFree free_func ;
675+
676+ } GDExtensionScriptInstanceInfo3 ;
634677
635678/* INITIALIZATION */
636679
@@ -2412,7 +2455,7 @@ typedef void (*GDExtensionInterfaceRefSetObject)(GDExtensionRefPtr p_ref, GDExte
24122455/**
24132456 * @name script_instance_create
24142457 * @since 4.1
2415- * @deprecated in Godot 4.2. Use `script_instance_create2 ` instead.
2458+ * @deprecated in Godot 4.2. Use `script_instance_create3 ` instead.
24162459 *
24172460 * Creates a script instance that contains the given info and instance data.
24182461 *
@@ -2426,6 +2469,7 @@ typedef GDExtensionScriptInstancePtr (*GDExtensionInterfaceScriptInstanceCreate)
24262469/**
24272470 * @name script_instance_create2
24282471 * @since 4.2
2472+ * @deprecated in Godot 4.3. Use `script_instance_create3` instead.
24292473 *
24302474 * Creates a script instance that contains the given info and instance data.
24312475 *
@@ -2436,6 +2480,19 @@ typedef GDExtensionScriptInstancePtr (*GDExtensionInterfaceScriptInstanceCreate)
24362480 */
24372481typedef GDExtensionScriptInstancePtr (* GDExtensionInterfaceScriptInstanceCreate2 )(const GDExtensionScriptInstanceInfo2 * p_info , GDExtensionScriptInstanceDataPtr p_instance_data );
24382482
2483+ /**
2484+ * @name script_instance_create3
2485+ * @since 4.3
2486+ *
2487+ * Creates a script instance that contains the given info and instance data.
2488+ *
2489+ * @param p_info A pointer to a GDExtensionScriptInstanceInfo3 struct.
2490+ * @param p_instance_data A pointer to a data representing the script instance in the GDExtension. This will be passed to all the function pointers on p_info.
2491+ *
2492+ * @return A pointer to a ScriptInstanceExtension object.
2493+ */
2494+ typedef GDExtensionScriptInstancePtr (* GDExtensionInterfaceScriptInstanceCreate3 )(const GDExtensionScriptInstanceInfo3 * p_info , GDExtensionScriptInstanceDataPtr p_instance_data );
2495+
24392496/**
24402497 * @name placeholder_script_instance_create
24412498 * @since 4.2
0 commit comments