Not necessarily, as long as it’s a module script or the event is in the same script, you can detect it whether or not it’s parented to something. I use that all the time
Perhaps, but why would you need to accept signals from the same script? Those are relatively rare occasions and there are often better, performance friendlier workarounds.
Dialogue = DialogueModule:Create("Landing successful. You may now get up.","E-Assistant",285582551)
-- the function yields the thread and the event fires before it's able to get to it
coroutine.wrap(function()
Dialogue:Run(Player)
end)()
Dialogue.Finished:Wait()
or
Dialogue = DialogueModule:Create("Landing successful. You may now get up.","E-Assistant",285582551)
coroutine.wrap(Dialogue.Run)(Dialouge, Player)
Dialogue.Finished:Wait()
It seems to have worked, I’m getting the message in the output, though the dialogue thats supposed to appear afterward doesn’t pop up, but thats probably some unrelated error on my part.
Edit: It is, I was setting the box to be invisible right after the event fired to make it appear