The Witcher 3

File information

Last updated

Original upload

Created by

Elquikiri

Uploaded by

elquikiri

Virus scan

Safe to use

Tags for this mod

About this mod

A full overhaul of the Witcher 3 economy mechanics. Fully customizable through in-game menus, it adds location specific pricing, regional market volatility, merchant interest in items, merchant funds customization, merchant daily re-funding, upgrades/repair/dismantle pricing, and more.

Requirements
Permissions and credits
Translations
  • Polish
  • German
Changelogs
Donations
Key Features

  • Fully customizable through in-game menus. Every modifier can be tweaked so the economy works however you think it should.
  • Mod can be enabled/disabled with a in-game menu on/off switch anytime. Does not alter saved games, so may be installed at anytime.
  • Set global Purchase and Sale Modifiers. These apply to all transactions universally.
  • Set regional Purchase and Sale Modifiers. White Orchard's local economy is different to that of Novigrad, or Skellige.
  • Set regional Market Volatility rates. Set a random percentage range that prices will fluctuate by in a given region.
  • Set Merchant Fund parameters, and how often they refresh their balance. Merchants refresh their funds incrementally day-by-day.
  • Merchants Liquidity Modifiers alter prices depending on Merchant's available funds. 
  • Optionally limit merchants to purchases only in their own sector. Crafters for crafting goods, alchemists for alchemy goods, etc.
  • Optionally set Merchant Purchase Interest by product type and merchant sector.
  • Optionally set Merchant Rarity Purchase Modifier for items. Legendary and precious items fetch a price premium.
  • Price modifiers based on Item Quality. Common/Master/Magic/Relic/Witcher
  • Economy Leveling System. Optional system for making the economy increasingly more challenging as your level increases.
  • Set Upgrade/Dismantle/Removal prices. Minimum price and per item modifiers.
  • Set Crafting Prices. Set as percentage of vanilla. Minimum price. And minimum threshold price based against current market value for crafted item.
  • Show Price Analysis in Tooltips. Base price, merchant price percentage of that price.
  • Optionally show CDPR vanilla price. Useful to compare with vanilla game.
  • Option to respect CDPR 'no sale' flag. Alternatively allow everything for sale.
  • Choose to make certain item types sellable. Quest items, Upgrades, Alchemical creations.
  • Two Settings Presets: Balanced for a 'kinda' fair balanced economy, and Zero for tweakers who want to set everything themselves from a neutral starting point.
  • No XML edits. Doesn't edit any of the game's XML definition files, so other mods that tailor the economy by altering those definitions are compatible.
  • Small public API with vanilla code. Compatible with a high number of other mods, including many favorites likes Friendly HUD and Friendly Stash.
  • French Translation. Thanks to Towairatu






Rationale

It started on my latest playthrough looking yet again at the Gold Ruby Ring with some stupid description like "Can be dismantled into parts, or sold for a significant sum". Which, as we all know, is total nonsense. The gold ring is not precious, there's no Gollum here. The Witcher 3 economy is weirdly unbalanced in numerous ways, for a lot of reasons: trying to be lore friendly, trying to be easy-playthrough friendly, restricting resources even though Geralt has access to insane amounts of precious items, etc. (I'm not blaming CDPR, I think they did great given so many conflicting constraints, constraints to which we modders are not bound). This mod isn't a panacea to all those problems, but what it does do is give you the fine-grained choice over how the economy should be setup, multiple realistic factors that affect the economy, and runs that economy in a predictable fashion. So you can make it ultra lore-friendly, where every merchant is a dyed-in-the-wool racist who's life mission is solely to screw Witchers out of every single crown they ever dare look at. Or, you can run a fair and balanced economy, where the amounts quoted in quests and in the story actually match what the economy is doing. Or something else entirely. The choice is yours...

Companion Mod

Real Economy was developed alongside its sister mod, Real Heavy. It is strongly encouraged that you use the two together. The Real Heavy mod gives you fine-grained control over Geralt's weight allowance. One of the primary issues with the Witcher 3 economy is the fact that Geralt, despite being just one man and his horse, is somehow able to pickup and transports multiple tons of equipment and supplies. It's not actually surprising that the vanilla economy gets unbalanced when Geralt can collect endless rusty Novigrad swords and somehow, despite not having a 6-wheel semi, is able to take all his ill-gotten loot to market. Or somehow carry 36 Steel Ingots, 24 Iron Ingots and enough Dimeritium Ingots to permanently eradicate magic from The Continent, in a single horse's saddlebags. Alternatively, since you set the parameters, you can decide that nothing weights anything at all, and let Geralt dance light as a pixie despite 1000 swords in his pockets. The choice is yours...





Changelog


Version 1.5.1

  • Bugfix: Version1.5.0 was originally released with a missing file, causing the Crafting Price controls to not function. If you downloaded v1.4.0 or v1.5.0 please upgrade to v1.5.1 - sorry for the trouble!
  • Added: French Translation. Huge Thanks to Towairatu!!
  • Added: Crossbow Bolt Modifier. Vanilla bolts prices are/were insane, this modifier (in the Rarity settings) gets them under control. (Thanks to xalamba for pointing this out)


Version 1.4.0

  • Added: Customizable Crafting Prices. See "Detailed Settings Information > Upgrades" section below for more information. (For kuczaja and Towairatu)
  • Added: Market Volatility rates now auto-refresh every 24 hours (of game time, compatible with mods which alter game time too).



Version 1.3.0

  • Fixed: Invisible Menus bug for players with language set other than English (HUGE thanks to BMN1337 for identifying the problem and solution!!).
  • Added: Menu settings to optionally show/hide the base price, price analysis, and vanilla prices in the inventory tooltips.(For Armitom)



Version 1.2.0

  • Added: New Leveling System that makes the economy increasingly more challenging as your level increases. (Optional, disabled by default). See the "Detailed Settings Information > Leveling" section below for more information. (Thanks to andyatcrux for helping develop the concept!).


Version 1.1.0

  • Added: New price modifiers based on Item Quality (Common, Master, Magic, Relic, and Witcher) to Rarity menu. (Thanks to korodik for the idea).
  • Added: Automated default settings system for initial installs and updating/adding new settings on version upgrade.
  • Added: Balanced preset for Item Quality modifiers - Common 0.85, Master 0.95, Magic 1.05, Relic 1.15, Witcher 1.2
  • Changed: Balanced preset's Legendary & Precious Rarity modifiers to compensate for new Item Quality modifiers.
  • Changed: Improved compatibility of FriendlyHUD auto-merge fix with wider range of mod setups.
  • Changed: Updated some of the menu settings labels to be clearer.
  • Fixed: Bug where controllers were not able to edit Global Purchase Modifier setting in Options menu.
  • Fixed: Bug which prevented sale of secondary weapons (axes, maces, etc) to Crafters when "Only sell to relevant merchants" was enabled.
  • Fixed: Bug where Allow Upgrade Sale set to True wasn't applied.
  • Removed: Requirement for appending to user.settings on install for default settings. Now handled automatically by new settings system.


Version 1.0.0

  • Initial Release






Installation

Simple Install / Uninstall    [RECOMMENDED]

  • Use the Witcher 3 Mod Manager. This will install the mod, the in-game menus and the default settings in a single click. 
  • If you have other mods that alter scripts, run Script Merger to resolve any conflicts.


Manual Install

  • Unzip the modRealEconomy.zip file to the Desktop.
  • Identify your Witcher 3 game installation folder. This is your root folder. Usually something like C:\Games\GOG\The Witcher 3 Wild Hunt\
  • Create a Mods/ folder in your Wither 3 root folder if one doesn't already exist. e.g. C:\Games\GOG\The Witcher 3 Wild Hunt\Mods
  • Copy modRealEconomy/ directory in your Mods/ directory.
  • Copy modRealEconomy/bin/config/r4game/user_config_matrix_/pc/modRealEconomyMenu.xml to your Witcher 3 root folder's /bin/config/r4game/user_config_matrix_/pc/ directory.
  • If you have other mods that alter scripts, run Script Merger to resolve any conflicts.


Manual Uninstall

  • Do the reverse of the manual installation, obviously.


Requirements

Community Patch - Base is required. If you have the older Unification Patch already installed (or just prefer that mod) then it will work perfectly well instead, do not install both, you only need one of them.






Upgrading from previous versions

Real Economy now has its own settings manager built-in, so it can add new settings with their default values without messing with your existing custom settings. Therefore it is now safe to uninstall and reinstall using the Witcher 3 Mod Manager without touching your user.settings file or other manual intervention

Simple Upgrade (using Witcher 3 Mod Manager)

  • Remove existing Real Economy mod in Witcher 3 Mod Manager (click the remove button)
  • Add new Real Economy v1.x.x mod in Witcher 3 Mod Manager (click add and pick the ZIP file)
  • Run Script Merger (to fix any conflicts with other mods)
  • Start the game and tweak the settings how you want

Manual Upgrade

  • Backup C:\Users\USERNAME\Documents\The Witcher 3\user.settings (just in case, this contains all your existing settings)
  • Unzip the RealEconomy_v1.x.x.zip to the Desktop
  • Copy modRealEconomy/ directory into YourWitcher3GameFolder/mods (overwriting your existing modRealEconomy directory)
  • Copy modRealEconomy/bin/ directory to YourWitcher3GameFolder (overwriting your existing modRealEconomyMenu.xml file)
  • Run Script Merger
  • Start the game and check the settings are as you want them to be






Translators Wanted!

If you can translate from English to your native language, and are willing to do so, the "localization/en.strings.csv" file is waiting for you! I (and your fellow language speakers) would be hugely grateful for your efforts. Just translate the file's English text in the final field into clear, concise equivalent in your language and send me a PM, or leave a note in the Posts tab. Thank You!





Problems? Questions? Suggestions?

Bugs and other errors should be put in the Bugs tab, not the Posts tab. Issues are 10,000% more likely to be addressed if you follow this simple instruction. Bug reports in the Posts tab will be ignored at my whim :) Questions, suggestions, and comments are all very welcome in the Posts tab!





Future Plans

  • Add favorable rates from merchants who you help in the game and so promise to give you good deals. There are multiple merchants who you help in some way or another who promise to give you great deals as a reward, however they never do. Adding a specific modifier for sale and purchase bonuses for such merchants is now trivial given the structure of the Real Economy mod. The problem comes in identifying in code which these merchants actually are. I need to hunt through the code and see if there are tags left by CDPR that identify these merchants (hopefully!), if not then on my next play through I would need to keep note of these merchants, find their IDs, and create a whitelist to check against. Anyone with any useful information on this problem, please leave a note in the Posts tab, thanks!
  • Figure out if there are additional categories of Rare items that can be added to the Rarity modifiers. Perhaps fine-grain this to things like Relics, Witcher gear, etc. DONE! Added Item Rarity modifiers in v1.1.0 - still keep an eye open for additional rarity categories though
  • Figure out if there is more fine-tuning that can be done to the Merchant Interest algorithm. These are generally parings between types of merchants, and types of item.






Detailed Settings Information

IMPORTANT: A modifier is a decimal that is multiplied by to arrive at a new amount. 1.0 means no change, since multiplying something by 1 is itself. A modifier of 0.5 is half the original value, a modifier of 2.0 is double the original value. So, for example, setting a Global Merchant Sale Modifier of 1.1 would result in merchant's offering an item for sale at 10% above its base value.



Options

Enable Real Economy Mod
Switches the mod on/off. When set to off NO MOD CODE  is run at all, everything is CDPR vanilla. So you do not need to uninstall the mod to revert to vanilla behavior (for example for saved games where you don't want Real Economy), toggle this switch and the only code run is vanilla.

Global Merchant Sale Modifier
A modifier that is applied to all merchant sale prices. This should be kept reasonably low, since it will be applied in conjunction with all the other relevant modifiers, so if you set this too high, prices will tend to spiral very high. e.g. 1.2 means merchants sell items with a global markup of 20%.

Global Merchant Purchase Offer Modifier
A modifier that is applied to all prices merchants offer to buy an item from you for. e.g. 0.8 means that merchants offer to buy your items at 80% of their base price.

Show base price in tooltips
Shows the base item price (before any merchant markup/markdown) in the inventory tooltip. For instance: 5(20) [4] shows a final price of 5, you have 4 of them in your inventory so they are worth 20 in total, and the base price is 4 (so the merchant is selling them at a 25% markup. See price analysis setting below for automatic calculation of the price difference.

Show price analysis in tooltips
Shows the percentage value difference from the base price of an item, compared with how much the merchant is selling/offering for it. e.g. 30 [20 @ 150%] shows the sale price as 30, which is 150% of the base price of 20

Show vanilla prices in tooltips
Adds the CDPR vanilla price for an item to the tooltip. e.g. 15 [V: 7]  The vanilla price shown is the calculated price, so within a shop, it shows the price that the merchant would be selling it for in vanilla. Likewise, when selling an item, it shows the price you would have got in vanilla. Maybe used separately from the base price and analysis settings. If used together with them, the vanilla price will be appended at the end, e.g. 30 [20 @ 150%, V: 43] NOTE: Any negative vanilla value shown (when you're selling an item) means that CDPR calculated the item as not for sale in that instance.

Respect vanilla 'No Sale' flags
CDPR marks certain items as 'no_sale' within the code, enabling this option respects that marking and makes them unable to be sold.

Can sell Quest items
Similar to above, this makes items marked as Quest Items by CDPR able/unable to be sold.

Can sell Upgrades
Enables/disables the ability to sell Upgrades (Stribog, Dazhbog runestones etc). Upgrade runestones have a very high base price in the definition files, I think so that they're prohibitively expensive to buy from merchants. Disabling this setting means you won't be able to sell any upgrades. Enabling it can quickly unbalance the entire economy since you can just sell upgrades and quickly gain thousands of crowns from just looting a few random crates.

Can sell brewed alchemy items (oils, potions, bombs, etc)
Enables/disables the ability to sell brewed alchemical items. This is also affected by the Only Relevant Merchants Interested in Buying Items option in Merchant Interest section.

Store Market Volatility in Save Game
If enabled this will store the generated market volatility rate for a region to the save game so it persists across reloads. If disabled a fresh market volatility rate will be generated upon each save game load.

Debug Mode (Log calculations to the Scripts Log)
If enabled the mod will write details of the calculations used to determine prices to the scriptslog.txt file. Requires Witcher3.exe to be started with -debugscripts flag set. (The debug info is rather spartan at the moment, I need to expand it out to so it's clearer to understand).



Locations

REGION Sale Modifier
A modifier for all items for sale by merchants in REGION.

REGION Purchase Modifier
A modifier for all item prices that merchants offer you for your items in REGION .

REGION Market Volatility
A percentage up to which prices in REGION  will randomly fluctuate, a high percentage modelling a higher market volatility. 



Merchant Funds

Merchant Base Balance
Base balance for all merchants. Actual base balance for a particular merchant will be randomized from these figures. Merchants come in 5 classes, from Poor to Rich. Each class of merchant gains an extra step of funds. So if poor merchants have a base balance of 500, and a Merchant Class Step Multiplier of 2 is set, each higher merchant class will have: 1000, 1500, 2000, 2500 crowns as their base balance.

Merchant Class Step Multiplier
See Merchant Base Balance description.

Merchant Max Balance Multiple
Maximum amount an individual merchant's balance may differ from its class' base balance. The actual balance is a random amount between the base balance value, and its multiple by this value.

Merchant Days to Refresh Funds
How many days it takes to refresh a merchant's balance to its base balance. Re-funding happens incrementally over these days, so if set to 7 days, each day's refund will be larger than if it's set to 14 days.

Merchant Modifier at 10%/20%/30%70% Funds
A modifier to dampen a merchants' interest in purchasing an item when their funds are less than 10%/20%/30%70% of their base balance. i.e. When they only have 10%/20%/30%70% of their funds left.

Merchant Modifier when Rich
A modifier to alter a merchants' interest in purchasing an item when their funds are at 70% or more of their base value. i.e. When they're feeling wealthy.



Merchant Interest

IMPORTANT: These modifiers apply to both purchase and sale prices. The reasoning being that a merchant who deals in a specific item might pay more to purchase such items, but they would also sell them for more since its' their primary market sector. May be subject to change in the future if I can work out a better way to handle this.

Only relevant merchants interested in buying items
Items will only be available to sell to merchants of the right class. e.g. Crafters, Alchemists, Generalists, Specialists, etc.

Crafter Interest in Equipment
A modifier applied to Blacksmiths and Armorers' price for Weapons, Armors, Repair Kits, Horse Items, Upgrades, and Schematics.

Crafter Interest in Secondary Equipment
Same above above but for crafting ingredients and secondary level weapons.

Alchemy Related Interest
A modifier applied to Alchemists, Herbalists, and Enchanters' price for Alchemy Ingredients, Alchemy Items, Upgrades, Trophies, Potions and Oils.

Books Interest
A modifier applied to Book Dealers and Collectors' price for Books and Crafting Ingredients.

Trophies Interest
A modifier applied to Collectors' price for Trophies.

Velen Interest in Food
A modifier applied to all purchases of Food in Velen (they're starving after all!).

Dyes Interest
A modifier applied to Shops that deal in Dyes.

General Junk Interest
A modifier applied to Generalists' price for Junk items.



Rarity

Merchant/Crafter Modifier for Legendary Gear
A modifier for how much merchants value legendary level gear. Remember, legendary gear trades are constrained to only Blacksmiths and Armorers if Only relevant merchants interested in buying items is enabled.

Merchant Modifier for Precious Items
A modifier for how much merchants value precious items.

Merchant Sale Modifier for Gwent Cards
A modifier for how much Gwent Cards are offered for sale. This usually should be set to be less than 1.0 as the base price of Gwent Cards and the other price calculations will otherwise make them more expensive than vanilla. CDPR account for this somewhere in their internal economy calculations. Without a dampening modifier applied, Gwent Cards (especially in White Orchard) can become prohibitively expensive.

Crossbow Bolt Modifier
The vanilla CDPR prices for individual crossbow bolts are insane (100+ crowns!). This modifier reduces the price of bolts both sold by merchants, and if you sell yours to merchants. A modifier of about 0.05 (5%) is usually about best.

Common/Master/Magic/Relic/Witcher Item Modifier
A modifier based on an item's quality: Common/Master/Magic/Relic/Witcher. This affects both sales and purchases. NOTE: the Merchant/Crafter Modifier for Legendary Gear setting above will also influence applicable prices if set.



Upgrades

Crafting Price Modifier
Modifier for the vanilla crafting cost. So 0.5 would set crafting prices at 50% of vanilla, setting it to 2.0 would set crafting prices at double (i.e. 200%) of vanilla.

Crafting To Sale Price Threshold
Modifier for the minimum crafting cost based on the current market value of the item. So if a Viper Silver Sword currently costs around 200 crowns (with all the various economic factors of region, level, etc) setting this to 0.5 (i.e. 50%) would mean the minimum price to craft a Viper Silver Sword would be 100 crowns. If you don't want this mechanic active just set this to zero and it'll disable it from calculations.

Crafting Minimum Price
The minimum price for any item to be crafted. This will apply especially when crafting low cost items.

Dismantle Price Modifier (% of item value)
The percentage value of an item it costs to dismantle it for components.

Dismantle Minimum Price
The minimum price for any item to be dismantled. This will apply especially when dismantling low cost items.

Repair Price Modifier (% of item value)
The percentage value of an item it costs to have it repaired.

Repair Minimum Price
The minimum price for any item to be repaired.

Repair Price per Damage
The repair price per percentage of damage received by the item. This is on top of the Repair Price Modifier.

Remove Upgrades Modifier (% of item value)
The percentage value of an item to have any upgrades removed from it.

Remove Upgrades Minimum Price
The minimum price for any item to have any upgrades removed from it.



Leveling

Leveling System Enabled
Disabled by default. Enabling it will make the economy become more challenging over time as your level rises, controlled by the settings below. Can be enabled/disabled at any time without affecting your saved games.

Final Level Modifier
This is the price modifier that will be applied in full when you reach your Final Level Target (below). For levels after your Final Level Target the modifier remains constant at whatever this is set to.

Final Level Target
The level at which your Final Level Modifier will max out. Up until that level, for each level you advance a percentage of that modifier (controlled by the Leveling Difficulty below) will be applied to the economy (both your purchases and your sales). When you reach this level, and for levels after it, the full amount of the Final Level Modifier will be applied to all prices.

Leveling Difficulty
Hard, Medium, or Soft. How quickly your Final Level Modifier is applied as you rise through levels. Hard kicks in straightaway, Medium a small ease in, Soft a gentle ease in. See the graph in the mod images for a visual representation.





Integration with Other Mods

Real Economy tries to maintain a low impact on vanilla source code files, doing most of its work in its own files, to try to minimize conflicts with other mods. However, given the overlap between some mods, conflicts are sometimes inevitable. Script Merger should be able to handle most of them, in the rare case in which you have to manually resolve the conflict all Real Economy code is marked with // ModRealEconomy++ and // ModRealEconomy-- markers. Code within these markers should remain intact as a single block in order for Real Economy to function. Likewise, other mods' code, and vanilla CDPR code, should not be mixed into these sections to allow for their proper operation too.

There was a conflict with FriendlyHUD, and however I configured the lines I couldn't get KDiff/ScriptMerger to cleanly auto-resolve the conflict. So as a solution I've simply included the lines from FriendlyHUD into RealEconomy but wrapped above and below in comments, and now it cleanly auto-merges. Don't worry, the functionality of FriendlyHUD isn't impacted, it was just code for the tooltip price analysis, a feature that's already built into Real Economy. (In case anyone wonders why there's FriendlyHUD code in ModRealEconomy's code! :)

Real Economy is known to work alongside the following mods (because I run them all together on my own setup):Friendly HUD, Friendly Meditation, Friendly Stash, W3Redux Realtime GamePad Controls, ImmersiveCam (et al), and many, many others. So far Real Economy auto-merges with every mod I've tried it against (I'm running 100+ mods).


A Note for FriendlyHUD Users

If you are using FriendlyHUD, disable the option to Show Item Price Comparison in its Inventory settings. A similar feature is already built into Real Economy, and FriendlyHUD's version won't be able to report the correct price calculated by RealEconomy (why would it, it's working with vanilla prices). Additionally, if you want to see the vanilla CDPR calculated price in the inventory tooltip, see Show vanilla prices in tooltips in the Options section.





Additional Things

Console Commands

marketvol()
Displays the current market volatility percentage rate for the region you are in.





Thanks

CDPR - For making the best game ever, and then letting us mere mortals hack away on it :) Thank you!

Wasteland Ghost (wghost81) - For all her amazing Witcher 3 mods, which inspired me to try modding in the first place. Thank You!





That's all Folks!