| .. | ||
| catalog/GameplaySettings | ||
| e2e | ||
| mqel_data | ||
| plumbing | ||
| windows | ||
| .gitignore | ||
| _gen_certs.py | ||
| AI_GUIDE.md | ||
| aret_index.csv | ||
| auto_fix_loop.py | ||
| bp_trace.py | ||
| catalog_economy.py | ||
| code_sampler.py | ||
| CODE_TRACE_PIPELINE.md | ||
| command_notifications.py | ||
| completeness_gate.py | ||
| dbg_attach_test.py | ||
| debuglog.py | ||
| diagnose.py | ||
| DIAGNOSIS.md | ||
| for_sale_pink_castle.json | ||
| gameplay_catalog.py | ||
| HANDOFF_WINDOWS.md | ||
| launch_game.bat | ||
| launch_game.py | ||
| mem_scan.py | ||
| mqel_launcher.py | ||
| PC_TEST.md | ||
| README.md | ||
| SERVER.md | ||
| SERVER_CORRECTNESS.md | ||
| setup_windows.bat | ||
| shop_sku_modifiers.json | ||
| start_server.bat | ||
| starter_castle_buildinfo.json | ||
| stub_server.py | ||
| trace_link.py | ||
| tutorial_attack.json | ||
Mighty Quest — community server (stub)
First iteration of a community backend for The Mighty Quest for Epic Loot.
The original game was always-online against Ubisoft's (now-gone) C#/.NET servers;
this reimplements that backend. See ../re/docs/ for how the protocol was
reverse-engineered.
Run it (zero dependencies)
python3 server/stub_server.py --host 0.0.0.0 --port 8080
Python 3 standard library only — runs on the same machine as the game, or on a VPS for online hosting.
What it does now
- Routes on the real endpoint pattern seen in live traffic:
/<Service>Service.hqs/<Method>(GET reads, POST commands; full list in../re/catalog/network/endpoints_observed.txt). - Complete, correctly-typed responses generated from the reversed catalog
(
../re/catalog/network/generated/examples.json): full field sets including inherited fields, real enum values,$typediscriminators. e.g.GetAccountInformationreturns 44 fields withPrivileges: 9andBuildInfo/Wallet/ActiveConsumablespresent — exactly the fields a prior attempt omitted (its documented cause of subtle in-game breakage). - Stateful account/session model, persisted to
server/state.json. /distributionechoes the client package versions (package_versions.json) so the patch-check passes.- Logs every request to
server/requests.log— point the real client here and the log captures any method not yet handled, to fill in next.
Pointing the client here
The client reads its entry config from BootConfig /
GameServerConnectionConfig (a DistributionServiceUrl / GameServerUrl).
Redirect those to http://<this-host>:<port> — by editing the client's local
config, or DNS/hosts redirection of the original hostname. (Requires the runnable
game on a Windows box; the analysis dump in this repo does not execute.)
Status & roadmap
- Boot/login shaped responses + universal request logging.
- Replace example payloads with real per-controller logic, guided by the captured request log + the typed schemas.
- Validate the wire format offline against the client's real codec
(
re/tools/validate_codec.py, Unicorn): both directions proven — int/bool/ string readers, whole-objectLoginResultdeserialize,LoginResultserialize, and a serialize→deserialize round-trip (12/12). - Account/profile persistence; then the castle/attack loop.
Legal
Abandoned-game preservation, non-commercial. Ships only our own code + analysis artifacts — no Ubisoft code or game assets.