DARKNET: Darkweb Expansion Project & Bitnode (#2139)

This is BN15. It is a really big change; see the PR for all the details.
This commit is contained in:
Michael Ficocelli
2026-02-03 06:40:36 -05:00
committed by GitHub
parent a674633f6c
commit 6073964768
225 changed files with 15010 additions and 526 deletions

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733325 67.733325"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BN15+.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid1"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect1"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#55d400;stroke-width:0.264583"
x="33.591061"
y="40.205647"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.264583"
x="33.591061"
y="40.205647">BN15+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733325 67.733325"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF15.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid1"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect1"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#55d400;stroke-width:0.264583"
x="34.982018"
y="40.175503"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.264583"
x="34.982018"
y="40.175503">SF15.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733325 67.733325"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="darknet-backdoor.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid1"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect1"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#55d400;stroke-width:0.264583"
x="33.591061"
y="40.205647"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.264583"
x="33.591061"
y="40.205647">🔓</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

69
dist/icons/achievements/BN15+.svg vendored Normal file
View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733325 67.733325"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BN15+.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid1"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill-opacity: 0%;stroke:none;stroke-width:7.02745"
id="rect1"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#55d400;stroke-width:0.264583"
x="33.591061"
y="40.205647"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke-width:0.264583"
x="33.591061"
y="40.205647">BN15+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

69
dist/icons/achievements/SF15.1.svg vendored Normal file
View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733325 67.733325"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF15.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid1"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill-opacity: 0%;stroke:none;stroke-width:7.02745"
id="rect1"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#55d400;stroke-width:0.264583"
x="34.982018"
y="40.175503"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke-width:0.264583"
x="34.982018"
y="40.175503">SF15.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733325 67.733325"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="darknet-backdoor.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid1"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill-opacity: 0%;stroke:none;stroke-width:7.02745"
id="rect1"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#55d400;stroke-width:0.264583"
x="33.591061"
y="40.205647"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke-width:0.264583"
x="33.591061"
y="40.205647">🔓</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -8,5 +8,5 @@
**Signature:**
```typescript
type _ValueOf<T> = T[keyof T];
export type _ValueOf<T> = T[keyof T];
```

View File

@@ -0,0 +1,16 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CacheResult](./bitburner.cacheresult.md)
## CacheResult type
**Signature:**
```typescript
export type CacheResult = {
success: boolean;
message: string;
karmaLoss: number;
};
```

View File

@@ -74,7 +74,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of the server containing the contract. Optional. Defaults to the server the calling script is running on.
_(Optional)_ Hostname/IP of the server containing the contract. Optional. Defaults to current server if not provided.
</td></tr>

View File

@@ -58,7 +58,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of the server containing the contract. Optional. Defaults to the server the calling script is running on.
_(Optional)_ Hostname/IP of the server containing the contract. Optional. Default to the current server if not provided.
</td></tr>

View File

@@ -58,7 +58,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of the server containing the contract. Optional. Defaults to the server the calling script is running on.
_(Optional)_ Hostname/IP of the server containing the contract. Optional. Defaults to current server if not provided.
</td></tr>

View File

@@ -58,7 +58,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of the server containing the contract. Optional. Defaults to the server the calling script is running on.
_(Optional)_ Hostname/IP of the server containing the contract. Optional. Defaults to current server if not provided.
</td></tr>

View File

@@ -58,7 +58,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of the server containing the contract. Optional. Defaults to the server the calling script is running on.
_(Optional)_ Hostname/IP of the server containing the contract. Optional. Defaults to current server if not provided.
</td></tr>

View File

@@ -58,7 +58,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of the server containing the contract. Optional. Defaults to the server the calling script is running on.
_(Optional)_ Hostname/IP of the server containing the contract. Optional. Defaults to current server if not provided.
</td></tr>

View File

@@ -0,0 +1,94 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [authenticate](./bitburner.darknet.authenticate.md)
## Darknet.authenticate() method
Sends a network request to try to authenticate on a darkweb server. The target server must be directly connected to the server that the script is running on. The speed of authentication scales with the number of threads used.
If successful, grants the script a session, allowing it to exec() scripts on that server, or scp() files to it. (scp() \*from\* the server is always allowed.)
**Signature:**
```typescript
authenticate(host: string, password: string, additionalMsec?: number): Promise<DarknetResult & { data?: any }>;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
host
</td><td>
string
</td><td>
Hostname/IP of the target server (connected to the current server) to try a password.
</td></tr>
<tr><td>
password
</td><td>
string
</td><td>
Password to attempt to authenticate with.
</td></tr>
<tr><td>
additionalMsec
</td><td>
number
</td><td>
_(Optional)_ Optional. The number of additional milliseconds to add to the run time of the authentication request. Default is 0.
</td></tr>
</tbody></table>
**Returns:**
Promise&lt;[DarknetResult](./bitburner.darknetresult.md) &amp; { data?: any }&gt;
A promise that resolves to a [DarknetResult](./bitburner.darknetresult.md) object. The resolved object may contain an optional property. The type of this property is intentionaly undocumented. You are supposed to experiment and discover the content of this property.
## Remarks
RAM cost: 0.6 GB

View File

@@ -0,0 +1,80 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [connectToSession](./bitburner.darknet.connecttosession.md)
## Darknet.connectToSession() method
Attempts to connect to a target darkweb server that you have previously authenticated on. Unlike `authenticate`<!-- -->, connectToSession can be used to get a session on servers at any distance.
If successful, grants the script a session, allowing it to scp() files from that target. It also allows starting scripts with exec() on that target, if the target is directly connected to the server that the script is running on, or has a backdoor or stasis link.
If unsuccessful, more detail may be able to be gathered by using heartbleed() to look at the resulting logs on the server.
**Signature:**
```typescript
connectToSession(host: string, password: string): DarknetResult;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
host
</td><td>
string
</td><td>
Hostname/IP of the target server to connect to existing session
</td></tr>
<tr><td>
password
</td><td>
string
</td><td>
The server's password, to verify the session
</td></tr>
</tbody></table>
**Returns:**
[DarknetResult](./bitburner.darknetresult.md)
A [DarknetResult](./bitburner.darknetresult.md) object
## Remarks
RAM cost: 0.05 GB

View File

@@ -0,0 +1,60 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [getBlockedRam](./bitburner.darknet.getblockedram.md)
## Darknet.getBlockedRam() method
Gets the amount of RAM blocked by the server owner's processes. This ram can be freed for use using memoryReallocation().
**Signature:**
```typescript
getBlockedRam(host?: string): number;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
host
</td><td>
string
</td><td>
_(Optional)_ Optional. Hostname/IP of the server to check. Defaults to the running script's server.
</td></tr>
</tbody></table>
**Returns:**
number
The amount of RAM blocked by the server owner's processes.
## Remarks
RAM cost: 0 GB

View File

@@ -0,0 +1,23 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [getDarknetInstability](./bitburner.darknet.getdarknetinstability.md)
## Darknet.getDarknetInstability() method
Gets the current instability of the darknet caused by excessive backdoor-ing of servers.
**Signature:**
```typescript
getDarknetInstability(): DarknetInstability;
```
**Returns:**
[DarknetInstability](./bitburner.darknetinstability.md)
An object containing the current instability values.
## Remarks
Ram cost: 0 GB

View File

@@ -0,0 +1,62 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [getDepth](./bitburner.darknet.getdepth.md)
## Darknet.getDepth() method
Gets the current depth of the specified server into the darknet. Servers immediately below Darkweb are depth 0, and each visual row in the UI below that increases the depth of the server.
Returns -1 if the server is offline, not found, or not a darkweb server.
**Signature:**
```typescript
getDepth(host?: string): number;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
host
</td><td>
string
</td><td>
_(Optional)_ Optional. Hostname/IP of the server to check. Defaults to the running script's server.
</td></tr>
</tbody></table>
**Returns:**
number
The current depth of the server into the darknet.
## Remarks
RAM cost: 0.1 GB

View File

@@ -0,0 +1,60 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [getServerAuthDetails](./bitburner.darknet.getserverauthdetails.md)
## Darknet.getServerAuthDetails() method
Returns the server's authentication protocol details.
**Signature:**
```typescript
getServerAuthDetails(host?: string): ServerAuthDetails & { isOnline: boolean };
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
host
</td><td>
string
</td><td>
_(Optional)_ Hostname/IP of the server to analyze. Defaults to the running script's server if not specified.
</td></tr>
</tbody></table>
**Returns:**
[ServerAuthDetails](./bitburner.serverauthdetails.md) &amp; { isOnline: boolean }
An object containing the server's authentication protocol details.
## Remarks
RAM cost: 0.1 GB

View File

@@ -0,0 +1,62 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [getServerRequiredCharismaLevel](./bitburner.darknet.getserverrequiredcharismalevel.md)
## Darknet.getServerRequiredCharismaLevel() method
Gets the required charisma level to target the server with dnet.heartbleed().
Insufficient charisma will also cause authentication to take much longer - or, in certain servers deep in the darknet, be impossible.
**Signature:**
```typescript
getServerRequiredCharismaLevel(host: string): number;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
host
</td><td>
string
</td><td>
Hostname/IP of the server to check.
</td></tr>
</tbody></table>
**Returns:**
number
Required charisma level of the host.
## Remarks
RAM cost: 0.1 GB

View File

@@ -0,0 +1,60 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [getStasisLinkedServers](./bitburner.darknet.getstasislinkedservers.md)
## Darknet.getStasisLinkedServers() method
Returns the hostnames/IPs of servers that have a stasis link applied.
**Signature:**
```typescript
getStasisLinkedServers(returnByIP?: boolean): string[];
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
returnByIP
</td><td>
boolean
</td><td>
_(Optional)_ Optional. If true, returns IPs instead of hostnames. Defaults to false.
</td></tr>
</tbody></table>
**Returns:**
string\[\]
Hostnames/IPs
## Remarks
RAM cost: 0 GB

View File

@@ -0,0 +1,23 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [getStasisLinkLimit](./bitburner.darknet.getstasislinklimit.md)
## Darknet.getStasisLinkLimit() method
Returns the maximum number of stasis links that can be applied globally, based on the player's current status. Stasis link limit can be increased by finding special augmentations in the deep darknet.
**Signature:**
```typescript
getStasisLinkLimit(): number;
```
**Returns:**
number
Maximum number of stasis links.
## Remarks
RAM cost: 0 GB

View File

@@ -0,0 +1,80 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [heartbleed](./bitburner.darknet.heartbleed.md)
## Darknet.heartbleed() method
Uses an exploit to extract log data from a server by sending a malformed heartbeat request. Retrieves the most recent logs on the server. This can be used to get more feedback on authentication attempts. The retrieved logs are removed from the server, unless the "peek" flag is set to true in the provided HeartbleedOptions.
Servers will periodically produce logs themselves, as well, which sometimes are useful, but most times are not.
The speed of capture scales with the number of threads used. See formulas.dnet.getHeartbleedTime for more information.
**Signature:**
```typescript
heartbleed(host: string, options?: HeartbleedOptions): Promise<DarknetResult & { logs: string[] }>;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
host
</td><td>
string
</td><td>
Hostname/IP of the target server. Must be directly connected to the current server.
</td></tr>
<tr><td>
options
</td><td>
[HeartbleedOptions](./bitburner.heartbleedoptions.md)
</td><td>
_(Optional)_ Optional [HeartbleedOptions](./bitburner.heartbleedoptions.md) to modify how the exploit works.
</td></tr>
</tbody></table>
**Returns:**
Promise&lt;[DarknetResult](./bitburner.darknetresult.md) &amp; { logs: string\[\] }&gt;
A promise that resolves to a [DarknetResult](./bitburner.darknetresult.md) object, plus the scraped logs.
## Remarks
RAM cost: 0.6 GB

View File

@@ -0,0 +1,62 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [induceServerMigration](./bitburner.darknet.induceservermigration.md)
## Darknet.induceServerMigration() method
Increases the chance that target connected server will move to other parts of the darknet, by overloading the connections between it and the current server. Cannot target the current server. Must be run from a darknet server.
Effect scales with threads and charisma level.
**Signature:**
```typescript
induceServerMigration(host: string): Promise<DarknetResult>;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
host
</td><td>
string
</td><td>
Hostname/IP of the connected server to migrate.
</td></tr>
</tbody></table>
**Returns:**
Promise&lt;[DarknetResult](./bitburner.darknetresult.md)<!-- -->&gt;
A promise that resolves to a [DarknetResult](./bitburner.darknetresult.md) object.
## Remarks
RAM cost: 4 GB

View File

@@ -0,0 +1,62 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [isDarknetServer](./bitburner.darknet.isdarknetserver.md)
## Darknet.isDarknetServer() method
Returns whether the server is a darknet server.
Returns false if the server does not exist or has gone offline recently. This function does not DarkscapeNavigator.exe.
**Signature:**
```typescript
isDarknetServer(host?: string): boolean;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
host
</td><td>
string
</td><td>
_(Optional)_ Optional. Hostname/IP for the requested server object. Defaults to the running script's server.
</td></tr>
</tbody></table>
**Returns:**
boolean
true if the server is a darknet server, false otherwise.
## Remarks
RAM cost: 0.1 GB

View File

@@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [labradar](./bitburner.darknet.labradar.md)
## Darknet.labradar() method
There is more than meets the eye.
**Signature:**
```typescript
labradar(): Promise<Result<any>>;
```
**Returns:**
Promise&lt;[Result](./bitburner.result.md)<!-- -->&lt;any&gt;&gt;
## Remarks
RAM cost: 0 GB

View File

@@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [labreport](./bitburner.darknet.labreport.md)
## Darknet.labreport() method
Not all who wander are lost.
**Signature:**
```typescript
labreport(): Promise<Result<any>>;
```
**Returns:**
Promise&lt;[Result](./bitburner.result.md)<!-- -->&lt;any&gt;&gt;
## Remarks
RAM cost: 0 GB

View File

@@ -0,0 +1,328 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md)
## Darknet interface
Darknet API
**Signature:**
```typescript
export interface Darknet
```
## Methods
<table><thead><tr><th>
Method
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
[authenticate(host, password, additionalMsec)](./bitburner.darknet.authenticate.md)
</td><td>
Sends a network request to try to authenticate on a darkweb server. The target server must be directly connected to the server that the script is running on. The speed of authentication scales with the number of threads used.
If successful, grants the script a session, allowing it to exec() scripts on that server, or scp() files to it. (scp() \*from\* the server is always allowed.)
</td></tr>
<tr><td>
[connectToSession(host, password)](./bitburner.darknet.connecttosession.md)
</td><td>
Attempts to connect to a target darkweb server that you have previously authenticated on. Unlike `authenticate`<!-- -->, connectToSession can be used to get a session on servers at any distance.
If successful, grants the script a session, allowing it to scp() files from that target. It also allows starting scripts with exec() on that target, if the target is directly connected to the server that the script is running on, or has a backdoor or stasis link.
If unsuccessful, more detail may be able to be gathered by using heartbleed() to look at the resulting logs on the server.
</td></tr>
<tr><td>
[getBlockedRam(host)](./bitburner.darknet.getblockedram.md)
</td><td>
Gets the amount of RAM blocked by the server owner's processes. This ram can be freed for use using memoryReallocation().
</td></tr>
<tr><td>
[getDarknetInstability()](./bitburner.darknet.getdarknetinstability.md)
</td><td>
Gets the current instability of the darknet caused by excessive backdoor-ing of servers.
</td></tr>
<tr><td>
[getDepth(host)](./bitburner.darknet.getdepth.md)
</td><td>
Gets the current depth of the specified server into the darknet. Servers immediately below Darkweb are depth 0, and each visual row in the UI below that increases the depth of the server.
Returns -1 if the server is offline, not found, or not a darkweb server.
</td></tr>
<tr><td>
[getServerAuthDetails(host)](./bitburner.darknet.getserverauthdetails.md)
</td><td>
Returns the server's authentication protocol details.
</td></tr>
<tr><td>
[getServerRequiredCharismaLevel(host)](./bitburner.darknet.getserverrequiredcharismalevel.md)
</td><td>
Gets the required charisma level to target the server with dnet.heartbleed().
Insufficient charisma will also cause authentication to take much longer - or, in certain servers deep in the darknet, be impossible.
</td></tr>
<tr><td>
[getStasisLinkedServers(returnByIP)](./bitburner.darknet.getstasislinkedservers.md)
</td><td>
Returns the hostnames/IPs of servers that have a stasis link applied.
</td></tr>
<tr><td>
[getStasisLinkLimit()](./bitburner.darknet.getstasislinklimit.md)
</td><td>
Returns the maximum number of stasis links that can be applied globally, based on the player's current status. Stasis link limit can be increased by finding special augmentations in the deep darknet.
</td></tr>
<tr><td>
[heartbleed(host, options)](./bitburner.darknet.heartbleed.md)
</td><td>
Uses an exploit to extract log data from a server by sending a malformed heartbeat request. Retrieves the most recent logs on the server. This can be used to get more feedback on authentication attempts. The retrieved logs are removed from the server, unless the "peek" flag is set to true in the provided HeartbleedOptions.
Servers will periodically produce logs themselves, as well, which sometimes are useful, but most times are not.
The speed of capture scales with the number of threads used. See formulas.dnet.getHeartbleedTime for more information.
</td></tr>
<tr><td>
[induceServerMigration(host)](./bitburner.darknet.induceservermigration.md)
</td><td>
Increases the chance that target connected server will move to other parts of the darknet, by overloading the connections between it and the current server. Cannot target the current server. Must be run from a darknet server.
Effect scales with threads and charisma level.
</td></tr>
<tr><td>
[isDarknetServer(host)](./bitburner.darknet.isdarknetserver.md)
</td><td>
Returns whether the server is a darknet server.
Returns false if the server does not exist or has gone offline recently. This function does not DarkscapeNavigator.exe.
</td></tr>
<tr><td>
[labradar()](./bitburner.darknet.labradar.md)
</td><td>
There is more than meets the eye.
</td></tr>
<tr><td>
[labreport()](./bitburner.darknet.labreport.md)
</td><td>
Not all who wander are lost.
</td></tr>
<tr><td>
[memoryReallocation(host)](./bitburner.darknet.memoryreallocation.md)
</td><td>
Spends some time freeing some of the RAM currently blocked by the server owner. Must target an authenticated and directly connected server.
The amount of ram recovered scales with charisma and the number of threads used.
</td></tr>
<tr><td>
[nextMutation()](./bitburner.darknet.nextmutation.md)
</td><td>
Sleep until the next mutation of the network of darknet servers (which occur frequently). Note that in the majority of cases, whatever changed out on the net (if anything) will not be nearby to, or visible from, the current server.
Some possible mutations that can occur somewhere on the darknet each cycle:
- Nothing changes.
- Some servers move to other locations on the net, breaking existing connections and forming new ones.
- Some servers go offline, which in many cases is permanent - they are effectively deleted.
- Some servers restart, which kills all running scripts on the server.
- New servers appear on the net (which may be previously offline servers, but cleaned and with a new password).
</td></tr>
<tr><td>
[openCache(filename, suppressToast)](./bitburner.darknet.opencache.md)
</td><td>
Opens a .cache file on the current server to acquire its valuable contents.
</td></tr>
<tr><td>
[packetCapture(host)](./bitburner.darknet.packetcapture.md)
</td><td>
Spends some time listening for unsecured network traffic on an adjacent server. If you are lucky, the server password may be somewhere in all the noise. The target server must be directly connected to the server that the script is running on.
Using multiple threads speeds up the capture process.
</td></tr>
<tr><td>
[phishingAttack()](./bitburner.darknet.phishingattack.md)
</td><td>
Spends time sending out phishing emails, attempting to find some non-technical middle manager to fall for the scam. Builds charisma. Often the attempt will fail, but success can be increased with crime success rate and charisma stats.
The amount of money lifted scales with the number of threads used, if successful. Very occasionally you can retrieve a cache file from the attempt.
Phishing attacks can only be run from scripts on darknet servers.
</td></tr>
<tr><td>
[probe(returnByIP)](./bitburner.darknet.probe.md)
</td><td>
Returns a list of all darknet servers connected to the script's current server. For example, if called from a script running on `home`<!-- -->, it will return `["darkweb"]`<!-- -->. It will return an empty list if there are no darknet servers connected to the current server.
Note that there is no guarantee about the order of servers in the returned list.
</td></tr>
<tr><td>
[promoteStock(sym)](./bitburner.darknet.promotestock.md)
</td><td>
Spends some time spreading propaganda about a stock to increase its volatility. This does not actually change the stock's forecasts, but a savvy investor can take advantage of the chaos. The effect scales with charisma and the number of threads used, but degrades over time if left alone.
</td></tr>
<tr><td>
[setStasisLink(shouldLink)](./bitburner.darknet.setstasislink.md)
</td><td>
Applies or removes a stasis link to the script's current server. This will allow you to connectToSession() or exec() to the server remotely, even if it is not directly connected to the server a script is running on. It also allows direct connection to the server via the terminal.
Stasis links also prevent the server from going offline or moving. It does not prevent other servers from moving or going offline, though, so it does not guarantee that the stasis link server will never lose connections to other servers.
There is a maximum of stasis links that can be applied globally, which can be seen using getStasisLinkLimit(). This limit can be increased by finding special augmentations in the deep darknet.
</td></tr>
<tr><td>
[unleashStormSeed()](./bitburner.darknet.unleashstormseed.md)
</td><td>
Executes STORM\_SEED.exe, if it is present on the server the script is running on.
Warning: That exe file creates a webstorm that can cause catastrophic damage to the darknet. Run at your own risk.
</td></tr>
</tbody></table>

View File

@@ -0,0 +1,62 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [memoryReallocation](./bitburner.darknet.memoryreallocation.md)
## Darknet.memoryReallocation() method
Spends some time freeing some of the RAM currently blocked by the server owner. Must target an authenticated and directly connected server.
The amount of ram recovered scales with charisma and the number of threads used.
**Signature:**
```typescript
memoryReallocation(host?: string): Promise<DarknetResult>;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
host
</td><td>
string
</td><td>
_(Optional)_ Optional. Hostname/IP of the authenticated and directly connected server to free ram from. Defaults to the running script's server.
</td></tr>
</tbody></table>
**Returns:**
Promise&lt;[DarknetResult](./bitburner.darknetresult.md)<!-- -->&gt;
A promise that resolves to a [DarknetResult](./bitburner.darknetresult.md) object.
## Remarks
RAM cost: 1 GB

View File

@@ -0,0 +1,33 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [nextMutation](./bitburner.darknet.nextmutation.md)
## Darknet.nextMutation() method
Sleep until the next mutation of the network of darknet servers (which occur frequently). Note that in the majority of cases, whatever changed out on the net (if anything) will not be nearby to, or visible from, the current server.
Some possible mutations that can occur somewhere on the darknet each cycle:
- Nothing changes.
- Some servers move to other locations on the net, breaking existing connections and forming new ones.
- Some servers go offline, which in many cases is permanent - they are effectively deleted.
- Some servers restart, which kills all running scripts on the server.
- New servers appear on the net (which may be previously offline servers, but cleaned and with a new password).
**Signature:**
```typescript
nextMutation(): Promise<void>;
```
**Returns:**
Promise&lt;void&gt;
## Remarks
RAM cost: 1 GB

View File

@@ -0,0 +1,76 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [openCache](./bitburner.darknet.opencache.md)
## Darknet.openCache() method
Opens a .cache file on the current server to acquire its valuable contents.
**Signature:**
```typescript
openCache(filename: string, suppressToast?: boolean): CacheResult;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
filename
</td><td>
string
</td><td>
Name of the cache file to open.
</td></tr>
<tr><td>
suppressToast
</td><td>
boolean
</td><td>
_(Optional)_ Optional. If true, suppresses the toast notification that appears when opening a cache file. Defaults to false.
</td></tr>
</tbody></table>
**Returns:**
[CacheResult](./bitburner.cacheresult.md)
An object containing the contents of the cache, and the karma lost.
## Remarks
RAM cost: 2 GB

View File

@@ -0,0 +1,62 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [packetCapture](./bitburner.darknet.packetcapture.md)
## Darknet.packetCapture() method
Spends some time listening for unsecured network traffic on an adjacent server. If you are lucky, the server password may be somewhere in all the noise. The target server must be directly connected to the server that the script is running on.
Using multiple threads speeds up the capture process.
**Signature:**
```typescript
packetCapture(host: string): Promise<DarknetResult & { data: string }>;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
host
</td><td>
string
</td><td>
Hostname/IP of the server to listen to.
</td></tr>
</tbody></table>
**Returns:**
Promise&lt;[DarknetResult](./bitburner.darknetresult.md) &amp; { data: string }&gt;
A promise that resolves to a [DarknetResult](./bitburner.darknetresult.md) object, plus the captured data.
## Remarks
RAM cost: 6 GB

View File

@@ -0,0 +1,27 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [phishingAttack](./bitburner.darknet.phishingattack.md)
## Darknet.phishingAttack() method
Spends time sending out phishing emails, attempting to find some non-technical middle manager to fall for the scam. Builds charisma. Often the attempt will fail, but success can be increased with crime success rate and charisma stats.
The amount of money lifted scales with the number of threads used, if successful. Very occasionally you can retrieve a cache file from the attempt.
Phishing attacks can only be run from scripts on darknet servers.
**Signature:**
```typescript
phishingAttack(): Promise<DarknetResult>;
```
**Returns:**
Promise&lt;[DarknetResult](./bitburner.darknetresult.md)<!-- -->&gt;
A promise that resolves to a [DarknetResult](./bitburner.darknetresult.md) object.
## Remarks
RAM cost: 2 GB

View File

@@ -0,0 +1,62 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [probe](./bitburner.darknet.probe.md)
## Darknet.probe() method
Returns a list of all darknet servers connected to the script's current server. For example, if called from a script running on `home`<!-- -->, it will return `["darkweb"]`<!-- -->. It will return an empty list if there are no darknet servers connected to the current server.
Note that there is no guarantee about the order of servers in the returned list.
**Signature:**
```typescript
probe(returnByIP?: boolean): string[];
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
returnByIP
</td><td>
boolean
</td><td>
_(Optional)_ Optional. Controls whether the function returns IPs instead of hostnames. Defaults to false.
</td></tr>
</tbody></table>
**Returns:**
string\[\]
An array of strings containing the hostnames/IPs of all servers connected to the current server.
## Remarks
RAM cost: 0.2 GB

View File

@@ -0,0 +1,60 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [promoteStock](./bitburner.darknet.promotestock.md)
## Darknet.promoteStock() method
Spends some time spreading propaganda about a stock to increase its volatility. This does not actually change the stock's forecasts, but a savvy investor can take advantage of the chaos. The effect scales with charisma and the number of threads used, but degrades over time if left alone.
**Signature:**
```typescript
promoteStock(sym: string): Promise<DarknetResult>;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
sym
</td><td>
string
</td><td>
Stock symbol.
</td></tr>
</tbody></table>
**Returns:**
Promise&lt;[DarknetResult](./bitburner.darknetresult.md)<!-- -->&gt;
A promise that resolves to a [DarknetResult](./bitburner.darknetresult.md) object.
## Remarks
RAM cost: 2 GB

View File

@@ -0,0 +1,64 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [setStasisLink](./bitburner.darknet.setstasislink.md)
## Darknet.setStasisLink() method
Applies or removes a stasis link to the script's current server. This will allow you to connectToSession() or exec() to the server remotely, even if it is not directly connected to the server a script is running on. It also allows direct connection to the server via the terminal.
Stasis links also prevent the server from going offline or moving. It does not prevent other servers from moving or going offline, though, so it does not guarantee that the stasis link server will never lose connections to other servers.
There is a maximum of stasis links that can be applied globally, which can be seen using getStasisLinkLimit(). This limit can be increased by finding special augmentations in the deep darknet.
**Signature:**
```typescript
setStasisLink(shouldLink?: boolean): Promise<DarknetResult>;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
shouldLink
</td><td>
boolean
</td><td>
_(Optional)_ true to apply a stasis link, false to remove it. Optional. Defaults to true.
</td></tr>
</tbody></table>
**Returns:**
Promise&lt;[DarknetResult](./bitburner.darknetresult.md)<!-- -->&gt;
A promise that resolves to a [DarknetResult](./bitburner.darknetresult.md) object.
## Remarks
RAM cost: 12 GB

View File

@@ -0,0 +1,25 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Darknet](./bitburner.darknet.md) &gt; [unleashStormSeed](./bitburner.darknet.unleashstormseed.md)
## Darknet.unleashStormSeed() method
Executes STORM\_SEED.exe, if it is present on the server the script is running on.
Warning: That exe file creates a webstorm that can cause catastrophic damage to the darknet. Run at your own risk.
**Signature:**
```typescript
unleashStormSeed(): DarknetResult;
```
**Returns:**
[DarknetResult](./bitburner.darknetresult.md)
A promise that resolves to a [DarknetResult](./bitburner.darknetresult.md) object.
## Remarks
RAM cost: 0.1 GB

View File

@@ -0,0 +1,86 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetFormulas](./bitburner.darknetformulas.md) &gt; [getAuthenticateTime](./bitburner.darknetformulas.getauthenticatetime.md)
## DarknetFormulas.getAuthenticateTime() method
Gets the time it will take to authenticate a server.
**Signature:**
```typescript
getAuthenticateTime(darknetServerData: DarknetServerData, threads?: number, player?: Person): number;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
darknetServerData
</td><td>
[DarknetServerData](./bitburner.darknetserverdata.md)
</td><td>
The server to check authentication time on.
</td></tr>
<tr><td>
threads
</td><td>
number
</td><td>
_(Optional)_ The number of threads to use for the authentication. Optional, defaults to 1
</td></tr>
<tr><td>
player
</td><td>
[Person](./bitburner.person.md)
</td><td>
_(Optional)_ The player object. Optional, defaults to the current player status
</td></tr>
</tbody></table>
**Returns:**
number

View File

@@ -0,0 +1,86 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetFormulas](./bitburner.darknetformulas.md) &gt; [getExpectedRamBlockRemoved](./bitburner.darknetformulas.getexpectedramblockremoved.md)
## DarknetFormulas.getExpectedRamBlockRemoved() method
Gets the expected amount off ram that will be freed by a call to dnet.memoryReallocation
**Signature:**
```typescript
getExpectedRamBlockRemoved(darknetServerData: DarknetServerData, threads?: number, player?: Person): number;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
darknetServerData
</td><td>
[DarknetServerData](./bitburner.darknetserverdata.md)
</td><td>
The server to check ram freed on.
</td></tr>
<tr><td>
threads
</td><td>
number
</td><td>
_(Optional)_ The number of threads used in the memoryReallocation call. Optional, defaults to 1
</td></tr>
<tr><td>
player
</td><td>
[Person](./bitburner.person.md)
</td><td>
_(Optional)_ The player object. Optional, defaults to the current player status
</td></tr>
</tbody></table>
**Returns:**
number

View File

@@ -0,0 +1,86 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetFormulas](./bitburner.darknetformulas.md) &gt; [getHeartbleedTime](./bitburner.darknetformulas.getheartbleedtime.md)
## DarknetFormulas.getHeartbleedTime() method
Gets the time it will take to scrape logs from a server.
**Signature:**
```typescript
getHeartbleedTime(darknetServerData: DarknetServerData, threads?: number, player?: Person): number;
```
## Parameters
<table><thead><tr><th>
Parameter
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
darknetServerData
</td><td>
[DarknetServerData](./bitburner.darknetserverdata.md)
</td><td>
The server to check heartbleed log scraping time on.
</td></tr>
<tr><td>
threads
</td><td>
number
</td><td>
_(Optional)_ The number of threads to use for the authentication. Optional, defaults to 1
</td></tr>
<tr><td>
player
</td><td>
[Person](./bitburner.person.md)
</td><td>
_(Optional)_ The player object. Optional, defaults to the current player status
</td></tr>
</tbody></table>
**Returns:**
number

View File

@@ -0,0 +1,62 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetFormulas](./bitburner.darknetformulas.md)
## DarknetFormulas interface
Darknet formulas
**Signature:**
```typescript
interface DarknetFormulas
```
## Methods
<table><thead><tr><th>
Method
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
[getAuthenticateTime(darknetServerData, threads, player)](./bitburner.darknetformulas.getauthenticatetime.md)
</td><td>
Gets the time it will take to authenticate a server.
</td></tr>
<tr><td>
[getExpectedRamBlockRemoved(darknetServerData, threads, player)](./bitburner.darknetformulas.getexpectedramblockremoved.md)
</td><td>
Gets the expected amount off ram that will be freed by a call to dnet.memoryReallocation
</td></tr>
<tr><td>
[getHeartbleedTime(darknetServerData, threads, player)](./bitburner.darknetformulas.getheartbleedtime.md)
</td><td>
Gets the time it will take to scrape logs from a server.
</td></tr>
</tbody></table>

View File

@@ -0,0 +1,16 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetInstability](./bitburner.darknetinstability.md)
## DarknetInstability type
Instability of the darknet caused by excessive backdoor-ing of servers.
**Signature:**
```typescript
type DarknetInstability = {
authenticationDurationMultiplier: number;
authenticationTimeoutChance: number;
};
```

View File

@@ -0,0 +1,14 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetResponseCode](./bitburner.darknetresponsecode.md)
## DarknetResponseCode type
**Signature:**
```typescript
type DarknetResponseCode = _ValueOf<DarknetResponseCodeType>;
```
**References:** [\_ValueOf](./bitburner._valueof.md)<!-- -->, [DarknetResponseCodeType](./bitburner.darknetresponsecodetype.md)

View File

@@ -0,0 +1,35 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetResponseCodeType](./bitburner.darknetresponsecodetype.md)
## DarknetResponseCodeType type
Errors:
- DirectConnectionRequired: The target server is not directly connected to the current server. This may be caused by a user error (specifying the wrong neighbor host's hostname) or a network change (the target server was moved).
- AuthFailure: Authentication failed. The password is incorrect.
- NotFound: The API requires a specific resource (e.g., an exe file), but it does not exist on the server.
- RequestTimeOut: The request failed (though the password may or may not have been correct). Caused by network instability.
- ServiceUnavailable: The server is offline.
**Signature:**
```typescript
type DarknetResponseCodeType = {
Success: 200;
DirectConnectionRequired: 351;
AuthFailure: 401;
Forbidden: 403;
NotFound: 404;
RequestTimeOut: 408;
NotEnoughCharisma: 451;
StasisLinkLimitReached: 453;
NoBlockRAM: 454;
PhishingFailed: 455;
ServiceUnavailable: 503;
};
```

View File

@@ -0,0 +1,14 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetResult](./bitburner.darknetresult.md)
## DarknetResult type
**Signature:**
```typescript
export type DarknetResult = { success: boolean; code: DarknetResponseCode; message: string };
```
**References:** [DarknetResponseCode](./bitburner.darknetresponsecode.md)

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [backdoorInstalled](./bitburner.darknetserverdata.backdoorinstalled.md)
## DarknetServerData.backdoorInstalled property
Flag indicating whether this server has a backdoor installed by the player
**Signature:**
```typescript
backdoorInstalled: boolean;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [blockedRam](./bitburner.darknetserverdata.blockedram.md)
## DarknetServerData.blockedRam property
The amount of ram blocked by the server owner
**Signature:**
```typescript
blockedRam: number;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [cpuCores](./bitburner.darknetserverdata.cpucores.md)
## DarknetServerData.cpuCores property
Number of CPU cores
**Signature:**
```typescript
cpuCores: number;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [depth](./bitburner.darknetserverdata.depth.md)
## DarknetServerData.depth property
The depth of the server in the net
**Signature:**
```typescript
depth: number;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [difficulty](./bitburner.darknetserverdata.difficulty.md)
## DarknetServerData.difficulty property
The difficulty rating of the server, associated with its original depth in the net
**Signature:**
```typescript
difficulty: number;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [hasAdminRights](./bitburner.darknetserverdata.hasadminrights.md)
## DarknetServerData.hasAdminRights property
Flag indicating whether the player has admin/root access to this server
**Signature:**
```typescript
hasAdminRights: boolean;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [hasStasisLink](./bitburner.darknetserverdata.hasstasislink.md)
## DarknetServerData.hasStasisLink property
If the server has a stasis link applied
**Signature:**
```typescript
hasStasisLink: boolean;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [hostname](./bitburner.darknetserverdata.hostname.md)
## DarknetServerData.hostname property
Hostname. Must be unique
**Signature:**
```typescript
hostname: string;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [ip](./bitburner.darknetserverdata.ip.md)
## DarknetServerData.ip property
IP Address. Must be unique
**Signature:**
```typescript
ip: string;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [isConnectedTo](./bitburner.darknetserverdata.isconnectedto.md)
## DarknetServerData.isConnectedTo property
Flag indicating whether the player's terminal is currently connected to this server
**Signature:**
```typescript
isConnectedTo: boolean;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [isStationary](./bitburner.darknetserverdata.isstationary.md)
## DarknetServerData.isStationary property
If this darknet server cannot be moved. True for fixed/story servers.
**Signature:**
```typescript
isStationary: boolean;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [logTrafficInterval](./bitburner.darknetserverdata.logtrafficinterval.md)
## DarknetServerData.logTrafficInterval property
The interval at which the server periodically adds to its logs, in seconds.
**Signature:**
```typescript
logTrafficInterval: number;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [maxRam](./bitburner.darknetserverdata.maxram.md)
## DarknetServerData.maxRam property
Max RAM (GB) of this server
**Signature:**
```typescript
maxRam: number;
```

View File

@@ -0,0 +1,400 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md)
## DarknetServerData interface
Darknet server data.
**Signature:**
```typescript
export interface DarknetServerData
```
## Properties
<table><thead><tr><th>
Property
</th><th>
Modifiers
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
[backdoorInstalled](./bitburner.darknetserverdata.backdoorinstalled.md)
</td><td>
</td><td>
boolean
</td><td>
Flag indicating whether this server has a backdoor installed by the player
</td></tr>
<tr><td>
[blockedRam](./bitburner.darknetserverdata.blockedram.md)
</td><td>
</td><td>
number
</td><td>
The amount of ram blocked by the server owner
</td></tr>
<tr><td>
[cpuCores](./bitburner.darknetserverdata.cpucores.md)
</td><td>
</td><td>
number
</td><td>
Number of CPU cores
</td></tr>
<tr><td>
[depth](./bitburner.darknetserverdata.depth.md)
</td><td>
</td><td>
number
</td><td>
The depth of the server in the net
</td></tr>
<tr><td>
[difficulty](./bitburner.darknetserverdata.difficulty.md)
</td><td>
</td><td>
number
</td><td>
The difficulty rating of the server, associated with its original depth in the net
</td></tr>
<tr><td>
[hasAdminRights](./bitburner.darknetserverdata.hasadminrights.md)
</td><td>
</td><td>
boolean
</td><td>
Flag indicating whether the player has admin/root access to this server
</td></tr>
<tr><td>
[hasStasisLink](./bitburner.darknetserverdata.hasstasislink.md)
</td><td>
</td><td>
boolean
</td><td>
If the server has a stasis link applied
</td></tr>
<tr><td>
[hostname](./bitburner.darknetserverdata.hostname.md)
</td><td>
</td><td>
string
</td><td>
Hostname. Must be unique
</td></tr>
<tr><td>
[ip](./bitburner.darknetserverdata.ip.md)
</td><td>
</td><td>
string
</td><td>
IP Address. Must be unique
</td></tr>
<tr><td>
[isConnectedTo](./bitburner.darknetserverdata.isconnectedto.md)
</td><td>
</td><td>
boolean
</td><td>
Flag indicating whether the player's terminal is currently connected to this server
</td></tr>
<tr><td>
[isStationary](./bitburner.darknetserverdata.isstationary.md)
</td><td>
</td><td>
boolean
</td><td>
If this darknet server cannot be moved. True for fixed/story servers.
</td></tr>
<tr><td>
[logTrafficInterval](./bitburner.darknetserverdata.logtrafficinterval.md)
</td><td>
</td><td>
number
</td><td>
The interval at which the server periodically adds to its logs, in seconds.
</td></tr>
<tr><td>
[maxRam](./bitburner.darknetserverdata.maxram.md)
</td><td>
</td><td>
number
</td><td>
Max RAM (GB) of this server
</td></tr>
<tr><td>
[modelId](./bitburner.darknetserverdata.modelid.md)
</td><td>
</td><td>
string
</td><td>
The model of the server. Similar models have similar vulnerabilities. The model list is intentionally undocumented. You are supposed to experiment and discover the models.
</td></tr>
<tr><td>
[passwordHintData](./bitburner.darknetserverdata.passwordhintdata.md)
</td><td>
</td><td>
string
</td><td>
Data associated with the password hint
</td></tr>
<tr><td>
[purchasedByPlayer](./bitburner.darknetserverdata.purchasedbyplayer.md)
</td><td>
</td><td>
boolean
</td><td>
Whether this server was purchased by the player. Always false for darknet servers
</td></tr>
<tr><td>
[ramUsed](./bitburner.darknetserverdata.ramused.md)
</td><td>
</td><td>
number
</td><td>
Used RAM (GB). i.e. unavailable RAM
</td></tr>
<tr><td>
[requiredCharismaSkill](./bitburner.darknetserverdata.requiredcharismaskill.md)
</td><td>
</td><td>
number
</td><td>
The charisma skill required to heartbleed the server
</td></tr>
<tr><td>
[staticPasswordHint](./bitburner.darknetserverdata.staticpasswordhint.md)
</td><td>
</td><td>
string
</td><td>
The generic password prompt for the server
</td></tr>
</tbody></table>

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [modelId](./bitburner.darknetserverdata.modelid.md)
## DarknetServerData.modelId property
The model of the server. Similar models have similar vulnerabilities. The model list is intentionally undocumented. You are supposed to experiment and discover the models.
**Signature:**
```typescript
modelId: string;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [passwordHintData](./bitburner.darknetserverdata.passwordhintdata.md)
## DarknetServerData.passwordHintData property
Data associated with the password hint
**Signature:**
```typescript
passwordHintData: string;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [purchasedByPlayer](./bitburner.darknetserverdata.purchasedbyplayer.md)
## DarknetServerData.purchasedByPlayer property
Whether this server was purchased by the player. Always false for darknet servers
**Signature:**
```typescript
purchasedByPlayer: boolean;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [ramUsed](./bitburner.darknetserverdata.ramused.md)
## DarknetServerData.ramUsed property
Used RAM (GB). i.e. unavailable RAM
**Signature:**
```typescript
ramUsed: number;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [requiredCharismaSkill](./bitburner.darknetserverdata.requiredcharismaskill.md)
## DarknetServerData.requiredCharismaSkill property
The charisma skill required to heartbleed the server
**Signature:**
```typescript
requiredCharismaSkill: number;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [DarknetServerData](./bitburner.darknetserverdata.md) &gt; [staticPasswordHint](./bitburner.darknetserverdata.staticpasswordhint.md)
## DarknetServerData.staticPasswordHint property
The generic password prompt for the server
**Signature:**
```typescript
staticPasswordHint: string;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Formulas](./bitburner.formulas.md) &gt; [dnet](./bitburner.formulas.dnet.md)
## Formulas.dnet property
Darknet formulas
**Signature:**
```typescript
dnet: DarknetFormulas;
```

View File

@@ -57,6 +57,25 @@ Description
Bladeburner formulas
</td></tr>
<tr><td>
[dnet](./bitburner.formulas.dnet.md)
</td><td>
</td><td>
[DarknetFormulas](./bitburner.darknetformulas.md)
</td><td>
Darknet formulas
</td></tr>
<tr><td>

View File

@@ -0,0 +1,17 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [HeartbleedOptions](./bitburner.heartbleedoptions.md)
## HeartbleedOptions type
Options to change the behavior of [heartbleed](./bitburner.darknet.heartbleed.md) API.
**Signature:**
```typescript
type HeartbleedOptions = {
peek?: boolean;
logsToCapture?: number;
additionalMsec?: number;
};
```

View File

@@ -28,6 +28,7 @@ type LocationNameEnumType = {
ChongqingKuaiGongInternational: "KuaiGong International";
ChongqingSolarisSpaceSystems: "Solaris Space Systems";
ChongqingChurchOfTheMachineGod: "Church of the Machine God";
ChongqingShadowedWalkway: "Shadowed Walkway";
Sector12AlphaEnterprises: "Alpha Enterprises";
Sector12BladeIndustries: "Blade Industries";

View File

@@ -346,6 +346,39 @@ Data representing the internal values of a crime.
Crime
</td></tr>
<tr><td>
[Darknet](./bitburner.darknet.md)
</td><td>
Darknet API
</td></tr>
<tr><td>
[DarknetFormulas](./bitburner.darknetformulas.md)
</td><td>
Darknet formulas
</td></tr>
<tr><td>
[DarknetServerData](./bitburner.darknetserverdata.md)
</td><td>
Darknet server data.
</td></tr>
<tr><td>
@@ -1558,6 +1591,16 @@ Operation names of Bladeburner
Skill names type of Bladeburner
</td></tr>
<tr><td>
[CacheResult](./bitburner.cacheresult.md)
</td><td>
</td></tr>
<tr><td>
@@ -1760,6 +1803,58 @@ Names of all companies
</td></tr>
<tr><td>
[DarknetInstability](./bitburner.darknetinstability.md)
</td><td>
Instability of the darknet caused by excessive backdoor-ing of servers.
</td></tr>
<tr><td>
[DarknetResponseCode](./bitburner.darknetresponsecode.md)
</td><td>
</td></tr>
<tr><td>
[DarknetResponseCodeType](./bitburner.darknetresponsecodetype.md)
</td><td>
Errors:
- DirectConnectionRequired: The target server is not directly connected to the current server. This may be caused by a user error (specifying the wrong neighbor host's hostname) or a network change (the target server was moved).
- AuthFailure: Authentication failed. The password is incorrect.
- NotFound: The API requires a specific resource (e.g., an exe file), but it does not exist on the server.
- RequestTimeOut: The request failed (though the password may or may not have been correct). Caused by network instability.
- ServiceUnavailable: The server is offline.
</td></tr>
<tr><td>
[DarknetResult](./bitburner.darknetresult.md)
</td><td>
</td></tr>
<tr><td>
@@ -1904,6 +1999,17 @@ Locations of gym
</td></tr>
<tr><td>
[HeartbleedOptions](./bitburner.heartbleedoptions.md)
</td><td>
Options to change the behavior of [heartbleed](./bitburner.darknet.heartbleed.md) API.
</td></tr>
<tr><td>
@@ -2059,6 +2165,17 @@ Use React.createElement to make the ReactElement type, see [creating an element
</td></tr>
<tr><td>
[ServerAuthDetails](./bitburner.serverauthdetails.md)
</td><td>
Details about a server's authentication schema
</td></tr>
<tr><td>

View File

@@ -0,0 +1,18 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [NS](./bitburner.ns.md) &gt; [dnet](./bitburner.ns.dnet.md)
## NS.dnet property
Namespace for darknet functions. Contains spoilers.
**Signature:**
```typescript
readonly dnet: Darknet;
```
## Remarks
RAM cost: 0 GB

View File

@@ -106,7 +106,7 @@ Returns the PID of a successfully started script, and 0 otherwise.
RAM cost: 1.3 GB
Run a script as a separate process on a specified server. This is similar to the function [run](./bitburner.ns.run.md) except that it can be used to run a script that already exists on any server, instead of just the current server.
Run a script as a separate process on a specified server. This is similar to the function [run](./bitburner.ns.run.md)<!-- -->, except that it can be used to run a script that already exists on any server, instead of just the current server.
If the script was successfully started, then this function returns the PID of that script. Otherwise, it returns 0.

View File

@@ -58,7 +58,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of target server. Optional. Defaults to the server the calling script is running on.
_(Optional)_ Hostname/IP of target server. Optional, defaults to the server the script is running on.
</td></tr>

View File

@@ -9,7 +9,7 @@ Get the execution time of a grow() call.
**Signature:**
```typescript
getGrowTime(host?: string): number;
getGrowTime(host: string): number;
```
## Parameters
@@ -42,7 +42,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of target server. Optional. Defaults to the server the calling script is running on.
Hostname/IP of target server.
</td></tr>

View File

@@ -9,7 +9,7 @@ Get the execution time of a hack() call.
**Signature:**
```typescript
getHackTime(host?: string): number;
getHackTime(host: string): number;
```
## Parameters
@@ -42,7 +42,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of target server. Optional. Defaults to the server the calling script is running on.
Hostname/IP of target server.
</td></tr>

View File

@@ -58,7 +58,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of target server. Optional. Defaults to the server the calling script is running on.
_(Optional)_ Hostname/IP of target server. Optional, defaults to the server the calling script is running on.
</td></tr>

View File

@@ -58,7 +58,7 @@ string
</td><td>
_(Optional)_ Optional. Hostname/IP of the server that the script is on. Defaults to the server the calling script is running on.
_(Optional)_ Optional. Hostname/IP of the server that the script is on.
</td></tr>

View File

@@ -4,12 +4,14 @@
## NS.getServer() method
Returns a server object for the given server.
Returns data of a server.
If the server is a darknet server and has recently gone offline, it will return a dummy server object with `isOnline: false`<!-- -->.
**Signature:**
```typescript
getServer(host?: string): Server;
getServer(host?: string): Server | (DarknetServerData & { isOnline: boolean });
```
## Parameters
@@ -42,7 +44,7 @@ string
</td><td>
_(Optional)_ Optional. Hostname/IP for the requested server object. Defaults to the server the calling script is running on.
_(Optional)_ Optional. Hostname/IP of the server. Defaults to the hostname of the running script's server.
</td></tr>
@@ -50,9 +52,9 @@ _(Optional)_ Optional. Hostname/IP for the requested server object. Defaults to
**Returns:**
[Server](./bitburner.server.md)
[Server](./bitburner.server.md) \| ([DarknetServerData](./bitburner.darknetserverdata.md) &amp; { isOnline: boolean })
The requested server object.
Data of the server.
## Remarks

View File

@@ -9,7 +9,7 @@ Get the execution time of a weaken() call.
**Signature:**
```typescript
getWeakenTime(host?: string): number;
getWeakenTime(host: string): number;
```
## Parameters
@@ -42,7 +42,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of target server. Optional. Defaults to the server the calling script is running on.
Hostname/IP of target server.
</td></tr>

View File

@@ -58,7 +58,7 @@ string
</td><td>
_(Optional)_ Optional. Hostname/IP of the target server. If specified, the value of the "threads" parameter is limited to the number of threads needed to reach the specified server's maximum money.
_(Optional)_ Optional. Hostname/IP of the target server. If provided, security increase is limited by the number of threads needed to reach maximum money.
</td></tr>

View File

@@ -4,7 +4,7 @@
## NS.hackAnalyzeSecurity() method
Get the security increase for a number of hack threads.
Get the security increase for a number of threads.
**Signature:**
@@ -58,7 +58,7 @@ string
</td><td>
_(Optional)_ Optional. Hostname/IP of the target server. If specified, the value of the "threads" parameter is limited to the number of threads needed to hack the specified server's maximum amount of money.
_(Optional)_ Hostname/IP of the target server. The number of threads is limited to the number needed to hack the server's maximum amount of money.
</td></tr>

View File

@@ -58,7 +58,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of target server. Optional. Defaults to the server the calling script is running on.
_(Optional)_ Hostname/IP of target server. Optional, defaults to the server the calling script is running on.
</td></tr>

View File

@@ -58,7 +58,7 @@ string
</td><td>
_(Optional)_ Hostname/IP where the script to kill is running. Optional. Defaults to the server the calling script is running on.
_(Optional)_ Hostname/IP where the script to kill is running. Defaults to the current server.
</td></tr>

View File

@@ -42,7 +42,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of the server on which to kill all scripts. Optional. Defaults to the server the calling script is running on.
_(Optional)_ Hostname/IP of the server on which to kill all scripts.
</td></tr>
@@ -58,7 +58,7 @@ boolean
</td><td>
_(Optional)_ Skips the script that calls this function. Optional. Defaults to false.
_(Optional)_ Skips the script that calls this function
</td></tr>

View File

@@ -154,6 +154,27 @@ Namespace for [coding contract](./bitburner.codingcontract.md) functions.
Namespace for [corporation](./bitburner.corporation.md) functions. Contains spoilers.
</td></tr>
<tr><td>
[dnet](./bitburner.ns.dnet.md)
</td><td>
`readonly`
</td><td>
[Darknet](./bitburner.darknet.md)
</td><td>
Namespace for darknet functions. Contains spoilers.
</td></tr>
<tr><td>
@@ -904,7 +925,9 @@ Get the ram cost of a script.
</td><td>
Returns a server object for the given server.
Returns data of a server.
If the server is a darknet server and has recently gone offline, it will return a dummy server object with `isOnline: false`<!-- -->.
</td></tr>
@@ -1135,7 +1158,7 @@ Get the chance of successfully hacking a server.
</td><td>
Get the security increase for a number of hack threads.
Get the security increase for a number of threads.
</td></tr>
@@ -1421,7 +1444,7 @@ Start another script on the current server.
</td><td>
Get the list of hostnames or IP addresses connected to a server.
Get the list of hostnames or IP addresses connected to a server. This function does not return darknet servers (e.g., darkweb). Use [probe](./bitburner.darknet.probe.md) if you want to list darknet servers.
</td></tr>

View File

@@ -42,7 +42,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of the target server. Optional. Defaults to the server the calling script is running on.
_(Optional)_ Hostname/IP of the target server. If not specified, it will be the current servers IP by default.
</td></tr>

View File

@@ -58,7 +58,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of the server on which to delete the file. Optional. Defaults to the server the calling script is running on.
_(Optional)_ Hostname/IP of the server on which to delete the file. Optional. Defaults to current server.
</td></tr>

View File

@@ -4,7 +4,7 @@
## NS.scan() method
Get the list of hostnames or IP addresses connected to a server.
Get the list of hostnames or IP addresses connected to a server. This function does not return darknet servers (e.g., darkweb). Use [probe](./bitburner.darknet.probe.md) if you want to list darknet servers.
**Signature:**
@@ -42,7 +42,7 @@ string \| null
</td><td>
_(Optional)_ Optional. Hostname/IP of the server to scan. Defaults to the server the calling script is running on.
_(Optional)_ Optional. Hostname/IP of the server to scan, default to current server.
</td></tr>

View File

@@ -112,4 +112,5 @@ const server = ns.args[0];
const files = ["hack.js", "weaken.js", "grow.js"];
ns.scp(files, server, "home");
```
For password-protected servers (such as darknet servers), a session must be established with the destination server before using this function.

View File

@@ -96,6 +96,8 @@ Because this function immediately terminates the script, it does not have a retu
Running this function with 0 or fewer threads will cause a runtime error.
For password-protected servers (such as darknet servers), a session must be established with the destination server before using this function.
## Example

View File

@@ -74,7 +74,7 @@ string
</td><td>
_(Optional)_ Hostname/IP of server for target file. Optional. Defaults to the server the calling script is running on.
_(Optional)_ Optional hostname/ip of server for target file.
</td></tr>

View File

@@ -26,7 +26,8 @@ type NSEnums = {
BladeburnerActionType: BladeburnerActionEnumType;
SpecialBladeburnerActionTypeForSleeve: SpecialBladeburnerActionEnumTypeForSleeve;
FragmentType: FragmentEnumType;
DarknetResponseCode: DarknetResponseCodeType;
};
```
**References:** [CityNameEnumType](./bitburner.citynameenumtype.md)<!-- -->, [CrimeEnumType](./bitburner.crimeenumtype.md)<!-- -->, [FactionWorkEnumType](./bitburner.factionworkenumtype.md)<!-- -->, [GymEnumType](./bitburner.gymenumtype.md)<!-- -->, [JobNameEnumType](./bitburner.jobnameenumtype.md)<!-- -->, [JobFieldEnumType](./bitburner.jobfieldenumtype.md)<!-- -->, [LocationNameEnumType](./bitburner.locationnameenumtype.md)<!-- -->, [ToastVariantEnumType](./bitburner.toastvariantenumtype.md)<!-- -->, [UniversityClassEnumType](./bitburner.universityclassenumtype.md)<!-- -->, [CompanyNameEnumType](./bitburner.companynameenumtype.md)<!-- -->, [FactionNameEnumType](./bitburner.factionnameenumtype.md)<!-- -->, [CodingContractNameEnumType](./bitburner.codingcontractnameenumtype.md)<!-- -->, [PositionEnumType](./bitburner.positionenumtype.md)<!-- -->, [OrderEnumType](./bitburner.orderenumtype.md)<!-- -->, [BladeburnerActionEnumType](./bitburner.bladeburneractionenumtype.md)<!-- -->, [SpecialBladeburnerActionEnumTypeForSleeve](./bitburner.specialbladeburneractionenumtypeforsleeve.md)<!-- -->, [FragmentEnumType](./bitburner.fragmentenumtype.md)
**References:** [CityNameEnumType](./bitburner.citynameenumtype.md)<!-- -->, [CrimeEnumType](./bitburner.crimeenumtype.md)<!-- -->, [FactionWorkEnumType](./bitburner.factionworkenumtype.md)<!-- -->, [GymEnumType](./bitburner.gymenumtype.md)<!-- -->, [JobNameEnumType](./bitburner.jobnameenumtype.md)<!-- -->, [JobFieldEnumType](./bitburner.jobfieldenumtype.md)<!-- -->, [LocationNameEnumType](./bitburner.locationnameenumtype.md)<!-- -->, [ToastVariantEnumType](./bitburner.toastvariantenumtype.md)<!-- -->, [UniversityClassEnumType](./bitburner.universityclassenumtype.md)<!-- -->, [CompanyNameEnumType](./bitburner.companynameenumtype.md)<!-- -->, [FactionNameEnumType](./bitburner.factionnameenumtype.md)<!-- -->, [CodingContractNameEnumType](./bitburner.codingcontractnameenumtype.md)<!-- -->, [PositionEnumType](./bitburner.positionenumtype.md)<!-- -->, [OrderEnumType](./bitburner.orderenumtype.md)<!-- -->, [BladeburnerActionEnumType](./bitburner.bladeburneractionenumtype.md)<!-- -->, [SpecialBladeburnerActionEnumTypeForSleeve](./bitburner.specialbladeburneractionenumtypeforsleeve.md)<!-- -->, [FragmentEnumType](./bitburner.fragmentenumtype.md)<!-- -->, [DarknetResponseCodeType](./bitburner.darknetresponsecodetype.md)

View File

@@ -0,0 +1,22 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [ServerAuthDetails](./bitburner.serverauthdetails.md)
## ServerAuthDetails type
Details about a server's authentication schema
**Signature:**
```typescript
type ServerAuthDetails = {
isConnectedToCurrentServer: boolean;
hasSession: boolean;
modelId: string;
passwordHint: string;
data: string;
logTrafficInterval: number;
passwordLength: number;
passwordFormat: "numeric" | "alphabetic" | "alphanumeric" | "ASCII" | "unicode";
};
```

View File

@@ -58,7 +58,7 @@ string
</td><td>
_(Optional)_ Optional. Hostname/IP of the script being tailed. Defaults to the server the calling script is running on.
_(Optional)_ Optional. Hostname/IP of the script being tailed. Defaults to the server this script is running on. If args are specified, this is not optional.
</td></tr>

View File

@@ -74,7 +74,7 @@ string
</td><td>
_(Optional)_ Optional. Hostname/IP of the target script. Defaults to the server the calling script is running on.
_(Optional)_ Optional. Hostname/IP of the target script. Defaults to the server this script is running on. If args are specified, this is not optional.
</td></tr>

View File

@@ -136,6 +136,11 @@
"Name": "IPvGO Subnet Takeover",
"Description": "Acquire SF14.1"
},
"SF15.1": {
"ID": "SF15.1",
"Name": "The Secrets of the Dark Net",
"Description": "Acquire SF15.1"
},
"MONEY_1Q": {
"ID": "MONEY_1Q",
"Name": "Here comes the money!",
@@ -406,6 +411,11 @@
"Name": "Ten Steps Ahead",
"Description": "Get a winning streak of 10 against Illuminati."
},
"DARKNET_BACKDOOR": {
"ID": "DARKNET_BACKDOOR",
"Name": "Make your Own Network",
"Description": "Install a backdoor on 50 or more darknet servers at once."
},
"CHALLENGE_BN1": {
"ID": "CHALLENGE_BN1",
"Name": "BN1: Challenge",
@@ -461,6 +471,11 @@
"Name": "BN14: Challenge",
"Description": "Destroy BN14 without making a move or cheating via IPvGO APIs."
},
"CHALLENGE_BN15": {
"ID": "CHALLENGE_BN15",
"Name": "BN15: Challenge",
"Description": "Open the cache on the final lab in the darknet."
},
"BYPASS": {
"ID": "BYPASS",
"Name": "Exploit: bypass",

View File

@@ -37,6 +37,8 @@ import { activateSteamAchievements } from "../Electron";
import { Go } from "../Go/Go";
import { type AchievementId, type SFAchievementId, SFAchievementIds } from "./Types";
import { getAllMovableDarknetServers } from "../DarkNet/utils/darknetNetworkUtils";
function assertAchievements(
achievements: typeof data.achievements,
): asserts achievements is AchievementDataJson["achievements"] {
@@ -66,7 +68,7 @@ function assertAchievements(
* - Typechecking at compile time: ID must be AchievementId, not string.
* - Runtime check: The value of ID must be the same as the key of the achievement. For example, with "CYBERSEC"
* achievement, the key is "CYBERSEC", so its ID must also be "CYBERSEC".
*
*
* We use assertAchievements to do the runtime check and assert the type.
*/
const achievementData = data.achievements;
@@ -582,6 +584,13 @@ export const achievements: Record<AchievementId, Achievement> = {
Condition: () => false,
NotInSteam: true,
},
DARKNET_BACKDOOR: {
...achievementData.DARKNET_BACKDOOR,
Icon: "darknet-backdoor",
Visible: knowAboutBitverse,
Condition: () => getAllMovableDarknetServers().filter((s) => s.backdoorInstalled).length >= 50,
NotInSteam: true,
},
CHALLENGE_BN1: {
...achievementData.CHALLENGE_BN1,
Icon: "BN1+",
@@ -672,6 +681,13 @@ export const achievements: Record<AchievementId, Achievement> = {
Condition: () => Player.bitNodeN === 14 && isBitNodeFinished() && !Go.moveOrCheatViaApi,
NotInSteam: true,
},
CHALLENGE_BN15: {
...achievementData.CHALLENGE_BN15,
Icon: "BN15+",
Visible: knowAboutBitverse,
Condition: () => Player.augmentations.some((a) => a.name === AugmentationName.TheSword),
NotInSteam: true,
},
BYPASS: {
...achievementData.BYPASS,
Icon: "SF-1",

View File

@@ -16,5 +16,6 @@ export const SFAchievementIds = [
"SF12.1",
"SF13.1",
"SF14.1",
"SF15.1",
] as const;
export type SFAchievementId = (typeof SFAchievementIds)[number];

View File

@@ -19,6 +19,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
"triggers feelings of admiration and approval in other people.",
company_rep: 1.1,
faction_rep: 1.1,
charisma_exp: 1.05,
factions: [
FactionName.TianDiHui,
FactionName.TheSyndicate,
@@ -36,6 +37,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
"triggers feelings of admiration, approval, and respect in others.",
company_rep: 1.2,
faction_rep: 1.2,
charisma: 1.2,
factions: [
FactionName.Silhouette,
FactionName.FourSigma,
@@ -76,6 +78,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
"Pheromone extruder injected in the thoracodorsal nerve. Emits pleasing scent guaranteed to " +
"make conversational partners more agreeable.",
stats: "This augmentation makes the Bribe minigame easier by indicating the incorrect paths.",
charisma: 1.1,
isSpecial: true,
factions: [FactionName.ShadowsOfAnarchy],
},
@@ -514,9 +517,22 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
"millions of nanobots capable of projecting high-density muon beams, " +
"creating an energy barrier around the user.",
defense: 1.4,
charisma: 1.1,
factions: [FactionName.Volhaven],
},
// === E === //
[AugmentationName.Eloquence]: {
repCost: 2.5e4,
moneyCost: 2.5e8,
info:
"A neural implant that enhances the user's ability to resonate with others. " +
"It is capable of analyzing and interpreting the emotions of those nearby, allowing " +
"the user to better understand and influence them.",
charisma: 1.1,
crime_success: 1.1,
work_money: 1.2,
factions: [FactionName.SpeakersForTheDead],
},
[AugmentationName.EMS4Recombination]: {
repCost: 2.5e3,
moneyCost: 2.75e8,
@@ -738,6 +754,28 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
],
},
// === G === //
[AugmentationName.Glib]: {
repCost: 4.05e4,
moneyCost: 2.5e9,
info:
"An implant that, when activated, makes the speaker sound unbelievably reasonable and plausible to listeners " +
"for the next hour. It requires no concentration from the user, and only a verbal activation component. It even affects " +
"most electronic detection methods.",
charisma_exp: 1.2,
company_rep: 1.1,
factions: [FactionName.Tetrads, FactionName.Bladeburners],
},
[AugmentationName.GoldenTongue]: {
repCost: 1.25e5,
moneyCost: 1.25e8,
info:
"An aural implant that enhances the user's ability to communicate and persuade others. " +
"The implant uses a predictive model that lets the user say precisely what their audience " +
"wants to hear. This implant is commonly used by many high-level executives and government officials.",
charisma: 1.2,
charisma_exp: 1.3,
factions: [FactionName.SpeakersForTheDead],
},
[AugmentationName.GolemSerum]: {
repCost: 3.125e4,
moneyCost: 1.1e10,
@@ -873,6 +911,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
defense: 1.08,
agility: 1.08,
dexterity: 1.08,
charisma: 1.08,
factions: [FactionName.Tetrads, FactionName.TheDarkArmy, FactionName.TheSyndicate],
},
[AugmentationName.HiveMind]: {
@@ -906,6 +945,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
"Even though it contains no weapons, the advanced tungsten titanium " +
"alloy increases the user's strength to unbelievable levels.",
strength: 2.8,
charisma: 1.4,
factions: [FactionName.NWO],
},
[AugmentationName.HyperionV1]: {
@@ -945,6 +985,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
dexterity: 1.4,
hacking_speed: 1.03,
hacking_money: 1.1,
charisma: 1.05,
factions: [FactionName.BladeIndustries, FactionName.KuaiGongInternational],
},
// === I === //
@@ -992,6 +1033,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
"cells, when powered, have a negative refractive index. As a result, they bend light " +
"around the skin, making the user much harder to see with the naked eye.",
agility: 1.05,
charisma: 1.05,
crime_money: 1.1,
factions: [FactionName.SlumSnakes, FactionName.Tetrads],
},
@@ -1006,10 +1048,19 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
prereqs: [AugmentationName.LuminCloaking1],
agility: 1.1,
defense: 1.1,
charisma_exp: 1.1,
crime_money: 1.25,
factions: [FactionName.SlumSnakes, FactionName.Tetrads],
},
// === M === //
[AugmentationName.Magnetism]: {
repCost: 1.5e4,
moneyCost: 2.5e8,
info: "A cranial implant that increases the attractive force of the wearer. (Even its inventor isn't quite sure how it works).",
charisma: 1.1,
company_rep: 1.1,
factions: [FactionName.TheBlackHand, FactionName.TheDarkArmy],
},
[AugmentationName.MightOfAres]: {
repCost: 1e4,
moneyCost: 1e6,
@@ -1030,6 +1081,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
"which improves its regenerative and extracellular homeostasis abilities.",
strength: 1.2,
defense: 1.2,
charisma: 1.1,
factions: [
FactionName.TheDarkArmy,
FactionName.TheSyndicate,
@@ -1050,6 +1102,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
"and restructure themselves.",
strength: 1.55,
defense: 1.55,
charisma: 1.55,
factions: [FactionName.BladeIndustries],
},
[AugmentationName.NeuralAccelerator]: {
@@ -1081,6 +1134,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
hacking_speed: 1.02,
hacking_chance: 1.1,
hacking_exp: 1.12,
charisma: 1.05,
factions: [
FactionName.TheBlackHand,
FactionName.Chongqing,
@@ -1240,6 +1294,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
"the bloodstream to improve memory, increase focus, and provide other " +
"cognitive enhancements.",
company_rep: 1.2,
charisma: 1.05,
factions: [
FactionName.TianDiHui,
FactionName.Volhaven,
@@ -1377,6 +1432,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
strength: 1.4,
defense: 1.4,
agility: 1.4,
charisma: 1.4,
factions: [FactionName.KuaiGongInternational],
},
[AugmentationName.PowerRecirculator]: {
@@ -1400,6 +1456,16 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
charisma_exp: 1.1,
factions: [FactionName.Tetrads, FactionName.TheDarkArmy, FactionName.TheSyndicate, FactionName.NWO],
},
[AugmentationName.Primer]: {
repCost: 1.875e5,
moneyCost: 3.375e9,
info:
"A cutting-edge knowledgebase entirely built off of nanotech rod-logic, training the user on social engineering. " +
"Thought to be stolen technology, its existance has been a secret until recently.",
charisma: 1.2,
charisma_exp: 1.4,
factions: [FactionName.TheDarkArmy, FactionName.TheSyndicate],
},
// === Q === //
[AugmentationName.QLink]: {
repCost: 1.875e6,
@@ -1422,11 +1488,22 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
info:
"A cranial implant that affects the user's personality, making them better " +
"at negotiation in social situations.",
charisma_exp: 1.15,
work_money: 1.1,
company_rep: 1.15,
faction_rep: 1.15,
factions: [FactionName.TianDiHui],
},
[AugmentationName.SocialDynamo]: {
repCost: 2.25e5,
moneyCost: 1.2e9,
info:
"Makes the wearer a better leader and mentor by greatly increasing their awareness of social dynamics. " +
"Not actually a standard implant, but rather a series of training courses and seminars, led by a famous speaker named Denis.",
charisma: 1.3,
company_rep: 1.3,
factions: [FactionName.MegaCorp, FactionName.ECorp, FactionName.OmniTekIncorporated],
},
[AugmentationName.SPTN97]: {
repCost: 1.25e6,
moneyCost: 4.875e9,
@@ -1451,6 +1528,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
"criminal organizations and allows the user to project and control holographic " +
"simulacrums within a large radius. These simulacrums are commonly used for " +
"espionage and surveillance work.",
charisma: 1.15,
company_rep: 1.15,
faction_rep: 1.15,
factions: [FactionName.TheSyndicate, FactionName.TheDarkArmy, FactionName.SpeakersForTheDead],
@@ -1471,7 +1549,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
[AugmentationName.SmartSonar]: {
repCost: 2.25e4,
moneyCost: 7.5e7,
info: "A cochlear implant that helps the user detect and locate enemies using sound propagation.",
info: "A cochlear implant that helps the player detect and locate enemies using sound propagation.",
dexterity: 1.1,
dexterity_exp: 1.15,
crime_money: 1.25,
@@ -1665,6 +1743,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
"Scientists have named these artificially enhanced units 'synfibrils'.",
strength: 1.3,
defense: 1.3,
charisma: 1.15,
factions: [
FactionName.KuaiGongInternational,
FactionName.FulcrumSecretTechnologies,
@@ -1684,6 +1763,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
"more efficiently than an organic heart.",
agility: 1.5,
strength: 1.5,
charisma: 1.5,
factions: [
FactionName.KuaiGongInternational,
FactionName.FulcrumSecretTechnologies,
@@ -1771,6 +1851,83 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
hacking_money: 1.1,
factions: [FactionName.TheBlackHand],
},
[AugmentationName.TheBrokenWings]: {
repCost: 1e4,
moneyCost: 1e6,
info:
"An experimental augmentation that lets the user make incredible leaps of insight and flights of fancy. " +
"Created by a mysterious figure known only as 'The Sculptor', this augmentation appears as a set of silvery " +
"metallic patterns on the user's upper back and shoulders. " +
"Awarded to those who discover the secrets of the labyrinth.",
stats: "This augmentation increases the stasis link limit by one, and raises charisma by 15% and agility by 10%.",
charisma: 1.15,
agility: 1.1,
isSpecial: true,
factions: [],
},
[AugmentationName.TheBoots]: {
repCost: 1e4,
moneyCost: 1e6,
info:
"Modeled after the winged boots of mythology, this implant somehow provides tireless social energy to the user. " +
"Its creator, the enigmatic Sculptor, refuses to reveal the details of how it works, and only mutters about 'liveware APIs'. " +
"Awarded to those who discover the secrets of the labyrinth.",
stats:
"This augmentation increases the speed of authentication and heartbleed by 20%, and raises charisma and dexterity by 20%.",
charisma: 1.2,
dexterity: 1.2,
isSpecial: true,
prereqs: [AugmentationName.TheBrokenWings],
factions: [],
},
[AugmentationName.TheHammer]: {
repCost: 1e4,
moneyCost: 1e6,
info:
"This unique augmentation allows the user to strike stright to the heart of the matter and sweep aside obstacles in the way of their goals. " +
"Appearing as a simple insignia on the user's forarm, its true function is unknown. It is said to be one of the tools of The Sculptor. " +
"Awarded to those who discover the secrets of the labyrinth.",
stats:
"This augmentation increases the stasis link limit by one, and raises charisma by 35% and strength by 25%.",
charisma: 1.35,
strength: 1.25,
isSpecial: true,
prereqs: [AugmentationName.TheBoots],
factions: [],
},
[AugmentationName.TheLaw]: {
repCost: 1e4,
moneyCost: 1e6,
info:
"An advanced neural implant that integrates Bayesian inference algorithms into the brain's decision-making processes. " +
"This augmentation enhances the user's ability to assess probabilities, predict outcomes, and adapt strategies in real-time, " +
"making them exceptionally persuasive and confident in negotiations and social interactions. " +
"Awarded to those who discover the secrets of the labyrinth.",
stats: "This augmentation raises charisma by 40%, hacking by 10%, and company rep by 5%.",
charisma: 1.4,
hacking: 1.1,
company_rep: 1.05,
isSpecial: true,
prereqs: [AugmentationName.TheHammer],
factions: [],
},
[AugmentationName.TheSword]: {
repCost: 1e4,
moneyCost: 1e6,
info:
"A cutting-edge neural implant that leverages Solomonoff induction to analyze and predict patterns with unparalleled precision. " +
"This augmentation enhances the user's ability to deduce optimal strategies and make compelling arguments, " +
"turning every interaction into a calculated success. The technique is sometimes referred to as Solomonoff's Lightsaber, as it is a " +
"more powerful version of Occam's razor. " +
"The final augment awarded to those who discover the secrets of the labyrinth.",
stats: "This augmentation raises charisma by 50%, hacking by 16%, and company rep by 10%.",
charisma: 1.5,
hacking: 1.16,
company_rep: 1.1,
isSpecial: true,
prereqs: [AugmentationName.TheLaw],
factions: [],
},
[AugmentationName.TheRedPill]: {
repCost: 2.5e6,
moneyCost: 0,
@@ -1797,6 +1954,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
"A synthetic symbiotic virus that is injected into human brain tissue. The Vangelis virus " +
"heightens the senses and focus of its host while also enhancing their intuition.",
dexterity_exp: 1.1,
charisma_exp: 1.1,
bladeburner_analysis: 1.1,
bladeburner_success_chance: 1.04,
isSpecial: true,
@@ -1813,6 +1971,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
prereqs: [AugmentationName.VangelisVirus],
defense_exp: 1.1,
dexterity_exp: 1.1,
charisma_exp: 1.1,
bladeburner_analysis: 1.15,
bladeburner_success_chance: 1.05,
isSpecial: true,
@@ -1858,6 +2017,17 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
isSpecial: true,
factions: [FactionName.ShadowsOfAnarchy],
},
[AugmentationName.Wit]: {
repCost: 5e3,
moneyCost: 1e7,
info:
"A connective brain implant that greatly increases the user's speech reaction time. " +
"This allows the user to think faster and respond quicker in negotiations, and always have the last word.",
charisma: 1.08,
charisma_exp: 1.1,
company_rep: 1.05,
factions: [FactionName.SlumSnakes, FactionName.BitRunners],
},
// === X === //
[AugmentationName.Xanipher]: {
repCost: 8.75e5,

Some files were not shown because too many files have changed in this diff Show More