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.xmlInputs
All three files live next to ConfigEncoder.exe and must be present for a run to succeed.
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):
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
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
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:
<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
Edit the three XML files in
Tools\ConfigEncoder\.Run
ConfigEncoder.exefrom its own folder. It takes no command-line arguments.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