How to wait for multiple events to fire

I’m not really sure how to explain this but I am currently experimenting with making doors using modulescripts and an OOP system, when a door is created on an instance with BasicDoor.new() an event is created in a premade Zone(invisible uncollidable part around door) which a player can fire by pressing E. What I’m unsure of is how to trigger a method of BasicDoor when the event is fired without writing a different :connect() for every single door. Ideally I could just submit each event to an array and then trigger x:onActivate() with x being whatever instance its BasicDoor class is attached to thought I doubt this is possible. I’m sure that this is kind of a confusing post as I don’t really understand how I should do this so please post any questions you have, thank you.

Uhh, don’t over complicate things?

Just use a proximity prompt, this way you can distinguish who is pressing E without much effort on who opened which specific door via the traditional method of doing distance checks between every player’s position and the position of the current door magnitude.

Check out this cool resource which has an example of how proximity prompts work, to OOP it, when you do BasicDoor.new(door : Part) you can just create a new proximity prompt under that part which does the door opening tween: