D2rloader
Cross-platform Diablo 2 Resurrected Loader written in Python/Qt
Install / Use
/learn @sh4nks/D2rloaderREADME
Diablo 2 Resurrected Loader
This is a simple Qt app which manages starting multiple Diablo 2 Resurrected instances.
Its heavily inspired by <a href="https://github.com/shupershuff/Diablo2RLoader">shupershuff/Diablo2RLoader</a> - a powerful PowerShell CLI solution for multiboxing D2R with even more features than this loader. Check this repo out if you want to learn more about multiboxing D2R :-)
Running on Linux

Running on Windows

Getting Started
D2RLoader supports Windows and Linux (via Wine/UMU-Launcher).
I have only tested my Linux environment (Arch Linux) so far. So, if you find any issues with yours, please report them so I can get them fixed!
The TZ Info and DClone Info require a working API key from d2emu.com.
All configuration files are stored in %APPDATA%/d2rloader on Windows or $XDG_CONFIG_DIRS/d2rloader on Linux
Linux
- Download the provided AppImage from the release page and make it executable.
- In case you are using Arch Linux you can use your favorite AUR helper to install d2rloader from the AUR.
- Install UMU-Launcher
- Install D2R from your favorite Game Launcher (Lutris/Bottles, etc)
- Select your prefered WINEPREFIX location otherwise a default one will be set to $XDG_CONFIG_DIRS/d2rloader/wineprefixes.
Windows
- Download the latest "D2RLoader.windows.zip" from the releases page and extract it.
- Create a desktop shortcut and configure it to run as Administrator. Admin rights are unfortunately needed to kill the handles.
- Start D2RLoader.exe and configure the handle.exe path and D2R game folder (File -> Settings)
- Create and configure a new account by pressing "Add".
- Start the game with the configured account.
Auth Methods
You can choose between 2 auth methods. However, the token authentication is more robust and allows one to use MFA.
Password
Deactivate your Battle.net Authenticator for your account because passing passwords via parameters won't work with Multi-Factor Authentication (MFA).
If you try to login using password authentication and get an error like "We couldn't verify your account with that information", try changing your password and try again. This worked for me at least.
Token
This method works with Multi-Factor Authentication!
-
Open a browser in private mode
-
Navigate to https://us.battle.net/login/en/?externalChallenge=login&app=OSI
-
Log in to your account
-
You will be redirected to an unknown (localhost) page.
For Chrome-based browsers:
-
Your URL will look something like this: http://localhost:0/?ST=US-c099c810-2b2c-42b6-8bd0-ae6735d54510&flowTrackingId=37f670de-7831-4b32-9cb5-2a219e9eea4a
-
Copy the part from
US-c099c810-2b2c-42b6-8bd0-ae6735d54510&and paste it in your Account settings
For Firefox you have to open the console (F12) and go to Storage -> Cookies and copy the value from the
gs.idcookie -
Game Performance Improvements
-
Skip Intro (
-skiptobnetdoesn't work anymore...)https://www.nexusmods.com/diablo2resurrected/mods/194
-
TinyMod (replaces HD textures to lower memory usage)
https://github.com/D2R-Gimli/TinyMod
Plugins
If you are interested in developing a plugin for D2RLoader, take a look at the Plugin Documentation
Companion Tools
- d2rinfo -> D2Emu API
- d2rreg -> Token Authentication for Linux and Window renaming when using Wine Wayland
License
MIT License
Related Skills
node-connect
340.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
84.2kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
84.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
340.5kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
