controller_icons icon indicating copy to clipboard operation
controller_icons copied to clipboard

Port to 4.4

Open GM637 opened this issue 11 months ago • 3 comments

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 avatar Jan 01 '25 04:01 GM637

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.

rsubtil avatar Jan 01 '25 14:01 rsubtil

I can confirm that it works fine in 4.4-beta1.

Unfortunately I'm still constantly getting the following error reported previously.

Image

the-old-one avatar Jan 22 '25 22:01 the-old-one

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

greenpixels avatar Mar 04 '25 20:03 greenpixels

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'.

3ter avatar Mar 30 '25 08:03 3ter

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.

3ter avatar Mar 30 '25 08:03 3ter

@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.

rsubtil avatar Jun 08 '25 11:06 rsubtil

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

Image

3ter avatar Jun 08 '25 17:06 3ter

@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 avatar Jun 10 '25 13:06 rsubtil

@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

3ter avatar Jun 10 '25 15:06 3ter

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?

0x70b1a5 avatar Nov 03 '25 05:11 0x70b1a5

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.

rsubtil avatar Nov 08 '25 14:11 rsubtil