a BBS door hacking game  |  dial in. crack the system. don't get traced.
v0.7.9  ·  Free Pascal  ·  ANSI/CP437 terminal  ·  BBS door or standalone binary
what is this

300 baud is a roguelite deck-builder set inside the BBS underground of the early 1980s. You are a phone phreak, war-dialer, or self-taught hacker navigating living networks defended by ICE — Intrusion Countermeasure Electronics — and corporate mainframes that really don't want you inside them.

Combat is a dice puzzle. Each encounter gives you a hand of CRACK dice (force your way in) and PHREAK dice (social-engineer your way past). You allocate them into the enemy's code boxes. Fill every crack box and the node falls. Leave any phreak box empty and the Line Trace advances — and it never stops advancing.

Between nodes you visit Merchants, stumble into Mystery events, detour through optional MiniBoss fights for better dice, or race past Sentinels sweeping the top of the map with scan beams. Survive all three sectors — D1@lup → C0rpNet → TheC0re — and you escape. Escape ten times with a character and they are complete.

"The first time I got into a mainframe I was fourteen years old, using a 300 baud modem my older brother left in a shoebox. The sysop never knew I was there." — intro.txt
features
■ Dice Allocation Combat

Roll, then place. Crack dice must meet targets to breach; Phreak dice cover social-engineering boxes. Any-type dice flex into either slot. Short-circuits and virus infect your loadout mid-fight.

■ Roguelite Ascension

Each run you ascend one level. Enemies get harder, scanners get smarter, and the Line Trace accelerates. Win 20 times with a character to mark them complete. No run is the same.

■ Three-Sector Progression

D1@lup unlocks at asc 0. C0rpNet opens at asc 7. TheC0re — hardest sector, D10 enemies — at asc 13. The Line Trace carries between sectors at half power. Plan your loadout for the long haul.

■ Port Scanner Evasion

A patrol bot sweeps the top of every map. Lazy scanners charge a turn before firing; the Intelligent Probe hunts your column with no warning. Frozen turns let the Trace advance — keep moving.

■ Merchant Economy

Spend credits to swap dice, unlock locked slots, repair virus-damaged dice, or stock up on Diversions. Free dice per visit vary by character — In$ide J0b gets warez; M0ms Ba$ement gets nothing.

■ Map Fog of War

Each character sees a different number of map layers ahead — 3 to 10. Nodes beyond your sight range are hidden. At asc 5+ a percentage of nodes show only [*] until you step on them.

■ Multi-User Leaderboard

Runs on a BBS? All-time and weekly high scores are shared across users with concurrent-safe file locking. Reset day is configurable. Weekly scores reset automatically on first login.

■ Standalone Terminal Mode

No BBS required. A precompiled standalone binary runs in any ANSI terminal — iTerm2, Windows Terminal, SSH. Assets are baked in. No external dependencies.

hacker profiles

Four characters. Each starts with a different dice configuration, map visibility, diversion cap, and special behavior. You begin with one unlocked; the others open as you accumulate ascensions.

In$ide J0b
UNLOCKED FROM START
The corporate insider. Full visibility — sees the entire map. Carries warez to every merchant visit (3 free dice). A "cl3an entry" grace period delays the Line Trace at sector start for the first few ascensions. Virus enemies appear 2 ascension bands later, easing early pressure. Moderate difficulty.
Sight: 10 layers
Divs: 3
Free dice: 3
Difficulty: ███▒▒
Ph3dUp
UNLOCKED AT ASC 10
The phone phreak. Heavy phreak starting deck with a restricted Phreak-D4 in slot 3. Talks ICE into standing down — but the Line Trace catches phreak failures hard at high ascension. Better map visibility than average. Harder than it looks.
Sight: 7 layers
Divs: 4
Free dice: 2
Difficulty: ████▒
Kr1bn Nbrs
UNLOCKED AT ASC 10
The war-dialer. Balanced phreak/crack toolkit with restricted dice. Sees 8 layers ahead — the most of any unlockable character. Fewer diversions than Ph3dUp; compensates with a deep map view. Skill ceiling is high. Rewards planning.
Sight: 8 layers
Divs: 2
Free dice: 1
Difficulty: ████▒
M0ms Ba$ement
UNLOCKED AT ASC 10
Self-taught from stolen PDFs. Zero mandatory dice — pure improvisation. Only 3 layers of map visibility, but the most diversions and the best Mystery node odds of any build. No free dice at the merchant; every credit matters. High risk. High chaos.
Sight: 3 layers
Divs: 5
Free dice: 0
Difficulty: █████
network topology
D1@lup
ascension 0 – 20
The civilian telephone network. D6/D8 enemies. Lazy port scanner. Entry point for every run. ICE is manageable — if you stay disciplined.
C0rpNet
unlocks at ascension 7
Corporate backbone. D8 baseline. Short-circuit enemies. Boss nodes block exit. Line Trace carries in at half power — it is already angry.
TheC0re
unlocks at ascension 13
D10 deck. Intelligent Probe scanner. Virus enemies. Short-circuit MiniBosses. No room for imperfect clears here.

The Line Trace advances between sectors at half power and accelerates at asc 7+ if it falls more than 5 layers behind you. Keep it close — letting it lag gives it room to sprint.

how a run works
  1. Select a profile — choose your character. Your dice loadout, sight range, and merchant benefits are set at character select.
  2. Choose an entry point — the map is a branching Y-tree. Pick your lane. Standard nodes are green. Elite and Boss nodes carry higher dice and harder targets. MiniBoss nodes are optional detours. Boss nodes block sector completion — you must clear them.
  3. Navigate and hack — press [1][2][3] to move. Each node triggers an encounter. Standard ICE, Sentinels, Elites, MiniBosses. Roll your dice. Allocate them.
  4. Manage the Line Trace — it appears at the bottom and climbs. Every skipped PHREAK box advances it one step. Deploy a Diversion to hold it for one turn. If it reaches your layer, the run ends.
  5. Visit the Merchant — guaranteed once per sector. Upgrade dice, repair virus damage, buy diversions. Starting credits: 30cr. Repair costs 15cr.
  6. Reach the Mainframe — top of the map. Clear it. Survive the port scanner. If you complete all sectors: you escape. Ascension increments. Enemies get harder.
how to get it
STANDALONE BINARY — play anywhere

Download the standalone build and run it directly in a terminal. All text and ANSI art is baked into the binary — no external files required. Works in iTerm2, Windows Terminal, any SSH client, or any ANSI-capable terminal emulator.

Requires a terminal with ANSI color support and a monospace font. CP437 box-drawing characters are converted to UTF-8 at runtime. Recommended minimum: 80×25 columns.

macOS (ARM64 / Apple Silicon)
native aarch64 binary
macOS (x86_64 / Intel)
universal build planned
Linux (amd64)
Free Pascal cross-compile
BBS DOOR — the authentic experience

300 baud was written as a BBS door game. If you run a bulletin board on Synchronet, Mystic BBS, ENiGMA½, or any door-compatible system, drop the BBS build into your doors directory and configure a dropfile. Multi-user leaderboards, per-node play, and weekly score resets are fully supported.

Requires a DOOR32.SYS or DOORFILE.SR dropfile. Tested on Synchronet with FOSSIL emulation. The BBS build does not include the embedded asset system — text and ANSI files are read from disk.

system requirements
Terminal size 80×25 minimum   — the game is designed for exactly this. Wider terminals are fine; shorter ones will clip.
ANSI color Required. 16-color ANSI (standard VT100/ANSI). No 256-color or truecolor needed.
Character set UTF-8 output mode converts CP437 box-drawing to Unicode. For authentic rendering, set your terminal to CP437 or use a font that covers the block elements.
Blink support Optional. Blink is used for the port scanner freeze animation and player blink. Falls back to reverse video on Apple Terminal automatically.
Recommended fonts Berkeley Mono, IBM Plex Mono, Courier New, or any CP437-complete monospace.
OS (standalone) macOS (ARM64), Linux (amd64). Windows support planned.
OS (BBS door) Any OS that runs your BBS software. Tested on macOS and Linux.
design philosophy

300 baud is not a nostalgia exercise. It uses the aesthetic constraints of 80-column ANSI terminal display as a design language — not as a limitation to work around. Every screen fits in 80×25. Every sound effect is made of text. The "graphics" are CP437 box-drawing characters.

Combat is designed to feel like code breaking under pressure: you can see the structure of the problem, you have limited resources to throw at it, and the clock is always running. The Line Trace is a game of margins — lose them gradually and you lose the run.

Characters are deliberately asymmetric. In$ide J0b is forgiving and visible. M0ms Ba$ement is blind and improvised. The same enemy pool — calibrated per sector, per tier, per ascension — is a different encounter depending on what you brought to the fight.

"The dice are not luck. They are information about what is possible right now. The question is whether you placed them correctly." — strategy.txt