274 Commits

Author SHA1 Message Date
catloversg
956e00f789 BUGFIX: Intelligence data is incorrectly migrated when Intelligence is not unlocked (#2660) 2026-04-14 15:20:01 -07:00
Lee Stutzman
fb3fa00b3d API: Add weakenEffect to formulas.hacking namespace (#2626) 2026-04-10 16:36:45 -07:00
Lee Stutzman
8cbd6ff9e1 BUGFIX: Fix tab completion for multi-word quoted autocomplete options (#2612) 2026-04-10 16:36:11 -07:00
Michael Ficocelli
00a1bc2f6e DNET: Remove bonus time effect on authentication and heartbleed speed; fix ram rounding (#2627) 2026-04-10 16:04:05 -07:00
Lee Stutzman
be6fcd206f API: Rename ns.gang.getOtherGangInformation to getAllGangInformation (#2635) 2026-04-10 15:59:39 -07:00
Lee Stutzman
fbd7930ab2 BUGFIX: Fix recursive alias detection causing infinite recursion (#2610) 2026-04-04 17:01:21 -07:00
catloversg
48fad72b6a UI: Follow-up to #2615 (#2622) 2026-04-03 15:15:04 -07:00
Lee Stutzman
63aa4d2a45 BUGFIX: Fix prompt text input losing focus to terminal (#2615) 2026-04-03 00:10:48 -07:00
catloversg
8dcccdc5bb MISC: Make implicit string conversion consistent across all coding contracts (#2608) 2026-04-02 23:53:16 -07:00
Lee Stutzman
d1b6acc57a CODEBASE: Replace ipExists() linear scan with O(1) Map.has() (#2621) 2026-04-02 19:13:35 -07:00
Lee Stutzman
5fc54809de BUGFIX: Fix skillMaxUpgradeCount returning 1 at extreme skill levels (#2611) 2026-04-02 19:06:44 -07:00
Michael Ficocelli
5c02f81dc7 DNET: Remove packet capture (#2594)
* DNET: Remove packet capture as an API tool; add the mechanic as part of the logs in the Open Web Access Point puzzle

* DNET: Make harder version of the packet capture puzzle just have alphanumeric noise instead of lore data and stuff

* DNET: Make harder version of the packet capture puzzle just have alphanumeric noise instead of lore data and stuff

* PR feedback
2026-03-26 18:27:30 -07:00
Michael Ficocelli
1b6b07faae DNET: Player feedback (#2545) 2026-03-19 21:07:43 -07:00
catloversg
0bc05772f6 CODEBASE: Remove barrel imports in Bladeburner code (#2580) 2026-03-19 20:13:19 -07:00
catloversg
3813d03fb6 MISC: Rework intelligence override (#2575) 2026-03-19 20:09:37 -07:00
David Walker
b6a29681f4 BUGFIX: Fix webstorm by using a mutationLock (#2542) 2026-03-06 11:11:06 -08:00
David Walker
dc5c43db2e REFACTOR: Make getPlayer 10x faster (#2548) 2026-03-03 14:21:34 -08:00
Michael Ficocelli
3d41c348bc DNET: Rebalance / player feedback (#2533) 2026-02-28 11:48:03 -08:00
Misha279-UA
c85d9cbe8c CCT: Add "Find Largest Rectangle in a Matrix" coding contract (#2519) 2026-02-24 12:10:42 -08:00
David Walker
8f4313b180 Revert "PIPE: Add pipe support for passing data into and out of terminal commands (#2395)" (#2524)
This reverts commit 92b8b58588.

Accidental merge on my part - the code is in decent shape, but isn't meant to go in for 3.0.
2026-02-22 11:28:10 -08:00
Michael Ficocelli
92b8b58588 PIPE: Add pipe support for passing data into and out of terminal commands (#2395) 2026-02-22 11:18:23 -08:00
catloversg
0c118ede38 DOCUMENTATION: Use relative links instead of absolute links (#2521) 2026-02-21 11:58:15 -08:00
catloversg
67fd763c30 JEST: Show coding contract names when their tests failed (#2520) 2026-02-21 10:20:31 -08:00
Michael Ficocelli
9279b16729 DNET: Adjust balance from player feedback (#2512) 2026-02-18 13:41:48 -08:00
David Walker
42bdbbc2c8 MISC: Update blood donations (#2508)
Per Hydroflame's request
2026-02-16 10:12:52 -08:00
catloversg
9a6e80129f UI: Improve navigation system of in-game documentation viewer (#2499)
* UI: Improve navigation system of in-game documentation viewer

* Update based on feedback

* Update based on feedback
2026-02-16 09:00:58 -08:00
catloversg
dd78a2cb44 API: Remove RAM cost of hacknet namespace and set RAM cost of each hacknet API (#2502)
* API: Remove RAM cost of hacknet namespace and set RAM cost of each hacknet API

* Fix Jest tests

* Update based on feedback
2026-02-16 09:00:02 -08:00
catloversg
dc0c3b6fa3 JEST: Add tests for checking getAnswer and solver of coding contracts (#2503) 2026-02-15 10:53:58 -08:00
David Walker
b51ed8fd59 BUG: Fix missed cases in offline server handling (#2495)
There were two large holes in the existing offline server handling:

1. It didn't include IPs, so scripts that used IPs instead of hostnames
   would get exceptions thrown for "server not found."
2. Coverage was very low for non-Darknet APIs. Maybe most of them don't
   need to be covered, but many obvious ones like "ps", "killall" and
   "hasRootAccess" were missing. IMO the only reliable answer is one
   that enforces *all* are covered via the type system.

To accomplish the second part, helpers.getServer() was changed to return
null when a server is offline. This intentionally breaks a lot of its
utility, which was to return a server unconditionally. To compensate,
its utility was increased - it now also does unknown argument
processing, allowing it to subsume a common line that all callers were
repeating.

Some callers switched to ctx.workerScript.getServer(), because they
didn't actually need to be using helpers.getServer(). Similarly, a few
callsites switched to GetServerOrThrow(), for the cases where it should
be guaranteed that the server is valid. The rest are returning a
default/failure response when the server is offline. (Except for
contracts, which threw on failure already anyway.)
2026-02-15 10:29:47 -08:00
Michael Ficocelli
26db9f2955 DNET: More fixes and feedback (#2489)
* Add some re-rendering improvements to avoid the canvas and visual servers getting desynched

* removed underlevelled nerf to low-level servers; improved charisma level docs

* Remove offscreen dynamic culling

* PR feedback; add cache file names to tooltip

* Ensure stasis link servers get loaded properly; ensure darkweb has neighbors to prevent unit tests from failing; remove extra optional chaining accessors
2026-02-13 17:23:24 -08:00
David Walker
26b5c28df6 REFACTOR: Speed up by-ip lookups by introducing a new map entry (#2488)
Thankfully, the existing AllServers map is not exported, so we can
ensure that all the changes are only local to this file.

This also fixes a bug if renameServer was called with the same
name. (Probably calling code checked that case already.)
2026-02-11 10:43:52 -08:00
catloversg
ac34d6508d BLADEBURNER: Stop randomizing action difficulty (#2491) 2026-02-11 10:36:10 -08:00
catloversg
638c791047 MISC: Change how coding contract rewards are randomized (#2490) 2026-02-11 10:34:59 -08:00
catloversg
97987fe35b BUGFIX: Global states are not reset properly between each Jest test (#2487) 2026-02-10 10:13:00 -08:00
catloversg
95b739f703 BUGFIX: Darknet state is not reset properly on prestige (#2486) 2026-02-10 09:39:31 -08:00
Michael Ficocelli
bab6280735 DNET: Add JS object properties as server names; refactor save/load/server storage to support this (#2482) 2026-02-10 00:13:47 -08:00
David Walker
b5da311133 REFACTOR: Consolidate checks under getFailureResult() (#2476)
There was duplicated code, and more importantly, were were handling
certain things subtly differently in exec() and scp() as a result. This
notably causes a behavior change in exec() and scp() where failure to
authenticate now returns failure instead of throwing, which I believe is
the proper response.

This also makes it easier to see in the code exactly which functions
require what (auth, session, etc.)
2026-02-08 08:39:42 -08:00
Michael Ficocelli
60a8996707 DARKNET: Add extra hint to sorted echo puzzle at high levels (#2465) 2026-02-06 04:58:01 -08:00
Michael Ficocelli
0eae02adcf DARKNET: Improve documentation; remove requirement that getBlockedRam and getDepth be called on a darknet server (#2472) 2026-02-05 07:28:06 -08:00
catloversg
796bef81b3 BUGFIX: Sleeves can earn exp and purchase augmentations when enabling disableSleeveExpAndAugmentation (#2467) 2026-02-05 04:47:24 -08:00
Michael Ficocelli
6073964768 DARKNET: Darkweb Expansion Project & Bitnode (#2139)
This is BN15. It is a really big change; see the PR for all the details.
2026-02-03 03:40:36 -08:00
catloversg
5a2bdfc9f1 CODEBASE: Update NodeJS to v24 (#2456) 2026-01-28 22:10:55 -08:00
TheAimMan
210c338f86 SLEEVES: Add sleeve commands to purchase sleeves and memory via the API (#2443) 2026-01-20 12:55:51 -08:00
Michael Ficocelli
4218b01dfb IPVGO: Do not update captures on passed analysis boards (#2415) 2025-12-21 13:44:24 -08:00
Paul Setzer
968c0c2a8c CONTRACTS: Generate test contracts on executing host by default. Add support for optional parameter to specify the server. (#2417) 2025-12-16 16:23:59 -08:00
imcute_aaaa
77fe36db89 BUGFIX: Coding contracts may have duplicate names (#2399) 2025-11-26 23:59:11 -08:00
gmcew
7c0286222c API: Move and rename purchased server functions to cloud API (#2367)
* Convert purchased server functions to cloud API

- Create `ns.cloud`
- Change `bitnode multipliers` and `server constants` wording for consistency
- change `server`, `ram` and `getting started` docs for consistency
- Added changes to 3.0.0 API Break and `setRemovedFunctions` in NetscriptFunctions.js

Tested by
- running tutorial `purchase-server-8gb.js`, and a more typical player one
- buying manually using vendor (Alpha Ent in Sector 12)
- deleting them all using script, and checked all deleted functions gave correct error
- Imported completed save to ensure auto-transfer of function work

* Revision in line with comments

- changed more `purchased` to `cloud` references
- Added BN mults auto-conversion

* Update getting_started.md

 - Corrected function names for new `cloud API`

* Don't show `cloud API` warning

v3.0.0 API break auto-replaces `cloud` functions, not warning suggested.

* API Break correction

- `cloud` affected API break replacement changed to be more descriptive and functional

* Fix typo and add empty lines

* Update many things (check commit's description)

- Comments
- Terminal message
- UI Text
- TSDoc
- md docs
- Improve error messages in src\NetscriptFunctions\Cloud.ts
2025-11-07 12:10:33 -08:00
catloversg
a703e8753b JEST: Refactor tests that add home server manually (#2358) 2025-10-21 20:57:14 -04:00
catloversg
6837f334fd CODEBASE: Remove redundant check in getServer utility function and serverExists API (#2357) 2025-10-19 11:45:30 -07:00
catloversg
d421d4fcf9 MISC: Make TIX access independent from WSE account (#2342) 2025-10-11 17:28:45 -07:00