# OPENDIABLO 2 An open-source implementation of Diablo2 Github Organization Page

Config Screens OpenDiablo2 is an ARPG game engine in the same vein of the 2000's games, and supports playing Diablo 2. The engine is written in golang and is cross platform. However, please note that this project does not ship with the assets or content required to play Diablo 2. You must have a legally purchased copy of Diablo 2 and its expansion Lord of Destruction installed on your computer in order to run that game on this engine. If you have an original copy of the disks, those files should work fine as well. Currently we are working on features necessary to play Diablo 2 in its entireity, but will then expand with tools and plugin support to allow modding, as well as writing completely new games with the engine. We are in the process of moving to a go based engine. We are taking good bits from the original C# base and migrating it over to the new engine code. Please note that this game is neither developed by, nor endorsed by Blizzard or its parent company Activision. Diablo 2 and its content is ©2000 Blizzard Entertainment, Inc. All rights reserved. Diablo and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries. ALL OTHER TRADEMARKS ARE THE PROPERTY OF THEIR RESPECTIVE OWNERS.

## Configuration

There is a configuration file (config.json) whose location depends on your operating system. It will be generated when OpenDiablo2 is run and the output will show the file location for editing. The following table describes the different options and what they mean.

Setting Name | Description
--- | ---
FullScreen | Determines if the client is initially full screen or not. Do note that fullscreen mode can be toggled at any time with `ALT`+`ENTER`.
Scale | Defines the graphical scale of the game. this value is a decimal number representing the direct scale of the game. For example, a scale of 1.25 will increase the size of the game to 1 1/4 the original size. Note that full screen will always scale to match the proper aspect ratio.
TicksPerSecond | Determines how often the engine updates. Please note that the core will always run game-level updates at exactly 25FPS to match the original engine.
RunInBackground | If true, the game will continue running when the window is not focused. If false, the game will stop running when the window looses focus.
VsyncEnabled | Determines if screen updates are synchronized on the (real or virtual) vblank of your display.
SfxVolume | A decimal value between `0.0` and `1.0` representing how loud sound effects should be.
BgmVolume | A decimal value between `0.0` and `1.0` representing how loud background music should be.
MpqPath | The base path of where the MPQ files are located. If you install Diablo2+LOD on linux with wine using the default settings, OpenDiablo 2 will automatically check the wine prefix for the path if it is still set to the windows path.
MpqLoadOrder | This is the list of MPQs to load. In the event that the same file is in multiple MPQs, the first MPQ (highest on the list) will be the one from which the file will be loaded.

## Screenshots