Allods Developers Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

[release/guide] allods online 3.0 server & client — community edition

Сорок два

Administrator
Staff member
Admin
Content Creator
Guide Author
Seller
Premium
ADC Launcher Users

Allods Online 3.0 — Public Client & Server Release and Complete Windows / WSL2 Installation Guide​

The Allods Developers Community is making the complete 3.0 server and matching Windows client available as a public community release.

The resources, tutorials, and Docker setup included in this release were prepared and published by Сорок два Сорок два .

Release: Allods Online 3.0 Community Edition
Host operating system: Windows 10 (build 19041 or newer) or Windows 11, 64-bit
Server runtime: Ubuntu on WSL2
Database runtime: MySQL 5.7 and PostgreSQL 9.3 in Docker Desktop
Client runtime: Windows

Included downloads

The server archive contains the complete server stack, server-side tools, portable WSL2 configuration, isolated database services and account creation scripts. The client archive includes English and French launchers.

Recommended environment

  • Windows 10/11 x64
  • Ubuntu on WSL2
  • Docker Desktop with WSL integration
  • 16 GB RAM and SSD storage

Installation guide

Follow the complete guide above before asking for support:

Allods Online 3.0 — Complete Windows / WSL2 Installation Guide

Integrity

Verify both archives against SHA256SUMS.txt before extracting them. The client and server must come from this same release.

Support requests

When reporting a problem, include the exact error, Windows version, wsl -l -v, docker compose ps, server status and the final lines of the failed service log.

Security update — starter.exe false-positive detection

A user reported that antivirus detected the original starter.exe file as Malware.AI.3374321251.

After reviewing and analyzing the executable, I confirmed that this detection was a false positive. The file was not malware and did not contain any network communication, download functionality, persistence mechanism, process injection, registry modification or other hidden malicious behavior.

The original executable was a small launcher utility whose only purpose was to:
  1. Delete the previous English launcher.
  2. Replace it with the newly downloaded launcher version.
  3. Start AOgame.exe.
The detection was most likely caused by the old executable being unsigned, having no publisher metadata and using Windows command execution to delete, move and launch executable files.

Although the original file was harmless, I decided to completely rebuild starter.exe from scratch using a cleaner implementation.

The updated version:
  • No longer uses system() or command-line operations.
  • Uses the Windows API directly for file replacement and game startup.
  • Includes proper application and version metadata.
  • Has been rebuilt from clear and auditable source code.
  • Is publicly available with its complete source code.

The full source code is available here:

You do not have permission to view link Log in or register now.


The compiled starter.exe v1.0.0 can be downloaded here:

You do not have permission to view link Log in or register now.


Users who downloaded the client before this update can either:
  • Download the updated client archive again through ADC.
  • Download the new starter.exe from the GitHub release and replace the old file manually.

There is no need to exclude the entire client directory from your antivirus. Publishing the complete source code makes it possible for anyone to inspect the utility and verify that it only performs the intended launcher update and game startup operations.
 
Last edited:

Allods Online 3.0 — Complete Windows / WSL2 Installation Guide​


Release: Allods Online 3.0 Community Edition
Host operating system: Windows 10 (build 19041 or newer) or Windows 11, 64-bit
Server runtime: Ubuntu on WSL2
Database runtime: MySQL 5.7 and PostgreSQL 9.3 in Docker Desktop
Client runtime: Windows

This guide starts from a clean Windows computer and ends with a local, playable 3.0 server, a newly created account and a connected client. Read each section in order on a first installation.

1a. Download files

Download these two archives and the checksum file from the release page:
Do not mix files from another client or server version. The client and server must both come from this release.

1b. Historical documentation archive — doc_teleport

The server archive includes a directory named doc_teleport. This directory contains an offline mirror of historical Allods development and server documentation.

The archived folder structure, page titles, embedded links and crawler project files indicate that the documentation appears to originate from a former Astrum Nival Confluence installation hosted at gpt.astrumnival.com, particularly its GT documentation space.

The archive contains three main directories:
  • astrumnival
  • astrumnival2
  • astrumnival3

These directories appear to be separate download passes or partial snapshots of the same documentation source. Their content may overlap, and one snapshot may contain pages or attachments that are missing from another.

Depending on the snapshot, the archive may contain:
  • Archived Confluence documentation and navigation pages.
  • Pages from the historical GT documentation space.
  • Downloaded attachments, diagrams, images and thumbnails.
  • Word-export versions of some documentation pages.
  • Information about old Allods services, databases, tools, builds, releases and localization systems.
  • Configuration examples and references to historical infrastructure components.
  • .tpp and .tpu crawler project or index files.
The archive can be useful when:
  • A service, database, tool or configuration option has an unclear name.
  • Technical context is missing from the server files or installation scripts.
  • You need to understand historical server architecture, terminology or workflows.
  • You are looking for old examples, diagrams or attachments referenced by the documentation.
  • You want to compare the documented architecture with the components included in this server package.
How to browse the archive:
Start by opening an index.htm file from one of the astrumnival* directories in a web browser.

If the main navigation does not work, browse the directories manually and look under paths such as:

Code:
gpt.astrumnival.com/display/GT/
gpt.astrumnival.com/download/attachments/

If a page, image or attachment is missing from one snapshot, check the other astrumnival* directories.

  • Most of the observed documentation dates from approximately 2012.
  • The archive may be incomplete, duplicated or internally inconsistent.
  • Its instructions and infrastructure details may not match this release.
  • Confluence search, authentication, forms and dynamic menus will not work in an offline mirror.
  • External links and links to services that no longer exist may be unavailable.
  • Some pages may use inconsistent character encoding.
  • Old hostnames, email addresses, credentials or internal references may remain in the archived content.
  • Strings that resemble credentials or access tokens must not be assumed to be valid or safe to reuse.
  • Do not execute scripts or binaries found inside the archive without reviewing them first.

Treat doc_teleport as historical research material, not as current or authoritative installation documentation.

For installation and daily server operation, always follow this release guide and the scripts included at the root of the server package.

2. Hardware requirements

Recommended:
  • Windows 11 x64.
  • 8 physical CPU cores or more.
  • 16 GB RAM or more.
  • 20 GB free SSD space for the extracted client, server, databases and logs.
  • A CPU with virtualization enabled in UEFI/BIOS.

Practical minimum: 4 CPU cores and 12 GB RAM. Map loading is slower on the minimum configuration. The included quick map list is selected by default to reduce first-start memory and loading time.

3. Verify the downloads

Open PowerShell in the folder containing the downloads and run:

Code:
Get-FileHash .\Allods-Online-3.0-Server-ADC.7z -Algorithm SHA256
Get-FileHash .\Allods-Online-3.0-Client-ADC.rar -Algorithm SHA256

Compare both values with SHA256SUMS.txt. A value must match character for character. Download the affected archive again if it does not match.

4. Install WSL2 and Ubuntu

Microsoft's current WSL instructions are available here:
You do not have permission to view link Log in or register now.
.

Open PowerShell as Administrator and run:

Code:
wsl --install -d Ubuntu
wsl --update
wsl --set-default-version 2

Restart Windows when requested. Open Ubuntu from the Start menu, wait for its first initialization, then create the Linux username and password requested by Ubuntu.

Back in PowerShell, verify that Ubuntu uses WSL version 2:

Code:
wsl -l -v

The VERSION column must show 2 for Ubuntu. If it shows 1, run:

Code:
wsl --set-version Ubuntu 2

5. Install Docker Desktop

Install Docker Desktop for Windows from
You do not have permission to view link Log in or register now.
. The official WSL integration instructions are here:
You do not have permission to view link Log in or register now.
.

In Docker Desktop:
  1. Open Settings > General.
  2. Enable Use the WSL 2 based engine when the option is visible.
  3. Open Settings > Resources > WSL Integration.
  4. Enable integration for Ubuntu.
  5. Click Apply & restart.
Open Ubuntu and verify the integration:

Bash:
docker version
docker compose version

Both commands must return version information. Do not install a second Docker Engine inside Ubuntu when Docker Desktop integration is already enabled.

6. Install 7-Zip support inside Ubuntu

In Ubuntu, run:

Bash:
sudo apt update
sudo apt install -y p7zip-full

7. Extract the server into the Linux filesystem

Important: run the server from the Ubuntu filesystem, for example under ~/allods30. Do not run it directly from /mnt/c, /mnt/d or another Windows-mounted drive; the server creates many small files and performs much better in the Linux filesystem.

The example below assumes the archive is in the Windows Downloads folder. Replace WINDOWS_USER with your Windows account folder name:

Bash:
mkdir -p ~/allods30
cd ~/allods30
7z x /mnt/c/Users/WINDOWS_USER/Downloads/Allods-Online-3.0-Server-ADC.7z
cd Allods-Online-3.0-Server

Confirm that you are in the correct directory:

Bash:
pwd
ls

You must see at least install.sh, start-all-servers.sh, docker-compose.yml, game, server_bin and vendors.

8. Run the automated installation

From the server directory, run:

Bash:
chmod +x install.sh
./install.sh

The installer performs the following operations:
  • Checks Docker and Docker Compose.
  • Starts an isolated MySQL 5.7 database on local port 33306.
  • Starts an isolated PostgreSQL 9.3 database on local port 55432.
  • Creates the empty databases required by the 3.0 services.
  • Detects the current WSL2 IPv4 address and applies it to the active server configurations.
  • Prepares the game resource root.
  • Prints the exact address that must be entered in the client.
The first run downloads the database images and can take several minutes. It is complete when the terminal displays:

Code:
[OK] Base installation completed.

You can display the detected address at any time with:

Bash:
cat .server-ip

9. Start the complete server stack

Run:

Bash:
./start-all-servers.sh start

The launcher starts the database containers when necessary, refreshes the WSL address, prepares resources, and then starts the server services in dependency order:
  1. Account Server
  2. Master Server
  3. Billing Server
  4. Item Mall Server
  5. Log Server
  6. GameTool
  7. Shard and frontend services
The first start is the longest because the services create their database schemas and the shard loads maps. Do not close Ubuntu while it is starting. The command reports each service as ready and shows the listening ports at the end.

Check status in another Ubuntu terminal with:

Bash:
cd ~/allods30/Allods-Online-3.0-Server
./start-all-servers.sh status

Expected public game-facing ports are:
  • 9337 — client authentication.
  • 9347 — shard approval connection.
  • 9357 — account API.
  • 9322-9325 — shard frontends.
The database ports 33306 and 55432 are bound to localhost only and must remain private.

10. Create your first game account

Wait until Account Server is ready, then run:

Bash:
./create-account.sh YOUR_LOGIN

The script asks for the password twice without displaying it. The login must contain 3 to 32 letters, digits, dots, underscores or hyphens. The password must contain at least 6 characters.

Example:

Bash:
./create-account.sh alice

A successful operation ends with:

Code:
[OK] Account "alice" created.

Create a separate account for every player. Do not share one account between multiple users.

11. Extract and configure the Windows client

Use WinRAR or 7-Zip on Windows to extract Allods-Online-3.0-Client-ADC.rar to a short writable path, for example:

Code:
C:\Games\Allods-3.0

Avoid C:\Program Files because Windows permissions can prevent the launch scripts from updating the selected language file.

Open this file with Notepad:

Code:
C:\Games\Allods-3.0\Profiles\accountServer.cfg

Replace its content with the address printed by ./install.sh or cat .server-ip. Example:

Code:
account_srv_host = "172.30.100.25"
account_srv_port = 9337

The example address is not universal. Use your current value from .server-ip. Keep the quotation marks around the host.

12. Launch the client

Run one of these files from the client directory:
  • StartEN.bat — English client.
  • StartFR.bat — French client.
At the login screen, enter the account created with create-account.sh. Select the available shard and create a character.

Enable the included ConsoleSwitcher addon:
  1. Log in with your character.
  2. Press Esc to open the game menu.
  3. Open User Addons.
  4. Select ConsoleSwitcher and enable it.
  5. Return to the game and use the new Console button.
ConsoleSwitcher only displays the built-in console. Commands are still restricted by the access level of the connected account. Do not grant administrative access to ordinary player accounts on a shared server.

Always start the server before the client.

13. Daily server commands

Bash:
# Start all server services

./start-all-servers.sh start

# Display processes, ports and memory usage

./start-all-servers.sh status

# Restart the complete stack

./start-all-servers.sh restart

# Stop Java services cleanly

./start-all-servers.sh stop

# Stop the database containers too

docker compose stop

To start again after a Windows reboot, open Docker Desktop, open Ubuntu, enter the server directory and run ./start-all-servers.sh start.

14. WSL address changes

The WSL2 IPv4 address can change after wsl --shutdown or a Windows restart. The launcher automatically updates the server configuration, but the Windows client file must contain the new address.

After starting the server, run:

Bash:
cat .server-ip

If the value changed, update Profiles\accountServer.cfg in the Windows client before launching it.

You can also force a specific address:

Bash:
./configure-server.sh 172.30.100.25
./start-all-servers.sh restart

15. Logs and diagnostics

Launcher logs are written under:

Code:
run/start-all/YYYYMMDD-HHMMSS/

Useful commands:

Bash:
# Latest launcher log directory

ls -1dt run/start-all/* | head -1

# Database container status

docker compose ps

# Database initialization logs

docker compose logs --tail=100 mysql postgres

# Account Server output

tail -n 100 server_bin/accountServer/cfg/server.log

# Shard logs discovered recursively

find server_bin/shard -type f -name 'server.log' -print

When requesting help, include:
  • Your Windows version.
  • The output of wsl -l -v from PowerShell.
  • The output of docker compose ps.
  • The output of ./start-all-servers.sh status.
  • The last 100 lines of the failed service log.
  • The exact error displayed by the client or server.

16. Troubleshooting

Start Docker Desktop. Open Docker Desktop > Settings > Resources > WSL Integration, enable Ubuntu, then Apply & restart. Close every Ubuntu window, run wsl --shutdown in PowerShell, reopen Ubuntu and retry docker version.

Confirm that Docker Desktop is using Linux containers. Wait until Docker Desktop reports that the engine is running. Then run docker info inside Ubuntu. If this still fails, disable and re-enable Ubuntu under Docker Desktop's WSL Integration settings.

Run:

Bash:
docker compose ps
docker compose logs --tail=200 mysql postgres

Check available disk space with df -h. Do not delete the Docker volumes if they contain accounts or characters that you need to keep.

The Account Server has not completed its first schema creation. Start the stack, wait for Account Server to become ready, inspect server_bin/accountServer/cfg/server.log, then run the account command again.

First verify the current WSL address with cat .server-ip and copy it exactly into Profiles\accountServer.cfg.

In Windows PowerShell, test the authentication port:

Code:
Test-NetConnection -ComputerName YOUR_WSL_IP -Port 9337

TcpTestSucceeded must be True. If it is false, confirm that Account Server is running and allow the required game ports through Windows Defender Firewall for private networks.

Close memory-heavy applications. The supplied launcher uses maps_fast.cfg and limits the shard JVM to 4 GB. Give WSL enough memory by creating %UserProfile%.wslconfig on Windows:

Code:
[wsl2]
memory=12GB
processors=8
swap=8GB

Then run wsl --shutdown in PowerShell and start Docker Desktop again. Adjust the values to fit your computer; do not allocate all physical RAM to WSL.

Extract the client completely to a writable folder. Do not run the batch file from inside the RAR archive. Verify that the client contains bin, data, Profiles, StartFR.bat and StartEN.bat. Temporarily run the selected batch file from an already open Command Prompt to keep any error visible.

Open the game menu with Esc, enter User Addons, enable ConsoleSwitcher, and return to the game. If it was already enabled, reload it from the same addon menu. The client archive must contain data\Mods\Addons\ConsoleSwitcher\AddonDesc.(UIAddon).xdb.

Warning: this permanently deletes all accounts, characters and database data in this installation. Use it only for a new test installation that has no data to preserve.

Bash:
./start-all-servers.sh stop
docker compose down -v
./install.sh
./start-all-servers.sh start

17. Back up the databases

Stop player activity before taking a consistent backup. From the server directory:

Bash:
mkdir -p backups
docker compose exec -T mysql mysqldump -uroot -p1450 --all-databases --single-transaction > backups/mysql-all.sql
docker compose exec -T postgres pg_dumpall -U postgres > backups/postgresql-all.sql

Store the two SQL files outside the server directory as well. They contain account and character data and must not be posted publicly.

18. Local network and Internet exposure

Complete the same-computer installation first. For another computer on your local network, the address visible to that client and WSL/Windows port forwarding rules may differ from the WSL address used by the local Windows client.

For Internet hosting you must deliberately configure a public address, router/NAT forwarding and a restrictive firewall. Never forward MySQL 33306 or PostgreSQL 55432. Change all default database passwords before accepting untrusted connections. Public hosting is an advanced deployment and is outside the safe local quick-start procedure.

19. Clean shutdown

Before shutting down Windows, stop the services in this order:

Bash:
./start-all-servers.sh stop
docker compose stop

Wait for both commands to finish. This reduces the risk of an interrupted database write.

20. Quick command reference

Bash:
cd ~/allods30/Allods-Online-3.0-Server
./install.sh
./start-all-servers.sh start
./create-account.sh YOUR_LOGIN
cat .server-ip
./start-all-servers.sh status
./start-all-servers.sh stop
docker compose stop


If all services are ready, port 9337 is reachable from Windows, the client uses the value from .server-ip, and the account was created successfully, the local Allods Online 3.0 environment is ready.



21. Release credits

This community release was prepared and published by sorokdva ( Сорок два Сорок два) for the Allods Developers Community.

A significant amount of time was spent recovering, reviewing, organizing, rebuilding and preparing the materials required to make this version publicly usable.

This work includes:
  • Making the complete Allods Online 3.0 server and matching client publicly available.
  • Building clean, ready-to-use server and client archives.
  • Preparing an isolated Docker environment for the required MySQL 5.7 and PostgreSQL 9.3 services.
  • Creating installation, configuration, account creation and server management scripts.
  • Automating the server configuration so that a local server can be deployed and started with only a few commands, without manually configuring every database and individual service.
  • Testing and documenting the complete Windows, WSL2 and Docker installation process.
  • Writing this complete installation, troubleshooting, diagnostics and backup guide.
  • Creating new texts.pak language packages for both English and French.
  • Reconstructing the 3.0 client localization files using the Allods Online 4.0 language resources as a base and adapting them for compatibility with the 3.0 client.
  • Providing English and French launchers for a client version that had previously only been available publicly in Russian.
  • Publishing the historical doc_teleport documentation mirror.
  • Researching, organizing and writing the accompanying doc_teleport README so that the archived documentation can be understood and used safely.

The only previously available release of the Allods Online 3.0 client was in Russian. The English and French versions included in this package were therefore not taken from an existing public 3.0 localization release.

The texts.pak files had to be reconstructed using the Allods Online 4.0 language packages as a foundation, then adapted and packaged for use with the 3.0 client.


Before this community release, this complete Allods Online 3.0 version was not publicly available on the Internet as a freely accessible, multilingual, documented and ready-to-use package.



The objective of this release is to preserve this part of Allods history, make it accessible to developers and enthusiasts, and remove the technical and linguistic barriers that previously made installing, playing and studying this version unnecessarily difficult.

22. Support this work


This release, its ready-to-use archives, automated Docker environment, installation scripts, historical documentation mirror and complete tutorial were created and published for the community.

If this release helped you, saved you time, allowed you to discover Allods Online 3.0, or gave you access to resources that were previously unavailable publicly, please consider supporting the work of the Allods Developers Community with a donation.

Your support helps cover hosting and infrastructure costs and makes it possible to continue preserving, documenting and releasing additional Allods development resources for everyone.


Every contribution, regardless of its amount, is appreciated and directly supports future community releases.

Thank you for supporting the preservation and development of the Allods community.



— sorokdva ( Сорок два Сорок два), Allods Developers Community
 
Update regarding the Antivirus detection of starter.exe

A user recently reported that antivirus detected the starter.exe file included with the Allods Online 3.0 client as:

Malware.AI.3374321251

First of all, I would like to thank them for reporting it.

Security warnings should never be ignored, even when they eventually turn out to be false positives. Reporting the detection allowed me to investigate the file properly and improve the client release for everyone.

Investigation result

After analyzing the reported executable, I confirmed that the original starter.exe was not a virus.

The detection was a false positive caused by the way the old executable was built and by the operations it performed.

The exact file that was analyzed was:
  • SHA-256: 7c7a5a6798da2df86e9cc13741e5788a5b9899f7c1b7744ed540a815733be01d
  • MD5: 706060e930817cfe2212c05df8e31b28
  • Size: 40,820 bytes
  • Digital signature: None

The original utility only executed the following operations:

Code:
del /F /Q ..\Launcher_English.exe
move ..\Launcher.new.exe ..\Launcher.exe
start /high AOgame.exe

Its purpose was therefore limited to:
  1. Deleting the previous English launcher.
  2. Replacing it with the newly downloaded launcher.
  3. Starting the game executable.

During the analysis, I found:
  • No network communication.
  • No external URL.
  • No file download functionality.
  • No registry modification.
  • No persistence mechanism.
  • No process injection.
  • No use of WriteProcessMemory or CreateRemoteThread.
  • No obvious obfuscation.
  • No additional hidden behavior.

Why Antivirus detected it

Malware.AI.3374321251 is a generic detection generated by Malwarebytes' artificial-intelligence and heuristic detection systems. It is not the name of a confirmed malware family.

The old executable combined several characteristics that can appear suspicious to antivirus software:
  • It was not digitally signed.
  • It did not contain publisher or version metadata.
  • It used system() to execute Windows commands.
  • It deleted and replaced executable files.
  • It launched another executable with high process priority.
  • It was a very small PE32 executable compiled using an old MinGW/GCC toolchain.
  • It had very little public reputation because it was only distributed with this client release.

Taken together, these characteristics were enough to trigger Malwarebytes' heuristic engine, even though the actual behavior of the file was harmless.

Malwarebytes provides additional information about this type of generic detection here:

You do not have permission to view link Log in or register now.


What has been changed

Although the original file was harmless, I decided not to simply tell users to ignore the warning or exclude the entire client folder from their antivirus.

Instead, I took the time to completely rebuild starter.exe from scratch using a cleaner and more transparent implementation.

The new version:
  • Does not use system().
  • Does not execute command-line instructions.
  • Uses the Windows API directly for file operations.
  • Uses the Windows API directly to launch the game.
  • Includes application, publisher and version metadata.
  • Performs only the required launcher replacement and game startup operations.
  • Is built from publicly available source code.

Source code and download

To make the behavior of the new utility completely transparent, I have published its full source code on GitHub.

Anyone can inspect the project, review the implementation and verify that the program only performs the operations described above.

Source-code repository:

You do not have permission to view link Log in or register now.


Compiled release — v1.0.0:

You do not have permission to view link Log in or register now.


What existing users should do

If you have already downloaded the Allods Online 3.0 client and have not deleted it, you can use either of the following options:
  1. Download the updated client archive again from the Allods Developers Community.
  2. Download the new starter.exe from the GitHub release and manually replace the previous file.

You do not need to exclude the entire client directory from your antivirus.

If Malwarebytes quarantined only the previous starter.exe, you can simply replace it with the newly rebuilt version.

The actual game executable can also normally be launched directly through:

bin\AOgame.exe

However, the automatic launcher replacement process relies on starter.exe.

Final note

Once again, thank you to the user who reported the detection.

Even though the original file was confirmed to be a false positive and contained no malicious behavior, the report helped make the release cleaner, safer and more transparent.

Publishing the complete source code also means that users no longer have to rely only on my explanation: everyone can now inspect the utility and verify exactly what it does.
 
Back
Top