Belfast is a private server reimplementation for the mobile game Azur Lane, written in Go using Iris and Gorm. It targets iOS and Android clients without requiring jailbreak or root access.
Belfast is in a very unstable state and the server is not complete at all.
Tip
Use cmd/pcap_decode/main.go to decode packets from pcap files into JSON.
Belfast currently has:
- A low-level multiplexed TCP server, which allows multiple connections at once.
- The ability of following game updates, along with importing ship, items, ... data automatically (US version).
- A small API that allows you to quickly implement new game messages without head scratching.
- A great dissection tool in which every packet is stored, along with a
protobuf->jsondeserializer. - A REST API with Swagger docs and admin endpoints for server tooling.
- A web UI in development: https://github.com/ggmolly/belfast-web.
- Config-driven packet response hydration for rapid prototyping.
- Packet progress tooling and webhook-based status updates.
- Runtime config toggles (maintenance mode, host/port overrides).
cmd/belfastdefaults toserver.toml(game server config).cmd/gatewaydefaults togateway.toml(gateway config).- Gateway server list is defined in
[[servers]]; set optionalnameper server for display text, and gateway probes each game server over the game protocol (CS_10022->SC_10023) to resolve server state and load. - To embed the git commit in status, build with
-ldflags "-X github.com/ggmolly/belfast/internal/buildinfo.Commit=$(git rev-parse --short HEAD)".
Belfast reimplements these features from the game:
- Custom server list
- Player bans
- Commander's dock (owned ships).
- Commander's depot (owned items).
- Build (you can start / end / edit builds).
- Resources (collection / consuming).
- Mails (along with custom sender, body, title, attachments, read / important states).
- Retire ships.
- Buying / equipping skins.
- Propose ships.
- Game's public chatroom.
- Secretaries (add, remove, moving is buggy but 'works').
- Lock / unlock ships.
- Rename proposed ships (features the 30d cooldown too).
- Custom notices
- Fleets management (add / remove / move ships & rename)
- Arena shop.
- Medal shop.
- Minigame shop.
- Guild shop.
- Juustagram activity + chat operations.
- Educate/TB flows and state.
- Compensations (notifications + reward claims).
- Commander buffs.
- Shopping street shop.
- Dorm3D apartment state (persisted on reconnect).
- Build queue snapshot.
- Random flagship selection updates.
- Remaster tickets, progress, and rewards.
As I just started opening this project to the public I want to do these things:
- Add unit tests.
- Make a roadmap.
Before continuting the implementation of the game's protocol.
You can contact me (Molly) here.
