ob_start() is not necessary. That's how I used to do it until I researched a bit more. flush() basically outputs all the data that the script currently has, to the browser. So you don't actually need to initiate (and then end) an output buffer. Easy/quick way out.

ignore_user_abort is actually a great fix. Didn't think of that earlier. Nice fix, v3g

I'm thinking of keeping the same plugin system. Consolidating all hosts in one file is, IMO, a better idea. Maintains efficiency because you don't have to include more files and such. I'm going to add new filehost support though. I have a fair few filehosts in mind. I just need to snap out of my 'laziness' though