Talk:SetNthEffectItemMagnitude
Changing Enchantments on Equipped Items
From what I can tell if this is called on an enchantment on an item that is already equipped (at least by the player, I did not test NPCs), the item has to be unequipped and re-equipped in order for the new values to take effect. The same appears to be true with ModNthEffectItemMagnitude. This is not just a matter of waiting a few frames for it to update - the values on the player never update until the item is re-equipped. Equipping other items in different locations doesn't seem to have an effect. Can anyone confirm? And I'd love it if we could find a workaround.--Puf the majic dragon 18:24, 4 November 2009 (EST)
My results with this function seem to agree with you. I've tried changing the magnitude of an effect that was already being applied to the player (via an added ability-type spell) and the applied effect magnitude didn't change. In order for the change to register, I ended up needing to remove the effect and then add it again. TFM
For spell effects at least, I can confirm any changes made using this function via scripting will be forgotten once the player reloads the game. For example, you may have an Ability that checks if the player gained a level and then modifies the magnitude of all magic items of a certain spell to +1. This works fine while playing, but any changes will be completely erased and all effect values of the spell set back to mod default when player reloads a game. One possible efficient fix would be to hard-code the base value of the first effect of the spell you're monitoring to a local script variable. Then with this base value known and hard-coded in script, validate the value of the 1st effect item in the spell to see if it should match the player's current level, and if this value is less than it should be, then mod all effect item values to be current. --- 2011/12/19 8asrun6aer