You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
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.
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
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):
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
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.
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
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.
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
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.
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:
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
applyExploitinsrc\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:
Goals:
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:
Combat stats: mults and levels
Mults:
Levels (Farming each stat 1 hour at the best gym/university):
Difficulty
Columns:
startingSecurityLevelmaxClearanceLevelCurrently, 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).
Based on the previous section (combat stats), we can split locations into these groups:
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:
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:
Each game has a window timer that is the maximum allowable time for the player to complete the game.
SlashGameis a bit complicated. The player has to wait until the "guard" phase finishes.On average,
guardingTimeis0.5 * 3250 + 1500 - window - 250.The average of
guardingTimebetween Normal and Hard is 2450. Let's say the player needs 100ms to react.With other games, let's use the average value of "Normal" and "Hard" as the average window timer.
MinesweeperGamelasts 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.Assume that the player needs 70% of that time to complete each game:
MinesweeperGamelasts 2 seconds)We have:
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:
Let's compare:
With:
ns.share(1PB): 95.520/sIt'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:
Let's see how the rewards scale with different faction lists (after installing all augs from those factions):
Infiltration money and SOA reputation
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.5is too high.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
calculateRawDiffandcalculateReward.calculateRawDiffis capped at 3. When it's "uncapped" for "Min combat stats", it accidentally buffs the result ofcalculateReward. This leads to the massive increase in hard locations.I suggest different formulas in
proposal.js. I tune them with these goals in mind:Math.pow(startingSecurityLevel, 1.2). You can check "rep/s" column to see this behavior.Columns:
Analysis:
ns.share(1PB): 95.520/sMarket demand multiplier
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.