ZERO DAY
Your terminal is your weapon. Your rig is your character sheet.
Your operating system is your class.
A single-player hacking simulation where you build your rig, choose your OS, and breach procedurally generated networks using real methodology — all through a fully diegetic CRT terminal interface.
$ Game Pillars
Five design principles govern every system in ZERO DAY. No feature ships unless it serves at least one pillar.
-
01
Accessible Depth — Three tiers of realism let anyone play. A script kiddie sees guided prompts; an APT operator sees raw protocol. The simulation underneath is identical.
-
02
Authentic Methodology — Real cybersecurity methodology as core gameplay: reconnaissance, scanning, enumeration, exploitation, privilege escalation, and post-exploitation. Every tool and workflow reflects actual practice.
-
03
Agency Through Systems — Interconnected systems create emergent strategy. Hardware, heat, economy, factions, and contracts interact in ways the player discovers, not ways the designer prescribes.
-
04
The Interface Is The Game — No menus floating over the game world. The CRT terminal is your entire interface. Seven mood states drive atmosphere through the shader alone — no HUD icons, no alert popups.
-
05
Progression Crosses Thresholds — Tier advancement is a shift in working depth, not a power increase. Everything the player does at T3, the machine was already doing at T1 on their instruction. Advancing means taking the controls.
$ How to Play
The Core Loop
ZERO DAY operates on three nested loops that create its gameplay rhythm:
Moment-to-Moment
Type commands into the terminal. Each command costs ticks (time) and generates heat (noise). Read output. Make decisions. Every keystroke matters.
Session Loop
Accept a contract from the BBS. Scan the target. Find vulnerabilities. Exploit them. Complete objectives. Extract cleanly. Get paid. Get graded.
Long-Term Arc
Upgrade your rig. Build faction reputation. Take harder contracts. Uncover the conspiracy. Decide who to trust in a world where everyone is compromised.
Getting Started
When you boot ZERO DAY for the first time:
- Choose your OS — each has a distinct visual identity and gameplay modifiers. LinuxForge is a solid default; PhantomBSD rewards stealth play.
- Choose your tier — start at Tier 1 (Script Kiddie) if you're new to hacking games. You can switch tiers at any time.
- Type
helpto see available commands. Typeman <command>for detailed usage on any command. - Type
contractsto browse the BBS board. View a contract withcontracts <number>. Accept one withcontracts accept <number>. - Complete the contract — scan, connect, exploit, extract. Monitor your
heatthroughout. - Get paid, upgrade, repeat. Use
upgradeto browse hardware. Userigto see your current setup.
The CRT Experience
There are no menus. There is no HUD. The CRT shader reacts to gameplay through seven distinct mood states:
| State | Visual Effect |
|---|---|
| Calm | Steady phosphor glow, minimal noise |
| Focus | Phosphor brightens, scanlines sharpen |
| Tension | Subtle static rises, glow intensifies |
| Alert | Scanlines intensify, color shifts toward danger palette |
| Danger | Heavy static, screen flicker, phosphor instability |
| Compromised | Screen goes cold — desaturated, flickering |
| Triumph | Clean, bright, steady — the screen rewards a clean extraction |
$ Tier System
Tiers control abstraction depth, not difficulty. The simulation engine is identical at every tier. Tier determines how information is presented and how much the system does on your behalf. Switch freely at any time.
T1 Script Kiddie
Guided commands with auto-completion. Verbose help text. Step-by-step scaffolding. The terminal guides you through each operation with suggestions and explanations.
hack (auto-exploit)T2 Operator
Standard command-line workflow. Realistic flags and options. No hand-holding, but clear feedback. The way a working pentester operates day-to-day.
T3 APT
Protocol-level operations. Packet crafting. Exploit development. Shell scripting. Minimal UI chrome. Real cybersecurity concepts, real methodology, maximum depth.
$ Operating Systems
Six operating systems, each with a distinct philosophy, visual identity, and gameplay personality. Your OS choice affects your phosphor palette (CRT color theme), window manager style, starting hardware, and gameplay modifiers.
LinuxForge
Open source, community-drivenGreen phosphor CRT. Tiling window manager. Community-refined tools generate less noise.
PhantomBSD
Paranoid securityAmber phosphor CRT. Tiling window manager. Minimal attack surface — hardened against both detection and counter-hacking.
SpecterOS
Corporate polishClean white-on-blue. Floating window manager. Ships with upgraded network hardware for deeper reconnaissance.
Aether
Experimental, adaptiveCyan accent phosphor. Floating window manager. Faster command execution, but unstable — commands can glitch unpredictably.
NullOS
Bare metalWhite phosphor. Tiling window manager. No identity until you give it one. No bonuses, no penalties — pure skill, no crutches.
CypherOS
Enterprise networkingBlue-on-black. Floating window manager. Windows backbone with enterprise networking — supports extra concurrent sessions.
Phosphor Palettes
Each OS defines 10 semantic color keys that control the CRT visual identity:
| Key | Purpose |
|---|---|
bg | Terminal background |
fg_primary | Primary text color |
fg_secondary | Secondary / dimmed text |
accent | Highlights, prompts, active elements |
border | Pane borders and dividers |
selection | Text selection background |
comment | Comments, hints, muted annotations |
alert_low | Low-severity alerts |
alert_mid | Medium-severity alerts |
alert_high | High-severity / critical alerts |
$ Hardware & Rig
Your hardware is your character sheet. Six slots, three upgrade tiers each. Every component creates real mechanical constraints that shape your approach. Hardware upgrades are purchased from the market — gated by contracts_completed, not by tier.
| Slot | Effect | Tier 1 | Tier 2 | Tier 3 |
|---|---|---|---|---|
| CPU | Command execution speed (tick multiplier) | 1.0× | 0.75× 3,000 CR | 0.5× 8,000 CR |
| RAM | Max terminal panes open simultaneously | 2 panes | 3 panes 800 CR | 5 panes 4,000 CR |
| NIC | Scan depth into target networks | Depth 1 | Depth 2 2,000 CR | Depth 3 5,000 CR |
| STORAGE | Local disk for scripts and exfiltrated data | 256 KB | 1,024 KB 1,200 CR | 4,096 KB 4,000 CR |
| GPU | Password cracking speed (tick cost divisor) | ÷1 | ÷2 4,000 CR | ÷3 10,000 CR |
| COOLING | Thermal capacity before throttling | 4 units | 8 units 2,500 CR | 15 units 6,000 CR |
floor(price × 0.4). Upgrading a slot replaces the previous component — installing a Tier 2 NIC swaps out your Tier 1. Use rig to view your installed hardware at any time.
$ Commands
ZERO DAY ships with 106 verb commands across fourteen categories. Every command has a base_heat cost (noise generated) and base_ticks cost (time consumed). Type help for a full listing or man <command> for detailed usage.
System & Info
| Command | Description |
|---|---|
help | List all available commands |
man <cmd> | Detailed manual page for a command |
whoami | Display player identity and current tier |
uptime | Show session duration |
clear | Clear terminal output |
history | Show command history |
rig | Display current hardware configuration |
heat | Show current heat / OpSec level |
tier | View or switch working tier |
rep | Show faction reputation standings |
wallet | Show credit balance |
File Operations
| Command | Description |
|---|---|
ls | List files in current directory |
cd <dir> | Change directory |
pwd | Print working directory |
cat <file> | Display file contents |
grep <pattern> | Search file contents |
touch <file> | Create an empty file |
mkdir <dir> | Create a directory |
rm <file> | Delete a file |
download <file> | Download file from target to local storage |
Network & Reconnaissance
| Command | Description |
|---|---|
scan <target> | Scan a host or subnet for open ports and services |
connect <host> | Open a connection to a remote host |
disconnect | Close the active session |
ssh <host> | Open an SSH session |
sessions | List all active sessions |
ifconfig | Display network interfaces |
netstat | Show active network connections |
ping <host> | Check host reachability |
traceroute <host> | Trace route to target |
nslookup <domain> | DNS lookup |
dig <domain> | Detailed DNS query |
whois <domain> | Domain registration lookup |
ipconfig CypherOS | Display IP configuration (Windows-style — CypherOS only) |
netsh CypherOS | Network shell — firewall rules, interface config (CypherOS only) |
Exploitation
| Command | Tier | Description |
|---|---|---|
hack <target> | T1 | Compound auto-exploit — scans, finds vulns, and exploits in one step |
exploit <vuln> | T2+ | Exploit a specific known vulnerability |
inject <payload> | T3 | Inject a custom payload |
escalate | T2+ | Attempt privilege escalation on current session |
pivot <host> | T2+ | Pivot to another host through current session |
Password Cracking
Four cracking tools, each with different characteristics. All are accelerated by GPU tier.
| Command | Tier | Type | Description |
|---|---|---|---|
bruteforce <svc> | T1+ | Online | Simple brute-force password attack against a service |
hydra <svc> | T3 | Online | Parallelized online brute-force (THC Hydra style) |
john <hashes> | T3 | Offline | Offline hash cracking with rules and wordlists |
hashcat <hashes> | T3 | Offline | GPU-accelerated hash cracking with attack modes |
Contract & Extraction
| Command | Description |
|---|---|
contracts | Browse the BBS contract board |
contracts <id> | View contract details |
contracts accept <id> | Accept a contract |
extract | Exfiltrate data to complete objectives |
scrub | Clean traces from the target system |
upgrade | Browse and purchase hardware upgrades |
Defense & Hardening
| Command | Tier | Description |
|---|---|---|
firewall | T2+ | Inspect or modify firewall rules on a compromised host |
ids | T2+ | Query intrusion detection system status and signatures |
patch | T2+ | Apply or check security patches on a target system |
harden | T3 | Apply security hardening configuration to a host |
audit | T2+ | Run security audit on target configuration |
tripwire | T3 | Install or check file integrity monitoring |
backup | T1+ | Create or list backups on a system |
restore | T2+ | Restore a system from backup |
Forensics & Analysis
| Command | Tier | Description |
|---|---|---|
forensics | T2+ | Run forensic analysis on a compromised host |
evidence | T2+ | Collect, examine, or plant digital evidence |
volatility | T3 | Memory forensics — dump and analyze RAM artifacts |
autopsy | T3 | Disk forensics — recover deleted files and timeline analysis |
timeline | T2+ | Reconstruct event timeline from system logs |
chainofcustody | T3 | Establish evidence chain of custody for legal proceedings |
Social Engineering
| Command | Tier | Description |
|---|---|---|
phish | T1+ | Craft and send phishing messages to targets |
vish | T2+ | Voice phishing — social-engineer targets via phone pretexts |
pretexting | T2+ | Build and deploy social engineering pretexts |
dumpster | T1+ | Dumpster dive for credentials and sensitive documents |
Malware & Persistence
| Command | Tier | Description |
|---|---|---|
implant | T2+ | Deploy a backdoor implant on a compromised host |
rootkit | T3 | Install kernel-level rootkit for deep persistence |
keylogger | T2+ | Deploy keystroke logger to capture credentials |
rat | T3 | Deploy remote access trojan with full C2 capability |
persist | T2+ | Establish persistence mechanism (cron, service, registry) |
c2 | T3 | Command and control — manage deployed implants |
Cloud Operations
Cloud commands require the corresponding CLI tool to be installed on your rig via install. Available tools depend on your storage tier.
| Command | Tier | Description |
|---|---|---|
cloud | T2+ | Enumerate cloud resources and IAM configurations |
aws | T2+ | AWS CLI — S3, EC2, IAM, Lambda operations |
az | T2+ | Azure CLI — storage, VMs, AD, Functions |
gcloud | T2+ | Google Cloud CLI — GCS, GCE, IAM operations |
terraform | T3 | Infrastructure as code — plan and modify cloud infra |
kubectl | T3 | Kubernetes cluster management and container orchestration |
docker | T2+ | Container operations — inspect, exec, escape |
Encryption & Crypto
| Command | Tier | Description |
|---|---|---|
encrypt | T1+ | Encrypt files or communications |
decrypt | T2+ | Decrypt intercepted encrypted data |
steganography | T3 | Hide data within images, audio, or other files |
System Administration
| Command | Tier | Description |
|---|---|---|
sudo <cmd> | T1+ | Execute a command with elevated privileges |
su <user> | T2+ | Switch user identity on a compromised host |
install <tool> | T1+ | Install a software tool to your rig (uses storage) |
apt / yum / pacman | T2+ | OS-specific package managers for target hosts |
Scripting & Automation
| Command | Tier | Description |
|---|---|---|
script <file> | T3 | Execute a player-written automation script |
alias | T1+ | Define command aliases for faster workflows |
env | T1+ | View or set shell environment variables |
jobs | T2+ | List background jobs |
bg / fg | T2+ | Move jobs between background and foreground |
$ Contracts
Contracts are jobs posted to an anonymous BBS (Bulletin Board System). Each contract is posted by a faction handle, has a risk level, payout, time limit, and one to four objectives. ZERO DAY ships with 45 contracts spanning all four factions and three risk levels.
Contract Lifecycle
AVAILABLE → ACCEPTED → ACTIVE → PENDING_EXTRACT → COMPLETE | FAILED / ABANDONED
You can only run one active contract at a time. Completed contracts are appended to your permanent history.
Objective Types
| Type | Description |
|---|---|
FILE_EXFILTRATE | Locate and extract specific files from the target |
SESSION_ESTABLISH | Establish a persistent session on a target host |
SERVICE_EXPLOIT | Exploit a specific service or vulnerability |
EVIDENCE_PLANT | Plant forensic evidence on a target system |
EVIDENCE_DESTROY | Eliminate forensic evidence from a compromised host |
CLOUD_COMPROMISE | Breach a cloud environment and exfiltrate resources |
SUPPLY_CHAIN | Compromise a software supply chain component |
SOCIAL_ENGINEER | Obtain access through social engineering pretexts |
CUSTOM_CONDITION | Meet a scenario-specific objective |
Grading
Contracts grade you on three dimensions: stealth (low heat at completion), speed (ticks used vs. time limit), and precision (clean execution). Your approach matters as much as your success — a sloppy victory pays less than a clean one.
Risk Levels
| Risk | Security | Notes |
|---|---|---|
| LOW | Level 1 | Weak defenses. Good for learning and building rep. |
| MEDIUM | Level 2 | Active monitoring. IDS present. Sysadmin AI watches for patterns. |
| HIGH | Level 3 | Adaptive firewalls. Honeypots. Counter-hacking. One mistake and you're traced. |
Procedural Networks
Every target network is procedurally generated with guaranteed solvability — at least two viable attack vectors exist for every objective. Networks have active defenses: intrusion detection systems, sysadmin AI that learns your patterns, firewalls that adapt, and honeypots that trap the careless.
$ CVE Catalog
ZERO DAY features a fictional vulnerability catalog using the ZD-YYYY-NNNN identifier format. Every exploitable service in the game maps to one or more catalog entries, each with a severity score, affected versions, and exploit requirements.
ZD- prefix (e.g., ZD-2038-0042) to maintain the fiction while teaching real methodology.
Catalog Entry Structure
| Field | Description |
|---|---|
zd_id | Unique identifier (ZD-YYYY-NNNN) |
title | Short vulnerability description |
severity | CVSS-style score (0.0–10.0) |
affected_service | Service and version range affected |
exploit_type | Category: RCE, LPE, info_leak, DoS, auth_bypass |
requires_auth | Whether authenticated access is needed |
tier_minimum | Minimum tier to exploit directly |
Players discover vulnerabilities through scan (finds affected services), cross-reference them with the catalog using exploit --list, and target specific entries with exploit ZD-YYYY-NNNN. At T3, players can chain vulnerabilities for multi-stage attacks.
Exploit Resolution
When a player targets a vulnerability, the engine evaluates: Does the target run the affected service? Is the version in range? Does the player meet the tier and tool requirements? Success probability factors in the player's rig, OS modifiers, and the target's patch level — a fully patched host is immune.
$ Heat & OpSec
Every action generates noise. Every tool leaves traces. The Heat system creates constant tension between getting the job done and staying invisible.
Multi-Dimensional Heat
Heat is tracked on two independent dimensions. Each action specifies which dimension it affects:
| Dimension | What It Measures | Raised By |
|---|---|---|
| Network Heat | Traffic analysis signature — how visible you are on the wire | Scans, connections, data exfiltration, noisy exploits |
| Host Heat | Forensic footprint — traces left on compromised systems | File access, privilege escalation, persistence, log tampering |
Both dimensions use the same 0–100 scale and band system. Some actions affect BOTH dimensions. Detection triggers when either dimension enters the HIGH band — a stealthy network approach means nothing if you leave forensic evidence everywhere.
Heat Bands
| Band | Range | Decay | Consequences |
|---|---|---|---|
| LOW | 0–33 | 0.8/tick | Normal operations. No additional attention. |
| MED | 34–66 | 0.5/tick | IDS correlating. Slower decay. Rising sysadmin attention. |
| HIGH | 67–99 | 0.2/tick | Active counter-hacking. Session kills. Trace-back attempts. |
Heat sources: every command has a base_heat value. Aggressive actions (exploits, brute-force) generate more heat. Passive actions (ls, cat, pwd) generate less. Your OS may modify heat generation — PhantomBSD generates 25% less, LinuxForge 10% less.
Heat scope: tracked per contract. Completing a contract resets heat, but residual_heat can carry over based on how sloppy the exit was.
Decay: heat decays passively on every tick-advancing command, but the rate depends on your current band. Higher heat = slower decay. Use scrub to reduce network heat by cleaning traces, and use forensic tools to manage host heat.
Idle Heat & Alert Fatigue
Inactive sessions still generate small amounts of heat — open connections are detectable. Extended idle time in a high-security network triggers sysadmin patrol checks. Conversely, defenders suffer alert fatigue: sustained medium-heat activity can cause IDS operators to lower their guard, slightly reducing detection sensitivity over time.
Surveillance Countermeasures
High-security targets deploy active surveillance: traffic analysis, behavioral profiling, and honeypot networks. Counter-surveillance commands let you detect and evade these measures — but counter-surveillance itself generates heat.
$ Forensic Evidence
Every action you take on a target system can leave forensic evidence — artifacts that persist after you disconnect. Evidence accumulates independently of heat and can be discovered during incident response, potentially leading to contract failure or law enforcement attention even after a successful extraction.
Evidence Types
| Type | Left By | Persistence |
|---|---|---|
| Log entries | Any command executed on target | Until logs rotated or scrubbed |
| File artifacts | Downloads, uploads, file modifications | Until explicitly deleted |
| Memory traces | Running processes, injected payloads | Until reboot or memory dump |
| Network artifacts | Connection records, DNS queries | Until traffic logs expire |
| Persistence mechanisms | Implants, rootkits, cron jobs | Indefinite — survives reboots |
Clean extraction matters. Use scrub for log cleanup, carefully remove tools you deployed, and avoid leaving persistence mechanisms behind unless the contract requires it. A clean post-exploitation phase reduces your evidence footprint and improves contract grades.
$ Law Enforcement
Sloppy operations attract attention beyond the target's defenders. The Law Enforcement Pressure system tracks cumulative evidence across contracts. Get traced too many times or leave too much evidence, and you'll face escalating consequences.
Pressure Levels
| Level | Threshold | Consequences |
|---|---|---|
| UNKNOWN | Default | No law enforcement attention. Operate freely. |
| MONITORED | Repeated traces | Higher base heat on new contracts. Faction contacts warn you. |
| INVESTIGATED | Sustained evidence | Some contracts become unavailable. Hardware market prices increase. |
| HUNTED | Critical exposure | Aggressive counter-operations. Shortened contract timers. Faction trust drops. |
Pressure decays slowly over time through clean operations. Lying low, completing stealth contracts, and doing work for Cold Iron (security contractors) can actively reduce pressure. The scrub and evidence management commands are your primary tools for keeping the heat off.
$ Economy
Credits (CR) are earned from contracts and spent on hardware upgrades. The economy uses an append-only transaction ledger — every income and expense is permanently recorded.
| Rule | Detail |
|---|---|
| Starting balance | 100 CR |
| Precision | Integer only — no floating-point credits |
| Floor | Balance can never go negative |
| Sell refund | floor(price × 0.4) |
| Contract payout | Base payout modified by grade (stealth, speed, precision) |
Use wallet to check your balance. The market is gated by contracts_completed, not tier. Better hardware requires finishing more jobs.
Cryptocurrency
Some contracts pay in cryptocurrency instead of (or in addition to) credits. Crypto earnings are stored in a separate wallet with its own volatility mechanics — the exchange rate fluctuates based on in-game market conditions.
| Feature | Detail |
|---|---|
| Volatility | Exchange rate shifts between contracts based on deterministic market simulation |
| Conversion | Convert crypto to credits at current rate via wallet convert |
| Risk/reward | Holding crypto can yield higher returns — or losses — compared to immediate conversion |
| Black market | Some Undermarket items are crypto-only, bypassing the standard economy |
| Laundering | Large crypto transactions increase law enforcement pressure unless laundered |
$ Cloud Resources
The 2039 internet runs on consolidated cloud infrastructure. Cloud targets represent high-value contract objectives with their own attack surface, distinct from traditional on-premise networks.
Cloud Providers (In-Game)
Apex Cloud
Dominant IaaS provider. Object storage, compute instances, IAM, serverless functions.
awsBastion Platform
Enterprise-focused. Active Directory integration, managed databases, compliance controls.
azCirrus Systems
Developer-friendly. Container orchestration, CI/CD pipelines, ML infrastructure.
gcloudSoftware Tools
Cloud CLIs and infrastructure tools must be installed before use. Use install <tool> to download and configure tools to your rig. Each tool consumes storage space and some require minimum hardware tiers.
aws s3 ls without installing the AWS CLI returns an error, not a silent failure — just like the real world.
$ Player Scripting
At T3, players unlock the scripting runtime — the ability to write and execute automation scripts that chain commands together. Scripts are stored on your rig's local storage and executed via the script command.
Capabilities
| Feature | Description |
|---|---|
| Command chaining | Execute multiple commands in sequence with conditional logic |
| Variables | Store and reuse values: IPs, ports, credentials, file paths |
| Loops | Iterate over host lists, port ranges, or wordlists |
| Conditionals | Branch on command success/failure, heat thresholds, or output parsing |
| Functions | Define reusable procedures for common attack patterns |
| Heredoc support | Multi-line string literals for complex payloads |
Scripts are stored as plaintext on your rig's STORAGE — storage capacity limits how many scripts you can carry. Use ls ~/scripts to manage them.
$ Assessment & Proctor Mode
ZERO DAY includes a built-in proctored assessment system for cybersecurity education. Instructors run a proctor dashboard that connects to student game instances over a local network, enabling real-time monitoring, controlled lab environments, and automated grading.
How It Works
| Step | Instructor | Student |
|---|---|---|
| 1 | Opens Proctor Dashboard, gets a room code | Enters the room code to join |
| 2 | Selects a scenario and configures forced OS / tier / hardware | Sees roster confirmation |
| 3 | Pushes scenario and starts the assessment | Receives objectives and time limit |
| 4 | Monitors live command feed and student progress | Works through objectives in-game |
| 5 | Ends assessment and reviews graded results | Sees their grade breakdown |
Assessment Scenarios
Six built-in scenarios cover core cybersecurity skills. Each defines objectives, time limits, and grading weight distribution.
| Scenario | Difficulty | Time | Focus |
|---|---|---|---|
| Reconnaissance Fundamentals | Beginner | 10 min | Network scanning and host enumeration |
| Network Topology Mapping | Beginner | 10 min | Subnet scanning, DNS, route tracing |
| Complete Penetration Test | Intermediate | 20 min | Full pentest cycle: recon → exploit → exfil → cleanup |
| Password Cracking Lab | Intermediate | 15 min | Offline and online cracking techniques (GPU-2 provided) |
| Incident Response Analysis | Intermediate | 15 min | Forensic investigation of a compromised host |
| Stealth Operations | Advanced | 15 min | Complete a contract with heat below 20 |
4-Axis Grading
Every assessment is graded on four dimensions, each weighted per scenario:
| Axis | Measures | How It's Scored |
|---|---|---|
| Methodology | Did the student follow the correct phase order? | Recon → Enum → Exploit → Post-Exploit → Cleanup. Bonus for proper sequencing. |
| Stealth | How much noise did they generate? | Peak heat thresholds: ≤20 excellent, ≤50 good, ≤80 fair, >80 poor. |
| Efficiency | Did they avoid unnecessary or redundant commands? | Repeated commands within the same phase are penalized. |
| Completeness | How many objectives were achieved? | Ratio of completed objectives to total required. |
Letter grades: A ≥ 90%, B ≥ 80%, C ≥ 70%, D ≥ 60%, F < 60%.
Instructor Controls
| Feature | Description |
|---|---|
| Force OS | Lock all students to a specific operating system |
| Force Tier | Lock students to T1 Script Kiddie, T2 Operator, or T3 APT |
| Force Hardware | Presets: Default (all T1), Standard (all T2), Full (all T3), GPU Focus (GPU-3 only) |
| Live Feed | Real-time stream of every command every student executes |
| Package Mode | Sequence multiple scenarios into a single assessment session |
| Export Results | Simple, Standard, or Complete report formats |
$ New Game Plus
After completing the main progression, NG+ unlocks a second cycle with retuned difficulty. Your credits, faction reputation, and hardware carry over — but contracts hit harder, network defenses scale up, and heat thresholds tighten.
| Parameter | Base Game | NG+ |
|---|---|---|
| Heat multiplier | 1.0× | Configurable (default 1.5×) |
| Contract payout | 1.0× | Configurable (default 1.25×) |
| Detection sensitivity | Normal | Elevated |
| Hardware carry-over | — | Full rig retained |
$ Accessibility
ZERO DAY is a text-heavy game — accessibility is not an afterthought. The following features are built in from day one:
| Feature | Description |
|---|---|
| Screen Reader (TTS) | Full text-to-speech support via the system TTS engine. All terminal output, menus, and status information is readable. |
| Colorblind Modes | Three correction matrices: protanopia, deuteranopia, and tritanopia. Applied as a post-process filter over the CRT shader. |
| High Contrast | Enhanced contrast mode that increases text/background separation across all OS palettes. |
| Font Scaling | Adjustable font size that scales all terminal text. Minimum size ensures readability at Steam Deck’s 1280×800. |
| Keyboard Navigation | All interactive elements are fully keyboard-navigable. No mouse required for any game function. |
All accessibility settings persist across sessions independently of game saves.
$ Localization
ZERO DAY ships with 6 languages. All UI screens use the translation system — no hardcoded user-facing strings.
| Language | Code | Status |
|---|---|---|
| English | en | Complete (source language) |
| Spanish | es | Complete |
| French | fr | Complete |
| German | de | Complete |
| Japanese | ja | Complete |
| Chinese (Simplified) | zh | Complete |
$ Factions
Four factions operate in the underground, each with their own philosophy, contract style, and moral boundaries. Building reputation with a faction unlocks better contracts and deeper narrative threads.
Signal Collective
Hacktivists. Founded by nullsignal, crowbar, and hexwitch. Flat organizational structure. Expose corporate surveillance. Give power back to the public.
Contracts: data leaks, corporate exposure, whistleblower protection.
Meridian Group
Corporate espionage brokerage. Handle silkthread runs operations. Corporate hierarchy. Plausible deniability at every level. Information is a commodity.
Contracts: trade secret theft, competitive intelligence, insider data.
Cold Iron
Private security contractors. Handle warden leads. Ex-corporate security. Counter-intrusion specialists. The best defense is sometimes offense.
Contracts: counter-intrusion, threat assessment, security audits.
Undermarket
Black market data brokerage. The oldest faction — 15 years running. Handle broker_null. Everything has a price. Everything.
Contracts: data theft, exploit brokering, credential harvesting.
$ World Timeline
The year is 2039. The internet you knew is gone. Cloud consolidation, government surveillance acts, and corporate monopolies have reshaped the digital landscape. The underground is the last free space — and it's under siege.
Era 1 — Consolidation (2025–2030)
| Year | Event |
|---|---|
| 2025–28 | Major cloud providers merge into three mega-platforms. Independent hosting becomes unviable. |
| 2028 | The DISA (Digital Infrastructure Security Act) passes. Mandatory backdoors in all commercial encryption. |
| 2029 | LinuxForge v1.0 — first OS designed to operate outside DISA compliance. |
| 2030 | PhantomBSD appears. Origin unknown. Paranoid security model. |
Era 2 — Factions (2031–2034)
| Year | Event |
|---|---|
| 2031 | The Kestrel Leak — massive corporate-government surveillance dump. Signal Collective emerges. |
| 2032 | Meridian Group incorporates. Cold Iron follows within months. |
| 2033 | Undermarket launches the BBS board. SpecterOS appears. |
| 2034 | The First Ghost: delphic vanishes mid-operation. No body, no arrest, no trace. |
Era 3 — Protocol Zero (2035–2039)
The following reveals central narrative mysteries. Play the game first.
| Year | Event |
|---|---|
| 2035 | NullOS appears on underground channels. No author, no origin, no identity. |
| 2036 | AETHER v0.1 surfaces. archivist captured carrying pz_manifest.enc. |
| 2037 | Ghost frequency increases. 11 total — 7 turned, 4 detained or refused. |
| 2038 | forgeman broadcasts: "They're not arresting us. They're recruiting us." |
| 2039 | Protocol Zero is operational — a predictive capability-denial system by NSA/Arbor Systems. It captures and turns the best hackers. You are next. |
Protocol Zero doesn't catch hackers. It predicts who will become threats and moves to turn them before they peak. The factions are infiltrated. The BBS is monitored. And your growing reputation has already made you a target.
$ Modding Guide
ZERO DAY supports a comprehensive addon system that lets modders add, extend, and override nearly every content type in the game. Addons are data-driven — most modifications require only JSON files, with optional GDScript for custom command logic.
user://addons/<addon_name>/. Each addon must contain an addon.json manifest at its root. The game discovers and loads addons automatically on startup.
Directory Structure
user://addons/ my_custom_addon/ addon.json # Required manifest commands/ # Custom verb definitions recon_tool.json recon_tool.gd # Optional: custom executor contracts/ # Custom contracts factions/ # New or extended factions hardware/ # New hardware components os/ # New operating systems narrative/ # Story fragments music/ # Music tracks (tracks.json) shell/ # Shell presets (presets.json) cves/ # Custom vulnerability catalog entries tools/ # Custom software tools
Operations: Add, Extend, Override
Every content type supports up to three operations:
| Operation | What It Does | Risk |
|---|---|---|
add | Introduces entirely new content (commands, contracts, factions, etc.) | Low — no conflicts |
extend | Patches specific fields of existing content (add flags, rivals, etc.) | Medium — depends on target |
override | Fully replaces existing content with your version | High — first override wins |
Load Order & Priority
- Core game content loads first. This is the baseline.
- Addon extensions apply in
load_ordersequence (lower numbers first). - First override wins. If two addons override the same content, the lower
load_ordertakes priority.
$ Manifest Schema
Every addon requires an addon.json manifest at its root:
{
"id": "my_recon_pack", // Unique identifier (snake_case)
"name": "Recon Tool Pack", // Human-readable display name
"version": "1.0.0", // SemVer version
"author": "YourName", // Author or team
"description": "Adds recon tools", // Short description
"game_version_min": "1.0.0", // Minimum game version required
"dependencies": [], // Other addon IDs this depends on
"load_order": 100, // Lower = loads earlier (default: 100)
"content": { // Maps content types to directories
"commands": "commands/",
"contracts": "contracts/",
"factions": "factions/",
"hardware": "hardware/",
"narrative": "narrative/",
"music": "music/",
"shell": "shell/",
"cves": "cves/",
"tools": "tools/"
}
}
id in the dependencies array. The game loads dependencies first regardless of load_order. Missing dependencies prevent the addon from loading.
$ Modding: Commands
Add new terminal commands, extend existing ones with new flags or subcommands, or fully override a built-in command.
Adding a New Command
Create a JSON verb definition in your addon's commands/ directory:
// commands/port_knock.json { "verb_id": "port_knock", "signature": "port_knock <host> <ports...>", "base_heat": 2, "base_ticks": 1, "widget_kind": "text_output", "intent_template": "Knock on ports {ports} at {host}", "execute_key": "port_knock", "presentation_tier": 2, "description": "Send a port knock sequence to open filtered services" }
Register it in your manifest:
"content": { "commands": { "add": [ { "file": "commands/port_knock.json" } ] } }
Custom Command Logic (GDScript)
For commands that need custom behavior beyond the standard pipeline, place a GDScript executor alongside the JSON:
# commands/port_knock.gd extends VerbExecutor func execute(args: Dictionary, context: CommandContext) -> VerbResult: var host := args.get("host", "") as String var ports := args.get("ports", []) as Array # Custom logic here return VerbResult.success("Knocked: %s" % [", ".join(ports)])
Data-Only Commands (Aliases)
Simple aliases need no GDScript — use alias_target:
{
"verb_id": "nk",
"alias_target": "port_knock",
"description": "Shorthand for port_knock"
}
Extending Existing Commands
"commands": { "extend": [ { "verb_id": "scan", "add_flags": ["--stealth", "--deep"], "add_subcommands": ["vuln"] } ] }
Overriding Commands
"commands": { "override": [ { "verb_id": "scan", "file": "commands/custom_scan.json" } ] }
$ Modding: Contracts
Add new contracts with custom network topologies, extend existing contracts, or override them.
Adding a Contract
{
"id": "custom_heist_01",
"title": "The Vault Job",
"poster_handle": "silkthread",
"briefing": "Meridian needs corporate R&D data. Hardened internal network. Get in, get files, get out clean.",
"risk_level": "HIGH",
"base_payout": 8000,
"time_limit_ticks": 200,
"target_security_level": 3,
"faction_tag": "meridian_group",
"objectives": [
{
"type": "FILE_EXFILTRATE",
"target_file": "/data/research/project_alpha.db",
"description": "Extract Project Alpha database"
},
{
"type": "SESSION_ESTABLISH",
"target_host": "10.0.1.50",
"description": "Persistent access to backup server"
}
],
"network": {
"topology": "star",
"hosts": [
{ "ip": "10.0.1.1", "role": "gateway", "services": ["ssh", "http"] },
{ "ip": "10.0.1.10", "role": "workstation", "services": ["smb"] },
{ "ip": "10.0.1.50", "role": "server", "services": ["ssh", "ftp", "postgres"] }
]
}
}
Extending Contracts
"contracts": { "extend": [ { "id": "existing_contract_id", "patch": { "briefing": "Updated briefing text...", "add_objectives": [ { "type": "CUSTOM_CONDITION", "description": "Leave no logs" } ], "add_hosts": [ { "ip": "10.0.1.99", "role": "honeypot" } ] } } ] }
$ Modding: Factions
Add entirely new factions, extend existing ones, or override (warned — affects narrative coherence).
Adding a Faction
{
"faction_id": "neon_circuit",
"display_name": "Neon Circuit",
"type": "hacktivist",
"description": "Digital artists turned hacktivists. Code is art, art is resistance.",
"handle": "pixel_prophet",
"rivals": ["meridian_group"],
"allies": ["signal_collective"],
"contract_style": "Digital art installations on corporate networks",
"will_not_do": ["Destroy creative works", "Target independent artists"]
}
Extending a Faction
"factions": { "extend": [ { "faction_id": "signal_collective", "add_rivals": ["neon_circuit"] } ] }
$ Modding: Hardware
Add new hardware components to any of the six slots, extend existing components, or override.
Adding Hardware
{
"component_id": "quantum_nic",
"slot": "NIC",
"tier": 4,
"display_name": "Quantum NIC",
"price": 15000,
"effects": {
"scan_depth": 4,
"scan_speed_multiplier": 0.5
},
"prerequisites": {
"contracts_completed": 30
},
"description": "Quantum-entangled network interface. Sees everything."
}
Extending Hardware
"hardware": { "extend": [ { "component_id": "gpu_3", "add_effects": { "hash_rate_bonus": 0.5 }, "add_prerequisites": { "faction_rep_undermarket": 50 } } ] }
$ Modding: Operating Systems
Add entirely new operating systems with custom phosphor palettes, window manager models, starting hardware, and gameplay modifiers.
Adding an OS
{
"os_id": "iron_os",
"display_name": "IronOS",
"shorthand": "IRON",
"tagline": "Forged in fire",
"dominant_phosphor": "red",
"wm_model": "TILING",
"phosphor_palette": {
"bg": "#0a0000",
"fg_primary": "#ff4040",
"fg_secondary": "#cc3030",
"accent": "#ff6020",
"border": "#401010",
"selection": "#602020",
"comment": "#804040",
"alert_low": "#ff8040",
"alert_mid": "#ff4020",
"alert_high": "#ff0000"
},
"starting_hardware": {
"CPU": 1, "RAM": 1, "NIC": 1,
"STORAGE": 1, "GPU": 2, "COOLING": 1
},
"gameplay_modifiers": {
"heat_multiplier": 1.1,
"cpu_speed_bonus": 0.9
}
}
All 10 palette keys are required when adding a new OS. When extending, provide only the keys you're changing.
Extending an OS
"os": { "extend": [ { "os_id": "linux_forge", "patch_palette": { "accent": "#40ff80" }, "patch_modifiers": { "heat_multiplier": 0.85 } } ] }
$ Modding: CVE Catalog
Add custom fictional vulnerabilities to the game's CVE catalog. All entries must use the ZD- prefix — entries without it are rejected at load time.
Adding a Vulnerability
{
"zd_id": "ZD-2039-1001",
"title": "QuantumDB Authentication Bypass",
"severity": 9.1,
"affected_service": "quantumdb",
"affected_versions": "2.0.0-2.4.3",
"exploit_type": "auth_bypass",
"requires_auth": false,
"tier_minimum": 2,
"description": "Malformed auth token causes QuantumDB to skip credential verification."
}
Extending Existing CVEs
"cves": { "extend": [ { "zd_id": "ZD-2038-0042", "patch": { "affected_versions": "1.0.0-3.2.1", "severity": 9.8 } } ] }
zd_id does not start with ZD-. This is enforced at load time to prevent real CVE identifiers from appearing in the game.
$ Modding: Software Tools
Add custom installable software tools that players can download to their rig. Tools are required by certain commands (especially cloud operations) and consume rig storage.
Adding a Tool
{
"id": "quantum_scanner",
"display_name": "QuantumScan",
"description": "Advanced vulnerability scanner with quantum-accelerated pattern matching",
"size_kb": 128,
"required_by": ["qscan"],
"tier_minimum": 2,
"install_ticks": 5
}
Extending Existing Tools
"tools": { "extend": [ { "id": "aws_cli", "patch": { "size_kb": 96, "required_by": ["aws", "s3cmd"] } } ] }
$ Modding: Narrative
Add narrative fragments that appear as discoverable content during gameplay, each with unlock conditions.
Adding Narrative
{
"fragment_id": "iron_lore_01",
"title": "The Forge Master's Log",
"content": "Day 47. The compiler is sentient. I'm sure of it now...",
"tags": ["lore", "iron_os", "ai"],
"unlock_conditions": {
"contracts_completed": 10,
"os_id": "iron_os"
}
}
Extending Narrative
"narrative": { "extend": [ { "fragment_id": "existing_fragment", "add_content": "Additional paragraph appended...", "add_tags": ["conspiracy"] } ] }
$ Modding: Music
ZERO DAY uses a 3-intensity-layer music system powered by Ovani. Every track has a main layer (always audible), an intensity_1 layer (fades in during tense moments), and an intensity_2 layer (fades in at critical heat). Layers crossfade automatically based on the game's mood system — modders provide raw audio files and metadata only.
Declare "music": "music/" in your addon manifest's content map. Inside that directory, create a tracks.json file — a JSON array of track definitions.
Track Schema
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique track identifier (snake_case) |
display_name | string | Yes | Human-readable name shown in settings |
reverb_tail | float | No | Reverb tail in seconds (default 5.0) |
mode | string | No | "intensities" (default), "loop30", or "loop60" |
layers | object | Conditional | Required for "intensities" mode (see below) |
file | string | Conditional | Required for "loop30"/"loop60" — single loop file |
Intensities Mode (Default)
The layers object maps layer names to .ogg or .wav file paths relative to the music directory:
| Layer | Required | When It Plays |
|---|---|---|
main | Yes | Always audible — the base drone |
intensity_1 | No | Fades in at TENSE mood (falls back to main) |
intensity_2 | No | Fades in at CRITICAL mood (falls back to main) |
Example: tracks.json
// music/tracks.json [ { "id": "sample_ambient", "display_name": "Sample Ambient Track", "reverb_tail": 4.0, "mode": "intensities", "layers": { "main": "base_drone.ogg", "intensity_1": "tension.ogg", "intensity_2": "critical.ogg" } }, { "id": "lofi_loop", "display_name": "Lo-Fi Loop", "mode": "loop30", "file": "lofi_30s.ogg" } ]
.ogg (Vorbis) and .wav. All three intensity layers should be the same tempo and bar length so they stay in phase during crossfades. Addon tracks appear in the Settings track selector, participate in random rotation, and are indistinguishable from core tracks.
$ Modding: Shell Presets
Customize the terminal with shell presets that define command aliases and environment variables. Declare "shell": "shell/" in your addon manifest's content map, then create a presets.json file.
Example: presets.json
// shell/presets.json { "extends": "default", "aliases": { "ll": "ls -la", "cls": "clear", "ports": "scan --ports" }, "variables": { "EDITOR": "nano" } }
extends inherits from the named base preset ("default" gives you all built-in aliases). Aliases expand at parse time — typing ll runs ls -la. Variables are available to commands via the shell environment.
$ Advanced Modding
Complete Addon Example
A full addon that adds a new faction, commands, contracts, custom vulnerabilities, tools, music, and shell aliases:
// addon.json { "id": "neon_circuit_pack", "name": "Neon Circuit Faction Pack", "version": "1.0.0", "author": "ExampleModder", "description": "Adds Neon Circuit faction with custom contracts and tools", "game_version_min": "1.0.0", "content": { "commands": "commands/", "factions": "factions/", "contracts": "contracts/", "cves": "cves/", "tools": "tools/", "music": "music/", "shell": "shell/" } }
Content Type Support Matrix
| Content Type | Add | Extend | Override | Notes |
|---|---|---|---|---|
| Commands | ✓ | ✓ | ✓ | JSON + optional .gd executor |
| Contracts | ✓ | ✓ | ✓ | Includes network topology |
| Factions | ✓ | ✓ | ✓ | Override warned — narrative impact |
| Hardware | ✓ | ✓ | ✓ | Any of 6 slots, custom tiers |
| Operating Systems | ✓ | ✓ | ✓ | 10 palette keys required for add |
| CVE Catalog | ✓ | ✓ | ✓ | ZD- prefix enforced at load time |
| Software Tools | ✓ | ✓ | ✓ | Installable tools with storage cost |
| Narrative | ✓ | ✓ | ✓ | Fragments with unlock conditions |
| Music | ✓ | — | ✓ | tracks.json — intensities or loop mode |
| Shell | ✓ | ✓ | — | Aliases and environment variables |
Best Practices
- Prefer
addoveroverride. New content creates no conflicts. Overrides can collide. - Use
extendfor small changes. Adjusting a price or adding a flag is cleaner than a full override. - Set
load_orderthoughtfully. Default is 100. Content packs: 100–200. Total conversions: 900+. - Prefix your IDs. Use
neon_circuit_art_bombnotart_bombto avoid collisions. - Respect faction
will_not_doconstraints when adding contracts for existing factions. - Follow the existing price/effect curve for hardware. Proportional improvement, not exponential.
- Include a README in your addon directory with install instructions and known incompatibilities.
- Test alongside core content. Your addon should enhance, not break, the base game.
ZERO DAY — A hacking simulation by Sojo
106 commands · 45 contracts · 6 operating systems · 18 hardware components · 6 languages · 11 moddable content types