Skip to content

sparkie3/DiabloInterface

 
 

Repository files navigation

DiabloInterface

Actions Status

Diablo 2 Interface for streamers/speedrunners

The tool reads memory that is used by Diablo 2 executable and finds information that can be useful to viewers of the stream (because the information is not visible ingame at all times).

How to use DiabloInterface?

  1. Download the latest DiabloInterface release
  2. Start Diablo 2
  3. Start DiabloInterface

What versions of Diablo 2 are supported?

  • LOD 1.13c, 1.13d, 1.14b, 1.14c and 1.14d
  • D2SE

It has also been reported to work with Plugy.

Settings

Settings can be opened by right Right click -> Settings or CTRL + U.

Layout

You can configure what data is displayed and how that data is presented.

Data

  • Character name
  • Gold
  • Base stats (strength, dexterity, vitality, energy)
  • Advanced stats (FHR, FCR, FRW, IAS)
  • Character level
  • Resistances
  • Quests completed in percent
  • Magic find
  • Attacker takes dmg
  • Extra monster gold
  • /players X value
  • Hardcore/Softcore
  • Expansion/Classic
  • Counters (tracked while the game is running)
    • Number of deaths (resets with new character creation)
    • Number of games started
    • Number of characters created
  • Runes collected (configurable to show only relevant ones)

Presentation

  • Font face/size
  • Horizontal/vertical layout
  • Horizontal/vertical rune layout
  • Colors

Runes

A rune display is available to track findings of desired runes. The rune list can be configured per character class and difficulty setting. The rune list used is determined by the most specific configuration in the order Class+Difficulty > Class > Difficulty > Default. If you do not care about different rune settings just add one default Class Settings entry and then add your runes.

The tool can't determine if the runner intends to do a normal, nightmare or hell run. Therefore the targeted difficulty has to be selected manually. Selecing the target difficulty is done by rightclicking the main interface and choosing Difficulty->[Your Choice] (defaults to Normal).

Auto-Splits

The tool is also able to do automatic splits in connection with a split tool like Livesplit.

Livesplit setup
Note: In this example we use F12 as split hotkey.

  1. Livesplit must be run as Administrator
  2. Open Livesplit settings
  • Setup your split hotkey to F12
  • Check the Global Hokteys checkbox
  1. Open DiabloInterface Auto-Split settings
  • Click into Split-Hotkey and type F12 to set the hotkey (same as in Livesplit)
  • Make sure the hotkey works by clicking the Test Hotkey button
  • Check the Enabled checkbox
  • Click the Add Split button multiple times to add some default splits

The order and naming of the splits setup in DI does not matter. When any of the splits are reached, DiabloInterface will trigger the hotkey and Livesplit will catch it and split.

Please note that automatic splits will only work if you start a new character while the tool is running.

There is no timer integrated directly into this tool (yet).

Twitch integration

Note: D2ID and twitch extensions are made by palmettos.

D2ID: https://github.com/palmettos/D2ID
Twitch extension: https://dashboard.twitch.tv/extensions/l0m154prxsmwu1m0tyic1ei0915byb-0.0.4

D2ID (v0.1.4) comes bundled with an outdated version of DiabloInterface. It is old but works out of the box.

How to use a current version of DiabloInterface with D2ID:

  • Launch new version of DiabloInterface
  • Open Settings
  • Go to Misc tab
  • Change the Pipe Name in the Pipe Server section to DiabloInterfaceItems
  • Done 🎉

Downloads/Builds

Let us know if something is broken or if you need a different build. Best create an issue. If you just want to use the tool and not mess with source code, use any of the builds here:

Latest release
All releases

DiabloInterface API

DiabloInterface allows programs running on the same computer to query for game information over a named pipe server.

An implementation of the API can be found at DiabloInterfaceAPI.

Troubleshooting

  1. The tool must be run as administrator, otherwise it cannot read the memory from another process.
  2. Because of the nature of how the tool works, there might be a warning from your Antivirus/Windows Smartscreen in precompiled exe. You can ignore the warning or compile the sources youself.
  3. There is currently no support for network play.

If there are any other problems or requests, join our Discord channel or create an issue.

Contact

Feel free to join us in Discord in our DiabloInterface Channel.

Screenshots

Main window
Main tool window Main tool window with other settings

Settings window
Settings tool window

Tool in action
Slimoleq @ Twitch
Slimoleq Stream

Teo1904 @ Twitch
Teo1904 Stream

Use in Battle.net

Even though DI is only reading and not manipulating game data, we discourage the use of DiabloInterface in Battle.net. We do not know, if it is seen as a cheat/hack by Blizzard. Using the tool might possibly result in a ban. That aside, there is no multiplayer support in DiabloInterface as of now.

Credits

Thank you for using, testing and developing the tool!

qhris (@twitch) - A LOT of work on DiabloInterface code + running through D2 ASM
squeek502 - bugfixes + d2se support slimoleq - idea + original program
teo1904 - streamer using DiabloInterface + bug reporting + testing

About

Diablo 2 Interface for Streamers/Speedrunners

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 98.4%
  • PowerShell 1.1%
  • Other 0.5%