Your functions look a little redundant as the only difference is the creation of a different text object. You can just use one function like in my example and send another parameter through it with the text to set in a single text object. Your functions are also sub events of a global variable condition, not sure what this is for but checking a global variable at the time of line of sight so 2 things must be true can be risky.
Yes, I corrected the condition with a global variable, but the problem remains with the fact that the copy that was created by the very first project to itself, even if the player encounters another copy.
Maybe the problem is that the copies of the object are not created immediately as in your example, but appear arbitrarily at any time?
And in your case, the text is created by a variable, and I have a separate text sprite as I load my font and print effect there.
Two video problems. It shows that when the player touches 1 object, then 2 other copies create text.