-
What do you want to achieve?
Trying to see if this issue is intended behavior or not and if other people have the same problem. -
What is the issue?
When you try to store an object of the class RBXScriptSignal it seems to be referenced/serialized incorrectly where you can no longer access that index with the same object, as if everytime you indexed the signal (“game.Changed”) you got a seperate instance everytime. Below is an example of what I mean by this.
local signal = game.Changed --Script Signal
local a = {} --table
a[signal] = true
print(a[game.Changed]) --NIL
print(a[signal]) --true
print(signal == game.Changed) --yet this is true, meaning they should be the same
This doesnt really make sense to me as they should be the same signal.
Another thing I found was that the connect function under script signals are constantly changing, unlike other instance methods, which leads me to believe that the signal is changing everytime it is indexed(?):
while wait() do
print(tostring(game.GetChildren)) --same output everytime, function not changing
print(tostring(game.Changed.Connect)) --changes output everytime, function is changing
end
-
What solutions have you tried so far? Did you look for solutions on the Developer Hub?
While a workaround is possible through your own serialization and such, this is tedious and I believe it shouldn’t be an issue altogether. I would’ve posted this in bugs had I had the required roles.
Im really just asking if this is desired behavior or a bug because I’m trying to develop a system that allows me to create one connection for each signal I use and I have to store these signals as indexes in a table to keep track of functions connected to them, and this problem has caused me to have to make my own way to “serialize” the signals to avoid this.