2022-08-17 12:50:06 +08:00
![](pictures/logo.png)
# DiIiS Project
2022-08-21 13:02:33 +08:00
DiIiS is a fully-functional open-source local server for [Diablo III: Reaper of Souls ](https://eu.diablo3.blizzard.com ).
2022-08-17 12:50:06 +08:00
## Features
- Implemented account creation system, authorization and lobby.
2022-08-21 13:02:33 +08:00
- Implemented Necromancer class mechanics.
- Fully implemented chat system and friends.
2022-08-17 12:50:06 +08:00
- Fully implemented clan system.
2022-08-21 13:02:33 +08:00
- Implemented basic DRLG (dungeon generator).
2022-08-17 12:50:06 +08:00
- Implemented item generator with in-game affixes.
- Implemented the basic mechanics of almost all active abilities for all classes.
- Implemented a system of set items.
- Implemented all main scripts for all story quests 5 acts.
- Implemented basic scripts and generator for "Adventure Mode".
2022-08-21 13:02:33 +08:00
- Implemented the basis for the "Challenge Nephalem Rifts" mode.
2022-08-17 12:50:06 +08:00
- Implemented artificial intelligence for 80% of minions.
- Implemented personal artificial intelligence for 40% of all monsters.
- Implemented personal artificial intelligence for half of the Bosses.
- Implemented LAN
2022-08-21 13:02:33 +08:00
## Restrictions
- Donate Store implementation is removed.
2022-08-18 08:29:15 +08:00
- NAT support is hidden, but possible ;)
2022-08-17 12:50:06 +08:00
2022-08-21 13:02:33 +08:00
# Installation
## Supported Clients
Each version of the client includes changes to structures, opcodes and attributes.
The currently supported version of the client: **2.7.3.82785**
## Server Deploying
2022-08-17 12:50:06 +08:00
1. Install [PostgreSQL 9.5.25 ](https://www.enterprisedb.com/downloads/postgres-postgresql-downloads ).
2022-08-21 13:02:33 +08:00
2. Create databases in PostgreSQL: `diiis` and `worlds` .
3. Change you account and password in `database.Account.config` and `database.Worlds.conifg` .
4. Restore `worlds.backup` to `worlds` database.
5. Compile by [VS 2019/2022 ](https://visualstudio.microsoft.com/ ).
6. [Skip this stage for local game] Copy the [config.ini ](configs/config.ini ) file to the server folder (It overwrites the default settings):
- Update the parameter entries with your IP record on the network: `BindIP` and `PublicIP` .
7. Launch wait until server start, it creates a hierarchy.
8. Create user account(s) using console: `!account add Login Password Tag`
## Prepare Client
Do this for each client connecting to the server.
1. Get [supported client ](#supported-clients ) Diablo 3.
2. Install certificate [bnetserver.p12 ](src/DiIiS-NA/bnetserver.p12 ), password - `123` (the game verifies the CA root certificates).
3. Setting up redirects client to your server:
2022-08-21 13:06:12 +08:00
**Method #1 - Hosts**
2022-08-21 13:02:33 +08:00
2022-08-21 13:06:12 +08:00
Add redirects to the `hosts` file (`%WinDir%\System32\drivers\etc\hosts`):
`127.0.0.1 us.actual.battle.net`
`127.0.0.1 eu.actual.battle.net`
2022-08-21 13:02:33 +08:00
2022-08-21 13:06:12 +08:00
!After the modification the official Battle.Net application will not be able to connect to the server!
2022-08-21 13:02:33 +08:00
2022-08-21 13:06:12 +08:00
**Method #2 - Modify main executable file**
2022-08-21 13:02:33 +08:00
2022-08-21 13:06:12 +08:00
```c
// Find null-terminated string enum and rewrite with HexEditor to your IP server.
eu.actual.battle.net/
us.actual.battle.net/
cn.actual.battle.net/
kr.actual.battle.net/
```
2022-08-21 13:02:33 +08:00
4. Launch client (`x64` or `x86` ) with arguments `"Diablo III64.exe" -launch`
5. Login to the game using your credentials.
6. [Skip this stage for local game] After that, when creating a game (in client), indicate the creation of a public game. Other players, when connecting, must also indicate a public game, and at the start they will connect to you.
7. You're in the game world!
## Using Docker
Run `docker-compose up` inside [db ](db ) folder and continue from the 5th step in section [server ](#server-deploying ).
# Server Configuration
## Global configuration
2022-08-17 12:50:06 +08:00
Using the configuration file you can easily override the [global world parameters ](docs/game-world-settings.md ).
2022-08-21 13:02:33 +08:00
## Command system
The command system allows you to get control of the game world if you have rights. A list of commands is available [here ](docs/commands-list.md ).
# Issues
Check the [report form ](docs/report-form.md ) before submitting issue, this will help people save time!
2022-08-17 12:50:06 +08:00
2022-08-21 13:02:33 +08:00
# System requirements
2022-08-17 12:50:06 +08:00
2022-08-21 13:02:33 +08:00
| | **Entry-level** | **Mid-range** | **High-end** |
| ---------- | ---------------------------- | ---------------------------- | ---------------------------- |
| **CPU** | Intel Core i5 or AMD Ryzen 5 | Intel Core i7 or AMD Ryzen 7 | Intel Core i9 or AMD Ryzen 9 |
| **Memory** | 4 GB RAM | 16 GB RAM | 64 GB RAM |
| **Disk** | 500 MB | 1 GB | 1 GB |
2022-08-17 12:50:06 +08:00
2022-08-21 13:02:33 +08:00
# Screenshots
2022-08-17 12:50:06 +08:00
You can see more screenshots [here ](SCREENSHOTS.md )
![](pictures/ingame-screen-1.png)