A single, self-contained index.html. Open it in any browser (offline, no install, no server). It bundles:
- ⚔️ Counter finder: enter the enemy unit (and optionally your civilization) to see exactly what beats it, ranked by bonus damage, with how-to-use tips filtered to your roster.
- 🏛️ Civilizations: all 76 civs across 3 game modes: bonuses, team bonus, unique units, unique techs (cost + effect), full roster, and community tactical notes.
- 🛡️ Units: searchable, sortable stats table for every unit (cost, HP, attack, armor, range, speed, bonus-vs, counters).
- 🧱 Roster gaps: the civ page groups the roster into upgrade lines and flags what each line is missing, both the upgrades the civ cannot build (Britons get no Paladin) and the generic techs it cannot research (Britons get no Thumb Ring or Bloodlines).
- ⚖️ Compare civs: two civs side by side (bonuses, team bonus, unique units and techs) plus the exact diff: which units one can build that the other cannot, and which generic techs one can research that the other cannot.
- 🥊 Unit matchup: two units head to head at base stats: damage per hit with the armor and bonus-damage breakdown, DPS, hits to kill, time to kill, and who wins the straight fight.
- 📜 Build orders: 19 build orders incl. a dedicated Red Phosphorus Fast Castle sub-selector (6 follow-ups), plus scouts, archers, MAA, drush, fast imperial and civ-specific builds.
- 📖 Reference: the community charts (unit response chart + reversed, unique-units table).
On iPhone, open the guide in Safari, tap Share, then Add to Home Screen. It installs as a standalone app with its own icon and no browser chrome, which is the point if you are checking a counter mid-game. Android is the same via Chrome's Add to Home screen.
It works with no signal. A service worker caches the page on first visit, so it opens on
aeroplane mode or bad wifi. When a new build ships you get a small "newer version available"
prompt instead of a silent swap or a stale copy, and it updates only when you tap it. The worker
is registered only over http(s), so opening index.html by double-click stays an ordinary local
file with no worker involved.
Just open index.html. Everything (data + chart images) is embedded, so it works offline by double-click.
guide.html is kept as a redirect so older links and bookmarks (including deep links with a #fragment) still land in the right place.
Every view has its own link, so you can paste a specific answer into a comment. Press / to jump to the search box; the browser back button works.
| Link | Opens |
|---|---|
#counters/Knight/Franks |
what Franks build against Knights |
#civs/Franks |
the Franks civ page |
#compare/Franks/Britons |
Franks vs Britons, side by side |
#vs/Knight/Halberdier |
Knight vs Halberdier damage maths |
#ror/civs/Romans |
Romans, in the Return of Rome dataset |
53 AoE2:DE civs · 6 Chronicles: Battle for Greece · 17 Return of Rome (AoE1) = 76 civs, 376 unit types.
python3 build.py # process raw game data -> data/*.json (+ readable .md)
python3 make_guide.py # build self-contained index.html (inlines data + images)
python3 check.py # integrity checks- Unit / civ / tech data + counters: aoe2techtree.net (SiegeEngineers/aoe2techtree), extracted from the AoE2:DE game files.
- Build orders: AoE Companion and its community guides, incl. Red Phosphorus's Uncounterable Fast Castle.
- Charts: community infographics from r/aoe2 (unit response chart, build-order flowchart, unique-units table) by their respective authors.
- Villagers-per-building column: concept from Survivalist's aoe2-de-tools; computed here from unit cost ÷ train time ÷ base gather rates.
This site uses GoatCounter for privacy-friendly, cookieless analytics: aggregate visit counts, referrers, and which sections are used. No personal data, no tracking cookies, no cross-site tracking.
Age of Empires II © Microsoft Corporation. This is a non-commercial fan project made under Microsoft's Game Content Usage Rules; not endorsed by or affiliated with Microsoft. All community charts and build orders belong to their original authors.