Skip to content

Hacking & Breach Targets ​

Command Prompt is a real-feeling cmd.exe (dir, ipconfig, systeminfo, ping, tasklist, whoami and more) and the way into ten hacking minigames: free practice runs, and breach targets you configure, which pay their rewards from the server.

Command Prompt listing the hacking programs after typing hack

Commands ​

CommandWhat it does
hackLists the programs
hack <program> [easy|medium|hard]A practice run. Logged to the computer's System Logs, no reward
targetsThe hosts reachable from this computer, with their stages, status and item requirement
breach <command>Every stage of a target, in order. The server pays the reward

The Minigames ​

KeyProgramGame
mazenet-maze.exeNetwork Maze
capturenode-grab.exeNode Capture
ciphercipher-lock.exeCipher Lock
snakedata-worm.exeData Worm
firewallfw-defense.exeFirewall Defense
evasionhighway-evade.exeHighway Evasion
typingcode-inject.exeCode Injection
signalsig-replay.exeSignal Replay
pipepipe-route.exePacket Routing
breakoutice-break.exeICE Breaker

Each has an easy, medium and hard preset in configs/shared/hacks.lua (maze size, time limits, lives, speeds). medium is every game's tuned default. Removing a game from Games hides it from practice and from the StartHack export. Practice = false leaves only the real targets.

In your own robberies and heists

The same minigames can be put in front of any door, vault or terminal from your own scripts, with no computer, and with a result the server has verified. See Hacks in Your Scripts.

Breach Targets ​

configs/server/targets.lua (server only: the rewards never reach a client)

A target is something a player breaches from Command Prompt: a set of minigames to beat in order, on the computers you choose, for a reward the server pays after the last one.

lua
{
    id = 'fleeca_ledger',
    computers = { 'public_pc' },
    command = 'fleeca-ledger',
    label = 'Fleeca Bank - branch ledger relay',
    hidden = false,
    steps = {
        { game = 'pipe', difficulty = 'medium' },
        { game = 'typing', difficulty = 'medium' },
    },
    requires = { item = 'trojan_usb', count = 1, consume = true },
    cooldown = 1800,
    failCooldown = 90,
    exclusive = true,
    alert = {
        chance = 50, onFail = true,
        title = 'Bank Network Intrusion', code = '10-90',
        message = 'Fleeca reports an unauthorised ledger transfer traced to a public terminal',
        jobs = { 'police' },
    },
    reward = {
        money = { type = 'cash', amount = 750 },
    },
},
FieldDescription
idUnique. Keys the cooldown and the System Logs entries
computersComputer ids it can be reached from. A model computer's id covers every prop of it
commandWhat the player types after breach (lower case, no spaces)
labelShown by targets and in the logs
hiddentrue = targets does not list it: you have to know the command (sell it as intel)
stepsThe minigames, in order: { game, difficulty }
requiresOptional { item, count, consume } the player must carry to start
groupsOptional job or gang allow-list of who may run it
cooldownSeconds the target is locked after a successful breach, for everyone
failCooldownSeconds one player waits after failing before trying again
exclusivetrue = only one player can be mid-breach on it at a time
alertOptional police alert: { chance, onFail, title, message, code, jobs }. Rolls chance (0 - 100) when the breach starts; onFail = true rolls again if it fails. Sent from the hacker's position
rewardPaid by the server on success, any combination of the four below
RewardDescription
items{ { name, count, metadata? } }
money{ type = 'cash' | 'bank', amount }
mail{ from = { name, email }, subject, body }, sent to every address the hacker is signed into. Nothing arrives if they are signed into none, so tell them to sign in
eventA server event of yours: TriggerEvent(event, src, info) with info = { target, computer, instance }

Every successful breach also fires sd-computers:server:breachCompleted.

Put valuable targets on location computers

A location computer's position is known to the server, so it checks the player is really there. A model computer's prop is not networked: its position comes from the player's client. That is fine for public PCs, but put high-value targets on location computers.

Walking away mid-breach, or closing Command Prompt between steps, counts as a failed breach.

Anti-Cheat ​

A hack win is never trusted. The minigames come from sd-deaddrop, with the same server-side checks:

  • The server starts every run, and for maze, pipe, typing and signal it generates the puzzle itself.
  • Every milestone must be reported, in order, at a human pace.
  • Nothing faster than the difficulty's minimum play time is accepted. The floors are worked out from the same preset numbers, so a harder preset is also a longer proof of play.
  • Only then does the server pay out.

The tuning is in configs/server/hacks.lua (see Configuration > Hacking). Step by step, a run is verified as Hacks in Your Scripts > How a Win Is Verified describes.