Netscript Singularity Functions¶
The Singularity Functions are a special set of Netscript functions. These functions allow you to control many additional aspects of the game through scripts, such as working for factions/companies, purchasing/installing Augmentations, and creating programs.
The Singularity Functions are not immediately available to the player and must be unlocked later in the game.
WARNING: This page contains spoilers for the game.
The Singularity Functions are unlocked in BitNode-4. If you are in BitNode-4, then you will automatically have access to all of these functions. You can use the Singularity Functions in other BitNodes if and only if you have the Source-File for BitNode-4 (aka Source-File 4). Each level of Source-File 4 will open up additional Singularity Functions that you can use in other BitNodes. If your Source-File 4 is upgraded all the way to level 3, then you will be able to access all of the Singularity Functions.
Note that Singularity Functions require a lot of RAM outside of BitNode-4 (their RAM costs are multiplied by 10 if you are not in BitNode-4)
universityCourse¶
-
universityCourse
(universityName, courseName)¶ Arguments: - universityName (string) --
Name of university. Not case-sensitive. You must be in the correct city for whatever university you specify.
- Summit University
- Rothman University
- ZB Institute Of Technology
- courseName (string) --
Name of course. Not case-sensitive.
- Study Computer Science
- Data Strucures
- Networks
- Algorithms
- Management
- Leadership
If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function.
This function will automatically set you to start taking a course at a university. If you are already in the middle of some "working" action (such as working at a company, for a faction, or on a program), then running this function will automatically cancel that action and give you your earnings.
The cost and experience gains for all of these universities and classes are the same as if you were to manually visit and take these classes.
This function will return true if you successfully start taking the course, and false otherwise.
- universityName (string) --
gymWorkout¶
-
gymWorkout
(gymName, stat)¶ Arguments: - gymName (string) --
Name of gym. Not case-sensitive. You must be in the correct city for whatever gym you specify.
- Crush Fitness Gym
- Snap Fitness Gym
- Iron Gym
- Powerhouse Gym
- Millenium Fitness Gym
- stat (string) --
The stat you want to train. Not case-sensitive.
- strength OR str
- defense OR def
- dexterity OR dex
- agility OR agi
If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function.
This function will automatically set you to start working out at a gym to train a particular stat. If you are already in the middle of some "working" action (such as working at a company, for a faction, or on a program), then running this function will automatically cancel that action and give you your earnings.
The cost and experience gains for all of these gyms are the same as if you were to manually visit these gyms and train
This function will return true if you successfully start working out at the gym, and false otherwise.
- gymName (string) --
travelToCity¶
-
travelToCity
(cityName)¶ Arguments: - cityName (string) --
City to travel to. CASE-SENSITIVE.
- Aevum
- Chongqing
- Sector-12
- New Tokyo
- Ishima
- Volhaven
If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function.
This function allows the player to travel to any city. The cost for using this function is the same as the cost for traveling through the Travel Agency.
This function will return true if you successfully travel to the specified city and false otherwise.
- cityName (string) --
purchaseTor¶
-
purchaseTor
()¶ If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function.
This function allows you to automatically purchase a TOR router. The cost for purchasing a TOR router using this function is the same as if you were to manually purchase one.
This function will return true if it successfully purchase a TOR router and false otherwise.
purchaseProgram¶
-
purchaseProgram
(programName)¶ Arguments: - programName (string) -- Name of program to purchase. Must include '.exe' extension. Not case-sensitive.
If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function.
This function allows you to automatically purchase programs. You MUST have a TOR router in order to use this function. The cost of purchasing programs using this function is the same as if you were purchasing them through the Dark Web using the Terminal buy command.
Example:
purchaseProgram("brutessh.exe");
This function will return true if the specified program is purchased, and false otherwise.
getStats¶
-
getStats
()¶ If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to run this function.
Returns an object with the Player's stats. The object has the following properties:
Player.hacking Player.strength Player.defense Player.dexterity Player.agility Player.charisma Player.intelligence
Example:
res = getStats(); print('My charisma level is: ' + res.charisma);
isBusy¶
-
isBusy
()¶ If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to run this function.
Returns a boolean indicating whether or not the player is currently performing an 'action'. These actions include working for a company/faction, studying at a univeristy, working out at a gym, creating a program, or committing a crime.
upgradeHomeRam¶
-
upgradeHomeRam
()¶ If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.
This function will upgrade amount of RAM on the player's home computer. The cost is the same as if you were to do it manually.
This function will return true if the player's home computer RAM is successfully upgraded, and false otherwise.
getUpgradeHomeRamCost¶
-
getUpgradeHomeRamCost
()¶ If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.
Returns the cost of upgrading the player's home computer RAM.
workForCompany¶
-
workForCompany
()¶ If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.
This function will automatically set you to start working at the company at which you are employed. If you are already in the middle of some "working" action (such as working for a faction, training at a gym, or creating a program), then running this function will automatically cancel that action and give you your earnings.
This function will return true if the player starts working, and false otherwise.
Note that when you are working for a company, you will not actually receive your earnings (reputation, money, experience) until you FINISH the action. This can be an issue if, for example, you only want to work until you get 100,000 company reputation. One small hack to get around this is to continuously restart the action to receive your earnings:
while (getCompanyRep(COMPANY HERE) < VALUE) { workForCompany(); sleep(60000); }
This way, your company reputation will be updated every minute.
applyToCompany¶
-
applyToCompany
(companyName, field)¶ Arguments: - companyName (string) -- Name of company to apply to. CASE-SENSITIVE.
- field (string) --
Field to which you want to apply. Not case-sensitive
- software
- software consultant
- it
- security engineer
- network engineer
- business
- business consultant
- security
- agent
- employee
- part-time employee
- waiter
- part-time waiter
If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.
This function will automatically try to apply to the specified company for a position in the specified field. This function can also be used to apply for promotions by specifying the company and field you are already employed at.
This function will return true if you successfully get a job/promotion, and false otherwise. Note that if you are trying to use this function to apply for a promotion and you don't get one, it will return false.
getCompanyRep¶
-
getCompanyRep
(companyName)¶ Arguments: - companyName (string) -- Name of the company. CASE-SENSITIVE
If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.
This function will return the amount of reputation you have at the specified company. If the company passed in as an argument is invalid, -1 will be returned.
checkFactionInvitations¶
-
checkFactionInvitations
()¶ If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.
Returns an array with the name of all Factions you currently have oustanding invitations from.
joinFaction¶
-
joinFaction
(name)¶ Arguments: - name (string) -- Name of faction to join. CASE-SENSITIVE
If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.
This function will automatically accept an invitation from a faction and join it.
workForFaction¶
-
workForFaction
(factionName, workType)¶ Arguments: - factionName (string) -- Name of faction to work for. CASE-SENSITIVE
- workType (string) --
Type of work to perform for the faction
- hacking/hacking contracts/hackingcontracts
- field/fieldwork/field work
- security/securitywork/security work
If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.
This function will automatically set you to start working for the specified faction. Obviously, you must be a member of the faction or else this function will fail. If you are already in the middle of some "working" action (such as working for a company, training at a gym, or creating a program), then running this function will automatically cancel that action and give you your earnings.
This function will return true if you successfully start working for the specified faction, and false otherwise.
Note that when you are working for a faction, you will not actually receive your earnings (reputation, experience) until you FINISH the action. This can be an issue if, for example, you only want to work until you get 100,000 faction reputation. One small hack to get around this is to continuously restart the action to receive your earnings:
while (getFactionRep(FACTION NAME) < VALUE) { workForFaction(FACNAME, WORKTYPE); sleep(60000); }
This way, your faction reputation will be updated every minute.
getFactionRep¶
-
getFactionRep
(factionName)¶ Arguments: - factionName (string) -- Name of faction. CASE-SENSITIVE
If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.
This function returns the amount of reputation you have for the specified faction.
createProgram¶
-
createProgram
(programName)¶ Arguments: - programName (string) -- Name of program to create. Not case-sensitive
If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function.
This function will automatically set you to start working on creating the specified program. If you are already in the middle of some "working" action (such as working for a company, training at a gym, or taking a course), then running this function will automatically cancel that action and give you your earnings.
Example:
createProgram("relaysmtp.exe");
Note that creating a program using this function has the same hacking level requirements as it normally would. These level requirements are:
- BruteSSH.exe: 50
- FTPCrack.exe: 100
- relaySMTP.exe: 250
- HTTPWorm.exe: 500
- SQLInject.exe: 750
- DeepscanV1.exe: 75
- DeepscanV2.exe: 400
- ServerProfiler.exe: 75
- AutoLink.exe: 25
This function returns true if you successfully start working on the specified program, and false otherwise.
commitCrime¶
getCrimeChance¶
-
getCrimeChance
(crime)¶ Arguments: - crime (string) -- Name of crime. Not case-sensitive. This argument is fairlyn lenient in terms of what inputs it accepts. Check the documentation for the commitCrime() function for a list of example inputs.
If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function.
This function returns your chance of success at commiting the specified crime. The chance is returned as a decimal (i.e. 60% would be returned as 0.6).
getOwnedAugmentations¶
-
getOwnedAugmentations
(purchased=false)¶ Arguments: - purchase (boolean) -- Specifies whether the returned array should include Augmentations you have purchased but not yet installed. By default, this argument is false which means that the return value will NOT have the purchased Augmentations.
If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function.
This function returns an array containing the names (as strings) of all Augmentations you have.
getAugmentationsFromFaction¶
-
getAugmentationsFromFaction
(facName)¶ Arguments: - facName (string) -- Name of faction. CASE-SENSITIVE
If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function.
Returns an array containing the names (as strings) of all Augmentations that are available from the specified faction.
getAugmentationCost¶
-
getAugmentationCost
(augName)¶ Arguments: - augName (string) -- Name of Augmentation. CASE-SENSITIVE
If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function.
This function returns an array with two elements that gives the cost for the specified Augmentation. The first element in the returned array is the reputation requirement of the Augmentation, and the second element is the money cost.
If an invalid Augmentation name is passed in for the augName argument, this function will return the array [-1, -1].
purchaseAugmentation¶
-
purchaseAugmentation
(factionName, augName)¶ Arguments: - factionName (string) -- Name of faction to purchase Augmentation from. CASE-SENSITIVE
- augName (string) -- Name of Augmentation to purchase. CASE-SENSITIVE
If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function.
This function will try to purchase the specified Augmentation through the given Faction.
This function will return true if the Augmentation is successfully purchased, and false otherwise.
installAugmentations¶
-
installAugmentations
(cbScript)¶ Arguments: - cbScript (string) -- Optional callback script. This is a script that will automatically be run after Augmentations are installed (after the reset). This script will be run with no arguments and 1 thread. It must be located on your home computer.
If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function.
This function will automatically install your Augmentations, resetting the game as usual.
It will return true if successful, and false otherwise.