Dear All,
The initial commit for the ODE project was created on 2015-06-11. It is now approximately 7 years and 10 months later (2023-04-04). Whilst the ODE and following ODE 2 repositories contain software that is functional, and (to my knowledge) mostly bug free, the programs have always been relatively basic in terms of visuals and features. With life and other projects repeatedly drawing my attention away, there has only been a total of 75 commits in the original repository and 67 commits in the 'mark 2' repository.
I have, over the last 7 years, gradually lost interest in video games. With the potential takeover of Activision Blizzard by Microsoft announced, I feel it will soon be more likely that mods and modding tools for altering Blizzard products will be challenged. I have therefore decided that now is a good time to 'retire' the ODE editor (both version 1 and 2). To this end, I intend to delete the ODE 1 and 2 repositories on 2023-05-07.
If you wish to have a personal copy of either repository, please fork or clone the desired repositories before 2023-05-07.
Thank you to those who have contributed to the project, and to those who have asked questions or starred the projects over time.
--Matthew
Open Diablo Editor 2 is a program for making 'mods' for Diablo 1. It requires a full, legitimate, version of Diablo 1 to work correctly. The editor currently works with Diablo 1.09 (either the final original version or the GOG version). Please note that if you are using the GOG exe, it will not work with the 'updated' exe provided by GOG, only the original exe (as also provided by GOG).
Caveat: Do not attempt to connect to Battle.net using a modded executable.
If you are using Windows, download and install OpenJDK 11 (LTS) with the default (HotSpot) JVM from https://adoptopenjdk.net/. You need the .msi file, not the .zip.
If you are using Ubuntu Linux, instead open a terminal and run sudo apt install openjdk-11-jre
to
install a Java 11 JRE.
Create a folder where you want to use the program...
On Windows, the location could be C:\Users\<yourusernamehere>\ODE2
for
example.
On Linux, the location could be /home/yourusernamehere/Software/ODE2
Unzip the downloaded software to that location.
If you use Windows, you should now have an open-diablo-editor-x.y.z.jar
file at
C:\Users\<yourusernamehere>\ODE2\open-diablo-editor-x.y.z.jar
or at the path you chose
(where x.y.z
is the application version such as 2.0.6
).
If you use Linux, you should now have an open-diablo-editor-x.y.z.jar
file at
/home/yourusernamehere/Software/ODE2/open-diablo-editor-x.y.z.jar
or at the path you chose
(where x.y.z
is the application version such as 2.0.6
).
Accompanying the open-diablo-editor-x.y.z.jar
file you should have a run-ode-2.bat
and a
run-ode-2.sh
file.
To launch the editor on Windows, navigate to the folder containing the jar. Shift + right click in
the folder and open a PowerShell window. In that command window, type .\run-ode-2.bat
and press
enter. You can then open a web browser and navigate to http://localhost:43131/
to use the editor.
To shut down you can select "Shutdown server (will discard non-downloaded binary file!)" in your
browser (when at http://localhost:43131/
) or press Ctrl+c in the PowerShell (then press Y when
prompted, followed by return).
To launch the editor on Linux, navigate to the folder containing the jar and open a terminal there.
Type sh run-ode-2.sh
(without the backticks) and press enter. You can then open a web browser and
navigate to http://localhost:43131/
to use the software.
To shut down you can select "Shutdown server (will discard non-downloaded binary file!)" in your
browser (when at http://localhost:43131/
) or press Ctrl+c in the terminal window.
- Do not attempt to connect to Battle.net using a modded executable.
- The editor currently requires a
Diablo.exe
file, v1.09 (the 'original' exe provided by GOG should also work). - Any Diablo.exe file that you load in to the editor will not be modified by loading the file or making edits in the editor.
- The program will create a copy of any exe file that you load, in your operating system's temp directory. This file will be modified.
- When you save your mod to disk, you specify a filename to save to. Please do NOT specify your
original
Diablo.exe
or you will save over the existing file and lose your 'reset' point. - It is recommended to back up your original
Diablo.exe
file in case you accidentally do this.
For an explanation of the various modding options within the editor, please refer to the Mod Workshop Mirror.
- Matthew R. Karlsen
- Robin Eklind ('mewmew')
- 'ChaosMarc'
- Ensure reliable pointer calculations (make DiabloFileProperties.BONUSES_AND_FRAMESETS_OFFSET a long)
- fix ode-binary-store directory permissions issue (on Windows 10)
- add configuration to run SonarScanner via Maven
- Refactor to make code more testable via automated tests
- Add further automated tests (now at 80% line coverage)
- Fix a JSON property in BaseMonsterDTO (priChanceToHit was incorrectly monsterPriChanceToHit)
- Add return statement after handlers send 400 response.
- Add front-end constraint for the Quest Multi-Player trigger flag.
- Add front-end constraint for the Quest special level field.
- Make the 'dungeon type' field read-only in the web interface.
- Add basic front-end constraints for dungeon level fields.
- Split endpoints that load and store data (this makes the application more testable).
- Additional tests added.
Updated:
- Apache httpclient to 4.5.14 (test scoped)
- Jackson dependencies to version 2.14.1
- Undertow dependencies to version 2.3.1.Final
Updated README.md
(this file).
Replaced/updated the outdated file headers.
Fixed the 'exit application from browser' feature.
Removed the option to bind to 0.0.0.0 (all interfaces) because:
- no one has reported using this feature
- the application is more secure without this feature
Updated the Log4j version to 2.19.0.
Updated the Jackson dependencies to 2.13.4.
Updated the Undertow dependencies to 2.2.19.Final.
Fixed a front-end bug that prevented the edit of base monster types.
Fixed the JNI issue that emerged due to building the JAR with Open JDK 13 rather than Open JDK 11.
Updated the logging dependencies (slf4j to version 1.7.36 and log4j to version 2.17.1).
Updated the Undertow web server to version 2.2.16.Final.
Updated the Jackson JSON library dependencies to 2.13.2 (the jackson-databind dependency was updated to 2.13.2.1).
This release updates all the dependencies (software components that have been used in the production of the overall software). This fixes one critical security issue and three moderate security issues. It is strongly advised that users of previous versions update to the latest version.
Please see the LICENSE.txt file, and read all the text below.
Note that the code under the 'knowledge' package is NOT covered by these licenses. The knowledge package contains brief strings extracted from the game and descriptions written by those who created the Mod Workshop (Charlie with assistance from Jarulf) as hosted by Zamal & Zenda. The strings are very simple, such as "Leather Armor" and I am uncertain exactly what the copyright position is on these strings. The data stored is no greater than that contained within any Diablo 1 game guide (actually, far less). If any copyright holder objects to the use herein, please raise an issue, and we will remedy the problem and then try to work around the issue created (though it may well mean the editor will have to be discontinued).
This project pulls in additional code via Maven. This code is not covered by the above license(s). Each dependency pulled in is subject to its own license.
The now-defunct mod workshop located at http://www.thedark5.com/info/mod.html was extremely valuable in the construction of this software.
The workshop was originally created by Charlie with assistance from Jarulf.
A big thanks to Zamal & Zenda for continuing to host it while they could.
This project uses the direct dependencies/libraries listed below.
Please consult the pom.xml
file for details on the exact dependencies and versions used.
- The Undertow server (Apache 2.0 License)
- slf4j (MIT License)
- Apache Commons IO (Apache 2.0 License)
- Jackson (Apache 2.0 License)
- log4j 2 (Apache 2.0 License)
- Apache HTTP Components (Apache 2.0 License)
- Vue.js (MIT License)
- Apache Commons Lang (Apache 2.0 License)
- JUnit (Eclipse Public License 1.0)
- AssertJ (Apache 2.0 License)
- Mockito (MIT License)