Skip to content

MISC: Rebalance infiltration rewards #2222

Description

@catloversg

Infiltration is one of the most controversial mechanics in Bitburner. Some players love it (and the notorious "auto-infil" scripts) while other players despise it. Every time we make a change in this mechanic, no matter what it is, we always receive negative feedback from players. It's clear that many people love its absurdly high rewards and want to use it as an "I win" button.

PR #2210 tries to make some changes that we have discussed for a long time. The approaches in that PR are good, but the formulas in that PR need to be tuned. After playtesting, I decide to write a detailed analysis of infiltration rewards and the suggestions. This report serves these purposes:

  • Balancing is tricky. The result sometimes is the opposite of what we want. Generally speaking, PR 2210 nerfs infiltration rewards, but that PR accidentally significantly buffs the rewards in some cases. For example, at 1x mults (no augmentations), ECorp, which is the location with the highest rewards, currently "only" gives ~221k rep; with the new formulas in that PR, ECorp gives ~859k rep. The balance is even worse when we consider realistic cases (e.g,. having many combat augs). This report analyzes the changes and makes sure that the balancing result is exactly what we want.
  • Everybody knows that the balance of infiltration is bad, but nobody explains exactly how bad it is. For example: "It breaks the game", okay, but how and how much? Does it give too much reputation? Too much money? How much is "too much"? If we have to nerf it, how much should we nerf it? 50%? 75%? 99%? In this report, I try to provide numbers and use cases while analyzing the flaws in this mechanic's balance and making balance suggestions.
  • Explain why we make these changes and what they really change. At first glance, the nerf looks massive, but if you carefully read this entire report, you will see that the nerf only significantly affects the ridiculous cases (e.g., run auto-infil scripts at stat level 1 to infiltrate ECorp and get enough rep for 150 favor in a few seconds). In most realistic cases, the nerf is fairly small. There are even some cases in which the changes slightly buff the rewards.

Note that in some cases, with big tables, I'll post screenshots of them instead of the text. In the text form, GitHub UI makes it hard to read those tables.

All tables can be generated with scripts in this save file (you have to disable the effect of applyExploit in src\Exploits\applyExploits.ts):
rebalance_infil.gz

Edit: The formulas in #2210 have been changed. For more information, please check that PR. I'll keep the original analysis here unchanged for reference.

Goal

Let's take a look at these videos:

Video 1: "Simulated" manual infil. I run an auto-infil script with some delays between key presses to simulate the behavior of a player playing this mechanic manually.

video1.mp4

Video 2: Auto-infil. This is what the auto-infil looks like.

video2.mp4

Video 3: Auto-infil on steroids.

video3.mp4

Should a mechanic be able to give enough rep for 150 favor in single-digit minutes (or a few seconds in extreme cases)?

The answer is clearly "No". We should nerf the infiltration rewards and make them less ridiculous. However, we should not nerf them too much because:

  • Not everybody uses auto-infil. Manual infiltration should still give very good rewards.
  • Writing auto-infil scripts is a nice challenge. If a player writes it, they should get worthy rewards.
  • If a player absolutely hates waiting for rep and wants to bypass it by any means while not caring about the "balance", we cannot block them from doing it. Bitburner is a single-player open-source game, so they can just edit their save file, run exploit scripts, or make a custom build.

Goals:

  • No "infil a few minutes (or seconds) for 150 favor".
  • No "hit ECorp at level 1".
  • Playing a long session of infiltration (regardless of using auto-infil scripts) is not recommended. Longer session = More nerf.
  • Manual infiltration still gives decent rewards.
  • Auto-infil still gives worthy rewards.
  • "Decent" and "worthy" rewards are based on non-infiltration gain rates.

Faction lists

We sometimes need to take combat multipliers into account, and those multipliers depend on augmentations from different factions. I'll use 7 lists of factions:

  • List 1: TianDiHui and CyberSec. Most players start with these factions. TianDiHui is one of the best early factions due to their cheap and strong reputation augs. CyberSec is the earliest hacking faction.
  • List 2: List 1 + NiteSec, TheBlackHand, BitRunners. These are the other 3 hacking factions.
  • List 3: List 2 + 6 city factions. City factions are easy to join.
  • List 4: List 3 + SlumSnakes, Tetrads. These criminal factions are "early" ones. They give cheap combat augs. The other 3 factions in the following lists give incredibly strong combat augs, but those augs are expensive.
  • List 5: List 4 + SpeakersForTheDead.
  • List 6: List 5 + TheDarkArmy.
  • List 7: List 6 + TheSyndicate.

Combat stats: mults and levels

Mults:

Image

Levels (Farming each stat 1 hour at the best gym/university):

list nfg avgLvl str def dex agi cha
list1 0 165.8 167 167 146 146 203
list1 10 187 188 188 165 165 229
list2 10 203.4 223 194 195 170 235
list2 25 244 268 233 234 204 281
list2 50 328.8 361 314 316 275 378
list3 10 274.6 291 354 295 176 257
list3 25 328.8 349 424 353 211 307
list3 50 443.2 470 572 476 285 413
list4 10 380.4 438 451 502 236 275
list4 25 455 524 540 600 282 329
list4 50 612 705 727 807 380 441
list5 10 765 1376 945 577 652 275
list5 25 915 1646 1130 690 780 329
list5 50 1231.2 2216 1521 928 1050 441
list6 10 1287 3004 1115 1389 652 275
list6 25 1539.6 3594 1334 1661 780 329
list6 50 2071.2 4837 1795 2233 1050 441
list7 10 1718.4 3455 2821 1389 652 275
list7 25 2055.8 4133 3376 1661 780 329
list7 50 2766 5563 4543 2233 1050 441
  • Average level < 200: Trivial.
  • Average level < 400: Trivial with some cheap combat augs.
  • Average level < 600: Trivial with some cheap combat augs and NFG.
  • Average level > 800: Require some good combat augs from a strong criminal faction. Note that megacorp factions also offer good combat augs.
  • Average level 1000-2000: Attainable with 2 strong criminal factions.

Difficulty

Columns:

  • minSec: startingSecurityLevel
  • floor: maxClearanceLevel
  • "stat-X": the average combat stat levels for difficulty X. For example, with Noodle Bar:
    • stat1 = 144.83: Difficulty <= 1 if Average level >= 144.83
    • stat2 = 42.69: Difficulty <= 2 if Average level >= 42.69
    • stat3 = NaN: Difficulty is always < 3.

Currently, the difficulty scales from 0 (Trivial) to 3 (Impossible). In the following sections, I'll focus on difficulty 1 (Normal), 1.5, and 2 (Hard).

name minSec floor stat1 stat1.5 stat2 stat2.5 stat3
Noodle Bar 2.5 5 144.83 92.280 42.690 NaN NaN
Joe's Guns 3.13 5 213.86 158.85 105.71 55.204 9.5186
Omega Soft 3.2 10 221.69 166.45 113.01 62.067 15.391
NetLink Te 3.29 6 231.79 176.27 122.48 71.003 23.283
CompuTek 3.59 15 265.77 209.40 154.52 101.56 51.320
Alpha Ente 3.62 10 269.20 212.75 157.77 104.67 54.231
LexoCorp 4.35 15 353.75 295.59 238.55 182.85 128.82
Carmichael 4.66 15 390.32 331.53 273.77 217.21 162.10
SysCore Se 4.77 18 403.37 344.38 286.38 229.54 174.09
Rho Constr 5.02 5 433.21 373.76 315.25 257.80 201.62
Nova Medic 5.02 12 433.21 373.76 315.25 257.80 201.62
Aevum Poli 5.35 6 472.90 412.90 353.75 295.59 238.55
Storm Tech 5.38 25 476.53 416.47 357.28 299.05 241.94
VitaLife 5.52 25 493.48 433.21 373.76 315.25 257.80
Watchdog S 5.85 7 533.68 472.90 412.90 353.75 295.59
Global Pha 5.9 20 539.80 478.95 418.86 359.63 301.36
DeltaOne 5.9 12 539.80 478.95 418.86 359.63 301.36
Universal 5.9 12 539.80 478.95 418.86 359.63 301.36
Omnia Cybe 6 22 552.05 491.06 430.81 371.40 312.93
Icarus Mic 6.02 17 554.51 493.48 433.21 373.76 315.25
DefComm 7.18 17 698.61 636.09 574.18 512.93 452.41
Helios Lab 7.28 18 711.18 648.55 586.51 525.13 464.45
OmniTek In 7.74 25 769.30 706.15 643.56 581.58 520.25
Galactic C 7.89 12 788.35 725.04 662.28 600.11 538.57
AeroCorp 8.18 12 825.31 761.69 698.61 636.09 574.18
Four Sigma 8.18 25 825.31 761.69 698.61 636.09 574.18
Bachman & 8.19 15 826.58 762.96 699.87 637.34 575.41
NWO 8.53 50 870.13 806.17 742.71 679.79 617.45
Clarke Inc 9.55 18 1002.1 937.15 872.70 808.72 745.24
Blade Indu 10.59 25 1138.4 1072.6 1007.3 942.33 877.84
Solaris Sp 12.59 18 1405.1 1337.9 1271.0 1204.5 1138.4
Fulcrum Te 15.54 25 1807.7 1738.8 1670.1 1601.7 1533.6
KuaiGong I 16.25 25 1906.0 1836.7 1767.7 1698.9 1630.4
MegaCorp 16.36 31 1921.3 1852.0 1782.8 1714.0 1645.4
ECorp 17.02 37 2013.3 1943.6 1874.1 1804.9 1736.0

Based on the previous section (combat stats), we can split locations into these groups:

  • Early: minSec < 4. Can be done even without any combat augs.
  • Mid1: minSec 4-6. Can be done with cheap combat augs and some NFGs.
  • Mid2: minSec 7-9. Need some good combat augs, but not too many.
  • Late: minSec > 9. Need good combat augs.

Reputation gain rate

The reputation gain rate is one of the most important balancing points of Bitburner. Farming money is trivial with a batcher or any semi-decent hacking scripts, but there are not many ways to boost reputation gain rate (strong endgame mechanics usually provide some ways to work around this bottleneck). If we want to tune infiltration's rewards properly, we have to know what a normal reputation gain rate is.

Assume that the player has all reputation augs:

hackLevel nfg rep/s rep/s+share(1PB)
100 25 1.5544 2.3304
100 50 1.9935 2.9887
100 75 2.5567 3.8330
250 25 3.8783 5.8144
250 50 4.9739 7.4569
250 75 6.3791 9.5635
500 25 7.7514 11.621
500 50 9.9412 14.904
500 75 12.750 19.114
1000 25 15.498 23.234
1000 50 19.876 29.798
1000 75 25.491 38.216
1500 25 23.244 34.847
1500 50 29.810 44.692
1500 75 38.232 57.317
2000 25 30.990 46.461
2000 50 39.745 59.586
2000 75 50.973 76.419
2500 25 38.737 58.074
2500 50 49.680 74.480
2500 75 63.714 95.520
  • In the very early stage (hack 100), even with an unrealistic number of augs (25 NFGs + all rep augs), rep/s is very low (1.5544/s).
  • At hack 500 and 50 NFGs, rep/s is still single-digit (9.9412/s).
  • At hack 1500 and 50 NFGs, rep/s is ~30/s (29.810/s).
  • At hack 2500 and 50 NFGs, rep/s is ~50/s (49.680/s).
  • At hack 2500, 75 NFGs, ns.share (1PB), rep/s is still less than 100/s (95.520/s).

Infiltration time

Each time the player infiltrates, they have to complete a number of "floors" (maxClearanceLevel). In order to calculate the reputation gain rate of infiltration, we have to find the average time of each floor.

Raw data:

SlashGame
  Trivial: { window: 800 },
  Normal: { window: 500 },
  Hard: { window: 350 },
  Impossible: { window: 250 },
BracketGame
  Trivial: { timer: 8000, min: 2, max: 3 },
  Normal: { timer: 6000, min: 4, max: 5 },
  Hard: { timer: 4000, min: 4, max: 6 },
  Impossible: { timer: 2500, min: 7, max: 7 },
BackwardGame
  Trivial: { timer: 16000, min: 3, max: 4 },
  Normal: { timer: 12500, min: 2, max: 3 },
  Hard: { timer: 15000, min: 3, max: 4 },
  Impossible: { timer: 8000, min: 4, max: 4 },
BribeGame
  Trivial: { timer: 12000, size: 6 },
  Normal: { timer: 9000, size: 8 },
  Hard: { timer: 5000, size: 9 },
  Impossible: { timer: 2500, size: 12 },
CheatCodeGame
  Trivial: { timer: 13000, min: 6, max: 8 },
  Normal: { timer: 7000, min: 7, max: 8 },
  Hard: { timer: 5000, min: 8, max: 9 },
  Impossible: { timer: 3000, min: 9, max: 10 },
Cyberpunk2077Game
  Trivial: { timer: 12500, width: 3, height: 3, symbols: 6 },
  Normal: { timer: 15000, width: 4, height: 4, symbols: 7 },
  Hard: { timer: 12500, width: 5, height: 5, symbols: 8 },
  Impossible: { timer: 10000, width: 6, height: 6, symbols: 9 },
MinesweeperGame
  Trivial: { timer: 15000, width: 3, height: 3, mines: 4 },
  Normal: { timer: 15000, width: 4, height: 4, mines: 7 },
  Hard: { timer: 15000, width: 5, height: 5, mines: 11 },
  Impossible: { timer: 15000, width: 6, height: 6, mines: 15 },
WireCuttingGame
  Trivial: { timer: 9000, wiresmin: 4, wiresmax: 4, rules: 2 },
  Normal: { timer: 7000, wiresmin: 6, wiresmax: 6, rules: 2 },
  Hard: { timer: 5000, wiresmin: 8, wiresmax: 8, rules: 3 },
  Impossible: { timer: 4000, wiresmin: 9, wiresmax: 9, rules: 4 },

Each game has a window timer that is the maximum allowable time for the player to complete the game.

SlashGame is a bit complicated. The player has to wait until the "guard" phase finishes.

const distractedTime = newDifficulty.window * (hasWKSharmonizer ? 1.3 : 1);
const alertedTime = 250;
const guardingTime = Math.random() * 3250 + 1500 - (distractedTime + alertedTime);

On average, guardingTime is 0.5 * 3250 + 1500 - window - 250.

SlashGame
  Trivial: { guardingTime: 2075 },
  Normal: { guardingTime: 2375 },
  Hard: { guardingTime: 2525 },
  Impossible: { guardingTime: 2625 },

The average of guardingTime between Normal and Hard is 2450. Let's say the player needs 100ms to react.

  • SlashGame: 2450 + 100 = 2550

With other games, let's use the average value of "Normal" and "Hard" as the average window timer.

  • BracketGame: 5000
  • BackwardGame: 13750
  • BribeGame: 7000
  • CheatCodeGame: 6000
  • Cyberpunk2077Game: 13750
  • MinesweeperGame: 17000 (The memory phase of MinesweeperGame lasts 2 seconds). Edit: 17000 is wrong. It should be 15000. The time of the memory phase is included in the time of the entire minigame. It does not affect the final average value of all games too much, so I won't change the following numbers.
  • WireCuttingGame: 6000

Assume that the player needs 70% of that time to complete each game:

  • BracketGame: 3500
  • BackwardGame: 9625
  • BribeGame: 4900
  • CheatCodeGame: 4200
  • Cyberpunk2077Game: 9625
  • MinesweeperGame: 11900 (The memory phase of MinesweeperGame lasts 2 seconds)
  • WireCuttingGame: 4200

We have:

  • SlashGame: 2550
  • BracketGame: 3500
  • BackwardGame: 9625
  • BribeGame: 4900
  • CheatCodeGame: 4200
  • Cyberpunk2077Game: 9625
  • MinesweeperGame: 11900
  • WireCuttingGame: 4200

The average is 6312.5. After each floor, there is a countdown that lasts 900ms.

With the above calculation, I'll assume that each floor lasts 7 seconds on average.

Infiltration reputation

Columns:

  • sec/i: Total seconds per infiltration
  • min/i: Total minutes per infiltration
name minSec floor sec/i min/i stat1 stat1.5 stat2 rep/s rep
Noodle Bar 2.5 5 35 0.583 144.83 92.280 42.690 36.944 1293.1
Joe's Guns 3.13 5 35 0.583 213.86 158.85 105.71 61.988 2169.6
Omega Soft 3.2 10 70 1.17 221.69 166.45 113.01 68.554 4798.8
NetLink Te 3.29 6 42 0.700 231.79 176.27 122.48 70.223 2949.4
CompuTek 3.59 15 105 1.75 265.77 209.40 154.52 93.891 9858.6
Alpha Ente 3.62 10 70 1.17 269.20 212.75 157.77 91.063 6374.4
LexoCorp 4.35 15 105 1.75 353.75 295.59 238.55 133.44 14012
Carmichael 4.66 15 105 1.75 390.32 331.53 273.77 144.93 15218
SysCore Se 4.77 18 126 2.10 403.37 344.38 286.38 153.57 19349
Rho Constr 5.02 5 35 0.583 433.21 373.76 315.25 143.46 5021.2
Nova Medic 5.02 12 84 1.40 433.21 373.76 315.25 153.81 12920
Aevum Poli 5.35 6 42 0.700 472.90 412.90 353.75 156.40 6568.9
Storm Tech 5.38 25 175 2.92 476.53 416.47 357.28 190.22 33289
VitaLife 5.52 25 175 2.92 493.48 433.21 373.76 196.18 34331
Watchdog S 5.85 7 49 0.817 533.68 472.90 412.90 175.84 8616.3
Global Pha 5.9 20 140 2.33 539.80 478.95 418.86 202.18 28305
DeltaOne 5.9 12 84 1.40 539.80 478.95 418.86 186.71 15684
Universal 5.9 12 84 1.40 539.80 478.95 418.86 186.71 15684
Omnia Cybe 6 22 154 2.57 552.05 491.06 430.81 210.45 32409
Icarus Mic 6.02 17 119 1.98 554.51 493.48 433.21 201.03 23923
DefComm 7.18 17 119 1.98 698.61 636.09 574.18 248.37 29556
Helios Lab 7.28 18 126 2.10 711.18 648.55 586.51 255.05 32137
OmniTek In 7.74 25 175 2.92 769.30 706.15 643.56 294.32 51505
Galactic C 7.89 12 84 1.40 788.35 725.04 662.28 264.63 22229
AeroCorp 8.18 12 84 1.40 825.31 761.69 698.61 276.34 23213
Four Sigma 8.18 25 175 2.92 825.31 761.69 698.61 314.50 55038
Bachman & 8.19 15 105 1.75 826.58 762.96 699.87 285.13 29939
NWO 8.53 50 350 5.83 870.13 806.17 742.71 424.13 1.4844e+5
Clarke Inc 9.55 18 126 2.10 1002.1 937.15 872.70 353.25 44509
Blade Indu 10.59 25 175 2.92 1138.4 1072.6 1007.3 428.74 75030
Solaris Sp 12.59 18 126 2.10 1405.1 1337.9 1271.0 492.16 62012
Fulcrum Te 15.54 25 175 2.92 1807.7 1738.8 1670.1 679.30 1.1888e+5
KuaiGong I 16.25 25 175 2.92 1906.0 1836.7 1767.7 716.72 1.2543e+5
MegaCorp 16.36 31 217 3.62 1921.3 1852.0 1782.8 766.99 1.6644e+5
ECorp 17.02 37 259 4.32 2013.3 1943.6 1874.1 853.75 2.2112e+5

Let's compare:

  • Noodle Bar: Combat ~100 (Trivial even without augs): 36.944/s
  • Joe's Guns: Combat ~150 (Trivial even without augs): 61.988/s
  • LexoCorp: Combat ~300 (Trivial with some cheap combat augs): 133.44/s
  • DefComm: Combat ~600 (Trivial with some cheap combat augs and NFG): 248.37/s
  • NWO: Combat ~800 (Require some good combat augs from a strong criminal faction): 424.13/s
  • ECorp: Combat ~1900 (Attainable with 2 strong criminal factions): 853.75/s

With:

  • Hack 100 + 25 NFGs + all rep augs: 1.5544/s
  • Hack 250 + 25 NFGs + all rep augs: 3.8783/s
  • Hack 500 + 50 NFGs + all rep augs: 9.9412/s
  • Hack 1500 + 50 NFGs + all rep augs: 29.810/s
  • Hack 2500 + 50 NFGs + all rep augs: 49.680/s
  • Hack 2500 + 75 NFGs + all rep augs + ns.share (1PB): 95.520/s

It's clear that infiltration rep gain rate is ridiculous, even with "only" manual infiltration (no auto-infil).

Infiltration reputation - With mults

The current infiltration rewards scale with mults. High mults = Low rewards. This is unintuitive, and we often see many players misunderstand how the rewards scale.

Quote from the current documentation:

The most common misconception of infiltration rewards is that they depend on skill levels. This is wrong. The rewards do **NOT** depend on skill levels. They depend on stats' multipliers. When you install augmentations that improve stats' multipliers, the rewards are reduced.

In some special cases, you may observe this behavior: When you install augmentations or soft reset, your skill levels drop to 1 and infiltration rewards are increased. Some players mistakenly think that this is why infiltrations should be done with low stats to optimize the rewards. This is totally wrong. Again, infiltration rewards do **NOT** depend on skill levels. In these special cases, the rewards are increased because stats' **multipliers** are reduced due to losing bonuses from other mechanics (IPvGO and some endgame mechanics).

Let's see how the rewards scale with different faction lists (after installing all augs from those factions):

Image
  • Rewards drop when mults reach a threshold.
  • When they drop, they drop significantly.
  • Hard locations = Higher threshold.
  • Rewards of the hardest locations do not drop even with all augs from all criminal factions. They only drop when the player installs more strong combat augs from megacorp factions.

Infiltration money and SOA reputation

Image

Money reward is okay. SoARep may be okay.

With SoARep, we also have to consider #250. On one hand, I agree that it's weird not to take the number of floors into account. With the current formula, locations with a low number of floors are much better than ones with a high number of floors (e.g., "Joe's Guns" is very good at the early game, and "Rho Construction" is the best location). On the other hand, with the suggestion of "market demand multiplier" in PR 2210, this will not be a problem anymore.

"5min-r" is the total reputation if infiltrating non-stop in 5 minutes.
"5min-r/s" is the average reputation per second if infiltrating non-stop in 5 minutes.

With the new "market demand multiplier", I think we don't need to tune the SoARep formula. If the player rarely infiltrates, they can "exploit" this quirk to get high SoA rep with low stats on easy locations. This can be seen as a trick, in the same way "joesguns" is the best exp farm target. If they infiltrate nonstop, those easy locations are not the best targets anymore.

PR 2210

You should check #2210 for basic information.

Min combat stats

This is a good idea. No more "hit ECorp at level 1". However, I think MaxDif = 4.5 is too high.

name minSec floor stat1 stat1.5 stat2 stat2.5 stat3 stat3.5 stat4 stat4.5
Noodle Bar 2.5 5 144.83 92.280 42.690 NaN NaN NaN NaN NaN
Joe's Guns 3.13 5 213.86 158.85 105.71 55.204 9.5186 NaN NaN NaN
Omega Soft 3.2 10 221.69 166.45 113.01 62.067 15.391 NaN NaN NaN
NetLink Te 3.29 6 231.79 176.27 122.48 71.003 23.283 NaN NaN NaN
CompuTek 3.59 15 265.77 209.40 154.52 101.56 51.320 6.3109 NaN NaN
Alpha Ente 3.62 10 269.20 212.75 157.77 104.67 54.231 8.7047 NaN NaN
LexoCorp 4.35 15 353.75 295.59 238.55 182.85 128.82 77.025 28.705 NaN
Carmichael 4.66 15 390.32 331.53 273.77 217.21 162.10 108.83 58.136 12.001
SysCore Se 4.77 18 403.37 344.38 286.38 229.54 174.09 120.37 69.007 21.502
Rho Constr 5.02 5 433.21 373.76 315.25 257.80 201.62 146.98 94.334 44.594
Nova Medic 5.02 12 433.21 373.76 315.25 257.80 201.62 146.98 94.334 44.594
Aevum Poli 5.35 6 472.90 412.90 353.75 295.59 238.55 182.85 128.82 77.025
Storm Tech 5.38 25 476.53 416.47 357.28 299.05 241.94 186.15 132.01 80.053
VitaLife 5.52 25 493.48 433.21 373.76 315.25 257.80 201.62 146.98 94.334
Watchdog S 5.85 7 533.68 472.90 412.90 353.75 295.59 238.55 182.85 128.82
Global Pha 5.9 20 539.80 478.95 418.86 359.63 301.36 244.20 188.35 134.14
DeltaOne 5.9 12 539.80 478.95 418.86 359.63 301.36 244.20 188.35 134.14
Universal 5.9 12 539.80 478.95 418.86 359.63 301.36 244.20 188.35 134.14
Omnia Cybe 6 22 552.05 491.06 430.81 371.40 312.93 255.53 199.40 144.83
Icarus Mic 6.02 17 554.51 493.48 433.21 373.76 315.25 257.80 201.62 146.98
DefComm 7.18 17 698.61 636.09 574.18 512.93 452.41 392.69 333.86 276.06
Helios Lab 7.28 18 711.18 648.55 586.51 525.13 464.45 404.56 345.55 287.53
OmniTek In 7.74 25 769.30 706.15 643.56 581.58 520.25 459.63 399.81 340.87
Galactic C 7.89 12 788.35 725.04 662.28 600.11 538.57 477.74 417.67 358.45
AeroCorp 8.18 12 825.31 761.69 698.61 636.09 574.18 512.93 452.41 392.69
Four Sigma 8.18 25 825.31 761.69 698.61 636.09 574.18 512.93 452.41 392.69
Bachman & 8.19 15 826.58 762.96 699.87 637.34 575.41 514.15 453.61 393.87
NWO 8.53 50 870.13 806.17 742.71 679.79 617.45 555.74 494.70 434.40
Clarke Inc 9.55 18 1002.1 937.15 872.70 808.72 745.24 682.30 619.93 558.19
Blade Indu 10.59 25 1138.4 1072.6 1007.3 942.33 877.84 813.82 750.30 687.31
Solaris Sp 12.59 18 1405.1 1337.9 1271.0 1204.5 1138.4 1072.6 1007.3 942.33
Fulcrum Te 15.54 25 1807.7 1738.8 1670.1 1601.7 1533.6 1465.8 1398.3 1331.2
KuaiGong I 16.25 25 1906.0 1836.7 1767.7 1698.9 1630.4 1562.2 1494.2 1426.6
MegaCorp 16.36 31 1921.3 1852.0 1782.8 1714.0 1645.4 1577.2 1509.2 1441.5
ECorp 17.02 37 2013.3 1943.6 1874.1 1804.9 1736.0 1667.3 1599.0 1530.9

Difficulty 3 is tuned as the hardest difficulty. Most players cannot infiltrate at this difficulty. If a player has incredibly fast reflexes and extremely good memory, they can choose harder locations for better rewards. If we want to set a min combat stat value, we should choose one that is near 3. I recommend setting it to 3.5 instead of 4.5.

Reputation

PR 2210 accidentally buffs the rewards significantly, especially with hard locations. The flaw is in calculateRawDiff and calculateReward. calculateRawDiff is capped at 3. When it's "uncapped" for "Min combat stats", it accidentally buffs the result of calculateReward. This leads to the massive increase in hard locations.

I suggest different formulas in proposal.js. I tune them with these goals in mind:

  • Nerf rewards, especially ones in hard locations.
  • Nerf scales with minSec. Easy = Small nerf. Hard = Big nerf.
  • Reduce the "slope" of reward increase based on minSec (I'm not sure how to describe this behavior). Currently, the reward increases really fast due to Math.pow(startingSecurityLevel, 1.2). You can check "rep/s" column to see this behavior.
  • Easy locations still give extremely good rewards. Many players love infiltration because it generates tons of rep even in very early stages, so I don't want to nerf infiltration too much in these stages.
  • Hard locations still give good rewards.
  • Use the normal rep gain rate (see the previous section) as the baseline.

Columns:

  • "rep": Current reputation
  • "pr2210Rep": PR 2210's reputation
  • "recRep": my recommended formula's reputation
  • "ratio": recRep/rep
Image Image

Analysis:

  • Early locations (minSec < 4; Can be done even without any combat augs): The reward is still much higher than the normal rep gain rate in early stages.
    • Noodle Bar: 14.798/s.
    • Joe's Guns: 24.277/s
    • Hack 100 + 25 NFGs + all rep augs: 1.5544/s
    • Hack 250 + 25 NFGs + all rep augs: 3.8783/s
    • Hack 500 + 50 NFGs + all rep augs: 9.9412/s
  • Mid1+Mid2 locations: The reward is still better than the normal rep gain rate.
    • LexoCorp (minSec = 4.35; stat1.5 = 295.59): 42.774/s
    • Hack 1500 + 50 NFGs + all rep augs: 29.810/s
    • DefComm (minSec = 7.18; stat1.5 = 636.09): 56.230/s
    • Hack 2500 + 50 NFGs + all rep augs: 49.680/s
  • Late (hardest) locations: The reward is still better than the normal rep gain rate.
    • ECorp (minSec = 17.02; stat1.5 = 1943.6): 107.03
    • Hack 2500 + 75 NFGs + all rep augs + ns.share (1PB): 95.520/s
  • Easy = Small nerf. Hard = Big nerf. (Check "rep/recRep" column)
  • The reward steadily increases with minSec instead of having a big jump in hard locations.
  • Fix problems that I mentioned in "Infiltration reputation - With mults" (check the second table). Currently, with augs (mults > 1), the reward is nerfed heavily when the mults reach a threshold, like I said. With the new formulas, the reward does not scale with mults anymore. As you can see in the second table, the nerf is only heavy in the hardest locations. With easy and mid locations, the nerf is fairly small. If you compare "list7" and "recRep", you will see that the new rep gain rate is even slightly buffed in easy and mid locations.

Market demand multiplier

Image

The formula is okay. If we compare "30min-r/s" and "60min-r/s" with the hacking reputation gain rate, we can see that it nerfs long-session infiltration, but the reward is still very good.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions