Bitburner Game

Related tags

Web Game bitburner
Overview

Bitburner

Build Status

Bitburner is a programming-based incremental game that revolves around hacking and cyberpunk themes. The game can be played at https://danielyxie.github.io/bitburner or installed through Steam.

See the frequently asked questions for more information . To discuss the game or get help, join the official discord server

Documentation

The game's official documentation can be found on Read The Docs. Please note that this is still a work-in-progress.

The in-game documentation is generated from the TypeScript definitions.

Anyone is welcome to contribute to the documentation by editing the source files and then making a pull request with your contributions. For further guidance, please refer to the "As A Documentor" section of CONTRIBUTING.

Contribution

There are many ways to contribute to the game. It can be as simple as fixing a typo, correcting a bug, or improving the UI. For guidance on doing so, please refer to the CONTRIBUTING document.

You will retain all ownership of the Copyright of any contributions you make, and will have the same rights to use or license your contributions. By submitting a pull request you agree to grant me perpetual, worldwide, non-exclusive, transferable, royalty-free, and irrevocable rights to use, publish, and distribute your contributions to the project. A formal Contributor's License Agreement will be drawn up in the future.

If you would like to make significant contributions to the project as a collaborator, please reach out to @danielyxie to help coordinate the effort.

Comments
  • Screen goes black

    Screen goes black

    Bitburner v1.4.0 [49de4a28]

    Can't seem to find any specific cause or trigger for this: Sometimes the whole screen goes black and I have to refresh to continue playing.

    Tried to upload a recent save file, but https://github.com/github/hub/issues/1479 appears to be blocking.

    opened by uhhhclem 30
  • Hamming code contracts seem to expect invalid hamming codes

    Hamming code contracts seem to expect invalid hamming codes

    So i'm using the hamming-code library here: https://github.com/georgelviv/hamming-code to encode/decode hamming codes for the contract.

    That doesn't work.

    Since the algorithm is not very variable, i'd say that using this library should work just fine.

    cc @Hedrauta

    opened by c-goldschmidt 23
  • MISC: Crimes can now be unfocused.

    MISC: Crimes can now be unfocused.

    Feature

    Add optional focus to commitCrime via api Added ability to "do something else" via the ui converted Work over to a switch from a series of if statements and added support for crime

    Testing

    manually tested committing a crime, canceling and new do something else + re focus also tested commitCrime from api with and without focus also tested calling commitCrime via the api while a crime was initiated via the ui

    • add a 25% penalty when committing a crime unfocused
    • refactored implementation of success rate to take "focus" external of player object to allow api usage/ static ui usage and make sleeves compatible
    • changes the output of getCrimeChance to return a percentage rather than a flat 0 - 1 number
    • moved focus + router logic into the Crime helper for simplier implementation
    • hard coded sleeves to a "focus" true when calculating the success chance as not applicable

    Apr-16-2022 15-18-31 Apr-16-2022 15-37-31

    opened by phyzical 15
  • Corporation tuning needed.

    Corporation tuning needed.

    As per discord:

    There are currently corps are in a very unbalanced state, with gameplay that trivializes the need for any hacking, scripting, or other mechanics. You are able to get massive evaluations by gaming your income to be able to hyper-scale your corp and beat almost any node in less than 6 hours with zero other mechanics used.

    Steps to reproduce

    1. Start software
    2. Buy smart supply
    3. get all 6 cities with warehouses for 6x production multi
    4. get 900 storage in each city
    5. horde AI limiters (set sell to 0 at MP so you hold them all)
    6. place works as 1 operation / 1 engineer / 1 manager / 3 research
    7. when storage fills, quickly flip all AI limiters to sell MAX at MP
    8. when income skyrockets, get a high evaluation. repeat this process (max storage, stockpile, sell off in 1 market tick) to get a second huge bump of money. After that you can play normally (boost averts/production/worker counts). Since you get a huge influx of cash even keeping 10% of your total company becomes viable with how fast you scale.

    My suggestion is setting the investor to take an average of your income over the last 1-5 minutes to help level out this kind of play, but there are probably other ways that would work and not completely destroy the clever use of mechanics.

    opened by kedearian 15
  • BN9

    BN9 "without using hacknet servers" problem

    Hello I'm in BN9.4 (bitburner version v2.0.2)/. I'm trying to destroy BN9 "without using hacknet servers". But when I backdoor the w0r1d_d43m0n, without buying a single hacknet, I get to the Bitverse but without the achievement. Have you already achieved this goal or am I the only one with this problem? Thxxx

    opened by Orpheusolaf 14
  • Blurred text on Steam version

    Blurred text on Steam version

    Description:

    The Steam version shows blurred text after a while, it seems to happen once the tutorial is opened on a browser, or when the user switches to another window.

    • When clicking on some part of the window, or when scrolling / changing page and so on, the text becomes clear again. Sometimes it's only partial, and it quickly becomes blurred again.
    • It doesn't seem to be linked to not being in "fullscreen" mode, but since it's not an actual fullscreen mode and the game doesn't start with this mode anyway, it makes any test impossible to confirm that. If the "blurred" issue appears, toggling to "fullscreen" doesn't solve the problem.
    • It is not linked to the game advancement, I get this with a fresh game or an ongoing game.

    The two first screenshots below show the difference blurred / normal. Note that I had to restart the game to get the "normal" screenshot because once the problem of blurred text appears, it is not possible to get a clear screenshot anymore.

    How to reproduce:

    • Start the game from Steam

    • Open the tutorial, for example on "Getting Started" => opens the tutorial in a browser => the text may already appeared blurred, see the 3rd screenshot. This happens at once, it's not progressive, all characters get blurred.

    • Switch back to the game => the text is blurred

    • Move the mouse over the text, or change the page => the text may be clear again for a while, at least on a part of the window. When it happens, it's again the whole or a part of the screen that gets blurred all at once. Sometimes it's slightly blurred, sometimes it's unreadable.

    This makes playing the Steam version of the game very inconvenient, and almost impossible after a while.

    Version: 1.5.0 (bc952147)

    Screenshots: 1st: blurred text (this is extreme and not always so blurred when the game window is in focus) Clipboard01

    2nd: normal, before the issue starts Clipboard02

    3rd: see "how to reproduce", browser in front, game in background with text getting blurred Clipboard03

    Other information:

    Screen resolution: 1920x1080 Chrome version: latest as of today (Version 99.0.4844.51 (Official Build) (64-bit)), default browser Edge version: latest as of today (Version 99.0.1150.36 (Official build) (64-bit)) OS: Windows 10 Home 64-bits, updated GPU: RTX 3070, NVIDIA drivers 497.09

    I don't have any particular issue with the (default) Chrome browser, the rendering is fine. Same with Edge which is still installed (but I have no idea what is used with the Steam version of the game, so this may be irrelevant).

    Steam has no rendering issue either, nor the games I play on that platform.

    opened by blueglyph 14
  • CorporationAPI - assignJob very slow

    CorporationAPI - assignJob very slow

    When using ns.corporation.assignJob() in a script, it is very slow - far slower than simply clicking through the Corp UI. It feels like a defect.

    let office = ns.corporation.getOffice(division.name, city);
    for (const employee of office.employees) {
        let job = getNextJob(office.size, emp_num, researchDone);
        await ns.corporation.assignJob(division.name, office.loc, employee, job); // << THIS
        emp_num++;
    }
    
    opened by ThatGuyinIT 14
  • Dev mode

    Dev mode

    This PR adds a developer/cheat menu to the game. This is more and more needed to help setup our save files to the right state in order to test bug fixes/new features.

    To enable dev mode just set DevModeEnabled = true in devmode.js, this file is .gitignored so chances are it will never be pushed to prod.

    Criticism is welcome. My html-fu is pretty bad though :\

    screen shot 2018-06-12 at 5 16 52 pm screen shot 2018-06-12 at 5 16 58 pm
    opened by ghost 14
  • db is not defined

    db is not defined

    Currently getting this error whenever a timer is run. This also causes the timer to stop.

    #1 - analyze #2 - hack (includes error)

    Running Firefox Nightly 60.0a1 on Arch Linux x86_64 User agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0

    TypeError: db is undefined
    engine.bundle.js:55735:9
    BitburnerSaveObject.prototype.saveGame
    https://danielyxie.github.io/bitburner/dist/engine.bundle.js:55735:9
    checkCounters
    https://danielyxie.github.io/bitburner/dist/engine.bundle.js:7284:13
    updateGame
    https://danielyxie.github.io/bitburner/dist/engine.bundle.js:7240:9
    idleTimer
    https://danielyxie.github.io/bitburner/dist/engine.bundle.js:7175:13
    
    opened by ghost 14
  • window.open allows executing files on the system

    window.open allows executing files on the system

    Tested versions:

    • Bitburner v1.7.0 (00adc2ff) (Windows)

    Description

    The window.open JavaScript function call can be used within scripts to launch external programs on the user's system. The dynamic RAM check also gets bypassed by using eval instead of using window natively, reducing RAM cost by 32GB

    Steps to reproduce

    Create a new script file with nano

    nano exec.js
    

    Enter the following code:

    export async function main() {
        eval("window.open(\"cc:=C:\\\\Windows\\\\System32\\\\calc.exe\");");
    }
    

    Execute the script:

    run exec.js
    

    An instance of calculator will open up image

    Video

    https://streamable.com/e225a7

    Temporary Workaround

    Write a script (or use the debug console) that no-ops the window.open function like so:

    window.open = () => {}
    
    opened by DaXcess 13
  • Bug fix corporation expressions

    Bug fix corporation expressions

    Fixed bug that caused an error when trying to set a dynamic expression to sell materials or products (e.g. PROD-500). See Issue

    Changes

    • Added property "maxsll" to Material.ts and Product.ts
    • The result of the calculation of maxSell will now be written to the property "maxsll" of the corresponding material or product
    • Temporary quantity evaluation does not use "1" anymore. Instead it uses the effective production rate respectively the maximum amount of the product or material that can be sold.

    How it was tested Entered expressions where the evaluation leads to negative result and error message was displayed as expected.

    opened by ltoni90 13
  • Hospital Unusable after BitNode Reset

    Hospital Unusable after BitNode Reset

    Version: Bitburner 2.1.0 release Possibly related to #4242

    Steps to Reproduce:

    1. Load attached save file,
    2. Connect to w0r1d_d43m0n,
    3. Install backdoor,
    4. Select and enter BitNode2,
    5. Notice, health shows 17/10,
    6. Fail an infiltration mini-game at joesguns,
    7. Cancel infiltration,
    8. Attempt to heal at Hospital,
    9. Observe, no health is returned and the debug panel shows the error below

    Uncaught TypeError: Cannot read properties of undefined (reading 'getCost') at getHealed (file:///C:/Program%20Files%20(x86)/Steam/steamapps/common/Bitburner/resources/app/dist/main.bundle.js:21:1023391) at Object.He (file:///C:/Program%20Files%20(x86)/Steam/steamapps/common/Bitburner/resources/app/dist/vendor.bundle.js:247:16072) at Ke (file:///C:/Program%20Files%20(x86)/Steam/steamapps/common/Bitburner/resources/app/dist/vendor.bundle.js:247:16226) at file:///C:/Program%20Files%20(x86)/Steam/steamapps/common/Bitburner/resources/app/dist/vendor.bundle.js:247:34213 at Or (file:///C:/Program%20Files%20(x86)/Steam/steamapps/common/Bitburner/resources/app/dist/vendor.bundle.js:247:34307) at Mr (file:///C:/Program%20Files%20(x86)/Steam/steamapps/common/Bitburner/resources/app/dist/vendor.bundle.js:247:34721) at file:///C:/Program%20Files%20(x86)/Steam/steamapps/common/Bitburner/resources/app/dist/vendor.bundle.js:247:40369 at Be (file:///C:/Program%20Files%20(x86)/Steam/steamapps/common/Bitburner/resources/app/dist/vendor.bundle.js:247:116040) at file:///C:/Program%20Files%20(x86)/Steam/steamapps/common/Bitburner/resources/app/dist/vendor.bundle.js:247:36180 at Ar (file:///C:/Program%20Files%20(x86)/Steam/steamapps/common/Bitburner/resources/app/dist/vendor.bundle.js:247:36210) PreBitNodeReset.zip

    opened by koenenalexander 1
  • duplicate create program bug

    duplicate create program bug

    circumstances when this first occurred -after first soft reset -after starting create program for brutessh -clicked on do something else simultaneously -returned to create program (not to be confused with focus button) -started create program brutessh again.

    brutessh bug

    opened by Theleb-Ro 0
  • Server RAM/script size incorrect values

    Server RAM/script size incorrect values

    • [ #] Version of the game, e.g. Bitburner v2.1.0 (8f4636cb)
    • [ #] Steps to reproduce
    • I have a script that is 2.50GB
    • I am trying to run it on a "purchased server" with 2.05TB
    • if I run it at 816 threads then it should be 2040GB or 2.04TB (2.5 * 816)
    • Except it says "Script requires 2.08TB of RAM."
    • I just figured out; I can run the same script on the same size server with the same threads...
    • the ONLY difference between the servers is the name being even and odd numbered. pserv0, pserv2, pserv4 etc. are working;
    • but pserv1, 3, 5 etc. are not working.

    Screenshot 2022-12-13 140104

    screenshot shows the same script being run on the same RAM size servers... working for one and not the other.

    opened by 0denson 0
  • Bump express from 4.17.1 to 4.18.2

    Bump express from 4.17.1 to 4.18.2

    Bumps express from 4.17.1 to 4.18.2.

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump qs from 6.5.2 to 6.5.3

    Bump qs from 6.5.2 to 6.5.3

    Bumps qs from 6.5.2 to 6.5.3.

    Changelog

    Sourced from qs's changelog.

    6.5.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] utils.merge: avoid a crash with a null target and a truthy non-array source
    • [Fix] correctly parse nested arrays
    • [Fix] stringify: fix a crash with strictNullHandling and a custom filter/serializeDate (#279)
    • [Fix] utils: merge: fix crash when source is a truthy primitive & no options are provided
    • [Fix] when parseArrays is false, properly handle keys ending in []
    • [Fix] fix for an impossible situation: when the formatter is called with a non-string value
    • [Fix] utils.merge: avoid a crash with a null target and an array source
    • [Refactor] utils: reduce observable [[Get]]s
    • [Refactor] use cached Array.isArray
    • [Refactor] stringify: Avoid arr = arr.concat(...), push to the existing instance (#269)
    • [Refactor] parse: only need to reassign the var once
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] Clean up license text so it’s properly detected as BSD-3-Clause
    • [Docs] Clarify the need for "arrayLimit" option
    • [meta] fix README.md (#399)
    • [meta] add FUNDING.yml
    • [actions] backport actions from main
    • [Tests] always use String(x) over x.toString()
    • [Tests] remove nonexistent tape option
    • [Dev Deps] backport from main
    Commits
    • 298bfa5 v6.5.3
    • ed0f5dc [Fix] parse: ignore __proto__ keys (#428)
    • 691e739 [Robustness] stringify: avoid relying on a global undefined (#427)
    • 1072d57 [readme] remove travis badge; add github actions/codecov badges; update URLs
    • 12ac1c4 [meta] fix README.md (#399)
    • 0338716 [actions] backport actions from main
    • 5639c20 Clean up license text so it’s properly detected as BSD-3-Clause
    • 51b8a0b add FUNDING.yml
    • 45f6759 [Fix] fix for an impossible situation: when the formatter is called with a no...
    • f814a7f [Dev Deps] backport from main
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(v1.0.2)
WordleGameCB - a game inspired by the Wordle word game developed by Josh Wardle

Technologies WordleGameCB WordleGameCB is a game inspired by the Wordle word game developed by Josh Wardle. This application was developed with the ai

@Encoding 4 Feb 20, 2022
A lightweight 3D game engine for the web.

A lightweight 3D game engine for the web. Built with three.js and cannon-es.

null 667 Dec 31, 2022
🏎 Open source racing game developed by everyone willing

?? Open source racing game developed by everyone willing

Poimandres 2k Dec 26, 2022
LittleJS Logo LittleJS - The Tiny JavaScript Game Engine That Can

The Tiny JavaScript Game Engine That Can! ??

Frank Force 2.4k Dec 31, 2022
Golf it! is a game designed to let you show off your code-fu by solving problems

Golf it! Golf it! is a game designed to let you show off your code-fu by solving problems in the least number of characters ✨ Explore the docs » View

Ashikka Gupta 5 Aug 18, 2022
🎮 Excalibur is a free game engine written in TypeScript for making 2D games in HTML5 canvas

?? An easy to use 2D HTML5 game engine written in TypeScript

Excalibur.js 1.3k Dec 30, 2022
Pig is a simple two player dice game.

Pig game Pig is a simple two player dice game. Play here: formidablae.github.io/pig_game or formaidablae-pig-game.netlify.app Each turn, a player repe

null 10 Oct 5, 2022
Quizpetitive - A quiz game to learn new knowledge and terms in the field of project management.

Quizpetitive A quiz game to learn new knowledge and terms in the field of project management. The key element to the success of this project was the c

LMF 1 May 16, 2022
A clone of the popular Wordle game.

Wordle Clone How to play locally: yarn install

null 2 Jan 9, 2022
A clone of the popular game Wordle made using React, Typescript, and Tailwind

Wordle Clone Go play the real Wordle here Read the story behind it here Try a demo of this clone project here Inspiration: This game is an open source

Hannah Park 2.4k Jan 8, 2023
🎩 2048 game is cloned with ReactJS, CSS3.

2048-react This is a clone of 2048 implemented using React. It's running live here. The game logic is implemented in ./src/components/mainBoard.jsx. I

Arham 7 Jul 31, 2022
A tiny game to practice AoE building shortcuts.

Aegis A tiny game to practice Age of Empires IV building shortcuts. Using ⚛️ Create-React-App and ?? Zustand. License With the exception of all visual

Alexander Widua 30 Jan 1, 2023
Provides 5 keywords with which to narrow down your wordle game. I ruin nice things.

Widdle?? I hate fun so I wrote a script that ruins Wordle. This script can be used to find a Widdle, a set of five words that cover nearly all letters

Tess Myers 3 Mar 12, 2022
WORDLEBOARD prototype: Show your Wordle game on a Vestaboard as you play.

WORDLEBOARD prototype Show your Wordle game on a Vestaboard as you play. Copyright (c) 2022, Scott Schiller. MIT license. Made with love and fun in mi

Scott Schiller 7 Dec 20, 2022
Snake game using pure HTML, CSS and JavaScript with GameBoy look and feel using Nano editor

Snake game using pure HTML, CSS and JavaScript with GameBoy look and feel using Nano editor. 100% commented code in Portuguese

Gabriel Martins 2 Jul 2, 2022
EarthDefender is a simple personal project JS game

EarthDefender is a simple personal project JS game, the goal of it is to stop the meteors from hitting Earth.

Svetoslav Zhekov 2 Jan 25, 2022
A Wordle-like game where you have to guess the unsigned 8-bit binary number

Bytle A Wordle-like game where you have to guess the unsigned 8-bit binary number! Game coded in 2h 14m 50.570s, but it's not like I'm counting how lo

James Livesey 16 Jun 30, 2022
Raid menu for the online game gartic.io

Gartic.io Raid Tools Raid menu for the online game gartic.io Written by Eld3rly Installation

Alexey 10 Sep 8, 2022
A simple electron wrapper for bonk.io, a fun online game

A simple electron wrapper for bonk.io, a fun online game I tend to play a lot. I dunno how useful it'd be for other players, maybe they'd like the fullscreen of it, but it'll probably mostly just be for myself to play around with the source code of the game.

null 3 Feb 16, 2022