No description
  • Python 99.7%
  • Shell 0.1%
  • Dockerfile 0.1%
  • Makefile 0.1%
Find a file
Joshua Renker b73137322f feat: add Docker support
Dockerfile, docker-compose.yml, and entrypoint.sh to run The Hollow in
a container. Exposes telnet (4000), web (4001), and WebSocket (4002).
Bind-mounts ./game so the SQLite DB persists on the host. Picks up
ANTHROPIC_API_KEY from .env via env_file.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 12:16:53 -04:00
game feat: quest objective tracking, decay fix, and review polish 2026-06-14 10:23:27 -04:00
.gitignore feat: add Docker support 2026-06-15 12:16:53 -04:00
docker-compose.yml feat: add Docker support 2026-06-15 12:16:53 -04:00
Dockerfile feat: add Docker support 2026-06-15 12:16:53 -04:00
entrypoint.sh feat: add Docker support 2026-06-15 12:16:53 -04:00
Makefile fix: wire up floor hazard, NPC factions, quest/social contact messages 2026-06-13 19:26:50 -04:00
README.md docs: add player README with full game reference 2026-06-11 12:44:54 -04:00
requirements.txt feat: add Docker support 2026-06-15 12:16:53 -04:00

The Hollow

A cyberpunk MUD set in the cracks of a surveillance state. You are an off-grid operative surviving on the margins — taking jobs, building contacts, staying below the radar, and deciding how far you'll go.

Built on Evennia.


Connecting

MUD client (recommended): connect to localhost, port 4000

Web client: open http://localhost:4001 in a browser

At the login screen:

create <username> <password>    — new account
connect <username> <password>   — existing account

Character Creation

On first login you'll be walked through character creation. You choose a background and a role. These are permanent.

Backgrounds

Background Bonus Attributes Starting Focus
Corporate Defector INT, PRE Research, deception, electronics
Agency Burnout PER, WIL Firearms, surveillance, composure
Syndicate Exile CUN, AGI Streetwise, deception, melee
Underground Native AGI, END Stealth, streetwise, evasion
Escaped Experiment STR, END Athletics, toughness; mandatory augmentation
Idealist PRE, INT Persuasion, research, read person

Roles

Your role defines your edge — a passive ability that operates without a roll.

Role Edge Effect
Ghost Vanish Once per scene, disengage from pursuit without a check if any cover exists
Operator Combat Composure Never suffer injury penalties at the Hurt tier; Wounded gives only -1
Netrunner Cold Entry Hack unsecured or lightly secured networks with no special equipment
Fixer The Network Start with one extra contact beyond your background contact
Tech Field Strip Repair or jury-rig equipment with improvised materials
Medic Stabilize Bring a downed character back to functional in 60 seconds, no equipment needed

Core Mechanic

All checks use the same system:

2d10 + Attribute + Skill Rank  vs  Difficulty
Margin Result
+6 or more Critical Success — exceptional outcome, possible bonus effect
+3 to +5 Clean Success
0 to +2 Marginal Success — you succeed, but with a complication or cost
-1 to -4 Failure
-5 or worse Critical Failure — something goes wrong beyond just failing

Difficulty Levels

Name Target
Routine 10
Challenging 14
Hard 18
Severe 22
Extreme 26
Legendary 30

To roll a check manually: check <skill> or check <skill> <difficulty>


Attributes

Nine base attributes, rated 18 (default 3, augmented cap varies).

Attr Governs
STR Melee combat, raw physical force
AGI Speed, evasion, stealth, fine motor skills
END Endurance, HP, toxin resistance
INT Hacking, research, languages
PER Firearms, surveillance, streetwise
WIL Composure, mental resistance
PRE Persuasion, command, intimidation
CUN Deception, negotiation, reading people
TEC Hardware, electronics, weapons modding, fabrication, medicine
AUG Set by augmentations, not training

HP = END × 5. Raise an attribute with train attr <ATTR> (costs 15 XP; cap 8 unaugmented).


Skills

Skills are ranked 04: Untrained → Novice → Trained → Expert → Master.

Each skill is governed by an attribute. You roll 2d10 + governing attribute + skill rank.

Skill Attr Use
Melee STR Unarmed and blade attacks
Athletics AGI Running, climbing, physical feats
Stealth AGI Moving unseen, hiding
Evasion AGI Passive defense against attacks
Sleight of Hand AGI Picking pockets, concealment
Piloting AGI Vehicles
Toughness END Shrug off fatigue and minor wounds
Detox END Resist toxins and chemicals
Hacking INT Breaching digital systems
Research INT Finding information
Languages INT Communication across language barriers
Firearms PER Ranged combat
Surveillance PER Observing and tracking
Streetwise PER Reading the street, knowing who's who
Composure WIL Keeping it together under pressure
Resist WIL Withstand coercion and manipulation
Persuasion PRE Charm and reasoned argument
Command PRE Directing others, taking charge
Intimidation PRE Fear-based compliance
Deception CUN Lying, misdirection, bluffing
Read Person CUN Reading intent and emotional state
Negotiation CUN Deal-making
Hardware TEC Physical device construction and repair
Electronics TEC Circuit-level work
Weapons Mod TEC Modifying and upgrading weapons
Fabrication TEC Building things from parts
Medtech TEC Medical treatment

Raise a skill with train <skill> (XP cost scales with current rank).

XP Costs

Rank Increase Cost
Untrained → Novice 2 XP
Novice → Trained 4 XP
Trained → Expert 6 XP
Expert → Master 10 XP
Attribute +1 15 XP

Injury

HP loss moves you through injury states. Injury penalizes all checks.

State HP % Check Penalty
Full 100%
Hurt 7699% 1
Wounded 5175% 2
Critical 2650% 3
Down 125% Cannot act
Dead 0%

Operators ignore the Hurt penalty and take only -1 at Wounded.

Recover HP by finding a medtech NPC (heal) or treating yourself if you have the medtech skill (heal self).


Combat

attack <target>        — one combat round: you strike, then target counter-strikes
hit <target>           — alias
fight <target>         — alias

flee                   — escape to a random exit (Athletics or Stealth check, difficulty 14)
flee <direction>       — flee toward a specific exit

How attacks work: Roll 2d10 + STR + melee rank (melee) or PER + firearms rank (ranged) vs the target's passive defense (AGI + evasion). Hitting deals weapon damage + STR bonus (melee). A margin of 6+ is a critical hit (+3 damage).

Weapon condition matters: worn weapons give -1 to attack rolls; damaged give -2.

Fighting in surveilled areas raises your profile.


Hacking

terminals              — list hackable systems in the current room
jacks / devices        — aliases

hack <target>          — attempt to breach a system (INT + hacking)
hack <target> quietly  — stealth breach (adds half your stealth rank as bonus)
breach / jack          — aliases

Success extracts data, scrip, or access. Failure raises your profile and logs the intrusion. Two failed attempts locks the system.


Social

talk <npc>                 — open conversation
talk <npc> about <topic>   — directed conversation
talk <npc> = <what you say> — say something specific

persuade <npc>             — PRE + persuasion vs NPC WIL + 10
persuade <npc> = <words>

intimidate <npc>           — PRE + intimidation vs NPC END + 10
deceive <npc>              — CUN + deception vs NPC PER + 10

Social checks shift NPC disposition (hostile → suspicious → neutral → friendly → loyal). Failure shifts disposition in the wrong direction — they noticed you trying. Strong successes also improve the contact relationship level.


Inventory & Economy

inventory / i / inv    — list what you're carrying
equip <weapon>         — equip a weapon from inventory
equip none             — go unarmed

buy                    — browse vendor stock in the current room
buy <item>             — purchase an item
sell <item>            — sell to a vendor (4060% of item value, condition-adjusted)

use <consumable>       — use a stim, medpack, etc.
read <document>        — read a document or data shard

Currency is scrip. Item condition (pristine / good / worn / damaged / broken) affects performance and resale value.


Quests & Jobs

quests / quest / jobs      — view active and completed jobs
quests <number>            — detail on a specific active job
quests generate            — ask the AI for a new job based on your situation
complete <number>          — turn in a completed job and collect reward
abandon <number>           — drop an active job

board                      — anonymous job board (lower pay, no introduction needed)
board refresh              — pull a new board posting

Completing jobs earns XP and scrip, and improves your Underground faction standing.


Profile

Profile tracks how visible you are to the surveillance apparatus. It ranges 05.

Level Label
0 Ghost
1 Blip
2 Pattern
3 Target
4 Priority
5 Burned

Profile rises from violence and hacking in surveilled areas. It decays naturally over time offline — roughly 1 step per 48 hours disconnected. Stay below the radar.


Factions

Your actions accumulate standing with five factions (-2 Hostile to +2 Allied).

Faction Description Default
The Underground Safe houses, docs, fixers, off-grid vendors Neutral
City Authority State enforcement, surveillance apparatus Suspicious
The Syndicate Organized crime, black market upper tier Neutral
Corporate Interests Megacorp security and information assets Suspicious
Free Agents Informal collective of grid-exit people Friendly

View faction standings via status or journal notes.


Information Commands

status / sheet / stats     — your character sheet
check <skill> [difficulty] — roll a skill check
roll <skill>               — alias

journal                    — active jobs, contacts, recent events
journal events             — full event log
journal notes              — completed jobs and faction standings

contacts                   — your tracked NPC relationships
contact <name>             — detail on a specific contact

who                        — currently connected players

Augmentations

Augmentations are chosen during character creation (Escaped Experiment backgrounds get one free). They provide passive attribute bonuses or special capabilities:

Augmentation Type Effect
Neural Interface Cybernetic +1 INT; improved hacking
Reflex Booster Cybernetic +1 AGI; evasion and initiative
Subdermal Plating Cybernetic Reduce all physical damage by 1
Enhanced Optics Cybernetic +1 PER; low-light vision, zoom
Hidden Compartment Cybernetic Concealed storage (bypasses standard scans)
Comms Implant Cybernetic Internal encrypted communicator
Enhanced Senses Genetic +1 PER; extended scent and hearing range
Adrenaline Regulation Genetic Manual control of adrenaline response
Pheromone Glands Genetic +1 PRE in close proximity
Toxin Immunity Genetic +2 END vs a chosen toxin class

Quick Reference

look                   — describe current location
north / south / east / west / up / down   — move
go <exit>              — use a named exit

say <message>          — speak aloud
pose <action>          — emote

help                   — general help
help <command>         — help for a specific command