Custom Event System
This Event System is a framework built around the "Observer pattern" concept and at its core it's divided into two parts: Events and Listeners.
At any time you want (i.e: when the player presses a key) you can raise an "Event" and a "Listener" that was waiting for this event to be raised will do a certain series of actions specified by the user.
The system is straightforward, flexible and easy to use and there is also an editor tool to make your life even more easier while working with the system
Manual: https://docs.google.com/document/d/1S0BurKiqJpXNQ01DBuEvYKevgOU_TNgh5Ekrd-dvXl4/edit?usp=sharing