Documentation
Readme
View as plain text
Skill Increase GMST Fix
Author: Merzasphor
Version: 1.0
INDEX:
-> Requirements
-> Description
-> Installation
-> Using this Mod
-> Removal
-> Known Issues
-> Changelog
-> Incompatibilities & Save Game Warnings
-> Credits
-> License
-----------------------------------------------------------------------------------------------------
Requirements:
This is a MWSE-Lua mod, and requires MGE XE 0.10.1 or later with MWSE 2.1 or later.
-----------------------------------------------------------------------------------------------------
Description:
This mod fixes several engine bugs related to GMSTs used when raising skills via NPC training and
skill books.
When a skill is raised via practice the following GMSTs are applied:
If it's a major skill, the game adds iLevelupMajorMult to your progress to next level and
iLevelupMajorMultAttribute to your progress toward a level-up multiplier for that skill's governing
attribute.
If it's a minor skill, it uses iLevelupMinorMult and iLevelupMinorMultAttribute, respectively.
Miscellaneous skills don't add to level-up progress, but do add to the attribute multiplier, so
they just use iLevelupMiscMultAttriubte [sic].
Unfortunately, this is not how books and training are implemented. Instead, major skills use
iLevelupMinorMult for both level and attribute progress, and minor skills use iLevelupMajorMult
for both. Yes, they used the same value twice and got major and minor mixed up.
Does it matter? If you're playing a straight vanilla game, then it really doesn't and you don't
need this mod. All of the above mentioned GMSTs are 1 by default, so this bug doesn't have any
impact on how your character progresses. However, if you want to make or play a mod that tweaks
any of these values, you'll see very different behavior between skills that increase via practice
and those raised by training or books.
If you'd like to see this bug and the fix in action, there's a separate file with a test script
and plugin. It includes instructions that describe how to run the test. It is not necessary to
run the test at all, and if you're not interested you can safely ignore it.
Note for modders:
If you're developing a mod that adjusts any of the above values and you'd like to check that this
fix is present when your mod runs, you can do something like this with MWSE-lua:
local gmst_fix = include('merz.skill_increase_gmst_fix.interop')
if gmst_fix and gmst_fix.is_patched then
-- patch enabled
else
-- patch disabled
end
See the test package for an example of this in action.
-----------------------------------------------------------------------------------------------------
Installation:
Extract the archive into .\Data Files in your Morrowind installation
directory. The mod should contain the following files:
.\Data Files\MWSE\mods\merz\skill_increase_gmst_fix\mainl.lua
.\Data Files\MWSE\mods\merz\skill_increase_gmst_fix\interop.lua
.\Data Files\MWSE\mods\merz\skill_increase_gmst_fix\readme.txt
-----------------------------------------------------------------------------------------------------
Using this Mod:
There is no esp file to activate. Simply install the MWSE 2.1 and this mod, and load up an old or
new game.
-----------------------------------------------------------------------------------------------------
Removal:
Simply delete the .\Data Files\MWSE\mods\merz\skill_increase_gmst_fix folder.
-----------------------------------------------------------------------------------------------------
Known Issues:
None. Please report any issues on the Nexus page.
-----------------------------------------------------------------------------------------------------
Changelog:
1.0 [2020-05-13]:
* Initial release.
-----------------------------------------------------------------------------------------------------
Incompatibilities & Save Game Warnings
This mod does not alter the save game contents in any way, and is clean to run with any other known
mod. If a conflict is found, please report it on the Nexus.
-----------------------------------------------------------------------------------------------------
Credits:
Special thanks to all the MWSE developers past and present, especially NullCascade, Greatness7,
OperatorJack, and Petethegoat.
-----------------------------------------------------------------------------------------------------
License:
MIT License (https://opensource.org/licenses/MIT)
Copyright 2020 Merzasphor
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.