Skyrim Special Edition
0 of 0

File information

Last updated

Original upload

Created by

sasnikol

Uploaded by

sasnikol

Virus scan

Safe to use

Tags for this mod

About this mod

This mod fixes enchanting price formula, so that enchanted items won't become cheaper as you level Enchanting skill and allows uncapped skill levels to work properly.

Permissions and credits
Changelogs
Donations
Intro
Have you ever noticed that your enchantments become less and less valuable as you level Enchanting skill? This is something that once you see you can't unsee. Same happened to me while I've been reworking Enchanting Adjustments Updated, since the major update will take some time I decided to share this fix separately to make Enchanting a little bit better.

Description
For some reason Skyrim's formula for Enchantment Price is designed in a way that makes Enchanting skill negatively affect the result, so the more you enchant, the less valuable your Enchantments become. On top of this, that formula completely zeroes price at Enchanting = 200. While this isn't a big deal in Vanilla Skyrim, it certainly becomes annoying if you use Skyrim Uncapper (or NIHTweaks for AE players), because you can't really benefit from leveling Enchanting (it makes enchantments 1% stronger for every 4 levels of the skill (according to Skyrim:Enchanting - The Unofficial Elder Scrolls Pages (UESP))).

Not to be confused with Enchantment Cost Fix (or Enchantment Reload Fix).

The Fix
The mod utilizes Game Settings used in the formula to alter the effect of skill-dependent part of the formula.
It comes in two variants:

Fixed formula
Makes prices of enchantments independent from your Enchanting skill. It basically sets fEnchantingSkillCostBase game setting to 0, so only Enchantment's cost and used Soul Gem will affect the price.

Reversed formula
Makes prices of enchantments increase with your Enchanting skill level. 

This is relatively more complicated (but safe) variant that achieves its effect by continuously (every 2 seconds) adjusting fEnchantingSkillCostMult while you're in the enchanting menu and resets it back to default when you leave the enchanter. Recalculation is needed to correctly react when you increase the skill level while remaining inside the enchanting menu.While you're not enchanting something this mod does nothing. To accomplish this behavior, player is given a hidden perk with attached ability which activates itself only when player is using default enchanters. It is done via Conditions applied to the Magic Effect. So this should be as efficient as possible.

Additionally, Reversed formula decreases fEnchantingSkillCostBase game setting, in order to move the hard cap (see the diagram below) further. While the formula seems to no longer be affected by the cap, it actually still limits the range where reversed formula may exist due to the way it was implemented. (e.g. at the hard cap formula will stop correcting the price to avoid attempts to divide by 0 - we all know how this thing ends).

Default cap diagram:
Spoiler:  
Show




Increased cap diagram:
Spoiler:  
Show




The Math
(totally skippable if you're not into math)

Spoiler:  
Show

Original formula in question looks like the following:
fEnchantingSkillCostMult * (BaseEffectCost * SoulGemUsedCharges / GrandSoulGemCharges)^fEnchantingCostExponent * (1 - sqrt(skill*fEnchantingSkillCostBase)))
(more detailed description of the values used in the formula can be found here or here)

Blue part of the formula is essentially some constant value depending on what enchantment you're creating and what Soul Gem will be used.
Red part of the formula is exactly the reason as y = (1 - sqrt(ax)) is a decreasing function which makes the whole price formula also decreasing.
Green Part of the formula is a flat multiplier for the whole formula, which allows injecting of any arbitrary multiplier. This is used by Reversed formula to achieve the result.


Fixed Formula

This variant doesn't do much and only sets the fEnchantingSkillCostBase to 0:
fEnchantingSkillCostMult * (BaseEffectCost * SoulGemUsedCharges / GrandSoulGemCharges)^fEnchantingCostExponent * (1 - sqrt(skill*0)))

which after simplification becomes this:
fEnchantingSkillCostMult * (BaseEffectCost * SoulGemUsedCharges / GrandSoulGemCharges)^fEnchantingCostExponent

as you can see there is no longer a trace of skill level in the formula, the final price will result exclusively on an actual value of enchantment and the soul gem used in the process.


Reversed Formula

This variant utilizes fEnchantingSkillCostMult to inject multiplicative inverse of the Red part to completely negate the effect of the latter and then add alternative function for skill level (1 + sqrt(skill*fEnchantingSkillCostBase)) which is an increasing function. And to take this change into account it slightly modifies original fEnchantingSkillCostMult so that the Reversed formula will match the same price at Enchanting = 100.

The end result looks like this:
(fEnchantingSkillCostMult^0.75)*(1 + sqrt(skill*fEnchantingSkillCostBase)) * (BaseEffectCost * SoulGemUsedCharges / GrandSoulGemCharges)^fEnchantingCostExponent 

Here is an illustration that compares Vanilla, Fixed and Reversed formulas:
Spoiler:  
Show

This diagram illustrates how an arbitrary Enchantment with BaseEffectCost=157(can't remember which enchantment I took as example) will be priced throughout leveling Enchanting skill.



Check the interactive diagram here to see how formula behaves with various parameters.
Legend:
M: fEnchantingSkillCostMult 
b: BaseEffectCost
F: fEnchantingSkillCostBase 
E: fEnchantingCostExponent
Red: Vanilla formula
Blue: Fixed formula
Green
: Reversed formula
Black: Guidelines for Vanilla min (15) and max (100) skill levels

All values there have configured meaningful ranges, so you can see how certain changes will be reflected in the price.

Known Issues
Everything couldn't be that perfect, right... There are a couple of nuances with this whole price thing.
For Fixed Formula:
  • All enchanted items will become slightly (like 12%) more valuable, because it will always calculate the price as if your skill was 0. And since you normally never have a 0 skill you've never actually had "the full potential" of the price, but now you will.

For Reversed Formula:
  • Formula is still independent from actual enchantment's power (e.g. magnitude), so you might notice that the same enchantment you crafted at level 15 will cost more at level 40, even though they have the same magnitude and looks identical. But there is a catch :) see the issue below.

Common:
  • It seems that game recalculates prices for ALL enchanted gear created by you when you enchant a new item, so you might notice that enchantments you've created earlier will update their prices to match your current enchantment's prices. Presumably, this applies to the same enchantment, so, for example, all Fortify Alchemy enchantments will be updated with the price of your most recently created Fortify Alchemy enchantment. I didn't test that thoroughly, so there might be more to it.

Compatibility
  • Compatible with all enchantment mods, including but not limited to Summermyst and Thaumaturgy.
  • Compatible with all mods that add/remove enchanters in the world (e.g. adding object references) as well as retextures/re-models.
  • NOT compatible with mods that add completely new enchanter objects (instead of using default CraftingEnchantingWorkbenchTabletop "Arcane Enchanter" [FURN:000D5501] or CraftingEnchantingWorkbench "Arcane Enchanter" [FURN:000BAD0D]).
  • NOT compatible with either old Enchanting Adjustments and Price-Charge Bug Fix or Enchanting Adjustments Updated as it uses the same game settings to make prices be affected by actual enchantment's magnitude, but their solution works only for Vanilla Enchanting perks, and does not detect specific items perks (like Jewelry enchantments).
  • Mods that change settings used in formula (fEnchantingSkillCostMult, fEnchantingSkillCostBase, fEnchantingCostExponent) might break pricing so that everything will become ridiculously expensive or cheap.


Future plans
  • Upload this mod to other platforms, since it is SKSE-free.
  • This fix will become part of upcoming Enchanting Adjustments Remade (It also will remain available here for a time being).
  • I'm investigating ways for prices to scale with actual power of enchantment while still being compatible with everything. (spoiler: the only working solutions I've come up with won't be compatible and will require some patching with other alchemy/perk mods)