[Home](./index.md) > [bitburner](./bitburner.md) > [HackingFormulas](./bitburner.hackingformulas.md) ## HackingFormulas interface Hacking formulas **Signature:** ```typescript interface HackingFormulas ``` ## Methods | Method | Description | | --- | --- | | [growAmount(server, player, threads, cores)](./bitburner.hackingformulas.growamount.md) |

Calculate the amount of money a grow action will leave a server with. Starting money is server.moneyAvailable. Note that when simulating the effect of [grow](./bitburner.ns.grow.md), what matters is the state of the server and player when the grow \*finishes\*, not when it is started.

The growth amount depends both linearly \*and\* exponentially on threads; see [grow](./bitburner.ns.grow.md) for more details.

The inverse of this function is [formulas.hacking.growThreads](./bitburner.hackingformulas.growthreads.md), although it rounds up to integer threads.

| | [growPercent(server, threads, player, cores)](./bitburner.hackingformulas.growpercent.md) |

Calculate the growth multiplier constant for a given server and threads.

The actual amount of money grown depends both linearly \*and\* exponentially on threads; this is only giving the exponential part that is used for the multiplier. See [grow](./bitburner.ns.grow.md) for more details.

As a result of the above, this multiplier does \*not\* depend on the amount of money on the server. Changing server.moneyAvailable and server.moneyMax will have no effect.

For the most common use-cases, you probably want either [formulas.hacking.growThreads](./bitburner.hackingformulas.growthreads.md) or [formulas.hacking.growAmount](./bitburner.hackingformulas.growamount.md) instead.

| | [growThreads(server, player, targetMoney, cores)](./bitburner.hackingformulas.growthreads.md) |

Calculate how many threads it will take to grow server to targetMoney. Starting money is server.moneyAvailable. Note that when simulating the effect of [grow](./bitburner.ns.grow.md), what matters is the state of the server and player when the grow \*finishes\*, not when it is started.

The growth amount depends both linearly \*and\* exponentially on threads; see [grow](./bitburner.ns.grow.md) for more details.

The inverse of this function is [formulas.hacking.growAmount](./bitburner.hackingformulas.growamount.md), although it can work with fractional threads.

| | [growTime(server, player)](./bitburner.hackingformulas.growtime.md) | Calculate grow time. | | [hackChance(server, player)](./bitburner.hackingformulas.hackchance.md) | Calculate hack chance. (Ex: 0.25 would indicate a 25% chance of success.) | | [hackExp(server, player)](./bitburner.hackingformulas.hackexp.md) | Calculate hack exp for one thread. | | [hackPercent(server, player)](./bitburner.hackingformulas.hackpercent.md) | Calculate hack percent for one thread. (Ex: 0.25 would steal 25% of the server's current value.) | | [hackTime(server, player)](./bitburner.hackingformulas.hacktime.md) | Calculate hack time. | | [weakenTime(server, player)](./bitburner.hackingformulas.weakentime.md) | Calculate weaken time. |