AI Netrunners Enhanced
NOTE: Requires version 0.2.0+ of redscript. Also requires game version 1.2 or later.
Ever wonder why the enemy netrunners almost never hack you? And It’s always Overheat? This mod fixes that by adding a bunch of hacks, some of them already in the game and unused, some of them I had to create. I also fixed some CDPR bugs that stop enemy netrunners from hacking you often.
How the unmodded game works:
Any enemy can use Reveal Position on you to find your location and enter the combat state. Triggered by doing stealth damage hacks against them (there may be a health trigger… I’m not sure of the exact conditions)
Netrunners can use Overheat against you to do a burning status effect. If you know the location of a netrunner who does another hack please let me know, because I can’t find one!
What this mod does:
Bugs in the unmodded game I found and fixed:
When you load a game or fast travel you start with the “BeingHacked” status effect, so you can’t be hacked! Some condition eventually removes this, allowing you to be hacked, but it’s the main reason you rarely get hacked.
If you interrupt a hack by killing or attacking the hacker, or with the Self-ICE cyberware, the “BeingHacked” effect is not removed.
Reveal Position just keeps going even if you kill the person hacking you or they find you and go into combat with you.
New Hacks:
10 possible enemy netrunner hacks (5 damage, 4 control, 1 ultimate!)
Each netrunner is given a catalogue of 3 hacks to use (minimum 1 damage and 1 control), chosen randomly with some weighting based on level
Netrunners select from their catalogue according to another set of weights, and each hack has a different upload time. Generally better hacks take longer to upload.
Hacks [Type – Name (upload time): description]:
Damage – Overheat (5s): low burning damage over time
Damage – Burning (7s): high burning damage over time (a netrunner will only have one of Overheat or Burning, never both)
Damage – Contagion (6s): moderate poison damage over time
Damage – Short Circuit (6s): moderate shock damage over time
Damage – Synapse Burnout (7s): does damage equal to 20-35% of max health. Higher damage if the player has lower health. Higher chance that a Netrunner has this at higher levels.
Control – Cyberware Malfunction (5s): disables jump cyberware, scanning/hacking, etc.
Control – Reboot Optics (3s): flashing blind effect
Control – Weapon Glitch (7s): guns are disabled
Control – Cripple Movement (6s): very slow movement
Ultimate – Imminent System Failure (15): you die (higher chance that a netrunner has this at higher levels)
Configuration:
The mod lives in “r6/scripts/AINetrunners/”. Inside that folder is a “config.reds” file which has most of the things you might want to change. It would be pretty easy to change the frequency of different hacks being applied or their upload times.
Adjusting Difficulty
Just fixing the bugs that prevent you from being hacked most of the time is a nice increase in difficulty. Now it’s harder to wipe out an entire base with contagion or whatever without having someone do Reveal Position on you.
I changed something else that makes it a bit harder, which is to disable the ability for netrunners to be “interrupted”. The game applies this effect for all sorts of reasons that I can’t control or see because some of it is in native code that we don’t have access to. I find they get interrupted sometimes for no apparent reason, and sometimes when they’re damaged and reasonable things like that. I think it’s mostly when the AI system changes what action the NPC should do, but they don’t actually do anything different most of the time.
If you want to turn that feature back on, use this at the top of the config file:
// change to true if you want hacks to be interrupted the they can be in the unmodded game (I find it to be too often and not for obvious reasons)
public func allowAINetrunnersToBeInterrupted() -> Bool { return false; }
Without this feature you can only stop a hack by killing/knocking out an enemy, or applying Cyberware Malfunction. Very dangerous if they use the Imminent System Failure hack on you!
I also added an alternative option, disabled by default, which stops a hack any time the netrunner is damaged:
// change to true to stop hacks any time the Netrunner is damaged. This can be used instead of or in addition to the interruption effect.
public func stopHacksWhenAINetrunnerIsDamaged() -> Bool { return false; }
Implementation/Development Notes:
Overheat, Burning, Cyberware Malfunction, and System Failure were all fully functional as implemented by CDPR.
Weapon Glitch, Cripple Movement, and Short Circuit were implemented as AI Hacks, but with non-functional status effects attached to them. Weapon Glitch and Cripple Movement had other status effects that were obviously meant for those effects which I used (and more non-functional versions). For Short Circuit I had to find something close enough so I used an Electrocute status effect that works.
Contagion, Reboot Optics, and Synapse Burnout are just hacked together by me. I’m replacing the text by using a localized text key from the associated player quickhacks (so it should display correctly in any language), and I’m using poison and the blind status effects for the first two. Blind is not really the ideal thing for reboot optics. If I find a better effect I’ll update it.
The motivation for adding Synapse Burnout is that you can be immune to all the other status effects pretty easily at higher levels (burning/shock/poison). This hack does pure damage.
CDPR has a system where if a second netrunner tries to hack you while you’re under the effects of a previous hack (which last like 5-7 seconds), it will upgrade the current hack to a higher tier status effect of the same kind instead of starting a new hack. Only Overheat actually has 3 working tiers, and Tier 2 does less damage than Tier 1. Yes, it’s actually designed for up to 3 netrunners to hack you at once. When would that ever happen?? The other effects implemented are for Weapon Glitch and Cripple Movement, but all 3 tiers of those are broken. Anyway I disabled this feature entirely, so any netrunner can start hacking you again as soon as the previous hack finishes uploading. Overheat Tier 3, by the way, is identical to Burning in damage, though Burning has an extra visual/audio effect of being on fire.
Installation
IMPORTANT: This mod depends on the redscript compiler. Download that first and put scc.exe in “Cyberpunk 2077/engine/tools/”. Then open “Cyberpunk 2077/engine/config/base/scripts.ini” in a text editor (create it if it doesn’t exist) and edit it to look like this:
[Scripts]
EnableCompilation = “true”
To install this mod, extract the zip file into the Cyberpunk 2077 installation folder (the mod files go to “Cyberpunk 2077/r6/scripts”).
Compiling any scripts overwrites the file “Cyberpunk 2077/r6/cache/final.redscripts”. This means that simply removing the mod files won’t revert the game back to an unmodded state. If the compiler detects that it’s modifying a file it didn’t create itself, it creates a backup in the same folder called final.redscripts.bk. To uninstall a redscript based mod you can just delete the modified final.redscripts file, rename the backup to the correct name, and then either delete/move the mod files from the scripts/ folder (say you’re using multiple script-based mods and don’t want to remove all of them), or else turn off compilation in the scripts.ini file (set to “false”) if you want to turn off all redscript based mods. If you ever end up without your backup file, you can just delete the final.redscripts file and then do a verify install in GOG or Steam (it only replaces the file if it can’t find it).