Modify Enemy Agressiveness + Full Enemy List
Jul 26, 2021 0:52:17 GMT 10
Mr.Curious, Scott Kennedy, and 2 more like this
Post by kTeo on Jul 26, 2021 0:52:17 GMT 10
Hey fellas, today i'd like to share a way i've found to change how enemies react according to the current Difficulty Adjustment rank (DA).
There's many entries per animation, which i presume is what is currently loaded depending of your DA rank. Let's start then!
You can find these files in natives/stm/escape/userdata/character/enemy/emXXXX/emXXXXrankparamdatauserdata.user.2
(Change emXXXX with what enemy you'd like to edit)
Here's a list of which enemies are loaded in each of those folders (If one of the listed below are not in your folder, it's because they're seen only inside spawn files. They probably share the same folder here with other entry):
this folder's em0000 - works for all zombie variants
em0000 to em0800 - zombie variants (idle and LOD if you swap)
em0100 - female zombie
em0200 - fat male zombie
em0300 - male zombie
em3000 - licker
em3300 - Hunter
em3400 - hunter gamma
em3500 - drain demoes
em4000 - Zombie dog:
em7000 - ? no mesh or textures
em7100 - ?
em8400 - ?
em9000 - nemesis (downtown, includes all his boss fight variants)
em9100 - nemesis (intro)
em9200 - nemesis (acid pit fight dog form)
em9300 - nemesis (final form)
em9400 - Nemesis (clocktower fight dog form)
i don't know yet where to edit em9400, but i presume it's in the same folder as em9200.
In this example, i will be editing the Nemesis from downtown (em9000rankparamdatauserdata.user.2).
What you'll need to look for when opening those files in Hex Editor is for visual words in the decoded text window. After finding those, look below in the bytes section looking for a sequence of 01 repeated in the same column. The bytes you should edit are the 4 bytes before those (they translate to Single Float32). I recommend using the 16 bytes per row config to make it easier to find everything.
below are some examples:
By translating those values, they appear to always be in crescent or decrescent order. This mostly indicates two things:
crescent order: Higher animation speed (According to your current DA rank)
decrescent order: Lower react time window or time between attacks (According to your current DA rank)
keep in mind that (from what i've seen so far) those sequences will always be from lowest to highest DA rank. Starting at Assisted mode, ending at Inferno.
Some of them have more entries, some of them have a single entry for all DA rank values.
If you select one of the 4-bytes row, you can find their converted value to decimal at the window on the right side of the screen (this is for HxD, i don't know how other hex editing programs deal with this).
You can edit the values directly from their decimal conversion and the bytes will be automatically rewritten.
I recorded a video below showing some notable changes in Nemesis even when playing on Assisted difficulty. Values changed were mostly 30% higher/lower than the original maximum DA rank value.
And that's it for today, Hope this can help someone.
Also, i haven't fully explored the values AFTER the 01 byte i mentioned as reference, and i don't know why sometimes that same 01 byte turns into a 02. Maybe it can be improved even further, so feel free to explore yourself and post anything new you find here.
There's many entries per animation, which i presume is what is currently loaded depending of your DA rank. Let's start then!
You can find these files in natives/stm/escape/userdata/character/enemy/emXXXX/emXXXXrankparamdatauserdata.user.2
(Change emXXXX with what enemy you'd like to edit)
Here's a list of which enemies are loaded in each of those folders (If one of the listed below are not in your folder, it's because they're seen only inside spawn files. They probably share the same folder here with other entry):
this folder's em0000 - works for all zombie variants
em0000 to em0800 - zombie variants (idle and LOD if you swap)
em0100 - female zombie
em0200 - fat male zombie
em0300 - male zombie
em3000 - licker
em3300 - Hunter
em3400 - hunter gamma
em3500 - drain demoes
em4000 - Zombie dog:
em7000 - ? no mesh or textures
em7100 - ?
em8400 - ?
em9000 - nemesis (downtown, includes all his boss fight variants)
em9100 - nemesis (intro)
em9200 - nemesis (acid pit fight dog form)
em9300 - nemesis (final form)
em9400 - Nemesis (clocktower fight dog form)
i don't know yet where to edit em9400, but i presume it's in the same folder as em9200.
In this example, i will be editing the Nemesis from downtown (em9000rankparamdatauserdata.user.2).
What you'll need to look for when opening those files in Hex Editor is for visual words in the decoded text window. After finding those, look below in the bytes section looking for a sequence of 01 repeated in the same column. The bytes you should edit are the 4 bytes before those (they translate to Single Float32). I recommend using the 16 bytes per row config to make it easier to find everything.
below are some examples:
By translating those values, they appear to always be in crescent or decrescent order. This mostly indicates two things:
crescent order: Higher animation speed (According to your current DA rank)
decrescent order: Lower react time window or time between attacks (According to your current DA rank)
keep in mind that (from what i've seen so far) those sequences will always be from lowest to highest DA rank. Starting at Assisted mode, ending at Inferno.
Some of them have more entries, some of them have a single entry for all DA rank values.
If you select one of the 4-bytes row, you can find their converted value to decimal at the window on the right side of the screen (this is for HxD, i don't know how other hex editing programs deal with this).
You can edit the values directly from their decimal conversion and the bytes will be automatically rewritten.
I recorded a video below showing some notable changes in Nemesis even when playing on Assisted difficulty. Values changed were mostly 30% higher/lower than the original maximum DA rank value.
And that's it for today, Hope this can help someone.
Also, i haven't fully explored the values AFTER the 01 byte i mentioned as reference, and i don't know why sometimes that same 01 byte turns into a 02. Maybe it can be improved even further, so feel free to explore yourself and post anything new you find here.