In this update2
Full notes
Full Blackdoor update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
- Server
- Gameplay
- Store
- Fixes
Blackdoor changes
Features
#lounge -> Discord relay - messages sent in the in-game #lounge IRC channel now appear in the Blackdoor Discord server in real time. One-way for now (Discord -> game coming later).
network list - lists every server you have ever cracked, even if you have since removed it from the network graph. Use store to re-add one.
graybrd has been busy - a new server has appeared on the network. No further details.
marvelous joins #lounge - new community NPC. Tinkerer. Very into scripting. Already found an infinite loop bypass. Welcome.
Online player count - the IRC pane header shows how many players are currently in #lounge.
New #lounge chatter - a few new conversation threads from the community Discord.
ProxyChain rework (full game only) - bounce() has been replaced with pivot(conn). Pass an active authenticated connection and pivot() establishes a relay through that server and drops the connection - future traffic routes through it. Chain multiple hops by calling pivot() again on the next box. pivot_clear() wipes the chain. The CLI pivot clear command does the same from the terminal. Right-clicking any IP in the network pane now shows Add to pivot chain / Remove from pivot chain when ProxyChain is purchased.
Bug Fixes
local_crack() didn't authenticate on already-cracked users - if you called local_crack() on a user that had already been cracked, it returned success but didn't log you in. Subsequent filesystem calls would fail with an auth error. Fixed.
crack() now writes to ~/.ssh/credentials and ~/.ssh/known_hosts - previously only the terminal SSH command stored credentials after a successful crack. The crack() API now does the same, so scripts that crack a box will automatically populate your credentials and known_hosts files - no manual bookkeeping needed.
connect() now accepts ~/.ssh/known_hosts as third argument - if the target server's IP is listed in your known_hosts file and the user has already been cracked, connect() will authenticate in the same call. Pairs naturally with the above: crack a box once, and future scripts can reconnect with just connect("root@host", 22, "~/.ssh/known_hosts").
In-game browser IP navigation - clicking an IP address link in a website now loads that server in the browser correctly. Previously it was treated as a relative path and appended to the current URL.
Browser history preserved across server hops - navigating to a different server via a link no longer clears your browser history. Back still works.
Extensionless browser links now resolve correctly - links without a file extension now try.html before falling back to /index.html, matching standard web server behaviour.
Pivot chain now requires a cracked server - right-clicking "Add to pivot chain" on a server you haven't cracked now shows an error instead of silently adding it. Adding to the chain is also blocked while a trace is active.
Backspace triggered browser back while typing in IRC - pressing backspace in the IRC input would navigate the browser backwards instead of deleting a character. Fixed.
Script errors left trace timer running - if a script errored out after calling connect(), the connection was never cleaned up and the trace timer kept ticking in the background. Fixed.
Escape in the editor now dismisses autocomplete first - pressing Escape while the autocomplete popup was open would skip past it and trigger the editor exit warning. Escape now closes the popup first; a second press shows the unsaved changes warning, and a third exits. The warning also flashes the header bar red so it's harder to miss.
print() now suggests log() - calling print() in a script now gives "Did you mean 'log'?" in the error rather than just "not a function".
/help command in IRC - typing /help in any IRC channel now lists the available IRC slash commands.
Mission 00 (The Interview) softlock - probing after cracking (without probing first) now correctly triggers objective completion. Also fixed a separate issue where loading a save mid-mission could leave objectives permanently stuck and the mission unfinishable.
Static
Source
Changelog.gg summarizes and formats this update. How we read updates.
