Latest version: ...

sha256/sha512
Dev Build (sha256/sha512)

A “Natural Grow” leveling mod where your attributes and level grow automatically as your skills increase, and your skills will also decay over time (optional).

OpenMW 0.49 or newer is required!

A changelog is available in the CHANGELOG.md file, and an FAQ in the FAQ.md file.

Features

How It Works

This mod blocks vanilla level up progress and instead does work under the hood to calculate its own.

Level Calculation

The player’s level increases as in vanilla, after 10 Major or Minor skill increases (unlike Greywander’s old version).

Attributes

Attribute values are calculated based on the value of governed skills. There is a spreadsheet included (00 Core/docs/ncgd profile.ods) that breaks down the relations between attributes and skills as well as their weights. Major and Minor skills have a greater impact on attribute growth than Misc skills.

Luck receives a special treatment, as no skill impacts it. A setting controls luck gains per level, at the expense of other attribute growths. The higher the luck growth, the higher the growth reduction of other attributes. That approach stays close to the Vanilla behavior, where increasing luck at a level up consumes one of the 3 available gains, and thus reduces the growth of other attributes.

Health

Player HP are based on:

Player starting HP are based on the following formula: endurance * 4/7 + strength * 2/7 + willpower * 1/7. This value can be reduced using the “Base and per level HP ratio” setting.

On each level up, a fraction of that formula is added to the player HP, depending on the “Per level HP gain” setting:

Magicka Refund

With the magicka refund feature, some amount of magicka will be returned after casting a spell (configurable via the script settings menu).

Skills

Multiple settings allow you to configure how skills increase and decrease. The vanilla gain factors applied from specialization and major/minor/misc skill profiles are applied on top of NCGDMW’s changes.

The mod operates using the skill progression interface. This means:

Please note: If you for whatever reason need to use the console to raise a skill, you can do as following:

  1. Press ` to bring down the console
  2. Use a MWScript skill mod, like player->setaxe 50 and press enter
  3. Press ` to hide the console
  4. Raises the stats menu so NCGDMW acknowledges the changes

Allowed skill IDs: acrobatics, alchemy, alteration, armorer, athletics, axe, block, bluntweapon, conjuration, destruction, enchant, handtohand, heavyarmor, illusion, lightarmor, longblade, marksman, mediumarmor, mercantile, mysticism, restoration, security, shortblade, sneak, spear, speechcraft, unarmored

Skill Gain Progressive Reduction

As skills gain levels, Vanilla Morrowind increases the skill gain progress requirement to reach next level, but it’s generally not enough, players get overpowered too quickly.

The Skill Gain Factor setting allows skill gains to be even more reduced. It allows you to define a factor applied to skill gains, either constant, or exponentially scaled on the skill level. In the settings page, you can play with this setting, and see how it affects skill gains thanks to a dedicated testing interface.

Skill Decay

The decay mechanic can be a nice way to balance the game and stave off becoming too powerful too quickly. Some things to keep in mind about this mechanic:

Skill decay affects attributes, which are dynamically updated (decreased or increased) according to their related skills.

Skill Uses Scaled Progression

20 skills get their progression scaled based on their success chance, their risk, their performance, or discovery and complexity level. The idea is to encourage the player to use the best of his skills, and to demotivate him from farming XP with too easy skill uses (e.g. 1 cost spells).

Check the setting page descriptions for more info on each approach and the affected skills.

Block Skill Increases From Books

If enabled, this feature does just what it says: You will no longer receive skill increases from reading books.

Carry Over Excess Skill Progress

With the vanilla Morrowind leveling, when a skill is increased, if there is any excess progress it is simply lost. When this feature is enabled, that excess progress is carried over toward the next increase.

Multi-school spells

When using a multi-school spell, NCGDMW will distribute the skill gain (XP) among all implied schools, proportionally to the theoretic individual cost of their respective effects.

The Stats Menu

By default, it has no keybinding, you can set that in the script settings menu: ESC >> Options >> Scripts >> NCGDMW Lua Edition >> Stats Menu Key

This menu will show information about all stats managed by this mod as well as other useful details. If displayed while the game is paused (e.g., you have some other UI up like inventory and use the stats menu key) you can mouse over fields and see a useful tooltip.

Player’s Profile Reset

If something went wrong with your player’s attributes, skills, health or active spells, you can manually reset your profile by proceeding as follows:

  1. Press ` to bring down the console
  2. Type luap and press enter
  3. Type I.NCGDMW.ResetStats() and press enter
  4. Type exit() to quit the Lua mode
  5. Exit the console, wait 2 seconds, and you should see NCGD popups informing you of the attributes updates and NCGDMW init finished
  6. Check your player’s profile and the stats menu to be sure everything went well

Installation

If you’re following a mod list on Modding-OpenMW.com then please refer to the list-specific instructions provided there.

For the skill training capper feature, we strongly advise you to enable OpenMW’s option “Trainers Choose Offered Skills by Base Value” in the launcher, or “trainers training skills based on base skill” in settings.cfg. Otherwise, you may get unexpected capping behaviors with trainers which have fortified skills, and particularly if you use the Better Merchants Skills mod.

NCGDMW Normal

For example:

data="C:\games\OpenMWMods\Leveling\ncgdmw-lua\00 Core"
data="C:\games\OpenMWMods\Leveling\ncgdmw-lua\01 NCGD - Normal"

content=ncgdmw.omwscripts
content=ncgdmw.omwaddon

NCGDMW Starwind

The “Starwind” setup is intended for use with Starwind.

For example:

data="C:\games\OpenMWMods\Leveling\ncgdmw-lua\00 Core"
data="C:\games\OpenMWMods\Leveling\ncgdmw-lua\01 NCGD - Starwind"

content=ncgdmw.omwscripts
content=ncgdmw_starwind.omwaddon

Saved Games Upgrade

If you’re upgrading from NCGDMW 3.2 or above, there is nothing to do, you can safely play with your existing saved games.

If you are upgrading from NCGDMW 3.1 or below, your player’s profile will be upgraded automatically when loading your saved game in order to:

NCGDMW will try to preserve your previous changes to attributes that are external to NCGD, for instance a strength gain of +2 given during a quest with a naked Nord.

You can check the detected base attributes and skills changes in the new stats menu. For attributes, it includes external changes and spells fortifications from abilities.

If the external changes are broken after the automatic upgrade, you can manually reset your profile by following the “Reset Player’s Profile” procedure described in next section.

If you remember the legit external attributes changes, you can manually apply them after the ResetStats command.

Example for the strength attribute and the +2 missing bonus:

  1. Open your player’s profile window
  2. Read and remember the attribute value you want to change, for instance strength is 37
  3. Open the console
  4. Type player->setstrength 39
  5. Open the stats menu so NCGDMW acknowledge the change

NCGD will now remember that bonus and preserve it during skill levels up.

Compatibility With Other Mods

Some mods out in the wild may produce unexpected behavior when used with NCGDMW Lua Edition. Please see the “Mod Conflict” tag on the project issue tracker for more information about known, unsolved cases of this.

Skill Used Handler Interoperability

NCGDMW offers an interface function which allows other mods to add their skill used handlers to NCGDMW’s handler chain. When NCGDMW is detected, use its interface, otherwise add the handler as usual.

Example:

local handler = function(skillId, params)
    -- your handler's code
end

if I.NCGDMW and I.NCGDMW.AddSkillUsedHandler then
    I.NCGDMW.AddSkillUsedHandler(handler)
else
    I.SkillProgression.addSkillUsedHandler(handler)
end

Those handlers are added just before the scaled handler, so they will be applied after the capper, uses and scaled handlers.

Skill Used Interoperability

If your mod uses I.SkillProgression.addSkillUsedHandler(), some NCGDMW’s handlers need to know they are executed from manual trigger, because they need situational information that won’t be available. To prevent Lua errors, please add a manual = true field to the options parameter.

Example:

I.SkillProgression.skillUsed(core.stats.Skill.records.unarmored.id, { scale = 1 / 8, useType = I.SkillProgression.SKILL_USE_TYPES.Armor_HitByOpponent, manual = true })

If a scale parameter is set, NCGDMW will use its “skill uses handler” gain and apply the scale on it. Or, if a skillGain parameter is set, it will overwrite NCGDMW’s “skill uses handler” gain.

If the skillUsed function is called from within a skill used handler, and you want to forward NCGDMW’s current gain scaling to the manually triggered skill used, use params.ncgdScale.

Example:

local handler = function(skillId, params)
    local ncgdScale = params.ncgdScale or 1
    if skillId == core.stats.Skill.records.heavyarmor.id then
        I.SkillProgression.skillUsed(core.stats.Skill.records.unarmored.id, { scale = ncgdScale * 1 / 8, useType = params.useType, manual = true })
    end
end

Known Compatibility Issues

Aside from what’s stated in the FAQ.md document about compatibility, there are some known issues with unknown causes out there.

How To Test This Mod

A simple plugin has been created that tests handling of external (non-NCGD) changes to stats. This can be found in the included test folder, add that as you could any other mod and load a test character to observe:

  1. Run OpenMW in test mode
  2. Press ` to bring down the console
  3. Use a MWScript skill mod, like player->setaxe 50 and press enter
  4. Press ` to hide the console
  5. Raises the stats menu so NCGDMW acknowledges the changes
  6. Do this a dozen or more times to see attributes recalculate and the player’s level increase

Localization

PT_BR: Karolz

DE: Atahualpa

ES: drumvee

FR: Rob from Rob’s Red Hot Spot

PL: emcek

RU: dmbaturin

SV: Lysol

Help Localize NCGDMW

Do you speak a language that’s not yet offered and want to contribute a new localization? Follow these steps:

  1. Download a release zip from this URL
  2. Open the 00 Core/l10n/NCGDMW/en.yaml file with your favorite text editor (Notepad++ is recommended for Windows)
  3. Update each line (the quoted part after the :) as desired
  4. Save the file with the name <CODE>.yaml, where <CODE> is the language code for the localization you’re adding
  5. Commit your change to git and open a merge request, or simply email the file to ncgdmw@modding-openmw.com with New NCGD Localization as the subject

Credits

This is a port of Greywander’s “Natural Character Growth and Decay - MW” mod for the OpenMW-Lua API. We’ve since extended it by adding new features and altering existing ones based on experience with what works and feedback.

Original concept, MWScript edition author

Greywander

Lua edition authors

Lua authors: EvilEye, johnnyhostile, Mehdi Yousfi-Monod

Original MBSP+Uncapper author: Phoenixwarrior7

Web

Connect

Planned Features