Installation
1. Database Setup
# Create the game and login databases
mysql -u root -p -e "CREATE DATABASE l2jevo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -p -e "CREATE DATABASE l2jlamedb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# Import schemas
mysql -u root -p l2jevo < dist/sql/full_install.sql
mysql -u root -p l2jlamedb < dist/sql/lamedb/full_install.sql
2. Configuration
Edit the following files before building. All files are TOML — see the Configuration page for the full format reference.
config/main/Server.toml
[server]
GameserverHostname = "*"
GameserverPort = 7777
LoginHost = "127.0.0.1"
LoginPort = 9014
[database]
Driver = "org.mariadb.jdbc.Driver"
URL = "jdbc:mariadb://127.0.0.1/l2jevo"
Login = "l2juser"
Password = "yourpassword"
MaximumPoolSize = 10
config/main/Rates.toml
[xp]
RateXp = 1.0
RateSp = 1.0
[drop]
RateDropItems = 1.0
RateDropAdena = 1.0
RateSpoilDrop = 1.0
3. Build
# Build Core first
cd L2JEvolution.HighFive
ant
# Build Engine (depends on Core bin/)
cd ../L2JEvolution.Engine
ant
# Build GeoEngine (optional — if using L2D geodata)
cd ../L2JEvolution.GeoEngine
ant
Engine's
build.xml references ../L2JEvolution.HighFive/bin on the Ant classpath.
Core must be compiled before Engine. Ant will fail with package l2r does not exist otherwise.
4. Start the Server
Option A — DarkRiseLauncher.exe (Windows, recommended)
The dist/ folder contains DarkRiseLauncher.exe — a GUI launcher that
manages Java path, JVM flags, DB checks and starts both LoginServer and GameServer with one click.
Before first run, edit dist/launcher_config.json:
{
"JavaPath": "C:\\Program Files\\Java\\jdk-25.0.2\\bin\\java.exe",
"JavaParams": "-Xms512m -Xmx6G",
"LoginServerPath": "C:\\server\\login",
"GameServerPath": "C:\\server\\game",
"LibsPath": "C:\\server\\libs",
"MySqlBinPath": "C:\\xampp\\mysql\\bin",
"MySqlHost": "localhost",
"MySqlPort": 3306,
"LoginDbName": "l2jevo",
"LoginDbUser": "root",
"LoginDbPassword": "",
"GameDbName": "l2jevo",
"GameDbUser": "root",
"GameDbPassword": ""
}
Then double-click DarkRiseLauncher.exe and use the Start buttons in the GUI.
Option B — Shell scripts
# Linux
./loginserver.sh
./gameserver.sh
# Windows
loginserver.bat
gameserver.bat
Option C — Directly via Java
# LoginServer
java -Xms256m -Xmx512m -cp "bin/*;lib/*" l2r.loginserver.L2LoginServer
# GameServer
java -Xms2g -Xmx6g -XX:+UseZGC -XX:+ZGenerational ^
-XX:ZAllocationSpikeTolerance=5 ^
-cp "bin/*;lib/*" l2r.gameserver.GameServer
5. Verify Startup
Expected log output on successful startup:
INFO TomlConfigLoader - Loaded TOML config: Server.toml (12 keys)
INFO L2DatabaseFactory - Connection pool initialised (pool size: 10)
INFO GameServer - Loading items...
INFO GameServer - Loading NPCs...
INFO GameServer - GameServer started on port 7777
If you see
Failed to load TOML config, the working directory is wrong.
The JVM must be launched from the folder that contains config/.