Can ModuleScripts fire events?

I would just use a BindableEvent. You don’t have to parent it to anything, you can just Instance.new it and keep it around as a variable.

There are ways to re-implement event functionality with coroutines and things, but it would be more complicated, slightly slower, and would require any users to learn your custom solution rather than just having normal roblox-supported objects.

If you do want to still go the custom route and totally avoid BindableEvents for some reason, see this thread:

Specifically, the link to Quenty’s Signal class. (That actually uses a BindableEvent internally, just does some tricks to avoid deep-copying the table)

Specifically, the link to this solution which does not use BindableEvents. There are links to better implementations as well.

1 Like