Damage and NPC scaling improvements for a more balanced experience with optional NPC Downscaling so you can explore anywhere, any time.
Permissions and credits
Credits and distribution permission
Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources
Upload permissionYou are not allowed to upload this file to other sites under any circumstances
Modification permissionYou must get permission from me before you are allowed to modify my files to improve it
Conversion permissionYou are not allowed to convert this file to work on other games under any circumstances
Asset use permissionYou must get permission from me before you are allowed to use any of the assets in this file
Asset use permission in mods/files that are being soldYou are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
Asset use permission in mods/files that earn donation pointsYou are not allowed to earn Donation Points for your mods if they use my assets
Author notes
This author has not provided any additional notes regarding file permissions
File credits
This author has not credited anyone else in this file
Donation Points system
Please log in to find out whether this mod is receiving Donation Points
Changelogs
Version 1.5.5.2
Corrected a Quest reward EXP issue where Upscaling was incorrectly used in the logic.
Cleaned up EXP script by removing unnecessary lines of code.
When Upscaling is enabled, less math is now needed to calculate EXP simply by forcing the "Level Difference" variable to 0 (In other words, when Upscaling is enabled, the game thinks you are always the exact level as the recommended quest lvl)
Version 1.5.5.1
While Geralt is lvl 1 - 3, pack-style enemies which are a higher level deal less and take more damage based on their level difference to Geralt.
Quest-based enemies which previously recieved flat +2 or +3 level bonuses (potentially stacking to +5) now to do not recieve these bonuses if Geralt is under lvl 10.
Between levels 11 - 18, Quest-based enemies which previously recieved flat +2 or + 3 level bonuses (potentially stacking to +5) now recieve a smaller bonus based on Geralt's level.
After Geralt is level 18, the previous +2 and + 3 bonuses work as they did in previous mod versions.
This update should allievate players at very low levels experiencing powerful "fodder" enemies such as wolves and wraiths.
Version 1.5.5
Implemented buffs to the Player which increases damage dealt and decreases damage taken as you level up. This effect is further increased if the enemy is a boar, wolf/dog, or standard human.
The reason for this change is because boars, wolves/dogs and standard humans are very sensitive to stat changes as they level up, resulting in high lvl NPCs of this type being too powerful. I thought I had balanced them appropriately in the previous version, but community feedback would imply otherwise.
At lvl 100, this buff to Geralt results in roughly + 35% to damage dealt and -20% damage taken, double that versus boars, wolves/dogs, and standard humans. This buff is reduced by 50% against bosses/mini-bosses.
This buff also helps the player feel a sense of progression. In previous versions, everything feels a little "same-y" regardless of your level. Now, the sense of progression is enhanced.
Fixed an issue where sometimes EXP gains of less than 1.0 would get rounded-down to 0.0. I simply added +1 EXP to everything, so even if it gets rounded-down, the minimum is still 1.0 instead of 0.0
Version 1.5.0.1
New "Durability" damage calculations introduced in v1.5 based on NPC armor/size/difficulty has been split into 2 parts... 1) Normal damage calculation... 2) Flat HP%-based damage.
"Normal" damage regarding "Durability calculation" has been reduced in intensity by roughly 50%
"HP%-based" damage regarding "Durability calculation" remains the same as it was in v1.5... I decided to split these two apart as it didn't seem wise to treat percentage-based damage the same as traditional damage.
Overall, what this change did was allow vanilla effects to more-closely resemble their intended intensities and allow for various attack types/elements to interact with resistances and skill enhancements in a more meaningful way.
TL;DR - Damage is now more varied and less "same-same" regardless of what attacks/spells you use. The difference is a bit subtle, but nontheless better.
Version 1.5
Fixed Quen reflecting things it shouldn't. This was a vanilla bug that is normally unnoticed, but was exacerbated by this mod's changes. Quen impulse and reflection are now properly fixed in a way that should have been done officially a long time ago.
Alternative Quen + Quen Impulse can no longer be spammed for OP area damage. Quen impulse now scales with missing stamina (ONLY if Alt Quen is being cast!), therefore, casting Alt Quen for only 1 second to "break" the shield will yield significantly less damage if you're near Max Stamina.
Fixed a Vanilla bug where Quen could reflect Damage Over Time effects.
Quen no longer prevents DoT effects which were already effecting Geralt prior to its application.
Quen Impulse and Reflection damage has been significantly reduced due to its OP nature. Quen Impulse + Reflection at max levels is about the same damage as a light attack, but keep in mind this is area damage and simultaneously prevents damage to you. So the damage output makes sense.
Large, Solo, Armored, and Boss NPCs now take less damage. This includes things like Bears, Gryphons... Anything the game classifies as "large", Bosses, Minibosses, ... etc. It also takes into consideration Armor Value, so utilizing spells and heavy attacks will be important versus these foes. Depending on the number of applicable "tags" the NPC has, these damage reductions can stack up-to -50% damage taken.
Version 1.4.9.2
Updated for game patch 4.04!
Version 1.4.9.1
*HOT FIX* v1.4.9 did not include the "npc.ws" script experience gain changes, which is now included with this update (v1.4.9.1)
The following change log items were included in v1.4.9, but I'm repeating them here in v1.4.9.1 for ease of visibility:
Updated for patch 4.03!
Wolves now use the same damage calculation as Wild Dogs (I.E., they have been nerfed, relatively speaking)
Fist fights should no longer cause a death screen if you lose.
Removed *most* experience gain adjustments in favor of a much more simple approach that is closer to Vanilla values, with a slight boost in EXP from lvl 1-5 and 10-15.
Removed Aard's vanilla health-percentage-based damage in favor of flat damage per Player level. This should make Aard damage more consistent and less overpowered.
Most mod-specific adjustments are no longer active if you or the victim are below 10% HP. There are simply too many unique situations where something aside from death gets triggered. Rather than account for all unique events, the simpler approach is to disable most mod effects while below 10% HP.
Version 1.4.9
Updated for patch 4.03!
Wolves now use the same damage calculation are Wild Dogs (I.E., they have been nerfed, relatively speaking)
Fist fights should no longer cause a death screen if you lose.
Removed *most* experience gain adjustments in favor of a much more simple approach that is closer to Vanilla values, with a slight boost in EXP from lvl 1-5 and 10-15.
Removed Aard's vanilla health-percentage-based damage in favor of flat damage per Player level. This should make Aard damage more consistent and less overpowered.
Most mod-specific adjustments are no longer active if you or the victim are below 10% HP. There are simply too many unique situations where something aside from death gets triggered. Rather than account for all unique events, the simpler approach is to disable most mod effects while below 10% HP.
Version 1.4.8
Enemies which have a "Rage mode" that activates rapid HP regen now heal at a reduced rate based on their level difference. This is done by slowing down the "tick rate" of the heal, but not the actual heal value. For every 1 level (minus 2) above Geralt, the tick rate is reduced by 1 second, up-to 10 seconds. (The NPC would need to be 12 lvls or higher to reach this cap)
Definitely, really, really, FOR SURE this time fixed Alghouls not retracting their spikes when afflicted with Axii.
Version 1.4.7
Adjusted the calculation pipeline so that custom scripts take place before/after certain events. This has resolved an issue where NPCs sometimes deal inconsistent damage. A good example is Gryphon damage - previously it was very high, but thanks to this change, is much more reasonable.
Blocking while Fist fighting outside of the "fist fight mini game" inherits the same blocking behavior as-if in the minigame. I.E., blocking does not fully negate all damage.
Specifically made Wild Dogs take more damage and deal less. In almost every encounter with Wild Dogs, there are a LOT of them and they attack very fast. They're stupid and annoying. Die wild dogs!
Streamlined scripts, resulting in fewer calculations to achieve the same result. Users shouldn't notice a difference, but in terms of runtime, the scripts are now a tad faster. Negligibly so, but it helps stave off my insanity.
Damage which appears in the damage log (if enabled) no longer shows decimal values. For example, if an attack deals 123.67 damage, it will display as 124 cleanly. This damage log behavior is present in the vanilla game, and it was driving me nuts!
Town Guards now take 20% less damage and deal 20% more damage. The Next-Gen Patch nerfed them into the ground, and while these changes are not equal to pre-Next-Gen behavior, the guards are at least more competent.
Version 1.4.6
Updated scripts for Game Version 4.01
Optimized some damage calculations.
Fixed a calculation error resulting in some NPC types dealing too much damage, including fist fighting NPCs which appear outside of the actual "Fist fight minigame."
Fixed Alghouls not retracting their spikes (for real time time)
Version 1.4.5
Fixed fist fight NPCs dealing too much damage
Fixed animals dealing too little damage.
If an attack does less than 2.5% of a target's health as damage, percentage-based modifiers are doubled.
Percentage-based modifiers are now applied further towards the end of the calculation pipeline to ensure vanilla modifiers are applied first.
Version 1.4
Fixed overpowered vanilla Boars
Incorporated an EXP curve similar to the mod "Smoother Quest XP Curve" - this EXP curve is only active if Enemy Upscaling is DISABLED.
Fixed overpowered Fist Fighters. Damage incoming and outgoing is a lot smoother and predictable.
NEW FEATURE! In fist fights, blocking no longer negates 100% damage. A small amount of damage will be taken while blocking (about 2% HP)
NEW FEATURE! In fist fights, if blocking an attack depletes your stamina, your guard will be broken and you will receive extra damage.
Version 1.3.1
Fixed Quen not actually blocking damage correctly
Quen shield buffed by +1% of Geralt's Max HP to accommodate for Percentage-based damage introduced by this mod
Percentage-based attacks now ignore Poison, Fire, Frost, Shock, and Elemental damage, unless the source is from a Witcher Sign. This is done because for some reason these damage types are not classified as "isDoT()" when they sometimes actually are. This should fix the issue with Devil's Puffball, and potentially other multi-hit attacks.
Mod now correctly ignores Ciri game segments
Updated mod from 1.3 to 1.3.1 which now only ignores certain damage types if it is health-percentage based.
Version 1.2.1
Difficulty tweaks no longer effect sign damage
Sign damage no longer scales by a percentage and instead scales by +5 per Player Level, which is slightly less than level-appropriate swords.
Damage scaling in general is less aggressive and the calculations have been adjusted to be more closely aligned with Geralt’s .xml file Level Up boosts
Completely removed this mod’s changes to Quen (no longer necessary)
Scaling which occurs when the level gap exceeds 9 is less aggressive.
Fixed an issue where certain NPC types would return a value of 0 with “actor.GetLevel()” due to the vanilla game giving them “fake” levels instead of real ones.
Version 1.1
Fixed a vanilla bug where stats boosts effect Wolves, Dogs, Bears, and Humans a little too aggressively.
Fixed vanilla Sign Damage scaling (I don't remember this ever being an issue before the next-gen update...)
Adjusted some multipliers so they don't kick-in until the level gap exceeds 12
Reduced overall mod-specific Attack Power multipliers for Geralt and implemented "fake" sword item levels to his attack calculations - thus ensuring attacks are extremely accurate.
Version 1.0
Initial release.
Donations
No donations accepted
by PhantumJak
Mod Summary...
Numerous damage-related fixes and improvements over the vanilla game.
Simply makes combat a better experience while retaining the original intent of CDPR. Lightweight (NOT an overhaul!)
Prevents Geralt from becoming too overpowered.
Fixed the infamous "OP by level 25" experience. Geralt can still become quite powerful, just not to the ridiculous degree that vanilla allows.
NOT a "makes the game harder" kind of mod.
This mod respects your Game Difficulty of choice. While objectively some things are a bit more difficult, it's not to a degree that deviates from your difficulty preference.
Improved "Enemy Upscaling."
An option which can be toggled on/off in the game menu.
Enabling this option now allows you to challenge NPCs/Quests that are normally too high level. Go anywhere, do anything!
Can be installed/uninstalled/re-installed at any time.
Does not make permanent changes to your save file.
Works immediately!
No "do this to active the mod" sort of stuff.
Ready for Next-Gen!
Yes, this mod is updated to work with CDPR's Next-Gen patch.
Lightweight.
Compatible with a large number of mods!
Mod Details...
Fixed: Inconsequential damage (universally).
All attacks deal + [0.5% to 4%] of the target's HP, regardless of armor and other stats (exact value depends on the game difficulty chosen.) Harder difficulties will increase the HP% damage to Geralt, and decrease it against NPCs.
Fixed: Inconsequential damage (NPC level boosts).
NPCs which are a lower level than 40% of Geralt's level will be boosted to equal 40% of Geralt's level, plus 10% of their original level. EXAMPLE) Geralt is lvl 50, a drowner is lvl 1. The drowner gets boosted to lvl 20.
This boost will result in "less" trivial enemies, though, still significantly weaker than Geralt. Their damage to Geralt will be moderately increased and they may take an extra 1-2 hit to kill.
This boost effect applies when "Enemy Upscaling" is DISABLED. See more on Enemy Upscaling below (yellow text).
Fixed: Very low bomb damage.
All bombs (that deal damage) deal +3% of the target's HP, making them far more useful against high-HP foes, but not to the point of being overpowered.
Fixed: Overpowered damage-over-time effects.
All damage-over-time effects which exceed 4%/sec of the target's HP scales at a 400% reduced rate. For example, if the DoT normally does 5%/sec, it would instead deal 4.25%/sec. Most DoT-based builds outperform everything else, but now you can play any build you want without concern of "choosing the wrong build."
Fixed: Next-Gen Difficulty Nerfs.
Game difficulty has been restored AND improved. The game will gradually become harder as you level up to help negate the infamous "OP by lvl 25" experience. This does not effect the easiest game mode.
Fixed: Overpowered Wolves, Dogs, Bears, Boars, and Humans.
These NPCs have always been very sensitive to stat change boosts, usually resulting in them dealing way too much damage (a vanilla problem that has never been fixed) - and especially when Enemy Upscaling is enabled. These NPC types now deal damage that aligns more appropriately with their level.
Fixed: Under-powered Sign Damage.
For some reason, Sign damage scales incredibly poorly as you level up (a vanilla behavior) - this has been corrected by allowing Sign damage to scale at a rate of +5 flat damage per Player level, which trails slightly behind melee weapon damage scaling.
Fixed: Overpowered Quen Reflective & Impulse Damage.
This has always been OP in the vanilla game, and yet another contributor to feeling like there is only one "correct" build. These abilities have been decreased in damage by around 50% - their defensive properties are unchanged.
Fixed: Weak City/Town Guards.
The Next-Gen update heavily nerfed guards, to the point that they are a joke. Admittedly, before the Next-Gen update, they were too overpowered. This mod buffs guards' armor and damage by 20%, resulting in a nice middle-ground between their next-gen and original stats.
Improved: Fist Fight minigame mode.
Sporting fist fights are now more about skill than brute strength. Neither opponent can be 1 or 2 shot.
Regardless of your level or the NPC's level, punches can only marginally exceed [15% to 33%] of each other's health, depending on your game difficulty choice.
Blocking no longer negates 100% damage from the opponent. Instead, a very small amount of damage is taken while blocking an attack.
While blocking, if your stamina is depleted, the attack will break through and cause minor stagger.
Improved: One-Shot Protection.
Did you know this game has built-in One-Shot Protection? Well now you do! This mod improves it to scale with your difficulty preferences. Basically any damage that exceeds 33% of Geralt's HP is reduced based on the percentage value exceeding 33%, with an additional modifier based on your difficulty preference. This does NOT mean Geralt can't die in 2 hits, but it will significantly play a factor. Let's be real, dying in 2 hits just isn't fun. One-Shot Protection is a crucial element in making this mod feel more meaningful, and allows the mod to make bosses and large NPCs truly formidable without accidentally "over-tuning" them.
Improved: Deadlier Bosses, Mini-bosses, and Bounty Monsters
These types of NPCs have been boosted in level by 3.
The "level difference buff" that NPCs get (a vanilla behavior) has been delayed by 3 levels to ensure bosses don't get "double boosted."
Improved: Deadlier Large Monsters
"Large" monsters have been boosted in level by 2. This includes Bears, Griffons, Leshies... and more. If it's big, it's effected.
This effect stacks with "Deadlier Bosses, Mini-bosses, and Bounty Monsters" - for example, if you stumble across a Griffon bounty, it could be 5 levels higher than vanilla.
Improved: Stronger "Heart Mini-boss"
This fight now has 3 minion spawn phases instead of 2 and can no longer be one-shot by bleeding effects (yes, that was a thing!)
Improved: EXP level curve
Between levels 1-5, EXP gain from all sources is increased by 18%
Between levels 10-15... 20-25, EXP gain from all sources is increased by 10%
Between level 6-9..16-19, EXP gain from all sources is reduced by 10%
Beyond lvl 25, EXP gain from all sources is reduced by 8%
Vanilla EXP penalties have been heavily reduced if a quest/NPC level far differs from yours. In vanilla, you get ZERO EXP if you're too high/low. With this mod, you still get EXP, just 30% less compared to being a more appropriate level.
------------------------- The following changes only work if you have "Enemy Upscaling" turned on in the vanilla game menu. (This mod does NOT have a dedicated mod menu) -------------------------
New Feature: Limited High Level NPCs.
Enemies may no longer exceed 9 levels above Geralt, now making it possible to explore anywhere, but not completely eliminating risk.
Some NPCs do not receive scaling at all (a vanilla behavior) and may still exceed 9 levels. In which case, Geralt's power and armor are dynamically scaled up to accommodate for the large difference in level.
Disabled the ridiculous 2x and 3x buffs NPCs get for being much higher level than Geralt. The standard bonuses they get from levels alone is more than enough.
New Feature: Removed EXP penalties
There are no longer EXP penalties for completing quests (or killing NPCs) which are either too high or too low level.
Compatibility...
NOT compatible with:
EXP mods. This mod has its own EXP changes that often cause merge conflicts with like-minded EXP mods.
Large overhaul mods such as Ghost Mode and W3EE. Self-explanatory.
NPC Scaling mods, mods that adjust NPC levels, or mods that apply static levels. This mod has finely-tuned scaling of its own that likely will not work as-intended with other mods that change levels.
This mod is fairly lightweight, there is a high likelihood that it is compatible with most mods. If not, you'll know, cause you'll get a script merge conflict.
This mod does not require any special install/uninstall steps, therefor, I will not go into detail on how those are performed. Please search the web for TW3 modding tutorials if you're having trouble.