~/hailcpy
all projects
rustpythontypescript

GameTools

A management + analytics platform for community-hosted Battlefield servers, built by reverse-engineering EA's protocols. Used by 100+ admins; backing APIs serve 50k+ players.

server-manager.mp4youtube ↗
// muted demo · servers list → live admin actions → streaming audit log

The problem

EA's Battlefield titles run on official servers that are overrun with cheaters, so players move to community-hosted ones to actually enjoy the game. The catch: every admin function - kick, ban, swap map, view live players, pull stats - only exists inside the in-game admin UI. That UI is buggy, partial, and effectively abandoned the moment EA stops supporting a title. BF5 didn't ship admin tooling to community hosts at all.

Community admins were moderating blind, and players had no way to look up real stats outside the game.

What I built

A complete external management + analytics platform for these community servers - every admin function, every player stat, every audit decision, lifted out of the game and into a proper web app, mobile, and Discord. Designed and built like a serious admin tool: identity, RBAC, evidence-backed actions, append-only audit logs.

How

EA exposes no public APIs for any of this. A small group of us reverse-engineered the surface:

  • HTTP gateway - captured with Fiddler (SSL pinning disabled), replayed, documented.
  • Blaze - EA's proprietary TCP wire protocol that carries the actual server/player data. We mapped the encoding, type system, and message shapes by combining packet capture with memory reads.

Then I built the platform alone:

TECHNICAL DECISION
Rust for Blaze SDK
Decision / Trade-off

Writing the core wire protocol parser in Rust instead of Python or TypeScript.

Rationale

The platform sustains ~15 MB/s of decoded Blaze traffic per active region. High throughput and low latency are critical; garbage collection pauses or interpreter overhead would stall live player views.

Outcome:Lower parser overhead and safer concurrency across the edge data streams.

Blaze SDK in Rust

Decodes ~15 MB/s of proprietary Blaze traffic per region with high performance.

FastAPI & Workers

Serves 1M+ requests/day on top of MongoDB, Postgres, and Redis command queues.

Next.js Client UI

Dashboard for live server analytics, admin controls, and streaming audit logs.

Discord Identity & RBAC

OAuth authentication mapped directly to roles with fine-grained server permissions.

Live Audit Logging

Streams admin actions and evidence uploads to Discord channels in real time.

Auto-ban Engine

Monitors live player stats to detect and ban bad actors matching set thresholds.

Architecture

Control plane via a Redis-backed queue, persistent Rust worker sessions on the wire, Redis/Mongo for hot state.

Player tracker

Per-player profile: every reported match, full stats, analytics, suspicion ratings.

player-tracker.mp4youtube ↗
// muted demo · player profile → match history → suspicion ratings

Where it landed

The community I lead is now 18k Discord members. The manager runs 100+ admins across community servers; the public stats APIs serve 50k+ players and absorb 1M+ requests / day. A queue-skip VIP subscription on the manager pays for the infra at $400–500 / month.

This is the project I'd point at to answer "what does end-to-end ownership look like for you, outside of a job?" Reverse-engineering, protocol design, Rust on the wire, a real product layer, a real community, real money.

Project Info

TimelineDec 2021 — Present

Key Metrics

discord community
18k members
public api traffic
1M+ req / day
blaze throughput
~15 MB/s
subscription revenue
$400–500 / mo

Technology Stack

rustpythontypescriptreverse-engineeringnetworkingdiscord