These are instructions for Firefox, feel free to try with other browsers if you want.
You'll first need to install Tampermonkey extension and convert the AllInOne greasemonkey script into a tampermonkey script. If you can't find a way, just download the .js file from where Quazee posted it above, open it in a text editor, copy the whole thing and paste it into a brand new tampermonkey script.
At this point it's installed, but only parts are functional, most notably (notable to me at least) ExtraGears is completely nonfunctional and DungeonLoot lists the first few charms and then abruptly spits out a page or so of gibberish.
Fix for DungeonLoot:
- Do a Ctrl-f for var maxcount = 5; You should end up around line 3800 (if your script editor of choice provides line numbers)
- Immediately above this, insert the line if (!isNaN(id)) {
- Drop down about 50 lines, and find the line appendChild(WL.Node.Create("br")); followed by 3 lines with only } in them and then Div.insertBefore...
- Add a fourth line with } with the other three.
Save and DungeonLoot should now be working

Fix for ExtraGears:
This is a bit more involved, and requires changes in a couple different places. The first is similar to the fix for DungeonLoot. You need to find a section around line 1840 that looks like this:
for (gear in WL.Estiah.Gearbox[type][pos]["gears"])
{
WL.Estiah.Deck.AddGear(WL.Estiah.Gearbox[type][pos]["gears"][gear], WL.Estiah.Gearbox[type][0]["id"]);
WL.Estiah.Gearbox[type][0]["gears"].push(WL.Estiah.Gearbox[type][pos]["gears"][gear]);
}
And change it so it looks like this:
for (gear in WL.Estiah.Gearbox[type][pos]["gears"])
{
if(!isNaN(gear))
{
WL.Estiah.Deck.AddGear(WL.Estiah.Gearbox[type][pos]["gears"][gear], WL.Estiah.Gearbox[type][0]["id"]);
WL.Estiah.Gearbox[type][0]["gears"].push(WL.Estiah.Gearbox[type][pos]["gears"][gear]);
}
}
Drop down to around line 2250 and find the section starting
//load all groups/gears
WL.Estiah.Gearbox = JSON.parse(WL.Data.Load(extragears_name + "_gears_" + WL.Estiah.Deck.EGID, ""));
Delete that second line and add in its place
var temp1 = (WL.Data.Load(extragears_name + "_gears_" + WL.Estiah.Deck.EGID, ""));
var temp2 = temp1.replace(/"\[/g, "[");
var temp3 = temp2.replace(/]"/g, "]");
var temp4 = temp3.replace(/\\"/g, "\"");
var temp5 = temp4.replace(/"\//g, "\"");
WL.Estiah.Gearbox = JSON.parse(temp5);
One more change, drop to around line 2320, and find the section
//debug start
for (gears in WL.Estiah.Gearbox[type][group]["gears"])
{
while ((gears < WL.Estiah.Gearbox[type][group]["gears"].length) && (WL.Estiah.Gearbox[type][group]["gears"][gears] == null))
{
WL.Estiah.Gearbox[type][group]["gears"].splice(gears, 1);
alert("invalid (null) gear detected and deleted");
}
if (gears >= WL.Estiah.Gearbox[type][group]["gears"].length)
break;
if (minimal)
WL.Estiah.Deck.AddGear2(WL.Estiah.Gearbox[type][group]["gears"][gears], WL.Estiah.Gearbox[type][group]["id"]);
else
WL.Estiah.Deck.AddGear(WL.Estiah.Gearbox[type][group]["gears"][gears], WL.Estiah.Gearbox[type][group]["id"]);
}
//debug end
and change it so it's
//debug start
for (gears in WL.Estiah.Gearbox[type][group]["gears"])
{
if(!isNaN(gears))
{
while ((gears < WL.Estiah.Gearbox[type][group]["gears"].length) && (WL.Estiah.Gearbox[type][group]["gears"][gears] == null))
{
WL.Estiah.Gearbox[type][group]["gears"].splice(gears, 1);
alert("invalid (null) gear detected and deleted");
}
if (gears >= WL.Estiah.Gearbox[type][group]["gears"].length)
break;
if (minimal)
WL.Estiah.Deck.AddGear2(WL.Estiah.Gearbox[type][group]["gears"][gears], WL.Estiah.Gearbox[type][group]["id"]);
else
WL.Estiah.Deck.AddGear(WL.Estiah.Gearbox[type][group]["gears"][gears], WL.Estiah.Gearbox[type][group]["id"]);
}
}
//debug end
ExtraGears should now work. You'll have to manually import any gears you had in Greasemonkey though… assuming you have some form of access to them. Otherwise you'll have to start saving gears from scratch.