Morrowind
0 of 0

File information

Last updated

Original upload

Created by

mym

Uploaded by

mym

Virus scan

Safe to use

Tags for this mod

About this mod

This mod intends to fight Morrowind broken economy by boosting merchants mercantile and speechcraft skills.

It works with any merchant, vanilla or added, and it does not alter NPC's training skills.

Settings are provided to prevent very low selling prices on OpenMW and also to make bartering more difficult as the player levels

Requirements
Permissions and credits
Changelogs
Better Merchants Skills for OpenMW (BMSO)

OpenMW 0.49 or newer is required!

This mod intends to fight Morrowind broken economy by boosting merchants mercantile and speechcraft skills.

It works with any merchant, vanilla or added, and it does not alter NPC's training skills.

Settings are provided to prevent very low selling prices on OpenMW and also to make bartering more difficult as the player levels up.

Why

In Morrowind, many merchants have a low mercantile skill which allows the player to buy at low price and sell at high price and quickly become too rich, which ruins the experience.

Moreover, those merchants usually have a low speechcraft skill which makes it easy to persuade them in order to increase their disposition towards the player, which makes bartering even more lucrative.

HotFusion tackled that Morrowind flaw with Morrowind scripting, then other modders improved on that technique like BTB, Necrolesian and Rosynant.
Their fixes rely on Morrowind scripting which has limitations on when and how applying boosts.

My new Lua scripting approach is more dynamic:

  • doesn't require to alter NPC's or dialogue scripts
  • freely boost NPC's skills without altering their training skills, if any
  • works on any NPC (vanilla or added)

How it works

The boosts are applied dynamically when the player starts a dialogue with a merchant and are removed when the dialogue ends.

New skills value

The boosted skills value is base on NPC's level: "NPC level" * 4 + 20, and will be forced to be between 30 and 100.
If the merchant already have a skill value greater than the computed boost, then the boost won't do anything.

For some early high level merchants, like Arrille (level 15), I override their level with a lower value so early games won't be too hard on your wealth.

Mod settings page

You can limit the max NPC's mercantile value to not exceed a maximum difference with the player same skill with "Max mercantile difference with player" setting.
The default value of 60 should prevent the 1 gold selling bug many players encountered with OpenMW and economy mods. Set it to 100 for no limit.

The "Include player level to skills boost" allows you to improve merchants' mercantile and speechcraft skills as the player levels up, as if merchants were naturally improving their skills over time.
If that setting is enabled and the player level is greater than NPC's, then the "NPC level" factor is replaced by a weighted average on the player and NPC levels.
This should help reducing the player's wealth at high levels.

Example: with a setting value of 1/4, a player level 16 and a NPC level 8, the level factor will be (1/4)*16 + (3/4)*8 = 4 + 6 = 10, instead of 8, which will produce a greater boost.

Speechcraft special case

Because of current limitations with Lua scripting, it's not possible to detect when the player opens the persuasion dialogue: I cannot boost speechcraft at that moment.
Therefore, I would have to boost speechcraft before, when the first dialogue opens, but for merchants that are also trainers, that boost could change the training skills they offer.

So instead of boosting speechcraft, I boost the merchant personality up to a value that produces the exact same effect on persuasion attempts.

To compute the personality boost, I first compute the theoretical speechcraft boost and convert it to a personality boost according to the persuasion mechanism:

personality_boost = speechcraft_boost * fPersonalityMod

For simplicity’s sake, the settings page only talk about speechcraft, but the result is identical.

Boost application

When the player starts a dialogue with an NPC offering a barter service:

  • The mod computes potential skills boost for the NPC
  • The speechcraft (personality) boost is applied right away

When the player opens the barter dialogue:

  • The mercantile boost is applied
  • The personality attribute is restored

When the player closes the barter dialogue and returns to the main dialogue:

  • The mercantile skill is restored
  • The speechcraft (personality) boost is applied again

When the player leaves the NPC dialogue:

  • The personality attribute is restored

Full examples

Settings:

  • GMST fPersonalityMod = 5
  • BMSO "Max mercantile difference with player" = 60
  • BMSO "Include player level to skills boost" = 1/2

Player level 1 and Galbedir level 7, mercantile 10, speechcraft 48, personality 45

  • player talks to Galbedir
    • Compute max boost: 7 * 4 + 20 = 48
    • Potential boosts: mercantile 10 -> 48, speechcraft 6 -> 48, personality 45 -> 45 + (48-6)*5 = 255
    • Galbedir personality set to 255
  • player opens persuasion window and tries to persuade her, personality still at 255
  • player closes persuasion window and opens barter window: Galbedir mercantile set to 48, personality set to 45
  • player closes barter window: Galbedir mercantile set to 10, personality set to 255
  • player closes dialogue window, Galbedir personality set to 45

Player level 21, mercantile 5, and Arrille level 15, mercantile 20, speechcraft 45, personality 83

  • player talks to Arrille
    • Arrille temporary level set to 5, and boosted to 21/2 + 5/2 = 13
    • Compute max boost: 13 * 4 + 20 = 72, reduced to 65 for mercantile, as player mercantile 5 + max skill difference 60 = 65
    • Potential boosts: mercantile 20 -> 65, speechcraft 45 -> 72, personality 83 -> 83 + (72-45)*5 = 218
  • player opens barter window: Arrille mercantile set to 65, personality set to 218
  • player closes barter window: Arrille mercantile restored to 20
  • player closes dialogue window, Arrille personality set to 83

Compatibility

Requires OpenMW 0.49 because of the UI mode changed Lua event.

Should be compatible with anything as it is exclusively scripted, and original skills and attributes values are restored after NPC dialogues.

Load order should not have any impact on the mod.

Thanks to

  • Bethesda for creating Morrowind
  • OpenMW team for their great game engine and for adding so useful Lua bindings
  • Nexus for hosting most Morrowind mods
  • Rosynant for For the Right Price and the trick to prevent the 1 gold sell bug on OpenMW
  • Necrolesian for Economy Adjuster Adjustments
  • HotFusion and BTB for the original concept
  • johnnyhostile for the project structure, packaging scripts, all the Modding-OpenMW projects he created or contributes to, and for being nice
  • Seichyn for the idea to boost personality instead of speechcraft

Installation

  • Decompress the mod archive in a folder
  • In openmw.cfg
    • Add the full path to the "00 Core" directory as a data path
    • Add bmso.omwscripts as a content file

For example:

data="C:\games\OpenMWMods\Gameplay\bmso-lua\00 Core"
content=bmso.omwscripts


More info on how to install OpenMW mods here.

Update the mod

Just replace the mod files.

Uninstallation

Just remove the openmw.cfg entries, your game will be as before.

Repository

This is an open source project, check the repository.
Feel free to report issues or suggestions.