v2.8.0 Release: 5 March 2025
MAJOR CHANGES
- Grant Bladeburner API access to SF6 and "Blade's Simulacrum" augmentation to SF7.3 (#1926) (@Sphyxis)
- Move tail-related APIs to ns.ui namespace (#1935) (@catloversg)
- Support scripts playing against each other on "No AI" board (#1917) (@ficocelliguy)
- Add key binding feature (#1830) (@catloversg)
UI
- Fix: Company name in Job tab is not updated when switching companies in edge cases (#1828) (@Nerdpie)
- Make minor changes in buttons and error messages of tutorial (#1837) (@catloversg)
- Infiltration remembers faction choice for reputation reward (#1860) (@catloversg)
- Add filter tool to list of installed augmentations (#1833) (@catloversg)
- Disable buttons when player cannot buy things in tech vendor (#1881) (@catloversg)
- Show warning message for deprecated API Server feature (#1903) (@catloversg)
- Change "overclock" to "Boosted by bonus time" in Sleeves tab (#1901) (@catloversg)
- Hide spoiler content in Soft Reset popup (#1898) (@catloversg)
- Change how hacking level requirement is shown in "Create program" tab (#1900) (@catloversg)
- Fix: "Import Save Comparison" popup is shown after reloading (#1659) (@catloversg)
- Fix: Editor shows "+1 overload" with all NS APIs (#1883) (@catloversg)
- Fix multiple problems with editor (#1893) (@catloversg)
- Editor becomes laggy and autocomplete may not work when player has too many scripts
- Edited code disappears in editor after switching tab
- Editor shows error popup when opening scripts on "." server
- Add UI to share RAM to boost reputation gain (#1862) (@catloversg)
- Fix: Sleeves UI shows and sets wrong task (#1807) (@catloversg)
- Add Grafting tab to sidebar (#1809) (@catloversg)
- Improve UX of Remote API setting page (#1870) (@catloversg)
- Add reward info to intro page of infiltration (#1835) (@catloversg)
- Fix: Wrong plural form in modal of coding contract (#1939) (@catloversg)
- Show all jobs instead of only one in Job tab (#1945) (@catloversg)
- Fix: Cursor position in editor is moved undesirably in edge cases (#1952) (@catloversg)
- Show Save ID in Options tab (#1964) (@catloversg)
- Warn player if they are editing and saving files on non-home servers (#1968) (@catloversg)
- Improve performance of April Fools Easter egg (#1977) (@catloversg)
- Add disambiguation to the confusing "1s / ls" tutorial step (#1972) (@ficocelliguy)
MISC
- Fix: Tail log does not render multiline logs properly in edge cases (#1838) (@catloversg)
- Fix: Game takes too long to process crime work with large number of cycles (#1821) (@catloversg)
- API: Add "No AI" to GoOpponent type (#1845) (@catloversg)
- Add raw command string to autocomplete data (#1846) (@catloversg)
- Show user-friendly error message when running empty script (#1848) (@catloversg)
- Fix: ns.weaken reports wrong result when server security is near min value (#1887) (@nanogyth)
- Use same multiplier to calculate server's reduced money for all hacking methods (NS APIs and manual hack via UI) (#1868) (@catloversg)
- Add ns.ui.setTailFontSize API to change tail font size (#1852) (@G4mingJon4s)
- Fix: Running TypeScript scripts are not automatically started when game reloads (#1857) (@catloversg)
- Clarify messages related to "buy" command (#1902) (@catloversg)
- Remove RAM usage percentage in "free" CLI if it's NaN (#1897) (@catloversg)
- Add more error info to error dialog and tail log (#1813) (@catloversg)
- Fix: Grow log shows invalid values in edge cases (#1872) (@catloversg)
- Log script kill immediately and identify the guilty script (#1907) (@yichizhng)
- Add source map to transformed scripts (#1812) (@catloversg)
- Fix: Static RAM calculator cannot process abstract methods (#1921) (@catloversg)
- Include all executable types in error message of "run" command (#1918) (@PerpetuaLux)
- Add ns.ui.renderTail API (#1815) (@catloversg)
- Improve typing of coding contract API (#1892) (@G4mingJon4s)
- Add ns.enums.FactionName API (#1457) (@catloversg)
- Fix: Typo in API break notice of v2.6.1 (#1936) (@catloversg)
- Clarify "Disable ASCII art" setting (#1937) (@catloversg)
- Clarify availability of "buy" command (#1940) (@catloversg)
- Allow using wss for RFA (#1942) (@catloversg)
- Support non-Steam achievements (#1953) (@femboyfireball)
- Add ns.formulas.reputation.donationForRep API (#1141, #1960) (@LJNeon)
- Clarify advanced options (#1962) (@catloversg)
- Fix invalid filenames upon loading save (#1147) (@LJNeon)
- Show user-friendly error message when there is syntax error in scripts (#1963) (@catloversg)
- Do not round return value of getBonusTime APIs (#1961) (@catloversg)
- JetBrains Mono font shows wrong glyphs (#1971) (@catloversg)
DOCUMENTATION
- Fix typo in "Getting Started" page (#1836) (@catloversg)
- Improve Infiltration docs (#1842) (@catloversg)
- Clarify input and output of Square Root coding contract (#1839) (@catloversg)
- Fix typo of CrimeStats (#1850) (@catloversg)
- Add starter React documentation (#1888) (@danielpza)
- Clarify return value of ns.getPurchasedServerCost and ns.getPurchasedServerUpgradeCost when input is invalid (#1884) (@NagaOuroboros)
- Fix migration doc typo (#1896) (@esainane)
- Clarify ns.exit (#1916) (@Mathekatze)
- Make nuke and port opening functions return boolean (#1923) (@catloversg)
- Document shorts in terms of actual finance terms (#1908) (@d0sboots)
- Replace outdated links for v2 migration guide and changelog (#1934) (@catloversg)
- Clarify ns.nuke (#1969) (@catloversg)
- Clarify ns.scan (#1965) (@catloversg)
SPOILER CHANGES - UI
- Add visual cues to warn player of dangerous actions and status of population, chaos (#1856) (@catloversg)
- Allow empty string in amount and price fields in sell modals before confirming (#1847) (@catloversg)
- Show production multiplier of product in research popup (#1919) (@catloversg)
- Show operation description in tooltip of completed BlackOps (#1941) (@catloversg)
- Show exact reasons why player cannot bribe factions (#1967) (@catloversg)
SPOILER CHANGES - MISC
- Allow passing 0 SkillPoints to ns.formulas.bladeburner.skillMaxUpgradeCount (#1844) (@catloversg)
- Change description and add tooltip for HackMoney-related multipliers (#1823) (@catloversg)
- Clarify "Company Favor" hash upgrade (#1861) (@catloversg)
- Increase number of displayed digits for "Base Size Modifier" of Stanek's Gift (#1871) (@catloversg)
- Remove mention of passive reputation gain when player is in BN2 (#1859) (@catloversg)
- Fix: Wrong warning of sellAmt being negative (#1819) (@catloversg)
- Add ns.singularity.getSaveData API (#1390) (@catloversg)
- Reword description of "Operation Tyrell" and "Operation Wallace" BlackOps (#1931) (@Hihahahalol)
- Standardize behavior of "connect" command and ns.singularity.connect API (#1933) (@catloversg)
- Decrease interval of check for faction invitation (#1943) (@TheAimMan)
- Change multiplier of defense level in BN14 (#1927) (@ficocelliguy)
- Fix: Sleeve takes on contracts without checking availability (#1946) (@catloversg)
- Fix: ns.corporation.bribe can bribe faction that player is not member of (#1966) (@catloversg)
- Return experience gain rate of gang member in GangMemberInfo.expGain (#1955) (@AdamAndreatta)
SPOILER CHANGES - DOCUMENTATION
- Clarify isBusy and stopAction Singularity APIs (#1822) (@catloversg)
- Clarify ns.grafting.getGraftableAugmentations API (#1858) (@catloversg)
- Clarify type of returned value of ns.gang.getOtherGangInformation (#1882) (@catloversg)
- Clarify description of BN2 about gang and The Red Pill (#1878) (@catloversg)
- Clarify returned value of ns.bladeburner.getActionCountRemaining (#1873) (@catloversg)
- Fix incorrectly documented BusinessFactor (#1915) (@esainane)
- Fix typo in proof of boost material optimizer (#1938) (@catloversg)
- Clarify ns.singularity.softReset (#1980) (@catloversg)
- Clarify ns.singularity.quitJob (#1979) (@catloversg)
CODEBASE/REFACTOR
- Fix: React warning of missing keys in CovenantPurchasesRoot.tsx (#1824) (@catloversg)
- Fix: Flaky stock market test (#1834) (@catloversg)
- Convert Literature entries and helper functions to TSX (#1854) (@NagaOuroboros)
- Update webpack and its plugins (#1825) (@catloversg)
- Dockerize Bitburner (#1891) (@romaswe)
- Change signature of interpolate function in Infiltration code (#1843) (@catloversg)
- Validate theme, editor theme, and styles (#1789) (@catloversg)
- Fix React warning when using StatsTable (#1875) (@catloversg)
- Remove unused type of parameter of Favor component (#1874) (@catloversg)
- Merge TypeAssertion files (#1922) (@catloversg)
- Refactor ns.singularity.purchaseAugmentation (#1879) (@catloversg)
- Refactor Player.applyForJob (#1947) (@catloversg)
- Move coding contract code to a separate folder (#1932) (@G4mingJon4s)
- Update webpack and katex (#1975) (@catloversg)
- Update api-extractor (#1982) (@catloversg)