In this update6
Full notes
Full Blackdoor update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
- Gameplay
- Server
- Store
- UI and audio
- Fixes
Blackdoor changes
Community patch - new NPCs, new scripting tools, QoL, and bug fixes. Thanks to 2dPrinter, Aluvard, _xp_, ItsGime, and delta for the repors.
New Community NPCs
Three new regulars have joined #lounge: 2dprinter, delta, and vince_kully. They show up in ambient chat, respond to events, and have /whois entries. 2dprinter is also lurking somewhere on the shop server.
New - PatternKit ($400)
Four new scripting functions for extracting structured data from file content. Available in the shop once you're past Act 1.
extract_ips(text) - returns every IPv4 address found in the text
extract_emails(text) - returns email addresses
extract_urls(text) - returns http/https URLs
extract_credentials(text) - returns password/key/token patterns from config files and logs
All four take a string (e.g. the output of read_file()) and return a list. No connection required, no noise generated. The functions appear in the editor reference panel once purchased.
New - Bypass Source ($650)
Low-level firewall primitives. See how bypass_firewall() works. Unlocks probe_layer() and chip_layer() and delivers the source to ~/scripts/sdk/bypass.bd.
New - wget / curl
Download files from web servers directly to ~/downloads/ without opening the browser. Same access rules as browsing - if you can browse it, you can wget it; 403 pages block wget too. No noise, no trace. Works from the terminal or inside scripts.
QoL
shop promo - enter a promo code from the terminal or via?promo=CODE in the browser URL. Applies a discount to your next purchase
Shop items now show [owned] - buy links are replaced with an owned indicator for items you've already purchased, in both the terminal and the browser
Workshop: Random server - a [Random] button in the server template picker generates a random archetype with randomised hostname, IP, and details
/msg - open a DM channel with any IRC handle directly from the input bar
IRC channel cycling - Alt+Left / Alt+Right steps through IRC channels when the IRC pane is focused. Channels that don't fit in the tab bar are accessible via a [+N] overflow picker (now scrollable)
New scripting string methods - contains(sub), lower(), upper() added to the BD language
Scripting: dynamic import - import(variable) now works. import(lib) as u alias form also supported
/whois threadbare - threadbare now has a whois entry. All mission contacts are findable this way
Bug Fixes
Threadbare's mission could be permanently lost - if you saved between receiving the threadbare DM and the mission auto-accepting (a ~4 second window), the mission vanished and couldn't be recovered. Fixed. If your save was in this state, loading it will restore the mission automatically
Drop-box disappeared from network after forget - using forget on the drop-box IP removed it permanently. Reconnecting now restores it to the network tab. Thanks Aluvard
/msg accepted any handle - /msg would open a DM channel with whatever you typed, even nonsense handles. It now validates against known users first
Cracker showed password before completing - result.hint was revealing the full password while result.success was still false, so scripts looping on!result.success would show the answer before the crack finished. Fixed. Thanks _xp_
Scripts with syntax errors silently failed - running a script with a parse or syntax error produced no output; the shell just returned silently. The error now prints in the terminal. Thanks delta
Imported scripts couldn't import other scripts - transitive imports failed silently; a module that used import internally would always error with "Cannot find module". Fixed
rm didn't handle relative paths - rm ../file or any path with.. segments would fail to resolve correctly. Fixed
Credentials stopped being saved after editing the file - opening ~/.ssh/credentials in the editor and saving it would cause all subsequent logins to stop being recorded. Fixed. Thanks ItsGime
- Scriptingobject literals - var x = {key: "value", n: 42} - parser bug, now fixed
Static
Source
Changelog.gg summarizes and formats this update. How we read updates.
