That was an interesting link - thank you.
When UID’s were first introduced I recall reading a lot about the pros and cons from different viewpoints both liking and disliking various aspects of the UID solution. I sided initially on the “I don’t like them” side and that is why I didn’t use them.
Since using them, I have been converted and am now on the “I like them” side. No, they do not solve everything, yes they do involve some negative aspects, but it is an ingenious approach IMHO that I had not seen anywhere before (although nothing is completely original of course).
For me, any negatives (like populating the folders with lots of additional files) are currently overwhelmed by the positives, and I think they have proven, for me at least, to be extremely helpful and significantly improved my daily Godot UX.
I also did a quick test, I set up a scene with references to another test scene.
extends Node2D
@onready var test_preload: PackedScene = preload("uid://vgmmawohw0uu")
@onready var test_preload_2: PackedScene = preload("res://testing/uid_test/to_be_deleted.tscn")
All was fine, so I closed Godot and manually change the file name of the test scene to to_be_deleted_DELETED.tscn
When I opened the project, the UID now pointed to the renamed scene automatically. (I have no idea how it managed to know that but it did! I can only guess it is referencing something other than the files actual name, but what I don’t know.) However, the direct file reference preload threw an error.
So I commented out the file path preload, leaving just the UID, and closed the project again. I then manually deleted the test scene only from the folder and re-opened the project, and I got the error as expected that the UID was not recognised.
ERROR: Unrecognized UID: "uid://vgmmawohw0uu".
ERROR: res://testing/uid_test/uid_test.gd:3 - Parse Error: Preload file "uid://vgmmawohw0uu" does not exist.
ERROR: modules/gdscript/gdscript.cpp:3041 - Failed to load script "res://testing/uid_test/uid_test.gd" with error "Parse error".
But you were correct that no trace of what it was pointing to remained.
So, as I said, it does not solve everything, but I really like using them. What it does solve for me I encounter on a regular basis, and this example, at least for me, is very much an edge case.
So yes, I still really like them and think they are a clever solution to an otherwise difficult to solve issue.