update doc

This commit is contained in:
Olivier Gagnon 2022-04-13 01:35:35 -04:00
parent ac53dbf168
commit f555c4567b
70 changed files with 637 additions and 100 deletions

151
dist/bitburner.d.ts vendored

@ -3,7 +3,7 @@
*/
export declare interface ActiveFragment {
id: number;
avgCharge: number;
highestCharge: number;
numCharge: number;
rotation: number;
x: number;
@ -182,7 +182,7 @@ export declare interface BitNodeMultipliers {
/** Influences the maximum allowed RAM for a purchased server */
PurchasedServerMaxRam: number;
/** Influences cost of any purchased server at or above 128GB */
PurchasedServerSoftCap: number;
PurchasedServerSoftcap: number;
/** Influences the minimum favor the player must have with a faction before they can donate to gain rep. */
RepToDonateToFaction: number;
/** Influences how much the money on a server can be reduced when a script performs a hack against it. */
@ -709,10 +709,10 @@ export declare interface CharacterInfo {
factions: string[];
/** Current health points */
hp: number;
/** Array of all companies at which you have jobs */
company: string[];
/** Array of all jobs */
jobs: string[];
/** Array of job positions for all companies you are employed at. Same order as 'jobs' */
jobTitle: string[];
jobTitles: string[];
/** Maximum health points */
maxHp: number;
/** Boolean indicating whether or not you have a tor router */
@ -737,6 +737,18 @@ export declare interface CharacterInfo {
workRepGain: number;
/** Money earned so far from work, if applicable */
workMoneyGain: number;
/** total hacking exp */
hackingExp: number;
/** total strength exp */
strengthExp: number;
/** total defense exp */
defenseExp: number;
/** total dexterity exp */
dexterityExp: number;
/** total agility exp */
agilityExp: number;
/** total charisma exp */
charismaExp: number;
}
/**
@ -747,6 +759,10 @@ export declare interface CharacterMult {
agility: number;
/** Agility exp */
agilityExp: number;
/** Charisma stat */
charisma: number;
/** Charisma exp */
charismaExp: number;
/** Company reputation */
companyRep: number;
/** Money earned from crimes */
@ -1177,6 +1193,8 @@ export declare type FilenameOrPID = number | string;
* @public
*/
export declare interface Formulas {
/** Reputation formulas */
reputation: ReputationFormulas;
/** Skills formulas */
skills: SkillsFormulas;
/** Hacking formulas */
@ -2442,6 +2460,10 @@ export declare interface Material {
qty: number;
/** Quality of the material */
qlt: number;
/** Demand for the material, only present if "Market Research - Demand" unlocked */
dmd: number | undefined;
/** Competition for the material, only present if "Market Research - Competition" unlocked */
cmp: number | undefined;
/** Amount of material produced */
prod: number;
/** Amount of material sold */
@ -2574,7 +2596,7 @@ export declare interface NodeStats {
* {@link https://bitburner.readthedocs.io/en/latest/netscript/netscriptjs.html| ns2 in-game docs}
* <hr>
*/
export declare interface NS extends Singularity {
export declare interface NS {
/**
* Namespace for hacknet functions.
* @remarks RAM cost: 4 GB
@ -2635,6 +2657,12 @@ export declare interface NS extends Singularity {
*/
readonly ui: UserInterface;
/**
* Namespace for singularity functions.
* RAM cost: 0 GB
*/
readonly singularity: Singularity;
/**
* Namespace for grafting functions.
* @remarks
@ -2913,7 +2941,7 @@ export declare interface NS extends Singularity {
* ```
* @returns
*/
sleep(millis: number): Promise<void>;
sleep(millis: number): Promise<true>;
/**
* Suspends the script for n milliseconds. Doesn't block with concurrent calls.
@ -2923,7 +2951,7 @@ export declare interface NS extends Singularity {
* @param millis - Number of milliseconds to sleep.
* @returns
*/
asleep(millis: number): Promise<void>;
asleep(millis: number): Promise<true>;
/**
* Prints one or move values or variables to the scripts logs.
@ -3052,6 +3080,27 @@ export declare interface NS extends Singularity {
*/
getScriptLogs(fn?: string, host?: string, ...args: any[]): string[];
/**
* Get an array of recently killed scripts across all servers.
* @remarks
* RAM cost: 0.2 GB
*
* The most recently killed script is the first element in the array.
* Note that there is a maximum number of recently killed scripts which are tracked.
* This is configurable in the game's options as `Recently killed scripts size`.
*
* @example
* ```ts
* let recentScripts = ns.getRecentScripts();
* let mostRecent = recentScripts.shift()
* if (mostRecent)
* ns.tprint(mostRecent.logs.join('\n'))
* ```
*
* @returns Array with information about previously killed scripts.
*/
getRecentScripts(): RecentScript[];
/**
* Open the tail window of a script.
* @remarks
@ -3942,7 +3991,7 @@ export declare interface NS extends Singularity {
* @param args - Arguments to identify the script
* @returns The info about the running script if found, and null otherwise.
*/
getRunningScript(filename?: FilenameOrPID, hostname?: string, ...args: (string | number)[]): RunningScript;
getRunningScript(filename?: FilenameOrPID, hostname?: string, ...args: (string | number)[]): RunningScript | null;
/**
* Get cost of purchasing a server.
@ -4454,7 +4503,7 @@ export declare interface NS extends Singularity {
* @param variant - Type of toast, must be one of success, info, warning, error. Defaults to success.
* @param duration - Duration of toast in ms. Can also be `null` to create a persistent toast. Defaults to 2000
*/
toast(msg: any, variant?: string, duration?: number | null): void;
toast(msg: any, variant?: "success" | "info" | "warning" | "error", duration?: number | null): void;
/**
* Download a file from the internet.
@ -4649,6 +4698,13 @@ export declare interface NS extends Singularity {
* RAM cost: 0.2 GB
*/
getSharePower(): number;
// enum: NSEnums;
}
/** @public */
export declare interface NSEnums {
toast: ToastVariant;
}
/**
@ -4950,10 +5006,14 @@ export declare interface ProcessInfo {
export declare interface Product {
/** Name of the product */
name: string;
/** Demand for the product */
dmd: number;
/** Competition for the product */
cmp: number;
/** Demand for the product, only present if "Market Research - Demand" unlocked */
dmd: number | undefined;
/** Competition for the product, only present if "Market Research - Competition" unlocked */
cmp: number | undefined;
/** Product Rating */
rat: number;
/** Product Properties. The data is \{qlt, per, dur, rel, aes, fea\} */
properties: { [key: string]: number };
/** Production cost */
pCost: number;
/** Sell cost, can be "MP+5" */
@ -4966,24 +5026,66 @@ export declare interface Product {
developmentProgress: number;
}
/**
* @public
*/
export declare interface RecentScript extends RunningScript {
/** Timestamp of when the script was killed */
timeOfDeath: Date;
}
/**
* Reputation formulas
* @public
*/
export declare interface ReputationFormulas {
/**
* Calculate the total required amount of faction reputation to reach a target favor.
* @param favor - target faction favor.
* @returns The calculated faction reputation required.
*/
calculateFavorToRep(favor: number): number;
/**
* Calculate the resulting faction favor of a total amount of reputation.
* (Faction favor is gained whenever you install an Augmentation.)
* @param rep - amount of reputation.
* @returns The calculated faction favor.
*/
calculateRepToFavor(rep: number): number;
}
/**
* @public
*/
export declare interface RunningScript {
/** Arguments the script was called with */
args: string[];
/** Filename of the script */
filename: string;
/**
* Script logs as an array. The newest log entries are at the bottom.
* Timestamps, if enabled, are placed inside `[brackets]` at the start of each line.
**/
logs: string[];
/** Total amount of hacking experience earned from this script when offline */
offlineExpGained: number;
/** Total amount of money made by this script when offline */
offlineMoneyMade: number;
/** Offline running time of the script, in seconds **/
/** Number of seconds that the script has been running offline */
offlineRunningTime: number;
/** Total amount of hacking experience earned from this script when online */
onlineExpGained: number;
/** Total amount of money made by this script when online */
onlineMoneyMade: number;
/** Online running time of the script, in seconds **/
/** Number of seconds that this script has been running online */
onlineRunningTime: number;
/** Process ID. Must be an integer */
pid: number;
/** How much RAM this script uses for ONE thread */
ramUsage: number;
/** Hostname of the server on which this script runs */
server: string;
/** Number of threads that this script runs with */
threads: number;
}
@ -5753,11 +5855,8 @@ export declare interface Singularity {
* Hospitalize the player.
* @remarks
* RAM cost: 0.25 GB * 16/4/1
*
*
* @returns The cost of the hospitalization.
*/
hospitalize(): number;
hospitalize(): void;
/**
* Soft reset the game.
@ -6031,9 +6130,9 @@ export declare interface Sleeve {
* @param sleeveNumber - Index of the sleeve to work for the faction.
* @param factionName - Name of the faction to work for.
* @param factionWorkType - Name of the action to perform for this faction.
* @returns True if the sleeve started working on this faction, false otherwise.
* @returns True if the sleeve started working on this faction, false otherwise, can also throw on errors
*/
setToFactionWork(sleeveNumber: number, factionName: string, factionWorkType: string): boolean;
setToFactionWork(sleeveNumber: number, factionName: string, factionWorkType: string): boolean | undefined;
/**
* Set a sleeve to work for a company.
@ -6732,6 +6831,14 @@ export declare interface TIX {
purchaseTixApi(): boolean;
}
/** @public */
export declare enum ToastVariant {
SUCCESS = "success",
WARNING = "warning",
ERROR = "error",
INFO = "info",
}
/**
* User Interface API.
* @public

@ -66,7 +66,7 @@ documentation_title = '{0} Documentation'.format(project)
# The short X.Y version.
version = '1.6'
# The full version, including alpha/beta/rc tags.
release = '1.6.3'
release = '1.6.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

@ -1,12 +1,12 @@
{
"name": "bitburner",
"version": "1.0.0",
"version": "1.6.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "bitburner",
"version": "1.0.0",
"version": "1.6.0",
"dependencies": {
"electron-config": "^2.0.0",
"electron-log": "^4.4.4",

@ -1,6 +1,6 @@
{
"name": "bitburner",
"version": "1.0.0",
"version": "1.6.0",
"description": "A cyberpunk-themed programming incremental game",
"main": "main.js",
"author": "Daniel Xie & Olivier Gagnon",

@ -1,11 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [ActiveFragment](./bitburner.activefragment.md) &gt; [avgCharge](./bitburner.activefragment.avgcharge.md)
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [ActiveFragment](./bitburner.activefragment.md) &gt; [highestCharge](./bitburner.activefragment.highestcharge.md)
## ActiveFragment.avgCharge property
## ActiveFragment.highestCharge property
<b>Signature:</b>
```typescript
avgCharge: number;
highestCharge: number;
```

@ -15,7 +15,7 @@ export interface ActiveFragment
| Property | Type | Description |
| --- | --- | --- |
| [avgCharge](./bitburner.activefragment.avgcharge.md) | number | |
| [highestCharge](./bitburner.activefragment.highestcharge.md) | number | |
| [id](./bitburner.activefragment.id.md) | number | |
| [numCharge](./bitburner.activefragment.numcharge.md) | number | |
| [rotation](./bitburner.activefragment.rotation.md) | number | |

@ -49,7 +49,7 @@ export interface BitNodeMultipliers
| [PurchasedServerCost](./bitburner.bitnodemultipliers.purchasedservercost.md) | number | Influence how much it costs to purchase a server |
| [PurchasedServerLimit](./bitburner.bitnodemultipliers.purchasedserverlimit.md) | number | Influences the maximum number of purchased servers you can have |
| [PurchasedServerMaxRam](./bitburner.bitnodemultipliers.purchasedservermaxram.md) | number | Influences the maximum allowed RAM for a purchased server |
| [PurchasedServerSoftCap](./bitburner.bitnodemultipliers.purchasedserversoftcap.md) | number | Influences cost of any purchased server at or above 128GB |
| [PurchasedServerSoftcap](./bitburner.bitnodemultipliers.purchasedserversoftcap.md) | number | Influences cost of any purchased server at or above 128GB |
| [RepToDonateToFaction](./bitburner.bitnodemultipliers.reptodonatetofaction.md) | number | Influences the minimum favor the player must have with a faction before they can donate to gain rep. |
| [ScriptHackMoney](./bitburner.bitnodemultipliers.scripthackmoney.md) | number | Influences how much the money on a server can be reduced when a script performs a hack against it. |
| [ScriptHackMoneyGain](./bitburner.bitnodemultipliers.scripthackmoneygain.md) | number | Influences how much of the money stolen by a scripted hack will be added to the player's money. |

@ -1,13 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [BitNodeMultipliers](./bitburner.bitnodemultipliers.md) &gt; [PurchasedServerSoftCap](./bitburner.bitnodemultipliers.purchasedserversoftcap.md)
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [BitNodeMultipliers](./bitburner.bitnodemultipliers.md) &gt; [PurchasedServerSoftcap](./bitburner.bitnodemultipliers.purchasedserversoftcap.md)
## BitNodeMultipliers.PurchasedServerSoftCap property
## BitNodeMultipliers.PurchasedServerSoftcap property
Influences cost of any purchased server at or above 128GB
<b>Signature:</b>
```typescript
PurchasedServerSoftCap: number;
PurchasedServerSoftcap: number;
```

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CharacterInfo](./bitburner.characterinfo.md) &gt; [agilityExp](./bitburner.characterinfo.agilityexp.md)
## CharacterInfo.agilityExp property
total agility exp
<b>Signature:</b>
```typescript
agilityExp: number;
```

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CharacterInfo](./bitburner.characterinfo.md) &gt; [charismaExp](./bitburner.characterinfo.charismaexp.md)
## CharacterInfo.charismaExp property
total charisma exp
<b>Signature:</b>
```typescript
charismaExp: number;
```

@ -1,13 +0,0 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CharacterInfo](./bitburner.characterinfo.md) &gt; [company](./bitburner.characterinfo.company.md)
## CharacterInfo.company property
Array of all companies at which you have jobs
<b>Signature:</b>
```typescript
company: string[];
```

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CharacterInfo](./bitburner.characterinfo.md) &gt; [defenseExp](./bitburner.characterinfo.defenseexp.md)
## CharacterInfo.defenseExp property
total defense exp
<b>Signature:</b>
```typescript
defenseExp: number;
```

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CharacterInfo](./bitburner.characterinfo.md) &gt; [dexterityExp](./bitburner.characterinfo.dexterityexp.md)
## CharacterInfo.dexterityExp property
total dexterity exp
<b>Signature:</b>
```typescript
dexterityExp: number;
```

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CharacterInfo](./bitburner.characterinfo.md) &gt; [hackingExp](./bitburner.characterinfo.hackingexp.md)
## CharacterInfo.hackingExp property
total hacking exp
<b>Signature:</b>
```typescript
hackingExp: number;
```

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CharacterInfo](./bitburner.characterinfo.md) &gt; [jobs](./bitburner.characterinfo.jobs.md)
## CharacterInfo.jobs property
Array of all jobs
<b>Signature:</b>
```typescript
jobs: string[];
```

@ -1,13 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CharacterInfo](./bitburner.characterinfo.md) &gt; [jobTitle](./bitburner.characterinfo.jobtitle.md)
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CharacterInfo](./bitburner.characterinfo.md) &gt; [jobTitles](./bitburner.characterinfo.jobtitles.md)
## CharacterInfo.jobTitle property
## CharacterInfo.jobTitles property
Array of job positions for all companies you are employed at. Same order as 'jobs'
<b>Signature:</b>
```typescript
jobTitle: string[];
jobTitles: string[];
```

@ -15,14 +15,20 @@ export interface CharacterInfo
| Property | Type | Description |
| --- | --- | --- |
| [agilityExp](./bitburner.characterinfo.agilityexp.md) | number | total agility exp |
| [bitnode](./bitburner.characterinfo.bitnode.md) | number | Current BitNode number |
| [charismaExp](./bitburner.characterinfo.charismaexp.md) | number | total charisma exp |
| [city](./bitburner.characterinfo.city.md) | string | Name of city you are currently in |
| [company](./bitburner.characterinfo.company.md) | string\[\] | Array of all companies at which you have jobs |
| [defenseExp](./bitburner.characterinfo.defenseexp.md) | number | total defense exp |
| [dexterityExp](./bitburner.characterinfo.dexterityexp.md) | number | total dexterity exp |
| [factions](./bitburner.characterinfo.factions.md) | string\[\] | Array of factions you are currently a member of |
| [hackingExp](./bitburner.characterinfo.hackingexp.md) | number | total hacking exp |
| [hp](./bitburner.characterinfo.hp.md) | number | Current health points |
| [jobTitle](./bitburner.characterinfo.jobtitle.md) | string\[\] | Array of job positions for all companies you are employed at. Same order as 'jobs' |
| [jobs](./bitburner.characterinfo.jobs.md) | string\[\] | Array of all jobs |
| [jobTitles](./bitburner.characterinfo.jobtitles.md) | string\[\] | Array of job positions for all companies you are employed at. Same order as 'jobs' |
| [maxHp](./bitburner.characterinfo.maxhp.md) | number | Maximum health points |
| [mult](./bitburner.characterinfo.mult.md) | [CharacterMult](./bitburner.charactermult.md) | Object with many of the player's multipliers from Augmentations/Source Files |
| [strengthExp](./bitburner.characterinfo.strengthexp.md) | number | total strength exp |
| [timeWorked](./bitburner.characterinfo.timeworked.md) | number | Timed worked in ms |
| [tor](./bitburner.characterinfo.tor.md) | boolean | Boolean indicating whether or not you have a tor router |
| [workAgiExpGain](./bitburner.characterinfo.workagiexpgain.md) | number | Agi experience earned so far from work |

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CharacterInfo](./bitburner.characterinfo.md) &gt; [strengthExp](./bitburner.characterinfo.strengthexp.md)
## CharacterInfo.strengthExp property
total strength exp
<b>Signature:</b>
```typescript
strengthExp: number;
```

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CharacterMult](./bitburner.charactermult.md) &gt; [charisma](./bitburner.charactermult.charisma.md)
## CharacterMult.charisma property
Charisma stat
<b>Signature:</b>
```typescript
charisma: number;
```

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CharacterMult](./bitburner.charactermult.md) &gt; [charismaExp](./bitburner.charactermult.charismaexp.md)
## CharacterMult.charismaExp property
Charisma exp
<b>Signature:</b>
```typescript
charismaExp: number;
```

@ -17,6 +17,8 @@ export interface CharacterMult
| --- | --- | --- |
| [agility](./bitburner.charactermult.agility.md) | number | Agility stat |
| [agilityExp](./bitburner.charactermult.agilityexp.md) | number | Agility exp |
| [charisma](./bitburner.charactermult.charisma.md) | number | Charisma stat |
| [charismaExp](./bitburner.charactermult.charismaexp.md) | number | Charisma exp |
| [companyRep](./bitburner.charactermult.companyrep.md) | number | Company reputation |
| [crimeMoney](./bitburner.charactermult.crimemoney.md) | number | Money earned from crimes |
| [crimeSuccess](./bitburner.charactermult.crimesuccess.md) | number | Crime success chance |

@ -24,5 +24,6 @@ You need Formulas.exe on your home computer to use this API.
| [hacking](./bitburner.formulas.hacking.md) | [HackingFormulas](./bitburner.hackingformulas.md) | Hacking formulas |
| [hacknetNodes](./bitburner.formulas.hacknetnodes.md) | [HacknetNodesFormulas](./bitburner.hacknetnodesformulas.md) | Hacknet Nodes formulas |
| [hacknetServers](./bitburner.formulas.hacknetservers.md) | [HacknetServersFormulas](./bitburner.hacknetserversformulas.md) | Hacknet Servers formulas |
| [reputation](./bitburner.formulas.reputation.md) | [ReputationFormulas](./bitburner.reputationformulas.md) | Reputation formulas |
| [skills](./bitburner.formulas.skills.md) | [SkillsFormulas](./bitburner.skillsformulas.md) | Skills formulas |

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Formulas](./bitburner.formulas.md) &gt; [reputation](./bitburner.formulas.reputation.md)
## Formulas.reputation property
Reputation formulas
<b>Signature:</b>
```typescript
reputation: ReputationFormulas;
```

@ -39,7 +39,7 @@ Returns the number of hashes required for the specified upgrade. The name of the
// NS1:
var upgradeName = "Sell for Corporation Funds";
if (hacknet.numHashes() > hacknet.hashCost(upgradeName)) {
hacknet.spendHashes(upgName);
hacknet.spendHashes(upgradeName);
}
```
@ -50,7 +50,7 @@ if (hacknet.numHashes() > hacknet.hashCost(upgradeName)) {
// NS2:
const upgradeName = "Sell for Corporation Funds";
if (ns.hacknet.numHashes() > ns.hacknet.hashCost(upgradeName)) {
ns.hacknet.spendHashes(upgName);
ns.hacknet.spendHashes(upgradeName);
}
```

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Material](./bitburner.material.md) &gt; [cmp](./bitburner.material.cmp.md)
## Material.cmp property
Competition for the material, only present if "Market Research - Competition" unlocked
<b>Signature:</b>
```typescript
cmp: number | undefined;
```

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Material](./bitburner.material.md) &gt; [dmd](./bitburner.material.dmd.md)
## Material.dmd property
Demand for the material, only present if "Market Research - Demand" unlocked
<b>Signature:</b>
```typescript
dmd: number | undefined;
```

@ -16,6 +16,8 @@ interface Material
| Property | Type | Description |
| --- | --- | --- |
| [cmp](./bitburner.material.cmp.md) | number \| undefined | Competition for the material, only present if "Market Research - Competition" unlocked |
| [dmd](./bitburner.material.dmd.md) | number \| undefined | Demand for the material, only present if "Market Research - Demand" unlocked |
| [name](./bitburner.material.name.md) | string | Name of the material |
| [prod](./bitburner.material.prod.md) | number | Amount of material produced |
| [qlt](./bitburner.material.qlt.md) | number | Quality of the material |

@ -10,6 +10,7 @@
| --- | --- |
| [OrderTypes](./bitburner.ordertypes.md) | |
| [PositionTypes](./bitburner.positiontypes.md) | |
| [ToastVariant](./bitburner.toastvariant.md) | |
## Interfaces
@ -59,12 +60,15 @@
| [NetscriptPort](./bitburner.netscriptport.md) | Object representing a port. A port is a serialized queue. |
| [NodeStats](./bitburner.nodestats.md) | Object representing all the values related to a hacknet node. |
| [NS](./bitburner.ns.md) | Collection of all functions passed to scripts |
| [NSEnums](./bitburner.nsenums.md) | |
| [Office](./bitburner.office.md) | Office for a division in a city. |
| [OfficeAPI](./bitburner.officeapi.md) | Corporation Office API |
| [Player](./bitburner.player.md) | |
| [PlayerSkills](./bitburner.playerskills.md) | Short summary of the players skills. |
| [ProcessInfo](./bitburner.processinfo.md) | A single process on a server. |
| [Product](./bitburner.product.md) | Product in a warehouse |
| [RecentScript](./bitburner.recentscript.md) | |
| [ReputationFormulas](./bitburner.reputationformulas.md) | Reputation formulas |
| [RunningScript](./bitburner.runningscript.md) | |
| [Server](./bitburner.server.md) | A single server. |
| [Singularity](./bitburner.singularity.md) | Singularity API |

@ -9,7 +9,7 @@ Suspends the script for n milliseconds. Doesn't block with concurrent calls.
<b>Signature:</b>
```typescript
asleep(millis: number): Promise<void>;
asleep(millis: number): Promise<true>;
```
## Parameters
@ -20,7 +20,7 @@ asleep(millis: number): Promise<void>;
<b>Returns:</b>
Promise&lt;void&gt;
Promise&lt;true&gt;
## Remarks

@ -0,0 +1,35 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [NS](./bitburner.ns.md) &gt; [getRecentScripts](./bitburner.ns.getrecentscripts.md)
## NS.getRecentScripts() method
Get an array of recently killed scripts across all servers.
<b>Signature:</b>
```typescript
getRecentScripts(): RecentScript[];
```
<b>Returns:</b>
[RecentScript](./bitburner.recentscript.md)<!-- -->\[\]
Array with information about previously killed scripts.
## Remarks
RAM cost: 0.2 GB
The most recently killed script is the first element in the array. Note that there is a maximum number of recently killed scripts which are tracked. This is configurable in the game's options as `Recently killed scripts size`<!-- -->.
## Example
```ts
let recentScripts = ns.getRecentScripts();
let mostRecent = recentScripts.shift()
if (mostRecent)
ns.tprint(mostRecent.logs.join('\n'))
```

@ -9,7 +9,7 @@ Get general info about a running script.
<b>Signature:</b>
```typescript
getRunningScript(filename?: FilenameOrPID, hostname?: string, ...args: (string | number)[]): RunningScript;
getRunningScript(filename?: FilenameOrPID, hostname?: string, ...args: (string | number)[]): RunningScript | null;
```
## Parameters
@ -22,7 +22,7 @@ getRunningScript(filename?: FilenameOrPID, hostname?: string, ...args: (string |
<b>Returns:</b>
[RunningScript](./bitburner.runningscript.md)
[RunningScript](./bitburner.runningscript.md) \| null
The info about the running script if found, and null otherwise.

@ -9,7 +9,7 @@ Get the security increase for a number of thread.
<b>Signature:</b>
```typescript
hackAnalyzeSecurity(threads: number): number;
hackAnalyzeSecurity(threads: number, hostname?: string): number;
```
## Parameters
@ -17,6 +17,7 @@ hackAnalyzeSecurity(threads: number): number;
| Parameter | Type | Description |
| --- | --- | --- |
| threads | number | Amount of threads that will be used. |
| hostname | string | Hostname of the target server. The number of threads is limited to the number needed to hack the servers maximum amount of money. |
<b>Returns:</b>

@ -9,9 +9,8 @@ Collection of all functions passed to scripts
<b>Signature:</b>
```typescript
export interface NS extends Singularity
export interface NS
```
<b>Extends:</b> [Singularity](./bitburner.singularity.md)
## Remarks
@ -49,6 +48,7 @@ export async function main(ns) {
| [gang](./bitburner.ns.gang.md) | [Gang](./bitburner.gang.md) | Namespace for gang functions. |
| [grafting](./bitburner.ns.grafting.md) | [Grafting](./bitburner.grafting.md) | Namespace for grafting functions. |
| [hacknet](./bitburner.ns.hacknet.md) | [Hacknet](./bitburner.hacknet.md) | Namespace for hacknet functions. |
| [singularity](./bitburner.ns.singularity.md) | [Singularity](./bitburner.singularity.md) | Namespace for singularity functions. RAM cost: 0 GB |
| [sleeve](./bitburner.ns.sleeve.md) | [Sleeve](./bitburner.sleeve.md) | Namespace for sleeve functions. |
| [stanek](./bitburner.ns.stanek.md) | [Stanek](./bitburner.stanek.md) | Namespace for stanek functions. RAM cost: 0 GB |
| [stock](./bitburner.ns.stock.md) | [TIX](./bitburner.tix.md) | Namespace for stock functions. |
@ -88,6 +88,7 @@ export async function main(ns) {
| [getPurchasedServerLimit()](./bitburner.ns.getpurchasedserverlimit.md) | Returns the maximum number of servers you can purchase. |
| [getPurchasedServerMaxRam()](./bitburner.ns.getpurchasedservermaxram.md) | Returns the maximum RAM that a purchased server can have. |
| [getPurchasedServers()](./bitburner.ns.getpurchasedservers.md) | Returns an array with the hostnames of all of the servers you have purchased. |
| [getRecentScripts()](./bitburner.ns.getrecentscripts.md) | Get an array of recently killed scripts across all servers. |
| [getRunningScript(filename, hostname, args)](./bitburner.ns.getrunningscript.md) | Get general info about a running script. |
| [getScriptExpGain()](./bitburner.ns.getscriptexpgain.md) | Get the exp gain of a script. |
| [getScriptExpGain(script, host, args)](./bitburner.ns.getscriptexpgain_1.md) | Get the exp gain of a script. |
@ -117,7 +118,7 @@ export async function main(ns) {
| [hack(host, opts)](./bitburner.ns.hack.md) | Steal a servers money. |
| [hackAnalyze(host)](./bitburner.ns.hackanalyze.md) | Get the part of money stolen with a single thread. |
| [hackAnalyzeChance(host)](./bitburner.ns.hackanalyzechance.md) | Get the chance of successfully hacking a server. |
| [hackAnalyzeSecurity(threads)](./bitburner.ns.hackanalyzesecurity.md) | Get the security increase for a number of thread. |
| [hackAnalyzeSecurity(threads, hostname)](./bitburner.ns.hackanalyzesecurity.md) | Get the security increase for a number of thread. |
| [hackAnalyzeThreads(host, hackAmount)](./bitburner.ns.hackanalyzethreads.md) | Predict the effect of hack. |
| [hasRootAccess(host)](./bitburner.ns.hasrootaccess.md) | Check if your have root access on a server. |
| [httpworm(host)](./bitburner.ns.httpworm.md) | Runs HTTPWorm.exe on a server. |

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [NS](./bitburner.ns.md) &gt; [singularity](./bitburner.ns.singularity.md)
## NS.singularity property
Namespace for singularity functions. RAM cost: 0 GB
<b>Signature:</b>
```typescript
readonly singularity: Singularity;
```

@ -9,7 +9,7 @@ Suspends the script for n milliseconds.
<b>Signature:</b>
```typescript
sleep(millis: number): Promise<void>;
sleep(millis: number): Promise<true>;
```
## Parameters
@ -20,7 +20,7 @@ sleep(millis: number): Promise<void>;
<b>Returns:</b>
Promise&lt;void&gt;
Promise&lt;true&gt;
## Remarks

@ -9,7 +9,7 @@ Queue a toast (bottom-right notification).
<b>Signature:</b>
```typescript
toast(msg: any, variant?: string, duration?: number | null): void;
toast(msg: any, variant?: "success" | "info" | "warning" | "error", duration?: number | null): void;
```
## Parameters
@ -17,7 +17,7 @@ toast(msg: any, variant?: string, duration?: number | null): void;
| Parameter | Type | Description |
| --- | --- | --- |
| msg | any | Message in the toast. |
| variant | string | Type of toast, must be one of success, info, warning, error. Defaults to success. |
| variant | "success" \| "info" \| "warning" \| "error" | Type of toast, must be one of success, info, warning, error. Defaults to success. |
| duration | number \| null | Duration of toast in ms. Can also be <code>null</code> to create a persistent toast. Defaults to 2000 |
<b>Returns:</b>

@ -0,0 +1,19 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [NSEnums](./bitburner.nsenums.md)
## NSEnums interface
<b>Signature:</b>
```typescript
export interface NSEnums
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [toast](./bitburner.nsenums.toast.md) | [ToastVariant](./bitburner.toastvariant.md) | |

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [NSEnums](./bitburner.nsenums.md) &gt; [toast](./bitburner.nsenums.toast.md)
## NSEnums.toast property
<b>Signature:</b>
```typescript
toast: ToastVariant;
```

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Office](./bitburner.office.md) &gt; [employeeJobs](./bitburner.office.employeejobs.md)
## Office.employeeJobs property
Positions of the employees
<b>Signature:</b>
```typescript
employeeJobs: EmployeeJobs;
```

@ -4,7 +4,7 @@
## Office.employeeProd property
Positions of the employees
Production of the employees
<b>Signature:</b>

@ -16,7 +16,8 @@ interface Office
| Property | Type | Description |
| --- | --- | --- |
| [employeeProd](./bitburner.office.employeeprod.md) | [EmployeeJobs](./bitburner.employeejobs.md) | Positions of the employees |
| [employeeJobs](./bitburner.office.employeejobs.md) | [EmployeeJobs](./bitburner.employeejobs.md) | Positions of the employees |
| [employeeProd](./bitburner.office.employeeprod.md) | [EmployeeJobs](./bitburner.employeejobs.md) | Production of the employees |
| [employees](./bitburner.office.employees.md) | string\[\] | Name of all the employees |
| [loc](./bitburner.office.loc.md) | string | City of the office |
| [maxEne](./bitburner.office.maxene.md) | number | Maximum amount of energy of the employees |

@ -4,10 +4,10 @@
## Product.cmp property
Competition for the product
Competition for the product, only present if "Market Research - Competition" unlocked
<b>Signature:</b>
```typescript
cmp: number;
cmp: number | undefined;
```

@ -4,10 +4,10 @@
## Product.dmd property
Demand for the product
Demand for the product, only present if "Market Research - Demand" unlocked
<b>Signature:</b>
```typescript
dmd: number;
dmd: number | undefined;
```

@ -17,10 +17,12 @@ interface Product
| Property | Type | Description |
| --- | --- | --- |
| [cityData](./bitburner.product.citydata.md) | { \[key: string\]: number\[\] } | Data refers to the production, sale, and quantity of the products These values are specific to a city For each city, the data is \[qty, prod, sell\] |
| [cmp](./bitburner.product.cmp.md) | number | Competition for the product |
| [cmp](./bitburner.product.cmp.md) | number \| undefined | Competition for the product, only present if "Market Research - Competition" unlocked |
| [developmentProgress](./bitburner.product.developmentprogress.md) | number | Creation progress - A number between 0-100 representing percentage |
| [dmd](./bitburner.product.dmd.md) | number | Demand for the product |
| [dmd](./bitburner.product.dmd.md) | number \| undefined | Demand for the product, only present if "Market Research - Demand" unlocked |
| [name](./bitburner.product.name.md) | string | Name of the product |
| [pCost](./bitburner.product.pcost.md) | number | Production cost |
| [properties](./bitburner.product.properties.md) | { \[key: string\]: number } | Product Properties. The data is {<!-- -->qlt, per, dur, rel, aes, fea<!-- -->} |
| [rat](./bitburner.product.rat.md) | number | Product Rating |
| [sCost](./bitburner.product.scost.md) | string \| number | Sell cost, can be "MP+5" |

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Product](./bitburner.product.md) &gt; [properties](./bitburner.product.properties.md)
## Product.properties property
Product Properties. The data is {<!-- -->qlt, per, dur, rel, aes, fea<!-- -->}
<b>Signature:</b>
```typescript
properties: { [key: string]: number };
```

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Product](./bitburner.product.md) &gt; [rat](./bitburner.product.rat.md)
## Product.rat property
Product Rating
<b>Signature:</b>
```typescript
rat: number;
```

@ -0,0 +1,20 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [RecentScript](./bitburner.recentscript.md)
## RecentScript interface
<b>Signature:</b>
```typescript
export interface RecentScript extends RunningScript
```
<b>Extends:</b> [RunningScript](./bitburner.runningscript.md)
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [timeOfDeath](./bitburner.recentscript.timeofdeath.md) | Date | Timestamp of when the script was killed |

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [RecentScript](./bitburner.recentscript.md) &gt; [timeOfDeath](./bitburner.recentscript.timeofdeath.md)
## RecentScript.timeOfDeath property
Timestamp of when the script was killed
<b>Signature:</b>
```typescript
timeOfDeath: Date;
```

@ -0,0 +1,26 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [ReputationFormulas](./bitburner.reputationformulas.md) &gt; [calculateFavorToRep](./bitburner.reputationformulas.calculatefavortorep.md)
## ReputationFormulas.calculateFavorToRep() method
Calculate the total required amount of faction reputation to reach a target favor.
<b>Signature:</b>
```typescript
calculateFavorToRep(favor: number): number;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| favor | number | target faction favor. |
<b>Returns:</b>
number
The calculated faction reputation required.

@ -0,0 +1,26 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [ReputationFormulas](./bitburner.reputationformulas.md) &gt; [calculateRepToFavor](./bitburner.reputationformulas.calculatereptofavor.md)
## ReputationFormulas.calculateRepToFavor() method
Calculate the resulting faction favor of a total amount of reputation. (Faction favor is gained whenever you install an Augmentation.)
<b>Signature:</b>
```typescript
calculateRepToFavor(rep: number): number;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| rep | number | amount of reputation. |
<b>Returns:</b>
number
The calculated faction favor.

@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [ReputationFormulas](./bitburner.reputationformulas.md)
## ReputationFormulas interface
Reputation formulas
<b>Signature:</b>
```typescript
interface ReputationFormulas
```
## Methods
| Method | Description |
| --- | --- |
| [calculateFavorToRep(favor)](./bitburner.reputationformulas.calculatefavortorep.md) | Calculate the total required amount of faction reputation to reach a target favor. |
| [calculateRepToFavor(rep)](./bitburner.reputationformulas.calculatereptofavor.md) | Calculate the resulting faction favor of a total amount of reputation. (Faction favor is gained whenever you install an Augmentation.) |

@ -4,6 +4,8 @@
## RunningScript.args property
Arguments the script was called with
<b>Signature:</b>
```typescript

@ -4,6 +4,8 @@
## RunningScript.filename property
Filename of the script
<b>Signature:</b>
```typescript

@ -4,6 +4,8 @@
## RunningScript.logs property
Script logs as an array. The newest log entries are at the bottom. Timestamps, if enabled, are placed inside `[brackets]` at the start of each line.
<b>Signature:</b>
```typescript

@ -8,24 +8,24 @@
<b>Signature:</b>
```typescript
interface RunningScript
export interface RunningScript
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [args](./bitburner.runningscript.args.md) | string\[\] | |
| [filename](./bitburner.runningscript.filename.md) | string | |
| [logs](./bitburner.runningscript.logs.md) | string\[\] | |
| [offlineExpGained](./bitburner.runningscript.offlineexpgained.md) | number | |
| [offlineMoneyMade](./bitburner.runningscript.offlinemoneymade.md) | number | |
| [offlineRunningTime](./bitburner.runningscript.offlinerunningtime.md) | number | Offline running time of the script, in seconds \* |
| [onlineExpGained](./bitburner.runningscript.onlineexpgained.md) | number | |
| [onlineMoneyMade](./bitburner.runningscript.onlinemoneymade.md) | number | |
| [onlineRunningTime](./bitburner.runningscript.onlinerunningtime.md) | number | Online running time of the script, in seconds \* |
| [pid](./bitburner.runningscript.pid.md) | number | |
| [ramUsage](./bitburner.runningscript.ramusage.md) | number | |
| [server](./bitburner.runningscript.server.md) | string | |
| [threads](./bitburner.runningscript.threads.md) | number | |
| [args](./bitburner.runningscript.args.md) | string\[\] | Arguments the script was called with |
| [filename](./bitburner.runningscript.filename.md) | string | Filename of the script |
| [logs](./bitburner.runningscript.logs.md) | string\[\] | Script logs as an array. The newest log entries are at the bottom. Timestamps, if enabled, are placed inside <code>[brackets]</code> at the start of each line. |
| [offlineExpGained](./bitburner.runningscript.offlineexpgained.md) | number | Total amount of hacking experience earned from this script when offline |
| [offlineMoneyMade](./bitburner.runningscript.offlinemoneymade.md) | number | Total amount of money made by this script when offline |
| [offlineRunningTime](./bitburner.runningscript.offlinerunningtime.md) | number | Number of seconds that the script has been running offline |
| [onlineExpGained](./bitburner.runningscript.onlineexpgained.md) | number | Total amount of hacking experience earned from this script when online |
| [onlineMoneyMade](./bitburner.runningscript.onlinemoneymade.md) | number | Total amount of money made by this script when online |
| [onlineRunningTime](./bitburner.runningscript.onlinerunningtime.md) | number | Number of seconds that this script has been running online |
| [pid](./bitburner.runningscript.pid.md) | number | Process ID. Must be an integer |
| [ramUsage](./bitburner.runningscript.ramusage.md) | number | How much RAM this script uses for ONE thread |
| [server](./bitburner.runningscript.server.md) | string | Hostname of the server on which this script runs |
| [threads](./bitburner.runningscript.threads.md) | number | Number of threads that this script runs with |

@ -4,6 +4,8 @@
## RunningScript.offlineExpGained property
Total amount of hacking experience earned from this script when offline
<b>Signature:</b>
```typescript

@ -4,6 +4,8 @@
## RunningScript.offlineMoneyMade property
Total amount of money made by this script when offline
<b>Signature:</b>
```typescript

@ -4,7 +4,7 @@
## RunningScript.offlineRunningTime property
Offline running time of the script, in seconds \*
Number of seconds that the script has been running offline
<b>Signature:</b>

@ -4,6 +4,8 @@
## RunningScript.onlineExpGained property
Total amount of hacking experience earned from this script when online
<b>Signature:</b>
```typescript

@ -4,6 +4,8 @@
## RunningScript.onlineMoneyMade property
Total amount of money made by this script when online
<b>Signature:</b>
```typescript

@ -4,7 +4,7 @@
## RunningScript.onlineRunningTime property
Online running time of the script, in seconds \*
Number of seconds that this script has been running online
<b>Signature:</b>

@ -4,6 +4,8 @@
## RunningScript.pid property
Process ID. Must be an integer
<b>Signature:</b>
```typescript

@ -4,6 +4,8 @@
## RunningScript.ramUsage property
How much RAM this script uses for ONE thread
<b>Signature:</b>
```typescript

@ -4,6 +4,8 @@
## RunningScript.server property
Hostname of the server on which this script runs
<b>Signature:</b>
```typescript

@ -4,6 +4,8 @@
## RunningScript.threads property
Number of threads that this script runs with
<b>Signature:</b>
```typescript

@ -9,13 +9,11 @@ Hospitalize the player.
<b>Signature:</b>
```typescript
hospitalize(): number;
hospitalize(): void;
```
<b>Returns:</b>
number
The cost of the hospitalization.
void
## Remarks

@ -9,7 +9,7 @@ Set a sleeve to work for a faction.
<b>Signature:</b>
```typescript
setToFactionWork(sleeveNumber: number, factionName: string, factionWorkType: string): boolean;
setToFactionWork(sleeveNumber: number, factionName: string, factionWorkType: string): boolean | undefined;
```
## Parameters
@ -22,9 +22,9 @@ setToFactionWork(sleeveNumber: number, factionName: string, factionWorkType: str
<b>Returns:</b>
boolean
boolean \| undefined
True if the sleeve started working on this faction, false otherwise.
True if the sleeve started working on this faction, false otherwise, can also throw on errors
## Remarks

@ -0,0 +1,22 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [ToastVariant](./bitburner.toastvariant.md)
## ToastVariant enum
<b>Signature:</b>
```typescript
export enum ToastVariant
```
## Enumeration Members
| Member | Value | Description |
| --- | --- | --- |
| ERROR | <code>&quot;error&quot;</code> | |
| INFO | <code>&quot;info&quot;</code> | |
| SUCCESS | <code>&quot;success&quot;</code> | |
| WARNING | <code>&quot;warning&quot;</code> | |

@ -116,7 +116,7 @@ export const CONSTANTS: {
TotalNumBitNodes: number;
LatestUpdate: string;
} = {
VersionString: "1.6.3",
VersionString: "1.6.0",
VersionNumber: 13,
// Speed (in ms) at which the main loop is updated

@ -4813,7 +4813,7 @@ export interface NS {
* Note that there is a maximum number of recently killed scripts which are tracked.
* This is configurable in the game's options as `Recently killed scripts size`.
*
* @usage below:
* @example
* ```ts
* let recentScripts = ns.getRecentScripts();
* let mostRecent = recentScripts.shift()
@ -6426,6 +6426,7 @@ export interface NS {
// enum: NSEnums;
}
/** @public */
export enum ToastVariant {
SUCCESS = "success",
WARNING = "warning",
@ -6433,6 +6434,7 @@ export enum ToastVariant {
INFO = "info",
}
/** @public */
export interface NSEnums {
toast: ToastVariant;
}
@ -6957,7 +6959,7 @@ interface Product {
cmp: number | undefined;
/** Product Rating */
rat: number;
/** Product Properties. The data is {qlt, per, dur, rel, aes, fea} */
/** Product Properties. The data is \{qlt, per, dur, rel, aes, fea\} */
properties: { [key: string]: number };
/** Production cost */
pCost: number;