Client mod framework for Anarchy Online. Injects into the game process via DLL search-order hijacking (version.dll) and patches game behavior at runtime through inline hooks and the game's own DValue (CVar) system.
Built for the Project Rubi-Ka private server. There are no guarantees of functionality nor stability on other Anarchy Online client distributions.
- Download
version.dllfrom the latest release. - Drop it into the same folder as
AnarchyOnline.exe(should be[game root]\client\). - Launch the game normally.
To uninstall, delete version.dll from the client folder.
From TinkeringIdiot:
- Use
WINEPREFIX=~/.prk wineconfigand add the override for version.dll to ensure the search-order hijack works correctly
Replaces the stock mouse camera with modern MMO controls:
- Auto-follow — camera smoothly returns behind your character when you move (configurable lerp speed).
- RMB-drag align — right-click drag snaps your character to face the camera direction.
- Mouse-run — hold both mouse buttons to run forward with mouse steering. Keyboard forward (W) and mouse-run coexist cleanly.
- The cast bar that is usually tiny and locked to the top left of the screen can now be relocated and resized.
- The cast bar now shows the nano program name rather than just "Nano program".
- Cast bars exist in a descending stack frame. To move the frame, open F10 -> AOReloaded -> enable the preview bars. The block that appears can be dragged around. When finished, uncheck the preview bars checkbox.
NB: When placing the preview bars, the actual start position - i.e., where all bars will appear and stack downwards from - corresponds with the top bar. This is some deep clientside behaviour that may be improved upon in a later release. For now, the bars all move together in a stack.
- Press autorun key once to start running, press it again to stop.
- You can press autorun while holding down W (or even using the LMB+RMB thingy above) and it will keep running once you release the movement key.
- Pressing move-forward, move-backward or both LMB+RMB buttons will cancel the autorun.
Automatically patches the executable to use up to 4 GB of virtual memory (instead of the default 2 GB), eliminating crashes from memory fragmentation on large maps. Applied once on first launch; takes effect from the second launch onward. Start the game once after installing this mod, close it (the login screen is fine even) and you're good to go.
When enabled, pressing numpad keys while chat is focused enters numbers rather than triggering camera/movement actions.
All features are configurable from an AOReloaded tab in the in-game options panel (F10).
Note that LMB+RMB mouse-run requires the WoW-style camera option enabled.
Non-exhaustive list, in no particular order:
- Chat font size slider
- Finer-grained mouse sensitivity sliders
- Chat timestamps
- Inventory and nanoprograms search and filtering
- Killcounter/session stats (XP/hr, etc)
- Network latency display
- Realtime clock on UI / Session playtime timer
- Bag space counter
- Inventory sorting
- Crash hardening
- Map waypoints + breadcrumb trail
- Vendor sell value display
- Large cursor option
- and more
Requires Clang-cl, Ninja, and MSVC (for headers/libs). CMake 3.24+.
cmake --preset release
cmake --build build/releaseAvailable presets: debug, release, dev (RelWithDebInfo).
The build produces version.dll. The post-build step copies it (and its PDB) into ../client/ automatically if the client directory exists.
| Component | Version |
|---|---|
| Compiler | Clang-cl (LLVM) |
| Linker | lld-link |
| Generator | Ninja |
| Target | i686-pc-windows-msvc (x86) |
| CRT | Static (/MT) |
| Standard | C++20 |
- Windows loads our
version.dllfrom the client directory before the real one in System32. - All 16 original
version.dllexports are forwarded transparently to the system DLL. - On load, a deferred init thread waits for the game's DLLs to finish loading, then resolves internal game APIs by their mangled C++ symbol names.
- Inline hooks (5-byte
jmp rel32) detour game functions through our code. Trampolines preserve original calling conventions. - Custom DValues are registered into the game's global CVar registry, where the options panel XML can bind to them directly.