Events On/Off seem a little misleading. If it’s not too late what about Attach/Detach?
Also, the comment in the events example:
// remove move event listeners
player.script.player.off("move");
Does this remove all event listeners for the MOVE event regardless of origin?
I can understand how the Player class may want to have that ability, especially during destruction, but should other classes have that kind of control over others?