@tool extends Node func _ready(): print("=== LightmapGI Method Check (Godot 4.2) ===") # Check bake method via ClassDB var has_bake = ClassDB.class_has_method("LightmapGI", "bake") print("ClassDB: LightmapGI has bake()? ", has_bake) # Actually instantiate and check var scene = load("res://assets/scenes/modular/kit_demo.tscn") if not scene: printerr("Cannot load scene") get_tree().quit(1) return var inst = scene.instantiate() get_tree().root.add_child(inst) var lgi = null for c in inst.get_children(): if c is LightmapGI: lgi = c break if lgi: var has_bake_runtime = lgi.has_method("bake") print("Runtime: LightmapGI has bake()? ", has_bake_runtime) if has_bake_runtime: print("OK: bake() is available!") else: print("NOT AVAILABLE: bake() is not in the runtime API") # List custom methods (not from Node3D) var custom = [] for m in lgi.get_method_list(): var name = m.get("name") if m is Dictionary else "" # Skip Node3D/Node/Object methods if name.begins_with("set_") or name.begins_with("get_") or name.begins_with("is_"): if name not in [ "set_name", "get_name", "set_visible", "is_visible", "is_visible_in_tree", "set_process", "is_processing", "set_physics_process", "is_physics_processing", "set_owner", "get_owner", "set_transform", "get_transform", "set_position", "get_position", "set_rotation", "get_rotation", "set_scale", "get_scale", "set_global_transform", "get_global_transform", "set_global_position", "get_global_position", "set_global_basis", "get_global_basis", "set_meta", "get_meta", "has_meta", "set_script", "get_script", "set_block_signals", "is_blocking_signals", "set_message_translation", "set_notify_transform", "is_transform_notification_enabled", "set_notify_local_transform", "is_local_transform_notification_enabled", "set_as_top_level", "is_set_as_top_level", "set_disable_scale", "is_scale_disabled", "set_layer_mask", "get_layer_mask", "set_layer_mask_value", "get_layer_mask_value", "set_sorting_offset", "get_sorting_offset", "set_sorting_use_aabb_center", "is_sorting_use_aabb_center", "set_editable_instance", "is_editable_instance", "set_scene_file_path", "get_scene_file_path", "set_unique_name_in_owner", "is_unique_name_in_owner", "set_editor_description", "get_editor_description", "set_rotation_degrees", "get_rotation_degrees", "set_rotation_order", "get_rotation_order", "set_rotation_edit_mode", "get_rotation_edit_mode", "set_physics_process_priority", "get_physics_process_priority", "set_process_priority", "get_process_priority", "set_process_thread_group", "get_process_thread_group", "set_process_thread_messages", "get_process_thread_messages", "set_process_thread_group_order", "get_process_thread_group_order", "set_physics_interpolation_mode", "get_physics_interpolation_mode", "set_auto_translate_mode", "get_auto_translate_mode", "set_display_folded", "is_displayed_folded", "set_process_mode", "get_process_mode", "set_process_internal", "is_processing_internal", "set_physics_process_internal", "is_physics_processing_internal", "set_visibility_parent", "get_visibility_parent", ]: custom.append(name) print("LightmapGI-specific methods: ", custom) get_tree().quit(0)