Skip to content
Riot Bits

Riot Bits

  • Home
  • News
  • Guides
  • Video Guides
  • Patch Notes
  • Report Abuse
  • Toggle search form
Bitburner

Bitburner – Basic Script.ns For Everyone

Posted on 12/21/2021 By Nyarlathotep No Comments on Bitburner – Basic Script.ns For Everyone
  • Title: Bitburner
  • Release Date:
  • Developer:
  • Publisher:
Information about Bitburner is still incomplete. Please help us fill the details of the game using this contact form.

Here is a simple script, that can be started at any moment of the game. It will buy servers, find all accessible servers, open ports, nuke, find target servers, hack, grow, and weak servers. And will do it again and again.

/** @param {NS} ns **/

//additional function, needed to merge arrays.
Array.prototype.unique = function() {
    var a = this.concat();
    for(var i=0; i ns.getPurchasedServerCost(ram)) {
                var number = myservers.length + 1;
                var hostname = ns.purchaseServer("pserv-" + number, ram);
                await ns.scp(files, "home", hostname);
                ns.killall(hostname);
            }

            //Check ports power
            var portpower = [0, 0, 0, 0, 0];
            var portcounter = 0;
            if (ns.fileExists("BruteSSH.exe"))   { portpower[0] = 1 ; portcounter++ };
            if (ns.fileExists("FTPCrack.exe"))   { portpower[1] = 1 ; portcounter++ };
            if (ns.fileExists("relaySMTP.exe"))  { portpower[2] = 1 ; portcounter++ };
            if (ns.fileExists("HTTPWorm.exe"))   { portpower[3] = 1 ; portcounter++ };
            if (ns.fileExists("SQLInject.exe"))  { portpower[4] = 1 ; portcounter++ };

            //Nuke servers
            if (serversnuked.indexOf(element) >= 0) {ns.print("Already nuked " + element)}
            else if (ns.hasRootAccess(element)) {
                serversnuked.push(element);
                await ns.scp(files, "home", element);
                }
            else if (ns.getServerNumPortsRequired(element) > portcounter) { ns.print("No port power for " + element) }
            else if (ns.getHackingLevel() < ns.getServerRequiredHackingLevel(element)) { ns.print("No skill for" + element) }
            else {
                if (portpower[0]) { ns.brutessh(element)  };
                if (portpower[1]) { ns.ftpcrack(element)  };
                if (portpower[2]) { ns.relaysmtp(element) };
                if (portpower[3]) { ns.httpworm(element)  };
                if (portpower[4]) { ns.sqlinject(element) };
                ns.nuke(element);
                ns.print("Nuked " + element);
                //ns.installBackdoor(element); //Will work in mid game

                //To push files
                await ns.scp(files, "home", element);
                await ns.killall(element);
                serversnuked.push(element);
                ns.print("all files on " + element);
            }

            //To find a target, You can comment this part and just use targetserver
            if(serversnuked.indexOf(element) >= 0){
                var money = ns.getServerMaxMoney(element);
                var security = ns.getServerMinSecurityLevel(element);
                var koef = money / security * 0.000001 ;
                var namekoef = [koef, element];
                if(koefs.some(el => el >= koef)) {
                    koefs.push(koef);
                }
                else {
                    targetserver = element;
                    koefs.push(koef);
                    ns.print(targetserver);
                }
            }

            //Launch action on all servers nuked. 
            //Check what should be done, weak, grow or hack, if hack, then use ony 80% of threads and anothers for grow.
            //You can change % to experiment, try to do hack often but for small portions.
            for(var rs of serversnuked){
                var action;
                if((ns.getServerMaxRam(rs) - ns.getServerUsedRam(rs)) >= 2) {
                    if (ns.getServerSecurityLevel(targetserver) > ns.getServerMinSecurityLevel(targetserver) + 5) { action = "weaken" }
                    else if (ns.getServerMoneyAvailable(targetserver) < ns.getServerMaxMoney(targetserver) * 0.85) { action = "grow" }
                    else { action = "hack" }
                    ns.print("We have " + action + " for " + targetserver);
                    
                    if(action == "hack"){
                        var threads = Math.floor((ns.getServerMaxRam(rs) - ns.getServerUsedRam(rs)) / 1.75);
                        if(ns.isRunning("hack.ns", rs, targetserver))
                        {
                            ns.exec("grow.ns", rs, threads, targetserver);
                            ns.print("Grow on " + rs + " for " + targetserver);
                        }
                        if(threads >= 3) {
                            threads = threads * 0.8;
                            ns.exec("hack.ns", rs, threads, targetserver);
                            ns.print("Hack on " + rs + " for " + targetserver);
                            }
                        else{
                        ns.exec("hack.ns", rs, threads, targetserver);
                        ns.print("Hack on " + rs + " for " + targetserver);
                        }
                    }
                    else{
                    var threads = Math.floor((ns.getServerMaxRam(rs) - ns.getServerUsedRam(rs)) / ns.getScriptRam( action + ".ns"));
                    ns.exec(action + ".ns", rs, threads, targetserver);
                    ns.print(action + " on " + rs + " for " + targetserver);
                    }
                }
                else{}
            }
        }
    }
}

That's everything we are sharing today for this Bitburner guide. This guide was originally created and written by Nyarlathotep. In case we fail to update this guide, you can find the latest update by following this link.

If you believe that any of the content on this site violates your rights, including your intellectual property rights, please contact us immediately using our contact form.
Guides Tags:Bitburner

Post navigation

Previous Post: Archvale – Small List of Challenges if You Want to Keep Playing
Next Post: Hammerting – Righteous Affluence Achievement Guide

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • Title: Bitburner
  • Release Date:
  • Developer:
  • Publisher:
Information about Bitburner is still incomplete. Please help us fill the details of the game using this contact form.

Disclaimer

All content cited is derived from their respective sources. If you think we have used your content without permission, make sure to reach us and we will be taking it seriously.
  • About Us
  • Contact Us
  • Privacy Policy
  • Terms of Service

Copyright © 2025 Riot Bits.

Powered by PressBook News WordPress theme