moonshineshadow: This makes me wonder how many people are just using part of the script. Because I also only have the script active in my library :D
adaliabooks: To be honest my preferred method would have been to make multiple separate scripts for each part of the site (forum, library, game pages etc.) and then have one script to load them all for people who wanted that, but unfortunately there was no way to combine multiple userscripts together like that (not that I could see)..
And it's easier for me to maintain one script that does everything then loads of separate ones...
But I could probably add a little guide for customising it so it only runs on certain pages or only uses certain functions if that would help..
That depends on what you mean by having one userscript load others. (Greasemonkey is already a loader, so do you mean stitching them together into a single, coherent UI?)
That aside, if I really can't suggest a solution for that once I know more, the execution of the Javascript is far and away the heaviest part (especially when it's manipulating the DOM), so why not do this to lighten the load for people who don't want everything:
1. Give each feature a checkbox to turn it on or off entirely
2. Store all of the enable/disable decisions in a single JSON blob behind a single GM_getValue() call. (Parsing JSON is much faster than multiple queries to the SQLite database backing GM_getValue)
3. Have each init call within the block at the bottom of the script be conditional on one of those values.
4. Only patch the account menu with the configuration UI on pages where a feature is enabled.
5. Add a "configure ..." entry to the Greasemonkey "User Script Commands" menu as a way to recover if you disable all features.
That way, on pages with no relevant features enabled, it's merely "load and parse script" (must be fast for things like the asm.js-compiled Unreal engine), "call JSON.parse(GM_getValue(...))", and "add a User Script Commands menu entry which will trigger the deferred loading of the config UI".