Hey everyone!
I'm releasing GBWC EmuServer, a GunBound server emulator written from scratch in Python (asyncio). One codebase covers three generations of the game; you choose the version for each game server in the config.
Tested clients
All tested clients are GBS (the Brazilian, Portuguese-only clients):
- Thor's Hammer v404
- World Champion Season 1 v440 and v495
- World Champion Season 2 v548 and v584 (with Grand Prix)
Features
- Broker (server list), Game Server and Buddy (friends) servers
- Channels, rooms, room master change, quick join, matches and result screen
- Shop with gold and cash, chest, avatars, gifts
- Ranks and rankings (S1 and S2 rank ladders, daily job)
- Grand Prix (S2 only; I couldn't find a WC S1 client with GP to test it)
- S2: tutorial with rewards, Jackpot, jewel and seal enchanting, slot machine, Rena shop, battle items, MVP, country ranking and Stage channel (v584 missions, experimental)
- GM commands
- Database: SQLite (default, nothing to install), MySQL or PostgreSQL
- Script that creates the database and migrates it forward by version (TH -> WCS1 -> WCS2)
- Tool that imports items and packages straight from the client's avatar.xfs into the shop
- 200+ automated tests
Client file editor
I use the GunBound XFS Editor alongside the server. It opens and edits the client's .xfs files (including SolFS-encrypted ones) and the item DAT files:
To view the content, you need to sign in or register
Anti-hack (GameGuard / HackShield)
Support is partial and experimental. It's off by default (mode: off).
- observe: only logs the anti-hack traffic the client sends and never kicks anyone
- capture (GameGuard): records question/answer pairs to check offline
- v584: experimental validation, observe mode only, using the original ggauth50.dll (needs a separate x86 Python; the DLL is not in the repo)
- HackShield (v404/v440): planned; for now the server only logs its traffic (observe)
- There is no required mode yet (kicking clients that don't answer), and it hasn't been tested with a real client over the network
Requirements
- Python 3.11 or newer
- A compatible GBS client (see the Clients section below)
Quick setup
Code:
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
copy config.example.yml config.yml
python init_db.py WCS2
python broker.py
python game.py
python buddy.py
Clients (GBS)
| Version | Download | XFS Passwords |
| Thor's Hammer v404 |
| |
| WC Season 1 v440 |
| |
| WC Season 1 v495 |
| |
| WC Season 2 v548 |
|
qnrgksdlwkdrjflaltkdlffhqhdlsmsfhzptdmfqkftkeodpwkdckrgksrjtdmfhdkffuwlaustjal
|
| WC Season 2 v584 |
|
45skdmlRnadmsandjtdlswlskdmldlstodrhksdmsandjtdlswl5432dlwnddy1gksrkzzwpswkd12
|
Clients and passwords are only in this thread, not in the repo.
Password: ExtremsX
All clients are portable (no install needed), run in windowed mode and come without GG/HS. Just extract and play.
Known limitations
- Only GBS (Portuguese) clients were tested
- GameGuard support is partial; HackShield is only planned so far (see above)
- Grand Prix was only tested on S2
- Some packet fields are still unknown and are sent with default values
- Where there was no source (original server or client), values were estimated and are configurable
- The Stage channel and parts of S2 still need more testing with the client
Looking for official server files
I'm looking for the official server files (GunBoundServ, Broker, Buddy, setting files, DB scripts) of Season 2, Season 3 and Season 4. They're the best reference for supporting the remaining versions accurately, instead of guessing values from the client.
If you have any of them, please PM me or reply here. Partial packages help too.
Download
Server:
To view the content, you need to sign in or register
Editor:
To view the content, you need to sign in or register
License: AGPL-3.0
Bug reports, suggestions and pull requests are welcome. If you try it with another client, let me know how it went!
Credits: ExtremsX
Attachments
Last edited:

