This trainer is fairly versatile, does a lot of surfing either for D-A-R (Does that module work anymore? Not for me.) or restocking, pricing, etc. I've noticed that I got a few random events while it was stocking for me, so perhaps there could be a module you load alongside the others? Waits for a random event to pop up while the trainer's doing whatever it would normally be doing, and just records them for the user's curiosity at a later hour.
Define "D-A-R" and this can be done for all programs. Just simply add a Lcase(strHTML). Then elseif Instr(1, strHTML, "something has happened") then ' your GSB code here