Well, I'm working on a mod on rebalancing the whole economy of Morrowind and making the money something valuable, then add new ways to make money. I'll probably have many questions while I work on this project. My first one is the exact formula for calculating buying/selling prices. Can I change the effect of disposition on trade? Does the personality of the PC or the NPC have any effect? How does the mercantile skill exactly influence trade? If there are no known exact formulae, what level of mercantile is needed for common merchants so that they sell the items 3 times the price they buy them? Thanks!
I found a mod that has tried to deal with the issue, but it needs a dialogue script to be run for each merchant, which means a new game must be started so that the changes take effect. (The script changes the mercantile and speechcraft skills of the merchants) Would it work without needing a new game if I just went on and manually changed the mercantile skill of every service provider on Tamriel? And would it create conflicts with other mods?

And one question still remains: Can I change the effect of disposition on trade?

For those who are interested here are some statistics I found: (by HotFusion)

CODE
The changes made to Mercantile were based on careful measurement of the effects of a merchant's mercantile skill on the offers that he makes.  The follwong tables list what prices a merchant of a given skill was willibg to offer for both the sale and purchase of a 100 septim pearl. Measurements were taken with a character with a personality and luck of 40.  Disposition was 45 in all cases.  The player's mercantile score was varied, as shown on the tables.




Merchant Mercantile 5
        Buy Offer    Sell Offer
PC Merc.
20        95        54
40        81        67
60        70        70
80        57        57
100        45        45    

Merchant Mercantile 20
        Buy Offer    Sell Offer
PC Merc.
20        104        45
40        91        58
60        79        70
80        66        66
100        54        54

Believe it or not, most merchants' mercantile score range from between 5 and 20, so this data is representative of how commerce works for the majority of the game.  Notice how plaeyr mercantile scores of greater than 60 actually lead to a decrease in purchase offers.  This is the infamous "mercantile bug" (although we'll see in a moment that it's not really a bug with the mercantile skill itself).  Since the player spends a lot more time selling than buying, this means that a high mercantile score actually puts the player at a disadvantage, an annoying outcome.

Also, be aware that through haggling, you can easily alter the prices given above by about 10% in your favor.  This means that when the buy and sell prices are close together, the player can actually make money by simply trading the same item back and forth with the merchant, whom stupidly keeps buying the item at a higher price than he sells it.

Merchant Mercantile 40
        Buy Offer    Sell Offer
PC Merc.
20        123        26
40        110        39
60        98        51
80        85        64
100        73        73

Something interesting happens somewhere around a skill of 40.  The "mercantile bug" dissappears!  A higher merc score for the player always results in better prices when dealing with a reasonably skilled merchant.  

Conclusion:  To make mercantile a viable player skill, most merchants must have a minimum mercantile score of about 30-40.

Merchant Mercantile 60
        Buy Offer    Sell Offer
PC Merc.
20        129        20
40        116        33
60        104        45
80        91        58
100        79        70

At a skill 60, the merchant is starting to hold his own, although a PC with a skill of around 100 can still extort infinite money out of him by exploiting the back-and-forth bug.

Merchant Mercantile 80
        Buy Offer    Sell Offer
PC Merc.
20        141        8
40        129        20
60        116        33
80        104        45
100        91        58

Merchant Mercantile 100
        Buy Offer    Sell Offer
PC Merc.
20        154        1
40        141        8
60        129        20
80        116        33
100        104        45


At the higher end of the skill scale, the merchant becomes a brutal businessman.  No amount of haggling can force the merchant to buy and sell at a loss.  A truly skilled PC can force the merchant to meet him midway in the price range, but beginning PCs will be blown out of the water.

Conclusions: A minimum score of about 30 is neccessary to avoid the mercantile bug, but higher values are desirable, becasue they eliminate the back-and-forth exploit, and generally make the merchants sharper businessmen.  However, it is also desirable to still have a substantial number of weaker merchants, or beginning PCs will never be able to get up off the ground.

The effects of Disposition were also measured.  The same skill 100 merchant was tested again, this time after having had his diposition raised to 100:

        Buy Offer    Sell Offer
PC Merc.
20        120        30
40        107        42
60        95        67        
100        70        70

The effects are similar to what would have happened if the merchant had lost about 60 points off of his skill.  Notice that it is now possible for the player to extort an infinite amount of money out of the merchant by trading a single item back and forth.
fReputationMod = 1.0000
fDispositionMod = 1.0000
fDispBargainSuccessMod = 1.0000
FDispFactionRankBase = 1.0000

I suspect the third one to be the modifier that defines the impact of disposition on trade but I don't know how it works. Any ideas?
fDispBargainSuccessMod doesn't affect the trade in any way, it merely affects how much better the trader likes you after you've conducted business with him.
i don't know the technical stuff behind this. i wanted to cheer you on though. hurray!!! go team go!!!

something that needs adjusting is, the sell one piece of junk to up the dispos of the buyer, then dump the expensive lovelies when his dispos is 100. if i were able, i would set the increase dispos thingy to 0, and control it though a script. perhaps have the control factor be quality instead of quantity. so 1000 pieces of junk will net you the same dispos increase as one 1000 septim item. i don't know if running a local or global like this would slow the game down or not. i assume this can be done with a local that perhaps references a global or something.

if a merchant has a mercantile of 100 things get very wonky. his offering price is pennies and forces the player to actually use haggle to get a reasonable price. since the haggle interface is incremental and you can't just type in the value, this becomes a button holding pain in the guar. especially with the expensive armor type stuff. i would be happy to do business with a scripted 'collector' that pays me a flat rate that isn't top septim yet isn't low value either. something like a percentage of my merc, his merc, dispos and item value. - note, i put in traders with 100 merc when i want to play a poor character that isn't a haggler. i get low money for big items.

i guess anyhing that effects an NPC's dispos would effect trading. so i think race and faction fall into it. bounties, vampirism, nakedness(?) - there is an order in which things are referenced that is controlled by the dialogue filtering. i wonder if that can be exploited somehow.

check out the stuff at mythic mods. they have a lot of realism econo things. also check out the archives there. there is some techy talk about limitations and some good ideas. one example is random trader gold. great idea but the variable isn't accessible. so no. too bad.

more cheerleading...yeah!!!!

I will make that bargain modifier thingie equal to zero as you say. It's stupid that a merchant will like you more if you buy and sell a corkbulb root 20 times in which you'll lose no money. My only setback at this point is to cover the disposition change of the merchants. By increasing their speechcraft, I can make it nigh impossible to raise your disposition through bribes&persuasion. By changing one of the globals up there, I guess I can lower the faction bonus which becomes 100 pretty easily. Charm spell is rarely used and isn't worth the effort anyway. The only bug I couldn't fix was one found by me smile.gif I create a spell that fortifies Personality on self by 100 for 1 secs and ta da! You got yourself a 100 disposition by spending 10 or less magicka. Any ideas on how I can stop this?

I'd be extremely happy if someone would also tell me what exactly these globals do:

fReputationMod = 1.0000
fDispositionMod = 1.0000
fDispBargainSuccessMod = 1.0000
FDispFactionRankBase = 1.0000

And lastly, is there a way that I can change a global like these on the run? I want to increase the siltstrider fares according to the encumbrence of the player. I want it to be the normal price + some set price times the encumbrence of the player. Normally it's 400. I want it to be 800 + Encumbrence x 10. Can someone help me with doing such a script? I want a similar one for guild guides, too (it goes inversely, so the mathematical formula will be somewhat strange)

Hmm, lets say the character weighs 100 and has 50 enc. That should cost 10 times more than usual for my mod.

50 enc -> 10 times the normal price -> modifier should be changed from 100 to 10
200 enc -> 20 times the normal price -> modifier should be changed from 100 to 5
500 enc -> 40 times the normal price -> modifier should be changed from 100 to 2.5

I'd say pricechanger = 10 x ((100 + enc) / 150)
Then Global = 100 / pricechanger

But I still don't know how to change this global on the run, or even if that's possible.
Bump
I'm reducing the questions to one question. There are some modifiers like "fDispBargainSuccessMod" and such. Can I change these on the run?
Now that I have the time to work on modding, can someone please try to answer some of my earlier questions if possible? That would be wonderful.
QUOTE(Solmyr @ Feb 18 2007, 07:33 PM) *
fReputationMod = 1.0000
fDispositionMod = 1.0000
fDispBargainSuccessMod = 1.0000
FDispFactionRankBase = 1.0000


fRep.... mods price based on characters reputation. Higher the rep, the higher price you get for selling, lower for buying.
FDispo..... mods priced based on the merchants disposition towards the player, the more he likes you, the better prices you will get.
fDipBarg.... the amount the merchants disposition is modified for a successful bargaining session.
FDispFac..... If you are in the same faction, a higher rank, will give you a better deal. (as compared to the merchants? or simply being higher ranking in whatever guild, I am unsure....)

To test if you can change these "on the fly", go into the game, (playing) and try them in the console.

set freputationmod to .9

and see if it works. If it does, then you should be able to do the same thing in a script.
QUOTE(Solmyr @ Mar 3 2007, 02:31 PM) *
I'm reducing the questions to one question. There are some modifiers like "fDispBargainSuccessMod" and such. Can I change these on the run?
With the standard scripting engine, no. With the external scripting expander/extender, I don't know.
QUOTE(abot @ Jun 17 2007, 07:03 PM) *
With the standard scripting engine, no. With the external scripting expander/extender, I don't know.

I don't think you can change GMSTs with any script extenders either.
Is is possible to create a ini file and load that into morrowind by an external program?
Something similar is done in oblivion by the mod supreme magic, were several magic based gmsts are being set.

Or if it is not possible, is it then possible to add such a function to, say MWSE?
QUOTE(Marduc @ Jun 17 2007, 08:25 PM) *
Is is possible to create a ini file and load that into morrowind by an external program?
Something similar is done in oblivion by the mod supreme magic, were several magic based gmsts are being set.

Or if it is not possible, is it then possible to add such a function to, say MWSE?


So far as I know, there is no way to force Morrowind to reload the .ini. But, I am certainly not an authority.

For added functionality request for MWSE, you can register, and post Here. TP21 has done the most lately with adding functionality, and you could conceiveably PM him here. But, last I heard, he was quite busy with exams, so, I do not know when he will be available.
QUOTE(Yacoby @ Jun 17 2007, 11:14 AM) *
I don't think you can change GMSTs with any script extenders either.


You can change GMST's in the CS. go to gameplay then settings and then click (can be hard to find the right type of click since it is a funny one), the one you want to change. then enter the value. I have done this to change the respawning time for plants, and that worked so that should work. Nice info about the mercantile bug I have noticed that and found it really really irritating but didn't know what it was.

Submit a Thread