Bitburner cover
Bitburner screenshot
Linux PC Mac Steam
Genre: Puzzle, Simulator

Bitburner

2.4.1 Update

## v2.4.1 Update (8/26/23)

### FEATURE ADDITIONS:

- Added "Enable terminal history search with arrow keys" option in Misc options category, inspired by similar functionality in shells like zsh. (@ficocelliguy)

### BUGFIX:

- Fixed a bug where buying NeuroFlux Governor would buy one less level than expected (@zerbosh)
- Fixed an issue that could cause the Coding Contract UI to become unreachable (@myCatsName)
- Infiltration: Knowledge of Apollo aug no longer highlights the incorrect wires (@Snarling)

### CODEBASE / DOCS / MISC:

- Added a new theme "zerenity" (@Zelow79)
- Reorganize game constants (@zerbosh)
- Reorganize ingame documentation folder structure, simplify documentation bundling (@Snarling)
- IP Address coding contract accepts single-quoted entries (@myCatsName)
- Updated an outdated message on ns.killall logs (@myCatsName)
- Updated documentation for ns.share and ns.getSharePower (@myCatsName)
- Removed functions (like ns.getServerRam) are no longer shown when enumerating ns entries. (@Snarling)
- Removed more references to ReadTheDocs that remained after 2.4.0 (@hydroflame)
- Fixed some typos/spacing (@myCatsName)
- Fixed an issue with incorrect React keys in active scripts page (@zornlemma)

### API CHANGES (NON-SPOILER)

- Added ns.stock.getConstants (@Snarling)
- Added ownedAugs and ownedSF properties to return data of ns.getResetInfo (@Snarling)

### API CHANGES (SPOILERS):

- Added ns.singularity.getAugmentationFactions to provide a list of factions that have a given augmentation (@myCatsName)
- ns.corporation.getConstants now has a ram cost of 0 (@Snarling)

### OTHER CHANGES (SPOILERS):

- Successes for next level is now accurate in the UI for Bladeburner operations (@myCatsName)
- ns.sleeve.setToFactionWork no longer allows working for factions the player has not joined (@Snarling)

v2.4.0

readthedoc documentation is now in-game.

v2.3.1 Bugfixes 7 June 2023

2.3.0 release came with a lot of bugs, so we're short-cycling the 2.3.1 release to get a large number of bugfixes out. There are also a few feature changes, see the full changelog below:

NETSCRIPT:

* Added ns.setTitle, which sets the titlebar of a script's tail window (@d0sboots)
* Added ns.getFunctionRamCost, which gets the ramcost of a netscript function (@G4mingJon4s)
* ns.ls results will filter as if the filenames have a leading slash (@Snarling)

GENERAL / MISC:

* Changed tail window buttons into icon buttons, allow setting custom title, and tail window bugfixes. (@d0sboots)
* Terminal no longer scrolls to the bottom constantly while an action is being performed (@bezrodnov)
* Added a close button to modals (@bezrodnov)
* Fixed several issues with script editor tabs (@bezrodnov)
* scp terminal command can copy multiple files at once, like help text indicates (@Snarling)
* Root directory is no longer displayed as ~ in the terminal prompt, it is displayed as / (@Snarling)
* cd with no arguments will change to the root directory (@Snarling)
* Documentation updates (various)
* Nerf noodle bar

HOTFIXES (these were already backported to 2.3.0 before 2.3.1 release):

* Several important fixes for savegame migration issues from older version (@d0sboots)
* Prevent scripts from loading during intial migration to 2.3.0 save format, to prevent a crash that could occur. (@Snarling)
* Fix scp logging (hostname was being logged incorrectly in multiple places and showing as [Object object]) (@Snarling)
* Update terminal parsing logic so that the old syntax for alias works again. (@Snarling)
* Fix clickable script links from ls command not working outside root directory (@Snarling)
* Fix an issue with Find All Valid Math Expressions not accepting empty array when that was the solution. (@Snarling)
* Fix an issue with scan-analyze display when the player had AutoLink.exe (@Snarling)
* Reverted undocumented change that program filenames were case sensitive for ns.fileExists. They are case insensitive again. (@Snarling)
* An issue from pre-2.3 could cause scripts to have the wrong "server" property. This caused issues in 2.3, and a fix now repairs any scripts with a mismatched server property. (@Snarling)
* More fixes to help old savegames load correctly (@Snarling)
* Servers can no longer have infinite time-to-hack. (@Snarling)

SPOILER SECTIONS:

SF2:

* Overall gang respect gain rate now reads accurately, instead of showing ~10x. (@Snarling)

SF3:

* Added "maxProducts" property to ns.corporation.getDivision return value (@kateract)
* Fixed an issue with sell price parsing for materials (@zerbosh)
* Fixed display of market price for materials and products (@zerbosh)
* Fixes for Corp import/export issues, such as -IPROD and Smart Supply not working right (@d0sboots)
* Improvements to the max-affordable-upgrades calculation (@bezrodnov)
* Perform additional validation when setting up an export. Exports are now unique per targeted division+city. (@Snarling)
* ns.corporation.cancelExport no longer requires the exported amount (@Snarling)
* Fix NaN bug that could impact Robot material in Robotics division (@Snarling, @kateract)
* Can no longer commence product development in a city with no office (which would immediately error out the game loop) (@Snarling)
* (Hotfix) Fix issue that could lead to SF3 research desync. (@Snarling)
* (Hotfix) Fix SF3 "Spring Water" industry (@Snarling)

SF4:

* Fixed an issue that could cause singularity run-after-reset callback scripts to not launch correctly (@Snarling)

2.3.0 Hotfixes 29 May 2023

Sorry for the rocky launch folks! Hopefully this is the last set of hotfixes needed for the 2.3.0 main branch. Please continue to report any issues, thanks!


  • Several important fixes for savegame migration issues from older save versions. (@d0sboots)
  • Fix terminal parsing so that alias works with normal syntax again. (@Snarling)
  • Find All Valid Math Expressions now accepts empty array again when that is the solution. (@Snarling)
  • Initial 2.3.0 release made fileExists case sensitive for all filetypes, including programs (.exe). It's now back to case-insensitive for programs. (@Snarling)

Even more 2.3 hotfixes

Fixed some save migration issues.
Fixed an SF3 issue with "Spring Water" industry.

Thanks to everyone who has been submitting bug reports, and thanks everyone for your patience while we've been working through these issues!

More 2.3.0 hotfixes

* Fixed an error where multi-buying corporation upgrades was not applying a multi-benefit.
* Fixed ls clickable script links not opening the code correctly when ls was in a directory other than root
* Addressed an issue where a soft reset would not complete successfully due to runningScripts that were loaded onto the wrong server. We're still looking into what allowed for the invalid runningScript server data in the first place.
* Fixed the help text for alias to provide a new command format that works for assigning aliases with spaces/semicolons.

2.3.0 hotfix 1

Fixes a potential crash when initially migrating the save to 2.3.0. Running scripts will not be loaded on the initial savegame migration - any scripts will need to be relaunched manually after the save migration.

2.3.0 Release

Version 2.3.0 is live on the main branch! Going forward, the development branch will also see more frequent updates. See the 2.3.0 changelog below. Please report any issues on github or on the #bug-report channel on discord.

v2.3.0 - SF3 rework and performance improvements (25 May 2023)
----------------------------------------------------------------

BREAKING CHANGES: These changes may require changes to your scripts.

* Major changes to the SF3 mechanic. See the related spoiler section below for more detailed info on the changes.
* The same script filename can now be ran multiple times with the same args. If running a script from another script (ns.run / ns.exec / etc), this limitation can be re-imposed with the preventDuplicates RunOption (see general section for info on RunOptions).
* The same .js script will now be the same js module whether the script was ran directly or used as an import. This means top-level variables (variables defined outside of any function) are shared across all instances of the script.
* The js module for a script will also be reused by any script that has the exact same compiled text, even if that script is on another server or has a different filename. This can lead to unexpected results when using top-level variables.
* Some properties removed from ns.getPlayer and added to a separate function ns.getResetInfo. These are still accessible from getPlayer but will produce a warning message the first time they are accessed per game session.
* hackAnalyzeThreads now returns -1, instead of 0, when no money can be hacked from the targeted server.
* ns.iKnowWhatImDoing has been removed, replaced by ns.tprintRaw for printing custom react content to the terminal (limited support).

PERFORMANCE:

* Minimize impact of unavoidable memory leak when modules are created, by reusing modules as much as possible (@d0sboots)
* Internal data structure changes (@d0sboots, @Snarling)
* Fix memory leak when initializing large number of netscript ports (@Snarling)
* Improve performance while on the Active Scripts page if many scripts are starting/ending. (@d0sboots)

NETSCRIPT GENERAL:

* Remove requirement for script args to be unique. This was also related to performance improvements. (@d0sboots)
* ns.hackAnalyzeThreads no longer indicates infinity any time a single thread would hack less than $1 (@Snarling)
* ns.renamePurchasedServer no longer crashes if player is connected to the server being renamed (@Snarling)
* ns.hackAnalyzeThreads now return -1 (instead of 0) if no money can be hacked from the targeted server. (@d0sboots)
* Fix a possible infinite atExit loop if a script killed itself. (@Snarling)
* Static timestamps of last resets can be obtained via ns.getResetInfo, replacing playtimeSinceLastX from ns.getPlayer (@G4mingJon4s)
* Improved support for printing react content directly to the terminal (ns.tprintRaw) or to a script log (ns.printRaw).
* Added RunOptions, which can optionally replace the "threads" argument for ns.run / ns.exec / ns.spawn. (@d0sboots)
* RunOptions.threads: Provide a thread count (since RunOptions can replace the threads argument)
* RunOptions.temporary: Prevents the script execution from being included in the save file.
* RunOptions.ramOverride: Provide a static ram cost for the script to override what is calculated by the game. Dynamic ram checking is still enforced.
* RunOptions.preventDuplicates: Fail to launch the script if the args are identical to a script already running.

GENERAL / MISC:

* Fixed a bug that could cause the overview skill bars to become desynced (@d0sboots)
* There is now an autoexec setting to specify a script on home to automatically run when loading the game. (@d0sboots)
* Monaco script editor updated to a newer version and has more config options available now. (@Snarling)
* Improve Electron's handling of external links (@Snarling)
* Improved support for ANSI color codes (@d0sboots)
* Improved consistency of file paths. Correct names for files no longer start with a / even if they are in a directory. (@Snarling)
* All Math Expressions contract no longer accepts wrong answers (@Snarling)
* Faction invites now trigger immediately when backdooring a server. (@Snarling)
* Fixed issue where duplicate programs could be created. (@Minzenkatze)
* UI improvements to create program page (@Minzenkatze)
* Fix inconsistency in skill xp to skill level conversion (@hydroflame)
* Updated blood donation counter to reflect number of confirmed blood donations. (@hydroflame)
* Minor improvements to ram calculation process (@Snarling)
* Improved terminal arguments detection (@Snarling)
* Improved display for ls terminal command. (@Snarling)
* Added more internal tests and improved test quality (@d0sboots)
* Various codebase improvements (@Snarling, @d0sboots)
* Documentation improvements (Many contributors)
* Nerf noodle bar

SPOILER SECTIONS:

SF2:

* Corrected the "Next equipment unlock" text for member upgrades. (@LiamGeorge1999)

SF3:

* Many Corporation API changes, due to functionality changes and due to property name changes. See documentation for correct usage.
* Can now have multiple divisions within the same industry. (@Mughur)
* Can now sell a division or sell the entire corporation. (@Mughur)
* Product quality now depends on material quality (@Mughur)
* Product price can be set separately per-city (@Mughur)
* Exports can be set relative to inventory or production (@Mughur)
* ns.corporation.getProduct is city-specific (@Mughur)
* Bulk purchasing is available from the start (@Mughur)
* Can buy multiple upgrades at a time, similar to hacknet node upgrades (@Mughur)
* Various UI changes (@Mughur)
* Removed happiness from employees (@Mughur)
* Coffee renamed to tea (@Mughur)
* Training position renamed to intern (@Mughur)
* More options for SmartSupply (@Mughur)
* Advertising nerf (@Mughur)
* Nerfed investors and reduced effectiveness of "fraud" (@Mughur)
* Fixed React errors, renamed most corp object properties (@Snarling)
* Various other changes (@Mughur, @Snarling)

SF4:

* Faction invites trigger immediately when running ns.singularity.getFactionInvitations (@Snarling)
* Added ns.singularity.getCompanyPositionInfo (@jeek)

SF6:

* Failing a contract or operation now consumes the action (@Zelow79)

SF9:

* The SF9.3 bonus is also given to the player when inside of BN9. (@Zelow79)
* Adjusted the SF1 bonus for hacknet costs (slight nerf), and raised the SF9 bonus to compensate. (@d0sboots)
* Added option to purchase company favor using hashes. (@jeek)

SF10:

* Sleeve shock recovery now scales with intelligence. (@Tyasuh)
* Sleeve kills during crimes count towards numPeopleKilled (@Zelow79)
* Fix a misspelled moneySourceTracker call for sleeves (@zerbosh)
* ns.sleeve.getTask return value now includes cyclesNeeded where applicable (@Snarling)
* Internal type refactoring on Sleeve Work. (@Snarling)

SF12:

* Fix inconsistency in how BN12 multipliers were calculated

SF13:

* Improve performance of Stanek's gift update cycle, and rework (buff) bonus time handling. (@Snarling)

v2.3.0 - Hydro is back baby!

v2.3.0 - Hydro is back baby!

** Scripting **
- Replaced NS2 with NS3, we're thrilled to move on from Javascript to Rust. Note that this will break existing scripts.
- ns.print and tprint now return randomly encrypted values.
- Added a ram cost to every JS reserved word to better simulate real world ram usage.

** World **
- Travel restricted due to covid concerns.

** Sleeves **
- Sleeves may now explode at random because of faulty firmware by VitaLife.
- Sleeves no longer contribute to karma.
- New Sleeve task added: Eat noodles.
- The IRS found about your sleeves will you will be taxes 9x more.
- Corrected typo: Sleeves now properly named Steves.

** UI **
- Terminal updated to Windows 10.
- The default font has been changed to Wingdings.
- The script editor has been removes in an effort to reduce the amount of buggy scripts.

** Gang **
- In an effort to reduce jealousy among factions, joining a faction while you have more than 3 factions will result in leaving a random faction.
- Due to social distancing, gangs are now known as groups.
- New equipment type for gangs: Fly Swatter to help reduce ever growing bug problems.

** BN **
- BN14 now available for our premium subscribers. Starting at $199/y but available for $198/y for a limited time.
- The NSA has found out about your sleeves, you can no longer have sleeves and be in BladeBurner at the same time.
- Hydroflame is working on BN14 and not his next game.

** Bug fixes **
- Fixed a bug that caused augmentation price to double in price instead of dividing by 2.
- Fixed a bug where grow added $1 per thread.
- Fixed a bug where the same script could be run more than once at the same time.

** Misc. **
- No animals were harmed in the making of this patch. OK, well, maybe one or two.
- Removed jump scare from BN12.433.
- Removed all illegal activities (including hacking, get a job or something).
- Removed Australia because its a government conspiracy.
- Removed keyboard support. Only touch screen is supported now.
- Bitburner would like to apologize to the great nation of Agrabah. We understand what we did wrong and we are sorry.
- The game is now double-rot13-encrypted to ensure secure transfer.
- All damage now reduces max hp instead of current
- The dev team has been overtaken by the french, all new content will be written in french
- Removed multiplayer
- In addition to blood donations youll now be able to donate more organs to Hydroflame.
- Bitburner now requires link to bank account and uses players real money.
- Due to DNS being broken we're relying on IP addresses only.
- Changed the default theme to light mode (other themes currently unavailable while we rework the theme system).
- Added Terabyteburner4000 inside Gigabyteburner3000.
- Reaching $ 1.8e308 now allows you to gain 1 IP which you can spend on upgrades, wait wrong game.
- Inflation has been added, aug prices will now passivelyrise.
- Following last year, Joe from Joes guns is now in prison and divorced.
- Buffed n00dles.
- Pretend I posted this 2023-04-01 your time.

v2.2.1

v2.2.1 Hotfixes
Hotfix / bugfix:
* (@d0sboots) Implemented a new API wrapping solution that prevents the need for binding functions to ns when placing
them in a new variable, but maintains and perhaps improves upon the performance gains from the previous v2.2.0
changes.
* Fixed some issues with savegames failing to load, or causing the main engine loop to stall after load.
* Fixed an issue where .script files were not receiving the correct args when ran
* Fixed an issue with sleeve HP calculation
* Possible fix for MathJax "Typesetting Failed" errors
* There was an issue with Corporations decaying their employees to 0 stats, even though the minimum was supposed to
be 5. Moved the variable storing the min decay value to corporation constants, and raised it to 10.
* Regenerated documentation at https://github.com/bitburner-official/bitburner-src/blob/dev/markdown/bitburner.ns.md
due to corporation changes related to min decay stats.
* Faction XP was unintentionally providing 20x the experience gain as it did prior to v2.0. This caused faction work
to exceed gym/university as the optimal way to gain experience. Values have been reduced to only about 2x what
they were prior to v2.0, and they are no longer better than gym/university.
* Fixed an issue where the overview skill bars could be displayed inaccurately based on player multipliers.