The server module represents the core of the LAN Server. It is a simple web server that listens to the game's API requests. The server reimplements the minimum required API surface to allow the game to work in LAN mode.
- Windows: 7 (or equivalent, 10 or higher recommended).
- Linux: kernel 3.2 (see here for more details).
- macOS: Monterey (v12).
Admin rights or firewall permission to listen on port 443 (https) will likely be required depending on the operating system.
Experimental
- BSD-based (OpenBSD, DragonFly BSD, FreeBSD and NetBSD).
- Solaris-based (Solaris and Illumos).
- AIX.
Note: For the full list see minimum requirements for Go 1.26.
aoe-api.reliclink.com: legacy domain for AoE I: DE, AoE II: DE, AoE III: DE and AoE IV: AE.*.worldsedgelink.com: current domain for all games.
*.playfabapi.com: currently used in AoM for Arena of the Gods content.
api.ageofempires.com: except text moderation so it works normally even without internet.cdn.ageofempires.com: except server status so it always shows online.
Note proxied domains only override part of the official functionality but retain the rest of it.
The easiest way to generate a self-signed certificate is by running the bin/genCert executable (more
info here or you may leave
that to
the launcher if you are hosting and running the launcher on same PC.
The self signed certificate pair (selfsigned_cert.pem and selfsigned_key.pem) is generated specifically for
non-AoM and non-AoE IV games.
The default certificate pair (cert.pem and key.pem) serves as the default and for AoM and AoE IV. It is signed
by
cacert.pem certificate authority.
You can use your own certificate by (re)placing the cert.pem and key.pem files in the resources/certificates
directory.
The few configuration options are available in the config.toml file. The file is
self-explanatory and should be easy to understand.
The configuration file sent to the client upon login is login.json inside the game subdirectory in resources/config.
Some options
are
easy to understand while others might require researching.
The game connects to a static cloud to download assets. The server is configured to replace the original calls to
itself. The configuration file is cloudfilesIndex.json inside the game subdirectory in resources/config and the
corresponding
files reside in the cloud directory.
The chat channels are defined in the chatChannels.json file.
The server also serves some static responses for the game to work. The files are located in
the responses base directory.
Item Definitions: Definitions of items. Includes rewards, challenges and other items.
Achievements: List of achievements.Leaderboards: List of leaderboards.Automatch maps: List of maps for automatch.Challenges: List of challenges.Presence Data: Presence data. Basically if a player is online, offline or away.Item Definitions: Definitions of items. Includes rewards, challenges and other items.Item Bundle Items: Grouping of items into bundles.Item Locations: Locations of items.
Achievements: List of achievements.Leaderboards: List of leaderboards.Item Definitions: Definitions of items. Includes rewards, challenges and other items.Item Locations: Locations of items.
Achievements: List of achievements.Leaderboards: List of leaderboards.Automatch maps: List of maps for automatch.Challenges: List of challenges.Presence Data: Presence data. Basically if a player is online, offline or away.Item Definitions: Definitions of items. Includes rewards, challenges and other items.Item Locations: Locations of items.Item Bundle Items: Grouping of items into bundles.Level Rewards Table: Level rewards table.
Achievements: List of achievements.Leaderboards: List of leaderboards.Challenges: List of challenges.Presence Data: Presence data. Basically if a player is online, offline or away. Also includes the screen the player is inItem Locations: Locations of items.Item Definitions: Definitions of items. Includes rewards, challenges and other items.Item Bundle Items: Grouping of items into bundles.
public-production:1: all files here are for testing purposes, or for pre-release game versions.2: current version of the files:manifest.json: Specifies this folder paths.seasons/seasons0.json: left-over when they were planning to add seasons to AotG story mode.daily_skirmish_plus.json: Specifies the settings and order for the Daily Celestial Challenges.feature_flags.json: Feature flags, currently just disabling the beta tag for AotG.known_blessings.json: Listing of all blessings, even blessings or levels not used. Used by the server to grant them all to the users.gauntlet.json: General settings of the Challenge mode.-
gauntlet_mission_poools.json: Listing of missions and their pools.
See Battle Servers for how to set up and start manually-configured Online-like Battle-servers. See Battle Server Manager for how to do so automatically.
CLI is available with similar options as the configuration. You can see the available options with
server -h.
For documentation on how what each endpoints does, please refer to LibreMatch documentation. Other endpoints are mostly self-explanatory.
See Docker for information.