About this mod
Significantly improves the vanilla level scaling option, includes downscaling! Now you can play the game at your own pace, go anywhere, do any quest!
- Requirements
- Permissions and credits
- Changelogs
- Donations
by KiroKobra

Overview
Ultimate Enemy Scaling focuses on "down-scaling" NPCs which are of a higher level than Geralt. The mod is activated by enabling the game's pre-existing option "enemy upscaling". If this option is not enabled, the mod will not work.
The game already does a good job at upscaling enemies (I try not to "fix" what isn't broken), so that's why this mod focuses on down-scaling only.
With this mod installed, Geralt can challenge any quest or boss at ANY level. The experience is well-balanced throughout all stages of the game.
This mod simply limits how much the NPC can level up to begin with, up-to 9 levels within Geralt's level (so if Geralt is level 1, the highest an NPC can be is level 10). Once the enemy's level has been limited, Geralt is then scaled-up from there to close the gap.
Example: Geralt is level 5 and encounters a werewolf that is typically level 25. The werewolf's level is instead limited to level 14 (5 + 9 = 14). Geralt's stats are then boosted by 9 levels to close the gap between him and the werewolf.
- The reason why this mod scales Geralt up and NPCs down at the same time is because traditional scaling mods only do one or the other. The problem with that is if the level-gap is too great, stat scaling may not be correct and results in imbalanced gameplay. This mod combines the two methods to "meet in the middle" and eliminate both the NPC and Geralt from scaling too much in one direction - resulting in proper stat scaling at ANY level.
- This mod does not use .XML abilities on Geralt for up-scaling him. All the mod is doing is adjusting the math calculations to his attack power, armor, and sign power. What this means is this mod is completely safe to install and uninstall at any time - there's no way it can ruin a save file. Additionally, this also means that Geralt's "actual" stats do not get changed, so viewing the Character Stats menu will always provide accurate stat values.
- The way this mod implements scaling eliminates the possibility to exploit the mechanic or inadvertently do so.
This mod is part of a modular overhaul series
You can use each module separately,
but using them together is my personal preference.
Each module can be merged without conflicts using Script merger.
Module 1................................... Master Training
Module 2...................... Ultimate Enemy Scaling
Module 3.................................................... Vigor
Module 4.............................. Alchemy Enhanced
Module 5....... Dynamic Enemy Stats and Speed
Module 6......... Immersive Level Requirements
----------------------------------------------------------------------------------------------------------
The Details
- Enemies that are a higher level than Geralt will only level up to be within 9 levels of him. Example: If Geralt is level 1, the highest level an NPC will be is level 10.
- NPCs are no longer effected by "DEADLY" and "HIGH" level modifiers.
- There is technically no "down scaling" in this mod. What this mod is doing is simply limiting how high the NPC can level up in the first place. This mod is not reverse-engineering NPC stat scaling (that's way too complicated and has proven very clunky).
- Enemy up-scaling is not changed, its done via the vanilla upscaling feature. This mod primarily focuses on NPCs that are a higher level.
- Instead of scaling Geralt's Axii, Aard, and Yrden signs, NPCs instead get their resistances to these effects reduced multiplied by the level difference between it and Geralt.
- This mod utilizes a pre-existing script function called "AddLevelBonuses" within the npc.ws script file. Therefore, only NPCs which this function touches will be effected. This means that certain NPCs will not get scaled (don't worry, this is a good thing and prevents breaking Quest NPCs)
- If an NPC is not scaled through the AddLevelBonuses function (i.e, a Boss or Quest NPC, then the NPC's health is reduced by 50 points multiplied by the level difference between it and Geralt. The NPC's maximum HP is taken into consideration when applying this HP nerf so it will always reduce their HP by "50 x [insert appropriate value here]" (More info about "unscaled" NPCs in the "Geralt Scaling" section)
Geralt Scaling
- Geralt's attack power, sign attack damage, Quen absorb shield, and armor will dynamically scale based on if the attacking NPC is a higher level. Health is not scaled (more on that later).
- All scaling to Geralt is done through scripts and does NOT add any XML abilities to him. This means that technically Geralt's stats do not change at all - the scripts just do the math differently. What this means is 2 things... 1) No risk of effecting Geralt permanently... 2) Viewing Geralt's stats via the menu are accurate at all times.
- Instead of upscaling Geralt's health, I have instead scaled Geralt's incoming damage for an amount equal to as-if Geralt had more health. The reason for this is to prevent weird skill interaction relayed to health pools (dynamically adjusting Geralt's health is a bad idea)
- Geralt will scale-up to NPCs which are not effected by the AddLevelBonuses function. If this is the case, all of Geralt's attacks will also deal extra damage equal to 1% of the NPC's total health.
- Since Geralt is effectively scaled to all NPCs, this means that Bosses can still be challenged at any level. This
- Geralt's bombs now do +5% of the NPC's total health. This means bombs are actually useful at all levels.
Universal Changes
- Damage-over-time effects have been adjusted for ALL units in the game via a simple script. Basically, it's not possible for DoT damage to deal more than 250 damage. In the vanilla game, DoT damage is very overpowered versus bosses because it deals health-percentage damage. Now with this change, DoT damage is capped at 250 (The NPC would need a LOT of health to actually reach 250 though). This change makes other builds worth considering instead of defaulting to a DoT build (which is one of the most borken builds in the game... Not anymore!)
- The "Giant Heart Mini-boss" fight now has 3 phases instead of 2 and can no longer be one-shot by triggering bleed damage.
All mod features are only active if you have "Enemy upscaling" enabled (this is a vanilla game option) - If you don't enable it, nothing happens!!!
INSTALL OR UPDATE INSTRUCTIONS:
- Delete any older version of this mod(if any exist)
- Delete your "merged mods" folder
- Place folder "modD002_UltimateEnemyScaling" into your "/mods" directory or use a Witcher 3 mod manager
- Run script merger
- Done!
UNINSTALL INSTRUCTIONS:
- Delete folder "modD002_UltimateEnemyScaling" from your "/mods" directory
- Delete your "merged mods" folder
- Run script merger
- Done!
Or maybe you just want go the extra mile to show your support for my mods?
Great news! This mod is eligible for donations!
(click on the below image to be redirected to my donation page)

FAQ:
- Q) Does this mod have any in-game options? A) No. This mod is a "set it and forget it" mod, zero options.
- Q) Can this mod be installed onto a pre-existing save? A) Yes!
- Q) Can this mod be uninstalled without ruining my save file? A) Yes! It's perfectly safe!
- Q) Has this mod been tested with NG+? A) No official testing with NG+ has been done but I don't see any reason why it wouldn't work.
- Q) I think I found a bug, but I'm also using mods X Y and Z. Should I submit a bug report? A) See "bug report" disclaimer at the bottom of the mod page
COMPATIBILITY
- NOT compatible with sweeping gameplay overhauls (Ghost Mode, W3EE, or any other "complete overhaul") Generally speaking, those types of mods specifically state that they're not compatible with much.
- NOT compatible with my other mod "Static World"
- Should be compatible with just about any mod which doesn't edit the exact same script lines. Just use Script Merger, and if everything auto-merges, you should be fine. Your mileage may vary
"I think I found a bug, should I submit a bug report?"
With the huge success of the Netflix show "The Witcher", a lot of new and/or returning players are deciding to mod this game. This means there are a lot of people who are first-time modders or they assume Witcher 3 mods work like Skyrim mods (they don't).
This also means that mod authors are getting a lot of false-positive bug reports!
When it comes to Witcher 3 modding, you have to understand what each mod does; if 2 mods edit the same line of code or same XML file, you really should pick one or the other. This game is NOT Skyrim, you can't just throw a bunch of mods together and have it work.
Before submitting a bug report:
1. Read the mod description page of THIS MOD in it's entirety. Pay close attention to the install instructions, and compatibility notes.
2. Double-check the mod description page of your installed mods, and see if you've installed any mods which are known to be incompatible.
3. Once you have eliminated incompatible mods, you need to delete your "Merged Scripts" mod folder and re-run Script Merger.
4. If the issue persists after these steps, you then need isolate the issue by uninstalling all other mods (AKA, move your other mods to another folder temporarily)
If you have done all 4 steps, please submit a bug report!
A NOTE ON SCRIPT COMPILATION ERRORS
If you encounter a script compilation error, please do not submit a bug report. Script compilation errors can occur if you didn't merge the scripts correctly, or if you've installed an incompatible mod. Please delete your Merged Scripts folder entirely and try again. If the issue persists, then you for-sure have an incompatible mod installed.
All bug reports related to script compilation errors will be deleted.
Additionally, comments that report script compilation errors will also be deleted to prevent unnecessary clutter within the comments section.
(nothing personal, its just not an actual bug)