0 votes

I have no idea what this means, I've never seen this warning and I can't find anyone else that's had it.

" parseconnections: Condition "!common_parent" is true. Continuing. "

func _on_Toy_btn_pressed():
    var x = range(0,10)
    var highlight = Button.new()
    var empty = StyleBoxEmpty.new()
    highlight.rect_min_size = Vector2(100,100)
    highlight.set('custom_styles/normal', empty )
    var highlighted = PackedScene.new()
    highlighted.pack(highlight)    #--------------This is where my error is.
    for c in x:

This only happened after I added the enum flags (2) at the end of my signals, in an attempt to keep the buttons working after the scene is packed for instancing. Before that, my signal connect weren't working at all.

in Projects by (263 points)

So, I didn't find the answer. But I got the buttons to work. Turns out the connect() methods had to be applied to the instance after it was created at the bottom.

If anyone knows what the error meant and why, I'd appreciate it. just for knowledge purposes.

Hi all, I am a Godot newbie. I had the same error but it was due to other reasons. Thought I'd add a comment in case this helps someone else resolve their issue.

Like njamster mentioned, reading "!common_parent" out loud to say "not common parent" helped me find the solution, as in "whatever you're trying to do is throwing an error because something does not have a common parent."

I realized that the issue was the .tscn import I was doing. I had edited the children in the main scene GUI, but what I need to do is OPEN the .tscn in a new tab by clicking on the film icon, make whatever edits I want there, save, and close the tab. The edits I was making was essentially not popping up in the .tscn file, so the parent was misplaced--Godot couldn't recognize a common parent! After I make those fixes, now the edits appear in the main GUI without the "!common_parent" error.

(For reference, I created the .tscn file by exporting from Blender using this exporter: https://docs.godotengine.org/en/stable/getting_started/workflow/assets/escn_exporter/index.html. I then renamed the .escn file to .tscn because for some reason sometimes Godot didn't recognize the .escn extension. Someone mentioned in some thread somewhere that .escn was becoming obsolete and Godot treats .tscn and .escn the same way anyways, so now I always change the .escn extension to .tscn. Phew!)

1 Answer

+1 vote
Best answer

The exclamation mark in the error message means "not", so the error tries to tell you that two nodes don't have a common parent node, i.e. are in separate scene trees. Which is true because the button has not been added to any tree when you connect the signals, thus it simply cannot be in the same tree as self or pet.

However, from your code snippet I don't see why you'd need a PackedScene in the first place. Are you aware that new() already returns an instance?

for c in range(0, 10):
    # create a new button instance
    var highlight = Button.new()

    # modify the instance properties
    highlight.rect_min_size = Vector2(100, 100)
    highlight.set('custom_styles/normal', empty)
    highlight.connect("pressed", pet, "_praise", ["toy", "doll"], 2)
    highlight.connect("pressed", self, "_clean_up", [highlight.get_instance_id()], 2)

    # add the instance to the tree
by (10,057 points)
selected by

I did not! Thank you for clearing that up! :D

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.