Scripts for the game Bitburner
This repo uses the Typescript compiler and the Remote File API system to synchronize Typescript to the game.
To ensure both the game and typescript have no issues with import paths, your import statements should follow a few formatting rules:
- Paths must be absolute from the root of
src/
, which will be equivalent to the root directory of your home drive - Paths must contain no leading slash
- Paths must end with no file extension
To import helperFunction
from the file helpers.ts
located in the directory src/lib/
:
import { helperFunction } from "lib/helpers";
To import all functions from the file helpers.ts
located in the src/lib/
directory as the namespace helpers
:
import * as helpers from "lib/helpers";
To import someFunction
from the file main.ts
located in the src/
directory:
import { someFunction } from "main";
For debugging bitburner on Steam you will need to enable a remote debugging port. This can be done by rightclicking bitburner in your Steam library and selecting properties. There you need to add --remote-debugging-port=9222
[Thanks @DarkMio]
Some ns
functions, like ns.printRaw()
allows you to render React components into the game interface.
The game already exposes the React
and ReactDOM
objects globally, but in order to work with strongly typed versions in .ts
files, you can use the included typings. To do this, use the following import:
import React, { ReactDOM } from '@react'
Support for jsx is also included, so if you use the .tsx
file ending, you can do something like:
import { NS } from '@ns';
import React from '@react';
interface IMyContentProps {
name: string
}
const MyContent = ({name}: IMyContentProps) => <span>Hello {name}</span>;
export default async function main(ns: NS){
ns.printRaw(<MyContent name="Your name"></MyContent>);
}