Skip to content

Repository files navigation

Fallout Hacking Sequence

A faithful web recreation of the terminal hacking minigame from Fallout 4, built with SvelteKit 5 and deployed on Cloudflare Workers.

What is it?

The hacking minigame presents a grid of characters and words on a retro CRT terminal. Your goal is to find the correct password from a list of words scattered in the noise. Each wrong guess tells you the likeness — how many letters match the password at the same position — letting you narrow down the answer. You have 4 attempts before lockout.

Bracket sequences like (#$@!), [>.-], {!=;} can be clicked for a random bonus — either a dud word is removed from the grid, or your attempts are refilled to 4.

Screenshots

Start Main Menu
Start Main Menu
Game Levels
Game Levels

Game Modes

Daily Challenge — a new puzzle every day. One shot, no retries. (coming soon)

Run Mode — play levels back to back, accumulating a score. Progress through 20 levels of increasing difficulty.

Practice Mode — pick any level and play without pressure. No score recorded.

Leaderboard — (coming soon)

Levels

20 levels across 5 difficulty tiers:

Tier Levels Word Length Words
Very Easy 1–4 4–5 letters 5–8
Easy 5–8 5–6 letters 8–12
Average 9–12 7–8 letters 9–13
Hard 13–16 8–9 letters 11–13
Very Hard 17–20 9 letters 12–16

Difficulty increases through word length, number of words, and the distribution of likeness clues — harder levels have more zero-likeness duds so fewer guesses give you useful information.

Scoring

Score is calculated per level in Run Mode:

base = 100 × 1.4^(level - 1)
multiplier = 2.0 (3 attempts left) | 1.5 (2 left) | 1.1 (1 left)
perfection bonus = +500 if solved on first try
score = round(base × multiplier) + perfection bonus

Tech Stack

Framework — SvelteKit 5 with Svelte 5 runes ($state, $derived, $effect)

Language — TypeScript throughout

Deployment — Cloudflare Workers

Database — Cloudflare D1 (SQLite) for user accounts and leaderboard

Assets — Cloudflare R2 for music tracks

Styling — vanilla CSS with custom properties, no UI library

How the Grid Works

  1. A flat array of junk Token objects fills the grid (gridRows × gridColsInter cells)
  2. Words are placed randomly into each half of the grid, ensuring no overlaps or adjacency
  3. Bracket pairs ((), [], {}, <>) are detected per row and assigned group IDs
  4. Non-interactive hex address columns are prepended to each row
  5. The grid scans in character by character on load with a typewriter sound effect

Getting Started

Node.js 20+ and a Cloudflare account are required.

npm install
npm run dev

Audio

Music is streamed from Cloudflare R2 — public domain recordings from the 1910s–1920s. Keyboard sounds are played on hover and click to simulate typing on the terminal.

Music must be turned on manually by the user (browser autoplay policy). Once started it plays through a shuffled playlist automatically.

User Accounts

Users are created lazily — anonymous play is allowed and accounts are only created when a player submits a score. Identity is stored in an httpOnly cookie tied to a D1 record. No passwords, no email required. EOF

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages