Summary: All tanneries in the world are starting to go bankrupt after 200 days, and are completely gone within another 50 or so days. Bankruptcy taking 200 days is due to a specific reason: all workshops start with 10000g in capital, and npcs pay 50g in wages per day to workers. So, 10000 / 50 = 200 days before running out of capital, which means that many of the tanneries are not even producing leather a single time. Here is a log of all the tanneries (and a few velvet weaveries) going bankrupt consecutively by using a tracepoint in a debugger at the DeclareBankruptcy line of the HandleDailyExpense method. Also, below to the right, is a screenshot of the dev console in game using the command "campaign.print_workshop_info" over time to show that tanneries are indeed disappearing.
There are two major causes of this. First, the base and luxury demand values for leather are set very low (2 and 4 respectively), and demand is a significant contributor to the price of goods. In fact, by modeling the price of hides and leather in a graphing program, you can see that the price of hides is always higher than leather when comparing similar quantities up until they intersect at a quantity of 70 or so (for 4000 prosperity). The screenshot below shows a graph of price vs quantity of hides and leather at a given prosperity. The model used is in the link. (I val = assigned item value in horses_and_others.xml, B and L stand for base and luxury demand respectively, Q = quantity, P = prosperity, S and D are supply and demand values).
The second major cause of this imbalance is that too many tanneries spawn at the start of a game due to a quirk in the workshop distribution formula. For the purpose of calculating the input density score of workshops in a town, hides are hardcoded to use a production rate of 3 per day, as shown in the screenshot below (FindTotalInputDensityScore).
Cow, sheep, and hog villages are all treated as hide producing villages for the purposes of workshop distribution in a newly created game. This results in a high distribution of tanneries because there are a large number animal producing villages around the world. As can be seen in the top right screenshot of the dev console, 32 tanneries spawned in a newly created game, many more than any other non-artisan workshop. The high amount of tanneries causes a surplus of leather to be created, which deflates the price of leather, making it difficult for workshops to turn a profit.
The result of these issues is that tanneries do not operate because they cannot turn a profit, and will eventually go bankrupt and switch productions. This leaves the world without dedicated sources of leather.
Hopefully all of that made sense, and this report wasn't too much of an overkill, lol. The price model can be used to tune other types of workshops as well, because many of them are struggling to turn a profit with the current balance. The model doesn't factor in item substitutions or trade penalties. It also assumes instantaneous changes to the supply value, rather than gradually over time, as it does in game.
As a side note, when workshops go bankrupt, some of them are incorrectly switching to artisans.
Tracepoint log in dnSpy debugger | Dev console workshop info command |
There are two major causes of this. First, the base and luxury demand values for leather are set very low (2 and 4 respectively), and demand is a significant contributor to the price of goods. In fact, by modeling the price of hides and leather in a graphing program, you can see that the price of hides is always higher than leather when comparing similar quantities up until they intersect at a quantity of 70 or so (for 4000 prosperity). The screenshot below shows a graph of price vs quantity of hides and leather at a given prosperity. The model used is in the link. (I val = assigned item value in horses_and_others.xml, B and L stand for base and luxury demand respectively, Q = quantity, P = prosperity, S and D are supply and demand values).
The second major cause of this imbalance is that too many tanneries spawn at the start of a game due to a quirk in the workshop distribution formula. For the purpose of calculating the input density score of workshops in a town, hides are hardcoded to use a production rate of 3 per day, as shown in the screenshot below (FindTotalInputDensityScore).
Cow, sheep, and hog villages are all treated as hide producing villages for the purposes of workshop distribution in a newly created game. This results in a high distribution of tanneries because there are a large number animal producing villages around the world. As can be seen in the top right screenshot of the dev console, 32 tanneries spawned in a newly created game, many more than any other non-artisan workshop. The high amount of tanneries causes a surplus of leather to be created, which deflates the price of leather, making it difficult for workshops to turn a profit.
The result of these issues is that tanneries do not operate because they cannot turn a profit, and will eventually go bankrupt and switch productions. This leaves the world without dedicated sources of leather.
Hopefully all of that made sense, and this report wasn't too much of an overkill, lol. The price model can be used to tune other types of workshops as well, because many of them are struggling to turn a profit with the current balance. The model doesn't factor in item substitutions or trade penalties. It also assumes instantaneous changes to the supply value, rather than gradually over time, as it does in game.
As a side note, when workshops go bankrupt, some of them are incorrectly switching to artisans.
Last edited by a moderator: