Hi everyone, I think I've figured out a way around the unkillable enemies issue. For me I encountered it outside the Nowhere Inn, a few unkillable bandits were in a fist fight. What I ended up doing was downloading Cheat Engine from their website, along with the Witcher 3 cheat table. Now this table has a series of cheats but 2 of them are '1 Hit Kills' and 'Maximize All Status Bars. The '1 Hit Kills' is self explanatory but the 'M.A.S.B' one has the side effect of raising ALL status bars, yours and NPCS. So in effect you're forcing those glitched enemies with -1 HP to have a positive number. Activate both of these and you should be able to kill those glitched enemies now.
I wish this would work Unfortunately for me everytime I load the cheat tables "One Hit Kills" is nowhere to be found. Maximize All Status Bars is there and works but it seems they pretty much have infinite health. Ugh I hate that damn group of bandits.
That was it! I foolishly didn't click on "Activate Player Scripts" so I had no clue there were drop downs. Ugh that saved so many hours of work and a massive annoyance anytime I was in Novigrad. Thanks so much!!
Waterhag bug solved. This mod doesn't work but I have it in Mods folder just in case it helped me in some way. what truly worked for me is I downloaded the very first cheat table in witcher 3 fearless revolution posted by Zanzer dated » Mon Mar 06, 2017 12:13 am. under activate player script, activate the maximize everything (Enemies too!). then I fast travel to downwarren and fast travel to the bog back. after you see the waterhag hp becomes normal then just disable this cheat and can start killing on the spot.
my thanks goes to this mod owner and people here who directed me to cheat table that works. sorry if this is redundant (someone should post on steam thread cause no one posted the solution yet to help others in future). disclaimer : I play on next gen patch v4.00 without any future update because the flickering / ambient issue doesn't bother me at all.
I've followed up on ShadowSnake1's fix which did not work for me because, as ElKat and others wrote, the mobs have negative HP. However, I've found a simple fix:
in damageManagerProcessor.ws in content0>scripts>game>gameplay>damage (pretty much right at the start) find the line
LogAssert(false, "W3DamageManagerProcessor.ProcessAction: action deals no damage and gives no buffs - investigate!");
i have a problem after installing mods, i dont know what mod cause this but my enemies have no health bar. tried everything even start a new game to test, remove all mods.. but still it's the same :((
So a fix I had to this was that I had Ghost Mode installed and I uninstalled it. Brought all the enemies health bars to "1", but they took damage like they had normal health. Going to reinstall Ghost Mode to see if I can still use it. None of the fixes in these comments worked for me, but something I might try is after installing Ghost mode I will replace the "damagemanagerprocessor.ws" with the vanilla one within the Ghost Mode mod file. Will reply with results.
It's already 2022 and the problem remains. In the swamp there is an invulnerable water hag. I tried to rewrite the code in damageManagerProcessor.ws, use cheat engene, loading saves - nothing helps.
For those of you with GOG at version 1.31 and don't have the 'gameplay > abilities > monster_base_abl.xml' file EelKat mentioned, do as Igorson mentioned and:
Find : "damageManagerProcessor.ws"
In it, changed the line ---------------------------------------------------------------------------------------------------------------------------- else if( actorVictim.IsInvulnerable() ) {
THEN reload the save before you encounted the enemy and it'll reset the health of the enemy to a full health bar. To make sure, you can install the console commands mod and use 'killall' to immediately kill the NPC once you engage it in batlle.
Not worked. Not reset the health of the enemy to a full health bar. I change code: else if( actorVictim.IsInvulnerable() ) { action.processedDmg.vitalityDamage += dmgInfos[directDmgIndex].dmgVal; action.processedDmg.essenceDamage += dmgInfos[directDmgIndex].dmgVal; } else if( actorVictim.IsImmortal() ) {
The -1 enemy health bug isn't caused by the damageManagerProcessor.ws file. It's caused by errors in the xml files for the enemies themselves. If you know how to edit the xml files, you can fix the -1 health bug for any enemy you encounter. Here's how:
Go to: gameplay > abilities > monster_base_abl.xml
for NG+ go to: gameplay > abilities_plus > monster_base_abl.xml
Inside of that file, each enemy (bandit, monster, and boss) has an individual string of code. Locate the ability code for the particular enemy that is bugged out in your game and add the following lines to their ability code:
This will give them a full health bar and you'll be able to kill them.
Also, if an enemy is not bugged out but you feel they are too easy to fight and want to make the fight more difficult you can increase the numbers; for comparison to how difficult those numbers make an enemy: Eredin's is 100/8000/20, Imlerith's is 100/12000/25, Caranthiar's is 100/9000/13.
Likewise if an enemy is too hard (say you don't like being one hit dropped by wolves or ganged up on by OP drowners and want to make them weaker) you can lower the numbers, to weaken their health.
What these numbers mean:
Base Vitality = base health the enemy starts out with. 100 = they always spawn in with minimum 100 vitality.
Add Vitality = additional health added to the base. 1000 added to 100 means they spawn in with minimum 1100 vitality.
Mult Vitality = additional health boost the enemy spawns in with; 10 mult on top of 1100 adds 10% vitality, so 1100 x 10% = the enemy spawns in with a total of 1,210 vitality (health points).
Mult Vitality = additional health boost the enemy spawns in with; 10 mult on top of 1100 adds 10% vitality, so 1100 x 10% = the enemy spawns in with a total of 1,210 vitality (health points). You can put this in a range for example: always_random="true" min="10" max="1500" will cause every enemy of this type to have anywhere from 10% to 1500% additional vitality.
Meaning these boss have:
Eredin's is 100+8000x20 = 9,720 vitality
Imlerith's is 100+12000x25 = 15,125 vitality
Caranthiar's is 100+9000x13 = 10,283 vitality
For most enemies that will be their total vitality when they spawn in, however boss fights also have additional vitality which is then added based on player level. For example Eredins is 5+player level, Ilmeryth is 25+player level, and Caranthir is 29+player level.
Meaning if you were to fight them at level 22, their total health bar vitality at spawn-in would look like this:
Eredin's 9,720+22x5 = 10,692 total vitality
Imlerith's 15,125+22x25 = 83,187 total vitality
Caranthiar's 10,283+22x29 = 65,605 total vitality
And you can see now why Eredin dies so easy while Caranthir is a beast to fight and Ilmeryth takes forever to whittle down.
Some enemies also have stamina that doesn't go down, also causing them to be unkillable. If that is the case. find that enemy's ability code, and look for any line starting with:
and whatever the number is, change it to 1 and that will fix the stamina not going down bug
The -1 enemy health bug most often affects bandits, golems, wild hunt warriors, endrigas, and Caranthir. If you have it with any one of those, you'll likely have it with all of them.
I need this for actual version... Swamp hag, I tried to find Johnny. I can;t kill this hag. I tried game console and komand killall too... tried restart game, new save, load previous save, tried reinstall game, delete folder npc and try fix it with steam.... Idk what I should do. Please, help!
67 comments
What I ended up doing was downloading Cheat Engine from their website, along with the Witcher 3 cheat table. Now this table has a series of cheats but 2 of them are '1 Hit Kills' and 'Maximize All Status Bars. The '1 Hit Kills' is self explanatory but the 'M.A.S.B' one has the side effect of raising ALL status bars, yours and NPCS. So in effect you're forcing those glitched enemies with -1 HP to have a positive number. Activate both of these and you should be able to kill those glitched enemies now.
my thanks goes to this mod owner and people here who directed me to cheat table that works. sorry if this is redundant (someone should post on steam thread cause no one posted the solution yet to help others in future).
disclaimer : I play on next gen patch v4.00 without any future update because the flickering / ambient issue doesn't bother me at all.
in damageManagerProcessor.ws in content0>scripts>game>gameplay>damage (pretty much right at the start) find the line
LogAssert(false, "W3DamageManagerProcessor.ProcessAction: action deals no damage and gives no buffs - investigate!");
and add the line
actorVictim.ForceSetStat( actorVictim.GetUsedHealthType(), 100.0f );
The 100.0f is set arbitrary but I recommend to set it not too low as it is not clear (to me) how much negative HP the mob has.
Cheers Euclid
Find : "damageManagerProcessor.ws"
In it, changed the line
----------------------------------------------------------------------------------------------------------------------------
else if( actorVictim.IsInvulnerable() )
{
}
----------------------------------------------------------------------------------------------------------------------------
to
----------------------------------------------------------------------------------------------------------------------------
else if( actorVictim.IsInvulnerable() )
{
action.processedDmg.vitalityDamage += dmgInfos[directDmgIndex].dmgVal;
action.processedDmg.essenceDamage += dmgInfos[directDmgIndex].dmgVal;
}
----------------------------------------------------------------------------------------------------------------------------
THEN reload the save before you encounted the enemy and it'll reset the health of the enemy to a full health bar. To make sure, you can install the console commands mod and use 'killall' to immediately kill the NPC once you engage it in batlle.
else if( actorVictim.IsInvulnerable() )
{
action.processedDmg.vitalityDamage += dmgInfos[directDmgIndex].dmgVal;
action.processedDmg.essenceDamage += dmgInfos[directDmgIndex].dmgVal;
}
else if( actorVictim.IsImmortal() )
{
action.processedDmg.vitalityDamage += dmgInfos[directDmgIndex].dmgVal;
action.processedDmg.essenceDamage += dmgInfos[directDmgIndex].dmgVal;
}
else
{
action.processedDmg.vitalityDamage += dmgInfos[directDmgIndex].dmgVal;
action.processedDmg.essenceDamage += dmgInfos[directDmgIndex].dmgVal;
}
}
Then reload before NPC spawn ana nothing change. What could I have done wrong?
Go to: gameplay > abilities > monster_base_abl.xml
for NG+ go to: gameplay > abilities_plus > monster_base_abl.xml
Inside of that file, each enemy (bandit, monster, and boss) has an individual string of code. Locate the ability code for the particular enemy that is bugged out in your game and add the following lines to their ability code:
<vitality type="base" always_random="false" min="10" max="10" />
<vitality type="add" always_random="false" min="1000" max="1000" />
<vitality type="mult" always_random="false" min="10" max="10" />
This will give them a full health bar and you'll be able to kill them.
Also, if an enemy is not bugged out but you feel they are too easy to fight and want to make the fight more difficult you can increase the numbers; for comparison to how difficult those numbers make an enemy: Eredin's is 100/8000/20, Imlerith's is 100/12000/25, Caranthiar's is 100/9000/13.
Likewise if an enemy is too hard (say you don't like being one hit dropped by wolves or ganged up on by OP drowners and want to make them weaker) you can lower the numbers, to weaken their health.
What these numbers mean:
Base Vitality = base health the enemy starts out with. 100 = they always spawn in with minimum 100 vitality.
Add Vitality = additional health added to the base. 1000 added to 100 means they spawn in with minimum 1100 vitality.
Mult Vitality = additional health boost the enemy spawns in with; 10 mult on top of 1100 adds 10% vitality, so 1100 x 10% = the enemy spawns in with a total of 1,210 vitality (health points).
Mult Vitality = additional health boost the enemy spawns in with; 10 mult on top of 1100 adds 10% vitality, so 1100 x 10% = the enemy spawns in with a total of 1,210 vitality (health points). You can put this in a range for example: always_random="true" min="10" max="1500" will cause every enemy of this type to have anywhere from 10% to 1500% additional vitality.
Meaning these boss have:
Eredin's is 100+8000x20 = 9,720 vitality
Imlerith's is 100+12000x25 = 15,125 vitality
Caranthiar's is 100+9000x13 = 10,283 vitality
For most enemies that will be their total vitality when they spawn in, however boss fights also have additional vitality which is then added based on player level. For example Eredins is 5+player level, Ilmeryth is 25+player level, and Caranthir is 29+player level.
Meaning if you were to fight them at level 22, their total health bar vitality at spawn-in would look like this:
Eredin's 9,720+22x5 = 10,692 total vitality
Imlerith's 15,125+22x25 = 83,187 total vitality
Caranthiar's 10,283+22x29 = 65,605 total vitality
And you can see now why Eredin dies so easy while Caranthir is a beast to fight and Ilmeryth takes forever to whittle down.
Some enemies also have stamina that doesn't go down, also causing them to be unkillable. If that is the case. find that enemy's ability code, and look for any line starting with:
<stamina type="base"
<stamina type="add"
<stamina type="mult"
and whatever the number is, change it to 1 and that will fix the stamina not going down bug
The -1 enemy health bug most often affects bandits, golems, wild hunt warriors, endrigas, and Caranthir. If you have it with any one of those, you'll likely have it with all of them.
Hope that helps.