bngo #
Looking for a Battle.net Classic server emulator? Bingo! A Battle.net Classic (BNCS) server emulator written in Go. It speaks the original Blizzard binary protocol used by StarCraft, Warcraft II Battle.net Edition, and related titles from that era.
Features #
- Tested with SC:BW 1.16.1 and W2BN 2.02
- Channel chat with operator/admin roles, squelch, ban, kick, and whispers
- Slash command system (
/who,/whois,/msg,/me,/op,/deop,/ban,/kick, etc.) - User profiles
- Game result reporting and storage (
/stats) - Two storage backends: in-memory (ephemeral) and SQLite (persistent)
Requirements #
- Go 1.21+
Building #
git clone https://github.com/sn0opy/bngo
cd bngo
go build -o bngo .
Or run directly without a build step:
go run .
Running #
# SQLite backend
./bngo --port 6112 --storage sqlite --db bngo.db
# In-memory backend
./bngo --storage memory
# With debug logging including packet traces
./bngo --debug
All flags #
| Flag | Default | Description |
|---|---|---|
--port |
6112 |
TCP/UDP port to listen on |
--storage |
sqlite |
Storage backend: memory or sqlite |
--db |
bngo.db |
Path to SQLite database file |
--files |
./files |
Directory served over BNFTPv1 |
--debug |
false |
Enable debug logging (packet traces) |
--mask-ip |
false |
Masks output of IPs in logs |
File serving #
The files/ directory is served to clients over the BNFTPv1 protocol. Place required files, that clients may request, like icons.bni, patch MPQs, and similar assets.
These files are not included in this repo.
What you will need #
Beyond the server binary itself, a usable setup typically requires:
- Compatible game client: This server was tested with official clients, but may work with War2Combat and StarCraft Classic minimal installations as well.
- Client configuration: update your registry or use a gateway editor to point your client to your server's IP/hostname.
- BNFTPv1 assets: The following files are required in
files/:bnserver.iniicons.bnitos_USA.txtver-IX86-0.mpq
Acknowledgments #
Disclaimer #
This project was started in 2022 and put on hold due to several issues related to game hosting and lack of features. Eventually, some parts have been fixed via AI assistance and were reviewed and tested by me.
License #
This project is licensed under the MIT License. See the LICENSE file for details.
It is not officially affiliated with or endorsed by Blizzard Entertainment, its subsidiaries, or business partners. Battle.net, StarCraft, and WarCraft are registered trademarks of Blizzard Entertainment in the United States and other countries. This software is provided as-is, in the hopes that it is useful, without warranty of any kind.