ZERO DAY

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.

Singleplayer Simulation 106 Commands 45 Contracts 6 Operating Systems 6 Languages CVE Catalog Accessible Moddable Steam Deck Verified

$ Game Pillars

Five design principles govern every system in ZERO DAY. No feature ships unless it serves at least one pillar.

$ 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:

  1. Choose your OS — each has a distinct visual identity and gameplay modifiers. LinuxForge is a solid default; PhantomBSD rewards stealth play.
  2. Choose your tier — start at Tier 1 (Script Kiddie) if you're new to hacking games. You can switch tiers at any time.
  3. Type help to see available commands. Type man <command> for detailed usage on any command.
  4. Type contracts to browse the BBS board. View a contract with contracts <number>. Accept one with contracts accept <number>.
  5. Complete the contract — scan, connect, exploit, extract. Monitor your heat throughout.
  6. Get paid, upgrade, repeat. Use upgrade to browse hardware. Use rig to 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:

StateVisual Effect
CalmSteady phosphor glow, minimal noise
FocusPhosphor brightens, scanlines sharpen
TensionSubtle static rises, glow intensifies
AlertScanlines intensify, color shifts toward danger palette
DangerHeavy static, screen flicker, phosphor instability
CompromisedScreen goes cold — desaturated, flickering
TriumphClean, 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.

Language matters. Tiers are never called difficulty levels. They represent working depth: how close to the metal you operate. T1 delegates to the machine. T3 takes direct control. The machine does the same work either way.

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.

Presentation: Maximum guidance
Compound commands: 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.

Presentation: Professional tooling
Compound commands: Chained pipelines

T3 APT

Protocol-level operations. Packet crafting. Exploit development. Shell scripting. Minimal UI chrome. Real cybersecurity concepts, real methodology, maximum depth.

Presentation: Raw protocol access
Compound commands: Custom scripts

$ 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-driven

Green phosphor CRT. Tiling window manager. Community-refined tools generate less noise.

Modifier: Heat ×0.9 (10% less heat)
WM: Tiling

PhantomBSD

Paranoid security

Amber phosphor CRT. Tiling window manager. Minimal attack surface — hardened against both detection and counter-hacking.

Modifier: Heat ×0.75 (25% less heat)
Modifier: Counter-hack resist 0.3
WM: Tiling

SpecterOS

Corporate polish

Clean white-on-blue. Floating window manager. Ships with upgraded network hardware for deeper reconnaissance.

Modifier: Starting NIC-2 (deeper scans)
WM: Floating

Aether

Experimental, adaptive

Cyan accent phosphor. Floating window manager. Faster command execution, but unstable — commands can glitch unpredictably.

Modifier: CPU speed ×0.85 (15% faster)
Modifier: 5% glitch chance
WM: Floating

NullOS

Bare metal

White phosphor. Tiling window manager. No identity until you give it one. No bonuses, no penalties — pure skill, no crutches.

Modifier: None
WM: Tiling

CypherOS

Enterprise networking

Blue-on-black. Floating window manager. Windows backbone with enterprise networking — supports extra concurrent sessions.

Modifier: +1 concurrent session
WM: Floating

Phosphor Palettes

Each OS defines 10 semantic color keys that control the CRT visual identity:

KeyPurpose
bgTerminal background
fg_primaryPrimary text color
fg_secondarySecondary / dimmed text
accentHighlights, prompts, active elements
borderPane borders and dividers
selectionText selection background
commentComments, hints, muted annotations
alert_lowLow-severity alerts
alert_midMedium-severity alerts
alert_highHigh-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.

SlotEffectTier 1Tier 2Tier 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
Sell refund. Selling hardware returns 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 116 verb commands across eighteen 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
CommandDescription
helpList all available commands
man <cmd>Detailed manual page for a command
whoamiDisplay player identity and current tier
uptimeShow session duration
clearClear terminal output
historyShow command history
rigDisplay current hardware configuration
heatShow current heat / OpSec level
tierView or switch working tier
repShow faction reputation standings
walletShow credit balance
File Operations
CommandDescription
lsList files in current directory
cd <dir>Change directory
pwdPrint 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
CommandDescription
scan <target>Scan a host or subnet for open ports and services
connect <host>Open a connection to a remote host
disconnectClose the active session
ssh <host>Open an SSH session
sessionsList all active sessions
ifconfigDisplay network interfaces
netstatShow 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 CypherOSDisplay IP configuration (Windows-style — CypherOS only)
netsh CypherOSNetwork shell — firewall rules, interface config (CypherOS only)
Exploitation
CommandTierDescription
hack <target>T1Compound auto-exploit — scans, finds vulns, and exploits in one step
exploit <vuln>T2+Exploit a specific known vulnerability
inject <payload>T3Inject a custom payload
escalateT2+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.

CommandTierTypeDescription
bruteforce <svc>T1+OnlineSimple brute-force password attack against a service
hydra <svc>T3OnlineParallelized online brute-force (THC Hydra style)
john <hashes>T3OfflineOffline hash cracking with rules and wordlists
hashcat <hashes>T3OfflineGPU-accelerated hash cracking with attack modes
Contract & Extraction
CommandDescription
contractsBrowse the BBS contract board
contracts <id>View contract details
contracts accept <id>Accept a contract
extractExfiltrate data to complete objectives
scrubClean traces from the target system
upgradeBrowse and purchase hardware upgrades
Defense & Hardening
CommandTierDescription
firewallT2+Inspect or modify firewall rules on a compromised host
idsT2+Query intrusion detection system status and signatures
patchT2+Apply or check security patches on a target system
hardenT3Apply security hardening configuration to a host
auditT2+Run security audit on target configuration
tripwireT3Install or check file integrity monitoring
backupT1+Create or list backups on a system
restoreT2+Restore a system from backup
Forensics & Analysis
CommandTierDescription
forensicsT2+Run forensic analysis on a compromised host
evidenceT2+Collect, examine, or plant digital evidence
volatilityT3Memory forensics — dump and analyze RAM artifacts
autopsyT3Disk forensics — recover deleted files and timeline analysis
timelineT2+Reconstruct event timeline from system logs
chainofcustodyT3Establish evidence chain of custody for legal proceedings
Social Engineering
CommandTierDescription
phishT1+Craft and send phishing messages to targets
vishT2+Voice phishing — social-engineer targets via phone pretexts
pretextingT2+Build and deploy social engineering pretexts
dumpsterT1+Dumpster dive for credentials and sensitive documents
Malware & Persistence
CommandTierDescription
implantT2+Deploy a backdoor implant on a compromised host
rootkitT3Install kernel-level rootkit for deep persistence
keyloggerT2+Deploy keystroke logger to capture credentials
ratT3Deploy remote access trojan with full C2 capability
persistT2+Establish persistence mechanism (cron, service, registry)
c2T3Command 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.

CommandTierDescription
cloudT2+Enumerate cloud resources and IAM configurations
awsT2+AWS CLI — S3, EC2, IAM, Lambda operations
azT2+Azure CLI — storage, VMs, AD, Functions
gcloudT2+Google Cloud CLI — GCS, GCE, IAM operations
terraformT3Infrastructure as code — plan and modify cloud infra
kubectlT3Kubernetes cluster management and container orchestration
dockerT2+Container operations — inspect, exec, escape
Web Application Testing

Full OWASP Top 10 attack surface: SQL injection, XSS, SSRF, and more. Web apps are modeled with routes, parameters, and WAF detection.

CommandTierDescription
niktoT2+Web vulnerability scanner — enumerate routes, frameworks, and injectable params
gobusterT2+Directory brute-forcer — discover hidden paths and endpoints
sqlmapT2+SQL injection tool — detect, enumerate databases, dump tables, extract creds
burpT2+Web proxy — scan, spider, intercept requests, fuzz parameters for XSS/injection
Privilege Escalation

Misconfiguration-based privesc: SUID binaries, sudo rules, cron jobs, writable paths. Full GTFOBins database with 12 binary entries.

CommandTierDescription
linpeasT2+Enumerate SUID binaries, sudo rules, cron jobs, and writable paths
crontabT2+List cron jobs (-l), edit writable cron scripts (-e) for payload injection
Supply Chain

Package registry attacks: typosquatting, dependency confusion, integrity bypass. Supports npm, PyPI, RubyGems, and Cargo registries.

CommandTierDescription
npmT1+npm CLI — install, audit, publish, info. Full registry interaction
pipT1+pip CLI — install, show, list, check. PyPI registry integration
Encryption & Crypto

TLS/SSL analysis, certificate chain validation, MITM interception, and cryptographic attacks. Full A-F grading system.

CommandTierDescription
encryptT1+Encrypt files or communications
decryptT2+Decrypt intercepted encrypted data
steganographyT3Hide data within images, audio, or other files
sslscanT2+TLS scanner — enumerate protocols, cipher suites, certificate details, grade
sslstripT3HTTPS downgrade proxy — strip TLS to intercept credentials via MITM
System Administration
CommandTierDescription
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 / pacmanT2+OS-specific package managers for target hosts
Scripting & Automation
CommandTierDescription
script <file>T3Execute a player-written automation script
aliasT1+Define command aliases for faster workflows
envT1+View or set shell environment variables
jobsT2+List background jobs
bg / fgT2+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

TypeDescription
FILE_EXFILTRATELocate and extract specific files from the target
SESSION_ESTABLISHEstablish a persistent session on a target host
SERVICE_EXPLOITExploit a specific service or vulnerability
EVIDENCE_PLANTPlant forensic evidence on a target system
EVIDENCE_DESTROYEliminate forensic evidence from a compromised host
CLOUD_COMPROMISEBreach a cloud environment and exfiltrate resources
SUPPLY_CHAINCompromise a software supply chain component
SOCIAL_ENGINEERObtain access through social engineering pretexts
CUSTOM_CONDITIONMeet 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

RiskSecurityNotes
LOWLevel 1Weak defenses. Good for learning and building rep.
MEDIUMLevel 2Active monitoring. IDS present. Sysadmin AI watches for patterns.
HIGHLevel 3Adaptive 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.

Fictional identifiers only. ZERO DAY never references real CVEs. All vulnerabilities use the ZD- prefix (e.g., ZD-2038-0042) to maintain the fiction while teaching real methodology.

Catalog Entry Structure

FieldDescription
zd_idUnique identifier (ZD-YYYY-NNNN)
titleShort vulnerability description
severityCVSS-style score (0.0–10.0)
affected_serviceService and version range affected
exploit_typeCategory: RCE, LPE, info_leak, DoS, auth_bypass
requires_authWhether authenticated access is needed
tier_minimumMinimum 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:

DimensionWhat It MeasuresRaised By
Network HeatTraffic analysis signature — how visible you are on the wireScans, connections, data exfiltration, noisy exploits
Host HeatForensic footprint — traces left on compromised systemsFile 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

LOW (0-33)
MED (34-66)
HIGH (67-100)
BandRangeDecayConsequences
LOW0–330.8/tickNormal operations. No additional attention.
MED34–660.5/tickIDS correlating. Slower decay. Rising sysadmin attention.
HIGH67–990.2/tickActive counter-hacking. Session kills. Trace-back attempts.
100 = Traced = Game Over. If your heat reaches 100, you are fully traced. The contract fails immediately. Consequences: rig damage, reputation loss, faction repercussions. Manage your heat or pay the price.

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

TypeLeft ByPersistence
Log entriesAny command executed on targetUntil logs rotated or scrubbed
File artifactsDownloads, uploads, file modificationsUntil explicitly deleted
Memory tracesRunning processes, injected payloadsUntil reboot or memory dump
Network artifactsConnection records, DNS queriesUntil traffic logs expire
Persistence mechanismsImplants, rootkits, cron jobsIndefinite — 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

LevelThresholdConsequences
UNKNOWNDefaultNo law enforcement attention. Operate freely.
MONITOREDRepeated tracesHigher base heat on new contracts. Faction contacts warn you.
INVESTIGATEDSustained evidenceSome contracts become unavailable. Hardware market prices increase.
HUNTEDCritical exposureAggressive 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.

RuleDetail
Starting balance100 CR
PrecisionInteger only — no floating-point credits
FloorBalance can never go negative
Sell refundfloor(price × 0.4)
Contract payoutBase 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.

FeatureDetail
VolatilityExchange rate shifts between contracts based on deterministic market simulation
ConversionConvert crypto to credits at current rate via wallet convert
Risk/rewardHolding crypto can yield higher returns — or losses — compared to immediate conversion
Black marketSome Undermarket items are crypto-only, bypassing the standard economy
LaunderingLarge 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.

CLI: aws

Bastion Platform

Enterprise-focused. Active Directory integration, managed databases, compliance controls.

CLI: az

Cirrus Systems

Developer-friendly. Container orchestration, CI/CD pipelines, ML infrastructure.

CLI: gcloud

Software 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.

Tool verification. Every cloud command checks that the required tool is installed. Attempting aws s3 ls without installing the AWS CLI returns an error, not a silent failure — just like the real world.

$ Web Application Attacks

Full OWASP Top 10 attack surface simulation. Every web application on a target host is modeled with routes, parameters, and vulnerability types. A configurable WAF (Web Application Firewall) tracks failed injection attempts and blocks attackers who trigger too many alerts.

Attack Surface Model

ComponentDescription
Web AppsEach host can run multiple web applications with distinct frameworks, versions, and route sets
RoutesPaths with HTTP methods and parameters — some injectable, some not
WAF DetectionFailed injection attempts accumulate; cross the threshold and the WAF blocks all requests for configurable ticks
Vulnerability TypesSQLi, XSS, SSRF, RFI, XXE, Template Injection — each with distinct exploitation mechanics

Workflow

nikto / gobuster → discover routes and params → sqlmap / burp fuzz → exploit injectable params → extract data or pivot. Each step generates heat (NETWORK dimension). Stealth flags and tool bonuses modify success chances.

8 new CVEs (ZD-2025-0003 through ZD-2025-0010) model web vulnerabilities across multiple fictional services. Each CVE has distinct affected versions, severity, and CVSS scores.

$ Privilege Escalation

Misconfiguration-based privilege escalation — the most common real-world attack vector after initial access. Hosts now have privesc vectors: SUID binaries, sudo rules, writable cron jobs, and interesting file paths.

GTFOBins Database

12 binary entries (nmap, find, vim, python3, perl, less, awk, env, bash, cp, tar, wget) with SUID and sudo exploitation methods. Each entry specifies the command sequence for shell escape.

Vectors

VectorToolMechanic
SUID Binarieslinpeas + find -perm -4000Discover SUID bit on GTFOBins-listed binary → shell escape → root
Sudo Rulessudo -l + manual exploitList NOPASSWD sudo rules → GTFOBins lookup → escalate
Cron Jobscrontab -l + crontab -eIdentify world-writable cron script → inject payload → wait for execution
Writable PathslinpeasSystemd units, init scripts, LD_PRELOAD paths — write payloads to run as root

$ Supply Chain Attacks

Package registry simulation with full dependency trees, integrity checking, and social engineering. Registries live at the topology level (shared infrastructure, not per-host), supporting npm, PyPI, RubyGems, and Cargo ecosystems.

Attack Vectors

AttackToolMechanic
Typosquattingnpm publish / pipCreate a package with edit-distance ≤2 from a popular name. Detection chance scales inversely with distance.
Dependency Confusionnpm publishPublish a higher-version internal package name to the public registry
Integrity Bypassnpm auditMD5 checksums are weak — 30% bypass chance. SHA-256 checksums cannot be bypassed.
CI Pipeline InjectionContractsExploit pull_request_target workflows to exfiltrate secrets from CI runners

Blast Radius

Every supply chain attack computes a blast radius score (0–100) based on direct dependents, transitive dependents, and weekly downloads. Higher blast radius means higher payout — and higher heat.

$ PKI & Encryption Infrastructure

Deep TLS/SSL simulation. Every service can have a TLS configuration with protocol version, cipher suite, key strength, HSTS, and certificate chain. The system grades each configuration A through F, matching real-world assessment methodology.

Grading Criteria

GradeRequirements
ATLSv1.2+, 2048-bit+ RSA, strong ciphers only, HSTS enabled
BTLSv1.2+, 2048-bit+ RSA, no broken ciphers
CTLSv1.0+, 1024-bit+ RSA
DBroken ciphers or weak keys
FSSLv3 or below, self-signed certificate

Attack Chain

sslscan → identify weak TLS config → sslstrip (if no HSTS) or MITM via weak protocol → intercept credentials or forge certificates. MITM requires same-subnet positioning. Certificate forging requires stolen CA key material and works only against weak (512-bit) RSA keys.

6 new CVEs (ZD-2025-0021 through ZD-2025-0026) model cryptographic weaknesses from BEAST and Heartbleed analogues to SSL stripping and weak RSA factorization.

$ 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

FeatureDescription
Command chainingExecute multiple commands in sequence with conditional logic
VariablesStore and reuse values: IPs, ports, credentials, file paths
LoopsIterate over host lists, port ranges, or wordlists
ConditionalsBranch on command success/failure, heat thresholds, or output parsing
FunctionsDefine reusable procedures for common attack patterns
Heredoc supportMulti-line string literals for complex payloads
Scripts cost ticks and generate heat. Each command in a script still consumes ticks and generates heat individually. Scripts automate your workflow, not your consequences. A script that runs 20 scan commands generates 20× the heat.

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

StepInstructorStudent
1Opens Proctor Dashboard, gets a room codeEnters the room code to join
2Selects a scenario and configures forced OS / tier / hardwareSees roster confirmation
3Pushes scenario and starts the assessmentReceives objectives and time limit
4Monitors live command feed and student progressWorks through objectives in-game
5Ends assessment and reviews graded resultsSees their grade breakdown

Assessment Scenarios

Six built-in scenarios cover core cybersecurity skills. Each defines objectives, time limits, and grading weight distribution.

ScenarioDifficultyTimeFocus
Reconnaissance FundamentalsBeginner10 minNetwork scanning and host enumeration
Network Topology MappingBeginner10 minSubnet scanning, DNS, route tracing
Complete Penetration TestIntermediate20 minFull pentest cycle: recon → exploit → exfil → cleanup
Password Cracking LabIntermediate15 minOffline and online cracking techniques (GPU-2 provided)
Incident Response AnalysisIntermediate15 minForensic investigation of a compromised host
Stealth OperationsAdvanced15 minComplete a contract with heat below 20

4-Axis Grading

Every assessment is graded on four dimensions, each weighted per scenario:

AxisMeasuresHow It's Scored
MethodologyDid the student follow the correct phase order?Recon → Enum → Exploit → Post-Exploit → Cleanup. Bonus for proper sequencing.
StealthHow much noise did they generate?Peak heat thresholds: ≤20 excellent, ≤50 good, ≤80 fair, >80 poor.
EfficiencyDid they avoid unnecessary or redundant commands?Repeated commands within the same phase are penalized.
CompletenessHow 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

FeatureDescription
Force OSLock all students to a specific operating system
Force TierLock students to T1 Script Kiddie, T2 Operator, or T3 APT
Force HardwarePresets: Default (all T1), Standard (all T2), Full (all T3), GPU Focus (GPU-3 only)
Live FeedReal-time stream of every command every student executes
Package ModeSequence multiple scenarios into a single assessment session
Export ResultsSimple, Standard, or Complete report formats
Security. All proctor communication is authenticated with HMAC chains and room codes. Student commands are cryptographically chained to detect tampering — any break in the chain triggers a tamper alert on the instructor dashboard.

$ 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.

ParameterBase GameNG+
Heat multiplier1.0×Configurable (default 1.5×)
Contract payout1.0×Configurable (default 1.25×)
Detection sensitivityNormalElevated
Hardware carry-over—Full rig retained
Tuning knobs. All NG+ parameters are data-driven and externalized to config. Modders can create custom NG+ profiles with different difficulty curves.

$ Accessibility

ZERO DAY is a text-heavy game — accessibility is not an afterthought. The following features are built in from day one:

FeatureDescription
Screen Reader (TTS)Full text-to-speech support via the system TTS engine. All terminal output, menus, and status information is readable.
Colorblind ModesThree correction matrices: protanopia, deuteranopia, and tritanopia. Applied as a post-process filter over the CRT shader.
High ContrastEnhanced contrast mode that increases text/background separation across all OS palettes.
Font ScalingAdjustable font size that scales all terminal text. Minimum size ensures readability at Steam Deck’s 1280×800.
Keyboard NavigationAll 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.

LanguageCodeStatus
EnglishenComplete (source language)
SpanishesComplete
FrenchfrComplete
GermandeComplete
JapanesejaComplete
Chinese (Simplified)zhComplete
Diegetic text stays untranslated. The boot sequence, command names, and terminal prompts are intentionally English-only — they’re part of the in-world operating system, not player-facing UI. The game title “ZERO DAY” is also untranslated across all locales.

$ 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.

Won't do: Targeted harassment, ransomware, identity theft

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.

Won't do: Target individuals, critical infrastructure

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.

Won't do: Target civilian infrastructure, sell zero-days

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.

Won't do: Broker weapons-grade material

$ 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)
YearEvent
2025–28Major cloud providers merge into three mega-platforms. Independent hosting becomes unviable.
2028The DISA (Digital Infrastructure Security Act) passes. Mandatory backdoors in all commercial encryption.
2029LinuxForge v1.0 — first OS designed to operate outside DISA compliance.
2030PhantomBSD appears. Origin unknown. Paranoid security model.
Era 2 — Factions (2031–2034)
YearEvent
2031The Kestrel Leak — massive corporate-government surveillance dump. Signal Collective emerges.
2032Meridian Group incorporates. Cold Iron follows within months.
2033Undermarket launches the BBS board. SpecterOS appears.
2034The First Ghost: delphic vanishes mid-operation. No body, no arrest, no trace.
Era 3 — Protocol Zero (2035–2039)
Narrative Spoilers

The following reveals central narrative mysteries. Play the game first.

$ 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.

Addon directory. All addons live in 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:

OperationWhat It DoesRisk
addIntroduces entirely new content (commands, contracts, factions, etc.)Low — no conflicts
extendPatches specific fields of existing content (add flags, rivals, etc.)Medium — depends on target
overrideFully replaces existing content with your versionHigh — first override wins

Load Order & Priority

  1. Core game content loads first. This is the baseline.
  2. Addon extensions apply in load_order sequence (lower numbers first).
  3. First override wins. If two addons override the same content, the lower load_order takes 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/"
  }
}
Dependencies. If your addon depends on another, list its 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
      }
    }
  ]
}
Prefix validation. The addon loader rejects any CVE entry whose 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

FieldTypeRequiredDescription
idstringYesUnique track identifier (snake_case)
display_namestringYesHuman-readable name shown in settings
reverb_tailfloatNoReverb tail in seconds (default 5.0)
modestringNo"intensities" (default), "loop30", or "loop60"
layersobjectConditionalRequired for "intensities" mode (see below)
filestringConditionalRequired 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:

LayerRequiredWhen It Plays
mainYesAlways audible — the base drone
intensity_1NoFades in at TENSE mood (falls back to main)
intensity_2NoFades 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"
  }
]
Audio formats. Supported: .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 TypeAddExtendOverrideNotes
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

ZERO DAY — A hacking simulation by Sojo

106 commands · 45 contracts · 6 operating systems · 18 hardware components · 6 languages · 11 moddable content types