For the complete documentation index, see llms.txt. This page is also available as Markdown.

ConfigEncoder

ConfigEncoder packs client configuration into signed, encrypted blobs

ConfigEncoder reads three plain-text XML inputs and writes encrypted binary blobs that the client and launcher load at startup. It is the only supported way to update connection details, client-side tunables, and launcher branding after a release has shipped - the client will not load an edited .xml.

Output files are AES-256-GCM encrypted. The per-file key is derived from the embedded master key (the same master key shared by every AXIOM-EMU binary) and the canonical lowercase filename of the blob, so the client can decrypt any bundle produced by a matching build.

Tool Location

Tools/ConfigEncoder/
    ConfigEncoder.exe
    EncoderConfig.xml
    ServerConfig.xml
    ClientConfig.xml

Inputs

All three files live next to ConfigEncoder.exe and must be present for a run to succeed.

File
Purpose

EncoderConfig.xml

Tool settings: output folder, client install root, license key

ServerConfig.xml

ConnectServer IP/port, client Serial and Version

ClientConfig.xml

Client-side tunables - graphics, interpolation, animation timing, auto-updater, launcher branding, economy caps

Outputs

Written to the Output Path configured in EncoderConfig.xml (typically the client's Data\Local\ folder):

File
Consumer
Contents

ServerInfo.axiom

Client

ConnectServer IP/port, client serial, client version

ClientConfig.axiom

Client

All tunables from ClientConfig.xml

UpdateConfig.ini

Launcher / auto-updater

Patch server URL and enablement (only if configured)

LauncherConfig.ini

Launcher

Branding and launcher UI options (only if configured)

The C++ servers (GameServer, DataServer, ConnectServer, JoinServer) do not read these .axiom blobs - they read their own .dat / .ini files.

EncoderConfig.xml

Attribute
Meaning

Output Path

Folder where ServerInfo.axiom / ClientConfig.axiom (and the optional .inis) are written. Point this at the client's Data\Local\ directory.

DLLIntegrity Path

Root of the client install. ConfigEncoder computes SHA-256 hashes of the DLLs under this path and embeds them in ClientConfig.axiom for the client's integrity check at startup.

License Key

Your portal license key. Recorded here for operator reference (the first 8 chars are printed on each run); the .axiom encryption itself uses the embedded master key, not this field. Keep it in sync with the four servers so operators don't get confused about which deployment a bundle belongs to.

ServerConfig.xml

Attribute
Meaning

Connection IP

Public IP of your ConnectServer - the address the client connects to first.

Connection Port

ConnectServer TCP port. Matches ConnectServerPortTCP in ConnectServer.ini.

Client Serial

Arbitrary token. Must match ServerSerial in every GameServer's GameServerInfo - Common.dat.

Client Version

Arbitrary version string. Must match ServerVersion in every GameServer's Common.dat.

ClientConfig.xml

Template for the client's runtime configuration. Each top-level block is documented inline in the shipped file. Sections actually read by ConfigEncoder:

Block
Purpose

<Graphics>

MaxFPS cap

<Animation>

FPS-adaptive animation timing (GlobalDivisor, PlayerMultiplier, MountMultiplier, WingMultiplier, EffectBlurDivisor)

<Interpolation>

Visual smoothing between 25Hz logic ticks (master + per-category toggles for Objects, Characters, Effects, Camera)

<RenderingOptimization>

Chrome LOD distances and frustum culling cap

<Frustum2D>

Terrain frustum expansion (widescreen black-corner fix)

<GroundItems>

Ground item rendering caps and name distance

<PostProcessing>

FXAA, bloom, motion blur toggles + tuning

<Economy>

Client-side zen caps (trade, warehouse, owned, personal shop)

<AutoUpdater>

Patch server host/port/HTTPS toggle

<TooltipColors>

Item tooltip option colors

<Launcher>

Launcher branding (title, splash, URLs, color palette)

<BottomUI>

Bottom hotbar scale

<DLLIntegrity>

Optional <DLL Name="..." /> rows added on top of the built-in DLL list whose hashes get baked into ClientConfig.axiom

Every value in this file is consumed by the client only. Edit it, re-run ConfigEncoder, and the new ClientConfig.axiom replaces the previous one in Output Path.

The <Launcher> block also writes a plaintext LauncherConfig.ini next to the .axiom blobs; the <AutoUpdater> block writes a plaintext UpdateConfig.ini when Enabled="1". Both are read by the Launcher (not the game client).

Usage

  1. Edit the three XML files in Tools\ConfigEncoder\.

  2. Run ConfigEncoder.exe from its own folder. It takes no command-line arguments.

  3. The tool writes the output blobs directly into Output Path - no manual copy.

Re-run ConfigEncoder any time you change ServerConfig.xml or ClientConfig.xml. The client reads the blobs on startup; editing the XML alone has no effect.

For end-to-end setup - where ConfigEncoder fits between editing your XML and launching the servers - see Launching Your Server.

Keep License Key in EncoderConfig.xml in sync with every server's LicenseKey. The .axiom encryption itself does not depend on this field, but tracking it here avoids confusion about which deployment a bundle was built for.

Last updated