Trevor PaughSystems engineer
Trevor PaughProject Chronicles

Chronicles / Helldivers 2 War Room

Paused · Sep 2026 to present

Helldivers 2 War Room

A Discord app that brings the Helldivers 2 galactic war into one server: Major Orders, planet defenses, and patch notes as black-and-yellow Super Earth cards, plus a dashboard that predicts whether the galaxy will make its deadline.

5 entries Stack TypeScript · Cloudflare Workers · D1 · Drizzle ORM · Discord HTTP Interactions · Vitest View on timeline

The war room is a Discord app for a single server. Slash commands answer questions about the current Major Order, the war, and individual planets. Per-channel feeds post new orders, their results, planet events, and Steam patch notes, with detailed filters. A war status card sits in a channel and is edited in place every two minutes.

It runs on Cloudflare Workers' free plan using Discord HTTP interactions rather than a gateway connection, with one cron trigger doing all the polling and D1 holding state. The whole thing was built in about 33 hours by a manager session dispatching builder, reviewer, and designer sessions across twenty pull requests, each with a written review verdict.

It went live on 2026-09-24 and has not changed since the following night. It is listed on Kongomax as discontinued.

Latest developments

Progress

Feeds, setup, and a lesson about migrations

Servers subscribe channels to feeds through a /feed setup modal with a catalogue and bulk subscribe. Results wait for the outcome dispatch rather than guessing. A migration numbered 7403 taught the project to check what it was running.

Design

A dashboard that edits itself, without tripping Discord

A pinned dashboard message is edited every two minutes with up to five cards. Rates are rounded coarsely on purpose, so edits that change nothing are skipped and the bot stays under the edit limit that returns error 30046.

Milestone

Recording history to predict the future

The API gives current liberation, not its rate. So the bot records one history row per poll and computes rates, ETAs, and sparklines itself. /war and /planet arrived with the first deploy.

Design

Super Earth cards

The owner called the first messages a wall of text with no imagery and bland colours. The answer was Components V2 cards: a kicker line, a Steam-blue accent, faction sigils, banners only on Major Orders, and a strict colour rule.

Decision

Pivot: from chat bot to war room

The project began as a Discord bot that would answer questions with Claude. Reading the consumer terms closed that door on day one. It became a war room instead: live Helldivers 2 campaign status, Major Orders, and liberation rates, posted to a server.

The story, from the beginning

Pivot: from chat bot to war room

The project began as a Discord bot that would answer questions with Claude. Reading the consumer terms closed that door on day one. It became a war room instead: live Helldivers 2 campaign status, Major Orders, and liberation rates, posted to a server.

Read the entry
The Super Earth sigil, one of four faction marks drawn for the bot's cards.
The Super Earth sigil, one of four faction marks drawn for the bot's cards.

Super Earth cards

The owner called the first messages a wall of text with no imagery and bland colours. The answer was Components V2 cards: a kicker line, a Steam-blue accent, faction sigils, banners only on Major Orders, and a strict colour rule.

Read the entry
The Major Order banner. A second variant marks an order that was won.
The Major Order banner. A second variant marks an order that was won.

Recording history to predict the future

The API gives current liberation, not its rate. So the bot records one history row per poll and computes rates, ETAs, and sparklines itself. /war and /planet arrived with the first deploy.

Read the entry

A dashboard that edits itself, without tripping Discord

A pinned dashboard message is edited every two minutes with up to five cards. Rates are rounded coarsely on purpose, so edits that change nothing are skipped and the bot stays under the edit limit that returns error 30046.

Read the entry
One of the two trend-bar GIFs, uploaded as an application emoji so it can animate inside a card.
One of the two trend-bar GIFs, uploaded as an application emoji so it can animate inside a card.

Feeds, setup, and a lesson about migrations

Servers subscribe channels to feeds through a /feed setup modal with a catalogue and bulk subscribe. Results wait for the outcome dispatch rather than guessing. A migration numbered 7403 taught the project to check what it was running.

Read the entry
The Terminid sigil. Each faction has its own mark on the cards.
The Terminid sigil. Each faction has its own mark on the cards.