Port to 4.4
The addon is completely unusable in Godot 4.4, a lot of functions is missing, a lot of parse errors, and Icons not showing up if used as button icons.
Hi, this is not specific to version 4.4. This is a current limitation of Godot that requires to re-open the project on the first time the addon is installed. I've just confirmed on v4.4.dev7 that it works as intended once you reload the project.
Please confirm if everything works correctly after that.
I can confirm that it works fine in 4.4-beta1.
Unfortunately I'm still constantly getting the following error reported previously.
I just want to add onto this that I migrated my project using controller_icons without any errors or issues. v4.4.stable.steam [4c311cbee]
This probably needs more testing, but as of now I wonder if there are any breaking issues in using the latest release of controller_icons for Godot v4.4
Hi, this is not specific to version 4.4. This is a current limitation of Godot that requires to re-open the project on the first time the addon is installed. I've just confirmed on v4.4.dev7 that it works as intended once you reload the project.
Please confirm if everything works correctly after that.
Everything is working fine in game but every time (not just once) I'm opening the project I'm getting
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
ERROR: (3) res://addons/controller_icons/objects/ControllerIconTexture.gd:165 - Invalid call. Nonexistent function 'is_node_ready' in base 'Nil'.
The addon is completely unusable in Godot 4.4, a lot of functions is missing, a lot of parse errors, and Icons not showing up if used as button icons.
@GM637 Could you please rephrase the description of your issue to reflect the actual state? It is at least working for some, so perhaps you could also specify your specific setup and the error messages you're seeing. Thanks.
@GM637 @3ter a very similar issue was reported on #146, and there someone found out it had to do with the singleton load order. If you have some singleton in your project that implicitly loads controller icons before the ControllerIcons singleton is loaded, this issue occurs. Please confirm if your issues are fixed if you move the ControllerIcons singleton to the top of the Autoload list.
If that's the case, I'll try to find a way to report this quirk much more clearly to developers.
Thanks @rsubtil , I've changed the order and will check. I had the impression it didn't occur "every" time so let me see if it occurs again at all in the coming days.
EDIT: Ah, well, after restarting the engine I've still got
ERROR: res://addons/controller_icons/objects/ControllerIconTexture.gd:187 - Invalid access to property or key 'input_type_changed' on a base object of type 'Nil'.
[...]
with
@3ter does that error occurs on the editor, or while already in-game?
If it happens on the editor, could you try modifying _init in ControllerIconTexture.gd to print the stack trace?
func _init():
if not is_instance_valid(ControllerIcons):
print_stack()
ControllerIcons.input_type_changed.connect(_on_input_type_changed)
If it happens in game, can you check your remote scene tree to check the loaded singletons, and their current node order?
@rsubtil I only see it in the editor. I've reloaded the engine now 10 times or so. About 2 times everything was fine:
ControllerIcons: ControllerIcons:<Node#2131696368639>
but most of the time
ControllerIcons: <null>
but the print_stack() didn't make any difference (nothing was logged in the console.
⚡ AND your right, when it's working Add Autoload is in front of the initialization and if it's not it comes after!
Godot Engine v4.4.1.stable.official (c) 2007-present Juan Linietsky, Ariel Manzur & Godot Contributors.
--- Debug adapter server started on port 6006 ---
--- GDScript language server started on port 6005 ---
Add Autoload
ControllerIcons: ControllerIcons:<Node#2131763477523>
vs
Godot Engine v4.4.1.stable.official (c) 2007-present Juan Linietsky, Ariel Manzur & Godot Contributors.
--- Debug adapter server started on port 6006 ---
--- GDScript language server started on port 6005 ---
ControllerIcons: <null>
Add Autoload
Hi, 4.5.1 here just starting out. I was trying to use the master branch, but it seemed to be using outdated syntax so I went with @greenpixels' fork, which worked out of the box - except that buttons don't render while in-game. They appear fine in the editor. Is this the same issue, or a new one?
Hi, 4.5.1 here just starting out. I was trying to use the master branch, but it seemed to be using outdated syntax so I went with @greenpixels' fork, which worked out of the box - except that buttons don't render while in-game. They appear fine in the editor. Is this the same issue, or a new one?
Hi @0x70b1a5, best to open a new issue with more details of what is happening. This issue will eventually be mitigated (as soon as I have some free time back 😅 ) after the latest findings, as the issue isn't specific to 4.4 from what I can tell.