Share the code mate, I don't know what "the stuff" is that's getting executed, or rather, isn't getting executed.What do you mean "immediately after the definition of $entry"? You mean the first assignment to the variable in the ThreadEntry: function? (new static())? why..? Why not wait till it's actually ready?Debugging via dump? Well, you can't really step through osTicket, because it's hideously complicated and relies on external things like email and cron (which you don't want to break in prod), so to dump things, just vardump or print_r them and exit, when you run cron manually (/usr/bin/php /osticket/api/cron.php) you'll see everything you dumped on the command line.. it's not great, but it works.The reason I go out of my way to make things plugins now, is because of updates. You'll have to rewrite everything every time you upgrade, and so will anyone using your code. Handily, anything can send signals whenever you want, however you want.. with whatever you want! It's pretty good. EG: Signal:('just fuckin work ya bastard', $thread);So, edits to core become just that, sending an object via a signal to your plugin. Much easier. Also, it gives you boilerplate config and such.