Morrowind Formulae

General discussion regarding the OpenMW project.
For technical support, please use the Support subforum.
Post Reply
Posts: 18
Joined: 14 Jun 2016, 19:47

Morrowind Formulae

Post by BadWolf » 16 Feb 2017, 05:07

Am interested to know how Morrowind formulas work, specifically Sneak and Pickpocket. I found some formulas, but different sources contradict each other. I figured if anyone knows this stuff, it's OpenMW. Sharing the real formulas would be appreciated, along with how they were discovered. Also, very important is that some terms are not explained, which means they have no practical application. For example: there are no explanations in these links what int, min, fatigueBase, fatigueMult and PickPocketMod are.

I found how Sneak works in UESP. Pickpocket wasn't explained there, so I looked it up and discovered what might be the correct formula
here: ... 18884.html
The second comment contains it, and its source is: ... /itemValue
However, I also found a thread which contradicts these, having a formula which does take the weight of items into account. Here it is:

For those not interested in checking 3 websites, the first formulae:
Pickpocketing is a multi-stage process. Not all items in the NPC's inventory are available, depending on the initial rolls. There are checks on a steal attempt, and when the window is closed.

On initiating
for each item stack:
roll 100, stack is visible if roll <= pcSneak
On picking an item
fatigueTerm = fFatigueBase - fFatigueMult*(1 - normalisedFatigue)
where normalisedFatigue is a function of fatigue. empty fatigue bar -> 0.0, full fatigue bar -> 1.0
Note fatigueTerm is normally 1.25 at full fatigue.

checks the whole stack no matter how many you try to take
note: filled soulgems have the value of an empty soulgem due to a missing calculation
stackValue = itemValue * itemsInStack
valueTerm = 10 * fPickPocketMod * stackValue

x = (0.2 * pcAgility + 0.1 * pcLuck + pcSneak) * fatigueTerm
y = (valueTerm + npcSneak + 0.2 * npcAgilityTerm + 0.1 * npcLuckTerm) * npcFatigueTerm
t = x - y + x (yes, that's what it does)

if t < pcSneak / iPickMinChance:
roll 100, win if roll <= int(pcSneak / iPickMinChance)
t = min(iPickMaxChance, t)
roll 100, win if roll <= int(t)
On closing the pickpocket window
Same calculation as taking an item, but with valueTerm = 0

The stealing process is highly broken for most items; any item or stack of items worth over 100 septims has such a negative result that it is picked at minimum chance, and this is at maximum all stats. A player with stats around 50 is picking at minimum for anything valuable. The available items window is not reset after every successful steal, only when you close the window and retry the pickpocket.
Second formulae:
Enter/Leave inventory:
Player.Sneak > d100 + Victim.Sneak

Take items:
Player.Security > d100 + fPickPocketMod * item Weight
I also tried to find whether the Intelligence attribute plays a role in the cost of spells, mainly to check if playing a mage is actually viable without mods.

Posts: 54
Joined: 29 Jan 2016, 09:44

Re: Morrowind Formulae

Post by weedfreak » 16 Feb 2017, 10:43

From empirical testing I had long ago realised that pick pocket was broken in vanilla and is still so in openmw. To stand any reasonable chance you need a sneak skill of at least 80, mainly due to multiple checks being done and you only need to fail one to fail totally. To actually get something you also need about 80 security unless you restrict yourself to items regarded as weightless like gold or very light items like keys and gems.

User avatar
Posts: 703
Joined: 22 Feb 2016, 20:32

Re: Morrowind Formulae

Post by Capostrophic » 16 Feb 2017, 12:12

Morrowind ignores item weight, it's MCP which overhauls pickpocket mechanic to use weight instead of price.

The researched formulae used in OpenMW are generally found here on the wiki.

I tried to document the pickpocket mechanic used in OpenMW; you can read the result of my efforts here.

Post Reply