Merge pull request #816 from danielyxie/dev

0.49.3
This commit is contained in:
hydroflame 2021-03-13 15:19:56 -05:00 committed by GitHub
commit 63da8d709a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
209 changed files with 3035 additions and 2214 deletions

@ -360,9 +360,11 @@ a:visited {
font-size: $defaultFontSize * 0.8125;
}
input[type=checkbox] {
filter: invert(1) sepia(1) hue-rotate(41deg) brightness(100%) saturate(10);
}
.optionCheckbox {
filter: invert(1) sepia(1) hue-rotate(41deg) brightness(100%) saturate(10);
margin: 5px;
float: right;
}

File diff suppressed because one or more lines are too long

@ -1,2 +1,2 @@
!function(n){function t(t){for(var e,i,f=t[0],c=t[1],l=t[2],p=0,s=[];p<f.length;p++)i=f[p],u[i]&&s.push(u[i][0]),u[i]=0;for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(n[e]=c[e]);for(a&&a(t);s.length;)s.shift()();return r.push.apply(r,l||[]),o()}function o(){for(var n,t=0;t<r.length;t++){for(var o=r[t],e=!0,f=1;f<o.length;f++){var c=o[f];0!==u[c]&&(e=!1)}e&&(r.splice(t--,1),n=i(i.s=o[0]))}return n}var e={},u={1:0},r=[];function i(t){if(e[t])return e[t].exports;var o=e[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=n,i.c=e,i.d=function(n,t,o){i.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:o})},i.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},i.t=function(n,t){if(1&t&&(n=i(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var e in n)i.d(o,e,function(t){return n[t]}.bind(null,e));return o},i.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return i.d(t,"a",t),t},i.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},i.p="";var f=window.webpackJsonp=window.webpackJsonp||[],c=f.push.bind(f);f.push=t,f=f.slice();for(var l=0;l<f.length;l++)t(f[l]);var a=c;r.push([364,0]),o()}({307:function(n,t,o){},309:function(n,t,o){},311:function(n,t,o){},313:function(n,t,o){},315:function(n,t,o){},317:function(n,t,o){},319:function(n,t,o){},321:function(n,t,o){},323:function(n,t,o){},325:function(n,t,o){},327:function(n,t,o){},329:function(n,t,o){},331:function(n,t,o){},333:function(n,t,o){},335:function(n,t,o){},337:function(n,t,o){},339:function(n,t,o){},341:function(n,t,o){},343:function(n,t,o){},345:function(n,t,o){},347:function(n,t,o){},349:function(n,t,o){},351:function(n,t,o){},353:function(n,t,o){},355:function(n,t,o){},357:function(n,t,o){},359:function(n,t,o){},361:function(n,t,o){},364:function(n,t,o){"use strict";o.r(t);o(363),o(361),o(359),o(357),o(355),o(353),o(351),o(349),o(347),o(345),o(343),o(341),o(339),o(337),o(335),o(333),o(331),o(329),o(327),o(325),o(323),o(321),o(319),o(317),o(315),o(313),o(311),o(309),o(307)}});
!function(n){function t(t){for(var e,i,f=t[0],c=t[1],l=t[2],p=0,s=[];p<f.length;p++)i=f[p],u[i]&&s.push(u[i][0]),u[i]=0;for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(n[e]=c[e]);for(a&&a(t);s.length;)s.shift()();return r.push.apply(r,l||[]),o()}function o(){for(var n,t=0;t<r.length;t++){for(var o=r[t],e=!0,f=1;f<o.length;f++){var c=o[f];0!==u[c]&&(e=!1)}e&&(r.splice(t--,1),n=i(i.s=o[0]))}return n}var e={},u={1:0},r=[];function i(t){if(e[t])return e[t].exports;var o=e[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=n,i.c=e,i.d=function(n,t,o){i.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:o})},i.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},i.t=function(n,t){if(1&t&&(n=i(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var e in n)i.d(o,e,function(t){return n[t]}.bind(null,e));return o},i.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return i.d(t,"a",t),t},i.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},i.p="";var f=window.webpackJsonp=window.webpackJsonp||[],c=f.push.bind(f);f.push=t,f=f.slice();for(var l=0;l<f.length;l++)t(f[l]);var a=c;r.push([377,0]),o()}({320:function(n,t,o){},322:function(n,t,o){},324:function(n,t,o){},326:function(n,t,o){},328:function(n,t,o){},330:function(n,t,o){},332:function(n,t,o){},334:function(n,t,o){},336:function(n,t,o){},338:function(n,t,o){},340:function(n,t,o){},342:function(n,t,o){},344:function(n,t,o){},346:function(n,t,o){},348:function(n,t,o){},350:function(n,t,o){},352:function(n,t,o){},354:function(n,t,o){},356:function(n,t,o){},358:function(n,t,o){},360:function(n,t,o){},362:function(n,t,o){},364:function(n,t,o){},366:function(n,t,o){},368:function(n,t,o){},370:function(n,t,o){},372:function(n,t,o){},374:function(n,t,o){},377:function(n,t,o){"use strict";o.r(t);o(376),o(374),o(372),o(370),o(368),o(366),o(364),o(362),o(360),o(358),o(356),o(354),o(352),o(350),o(348),o(346),o(344),o(342),o(340),o(338),o(336),o(334),o(332),o(330),o(328),o(326),o(324),o(322),o(320)}});
//# sourceMappingURL=engineStyle.bundle.js.map

@ -356,8 +356,10 @@ a:visited {
.smallfont {
font-size: 13px; }
input[type=checkbox] {
filter: invert(1) sepia(1) hue-rotate(41deg) brightness(100%) saturate(10); }
.optionCheckbox {
filter: invert(1) sepia(1) hue-rotate(41deg) brightness(100%) saturate(10);
margin: 5px;
float: right; }

24
dist/vendor.bundle.js vendored

File diff suppressed because one or more lines are too long

@ -3,6 +3,37 @@
Changelog
=========
v0.49.2 - 2021-03-13 (hydroflame)
-------
BN8
* A new bitnode multipler has been added, it lets you reduce money from a
server without gaining actually any money. This is important for BN8 where
hack/grow can influence the stock market. No money can be gained from
hacking but server money can still be reduced.
Documentation
* readthedocs should now be more consistent and many examples were added.
Netscript
* Ace editor will now correctly highlight all functions.
* 'tFormat' is a new netscript function that returns a human readable
representation of milliseconds. eg. "2 hours 15 minute 43 seconds"
Gang
* style improvements
Bladeburner
* style improvements
* fix bug where 'skill list SKILL' would crash if skill is level 0.
Sleeve
* karma gain now scales with sync.
Misc.
Fix issue where the effective stats under Character>Stats were being calculated.
v0.49.0 - 2021-03-11 Source-File -1 (hydroflame)
-------

@ -3,14 +3,19 @@ getBitNodeMultipliers() Netscript Function
.. js:function:: getBitNodeMultipliers()
Returns an object containing the current BitNode multipliers. This function requires Source-File 5 in order
to run. The multipliers are returned in decimal forms (e.g. 1.5 instead of 150%). The multipliers represent
the difference between the current BitNode and the original BitNode (BitNode-1). For example, if the
*CrimeMoney* multiplier has a value of 0.1, then that means that committing crimes in the current BitNode
will only give 10% of the money you would have received in BitNode-1.
:RAM cost: 4 GB
The structure of the returned object is subject to change as BitNode multipliers get added to the game.
Refer to the `source code here <https://github.com/danielyxie/bitburner/blob/master/src/BitNode/BitNodeMultipliers.ts>`_
Returns an object containing the current BitNode multipliers. This function
requires Source-File 5 in order to run. The multipliers are returned in
decimal forms (e.g. 1.5 instead of 150%). The multipliers represent the
difference between the current BitNode and the original BitNode (BitNode-1).
For example, if the *CrimeMoney* multiplier has a value of 0.1, then that
means that committing crimes in the current BitNode will only give 10% of
the money you would have received in BitNode-1.
The structure of the returned object is subject to change as BitNode
multipliers get added to the game. Refer to the `source code here
<https://github.com/danielyxie/bitburner/blob/master/src/BitNode/BitNodeMultipliers.ts>`_
to see the name of the BitNode multipliers.
Example::
@ -18,5 +23,3 @@ getBitNodeMultipliers() Netscript Function
mults = getBitNodeMultipliers();
print(mults.ServerMaxMoney);
print(mults.HackExpGain);
:RAM cost: 4 GB

@ -1,13 +1,17 @@
brutessh() Netscript Function
=============================
.. js:function:: brutessh(hostname/ip)
.. js:function:: brutessh(hostname)
:param string hostname/ip: IP or hostname of the target server
:RAM cost: 0.05 GB
Runs the BruteSSH.exe program on the target server. BruteSSH.exe must exist on your home computer.
:param string hostname: Hostname of the target server.
Example::
Runs the BruteSSH.exe program on the target server. BruteSSH.exe must exist
on your home computer.
Examples:
.. code-block:: javascript
brutessh("foodnstuff");

@ -1,13 +1,16 @@
clear() Netscript Function
==========================
.. js:function:: clear(port/fn)
.. js:function:: clear(portOrFilename)
:param string/number port/fn: Port or text file to clear
:RAM cost: 1 GB
:param string/number portOrFilename: Port or text file to clear.
This function is used to clear data in a :ref:`Netscript Port <netscript_ports>` or a text file.
If the *port/fn* argument is a number between 1 and 20, then it specifies a port and will clear it (deleting all data from the underlying queue).
If the ``portOrFilename`` argument is a number between 1 and 20, then it
specifies a port and will clear it (deleting all data from the underlying queue).
If the *port/fn* argument is a string, then it specifies the name of a text file (.txt) and will delete all data from that text file.
If the ``portOrFilename`` argument is a string, then it specifies the name
of a text file (.txt) and will delete all data from that text file.

@ -5,4 +5,13 @@ clearLog() Netscript Function
:RAM cost: 0 GB
Clears the script's logs
Clears the script's logs. Useful when making monitoring scripts.
Examples:
.. code-block:: javascript
while(true) {
clearLog();
print(getServerMoneyAvailable('foodnstuff'));
}

@ -3,12 +3,12 @@ deleteServer() Netscript Function
.. js:function:: deleteServer(hostname)
:param string hostname: Hostname of the server to delete
:RAM cost: 2.25 GB
:param string hostname: Hostname of the server to delete.
:returns: ``true`` if successful, ``false`` otherwise.
Deletes one of your purchased servers, which is specified by its hostname.
Deletes the specified purchased server.
The *hostname* argument can be any data type, but it will be converted to a string. Whitespace is automatically removed from
the string. This function will not delete a server that still has scripts running on it.
Returns true if successful, and false otherwise.
The ``hostname`` argument can be any data type, but it will be converted to
a string. Whitespace is automatically removed from the string. This function
will not delete a server that still has scripts running on it.

@ -1,16 +1,17 @@
disableLog() Netscript Function
===============================
.. js:function:: disableLog(fn)
.. js:function:: disableLog(functionName)
:param string fn: Name of function for which to disable logging
:RAM cost: 0 GB
:param string functionName: Name of function for which to disable logging.
Disables logging for the given function. Logging can be disabled for
all functions by passing 'ALL' as the argument.
Note that this does not completely remove all logging functionality.
This only stops a function from logging
when the function is successful. If the function fails, it will still log the reason for failure.
This only stops a function from logging when the function is successful. If
the function fails, it will still log the reason for failure.
Notable functions that cannot have their logs disabled: run, exec, exit

@ -1,10 +1,12 @@
enableLog() Netscript Function
==============================
.. js:function:: enableLog(fn)
.. js:function:: enableLog(functionName)
:param string fn: Name of function for which to enable logging
:RAM cost: 0 GB
Re-enables logging for the given function. If 'ALL' is passed into this function
as an argument, then it will revert the effects of disableLog('ALL')
:param string functionName: Name of function for which to enable logging.
Re-enables logging for the given function. If 'ALL' is passed into this
function as an argument, then it will revert the effects of
``disableLog('ALL')``

@ -1,39 +1,41 @@
exec() Netscript Function
=========================
.. js:function:: exec(script, hostname/ip, [numThreads=1], [args...])
.. js:function:: exec(script, hostname[, numThreads=1[, args...]])
:param string script: Filename of script to execute
:param string hostname/ip: IP or hostname of the 'target server' on which to execute the script
:param number numThreads: Optional thread count for new script. Set to 1 by default. Will be rounded to nearest integer
:param args...:
Additional arguments to pass into the new script that is being run. Note that if any arguments are being
passed into the new script, then the third argument *numThreads* must be filled in with a value.
:RAM cost: 1.3 GB
Run a script as a separate process on a specified server. This is similar to the *run* function except
that it can be used to run a script on any server, instead of just the current server.
:param string script: Filename of script to execute.
:param string hostname: Hostname of the target server on which to execute the script.
:param number numThreads: Optional thread count for new script. Set to 1 by
default. Will be rounded to nearest integer
:param args...: Additional arguments to pass into the new script that is
being run. Note that if any arguments are being
passed into the new script, then the third argument ``numThreads`` must
be filled in with a value.
:returns: Newly created process id on success, 0 on failure.
If the script was successfully started, then this functions returns the PID
of that script. Otherwise, it returns 0.
Run a script as a separate process on a specified server. This is similar to
the :doc:`run<run>` function except that it can be used to run a script on any
server, instead of just the current server.
.. note:: PID stands for Process ID. The PID is a unique identifier for each script.
The PID will always be a positive integer.
.. warning:: Running this function with a *numThreads* argument of 0 will return 0 without
.. warning:: Running this function with a ``numThreads`` argument of 0 will return 0 without
running the script. However, running this function with a negative *numThreads*
argument will cause a runtime error.
The simplest way to use the *exec* command is to call it with just the script name and the target server.
The following example will try to run *generic-hack.script* on the *foodnstuff* server::
The simplest way to use the :doc:`exec<exec>` command is to call it with
just the script name and the target server. The following example will try
to run ``generic-hack.script`` on the ``foodnstuff`` server::
exec("generic-hack.script", "foodnstuff");
The following example will try to run the script *generic-hack.script* on the *joesguns* server with 10 threads::
The following example will try to run the script ``generic-hack.script`` on
the ``joesguns`` server with 10 threads::
exec("generic-hack.script", "joesguns", 10);
This last example will try to run the script *foo.script* on the *foodnstuff* server with 5 threads. It will also pass
the number 1 and the string "test" in as arguments to the script::
This last example will try to run the script ``foo.script`` on the
``foodnstuff`` server with 5 threads. It will also pass the number 1 and the
string "test" in as arguments to the script::
exec("foo.script", "foodnstuff", 5, 1, "test");

@ -5,4 +5,4 @@ exit() Netscript Function
:RAM cost: 0 GB
Terminates the current script immediately
Terminates the current script immediately.

@ -1,25 +1,29 @@
fileExists() Netscript Function
===============================
.. js:function:: fileExists(filename, [hostname/ip])
.. js:function:: fileExists(filename[, hostname])
:param string filename: Filename of file to check
:param string hostname/ip:
Hostname or IP of target server. This is optional. If it is not specified then the
function will use the current server as the target server
:RAM cost: 0.1 GB
Returns a boolean indicating whether the specified file exists on the target server. The filename
for scripts is case-sensitive, but for other types of files it is not. For example, *fileExists("brutessh.exe")*
will work fine, even though the actual program is named "BruteSSH.exe".
:param string filename: Filename of file to check.
:param string hostname:
Hostname of target server. This is optional. If it is not specified then
the function will use the current server as the target server.
:returns: ``true`` if the file exists, ``false`` if it doesn't.
If the *hostname/ip* argument is omitted, then the function will search through the current server (the server
running the script that calls this function) for the file.
The filename for scripts is case-sensitive, but for other types of files it
is not. For example, ``fileExists("brutessh.exe")`` will work fine, even
though the actual program is named ``BruteSSH.exe``.
Examples::
If the ``hostname`` argument is omitted, then the function will search
through the server running the script that calls this function for the file.
fileExists("foo.script", "foodnstuff");
fileExists("ftpcrack.exe");
Examples:
The first example above will return true if the script named *foo.script* exists on the *foodnstuff* server, and false otherwise.
The second example above will return true if the current server contains the *FTPCrack.exe* program, and false otherwise.
.. code-block:: javascript
fileExists("foo.script", "foodnstuff"); // returns: false
fileExists("ftpcrack.exe"); // returns: true
The first example above will return true if the script named ``foo.script`` exists on the ``foodnstuff`` server, and false otherwise.
The second example above will return true if the current server contains the ``FTPCrack.exe`` program, and false otherwise.

@ -1,13 +1,18 @@
ftpcrack() Netscript Function
=============================
.. js:function:: ftpcrack(hostname/ip)
.. js:function:: ftpcrack(hostname)
:param string hostname/ip: IP or hostname of the target server
:RAM cost: 0.05 GB
Runs the FTPCrack.exe program on the target server. FTPCrack.exe must exist on your home computer.
:param string hostname: Hostname of the target server.
Example::
Runs the ``FTPCrack.exe`` program on the target server. ``FTPCrack.exe``
must exist on your home computer.
Examples:
.. code-block:: javascript
ftpcrack("foodnstuff");

@ -4,5 +4,10 @@ getFavorToDonate() Netscript Function
.. js:function:: getFavorToDonate()
:RAM cost: 0.1 GB
:returns: Amount of faction favor required to unlock donation.
Returns the amount of Faction favor required to be able to donate to a faction.
Example:
.. code-block:: javascript
getFavorToDonate() // returns: 150

@ -1,16 +1,24 @@
getGrowTime() Netscript Function
================================
.. js:function:: getGrowTime(hostname/ip[, hackLvl=current level])
.. js:function:: getGrowTime(hostname[, hackLvl=current level])
:param string hostname/ip: Hostname or IP of target server
:param number hackLvl: Optional hacking level for the calculation. Defaults to player's current hacking level
:RAM cost: 0.05 GB
Returns the amount of time in seconds it takes to execute the *grow()* Netscript function on the target server.
:param string hostname: Hostname of target server.
:param number hackLvl: Optional hacking level for the calculation. Defaults
to player's current hacking level.
:returns: seconds it takes to execute :doc:`grow<grow>` on that server.
The function takes in an optional *hackLvl* parameter that can be specified
to see what the grow time would be at different hacking levels.
The function takes in an optional ``hackLvl`` parameter that can be
specified to see what the grow time would be at different hacking levels.
.. note:: For Hacknet Servers (the upgraded version of a Hacknet Node), this function will
return :code:`Infinity`.
Example:
.. code-block:: javascript
getGrowTime("foodnstuff"); // returns: 53.4
.. note:: For Hacknet Servers (the upgraded version of a Hacknet Node), this function will
return ``Infinity``.

@ -1,16 +1,22 @@
getHackTime() Netscript Function
================================
.. js:function:: getHackTime(hostname/ip[, hackLvl=current level])
.. js:function:: getHackTime(hostname[, hackLvl=current level])
:param string hostname/ip: Hostname or IP of target server
:param number hackLvl: Optional hacking level for the calculation. Defaults to player's current hacking level
:RAM cost: 0.05 GB
:param string hostname: Hostname of target server.
:param number hackLvl: Optional hacking level for the calculation. Defaults
to player's current hacking level.
:returns: seconds it takes to execute :doc:`hack<hack>` on that server.
Returns the amount of time in seconds it takes to execute the *hack()* Netscript function on the target server.
The function takes in an optional ``hackLvl`` parameter that can be
specified to see what the hack time would be at different hacking levels.
The function takes in an optional *hackLvl* parameter that can be specified
to see what the hack time would be at different hacking levels.
Example:
.. code-block:: javascript
getHackTime("foodnstuff"); // returns: 53.4
.. note:: For Hacknet Servers (the upgraded version of a Hacknet Node), this function will
return :code:`Infinity`.

@ -4,5 +4,10 @@ getHackingLevel() Netscript Function
.. js:function:: getHackingLevel()
:RAM cost: 0.05 GB
:returns: The player's current hacking level.
Returns the player's current hacking level
Example:
.. code-block:: javascript
getHackingLevel(); // returns: 124

@ -4,9 +4,11 @@ getHackingMultipliers() Netscript Function
.. js:function:: getHackingMultipliers()
:RAM cost: 4 GB
:returns: object containing the player's hacking multipliers. These
multipliers are returned in decimal forms, not percentages (e.g. 1.5
instead of 150%).
Returns an object containing the Player's hacking related multipliers. These multipliers are
returned in decimal forms, not percentages (e.g. 1.5 instead of 150%). The object has the following structure::
Structure::
{
chance: Player's hacking chance multiplier,
@ -15,7 +17,9 @@ getHackingMultipliers() Netscript Function
growth: Player's hacking growth multiplier
}
Example of how this can be used::
Example:
.. code-block:: javascript
mults = getHackingMultipliers();
print(mults.chance);

@ -4,9 +4,11 @@ getHacknetMultipliers() Netscript Function
.. js:function:: getHacknetMultipliers()
:RAM cost: 4 GB
:returns: object containing the player's hacknet multipliers. These
multipliers are returned in decimal forms, not percentages (e.g. 1.5
instead of 150%).
Returns an object containing the Player's hacknet related multipliers. These multipliers are
returned in decimal forms, not percentages (e.g. 1.5 instead of 150%). The object has the following structure::
Structure::
{
production: Player's hacknet production multiplier,
@ -16,7 +18,9 @@ getHacknetMultipliers() Netscript Function
levelCost: Player's hacknet level cost multiplier
}
Example of how this can be used::
Example:
.. code-block:: javascript
mults = getHacknetMultipliers();
print(mults.production);

@ -4,5 +4,11 @@ getHostname() Netscript Function
.. js:function:: getHostname()
:RAM cost: 0.05 GB
:returns: Hostname of the server this script is running on.
Returns a string with the hostname of the server that the script is running on
Example:
.. code-block:: javascript
getHostname(); // returns: "foodnstuff"

@ -3,9 +3,9 @@ getPortHandle() Netscript Function
.. js:function:: getPortHandle(port)
:param number port: Port number
:RAM cost: 10 GB
Get a handle to a Netscript Port. See more details here: :ref:`netscript_ports`
:param number port: Port number
:returns: portHandle object. See :ref:`netscript_ports`
**WARNING:** Port Handles only work in :ref:`netscriptjs`. They will not work in :ref:`netscript1`.

@ -6,11 +6,10 @@ getPurchasedServerCost() Netscript Function
:RAM cost: 0.25 GB
:param number ram: Amount of RAM of a potential purchased server. Must be a power of 2 (2, 4, 8, 16, etc.). Maximum value of 1048576 (2^20)
:returns: Cost to purchase a server with the specified amount of ``ram``.
Returns the cost to purchase a server with the specified amount of *ram*.
Example:
Examples::
.. code-block:: javascript
for (i = 1; i <= 20; i++) {
tprint(i + " -- " + getPurchasedServerCost(Math.pow(2, i)));
}
getPurchasedServerCost(8192); // returns: 450560000

@ -4,5 +4,10 @@ getPurchasedServerLimit() Netscript Function
.. js:function:: getPurchasedServerLimit()
:RAM cost: 0.05 GB
:returns: The maximum number of servers you can purchase.
Returns the maximum number of servers you can purchase
Example:
.. code-block:: javascript
getPurchasedServerLimit() // returns: 25

@ -4,5 +4,10 @@ getPurchasedServerMaxRam() Netscript Function
.. js:function:: getPurchasedServerMaxRam()
:RAM cost: 0.05 GB
:returns: The maximum RAM that a purchased server can have.
Returns the maximum RAM that a purchased server can have
Example:
.. code-block:: javascript
getPurchasedServerMaxRam(); // returns: 1048576

@ -1,11 +1,13 @@
getPurchasedServers() Netscript Function
========================================
.. js:function:: getPurchasedServers([hostname=true])
.. js:function:: getPurchasedServers()
:param boolean hostname:
Specifies whether hostnames or IP addresses should be returned. If it's true then hostnames will be returned, and if false
then IPs will be returned. If this argument is omitted then it is true by default
:RAM cost: 2.25 GB
:returns: String array of hostnames of all of the servers you have purchased.
Returns an array with either the hostnames or IPs of all of the servers you have purchased.
Example:
.. code-block:: javascript
getPurchasedServers(); // returns: ['grow-server-0', 'grow-server-1', 'weaken-server-0']

@ -1,14 +1,18 @@
getScriptExpGain() Netscript Function
=====================================
.. js:function:: getScriptExpGain([scriptname], [hostname/ip], [args...])
.. js:function:: getScriptExpGain([scriptname[, hostname[, args...]]])
:param string scriptname: Filename of script
:param string hostname/ip: Server on which script is running
:param args...: Arguments that the script is running with
:RAM cost: 0.1 GB
:param string scriptname: Filename of script.
:param string hostname: Server on which script is running.
:param args...: Arguments that the script is running with.
:returns: The amount of hacking experience the specified script generates
while online.
Returns the amount of hacking experience the specified script generates while online (when the game is open, does not apply for offline experience gains).
Remember that a script is uniquely identified by both its name and its arguments.
This function can also return the total experience gain rate of all of your
active scripts by running the function with no arguments.
.. note:: A script is uniquely identified by both its name and its
arguments.
This function can also return the total experience gain rate of all of your active scripts by running the function with no arguments.

@ -1,18 +1,19 @@
getScriptIncome() Netscript Function
====================================
.. js:function:: getScriptIncome([scriptname], [hostname/ip], [args...])
.. js:function:: getScriptIncome([scriptname[, hostname/ip[, [args...]]])
:RAM cost: 0.1 GB
:param string scriptname: Filename of script
:param string hostname/ip: Server on which script is running
:param args...: Arguments that the script is running with
:RAM cost: 0.1 GB
:returns: Amount of income the specified script generates while online.
Returns the amount of income the specified script generates while online (when the game is open, does not apply for offline income).
Remember that a script is uniquely identified by both its name and its arguments. So for example if you ran a script with the arguments
"foodnstuff" and "5" then in order to use this function to get that script's income you must specify those same arguments in the same order
in this function call.
If called with no arguments this function will return an array of two
values. The first value is the total income ($ / second) of all of your
active scripts (scripts that are currently running on any server). The
second value is the total income ($ / second) that you've earned from
scripts since you last installed Augmentations.
This function can also be called with no arguments. If called with no arguments, then this function will return an array of two values. The
first value is the total income ($ / second) of all of your active scripts (scripts that are currently running on any server). The second value
is the total income ($ / second) that you've earned from scripts since you last installed Augmentations.
.. note:: A script is uniquely identified by both its name and its
arguments.

@ -1,27 +1,27 @@
getScriptLogs() Netscript Function
==================================
.. js:function:: getScriptLogs([fn], [hostname/ip=current ip], [args...])
.. js:function:: getScriptLogs([filename[, hostname=current hostname[, args...]]])
:param string fn: Optional. Filename of script to get logs from.
:param string ip: Optional. IP or hostname of the server that the script is on
:param args...: Arguments to identify which scripts to get logs for
:RAM cost: 0 GB
:param string filename: Optional. Filename of script to get logs from.
:param string hostname: Optional. Hostname of the server running the script.
:param args...: Arguments to identify which scripts to get logs for
:returns: Array of string, each line being a logged line. Chronological.
Returns a script's logs. The logs are returned as an array, where each
line is an element in the array. The most recently logged line is at the
end of the array.
Note that there is a maximum number of lines that a script stores in its logs.
.. note:: There is a maximum number of lines that a script stores in its logs.
This is configurable in the game's options.
If the function is called with no arguments, it will return the current script's logs.
If the function is called with no arguments, it will return the current
script's logs.
Otherwise, the `fn`, `hostname/ip,` and `args...` arguments can be used to get the logs
from another script. Remember that scripts are uniquely identified by both
their names and arguments.
Otherwise, the ``filename``, ``hostname``, and ``args...`` arguments can be
used to get the logs from another script. Remember that scripts are uniquely
identified by both their names and arguments.
Examples::
Example:
.. code-block:: javascript
// Get logs from foo.script on the current server that was run with no args
getScriptLogs("foo.script");

@ -4,5 +4,10 @@ getScriptName() Netscript Function
.. js:function:: getScriptName()
:RAM cost: 0 GB
:returns: Current script name.
Returns the current script name
Example:
.. code-block:: javascript
getScriptName(); // returns: "example.script"

@ -1,11 +1,16 @@
getScriptRam() Netscript Function
=================================
.. js:function:: getScriptRam(scriptname[, hostname/ip])
.. js:function:: getScriptRam(filename[, hostname])
:param string scriptname: Filename of script. This is case-sensitive.
:param string hostname/ip: Hostname or IP of target server the script is located on. This is optional, If it is not specified then the function will set the current server as the target server.
:RAM cost: 0.1 GB
:param string filename: Filename of script.
:param string hostname: Hostname of target server the script is located on.
Default to the server this script is running on.
:returns: Amount of RAM required to run the script, 0 if it does not exist.
Returns the amount of RAM required to run the specified script on the target server. Returns
0 if the script does not exist.
Example:
.. code-block:: javascript
getScriptRam("grow.script"); // returns: 1.75

@ -1,12 +1,28 @@
getServerBaseSecurityLevel() Netscript Function
===============================================
.. js:function:: getServerBaseSecurityLevel(hostname/ip)
.. js:function:: getServerBaseSecurityLevel(hostname)
:param string hostname/ip: Hostname or IP of target server
:RAM cost: 0.1 GB
:param string hostname: Hostname of target server.
:returns: Base security level of target server.
Returns the base security level of the target server. This is the security level that the server starts out with.
This is different than *getServerSecurityLevel()* because *getServerSecurityLevel()* returns the current
security level of a server, which can constantly change due to *hack()*, *grow()*, and *weaken()*, calls on that
server. The base security level will stay the same until you reset by installing an Augmentation(s).
The base security level is the security level that the server starts out with.
This function isn't particularly useful.
:doc:`getServerSecurityLevel<getServerSecurityLevel>` and
:doc:`getServerMinSecurityLevel<getServerMinSecurityLevel>` are more often
used.
Example:
.. code-block:: javascript
getServerBaseSecurityLevel('foodnstuff'); // returns: 9
.. note:: This is different than :doc:`getServerSecurityLevel<getServerSecurityLevel>`
because :doc:`getServerSecurityLevel<getServerSecurityLevel>` returns the current
security level of a server, which can constantly change due to
:doc:`hack<hack>`, :doc:`grow<grow>`, and :doc:`weaken<weaken>` calls on
that server. The base security level will stay the same until you reset
by installing augmentation(s).

@ -1,12 +1,19 @@
getServerGrowth() Netscript Function
====================================
.. js:function:: getServerGrowth(hostname/ip)
.. js:function:: getServerGrowth(hostname)
:param string hostname/ip: Hostname or IP of target server
:RAM cost: 0.1 GB
:param string hostname: Hostname of target server.
:returns: Server growth parameter.
Returns the server's instrinsic "growth parameter". This growth parameter is a number
between 1 and 100 that represents how quickly the server's money grows. This parameter affects the
percentage by which the server's money is increased when using the *grow()* function. A higher
growth parameter will result in a higher percentage increase from *grow()*.
The growth parameter is a number between 1 and 100 affects the percentage by
which the server's money is increased when using the :doc:`grow<grow>`
function. A higher growth parameter will result in a higher percentage
increase.
Example:
.. code-block:: javascript
getServerGrowth('foodnstuff'); // returns: 5

@ -1,9 +1,14 @@
getServerMaxMoney() Netscript Function
======================================
.. js:function:: getServerMaxMoney(hostname/ip)
.. js:function:: getServerMaxMoney(hostname)
:param string hostname/ip: Hostname or IP of target server
:RAM cost: 0.1 GB
:param string hostname: Hostname of target server.
:returns: Maximum amount of money that can be available on a server.
Returns the maximum amount of money that can be available on a server
Example:
.. code-block:: javascript
getServerMaxMoney('foodnstuff'); // returns: 4000000

@ -1,9 +1,14 @@
getServerMinSecurityLevel() Netscript Function
==============================================
.. js:function:: getServerMinSecurityLevel(hostname/ip)
.. js:function:: getServerMinSecurityLevel(hostname)
:param string hostname/ip: Hostname or IP of target server
:RAM cost: 0.1 GB
:param string hostname: Hostname of target server.
:returns: The minimum security level of the target server.
Returns the minimum security level of the target server
Example:
.. code-block:: javascript
getServerMinSecurityLevel('foodnstuff'); // returns: 3

@ -1,15 +1,19 @@
getServerMoneyAvailable() Netscript Function
============================================
.. js:function:: getServerMoneyAvailable(hostname/ip)
.. js:function:: getServerMoneyAvailable(hostname)
:param string hostname/ip: Hostname or IP of target server
:RAM cost: 0.1 GB
:param string hostname: Hostname of target server.
:returns: Money available on that server.
Returns the amount of money available on a server. **Running this function on the home computer will return
the player's money.**
.. note::
Example::
Running this function on the home computer will return the player's money.
getServerMoneyAvailable("foodnstuff");
getServerMoneyAvailable("home"); //Returns player's money
Example:
.. code-block:: javascript
getServerMoneyAvailable("foodnstuff"); // returns: 120000
getServerMoneyAvailable("home"); // returns: 1000

@ -1,9 +1,15 @@
getServerNumPortsRequired() Netscript Function
==============================================
.. js:function:: getServerNumPortsRequired(hostname/ip)
.. js:function:: getServerNumPortsRequired(hostname)
:param string hostname/ip: Hostname or IP of target server
:RAM cost: 0.1 GB
:param string hostname: Hostname of target server.
:returns: The number of open ports required to successfully run NUKE.exe on
the specified server.
Returns the number of open ports required to successfully run NUKE.exe on the specified server.
Example:
.. code-block:: javascript
getServerNumPortsRequired("unitalife"); // returns: 4

@ -1,17 +1,21 @@
getServerRam() Netscript Function
=================================
.. js:function:: getServerRam(hostname/ip)
.. js:function:: getServerRam(hostname)
:param string hostname/ip: Hostname or IP of target server
:RAM cost: 0.1 GB
:param string hostname: Hostname of target server.
:returns: An array of 2 number, first number is the total RAM, second the
used RAM.
Returns an array with two elements that gives information about a server's memory (RAM). The first
element in the array is the amount of RAM that the server has total (in GB). The second element in
the array is the amount of RAM that is currently being used on the server (in GB).
Example::
Example:
res = getServerRam("helios");
.. code-block:: javascript
res = getServerRam("helios"); // returns: [5, 10]
totalRam = res[0];
ramUsed = res[1];

@ -1,9 +1,14 @@
getServerRequiredHackingLevel() Netscript Function
==================================================
.. js:function:: getServerRequiredHackingLevel(hostname/ip)
.. js:function:: getServerRequiredHackingLevel(hostname)
:param string hostname/ip: Hostname or IP of target server
:RAM cost: 0.1 GB
:param string hostname: Hostname of target server.
:returns: The required hacking level of target server.
Returns the required hacking level of the target server
Example:
.. code-block:: javascript
getServerRequiredHackingLevel("foodnstuff"); // returns: 5

@ -1,10 +1,14 @@
getServerSecurityLevel() Netscript Function
===========================================
.. js:function:: getServerSecurityLevel(hostname/ip)
.. js:function:: getServerSecurityLevel(hostname)
:param string hostname/ip: Hostname or IP of target server
:RAM cost: 0.1 GB
:param string hostname: Hostname of target server.
:returns: The security level of the target server.
Returns the security level of the target server. A server's security level is denoted by a number, typically
between 1 and 100 (but it can go above 100).
Example:
.. code-block:: javascript
getServerSecurityLevel("foodnstuff"); // returns: 3.45

@ -4,5 +4,10 @@ getTimeSinceLastAug() Netscript Function
.. js:function:: getTimeSinceLastAug()
:RAM cost: 0.05 GB
:returns: Milliseconds since you last installed augmentations.
Returns the amount of time in milliseconds that have passed since you last installed Augmentations
Example:
.. code-block:: javascript
getTimeSinceLastAug(); // returns: 13912400

@ -1,16 +1,23 @@
getWeakenTime() Netscript Function
==================================
.. js:function:: getWeakenTime(hostname/ip[, hackLvl=current level])
.. js:function:: getWeakenTime(hostname[, hackLvl=current level])
:param string hostname/ip: Hostname or IP of target server
:param number hackLvl: Optional hacking level for the calculation. Defaults to player's current hacking level
:RAM cost: 0.05 GB
Returns the amount of time in seconds it takes to execute the *weaken()* Netscript function on the target server.
:param string hostname: Hostname of target server.
:param number hackLvl: Optional hacking level for the calculation. Defaults
to player's current hacking level.
:returns: seconds it takes to execute the :doc:`weaken<weaken>` Netscript
function on the target server.
The function takes in an optional *hackLvl* parameter that can be specified
to see what the weaken time would be at different hacking levels.
Example:
.. code-block:: javascript
getWeakenTime("foodnstuff"); // returns: 34.5
.. note:: For Hacknet Servers (the upgraded version of a Hacknet Node), this function will
return :code:`Infinity`.

@ -1,9 +1,10 @@
grow() Netscript Function
=========================
.. js:function:: grow(hostname/ip[, opts={}])
.. js:function:: grow(hostname[, opts={}])
:param string hostname/ip: IP or hostname of the target server to grow
:RAM cost: 0.15 GB
:param string hostname: Hostname of the target server.
:param object opts: Optional parameters for configuring function behavior. Properties:
* threads (*number*) - Number of threads to use for this function.
@ -12,18 +13,25 @@ grow() Netscript Function
:ref:`gameplay_stock_market_player_actions_influencing_stock`
:returns: The number by which the money on the server was multiplied for the growth
:RAM cost: 0.15 GB
Use your hacking skills to increase the amount of money available on a server. The runtime for this command depends on your hacking
level and the target server's security level. When grow() completes, the money available on a target server will be increased by a
certain, fixed percentage. This percentage is determined by the target server's growth rate (which varies between servers) and security level.
Generally, higher-level servers have higher growth rates. The getServerGrowth() function can be used to obtain a server's growth rate.
Increase the amount of money available on a server. The time it takes to
execute depends on your hacking level and the target server's security
level. When :doc:`grow<grow>` completes, the money available on a target
server will be increased by a certain, fixed percentage. This percentage is
determined by the target server's growth rate (which varies between servers)
and security level. Generally, higher-level servers have higher growth
rates. The :doc:`getServerGrowth<getServerGrowth>` function can be used to
obtain a server's growth rate.
Like hack(), grow() can be called on any server, regardless of where the script is running. The grow() command requires
root access to the target server, but there is no required hacking level to run the command. It also raises the security level
of the target server by 0.004.
Like :doc:`hack<hack>`, :doc:`grow<grow>` can be called on any server, from
any server. The :doc:`grow<grow>` command requires root access to the target
server, but there is no required hacking level to run the command. It also
raises the security level of the target server by 0.004 per thread.
Example::
Example:
grow("foodnstuff");
grow("foodnstuff", { threads: 5 }); // Only use 5 threads to grow
.. code-block:: javascript
while(true) {
grow("foodnstuff");
}

@ -1,24 +1,23 @@
growthAnalyze() Netscript Function
==================================
.. js:function:: growthAnalyze(hostname/ip, growthAmount)
.. js:function:: growthAnalyze(hostname, growthAmount)
:param string hostname/ip: IP or hostname of server to analyze
:param number growthAmount: Multiplicative factor by which the server is grown. Decimal form. Must be >= 1.
:returns: The amount of grow() calls needed to grow the specified server by the specified amount
:RAM cost: 1 GB
:param string hostname: Hostname of server to analyze.
:param number growthAmount: Multiplicative factor by which the server is
grown. Decimal form. Must be >= 1.
:returns: The amount of :doc:`grow<grow>` threads needed to grow the specified
server by the specified amount.
This function returns the number of "growths" needed in order to increase the amount
of money available on the specified server by the specified amount.
Example:
The specified amount is multiplicative and is in decimal form, not percentage.
.. code-block:: javascript
For example, if you want to determine how many `grow()` calls you need
to double the amount of money on `foodnstuff`, you would use::
// How many grow threads are needed to double the current money on 'foodnstuff'
growthAnalyze("foodnstuff", 2); // returns: 5124
growthAnalyze("foodnstuff", 2);
If this returns 100, then this means you need to call `grow()` 100 times
in order to double the money (or once with 100 threads).
If this returns 5124, then this means you need to call :doc:`grow<grow>`
5124 times in order to double the money (or once with 5124 threads).
**Warning**: The value returned by this function isn't necessarily a whole number.

@ -1,29 +1,35 @@
hack() Netscript Function
=========================
.. js:function:: hack(hostname/ip[, opts={}])
.. js:function:: hack(hostname[, opts={}])
:param string hostname/ip: IP or hostname of the target server to hack
:RAM cost: 0.1 GB
:param string hostname: Hostname of the target server.
:param object opts: Optional parameters for configuring function behavior. Properties:
* threads (*number*) - Number of threads to use for this function.
Must be less than or equal to the number of threads the script is running with.
* stock (*boolean*) - If true, the function can affect the stock market. See
:ref:`gameplay_stock_market_player_actions_influencing_stock`
:returns: The amount of money stolen if the hack is successful, and zero otherwise
:RAM cost: 0.1 GB
Function that is used to try and hack servers to steal money and gain hacking experience. The runtime for this command depends
on your hacking level and the target server's security level. In order to hack a server you must first gain root access
to that server and also have the required hacking level.
Function that is used to try and hack servers to steal money and gain
hacking experience. The runtime for this command depends on your hacking
level and the target server's security level. In order to hack a server you
must first gain root access to that server and also have the required
hacking level.
A script can hack a server from anywhere. It does not need to be running on the same server to hack that server. For example,
you can create a script that hacks the 'foodnstuff' server and run that script on any server in the game.
A script can hack a server from anywhere. It does not need to be running on
the same server to hack that server. For example, you can create a script
that hacks the 'foodnstuff' server and run that script on any server in the
game.
A successful hack() on a server will raise that server's security level by 0.002.
A successful :doc:`hack<hack>` on a server will raise that server's security
level by 0.002.
Example::
Example:
.. code-block:: javascript
hack("foodnstuff");
hack("10.1.2.3");

@ -1,20 +1,22 @@
hackAnalyzePercent() Netscript Function
=======================================
.. js:function:: hackAnalyzePercent(hostname/ip)
.. js:function:: hackAnalyzePercent(hostname)
:param string hostname/ip: IP or hostname of target server
:returns: The percentage of money you will steal from the target server with a single hack
:RAM cost: 1 GB
:param string hostname: Hostname of target server.
:returns: The percentage of money you will steal from the target server with
a single hack.
Returns the percentage of the specified server's money you will steal with a
single hack. This value is returned in **percentage form, not decimal (Netscript
functions typically return in decimal form, but not this one).**
single hack. This value is returned in percentage form, not decimal.
For example, assume the following returns 1::
For example, assume the following returns 1:
hackAnalyzePercent("foodnstuff");
.. code-block:: javascript
This means that if hack the `foodnstuff` server, then you will steal 1% of its
total money. If you `hack()` using N threads, then you will steal N% of its total
hackAnalyzePercent("foodnstuff"); // returns: 1
This means that if hack the 'foodnstuff' server, then you will steal 1% of its
total money. If you :doc:`hack<hack>` using N threads, then you will steal N% of its total
money.

@ -1,24 +1,28 @@
hackAnalyzeThreads() Netscript Function
=======================================
.. js:function:: hackAnalyzeThreads(hostname/ip, hackAmount)
.. js:function:: hackAnalyzeThreads(hostname, hackAmount)
:param string hostname/ip: IP or hostname of server to analyze
:param number hackAmount: Amount of money you want to hack from the server
:returns: The number of threads needed to hack() the server for *hackAmount* money
:RAM cost: 1 GB
:param string hostname: Hostname of server to analyze.
:param number hackAmount: Amount of money you want to hack from the server.
:returns: The number of threads needed to :doc:`hack<hack>` the server for
``hackAmount`` money.
This function returns the number of script threads you need when running
the `hack()` command to steal the specified amount of money from the target server.
the :doc:`hack<hack>` command to steal the specified amount of money from
the target server.
If `hackAmount` is less than zero or greater than the amount of money available
on the server, then this function returns -1.
If ``hackAmount`` is less than zero or greater than the amount of money
available on the server, then this function returns -1.
For example, let's say the `foodnstuff` server has $10m and you run::
For example, let's say the 'foodnstuff' server has $10m and you run:
.. code-block:: javascript
hackAnalyzeThreads("foodnstuff", 1e6);
If this function returns 50, this means that if your next `hack()` call
If this function returns 50, this means that if your next :doc:`hack<hack>` call
is run on a script with 50 threads, it will steal $1m from the `foodnstuff` server.
.. warning:: The value returned by this function isn't necessarily a whole number.

@ -1,11 +1,16 @@
hackChance() Netscript Function
===============================
.. js:function:: hackChance(hostname/ip)
.. js:function:: hackChance(hostname)
:param string hostname/ip: IP or hostname of target server
:returns: The chance you have of successfully hacking the target server
:RAM cost: 1 GB
:param string hostname: Hostname of target server.
:returns: The chance you have of successfully hacking the target server.
in decimal form.
Returns the chance you have of successfully hacking the specified server. This
returned value is in decimal form, not percentage.
Example:
.. code-block:: javascript
hackChance("foodnstuff"); // returns: .5
// So 50% chance to hack "foodnstuff"

@ -1,14 +1,15 @@
hasRootAccess() Netscript Function
==================================
.. js:function:: hasRootAccess(hostname/ip)
.. js:function:: hasRootAccess(hostname)
:param string hostname/ip: Hostname or IP of the target server
:RAM cost: 0.05 GB
:param string hostname: Hostname of the target server.
:returns: ``true`` if you have root access on the target server.
Returns a boolean indicating whether or not the player has root access to the specified target server.
Example:
Example::
.. code-block:: javascript
if (hasRootAccess("foodnstuff") == false) {
nuke("foodnstuff");

@ -1,13 +1,16 @@
httpworm() Netscript Function
=============================
.. js:function:: httpworm(hostname/ip)
.. js:function:: httpworm(hostname)
:param string hostname/ip: IP or hostname of the target server
:RAM cost: 0.05 GB
:param string hostname: Hostname of the target server.
Runs the HTTPWorm.exe program on the target server. HTTPWorm.exe must exist on your home computer.
Runs the HTTPWorm.exe program on the target server. HTTPWorm.exe must exist
on your home computer.
Example::
Example:
.. code-block:: javascript
httpworm("foodnstuff");

@ -1,10 +1,14 @@
isLogEnabled() Netscript Function
=================================
.. js:function:: isLogEnabled(fn)
.. js:function:: isLogEnabled(functionName)
:param string fn: Name of function to check
:RAM cost: 0 GB
:param string functionName: Name of function to check.
:returns: ``true`` is logs are enabled for this function or for 'ALL'
Returns a boolean indicating whether or not logging is enabled for that
function (or 'ALL')
Example:
.. code-block:: javascript
isLogEnabled('hack'); // returns: true

@ -1,29 +1,40 @@
isRunning() Netscript Function
==============================
.. js:function:: isRunning(filename, hostname/ip, [args...])
.. js:function:: isRunning(filename, hostname, [args...])
:param string filename: Filename of script to check. This is case-sensitive.
:param string hostname/ip: Hostname or IP of target server
:param args...: Arguments to specify/identify which scripts to search for
:RAM cost: 0.1 GB
:param string filename: Filename of script to check. case-sensitive.
:param string hostname: Hostname of target server.
:param args...: Arguments to specify/identify which scripts to search for
:returns: ``true`` if that script with those args is running on that server.
Returns a boolean indicating whether the specified script is running on the target server. Remember that a script is
uniquely identified by both its name and its arguments.
.. note::
Remember that a script is uniquely identified by both its name and its arguments.
**Examples:**
In this first example below, the function call will return true if there is a script named *foo.script* with no arguments
running on the *foodnstuff* server, and false otherwise::
In this first example below, the function call will return true if there is
a script named ``foo.script`` with no arguments running on the
``foodnstuff`` server, and false otherwise:
isRunning("foo.script", "foodnstuff");
.. code-block:: javascript
In this second example below, the function call will return true if there is a script named *foo.script* with no arguments
running on the current server, and false otherwise::
isRunning("foo.script", "foodnstuff");
isRunning("foo.script", getHostname());
In this second example below, the function call will return true if there is
a script named ``foo.script`` with no arguments running on the current
server, and false otherwise:
In this next example below, the function call will return true if there is a script named *foo.script* running with the arguments
1, 5, and "test" (in that order) on the *joesguns* server, and false otherwise::
.. code-block:: javascript
isRunning("foo.script", "joesguns", 1, 5, "test");
isRunning("foo.script", getHostname());
In this next example below, the function call will return true if there is a
script named ``foo.script`` running with the arguments 1, 5, and "test" (in
that order) on the ``joesguns`` server, and false otherwise:
.. code-block:: javascript
isRunning("foo.script", "joesguns", 1, 5, "test");

@ -1,47 +1,57 @@
kill() Netscript Function
=========================
.. js:function:: kill(script, hostname/ip, [args...])
.. js:function:: kill(script, hostname, [args...])
:param string script: Filename of the script to kill
:param string hostname/ip: IP or hostname of the server on which to kill the script
:param args...: Arguments to identify which script to kill
:RAM cost: 0.5 GB
:param string script: Filename of the script to kill.
:param string hostname: Hostname of the server on which to kill the script.
:param args...: Arguments to identify which script to kill.
:returns: ``true`` is that script was killed.
Kills the script on the target server specified by the script's name and arguments. Remember that scripts
are uniquely identified by both their name and arguments. For example, if *foo.script* is run with the argument 1, then this
is not the same as *foo.script* run with the argument 2, even though they have the same code.
If this function successfully kills the specified script, then it will return true. Otherwise, it will return false.
Kills the script on the target server specified by the script's name and
arguments. Remember that scripts are uniquely identified by both their name
and arguments. For example, if ``foo.script`` is run with the argument 1,
then this is not the same as ``foo.script`` run with the argument 2, even
though they have the same code.
Examples:
The following example will try to kill a script named *foo.script* on the *foodnstuff* server that was ran with no arguments::
The following example will try to kill a script named ``foo.script`` on the
``foodnstuff`` server that was ran with no arguments:
.. code-block:: javascript
kill("foo.script", "foodnstuff");
The following will try to kill a script named *foo.script* on the current server that was ran with no arguments::
The following will try to kill a script named ``foo.script`` on the current
server that was ran with no arguments:
.. code-block:: javascript
kill("foo.script", getHostname());
The following will try to kill a script named *foo.script* on the current server that was ran with the arguments 1 and "foodnstuff"::
The following will try to kill a script named ``foo.script`` on the current
server that was ran with the arguments 1 and "foodnstuff":
.. code-block:: javascript
kill("foo.script", getHostname(), 1, "foodnstuff");
.. js:function:: kill(scriptPid)
:param number scriptPid: PID of the script to kill
:RAM cost: 0.5 GB
:param number scriptPid: PID of the script to kill
:returns: ``true`` that script was killed.
Kills the script with the specified PID. Killing a script by its PID will typically
have better performance, especially if you have many scripts running.
Kills the script with the specified PID. Killing a script by its PID will
typically have better performance, especially if you have many scripts
running.
If this function successfully kills the specified script, then it will return true.
Otherwise, it will return false.
*Examples:*
Example:
The following example will try to kill the script with the PID 10::
.. code-block:: javascript
if (kill(10)) {
print("Killed script with PID 10!");

@ -1,10 +1,17 @@
killall() Netscript Function
============================
.. js:function:: killall(hostname/ip)
.. js:function:: killall(hostname)
:param string hostname/ip: IP or hostname of the server on which to kill all scripts
:RAM cost: 0.5 GB
:param string hostname: Hostname of the server on which to kill all scripts.
:returns: ``true`` if scripts were killed on target server.
Kills all running scripts on the specified server. This function returns true if any scripts were killed, and
false otherwise. In other words, it will return true if there are any scripts running on the target server.
Kills all running scripts on the specified server.
Example:
.. code-block:: javascript
killall('foodnstuff'); // returns: true

@ -1,11 +1,15 @@
ls() Netscript Function
=======================
.. js:function:: ls(hostname/ip, [grep])
.. js:function:: ls(hostname[, grep])
:param string hostname/ip: Hostname or IP of the target server
:param string grep: a substring to search for in the filename
:RAM cost: 0.2 GB
:param string hostname: Hostname of the target server.
:param string grep: a substring to search for in the filename.
:returns: String array of all files in alphabetical order.
Returns an array with the filenames of all files on the specified server (as strings). The returned array
is sorted in alphabetic order
Example:
.. code-block:: javascript
ls("home"); // returns: ["demo.script", "msg1.txt"]

@ -3,18 +3,20 @@ nFormat() Netscript Function
.. js:function:: nFormat(n, format)
:param number n: Number to format
:param string format: Formatter
:RAM cost: 0 GB
:param number n: number to format
:param string format: The format to use.
Converts a number into a string with the specified formatter. This uses the
`numeraljs <http://numeraljs.com/>`_ library, so the formatters must be compatible
with that.
Converts a number into a string with the specified format. This uses the
`numeraljs <http://numeraljs.com/>`_ library, so the formatters must be
compatible with that.
This is the same function that the game itself uses to display numbers.
The game uses the ``$0.000a`` format to display money.
Examples::
Example:
nFormat(1.23e9, "$0.000a"); // Returns "$1.230b"
nFormat(12345.678, "0,0"); // Returns "12,346"
nFormat(0.84, "0.0%"); // Returns "84.0%
.. code-block:: javascript
nFormat(1.23e9, "$0.000a"); // returns: "$1.230b"
nFormat(12345.678, "0,0"); // returns: "12,346"
nFormat(0.84, "0.0%"); // returns: "84.0%"

@ -1,13 +1,16 @@
nuke() Netscript Function
=========================
.. js:function:: nuke(hostname/ip)
.. js:function:: nuke(hostname)
:param string hostname/ip: IP or hostname of the target server
:RAM cost: 0.05 GB
:param string hostname: Hostname of the target server.
Runs the NUKE.exe program on the target server. NUKE.exe must exist on your home computer.
Example::
Example:
.. code-block:: javascript
nuke("foodnstuff");

@ -3,10 +3,12 @@ peek() Netscript Function
.. js:function:: peek(port)
:param number port: Port to peek. Must be an integer between 1 and 20
:RAM cost: 1 GB
:param number port: Port to peek. Must be an integer between 1 and 20.
:returns: First element on that port.
This function is used to peek at the data from a port. It returns the first element in the specified port
without removing that element. If the port is empty, the string "NULL PORT DATA" will be returned.
This function is used to peek at the data from a port. It returns the first
element in the specified port without removing that element. If the port is
empty, the string "NULL PORT DATA" will be returned.
Read about how :ref:`netscript_ports` work here

@ -3,7 +3,13 @@ print() Netscript Function
.. js:function:: print(x)
:param x: Value to be printed
:RAM cost: 0 GB
:param x: Value to be printed.
Prints a value or a variable to the script's logs.
Example:
.. code-block:: javascript
print("Hello world!"); // Prints "Hello world!" in the logs.

@ -3,8 +3,21 @@ prompt() Netscript Function
.. js:function:: prompt(txt)
:param string txt: Text to appear in the prompt dialog box
:RAM cost: 0 GB
:param string txt: Text to appear in the prompt dialog box.
:returns: ``true`` if the player clicks "Yes".
Prompts the player with a dialog box with two options: "Yes" and "No". This function will return true if the player click "Yes" and
false if the player clicks "No". The script's execution is halted until the player selects one of the options.
Prompts the player with a dialog box with two options: "Yes" and "No". This
function will return true if the player click "Yes" and false if the player
clicks "No". The script's execution is halted until the player selects one
of the options.
Example:
.. code-block:: javascript
cost = getPurchasedServerCost(8192);
answer = prompt("Buy a server for $"+cost);
if(answer) {
purchaseServer("my server", 8192);
}

@ -1,28 +1,29 @@
ps() Netscript Function
=======================
.. js:function:: ps(hostname/ip=current ip)
.. js:function:: ps([hostname=current hostname])
:param string ip: Hostname or IP address of the target server.
If not specified, it will be the current server's IP by default
:RAM cost: 0.2 GB
:param string hostname: Hostname address of the target server.
If not specified, it will be the current server's IP by default.
:returns: array of object
Returns an array with general information about all scripts running on the specified
target server. The information for each server is given in an object with
the following structure::
Returns an array with general information about all scripts running on the
specified target server. The information for each server is given in an
object with the following structure::
{
filename: Script name,
threads: Number of threads script is running with,
args: Script's arguments
filename: Script name,
threads: Number of threads script is running with,
args: Script's arguments
}
Example usage (using :ref:`netscriptjs`)::
Example:
export async function main(ns) {
const ps = ns.ps("home");
for (let i = 0; i < ps.length; ++i) {
ns.tprint(ps[i].filename + ' ' + ps[i].threads);
ns.tprint(ps[i].args);
}
.. code-block:: javascript
processes = ps("home");
for (let i = 0; i < ps.length; ++i) {
tprint(ps[i].filename + ' ' + ps[i].threads);
tprint(ps[i].args);
}

@ -3,25 +3,29 @@ purchaseServer() Netscript Function
.. js:function:: purchaseServer(hostname, ram)
:param string hostname: Hostname of the purchased server
:param number ram: Amount of RAM of the purchased server. Must be a power of 2. Maximum value of :js:func:`getPurchasedServerMaxRam`
:RAM cost: 2.25 GB
:param string hostname: Hostname of the purchased server.
:param number ram: Amount of RAM of the purchased server. Must be a power of
2. Maximum value of :doc:`getPurchasedServerMaxRam<getPurchasedServerMaxRam>`
:returns: The hostname of the newly purchased server.
Purchased a server with the specified hostname and amount of RAM.
The *hostname* argument can be any data type, but it will be converted to a string and have whitespace removed. Anything that resolves to an empty string will
cause the function to fail. If there is already a server with the specified hostname, then the function will automatically append
a number at the end of the *hostname* argument value until it finds a unique hostname. For example, if the script calls
*purchaseServer("foo", 4)* but a server named "foo" already exists, the it will automatically change the hostname to "foo-0". If there is already
a server with the hostname "foo-0", then it will change the hostname to "foo-1", and so on.
The ``hostname`` argument can be any data type, but it will be converted to
a string and have whitespace removed. Anything that resolves to an empty
string will cause the function to fail. If there is already a server with
the specified hostname, then the function will automatically append a number
at the end of the ``hostname`` argument value until it finds a unique
hostname. For example, if the script calls ``purchaseServer("foo", 4)`` but
a server named "foo" already exists, the it will automatically change the
hostname to "foo-0". If there is already a server with the hostname "foo-0",
then it will change the hostname to "foo-1", and so on.
Note that there is a maximum limit to the amount of servers you can purchase.
Returns the hostname of the newly purchased server as a string. If the function fails to purchase a server, then it will return an
empty string. The function will fail if the arguments passed in are invalid, if the player does not have enough money to purchase
the specified server, or if the player has exceeded the maximum amount of servers.
Example:
Example::
.. code-block:: javascript
ram = 64;
hn = "pserv-";

@ -1,16 +1,21 @@
read() Netscript Function
=========================
.. js:function:: read(port/fn)
.. js:function:: read(portOrFilename)
:param string/number port/fn: Port or text file to read from
:RAM cost: 1 GB
:param string/number portOrFilename: Port or text file to read from.
This function is used to read data from a port, a text file (.txt), or a script (.script, .js, .ns)
This function is used to read data from a port, a text file (.txt), or a
script (.script, .js, .ns).
If the argument *port/fn* is a number between 1 and 20, then it specifies a port and it will read data from that port. Read
about how :ref:`netscript_ports` work here. A port is a serialized queue. This function
will remove the first element from that queue and return it. If the queue is empty, then the string "NULL PORT DATA" will be returned.
If the argument ``portOrFilename`` is a number between 1 and 20, then it
specifies a port and it will read data from that port. Read about how
:ref:`netscript_ports` work here. A port is a serialized queue. This
function will remove the first element from that queue and return it. If the
queue is empty, then the string "NULL PORT DATA" will be returned.
If the argument *port/fn* is a string, then it specifies the name of a text file or script and this function will return the data in the specified text file/script. If
the text file does not exist, an empty string will be returned.
If the argument ``portOrFilename`` is a string, then it specifies the name
of a text file or script and this function will return the data in the
specified text file/script. If the text file does not exist, an empty string
will be returned.

@ -1,13 +1,17 @@
relaysmtp() Netscript Function
==============================
.. js:function:: relaysmtp(hostname/ip)
.. js:function:: relaysmtp(hostname)
:param string hostname/ip: IP or hostname of the target server
:RAM cost: 0.05 GB
:param string hostname: Hostname of the target server.
Runs the relaySMTP.exe program on the target server. relaySMTP.exe must exist on your home computer.
Example::
Runs the relaySMTP.exe program on the target server. relaySMTP.exe must
exist on your home computer.
Example:
.. code-block:: javascript
relaysmtp("foodnstuff");

@ -1,11 +1,13 @@
rm() Netscript Function
=======================
.. js:function:: rm(fn[, hostname/ip=current server])
.. js:function:: rm(filename[, hostname=current server])
:param string fn: Filename of file to remove. Must include the extension
:param string hostname/ip: Hostname or IP Address of the server on which to delete the file. Optional. Defaults to current server
:returns: True if it successfully deletes the file, and false otherwise
:RAM cost: 1 GB
:param string filename: Filename of file to remove. Must include the extension.
:param string hostname: Hostname address of the server on which to delete
the file. Optional. Defaults to current server
:returns: ``true`` if it successfully deletes the file.
Removes the specified file from the current server. This function works for every file type except message (.msg) files.
Removes the specified file from the current server. This function works for
every file type except ``.msg`` files.

@ -1,38 +1,44 @@
run() Netscript Function
========================
.. js:function:: run(script, [numThreads=1], [args...])
.. js:function:: run(script[, numThreads=1[, args...]])
:param string script: Filename of script to run
:param number numThreads: Optional thread count for new script. Set to 1 by default. Will be rounded to nearest integer
:param args...:
Additional arguments to pass into the new script that is being run. Note that if any arguments are being
passed into the new script, then the second argument *numThreads* must be filled in with a value.
:RAM cost: 1 GB
:param string script: Filename of script to run
:param number numThreads: Optional thread count for new script. Set to 1 by
default. Will be rounded to nearest integer.
:param args...:
Additional arguments to pass into the new script that is being run. Note
that if any arguments are being passed into the new script, then the
second argument ``numThreads`` must be filled in with a value.
:returns: The process id of the new process or 0 on failure.
Run a script as a separate process. This function can only be used to run scripts located on the current server (the server
running the script that calls this function).
Run a script as a separate process. This function can only be used to run
scripts located on the current server (the server running the script that
calls this function).
If the script was successfully started, then this functions returns the PID
of that script. Otherwise, it returns 0.
.. warning:: Running this function with a ``numThreads`` argument of 0 will
return 0 without running the script. However, running this function with
a negative ``numThreads`` argument will cause a runtime error.
.. note:: PID stands for Process ID. The PID is a unique identifier for each script.
The PID will always be a positive integer.
The simplest way to use the :doc:`run<run>` command is to call it with just
the script name. The following example will run ``foo.script``
single-threaded with no arguments:
.. warning:: Running this function with a *numThreads* argument of 0 will return 0 without
running the script. However, running this function with a negative *numThreads*
argument will cause a runtime error.
The simplest way to use the *run* command is to call it with just the script name. The following example will run
'foo.script' single-threaded with no arguments::
.. code-block:: javascript
run("foo.script");
The following example will run 'foo.script' but with 5 threads instead of single-threaded::
The following example will run 'foo.script' but with 5 threads instead of
single-threaded:
.. code-block:: javascript
run("foo.script", 5);
This next example will run 'foo.script' single-threaded, and will pass the string 'foodnstuff' into the script
as an argument::
This next example will run ``foo.script`` single-threaded, and will pass the
string ``foodnstuff`` into the script as an argument:
.. code-block:: javascript
run("foo.script", 1, 'foodnstuff');

@ -1,11 +1,15 @@
scan() Netscript Function
=========================
.. js:function:: scan(hostname/ip=current ip[, hostnames=true])
.. js:function:: scan(hostname=current hostname)
:param string hostname/ip: IP or hostname of the server to scan
:param boolean: Optional boolean specifying whether the function should output hostnames (if true) or IP addresses (if false)
:RAM cost: 0.2 GB
:param string hostname: Hostname of the server to scan.
:returns: array of strings of all the host directly connected to the target
server.
Returns an array containing the hostnames or IPs of all servers that are one node way from the specified target server. The
hostnames/IPs in the returned array are strings.
Example:
.. code-block:: javascript
scan("home"); // returns: ["foodnstuff", "sigma-cosmetics", "joesguns", "hong-fang-tea", "harakiri-sushi", "iron-gym"]

@ -1,29 +1,33 @@
scp() Netscript Function
========================
.. js:function:: scp(files, [source], destination)
.. js:function:: scp(files[, source], destination)
:RAM cost: 0.6 GB
:param string/array files: Filename or an array of filenames of script/literature files to copy
:param string source:
Hostname or IP of the source server, which is the server from which the file will be copied.
Hostname of the source server, which is the server from which the file will be copied.
This argument is optional and if it's omitted the source will be the current server.
:param string destination: Hostname or IP of the destination server, which is the server to which the file will be copied.
:RAM cost: 0.6 GB
:param string destination: Hostname of the destination server, which is the server to which the file will be copied.
:returns: ``true`` is the copy was a success.
Copies a script or literature (.lit) file(s) to another server. The *files* argument can be either a string specifying a
single file to copy, or an array of strings specifying multiple files to copy.
Copies a script or literature (.lit) file(s) to another server. The
``files`` argument can be either a string specifying a single file to copy,
or an array of strings specifying multiple files to copy.
Returns true if the script/literature file is successfully copied over and false otherwise. If the *files* argument is an array
then this function will return true if at least one of the files in the array is successfully copied.
If the ``files`` argument is an array then this function will return true if
at least one of the files in the array is successfully copied.
Examples::
Example:
//Copies hack-template.script from the current server to foodnstuff
scp("hack-template.script", "foodnstuff");
.. code-block:: javascript
//Copies foo.lit from the helios server to the home computer
scp("foo.lit", "helios", "home");
//Copies "hack-template.script" from the current server to "foodnstuff"
scp("hack-template.script", "foodnstuff"); // returns: true
//Tries to copy three files from rothman-uni to home computer
//Copies "foo.lit" from the helios server to the "home" computer
scp("foo.lit", "helios", "home"); // returns: true
//Tries to copy three files from "rothman-uni" to "home" computer
files = ["foo1.lit", "foo2.script", "foo3.script"];
scp(files, "rothman-uni", "home");
scp(files, "rothman-uni", "home"); // returns: true

@ -1,11 +1,18 @@
scriptKill() Netscript Function
===============================
.. js:function:: scriptKill(scriptname, hostname/ip)
.. js:function:: scriptKill(scriptname, hostname)
:param string scriptname: Filename of script to kill. This is case-sensitive.
:param string hostname/ip: Hostname or IP of target server
:RAM cost: 1 GB
:param string scriptname: Filename of script to kill. case-sensitive.
:param string hostname: Hostname of target server.
:returns: ``true`` if any scripts were killed.
Kills all scripts with the specified filename on the target server specified by *hostname/ip*, regardless of arguments. Returns
true if one or more scripts were successfully killed, and false if none were.
Kills all scripts with the specified filename on the target server specified
by ``hostname``, regardless of arguments.
Example:
.. code-block:: javascript
scriptKill("demo.script"); // returns: true

@ -1,24 +1,30 @@
scriptRunning() Netscript Function
==================================
.. js:function:: scriptRunning(scriptname, hostname/ip)
.. js:function:: scriptRunning(scriptname, hostname)
:param string scriptname: Filename of script to check. This is case-sensitive.
:param string hostname/ip: Hostname or IP of target server
:RAM cost: 1 GB
:param string scriptname: Filename of script to check. case-sensitive.
:param string hostname: Hostname of target server.
:returns: ``true`` if any script with that file name is running on that
server.
Returns a boolean indicating whether any instance of the specified script is running on the target server, regardless of
its arguments.
This is different than the :doc:`isRunning<isRunning>` function because it
does not try to identify a specific instance of a running script by its
arguments.
This is different than the *isRunning()* function because it does not try to identify a specific instance of a running script
by its arguments.
Examples:
**Examples:**
The example below will return true if there is any script named
``foo.script`` running on the ``foodnstuff`` server, and false otherwise:
The example below will return true if there is any script named *foo.script* running on the *foodnstuff* server, and false otherwise::
.. code-block:: javascript
scriptRunning("foo.script", "foodnstuff");
The example below will return true if there is any script named "foo.script" running on the current server, and false otherwise::
The example below will return true if there is any script named
``foo.script`` running on the current server, and false otherwise:
.. code-block:: javascript
scriptRunning("foo.script", getHostname());

@ -1,9 +1,14 @@
serverExists() Netscript Function
=================================
.. js:function:: serverExists(hostname/ip)
.. js:function:: serverExists(hostname)
:param string hostname/ip: Hostname or IP of target server
:RAM cost: 0.1 GB
:param string hostname: Hostname of target server.
:returns: ``true`` if the target server exists.
Returns a boolean denoting whether or not the specified server exists
Example:
.. code-block:: javascript
serverExists("foodnstuff"); // returns: true

@ -3,7 +3,14 @@ sleep() Netscript Function
.. js:function:: sleep(n)
:param number n: Number of milliseconds to sleep
:RAM cost: 0 GB
:param number n: Number of milliseconds to sleep
Suspends the script for n milliseconds.
Example:
.. code-block:: javascript
sleep(3000); // Will wait 3 seconds.

@ -1,20 +1,24 @@
spawn() Netscript Function
==========================
.. js:function:: spawn(script, numThreads, [args...])
.. js:function:: spawn(script, numThreads[, args...])
:RAM cost: 2 GB
:param string script: Filename of script to execute
:param number numThreads: Number of threads to spawn new script with. Will be rounded to nearest integer
:param number numThreads: Number of threads to spawn new script with. Will
be rounded to nearest integer.
:param args...:
Additional arguments to pass into the new script that is being run.
:RAM cost: 2 GB
Terminates the current script, and then after a delay of about 10 seconds it will execute the newly-specified script.
The purpose of this function is to execute a new script without being constrained by the RAM usage of the current one.
This function can only be used to run scripts on the local server.
Terminates the current script, and then after a delay of about 10 seconds it
will execute the newly-specified script. The purpose of this function is to
execute a new script without being constrained by the RAM usage of the
current one. This function can only be used to run scripts on the local
server.
Because this function immediately terminates the script, it does not have a return value.
The following example will execute the script 'foo.script' with 10 threads and the arguments 'foodnstuff' and 90::
Example:
spawn('foo.script', 10, 'foodnstuff', 90);
.. code-block:: javascript
spawn('foo.script', 10, 'foodnstuff', 90); // "run foo.script 10 foodnstuff 90" in 10 seconds.

@ -1,13 +1,16 @@
sqlinject() Netscript Function
==============================
.. js:function:: sqlinject(hostname/ip)
.. js:function:: sqlinject(hostname)
:param string hostname/ip: IP or hostname of the target server
:RAM cost: 0.05 GB
:param string hostname: Hostname of the target server.
Runs the SQLInject.exe program on the target server. SQLInject.exe must exist on your home computer.
Runs the SQLInject.exe program on the target server. SQLInject.exe must
exist on your home computer.
Example::
Example:
.. code-block:: javascript
sqlinject("foodnstuff");

@ -0,0 +1,15 @@
tFormat() Netscript Function
============================
.. js:function:: tFormat(milliseconds)
:RAM cost: 0 GB
:param number milliseconds: Amount of milliseconds to format.
:returns: milliseconds in the "D M H S" format
Example:
.. code-block:: javascript
tFormat(3000); // returns: "3 seconds"
tFormat(10000000); // returns: "2 hours 46 minutes 40 seconds"

@ -1,23 +1,25 @@
tail() Netscript Function
==================================
.. js:function:: tail([fn], [hostname/ip=current ip], [...args])
.. js:function:: tail([fn[, hostname=current hostname[, [...args]]])
:param string fn: Optional. Filename of script to get logs from.
:param string ip: Optional. IP or hostname of the server that the script is on
:param args...: Arguments to identify which scripts to get logs for
:RAM cost: 0 GB
:param string fn: Optional. Filename of script to get logs from.
:param string hostname: Optional. Hostname of the server that the script is on.
:param args...: Arguments to identify which scripts to get logs for.
Opens a script's logs. This is functionally the same as the
:ref:`tail_terminal_command` Terminal command.
If the function is called with no arguments, it will open the current script's logs.
Otherwise, the `fn`, `hostname/ip,` and `args...` arguments can be used to get the logs
from another script. Remember that scripts are uniquely identified by both
their names and arguments.
Otherwise, the ``fn``, ``hostname``, and ``args...`` arguments can be
used to get the logs from another script. Remember that scripts are uniquely
identified by both their names and arguments.
Examples::
Example:
.. code-block:: javascript
// Open logs from foo.script on the current server that was run with no args
tail("foo.script");

@ -3,7 +3,13 @@ tprint() Netscript Function
.. js:function:: tprint(x)
:param x: Value to be printed
:RAM cost: 0 GB
:param x: Value to be printed
Prints a value or a variable to the Terminal
Prints a value or a variable to the Terminal.
Example:
.. code-block:: javascript
tprint("Hello world!"); // Prints "Hello world!" to the terminal.

@ -3,10 +3,12 @@ tryWrite() Netscript Function
.. js:function:: tryWrite(port, data="")
:RAM cost: 1 GB
:param number port: Port to be written to
:param string data: Data to try to write
:returns: True if the data is successfully written to the port, and false otherwise
:RAM cost: 1 GB
:returns: ``true`` if the data is successfully written to the port.
Attempts to write data to the specified Netscript Port. If the port is full, the data will
not be written. Otherwise, the data will be written normally
Attempts to write data to the specified Netscript Port. If the port is full,
the data will not be written. Otherwise, the data will be written normally.
See :ref:`netscript_ports` for more details.

@ -1,26 +1,31 @@
weaken() Netscript Function
===========================
.. js:function:: weaken(hostname/ip[, opts={}])
.. js:function:: weaken(hostname[, opts={}])
:param string hostname/ip: IP or hostname of the target server to weaken
:RAM cost: 0.15 GB
:param string hostname: Hostname of the target server to weaken.
:param object opts: Optional parameters for configuring function behavior. Properties:
* threads (*number*) - Number of threads to use for this function.
Must be less than or equal to the number of threads the script is running with.
:returns: The amount by which the target server's security level was
decreased. This is equivalent to 0.05 multiplied by the number of script
threads.
:returns: The amount by which the target server's security level was decreased. This is equivalent to 0.05 multiplied
by the number of script threads
:RAM cost: 0.15 GB
Use your hacking skills to attack a server's security, lowering the server's
security level. The runtime for this command depends on your hacking level
and the target server's security level. This function lowers the security
level of the target server by 0.05.
Use your hacking skills to attack a server's security, lowering the server's security level. The runtime for this command
depends on your hacking level and the target server's security level. This function lowers the security level of the target
server by 0.05.
Like :doc:`hack<hack>` and :doc:`grow<grow>`, :doc:`weaken<weaken>` can be
called on any server, regardless of where the script is running. This
command requires root access to the target server, but there is no required
hacking level to run the command.
Like hack() and grow(), weaken() can be called on any server, regardless of where the script is running. This command requires
root access to the target server, but there is no required hacking level to run the command.
Example:
Example::
.. code-block:: javascript
weaken("foodnstuff");
weaken("foodnstuff", { threads: 5 }); // Only use 5 threads to weaken

@ -1,12 +1,12 @@
wget() Netscript Function
=========================
.. js:function:: wget(url, target[, hostname/ip=current ip])
.. js:function:: wget(url, target[, hostname=current hostname])
:RAM cost: 0 GB
:param string url: URL to pull data from
:param string target: Filename to write data to. Must be script or text file
:param string ip: Optional hostname/ip of server for target file.
:RAM cost: 0 GB
:param string ip: Optional hostname of server for target file.
Retrieves data from a URL and downloads it to a file on the specified server. The data can only
be downloaded to a script (.script, .ns, .js) or a text file (.txt). If the file already exists,
@ -20,12 +20,12 @@ wget() Netscript Function
**IMPORTANT:** This is an asynchronous function that returns a Promise. The Promise's resolved
value will be a boolean indicating whether or not the data was successfully
retrieved from the URL. Because the function is async and returns a Promise,
it is recommended you use :code:`wget` in :ref:`netscriptjs`.
it is recommended you use ``wget`` in :ref:`netscriptjs`.
In NetscriptJS, you must preface any call to
:code:`wget` with the :code:`await` keyword (like you would :code:`hack` or :code:`sleep`).
``wget`` with the ``await`` keyword (like you would ``hack`` or ``sleep``).
:code:`wget` will still work in :ref:`netscript1`, but the functions execution will not
``wget`` will still work in :ref:`netscript1`, but the functions execution will not
be synchronous (i.e. it may not execute when you expect/want it to). Furthermore, since Promises are not
supported in ES5, you will not be able to process the returned value of :code:`wget` in
supported in ES5, you will not be able to process the returned value of ``wget`` in
Netscript 1.0.

@ -1,20 +1,27 @@
write() Netscript Function
===========================
.. js:function:: write(port/fn, data="", mode="a")
.. js:function:: write(portOrFilename, data="", mode="a")
:param string/number port/fn: Port or text file/script that will be written to
:RAM cost: 1 GB
:param string/number portOrFilename: Port or text file/script that will be written to
:param string data: Data to write
:param string mode: Defines the write mode. Only valid when writing to text files or scripts.
:RAM cost: 1 GB
This function can be used to either write data to a port, a text file (.txt), or a script (.script, .js, .ns)
If the first argument is a number between 1 and 20, then it specifies a port and this function will write *data* to that port. Read
about how :ref:`netscript_ports` work here. The third argument, *mode*, is not used
This function can be used to either write data to a port, a text file
(.txt), or a script (.script, .js, .ns)
If the first argument is a number between 1 and 20, then it specifies a port
and this function will write ``data`` to that port. Read about how
:ref:`netscript_ports` work here. The third argument, ``mode``, is not used
when writing to a port.
If the first argument is a string, then it specifies the name of a text file or script and this function will write *data* to that text file/script. If the
specified text file/script does not exist, then it will be created. The third argument *mode*, defines how the data will be written. If *mode*
is set to "w", then the data is written in "write" mode which means that it will overwrite all existing data on the text file/script. If *mode* is set to
any other value then the data will be written in "append" mode which means that the data will be added at the end of the file.
If the first argument is a string, then it specifies the name of a text file
or script and this function will write ``data`` to that text file/script. If
the specified text file/script does not exist, then it will be created. The
third argument ``mode``, defines how the data will be written. If ``mode``
is set to "w", then the data is written in "write" mode which means that it
will overwrite all existing data on the text file/script. If ``mode`` is set
to any other value then the data will be written in "append" mode which
means that the data will be added at the end of the file.

@ -4,10 +4,12 @@ getActionAutolevel() Netscript Function
.. js:function:: getActionAutolevel(type, name)
:RAM cost: 4 GB
:param string type: Type of action. See :ref:`bladeburner_action_types`
:param string name: Name of action. Must be an exact match
:returns: ``true`` if this action is set to auto level.
Return a boolean indicating whether or not this action is currently set to autolevel.
Examples:
Returns false if an invalid action is specified.
.. code-block:: javascript
bladeburner.getActionAutolevel("Contracts", "Tracking"); // returns: true

@ -4,12 +4,18 @@ getActionCountRemaining() Netscript Function
.. js:function:: getActionCountRemaining(type, name)
:RAM cost: 4 GB
:param string type: Type of action. See :ref:`bladeburner_action_types`
:param string name: Name of action. Must be an exact match
:returns: Remaining action count. -1 for invalid actions.
Returns the remaining count of the specified action.
Note that this is meant to be used for 'Contracts' and 'Operations'.
This function will return 'Infinity' for actions such as 'Training' and
'Field Analysis'.
This function will return 1 for BlackOps not yet completed regardless of
wether the player has the required rank to attempt the mission or not.
Note that this is meant to be used for Contracts and Operations.
This function will return 'Infinity' for actions such as Training and Field Analysis.
This function will return 1 for BlackOps not yet completed regardless of wether the player has the required rank to attempt the mission or not.
Example:
.. code-block:: javascript
bladeburner.getActionCountRemaining("Contracts", "Tracking"); // returns: 124

@ -4,10 +4,12 @@ getActionCurrentLevel() Netscript Function
.. js:function:: getActionCurrentLevel(type, name)
:RAM cost: 4 GB
:param string type: Type of action. See :ref:`bladeburner_action_types`
:param string name: Name of action. Must be an exact match
:param string name: Name of action. Must be an exact match.
:returns: Action current level, -1 for invalid actions.
Returns the current level of this action.
Example:
Returns -1 if an invalid action is specified.
.. code-block:: javascript
bladeburner.getActionCountRemaining("Contracts", "Tracking"); // returns: 7

@ -4,10 +4,12 @@ getActionEstimatedSuccessChance() Netscript Function
.. js:function:: getActionEstimatedSuccessChance(type, name)
:RAM cost: 4 GB
:param string type: Type of action. See :ref:`bladeburner_action_types`
:param string name: Name of action. Must be an exact match
:returns: Estimated success chance in decimal
Returns the estimated success chance for the specified action. This chance
is returned as a decimal value, NOT a percentage (e.g. if you have an estimated
success chance of 80%, then this function will return 0.80, NOT 80).
Example:
.. code-block:: javascript
bladeburner.getActionEstimatedSuccessChance("Contracts", "Tracking"); // returns: .3

@ -4,10 +4,12 @@ getActionMaxLevel() Netscript Function
.. js:function:: getActionMaxLevel(type, name)
:RAM cost: 4 GB
:param string type: Type of action. See :ref:`bladeburner_action_types`
:param string name: Name of action. Must be an exact match
:returns: Action max level, -1 for invalid actions.
Returns the maximum level for this action.
Example:
Returns -1 if an invalid action is specified.
.. code-block:: javascript
bladeburner.getActionMaxLevel("Contracts", "Tracking"); // returns: 15

@ -4,11 +4,15 @@ getActionRepGain() Netscript Function
.. js:function:: getActionRepGain(type, name[, level=current level])
:RAM cost: 4 GB
:param string type: Type of action. See :ref:`bladeburner_action_types`
:param string name: Name of action. Must be an exact match
:param number level: Optional action level at which to calculate the gain
:param number level: Optional action level at which to calculate the gain.
:returns: Average Bladeburner reputation gain for successfully completing
the specified action. Note that this value is an 'average' and the real
reputation gain may vary slightly from this value.
Returns the average Bladeburner reputation gain for successfully completing
the specified action. Note that this value is an 'average' and the real
reputation gain may vary slightly from this value.
Example:
.. code-block:: javascript
bladeburner.getActionRepGain("Contracts", "Tracking"); // returns: 341

@ -4,8 +4,13 @@ getActionTime() Netscript Function
.. js:function:: getActionTime(type, name)
:RAM cost: 4 GB
:param string type: Type of action. See :ref:`bladeburner_action_types`
:param string name: Name of action. Must be an exact match
:returns: Number of seconds it takes to complete the specified action.
Returns the number of seconds it takes to complete the specified action
Example:
.. code-block:: javascript
bladeburner.getActionTime("Contracts", "Tracking"); // returns: 4

@ -4,5 +4,10 @@ getBlackOpNames() Netscript Function
.. js:function:: getBlackOpNames()
:RAM cost: 0.4 GB
:returns: Array of strings containing the names of all Bladeburner Black Ops.
Returns an array of strings containing the names of all Bladeburner Black Ops
Example:
.. code-block:: javascript
bladeburner.getBlackOpNames(); // returns: ["Operation Typhoon"]

@ -4,9 +4,11 @@ getBlackOpRank() Netscript Function
.. js:function:: getBlackOpRank(name)
:RAM cost: 2 GB
:param string name: name of the BlackOp. Must be an exact match.
:returns: Rank required to complete this BlackOp. -1 for invalid BlackOp.
Returns the rank required to complete this BlackOp.
Example:
Returns -1 if an invalid action is specified.
.. code-block:: javascript
bladeburner.getBlackOpRank("Operation Typhoon"); // returns: 2500

@ -4,8 +4,7 @@ getBonusTime() Netscript Function
.. js:function:: getBonusTime()
:RAM cost: 0 GB
Returns the amount of accumulated "bonus time" (seconds) for the Bladeburner mechanic.
:returns: Amount of accumulated "bonus time" (seconds) for the Bladeburner mechanic.
"Bonus time" is accumulated when the game is offline or if the game is
inactive in the browser.
@ -14,3 +13,9 @@ getBonusTime() Netscript Function
For example, if an action takes 30 seconds to complete but you've accumulated
over 30 seconds in bonus time, then the action will only take 6 seconds
in real life to complete.
Example:
.. code-block:: javascript
bladeburner.getBonusTime(); // returns: 130

@ -4,5 +4,10 @@ getCity() Netscript Function
.. js:function:: getCity()
:RAM cost: 4 GB
:returns: City that the player is currently in (for Bladeburner).
Returns the city that the player is currently in (for Bladeburner).
Example:
.. code-block:: javascript
bladeburner.getCity(); // returns: "Sector-12"

@ -4,7 +4,11 @@ getCityChaos() Netscript Function
.. js:function:: getCityChaos(cityName)
:RAM cost: 4 GB
:param string cityName: Name of city. Case-sensitive
:returns: Chaos in the specified city, or -1 if an invalid city was specified.
Returns the chaos in the specified city, or -1 if an invalid city was specified
Example:
.. code-block:: javascript
bladeburner.getCityChaos("Sector-12"); // returns: 3800.1

@ -4,8 +4,12 @@ getCityEstimatedCommunities() Netscript Function
.. js:function:: getCityEstimatedCommunities(cityName)
:RAM cost: 4 GB
:param string cityName: Name of city. Case-sensitive
:returns: Estimated number of Synthoid communities in the specified city,
or -1 if an invalid city was specified.
Returns the estimated number of Synthoid communities in the specified city,
or -1 if an invalid city was specified.
Example:
.. code-block:: javascript
bladeburner.getCityEstimatedCommunities("Sector-12"); // returns: 76

@ -4,8 +4,12 @@ getCityEstimatedPopulation() Netscript Function
.. js:function:: getCityEstimatedPopulation(cityName)
:RAM cost: 4 GB
:param string cityName: Name of city. Case-sensitive
:returns: Estimated number of Synthoids in the specified city, or -1 if an
invalid city was specified.
Returns the estimated number of Synthoids in the specified city, or -1
if an invalid city was specified.
Example:
.. code-block:: javascript
bladeburner.getCityEstimatedPopulation("Sector-12"); // returns: 1240000

@ -4,5 +4,10 @@ getContractNames() Netscript Function
.. js:function:: getContractNames()
:RAM cost: 0.4 GB
:returns: Array of strings containing the names of all Bladeburner contracts.
Returns an array of strings containing the names of all Bladeburner contracts
Example:
.. code-block:: javascript
bladeburner.getContractNames(); // returns: ["Tracking"]

@ -4,8 +4,9 @@ getCurrentAction() Netscript Function
.. js:function:: getCurrentAction()
:RAM cost: 1 GB
:returns: An object that represents the player's current Bladeburner action.
Returns an object that represents the player's current Bladeburner action::
Result::
{
type: Type of Action
@ -14,3 +15,11 @@ getCurrentAction() Netscript Function
If the player is not performing an action, the function will return an object
with the 'type' property set to "Idle".
Example:
.. code-block:: javascript
action = bladeburner.getCurrentAction();
print(action.type); // "Contracts"
print(action.name); // "Tracking"

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