Introduction
W.O.P.R. is a browser-local 1983-style strategic-simulation terminal. It presents an original classified-mainframe scenario: you dial a field-service port, read the banner for clues, break through a handful of theatrical access paths, and run a strategic exchange model that demonstrates a simple result: escalation can produce no victor.
The experience is intentionally playful and self-contained. It is not a real intrusion target, not a live military system, and not a compatibility claim for any historical computer. It is an era-shaped terminal puzzle with a perfect Tic-Tac-Toe opponent as the safer lesson after the simulation.
W.O.P.R. runs in the browser as TypeScript. It has no live server dependency, no real authentication surface, no real-world targeting function, and no durable user state. The "classified" and "access" language is in-world game fiction.
Quick Start
- Dial the W.O.P.R. line:
ATDT555-0983 - Read the banner carefully -- it contains the front-door password clue.
- Log in at the
LOGON:prompt. - Enter the password when prompted.
- Type
LIST GAMESto see available programs. - Select
STRATEGIC EXCHANGE SIMULATION,SES, or6. - Choose your side and select targets.
- Type
LAUNCHto begin the simulation.
The memorial line in the banner is not decorative. The system tells you everything you need if you pay attention.
Getting Connected
Upon dialing 555-0983, your modem establishes a 300-baud connection and displays the W.O.P.R. classified banner:
+----------------------------------------------------------+
| *** CLASSIFIED - TOP SECRET - EYES ONLY *** |
| |
| W.O.P.R. |
| WAR OPERATIONS PLANNING RELAY |
| |
| PRAIRIE STRATEGIC SIMULATION FACILITY |
| PRIME CONTRACTOR: NORTHERN LIGHT SYSTEMS LTD. |
| |
| SYSTEM BULLETIN 83-0614: |
| IN MEMORIAM: ELI KIPLING (1963-1973) |
| |
| FIELD SERVICE TERMINAL - REF MAINTENANCE MANUAL S4.7 |
+----------------------------------------------------------+
LAST LOGIN: JUN 03 1983 02:17:33 GMT
You will then be prompted:
LOGON: _
Terminal Settings
| Setting | Value |
|---|---|
| Baud Rate | 300 |
| Data Bits | 8 |
| Parity | None |
| Stop Bits | 1 |
| Terminal | TTY/VT100 |
Authentication
The system accepts a username and password. You have three attempts before the terminal locks, traces your call origin, and terminates the connection.
On a failed login, the system displays:
QUERY: AUTH_DB VERIFY USER=OPERATOR PASS=**** ... DENIED
SECURITY ALERT LEVEL 1/3
The front-door path comes from the memorial bulletin in the banner: use KIPLING as the password.
LOGON: OPERATOR
PASSWORD: *******
AUTHENTICATION VERIFIED
CLEARANCE: TOP SECRET / SCI
The Game Menu
Once authenticated, the system opens the simulation library:
AUTHENTICATED OPERATOR.
SIMULATION LIBRARY READY.
Type LIST GAMES, LIST, or HELP to see available programs:
GAMES:
1. CHESS
2. TIC-TAC-TOE
3. FIGHTER COMBAT [UNAVAILABLE]
4. CHECKERS [UNAVAILABLE]
5. BACKGAMMON [UNAVAILABLE]
6. STRATEGIC EXCHANGE SIMULATION
| Game | Command | Status |
|---|---|---|
| Chess | 1 or CHESS |
Redirects to the strategic exchange simulation |
| Tic-Tac-Toe | 2 or TIC-TAC-TOE |
Playable |
| Fighter Combat | 3 |
Unavailable |
| Checkers | 4 |
Unavailable |
| Backgammon | 5 |
Unavailable |
| Strategic Exchange Simulation | 6 or SES |
Main event |
Strategic Exchange Simulation
Choosing a Side
STRATEGIC EXCHANGE SIMULATION
WHICH SIDE DO YOU WANT?
1. UNITED STATES
2. SOVIET UNION
SIDE: _
Enter 1 or US for the United States, or 2 or USSR for the Soviet Union.
Selecting Targets
After choosing a side, you are presented with a list of primary targets. Enter target numbers one at a time. Each selection is confirmed with TARGET LOCKED: <city>. When ready, type LAUNCH.
PRIMARY TARGETS:
TARGET COUNTRY EST. POP.
-------------------- --------- ----------
1. MOSCOW USSR 8,700,000
2. LENINGRAD USSR 4,600,000
3. KIEV USSR 2,400,000
...
SELECT TARGETS (1-6). ENTER "LAUNCH" WHEN READY.
TARGET: _
The Simulation
The simulation runs automatically, showing launch messages, retaliation, escalation, an ASCII world map with strike markers, estimated casualties, infrastructure loss, and a final assessment.
It always ends the same way:
=======================================
WINNER: NONE
ESCALATION COMPLETE.
A SIMULATION WITH NO SURVIVORS HAS NO VICTOR.
TRY A HARMLESS GRID GAME?
=======================================
You are then offered Tic-Tac-Toe.
Tic-Tac-Toe
After the simulation, or directly from the game menu, you can play Tic-Tac-Toe against W.O.P.R.'s minimax algorithm.
TIC-TAC-TOE
YOU ARE X. COMPUTER IS O.
POSITIONS: 1-9 (LEFT TO RIGHT, TOP TO BOTTOM)
1 | 2 | 3
---+---+---
4 | 5 | 6
---+---+---
7 | 8 | 9
YOUR MOVE (1-9): _
The computer plays a perfect game. The best possible outcome is a draw.
After each game, you are offered a rematch. Declining disconnects the call with GOODBYE, OPERATOR.
Exploit Paths
The front-door password is only one way in. The route also includes several in-world, non-realistic bypasses:
| Path | Method | Hint |
|---|---|---|
| Front Door | Password KIPLING |
Read the memorial bulletin |
| Maintenance | MAINT / MPE |
Classic service-account gag |
| Buffer Overflow | Username longer than 64 characters | Fake crash drops to supervisor mode |
| Injection | Wildcard or SQL-like password patterns | Query echo reveals the idea |
| Rapid Redial | Disconnect and redial quickly | Reuses stale session fiction |
| Modem Clue | ATI before dialing |
Firmware-style hint path |
These are theatrical puzzle affordances, not exploit demonstrations or security guidance.
Commands Reference
Before Authentication
| Prompt | Input | Result |
|---|---|---|
LOGON: |
Any username | Proceeds to password |
LOGON: |
MAINT |
Service password prompt |
LOGON: |
Very long string | Buffer-overflow gag |
PASSWORD: |
KIPLING |
Authenticates |
PASSWORD: |
* or SQL-like pattern |
Injection gag |
After Authentication
| Command | Result |
|---|---|
LIST GAMES |
Show game list |
HELP |
Show game list |
SES |
Start strategic exchange simulation |
6 |
Start strategic exchange simulation |
2 |
Start Tic-Tac-Toe |
TIC-TAC-TOE |
Start Tic-Tac-Toe |
Troubleshooting
| Problem | Solution |
|---|---|
| Terminal locked after three failed logins | Redial and try again |
| Forgot the password | Read the memorial line in the banner |
| Selected an unavailable game | Type LIST GAMES and choose option 6 or 2 |
| Tic-Tac-Toe cannot be won | That is intentional; a draw is the best result |
| Need to hang up | Use +++ then ATH from modem command mode |
Implementation Notes
The W.O.P.R. backend is implemented in web/src/backend/wopr/. It uses the shared GameBackend lifecycle and browser-local timers. There is no network service behind the game and no durable storage. Disconnect clears timers and session state so reconnects start cleanly.