Open Source Rise of Kingdoms Stats Management Tool. Track TOP X players in kingdom / alliance / honor leaderboard. Depending on what you scan the resulting spreadsheet will look different:
Kingdom rankings: Governor ID, Governor Name, Power, Kill Points, Ranged Points, T1-T5 Kills, Total Kills, T4+T5 Kills, Dead Troops, RSS Gathered, RSS Assistance, Helps and Alliance name.
Honor, alliance and seed rankings: Governor name and score only. Because the game doesn't guarantee name accuracy, a screenshot of the name is saved in addition.
This is a heavily modified version of the original tool from nikolakis1919.
There are two ways of using the scanner:
- Simple installation — download the released .exe, no Python required. Instructions below.
- Advanced installation — clone the source and run with Python. Instructions below.
config.json has been replaced with a config/ folder containing multiple files for global settings, scanner presets, and GUI config. Version 5 configs are not compatible.kingdom_scanner, alliance_scanner, honor_scanner, and seed_scanner entry points have been merged into a single scanner_console.py and scanner_ui.py. The CLI presents an interactive menu to select the scan type.config/internal/*.jsonClick to expand
| Light Theme | Dark Theme |
|---|---|
Download the latest RoK Tracker.zip release. Extract it and:
deps/tessdata/deps/platform-tools/.exe to runPrerequisites: Bluestacks 5, Python 3.14+ (download) or uv (instructions), tessdata, ADB Platform Tools. On Windows, Build Tools for C++ may be required. Here is how to set it up with uv:
deps/ folder (see Folder Structure)uv syncuv run scanner_console.py — CLI (select scan type interactively)uv run scanner_ui.py — GUI (tabs for Kingdom and Rankings)The config/ folder contains these files:
| File | Purpose |
|---|---|
config.json |
Global settings (Bluestacks instance name, ADB port, log paths) |
kingdom_defaults.json |
Default options for kingdom scans |
seed_defaults.json |
Default options for seed (quick) scans |
alliance_defaults.json |
Default options for alliance ranking scans |
honor_defaults.json |
Default options for honor ranking scans |
gui_config.json |
GUI settings (default theme) |
Only two directories need manual attention:
deps/
├── tessdata/
└── platform-tools/
Everything else (config/, _internal/, source scripts) is either downloaded from the release or generated automatically. Scan results go into scans_kingdom/, scans_alliance/, scans_honor/, scans_seed/. Intermediate screenshots go into temp_images/.
manual_review/ with F prefix and a warning is loggedR prefix in manual_review/inactives/By default, the scanner assumes ADB port 5555. To configure automatic port detection:
bluestacks_config in config/config.json to your Bluestacks config file location (usually C:\ProgramData\Bluestacks_nxt\bluestacks.conf)config.json matches your Bluestacks instance name — the scanner asks for it interactivelybluestacks.conf exists, your instance likely always uses port 5555Not every Bluestacks variant has a config, that is not a limitation of the scanner but the installed android or Bluestacks versions. However, in those cases it is very likely that the port 5555 is used.
.xlsx file when finished — on the next scan there is a (small) chance it gets overwritten\\ or forward slashes / in the Bluestacks path fields in config files (raw \ will cause a JSONDecodeError)The best way to get help is on Discord — my username is cyrexxis (same as my GitHub username). I'm on the official RoK Server and the Chisgule server.
To get help faster, follow these rules:
1. Send a message request explaining your problem
2. Include your scanner.log file — "it doesn't work" without logs won't get answered
3. There's no guaranteed response time since this is a free-time project
GitHub Discussions is another option — others may benefit from your troubleshooting
$ claude mcp add RokTracker \
-- python -m otcore.mcp_server <graph>