GoMule for D2 Resurrected

silospen

Well-known member
Jul 1, 2020
40
325
53
(Wondering what the deal is with D2R patch 2.4? Take a peek at https://www.purediablo.com/forums/threads/gomule-for-d2-resurrected.2202/post-125002 )

Hi all,

Here's an alpha version of GoMule for D2 resurrected, intended for early testing. Please proceed with extreme caution if you choose to use this release. Thank you to anyone who spends the time to alpha test it :)

Some notes - this does not allow you to convert characters or items between legacy D2 and D2 resurrected. GoMule only has functionality to allow items to be moved around, it doesn't edit any item fields aside from their location. If you need to convert legacy D2 items to D2R format, you'll need to create a new D2 character, load it up with the items you want to convert, save it, copy it to your D2R folder, open it in the D2R game. There's also various convertors around the internet that you might have success with, but just like me they don't understand the entire save file structure and may not create the exact structure that D2R expects.

This release will allow you to:
  • Create .d2x stashes containing items from D2R
  • View and modify D2R characters
  • View (and create Flavie reports) but not modify D2R shared stashes (.d2i format) - the file format is still not decoded :(
You may run into some trouble with this release, like:
- It might refuse to startup because you're trying to re-use your existing D2 GoMule folder. Please extract this to a new folder, it cannot read the clipboard.d2x stash from your existing D2 Gomule folder.
- You may see bad stats on items, like "Unrecognized Property" instead of "+3 to damage", this is because Blizzard has broken some of the files backing D2R modding. I'm trying to hand fix these so please let me know what item you see it on.


Thank you!

Changelist:
9/30/21: 4.4.1 - Fix IK armor bug
9/30/21: 4.4.2 - Fix beast runeword bug (number format exception)
9/30/21: 4.4.3 - Fix Natalya's Totem bug (index col instead of row number in sets.txt)
10/01/21: 4.4.4 - Fix for anni/torch, read gold from shared stash, show hover text in shared stash, add warning if D2R is currently running
4.4.5:
10/01/21: Thrugg_aka_trogg nailed down the shared stash 'checksum', so shared stashes are now writable!
10/02/21: Prevent dropping quest items in shared stash
10/03/21: Add gold transfer to shared stash
10/03/21: Add lighter char backgrounds courtesy of m4ke
10/03/21: Add window organizing button
10/03/21: Make runes the same color as crafted items
10/03/21: Fix bug with equipped set items (Natalya's)
10/03/21: Add right click menu to shared stash
10/04/21: Filter weapons correctly in stash
10/04/21: Fix bug with some +skills items
4.4.6
10/04/21: Fix bug with items in shared stash - all items were being classified as quest items preventing drop
4.4.7
10/04/21: Offer alternative appearances (Dark mode!) and various visual fixes due to black backgrounds
10/04/21: Fix bug with standard of heroes
10/04/21: Fix bug with some set items when dumping info
4.4.8
10/06/21: Add 'Saved' to title if there are no modified windows
10/06/21: Add a config option to disable deleting
4.4.9
10/07/21: Change application running checker to avoid grabbing focus
10/07/21: Stop lying about merc status
10/08/21: Remove custom colors from stash filters, tweak red color on file manager tree view
10/08/21: Add freeform text search field to stash
10/08/21: Enable the dropAll button
4.4.10
10/08/21: Select the last inserted item when dropping in stash
10/09/21: Fix bug preventing close on disconnected window
10/09/21: Fix ears again
4.4.11
10/10/2021: Fix bug with some druid/assassin skills being outside array indicies
4.4.12
10/18/21: Display errors when saves fail. Prevent adding/opening chars/stashes that aren't accessible to GoMule
10/18/21: Fix bug which prevented shared stashes from being removed from projects
10/18/21: Set minimum window size when opening instead of maximizing
10/18/21: Persist the project name to the last opened project so it's the same one when you reopen GoMule
4.4.13
10/18/21: Fix access denied bug when creating stashes
 
Last edited:
YES! It's here! Horray Silo!

Huge thanks to you man. It's lookin real good already I can see all the hard work put in here. I really prefer your framework that you've laid out for the future. #1 stash being on the right is just.. it's the right place for it to be (pairofdocs moved it to the left, preposterous). Adding the d2i shared stash ui elements at the top as well, it's great it all makes sense to me. I'm not sure what all goes into this but I imagine it's an absolute boatload even for this early version.

Just ran a couple tests - same problem as with the PairOfDocs version of gomule. If you exit game, stay on character screen, alt tab out and mule items, the items will remain on your character when you create a new game and also be in your gomule stash. So currently you'd need to completely exit the game to mule. I've been doing that already as it's the only way to do it right now. I imagine this is going to be a difficult problem to solve.. doesn't make sense that a character wouldn't fully save until game exit. So weird. Char files even show they're being saved on S&E so no idea.

So in this release - old stashes can't be opened, and of course .d2i stashes from the pairofdocs gomule can't be opened. I haven't transfered over any items from any of my old stashes yet.. but correct me if I'm wrong, if I wanted to do that I'd have to:
  1. use the old D2L gomule,
  2. transfer items to a D2L character,
  3. open the char in D2R, S&E
  4. open the char in gomule resurrected
  5. mule off to new stash
Is that right?

I haven't ran into any glaring errors with items so far other than that. Every item I've looked at has displayed correctly.
 
Last edited:
  • Like
Reactions: Miron and silospen
YES! It's here! Horray Silo!

Just ran a couple tests - same problem as with the PairOfDocs version of gomule. If you exit game, stay on character screen, alt tab out and mule items, the items will remain on your character when you create a new game and also be in your gomule stash. So currently you'd need to completely exit the game to mule. I've been doing that already as it's the only way to do it right now.

So in this release - old stashes can't be opened, and of course .d2i stashes from the pairofdocs gomule can't be opened. I haven't transfered over any items from any of my old stashes yet.. but correct me if I'm wrong, if I wanted to do that I'd have to:
  1. use the old D2L gomule,
  2. transfer items to a D2L character,
  3. open the char in D2R, S&E
  4. open the char in gomule resurrected
  5. mule off to new stash
Is that right?

I haven't ran into any glaring errors with items so far other than that. Every item I've looked at has displayed correctly.

Thanks NorthDakota!
  • Yeah, it looks like D2 holds the character files in memory after exiting to the game menu, it's a real pain in the butt. It's on my list to detect it running and try to at least warn the user.
  • Your list of steps is correct. It sucks! Real pain that Blizz decided to futz with the item file format like this - in previous versions they just bumped up the version number, for resurrected they've flipped things around a bit. It's very strange, not different enough to see any real material reason why they'd do this, but not similar enough to be able to make a seamless transition. I'll keep working on trying to get a better way to do this over the next few days!
I'll send a message over to PairOfDocs and see what their plans are around their stash format. It sounds like from what you're saying they have their own .d2i format that is different from the shared stash d2i format and isn't the ATMA stash d2x format? Sounds odd, hopefully they'll be interested in aligning on the format here.
 
  • Like
Reactions: coju
It sounds like from what you're saying they have their own .d2i format that is different from the shared stash d2i format and isn't the ATMA stash d2x format?
Yeah, in his fork, when you click "new atma stash" it creates a .d2i file. He doesn't have a separate ui element like how you've separated out .d2i and .d2x stashes. However, if you have an old .d2x file already, and open it in his fork, no items will appear, but you can use that .d2x file anyways to store items from D2R going forward and it works fine. Weird!

Additionally it won't open the shared stash .d2i file that D2R creates. Not sure how that'd work since it has a layout and stuff, I half expected it to open like a stash and just list items but nah.

I did test this out as well - I used a .d2x file to store some D2R items in pairofdocs gomule, then tried opening it in your version, and nothing. Doesn't work. Thought maybe that'd be a way I'd eventually be able to get my current d2r stash into your gomule :ROFLMAO: It's an ever-growing problem since now I'm like locked in at least a little, I'm already 1k items deep somehow.. I mean his works kinda.. it's janky but all I had for the short-term and I was itchin.
 
Last edited:
Yeah, in his fork, when you click "new atma stash" it creates a .d2i file. He doesn't have some separate thing like how you've separated out .d2i and .d2x stashes. However, if you have an old .d2x file already, and open it in his fork, it will be blank, but you can use it anyways to store items and it works fine.

Additionally it won't open the shared stash .d2i file that D2R creates.
Huh, interesting choices!
 
You're a lifesaver! 🤟 Moved things around a bit and it seems to work fine for me. :)

Shame about the complications with characters being kept in memory, no in-between runs muling or at least not as easy.

Personally I don't mind too much that existing stashes can't be forwarded as a whole (currently at least) since I'll keep most characters in D2 legacy for now, but hopefully that will be figured out at some point as well.
 
Awesome work, thanks @silospen
Is it Anni & Torch compatible?

So in this release - old stashes can't be opened, and of course .d2i stashes from the pairofdocs gomule can't be opened. I haven't transfered over any items from any of my old stashes yet.. but correct me if I'm wrong, if I wanted to do that I'd have to:
  1. use the old D2L gomule,
  2. transfer items to a D2L character,
  3. open the char in D2R, S&E
  4. open the char in gomule resurrected
  5. mule off to new stash
Is that right?

Yes. Basically it is the same as moving items from 1.07 to later patches.

People wanting to forward items should use the method above. I know this means you can't go all in, you can just forward the items you need.

Given that the changes is to the item file in D2R (which I wasn't aware of originally - I thought it was a pairofdocs change to GoMule) we will not support utilities that mass convert items in this forum at this point in time*
  • Converting items outside the game with third part utilities we have never supported
  • Using third party utilities other than GoMule is not supported anyway by the rules
  • If someone really wants to do this it will be under the "What you do on your own computer" rules, but that will make you ineligible for trading.
  • I'm sure you don't want you hard found items accidentally corrupted en masse.
It is still early days, but I would rather people use this official version of GoMule rather than the pairofdocs version. I will allow both for now though.


*I may review this decision in the future, but this is going to depend on input for @silospen and other people who uderstand the file formats. Not "I found this utility on the internet it seems to work."
 
Last edited:
  • Like
Reactions: NorthDakota
Uhh, stash disappeared suddenly... says "disconnected" even though the file is right there with a couple of other stashes (which still show items).

Screenshot 2021-09-30 130659.png

Made backups of both the chars and stash after initially muling things to it, so nothing is truly lost, but don't understand what happened there.

Edit: Backup copy of the stash has the same issue. Also happened to some of the characters, even after deleting and adding them again to GoMule they're "disconnected".. it's weird cause other stashes/chars seem to be fine.

@silospen Not sure if this is the right place to get into details, but happy to share more info via PM if it helps.

Should be obvious, but yeah everyone please create backups before fully transferring to thew GoMule. :D
 
Last edited:
Uhh, stash disappeared suddenly... says "disconnected" even though the file is right there with a couple of other stashes (which still show items).
If you can repeat Stash / Character being Disconnected you can launch GoMule from command prompt 'java -jar GoMule.jar' (Windows).

That 'Disconnected' means there has been an unhandled exception during loading and you can see the error on that command prompt. Including that error helps alot telling whats wrong.

m4ke
 
Don't know if I did it correctly, but I went to the folder with GoMule and stashes via command prompt and used that command to open GoMule.

When I opened the stash by double-clicking it, this was logged without me doing anything else (and the window showing "disconnected" as pictured above):
Add Stash: [path to stash]​
Remove file: [path to stash]​

In comparison to chars/stashes that seem to work fine, there it only logs "Add Stash" or "Add Char". Only when I close the window in GoMule it logs "Remove file".
 
New version: https://sourceforge.net/projects/gomule/files/gomule/R0.44/GoMuleR4.4.1_Resurrected_1.0.zip/download

@ffs : Thank you for the stash! This is one of those issues where Blizz messed up the data files, there's 2 components, a txt file that contains a raw name, like and then a tbl file that contains a mapping of translations for different languages including English. For IK armor, they accidentally have a space character in the translation lookup table, but not in the raw name, so it's not possible to find the translation for this item. Fix was to just use the raw name if you can't find a translation: https://sourceforge.net/p/gomule/git/ci/9b18f1e661e351213fbf8ec0e6e37ae5f6865ca9/

@ffs / @m4ke : M4ke, your advice would normally be correct but in this case the error was being caught and hidden from the user and the console (sloppy coding!). I've fixed this in the commit.

@maxicek 'Is it Anni & Torch compatible' - I don't have any of those items, could you send me a legacy D2 stash with them in there if possible?
 
I don't have a Anni / Torch @silospen - Someone would have to send you in a D2R Character file.
 
Thanks for this, just started using the other version, and nothing against it but would rather use yours so i transferred my items back to this version. Appreciate the work put into this, will let yea know if i see any issues.

Will agree though that the stash files either need to be compatible between yours and pairofdocs versions or just make your version the mandatory one for SPF use. As it stand if you had to transfer a lot of items between the two versions it would suck and i honestly think with them both being called GoMule its just going to confuse the hell out of newcomers.
 
I just transferred 1,192 items from my pairofdocs gomule to the silospen gomule :ROFLMAO:

It honestly doesn't take long to transfer items between the two versions if you have it set up right and you're careful. Took me about 10 minutes. Since you can't use a .d2x or .d2i stash to transfer between versions, you gotta use a character, but it's pretty easy. Basically all you gotta do is open both versions of gomule, use a character's stash to transfer items between the two versions alternating putting items from your old .d2i stash onto the character and saving, and loading the char in silo's, picking up from the char's stash and dumping to .d2x stash and saving. It's self explanatory when you're in there I'm sure yall don't need me goin on and on. They don't interfere with each other at all when saving/loading it works perfectly.

At any rate that's the end of that. Glad to be back in the not-shifty-ambiguous-uncomfortable zone.

Thanks again silo don't let me down :ROFLMAO: you're my hero man keep it real hope you have a beautiful day.
 
I really like this software, I hope we get to see a solution to the muling-with-game-open issue.

I never thought it would see an update, but I would like to request a feature: save the position of your open stash windows, or allow an easy-sort. I like to set my stashes up in a way that makes it easier to remember what is what but I have to do it manually each time I restart the program. Here's an example of what I mean:

2P2BAoE.png
 
Diablo 4 Interactive Map
PurePremium
Estimated market value
Low
High