0 votes

I'm building a TD game with an enemySpawner which handles just that.

I've recently erased from enemies a "life_changed" signal which they all had. For some reason, the editor still tries to connect that signal when instanciating objects.

This error appears on line: "var enemy = tipo.enemy.instance()", where "tipo" refers to the given dictionary. And tipo.enemy refers to the preload Scene within that dictionary.

Also: there used to be a "colorRect" representing life which got the signal and act on it. But for all ColorRects i've cleaned the .gd file so that shouldnt be a problem.

i have also checked the timeout function but it has no clue whatsoever.

If anyone could help me, i've ran out of ideas here.

E 0:00:07.175 connect: In Object of type 'KinematicBody2D': Attempt to connect nonexistent signal 'lifechanged' to method 'ColorRect.onenemypedonormallifechanged'.
Condition "!signal
isvalid" is true. Returned: ERRINVALIDPARAMETER
core/object.cpp:1500 @ connect()
enemySpawner.gd:93 @ spawn()
enemySpawner.gd:153 @ _on
spreadTimer_timeout()

Godot version 3.3.2
in Engine by (12 points)

1 Answer

+1 vote

It sounds like You removed signal itself, but not connect() method. You must have forgotten about one ColorRect that still has this method. Perhaps there is some subclass, whose superclass tries to connect to it ?

by (7,447 points)
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 Frequently asked questions and 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 [email protected] with your username.