Note: The Scripts and strategies in this guide aren't necessarily optimal or comprehensive. This guide is tailored to help those with minimal programming knowledge experience Bitburner during early stages of the game.
If you are confused or overwhelmed by the game, especially the coding and scripting aspects, this guide is perfect for you!
Bitburner is a cyberpunk-themed incremental RPG. You will progress by raising your Stats, earning money, and with practice, advancing your real-world coding skills. After reaching certain criteria, you will receive invitations from in-game Factions. Joining Factions and working for them will unlock various Augmentations, which are purchased and "installed," adding a persistent bonus to stats and other abilities. Working with Factions and installing Augmentations is a basic step for progressing in Bitburner.
The game has an open, minimalistic storyline that can be played in multiple ways to reach your goals. Since this guide is written as a basic introduction to Bitburner, it will not expose the entire scope or storyline available.
I'm going to assume you followed the introductory tutorial when you first began the game.
In this introductory tutorial, you created a Script called n00dles.js
and ran it on the n00dles
server.
Now, we'll kill this Script. There are two ways to do this:
- You can go to the Terminal and enter:
$ kill n00dles.js
- You can go to the
Active Scripts
page (Alt + s) and press theKill Script
button forn00dles.js
.
If you skipped the introductory tutorial, then ignore the part above.
Instead, go to the Hacknet Nodes
page (Alt + h) and purchase a Hacknet Node to start generating some passive income.
Now, we'll create a generic hacking Script that can be used early on in the game (or throughout the entire game, if you want).
Before we write the Script, here are some things you'll want to familiarize yourself with:
hacking
security
hack
grow
weaken
brutessh
nuke
To briefly summarize: Each Server has a security level that affects how difficult it is to hack.
Each Server also has a certain amount of money, as well as a maximum amount of money it can hold.
Hacking a Server steals a percentage of that Server's money.
The hack()
function is used to hack a Server.
The grow()
function is used to increase the amount of money available on a Server.
The weaken()
function is used to decrease a Server's security level.
Now let's move on to actually creating the Script.
Go to your home computer and then create a Script called early-hack-template.js
by going to Terminal and entering the following two commands:
$ home
$ nano early-hack-template.js
This will take you to the Script editor, which you can use to code and create Scripts.
Enter the following code in the Script editor:
/** @param {NS} ns */
export async function main(ns) {
// Defines the "target server", which is the server
// that we're going to hack. In this case, it's "n00dles"
const target = "n00dles";
// Defines how much money a server should have before we hack it
// In this case, it is set to the maximum amount of money.
const moneyThresh = ns.getServerMaxMoney(target);
// Defines the minimum security level the target server can
// have. If the target's security level is higher than this,
// we'll weaken it before doing anything else
const securityThresh = ns.getServerMinSecurityLevel(target);
// If we have the BruteSSH.exe program, use it to open the SSH Port
// on the target server
if (ns.fileExists("BruteSSH.exe", "home")) {
ns.brutessh(target);
}
// Get root access to target server
ns.nuke(target);
// Infinite loop that continously hacks/grows/weakens the target server
while(true) {
if (ns.getServerSecurityLevel(target) > securityThresh) {
// If the server's security level is above our threshold, weaken it
await ns.weaken(target);
} else if (ns.getServerMoneyAvailable(target) < moneyThresh) {
// If the server's money is less than our threshold, grow it
await ns.grow(target);
} else {
// Otherwise, hack it
await ns.hack(target);
}
}
}
The Script above contains comments that document what it does, but let's go through it step-by-step anyway.
const target = "n00dles";
This first command defines a string which contains our target Server.
That's the Server that we're going to hack.
For now, it's set to "n00dles"
because that's the only Server with a required hacking level of 1
.
If you want to hack a different Server, simply change this variable to be the hostname of another Server.
const moneyThresh = ns.getServerMaxMoney(target);
This second command defines a numerical value representing the minimum amount of money that must be available on the target Server in order for our Script to hack it.
If the money available on the target Server is less than this value, then our Script will grow()
the Server rather than hacking it.
It is set to the maximum amount of money that can be available on the Server.
The getServerMaxMoney()
function is used to find this value
const securityThresh = ns.getServerMinSecurityLevel(target);
This third command defines a numerical value representing the minimum security level the target Server can have.
If the target Server's security level is higher than this value, then our Script will weaken()
the server before doing anything else.
if (ns.fileExists("BruteSSH.exe", "home")) {
ns.brutessh(target);
}
ns.nuke(target);
This section of code is used to gain root access on the target Server. This is necessary for hacking.
while (true) {
if (ns.getServerSecurityLevel(target) > securityThresh) {
// If the server's security level is above our threshold, weaken it
await ns.weaken(target);
} else if (ns.getServerMoneyAvailable(target) < moneyThresh) {
// Otherwise, if the server's money is less than our threshold, grow it
await ns.grow(target);
} else {
// Otherwise, hack it
await ns.hack(target);
}
}
This is the main section that drives our Script.
It dictates the Script's logic and carries out the hacking operations.
The while (true)
creates an infinite loop that will continuously run the hacking logic until the the Script is killed.
The await keyword is needed for hack()
/ grow()
/ weaken()
because these commands take time to execute, unlike the others.
If you forget to await these commands, you will get an exception saying you tried to do multiple things at once, because your code will immediately finish the function call without waiting for the operation to be done.
Also important is that await can only be used in functions marked async
(note that main()
is marked async
).
Now we want to start running our hacking Script so that it can start earning us money and experience. Our home computer only has 8GB of RAM, and we'll be using it for something else later. Instead, we'll take advantage of the RAM on other machines.
Go to Terminal
and enter the following command:
$ scan-analyze 2
This will show detailed information about some Servers on the network. The network is randomized so it will be different for every person. Here's what mine showed at the time I made this:
[home ~]> scan-analyze 2
┕ home
┃ Root Access: YES, Required hacking skill: 1
┃ Number of open ports required to NUKE: 5
┃ RAM: 8.00GB
┣ n00dles
┃ ┃ Root Access: YES, Required hacking skill: 1
┃ ┃ Number of open ports required to NUKE: 0
┃ ┃ RAM: 4.00GB
┃ ┕ nectar-net
┃ Root Access: NO, Required hacking skill: 20
┃ Number of open ports required to NUKE: 0
┃ RAM: 16.00GB
┣ foodnstuff
┃ ┃ Root Access: NO, Required hacking skill: 1
┃ ┃ Number of open ports required to NUKE: 0
┃ ┃ RAM: 16.00GB
┃ ┕ zer0
┃ Root Access: NO, Required hacking skill: 75
┃ Number of open ports required to NUKE: 1
┃ RAM: 32.00GB
┣ sigma-cosmetics
┃ ┃ Root Access: NO, Required hacking skill: 5
┃ ┃ Number of open ports required to NUKE: 0
┃ ┃ RAM: 16.00GB
┃ ┕ max-hardware
┃ Root Access: NO, Required hacking skill: 80
┃ Number of open ports required to NUKE: 1
┃ RAM: 32.00GB
┣ joesguns
┃ Root Access: NO, Required hacking skill: 10
┃ Number of open ports required to NUKE: 0
┃ RAM: 16.00GB
┣ hong-fang-tea
┃ Root Access: NO, Required hacking skill: 30
┃ Number of open ports required to NUKE: 0
┃ RAM: 16.00GB
┣ harakiri-sushi
┃ Root Access: NO, Required hacking skill: 40
┃ Number of open ports required to NUKE: 0
┃ RAM: 16.00GB
┕ iron-gym
┃ Root Access: NO, Required hacking skill: 100
┃ Number of open ports required to NUKE: 1
┃ RAM: 32.00GB
┕ CSEC
Root Access: NO, Required hacking skill: 55
Number of open ports required to NUKE: 1
RAM: 8.00GB
Take note of the following servers:
sigma-cosmetics
joesguns
nectar-net
hong-fang-tea
harakiri-sushi
All of these servers have 16GB of RAM. Furthermore, all of these servers do not require any open ports in order to NUKE. In other words, we can gain root access to all of these servers and then run Scripts on them.
First, let's determine how many threads of our hacking Script we can run. (See the page on scripts for more information on multithreading.)
The Script we wrote uses 2.6GB of RAM.
You can check this using the following Terminal
command:
$ mem early-hack-template.js
This means we can run 6 threads on a 16GB server. Now, to run our Scripts on all of these servers, we have to do the following:
- Use the
scp
command to copy our Script to each server. - Use the
connect
command to connect to a server. - Use the
run
command to run theNUKE.exe
program and gain root access. - Use the
run
command again to run our Script. - Repeat steps 2-4 for each server.
Here's the sequence of Terminal
commands I used in order to achieve this:
$ home
$ scp early-hack-template.js n00dles
$ scp early-hack-template.js sigma-cosmetics
$ scp early-hack-template.js joesguns
$ scp early-hack-template.js nectar-net
$ scp early-hack-template.js hong-fang-tea
$ scp early-hack-template.js harakiri-sushi
$ connect n00dles
$ run NUKE.exe
$ run early-hack-template.js -t 1
$ home
$ connect sigma-cosmetics
$ run NUKE.exe
$ run early-hack-template.js -t 6
$ home
$ connect joesguns
$ run NUKE.exe
$ run early-hack-template.js -t 6
$ home
$ connect hong-fang-tea
$ run NUKE.exe
$ run early-hack-template.js -t 6
$ home
$ connect harakiri-sushi
$ run NUKE.exe
$ run early-hack-template.js -t 6
$ home
$ connect hong-fang-tea
$ connect nectar-net
$ run NUKE.exe
$ run early-hack-template.js -t 6
Pressing the Tab
key in the middle of a Terminal command will attempt to auto-complete the command.
For example, if you type in scp ea
and then hit Tab
, the rest of the Script's name should automatically be filled in.
This works for most commands in the game!
The home
command is used to connect to the home computer. When running our Scripts with the run early-hack-template.js -t 6
command, the -t 6
specifies that the Script should be run with 6 threads.
Note that the nectar-net
Server isn't in the home computer's immediate network.
This means you can't directly connect to it from home. You will have to search for it inside the network.
The results of the scan-analyze 2
command we ran before will show where it is.
In my case, I could connect to it by going from hong-fang-tea
-> nectar-net
.
However, this will probably be different for you.
After running all of these Terminal
commands, our Scripts are now up and running.
These will earn money and hacking experience over time.
These gains will be really slow right now, but they will increase once our hacking skill rises and we start running more Scripts.
There are many Servers besides n00dles
that can be hacked, but they have higher required hacking levels.
Therefore, we should raise our hacking level.
Not only will this let us hack more Servers, but it will also increase the effectiveness of our hacking against n00dles
.
The easiest way to train your hacking level is to visit Rothman University.
You can do this from the City
tab (Alt + w) on the left-hand navigation menu.
Rothman University should be the "U" near the bottom-right.
Click the "U" to go to the location.
Once you go to Rothman University, you should see a screen with several options.
These options describe different courses you can take.
You should click the first button, which says: Study Computer Science (free)
.
After you click the button, you will start studying and earning hacking experience.
While you are doing this, you cannot interact with any other part of the game until you click either Stop taking course
or Do something else simultaneously
.
Right now, we want a hacking level of 10.
You need approximately 174 hacking experience to reach level 10.
You can check how much hacking experience you have by going to the Stats
tab (Alt + c) on the left-hand navigation menu.
Since studying at Rothman University earns you 1 experience per second, this will take 174 seconds, or approximately 3 minutes.
Feel free to do something in the meantime!
Now that we have a hacking level of 10, we can hack the joesguns
Server.
This Server will be slightly more profitable than n00dles
.
Therefore, we want to change our hacking Script to target joesguns
instead of n00dles
.
Go to Terminal
and edit the hacking Script by entering:
$ home
$ nano early-hack-template.js
At the top of the Script, change the target
variable to be "joesguns"
:
const target = "joesguns";
Note that this will NOT affect any instances of the Script that are already running. This will only affect instances of the Script that are run from this point forward.
Next, we're going to create a Script that automatically purchases additional Servers. These Servers will be used to run many Scripts. Running this Script will initially be very expensive since purchasing a Server costs money, but it will pay off in the long run.
In order to create this Script, you should familiarize yourself with the following functions:
purchaseServer()
getPurchasedServerCost()
getPurchasedServerLimit()
getServerMoneyAvailable()
scp()
exec()
Create the Script by going to Terminal
and typing:
$ home
$ nano purchase-server-8gb.js
Paste the following code into the Script editor:
/** @param {NS} ns */
export async function main(ns) {
// How much RAM each purchased server will have. In this case, it'll
// be 8GB.
const ram = 8;
// Iterator we'll use for our loop
let i = 0;
// Continuously try to purchase servers until we've reached the maximum
// amount of servers
while (i < ns.getPurchasedServerLimit()) {
// Check if we have enough money to purchase a server
if (ns.getServerMoneyAvailable("home") > ns.getPurchasedServerCost(ram)) {
// If we have enough money, then:
// 1. Purchase the server
// 2. Copy our hacking script onto the newly-purchased server
// 3. Run our hacking script on the newly-purchased server with 3 threads
// 4. Increment our iterator to indicate that we've bought a new server
let hostname = ns.purchaseServer("pserv-" + i, ram);
ns.scp("early-hack-template.js", hostname);
ns.exec("early-hack-template.js", hostname, 3);
++i;
}
//Make the script wait for a second before looping again.
//Removing this line will cause an infinite loop and crash the game.
await ns.sleep(1000);
}
}
This code uses a while loop to purchase the maximum amount of Servers using the purchaseServer()
function.
Each of these Servers will have 8GB of RAM, as defined in the ram
variable.
Note that the Script uses the command getServerMoneyAvailable("home")
to get the amount of money you currently have.
This is then used to check if you can afford to purchase a Server.
Whenever the script purchases a new Server, it uses the scp()
function to copy our Script onto that new Server, and then it uses the exec()
function to execute it on that Server.
To run this Script, go to Terminal
and type:
$ run purchase-server-8gb.js
This purchase will continuously run until it has purchased the maximum number of Servers.
When this happens, it'll mean that you have a bunch of new Servers that are all running hacking Scripts against the joesguns
Server!
The reason we're using so many Scripts to hack joesguns
instead of targeting other Servers is because it's more effective.
This early in the game, we don't have enough RAM to efficiently hack multiple targets, and trying to do so would be slow as we'd be spread too thin.
You should definitely do this later on, though!
Note that purchasing a Server is fairly expensive, and purchasing the maximum amount of Servers even more so. At the time of writing this guide, the Script above requires $11 million in order to finish purchasing all of the 8GB Servers. Therefore, we need to find additional ways to make money to speed up the process! These are covered in the next section.
There are other ways to gain money in this game besides Scripts & hacking.
If you completed the introductory tutorial, you were already introduced to this method: Hacknet Nodes. Once you have enough money, you can start upgrading your Hacknet Nodes in order to increase your passive income stream. This is completely optional. Since each Hacknet Node upgrade takes a certain amount of time to "pay itself off", it may not necessarily be in your best interest to use these.
Nonetheless, Hacknet Nodes are a good source of income early in the game, although their effectiveness tapers off later on. If you do wind up purchasing and upgrading Hacknet Nodes, I would suggest only upgrading their levels for now. I wouldn't bother with RAM and Core upgrades until later on.
The best source of income right now is from crimes.
This is because it not only gives you a large amount of money, but it also raises your hacking level.
To commit crimes, go to the City
tab (Alt + w).
Then, click on the link that says The Slums
.
In the Slums, you can attempt to commit a variety of crimes, each of which gives certain types of experience and money if successful. See crimes for more details.
You are not always successful when you attempt to commit a crime. Nothing bad happens if you fail a crime, but you won't earn any money and the experience gained will be reduced. Raising your stats improves your chance of successfully committing a crime.
Right now, the best option is the Rob Store
crime.
This takes 60 seconds to attempt, gives $400k if successful, and gives hacking experience (which is very important right now).
Alternatively, you can also use the Shoplift
crime.
This takes 2 seconds to attempt and gives $15k if successful.
This crime is slightly easier and more profitable than Rob Store
, but doesn't give hacking experience.
If you don't want to commit crimes, there's another option - working for a company. This will not be nearly as profitable as crimes, but will provide company reputation.
Go to the City
tab on the left-hand navigation menu and then go to Joe's Guns
.
At Joe's Guns
, there will be an option that says Apply to be an Employee
.
Click this to get the job.
Then, a new option will appear that simply says Work
.
Click this to start working.
Working at Joe's Guns
earns $110 per second and also grants some experience for every stat except hacking.
Working for a company, like crime, is completely passive. You can choose to focus on your work, do something else simultaneously, or switch between those two. While you focus on work, you will not be able to do anything else in the game. If you do something else simultaneously, you will not gain reputation at the same speed. You can cancel working at any time.
Once your hacking hits level 75, you can visit Carmichael Security
in the city and get a software job there.
This job offers higher pay and also earns you hacking experience.
There are many more companies in the City
tab that offer more pay and also more gameplay features.
Feel free to explore!
After you've made a total of $11 million, your automatic Server-purchasing Script should finish running.
This will free up some RAM on your home computer.
We don't want this RAM to go to waste, so we'll make use of it.
Go to Terminal
and enter the following commands:
$ home
$ run early-hack-template.js -t 3
Once you reach a hacking level of 50, two new important parts of the game open up.
On the left-hand navigation menu you will notice a Create Program
tab (Alt + p) with a red notification icon.
This indicates that there are programs available to be created.
Go to that tab, and you'll see a list of all the programs you can currently create.
Hovering over a program will give a brief description of its function.
Simply click on a program to start creating it.
Right now, the program we want to create is BruteSSH.exe
.
This program is used to open up SSH ports on Servers.
This will allow you to hack more Servers, as many Servers in the game require a certain number of opened ports in order for NUKE.exe
to gain root access.
Feel free to cancel your work on creating a program at any time, as your progress will be saved and can be picked back up later.
BruteSSH.exe
takes about 10 minutes to complete.
On the Create Programs
page, you will notice another program you can create called AutoLink.exe
.
If you don't mind waiting another 10-15 minutes, you should go ahead and create this program.
It makes it much less tedious to connect to other Servers, but it's not necessary for progression.
Shortly after you reached level 50 hacking, you should have received a message that said this:
Message received from unknown sender:
We've been watching you. Your skills are very impressive. But you're wasting your talents.
If you join us, you can put your skills to good use and change the world for the better.
If you join us, we can unlock your full potential.
But first, you must pass our test. Find and install the backdoor on our server.
-CyberSec
This message was saved as csec-test.msg onto your home computer.
If you didn't, or if you accidentally closed it, that's okay!
Messages get saved onto your home computer.
Enter the following Terminal
commands to view the message:
$ home
$ cat csec-test.msg
This message is part of the game's main "quest-line".
It is a message from the CyberSec
faction that is asking you to pass their test.
Passing their test is simple, you just have to find their Server, hack it, and install a backdoor through the Terminal
.
Their Server is called CSEC
.
To do this, we'll use the scan-analyze
Terminal command, just like we did before:
$ home
$ scan-analyze 2
This will show you the network for all Servers that are up to 2 "nodes" away from your home computer.
Remember that the network is randomly generated so it'll look different for everyone.
Here's the relevant part of my scan-analyze
results:
┕ home
┃ Root Access: YES, Required hacking skill: 1
┃ Number of open ports required to NUKE: 5
┃ RAM: 8.00GB
┣ harakiri-sushi
┃ Root Access: NO, Required hacking skill: 40
┃ Number of open ports required to NUKE: 0
┃ RAM: 16.00GB
┕ iron-gym
┃ Root Access: NO, Required hacking skill: 100
┃ Number of open ports required to NUKE: 1
┃ RAM: 32.00GB
┕ CSEC
Root Access: NO, Required hacking skill: 55
Number of open ports required to NUKE: 1
RAM: 8.00GB
This tells me that I can reach CSEC
by going through iron-gym
:
$ connect iron-gym
$ connect CSEC
If you created the AutoLink.exe
program earlier, then there is an easier method of connecting to CSEC
.
You'll notice that in the scan-analyze
results, all of the Server hostnames are white and underlined.
You can simply click one of the Server hostnames in order to connect to it.
So, simply click CSEC
!
Make sure you notice the required hacking skill for the CSEC
Server.
This is a random value between 51 and 60.
Although you receive the message from CSEC once you hit 50 hacking, you cannot actually pass their test until your hacking is high enough to install a backdoor on their Server.
After you are connected to the CSEC
Server, you can backdoor it.
Note that this Server requires one open port in order to gain root access.
We can open the SSH port using the BruteSSH.exe
program we created earlier.
In Terminal
:
$ run BruteSSH.exe
$ run NUKE.exe
$ backdoor
After you successfully install the backdoor, you should receive a faction invitation from CyberSec
shortly afterwards.
Accept it.
If you accidentally reject the invitation, that's okay.
Just go to the Factions
tab (Alt + f) and you should see an option that lets you accept the invitation.
Congrats! You just joined your first faction. Don't worry about doing anything with this faction yet, we can come back to it later.
Once you have the BruteSSH
program, you will be able to gain root access to several additional Servers.
These Servers have more RAM that you can use to run Scripts.
We'll use the RAM on these Servers to run more Scripts that target joesguns
.
The Servers we'll be using to run our Scripts are:
neo-net
zer0
max-hardware
iron-gym
All of these Servers have 32GB of RAM.
You can use the Terminal
command scan-analyze 3
to see for yourself.
To copy our hacking Scripts onto these Servers, go to Terminal
and run:
$ home
$ scp early-hack-template.js neo-net
$ scp early-hack-template.js zer0
$ scp early-hack-template.js max-hardware
$ scp early-hack-template.js iron-gym
Since each of these Servers has 32GB of RAM, we can run our hacking script with 12 threads on each Server.
By now, you should know how to connect to Servers.
So find and connect to each of the Servers above using the scan-analyze 3
Terminal
command.
Then, use following Terminal
command to run our hacking script with 12 threads:
$ run early-hack-template.js -t 12
Remember that if you have the AutoLink
program, you can simply click on the hostname of a Server after running scan-analyze
to connect to it.
Now it's time to play the waiting game.
It will take some time for your Scripts to start earning money.
Remember that most of your Scripts are targeting joesguns
.
It will take a bit for them to grow()
and weaken()
the Server to the appropriate values before they start hacking it.
Once they do, however, the Scripts will be very profitable.
For reference, in about two hours after starting my first Script, my Scripts had a production rate of $20k per second and had earned a total of $70 million.
(You can see these stats on the Active Scripts
tab).
After another 15 minutes, the production rate had increased to $25k per second and the Scripts had made an additional $55 million.
Your results will vary based on how fast you earned money from crime/working/hacknet nodes, but this will hopefully give you a good indication of how much the Scripts can earn.
In the meantime, we are going to be gaining reputation with the CyberSec
faction.
Go to the Factions
tab (Alt + f) on the left-hand navigation menu, and from there select CyberSec
.
In the middle of the page there should be a button for Hacking Contracts
.
Click it to start earning reputation for the CyberSec
faction (as well as some hacking experience).
The higher your hacking level, the more reputation you will gain.
Note that while you are working for a faction, you can choose to not interact with the rest of the game in any way to gain reputation at full speed.
You can also select to do something else simultaneously, gaining reputation a bit more slowly, until you focus again.
You can cancel your faction work at any time with no penalty to your reputation gained so far.
As I mentioned before, within 1-2 hours I had earned over $200 million. Now, it's time to spend all of this money on some persistent upgrades to help progress!
The most important thing to upgrade right now is the RAM on your home computer. This will allow you to run more Scripts.
To upgrade your RAM, go to the City
tab and visit the company Alpha Enterprises
.
There will be a button that says Upgrade 'home' RAM (8.00GB -> 16.00GB) - $1.010m
.
Click it to upgrade your RAM.
I recommend getting your home computer's RAM to at least 128GB. Getting it even higher would be better.
Once you get ~1000 reputation with the CyberSec
faction, you can purchase your first Augmentation from them.
To do this, go to the Factions
tab on the left-hand navigation menu (Alt + f) and select CyberSec
.
There is a button near the bottom that says Purchase Augmentations
.
This will bring up a page that displays all of the Augmentations available from CyberSec
.
Some of them may be locked right now.
To unlock these, you will need to earn more reputation with CyberSec
.
Augmentations give persistent upgrades in the form of multipliers. These aren't very powerful early in the game because the multipliers are small. However, the effects of Augmentations stack multiplicatively with each other, so as you continue to install many Augmentations, their effects will increase significantly.
Because of this, I would recommend investing more in RAM upgrades for your home computer rather than Augmentations early on. Having enough RAM to run many Scripts will allow you to make much more money, and then you can come back later on and get all these Augmentations.
Right now, I suggest purchasing at the very least the Neurotrainer I
Augmentation from CyberSec
.
If you have the money to spare, I would also suggest getting BitWire
and several levels of the NeuroFlux Governor
(NFG
) Augmentations.
Note that each time you purchase an Augmentation, the price of purchasing another increases by 90%, so make sure you buy the most expensive Augmentation first.
Don't worry, once you choose to install Augmentations, their prices will reset back to their original values.
That's the end of the walkthrough portion of this guide! You should continue to explore what the game has to offer. There's quite a few features that aren't covered or mentioned in this guide, and even more that get unlocked as you continue to play!
Also, check out the API documentation to see what it has to offer. Writing Scripts to perform and automate various tasks is where most of the fun in the game comes from (in my opinion)!
The following are a few things you may want to consider doing in the near future.
If you've purchased any Augmentations, you'll need to install them before you actually gain their effects. Installing Augmentations is the game's "soft-reset" or "prestige" mechanic.
To install your Augmentations, go to the Augmentations
tab (Alt + a) on the left-hand navigation menu.
You will see a list of all of the Augmentations you have purchased.
Below that, you will see a button that says Install Augmentations
.
Be warned, after clicking this there is no way to undo it (unless you load an earlier save).
Whenever you install Augmentations, all of your Scripts are killed and you'll have to re-run them. Doing this every time you install Augmentations would be very tedious and annoying, so you should write a Script to automate the process. Here's a simple example for a startup Script. Feel free to adjust it to your liking.
/** @param {NS} ns */
export async function main(ns) {
// Array of all servers that don't need any ports opened
// to gain root access. These have 16 GB of RAM
const servers0Port = ["sigma-cosmetics",
"joesguns",
"nectar-net",
"hong-fang-tea",
"harakiri-sushi"];
// Array of all servers that only need 1 port opened
// to gain root access. These have 32 GB of RAM
const servers1Port = ["neo-net",
"zer0",
"max-hardware",
"iron-gym"];
// Copy our scripts onto each server that requires 0 ports
// to gain root access. Then use nuke() to gain admin access and
// run the scripts.
for (let i = 0; i < servers0Port.length; ++i) {
const serv = servers0Port[i];
ns.scp("early-hack-template.js", serv);
ns.nuke(serv);
ns.exec("early-hack-template.js", serv, 6);
}
// Wait until we acquire the "BruteSSH.exe" program
while (!ns.fileExists("BruteSSH.exe")) {
await ns.sleep(60000);
}
// Copy our scripts onto each server that requires 1 port
// to gain root access. Then use brutessh() and nuke()
// to gain admin access and run the scripts.
for (let i = 0; i < servers1Port.length; ++i) {
const serv = servers1Port[i];
ns.scp("early-hack-template.js", serv);
ns.brutessh(serv);
ns.nuke(serv);
ns.exec("early-hack-template.js", serv, 12);
}
}
- Early on in the game, it's better to spend your money on upgrading RAM and purchasing new Servers rather than spending it on Augmentations
- The more money available on a Server, the more effective the
hack()
andgrow()
functions will be. This is because both of these functions use percentages rather than flat values.hack()
steals a percentage of a Server's total available money, andgrow()
increases a Server's money by X%. - There is a limit to how much money can exist on a Server.
This value is different for each Server.
The
getServerMaxMoney()
function will tell you this maximum value. - At this stage in the game, your combat stats (strength, defense, etc.) are not nearly as useful as your hacking stat. Do not invest too much time or money into gaining combat stat exp.
- As a rule of thumb, your hacking target should be the Server with highest max money that's required hacking level is under 1/2 of your hacking level.