diff --git a/markdown/bitburner.autocompletedata.md b/markdown/bitburner.autocompletedata.md
index 6c7020276..42e79061d 100644
--- a/markdown/bitburner.autocompletedata.md
+++ b/markdown/bitburner.autocompletedata.md
@@ -22,7 +22,7 @@ interface AutocompleteData
| [hostname](./bitburner.autocompletedata.hostname.md) | | string | The hostname of the server the script would be running on |
| [processes](./bitburner.autocompletedata.processes.md) | | [ProcessInfo](./bitburner.processinfo.md)\[\] | The processes running on the host |
| [scripts](./bitburner.autocompletedata.scripts.md) | | string\[\] | All scripts on the current server |
-| [servers](./bitburner.autocompletedata.servers.md) | | string\[\] | All server hostnames |
+| [servers](./bitburner.autocompletedata.servers.md) | | string\[\] |
All server hostnames.
Some servers are hidden until you satisfy their requirements. This array does not contain those servers if you do not satisfy their requirements.
|
| [txts](./bitburner.autocompletedata.txts.md) | | string\[\] | All text files on the current server |
## Methods
diff --git a/markdown/bitburner.autocompletedata.servers.md b/markdown/bitburner.autocompletedata.servers.md
index 12ba761d6..1f0e746ba 100644
--- a/markdown/bitburner.autocompletedata.servers.md
+++ b/markdown/bitburner.autocompletedata.servers.md
@@ -4,7 +4,9 @@
## AutocompleteData.servers property
-All server hostnames
+All server hostnames.
+
+Some servers are hidden until you satisfy their requirements. This array does not contain those servers if you do not satisfy their requirements.
**Signature:**
diff --git a/markdown/bitburner.goanalysis.md b/markdown/bitburner.goanalysis.md
index b7490f39e..7aa70ae9a 100644
--- a/markdown/bitburner.goanalysis.md
+++ b/markdown/bitburner.goanalysis.md
@@ -22,5 +22,5 @@ export interface GoAnalysis
| [getStats()](./bitburner.goanalysis.getstats.md) | Displays the game history, captured nodes, and gained bonuses for each opponent you have played against.
The details are keyed by opponent name, in this structure:
{ : { wins: number, losses: number, winStreak: number, highestWinStreak: number, favor: number, bonusPercent: number, bonusDescription: string, } } |
| [getValidMoves(boardState, priorBoardState, playAsWhite)](./bitburner.goanalysis.getvalidmoves.md) | Shows if each point on the board is a valid move for the player. By default, analyzes the current board state. Takes an optional boardState (and an optional prior-move boardState, if desired) to analyze a custom board.
The true/false validity of each move can be retrieved via the X and Y coordinates of the move. const validMoves = ns.go.analysis.getValidMoves();
const moveIsValid = validMoves[x][y];
Note that the \[0\]\[0\] point is shown on the bottom-left on the visual board (as is traditional), and each string represents a vertical column on the board. In other words, the printed example above can be understood to be rotated 90 degrees clockwise compared to the board UI as shown in the IPvGO subnet tab.
Also note that, when given a custom board state, only one prior move can be analyzed. This means that the superko rules (no duplicate board states in the full game history) is not supported; you will have to implement your own analysis for that.
The current valid moves for white can also be seen by simply calling ns.go.analysis.getValidMoves(true) .
|
| [resetStats(resetAll)](./bitburner.goanalysis.resetstats.md) | Reset all win/loss and winstreak records for the No AI opponent. |
-| [setTestingBoardState(boardState)](./bitburner.goanalysis.settestingboardstate.md) | Starts a new game against the "No AI" opponent, and sets the initial board size, pieces, and offline nodes to the given board state. "X" represent black pieces, "O" white, and "." empty points. "\#" are dead nodes that are not part of the subnet. |
+| [setTestingBoardState(boardState, komi)](./bitburner.goanalysis.settestingboardstate.md) | Starts a new game against the "No AI" opponent, and sets the initial board size, pieces, and offline nodes to the given board state. "X" represent black pieces, "O" white, and "." empty points. "\#" are dead nodes that are not part of the subnet. |
diff --git a/markdown/bitburner.goanalysis.settestingboardstate.md b/markdown/bitburner.goanalysis.settestingboardstate.md
index 14a4e4efd..5a0e0f6fb 100644
--- a/markdown/bitburner.goanalysis.settestingboardstate.md
+++ b/markdown/bitburner.goanalysis.settestingboardstate.md
@@ -9,7 +9,7 @@ Starts a new game against the "No AI" opponent, and sets the initial board size,
**Signature:**
```typescript
-setTestingBoardState(boardState: string[]): void;
+setTestingBoardState(boardState: string[], komi?: number): void;
```
## Parameters
@@ -17,6 +17,7 @@ setTestingBoardState(boardState: string[]): void;
| Parameter | Type | Description |
| --- | --- | --- |
| boardState | string\[\] | The initial board state to use for the new game, in the format used by getBoardState(). |
+| komi | number | _(Optional)_ Optional komi value to set for the game. Defaults to 5.5. |
**Returns:**
diff --git a/markdown/bitburner.ns.formatnumber.md b/markdown/bitburner.ns.formatnumber.md
index 68bfabb26..8e43643f4 100644
--- a/markdown/bitburner.ns.formatnumber.md
+++ b/markdown/bitburner.ns.formatnumber.md
@@ -18,7 +18,7 @@ formatNumber(n: number, fractionalDigits?: number, suffixStart?: number, isInteg
| --- | --- | --- |
| n | number | Number to format. |
| fractionalDigits | number | _(Optional)_ Number of digits to show in the fractional part of the decimal number. Optional, defaults to 3. |
-| suffixStart | number | _(Optional)_ How high a number must be before a suffix will be added. Optional, defaults to 1000. |
+| suffixStart | number | _(Optional)_ How high a number must be before a suffix will be added. Optional, defaults to 1000. Must be greater than or equal to 1000 if specified. |
| isInteger | boolean | _(Optional)_ Whether the number represents an integer. Integers do not display fractional digits until a suffix is present. Optional, defaults to false. |
**Returns:**
@@ -31,5 +31,13 @@ Formatted number.
RAM cost: 0 GB
-Converts a number into a numeric string with the specified format options. This is the same function that the game itself uses to display numbers. The format also depends on the Numeric Display settings (all options on the "Numeric Display" options page) To format ram or percentages, see [formatRam](./bitburner.ns.formatram.md) and [formatPercent](./bitburner.ns.formatpercent.md)
+Converts a number into a numeric string with the specified format options. This is the same function that the game itself uses to display numbers. The format also depends on the Numeric Display settings (all options on the "Numeric Display" options page) To format ram or percentages, see [formatRam](./bitburner.ns.formatram.md) and [formatPercent](./bitburner.ns.formatpercent.md).
+
+This function has some quirky undocumented behaviors. This is a non-exhaustive list of those behaviors:
+
+- "Infinity" and "-Infinity" are returned as "∞" and "-∞", respectively.
+
+- If you disable the suffix form in the settings page or the absolute value is greater than or equal to 1e33, this function will use the exponential form. This means that, if Math.abs(n) >= 1e33, the returned value is always in the exponential form, regardless of the setting.
+
+Note that the behaviors listed above are "undocumented", in the sense that we don't make any guarantee about backward compatibility. You must not rely on those behaviors.
diff --git a/src/Documentation/doc/basic/autocomplete.md b/src/Documentation/doc/basic/autocomplete.md
index b4a491d1a..de924f0ba 100644
--- a/src/Documentation/doc/basic/autocomplete.md
+++ b/src/Documentation/doc/basic/autocomplete.md
@@ -40,7 +40,7 @@ AutocompleteData is an object with the following properties;
filename: // the name of the script file containing the autocomplete function.
hostname: // the name of the host server the script would be running on.
processes: // list of all processes running on the current server.
- servers: // list of all servers in the game.
+ servers: // list of all servers in the game. Some servers are hidden until you satisfy their requirements. This array does not contain those servers if you do not satisfy their requirements.
txts: // list of all text files on the current server.
scripts: // list of all scripts on the current server.
flags: // the same flags function as passed with ns. Calling this function adds all the flags as autocomplete arguments.
diff --git a/src/ScriptEditor/NetscriptDefinitions.d.ts b/src/ScriptEditor/NetscriptDefinitions.d.ts
index d3a377881..ee5d7feb9 100644
--- a/src/ScriptEditor/NetscriptDefinitions.d.ts
+++ b/src/ScriptEditor/NetscriptDefinitions.d.ts
@@ -7963,11 +7963,22 @@ export interface NS {
* Converts a number into a numeric string with the specified format options.
* This is the same function that the game itself uses to display numbers. The format also depends on the Numeric
* Display settings (all options on the "Numeric Display" options page)
- * To format ram or percentages, see {@link NS.formatRam | formatRam} and {@link NS.formatPercent | formatPercent}
+ * To format ram or percentages, see {@link NS.formatRam | formatRam} and {@link NS.formatPercent | formatPercent}.
+ *
+ * This function has some quirky undocumented behaviors. This is a non-exhaustive list of those behaviors:
+ *
+ * - "Infinity" and "-Infinity" are returned as "∞" and "-∞", respectively.
+ *
+ * - If you disable the suffix form in the settings page or the absolute value is greater than or equal to 1e33, this
+ * function will use the exponential form. This means that, if Math.abs(n) >= 1e33, the returned value is always in
+ * the exponential form, regardless of the setting.
+ *
+ * Note that the behaviors listed above are "undocumented", in the sense that we don't make any guarantee about
+ * backward compatibility. You must not rely on those behaviors.
*
* @param n - Number to format.
* @param fractionalDigits - Number of digits to show in the fractional part of the decimal number. Optional, defaults to 3.
- * @param suffixStart - How high a number must be before a suffix will be added. Optional, defaults to 1000.
+ * @param suffixStart - How high a number must be before a suffix will be added. Optional, defaults to 1000. Must be greater than or equal to 1000 if specified.
* @param isInteger - Whether the number represents an integer. Integers do not display fractional digits until a suffix is present. Optional, defaults to false.
* @returns Formatted number.
*/
@@ -10116,7 +10127,12 @@ interface GameInfo {
* @public
*/
interface AutocompleteData {
- /** All server hostnames */
+ /**
+ * All server hostnames.
+ *
+ * Some servers are hidden until you satisfy their requirements. This array does not contain those servers if you do
+ * not satisfy their requirements.
+ */
servers: string[];
/** All scripts on the current server */
scripts: string[];