Looks good brother other than Code: public override void Pulse() { Thread.Sleep(2000); if (!CanUse()) { return; } From my understanding, you really don't want to use Thread.Sleep in your pulse as it will cause loads of lag and other issues. In otherwords, this stops the plug in every single pulse for 2 seconds to try to open boxes... My box opener works fine and it opens boxes when queuing for a BG or when Finished with a BG.