So I figured out how I'm going to rewrite this script. I'm not starting yet, but I will be soon. Over the course of the rewrite, all the current features will be preserved, and all the current bugs will be fixed. The main purpose of the rewrite is to reorganize the code, extract unnecessary features and turn them into plugins, and allow the system to easily be expanded and modified. This will pave the way for the last few pieces of functionality, and then the final version, after which the core system will no longer be updated (although plugins will still be made).