Old doors, new ones, one menu.
NetBBS ships with three bundled games: Retro Trivia, Voidrunner and War Dialer. Next to them, a SysOp can add trusted native programs, classic DOS doors through DOSBox-X, doors built for another operating system in a virtual machine per caller, and remote services such as DoorParty and BBSLink. To the caller, they are all just doors.
Pick a door, play, come back.
Native doors, DOS classics and remote services sit in one picker. Both bundled games last between visits: Voidrunner keeps each pilot's career, and War Dialer runs one shared world that every caller plays in.
Harbor Lights › Available doors page 1/1, 7 total ─────────────────────────────── 01. Barren Realms Elite [remote: DoorParty] - Operator-run tunnel. 02. BBSLink [remote: BBSLink] - Dozens of classic doors from one service. 03. Global War - DOS 2.7, turn-based conquest. 04. Legend of the Red Dragon - DOS 4.07, via DOSBox-X and BNU. 05. Retro Trivia - Native bundled quiz door. 06. TradeWars 2002 - DOS 3.09, persistent galaxy. 07. Voidrunner - Native bundled space game. [/] Find [B]ack Find by name Return without picking or type a number to select; Ctrl-L: redraw, Ctrl-H: help Choice:
╭─ ◤ VOIDRUNNER · Command Deck: 1,850cr ───────────────────────────────── 1/1 ╮ │ KESTREL TERMINAL Industrial · Outer Fringe CALM 0 │ │ Day 1 Rank Rookie Hauler ◈ 1,850cr │ ├─ SHIP ──────────────────────────────────────────────────────────────────────┤ │ HULL ████████████░░░░░░░░ 36/60 Scuffed /\ │ │ FUEL ██████████████████░░ 21/24 Shuttle <x==[__]=== > │ │ HOLD ░░░░░░░░░░░░░░░░░░░░ 0/24 0 lots /__\ │ ├─ STATION SERVICES ──────────────────────────────────────────────────────────┤ │ [M] Market: 7 goods [Y] Yard repair/refit [B] Board: 3 offers │ │ [C] Chart: 4 links [S] Status [H] Hall of Fame │ │ [G] Guide [N] Archive [T] Ledger │ │ [V] Viewport [O] Display [Q] Disembark │ │ [P] Concord [W] Blackwake │ ╰─────────────────────────────────────────────────────────────────────────────╯ [X] Expand [Q] Exit:
╭─ ◤ VOIDRUNNER · Market: 2,160cr ─────────────────────────────────────── 1/1 ╮ │ APHELION TERMINAL Industrial hold ░░░░░░░░ 0/24 │ │ COMMODITY BUY SELL STOCK DEMAND HELD SPREAD │ │ [A] Food 19 17 48 96 0 ▁▄███ dear │ │ [C] Textiles 18 17 48 48 0 ▁████ dear │ │ [D] Machinery 39 36 96 48 0 ▁▄▄██ cheap │ │ [E] Electronics 176 162 48 96 0 ▁▄▄██ dear │ │ [F] Raw Ore 30 28 48 48 0 ▁▄▄▄█ typical │ │ [G] Refined Metals 45 41 96 48 0 ▁▁▄▄█ cheap │ │ [H] Medicine 95 87 48 48 0 ▁▄▄▄█ typical │ │ Prices per unit. Only jumps advance days; reopening does not replenish │ │ stock. │ ╰─────────────────────────────────────────────────────────────────────────────╯ [A,C-H] Trade [X] Futures [B] Back:
╭─ ◤ VOIDRUNNER · Contracts ───────────────────────────────────────────── 1/1 ╮ │ [1] ⟦BOUNTY⟧ Freeport OFFER +550cr │ │ danger 1 · 1 jumps · day 18 ██████ · COMBAT │ │ [2] ⟦ESCORT⟧ Nightgate OFFER +1,000cr │ │ danger ? · 4 jumps · day 35 ██████ · CONVOY │ │ [3] ⟦SURVEY⟧ Dustwake OFFER +440cr │ │ danger ? · 3 jumps · no deadline · SURVEY │ │ Active: 0/3 │ │ New offers on day 4 │ ╰─────────────────────────────────────────────────────────────────────────────╯ [1-9] Details [B] Back:
┌─ ▚ SWITCHBOARD ──────────────────────────────────────────────── page 1/2 ─┐ │ Thiesi ⟦[::]⟧ ⟦WANNABE⟧ season 2 · 27d 23h 30m left │ │ rank 100 ░░░░░░░░░░░░░░░░░░░░ next Script Kiddie │ ├───────────────────────────────────────────────────────────────────────────┤ │ CASH $176 HEAT ███░░░░░░░░░░░░░░░░░ 17 │ │ CREW ●○○ 1 free 2 posted │ │ TURNS ▮▮▮▮▮▮▮▮▮▮▮▮▮▯▯ 13/15 refill 23h 30m │ │ HOLD ●●○○○○○○○○ 2/10 income $5/hr │ │ SHIELD newcomer 1d 23h 30m NEW 0 │ │ OPS none KIT untrained / empty │ ├─ THE SCENE ───────────────────────────────────────────────────────────────┤ │ ◆ 1══◇ 2══◈ 3══◆ 4══◉ 5 ◆ yours 2 ◈ rival 1 ◉ NPC 3 ◇ free 4 │ │ ║ ║ │ │ ◇10══◇ 9══◇ 8══◉ 7══◉ 6 │ ├─ FEED ────────────────────────────────────────────────────────────────────┤ │ ● 22:58 Rooted 212-555 Uptown Exchange; +$2/hour and +50 Rank. │ │ ● 22:58 Kilobaud raided you and got away with $340! All-attacker raid │ │ shield: 24 hours. │ │ ● 22:58 Crackdown closed season 1. Final Rank 0; place 3/3; no medal. │ │ Fresh season 2: competitive resources reset. Back on the │ └───────────────────────────────────────────────────────────────────────────┘ [T] Trade [C] Crew [J] Job [R] Raid [X] Root [G] Gar [S] Kit [O] Ops [B] Rank [E] Map [V] Rival [H] Log [I] Scene [?] Help [Q] Quit [N] Next [P] Prev dial ›
┌─ ▚ CONTRACT BOARD ───────────────────────────────────── 1 available crew ─┐ │ [1] Fence dial-up access on the boards │ │ odds █████░░░░░░░░░ 33% difficulty 2 pays $60-$100 rank +15 │ │ [2] Skim a mail-order software warehouse │ │ odds ██░░░░░░░░░░░░ 14% difficulty 6 pays $100-$170 rank +15 │ │ [3] Loot a phone company's billing database │ │ odds █░░░░░░░░░░░░░ 10% difficulty 12 pays $170-$280 rank +15 │ │ [4] Pad a regional bank's wire transfer │ │ odds █░░░░░░░░░░░░░ 10% difficulty 20 pays $260-$400 rank +15 │ │ [5] Divert a mid-size firm's payroll run │ │ odds █░░░░░░░░░░░░░ 10% difficulty 30 pays $380-$560 rank +15 │ └───────────────────────────────────────────────────────────────────────────┘ pick [1] [2] [3] [4] [5] [B] Back [Q] Cancel
One profile per door, whatever it runs on.
Every door has a compatibility profile: the adapter that runs it, how its terminal is connected, which drop files it gets, and the limits it runs under. Setup templates fill in the known-good values for the verified games, and setup checks catch mistakes before callers see the door.
Harbor Lights › Doors page 1/1, 7 total ───────────────────── 01. Amiga Empire - A Linux door in a per-caller VM 02. DoorParty - Dozens of doors on a remote server 03. Global War - Turn-based world conquest 04. Legend of the Red Dragon - LORD 4.07 under DOSBox-X 05. TradeWars 2002 - The classic space trading game 06. Voidrunner - Bundled: trade, fight and explore a living galaxy 07. War Dialer - Bundled: build a phreaker crew, raid your rivals [/] Find [B]ack — or type a number to select; Ctrl-L: redraw, Ctrl-H: help Choice:
Harbor Lights / Door compatibility ---------------------------------- External installs are manual. See docs/NetBBS-door-guide.md. Templates need local paths and game setup. RUNTIME 01 Setup template: (none) 02 Import JSON: (none) 03 Restore original API on Save: False 04 Adapter: dosbox 05 I/O endpoint: socketpair 06 Executable/runtime path: /usr/pkg/bin/dosbox-x 07 Arguments: (none) [01-30] change [S]ave [B]ack (Ctrl-H for help on these fields) (Section 1 of 6: < > switches) Choice:
Harbor Lights / Door compatibility ---------------------------------- External installs are manual. See docs/NetBBS-door-guide.md. Templates need local paths and game setup. ADVANCED 24 Custom environment (JSON): {} 25 External runner argv (JSON): [] 26 Adapter options (JSON): {"accel": "tcg", "boot_timeout_seconds": 60, "command": "{install_dir}/door -D{door32} -X", "guest_memory_mb": 256, "initrd": "/var/games/netbbs/vm/initrd.cpio", "kernel": "/var/games/netbbs/vm/vmlinux"} 27 Companion service (JSON): {} [01-30] change [S]ave [B]ack (Ctrl-H for help on these fields) (Section 5 of 6: < > switches) Choice:
Limits, adapters and honest boundaries.
Each door is its own process, and the SysOp decides what it may use.
Door runtime
- Its own subprocess, started without a shell, under enforced CPU, memory, time and process limits.
- Resource limits, not a sandbox. A native door can read what the service account can, so install only doors you trust.
Classic DOS doors
- LORD, TradeWars 2002 and Global War through an operator-installed DOSBox-X, over an emulated serial/FOSSIL link.
- Classic drop files: DOOR.SYS, DORINFO1.DEF, CHAIN.TXT and DOOR32.SYS. CP437 output is converted for callers' UTF-8 terminals.
Native, remote and VM
- Native and remote: stdio, a controlling terminal, a private DOOR32 socket, or an allowlisted remote door service such as DoorParty or BBSLink.
- Doors from other platforms run in their own qemu guest per caller, with no network and only two shared directories. POSIX hosts only.
Doors that talk back
- An opt-in, per-door hook lets a game post to chosen message boards and speak in chosen chat channels, under hourly ceilings the SysOp sets.
- Verified, and says so. The door setup guide lists which games and adapters have been checked on NetBSD and Debian, and which have not.
Run a node, open the door menu.
The bundled games work out of the box. The door setup guide covers everything else.