There were two large holes in the existing offline server handling: 1. It didn't include IPs, so scripts that used IPs instead of hostnames would get exceptions thrown for "server not found." 2. Coverage was very low for non-Darknet APIs. Maybe most of them don't need to be covered, but many obvious ones like "ps", "killall" and "hasRootAccess" were missing. IMO the only reliable answer is one that enforces *all* are covered via the type system. To accomplish the second part, helpers.getServer() was changed to return null when a server is offline. This intentionally breaks a lot of its utility, which was to return a server unconditionally. To compensate, its utility was increased - it now also does unknown argument processing, allowing it to subsume a common line that all callers were repeating. Some callers switched to ctx.workerScript.getServer(), because they didn't actually need to be using helpers.getServer(). Similarly, a few callsites switched to GetServerOrThrow(), for the cases where it should be guaranteed that the server is valid. The rest are returning a default/failure response when the server is offline. (Except for contracts, which threw on failure already anyway.)
1.8 KiB
Home > bitburner > NS > weaken
NS.weaken() method
Reduce a server's security level.
Signature:
weaken(host?: string, opts?: BasicHGWOptions): Promise<number>;
Parameters
|
Parameter |
Type |
Description |
|---|---|---|
|
host |
string |
(Optional) Hostname/IP of the target server to weaken. Optional. Defaults to current server if not provided. |
|
opts |
(Optional) Optional parameters for configuring function behavior. |
Returns:
Promise<number>
A promise that resolves to the value by which security was reduced.
Remarks
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 function depends on your hacking level and the target server’s security level when this function is called.
This function usually lowers the security level of the target server by 0.05 per thread, and only in unusual situations does it do less. Use weakenAnalyze to determine the exact value.
Like hack and grow, weaken can be called on any server, regardless of where the script is running. This function requires root access to the target server, but there is no required hacking level to run the function.
Example
let currentSecurity = ns.getServerSecurityLevel("foodnstuff");
currentSecurity -= await ns.weaken("foodnstuff");