Rated 4 out of 5 stars

Well, it works, but not without problems (I think so)...

I have some little scripts for custom buttons, they work fine with the setup in thunderbirds 68.x folders described here:
https://www.thunderbird-mail.de/forum/thread/80290-anpassung-per-userchromejs-per-script-ab-version-60/

I switched full to this AddOn (have deleted all added extra files from above).

Now only userChrome.js is loaded. Scripts in this file works well. But no extra userscript named as *.uc.js will work.
It is not possible to set userChrome.import("*", "UChrm").
And I can't figure out how to run the userscripts.

So I deleted this add-on, but:
Don't know for sure, but after deleting this addon I had trouble to clear the profile. I had duplicate custom buttons (no double scripts) in the menu and the positions of the buttons won't save.

I copied a backup profile and worked on, everything is fine again.

This review is for a previous version of the add-on (0.0.5). 

This add-on has nothing to do with the problems you had after deleting it.

This add-on is not a full replacement for the old one. It doesn't claim to be. As the description says, all this add-on does is load userChrome.js in every window.

I'm happy to accept pull requests to add additional functionality. See jikamens/userChromeJS on github.

Here's an example of how to implement the *.uc.js functionality yourself in your userChrome.js file:

let protocolHandler = Services.io.getProtocolHandler("file").
QueryInterface(Components.interfaces.nsIFileProtocolHandler);
let userChromeDirectory = Services.dirsvc.get("UChrm", Ci.nsIFile);
for (let file of userChromeDirectory.directoryEntries) {
if (! file.leafName.endsWith(".uc.js"))
continue;
let url = protocolHandler.getURLSpecFromFile(file);
Services.scriptloader.loadSubScriptWithOptions(url, {
target: document.defaultView,
charset: "UTF-8",
ignoreCache: true
});
}