Anyways there is absolutely no reason to use eval there
%name = $OutputEvent_Name[%class, %output];
All I remember is trying to do this but it didn't work, so I just used eval.
I'll change it next time I release an update, but it's not really an issue to warrant an update just to it's own.
Also, my chatbot's datafile is messed up. It consists of a lot of global variables, and a lot of them are suddenly gone. I'm wondering if somehow something deleted a lot of global variables on the server, and if whatever this something was, it also deleted variables declared by the registerAdminOnlyOutputEvent function?
I have no way of testing this theory, however
Fixed
I have no idea what you fixed, or what you're trying to prove, as what Port said is correct
Could the events have been placed on a non-admins brick by an admin, then a non-admin used them and/or just edited them?
No; the events require super-admin status to place, no one other than me has super-admin, and I know I did not place them. They were on a series of JVS buttons, each one calling a different environment event