1.7.0 Adds initial controller support. Please let me know if something doesn't work as expected. ---
1.3.0 Adds initial multiplayer support! I tried testing what scenarios I could think of but I'm sure I missed several. Please let me know if you encounter any issues.
If you experience de-sync I suggest having clients first attempting a re-connection as that should hopefully fix things. If not, having the host reset the economy either through the console or the mod config menu may get things working again (I'd recommend doing this at the change of a season or performing it multiple times so your planted crops have a similar supply)
I'm blown away at all the positive feedback and interest this has received. Thanks to everyone who has given it a shot :-)
Hi! I just wanna say, I love this mod, and I will continue to play with it in the state that it is but still wanted to point out that in some cases Cornucopia artisan goods, and most likely other modded ones, still don't follow the supply of it's ingridients and go after their own. Dried herbs, flowers and vegetables work as expected, as does essential oils and pickled fish. Also, most unique artisan goods (not the generic ones that take after the color and flavor of ingredient used) ie chili oil, avocado mayonnaise, smoked salmon (the one you make in the deluxe smoker, not the vanilla item), garum etc... follow the supply of the ingridient required, ie hot pepper, avocado, salmon, sardine etc...
The ones I have found that don't work are the rest of the ones that copy the input: smoked egg, smoked meat, pickled eggs, wax melts, candles, flavored yogurt, nut butters (except peanut butter) and probably something else I missed. Also Dried Squid for some reason.
Also none of the noodles match to the supply of their original ingredient, but honestly I didn't expect as much as they first need to be turned into flour and flour has no supply.
I know some people prefer the artisan goods supply being disconnected from their base ingredient supply, but I just got a little bit sad when my smoked meat was less valuable than the meat I put in and thought I'd report it if it wasn't already known.
Thanks for the report! I was unaware of wide sweeping remaining incompatibilities. I will have to look how cornucopia artisan goods handle those smoked items etc.
Regarding noodles, I would expect you would have to enable whatever category flour is in for the mod to pick up that they should all be linked together.
I think they are basic, like most other cooking ingredients. I'm not really bothered about the noodles as you can turn the grains into alcohol instead which does follow grain supply. Thank you so much for looking into it! ♥
Sorry for the delay, are you sure you have the config `DisableArtisanMapping` set to false? from what I can see the items you mentioned are mapping.
[07:30:08 TRACE Ferngill Simple Economy] Cornucopia_SmokedEgg based on 176 [07:30:08 TRACE Ferngill Simple Economy] Cornucopia_SmokedMeat based on Cornucopia_Tofu [07:30:08 TRACE Ferngill Simple Economy] Cornucopia_WaxMelts based on Cornucopia_EssentialOil [07:30:08 TRACE Ferngill Simple Economy] Cornucopia_Candles based on 614 [07:30:08 TRACE Ferngill Simple Economy] Cornucopia_FlavoredYogurt based on Cornucopia_Vanilla [07:30:08 TRACE Ferngill Simple Economy] Cornucopia_CoconutButter based on 88 [07:30:08 TRACE Ferngill Simple Economy] Cornucopia_HoneyButter based on 340 [07:30:08 TRACE Ferngill Simple Economy] Cornucopia_MapleButter based on 724 [07:30:08 TRACE Ferngill Simple Economy] Cornucopia_NutButter based on 421
I'll admit some of the mappings might not be intuitive but there exists some combination of machine recipes that result in the chain. It would be a bit hard for me to manually resolve every mod combination.
there's a chance you have other mods that are making unintuitive mappings. If you upload / look at your smapi log there will be a section Artisan Good Mapping Trace that can show what each item is listed off of.
At the moment, the only real solution I see is adding a config that allows specifying linked items manually.
Yeah I discovered they are mapping but only after one specific item. For example Smoked Egg always follow normal egg supply, even though you can make smoked eggs from other types of eggs. This would be problematic if for example ostrich eggs are in very low supply and you decide to smoke them for quick profit but since normal eggs are high supply your smoked ostrich eggs are now less valuable than they were before.
What I find stange is that this behaves as I would expect it in some instances: pickled fish, essential oils, dried flowers/herbs/vegetables always inherit the supply of the item used. Even when these items do have "hypothetical" supplies in the forecast.
Other goods on the other hand always follow supply of one specific item: Nut Milk follows Oats, which means that nut cheese also follow oats. Pickled eggs and Smoked eggs always follow chicken eggs. Smoked meat always follows tofu. Candles for some reason follow Green Tea, which follows tea leaves? And even though Essential Oils follow ingridient supply properly, turning the oils into Wax Melts changes the supply to match Essential Oil which is chosen randomly independent on anything else. Flavored yogurt always follow vanilla even though you can make flavored yogurt out of a ton of things, including flower honey which is onfurtunate since this might be the only way to process flower honey.
Regarding a different mod I also noticed Flavored Mead from Extra Machine Configs always follow mead/honey supply and not the supply of the flower honey/flower used, but I didn't really expect otherwise.
I realise the reason some of these work and other don't might be because of the way it's coded and there might not be anything you can do about it, or at least not in a way that would be worth your time. Like I said, I love this mod and will continue to use it, but I've learnt the hard way that I need to double check the forecast before I process anything to not literally lose money.
I would be happy to spend time configuring this myself if there was an option but since this is an issue of flavored items not (always) inheriting flavor supply I'm not sure that would be possible.
(One last thing, Cornucopia Dried Squid should follow Squid supply, but doesn't for some reason)
Thank you for taking the time to respond and check it out! ♥
I had not realized smapi was updated on android yet. I would not expect FSE to work on android without modifications to all of Harmony Patches at minimum.
Hey VogonTyrant, I know you're likely well tired of this, but I wanted to address an earlier comment you made with regards to Longevity. Longevity takes prices, I'll provide a few quotes from RTGoat so that perhaps you can have some insight into a potential patch or unification of the features of both mods:
"Longevity's item price updates happen when the player inventory is updated. So it normally overwrites any price changes other mods might make."
Basically, I beleive Longevity updates prices at the end of all other modifiers and changes their sale price via the sale price in inventory. Could that info perhaps help change the UI to work with both?
That quote does add some additional context and explains observations others have had.
FSE does not edit individual object's price. It keeps its own separate data store of price multipliers to apply to items when they are sold. This overlaps with Longevity when actually selling an item hence the mods working together for selling items.
FSE's forecast menu creates each object from scratch and then looks at its sale price. This will not pick up on altered prices longevity (or any other mod) may have made to an individual item in the player's inventory.
theoretically there is a way to reconcile this but it would be a pretty fundamental architectural change. I will definitely keep the information in mind and consider it among the other feature requests that currently exist (I swear one of these day's I'll have time to make a dent on the backlog :) )
Is there a recommended profit margin to play this mod with? Am I correct in assuming that this mod somewhat increases the challenge of the game, so that any selection to profit margin will be a bit more difficult than the same setting in vanilla? Thanks :)
I always do my test runs on normal profit margin but it's compatible with any of them!
SVE is fully supported as are most crop / content mods due to the architecture of the mod, no specific patches are required. If you find one that isn't working as you expect please let me know :)
I love this mod, make the experience for people like me with a lot of hours in the game less straight line with the meta crops but i wonder if you can make compatibility with Iconic Framework and better controller implementation, with the current controller implementation i cant select sort by or change the station of the year. thanks for your job with this mod <3
Is there a way to change when certain actions happen? Like if I wanted supply direction to change from week to week instead of season to season, or total supply to reset at the end of each season. It might be fun to see how gameplay can shift in those circumstances.
not currently but it is in the todo list! There's a few architecture quirks I dug myself into that makes adding this less straightforward than it should but I do want to do it.
No worries dude, I'll definitely be following this mod. Until then I'll play with it as is and see how it affects everything. I'm very excited. It's 100% my kind of mod.
This might be one of my favourite mods in SDV. Super fun, adds an element of unpredictability and encourages a different style of play than just beelining to the most valuable crop & artisan product every time.
Now, the change in 1.8 where artisan goods follow the supply & supply change as the base item... is it in any way possible to turn that off?
For example, in Wildflour Atelier Goods, there are a lot of different artisan goods that can be made from a given crop. Pre 1.8, the prices of all these goods would fluctuate independently of the base crop, and each other. Since 1.8 they all fluctuate the same.
This added some unpredictability in like "ok, the prices of blueberries are high - to make the most of this spike, what artisan goods should I produce?"
Would love if it can be a config, but understand if it's not doable
For the moment I would recommend downgrading to 1.7.2. since 1.8.x more or less only "improves" the artisan goods handling.
a config that turns off artisan goods mapping entirely would be pretty easy (although that would affect items like vanilla wine / cheese etc (edit: generic items could be left alone))
Adding a per mod filter is probably possible but more involved. I'll add it to the list.
Is it not possible to revert the changes regarding artisan goods with unique ids before 1.8, and make that a toggle-able config option? Or is it related to the forecast table breaking? I think it would be pretty nice to have a dynamically changing price for each artisan goods (eg. for wildflour mod, deciding if you want to make ice cream, cakes, tarts, etc depending on the supply of that artisan good). (like having cranberries crop in high supply, but cakes having low supply, so you make cakes using cranberries to try to mitigate losses in profits) Although I don't know how the multiplier and prices would work then, I guess they average out?
I for one could live with cheese & mayo fluctuating independently of the base items if that's easier. The resulting decision-making is fun, my choices either become selling the animal products raw, or processing them and holding them until prices improve.
Honestly, I tend to plan seasons by first prioritizing the products in shortest supply, then profitability second. I dunno, it makes me feel like I'm using my farm to address shortages in the Ferngill Republic :P
@AnonTrisk My plan is for there to be a config option to opt out of unique ids being linked to their base item. It won't behave exactly like pre 1.8 since there was hardcoded logic making some items linked and others not (where the only criteria was if I knew about the linkage or not), but it will restore the ability to decide which artisans goods to make based on which items are more in demand.
Is it having the "DisableArtisanMapping": checked, enable artisan goods to have their own supply change instead of being linked to the supply change of the base crop? or is it the other way around: "DisableArtisanMapping": not checked?
DisableArtisanMapping should be checked to have the items have separate supply changes. You will need to restart the game for the setting to take affect however.
I did some testing, I found out that with the DisableArtisanMapping checked, the items with (unique ids)? eg. Milk -> Cheese, Rhubarb > Pink Velvet Cake, Blackberry -> Cobbler Ice Cream, works without problems, they have different supply and change from their base product, But I see some artisan goods (I'm guessing the artisan goods that aren't unique and the one that just adds the product name + artisan good name) still has the same supply and change with their base product. Is this the intended behavior?
Oddly enough, I did some testing with the DisableArtisanMapping unchecked, and I think it's reversed, the one with the unique ids artisan goods has the same supply and change with the base product, while the other artisan goods has different supply/change with the base product (although it's inconsistent, some artisan goods while different supply/change with the base product, share the same economy with each other, I think eg. Blackberry Hard Candy, Blackberry Latte, Blackberry Jelly Beans).
Then with the Rhubarb Products, Pink velvet cake(the unique artisan good), share the same supply/change with rhubarb, while the Rhubarb Tea (which should be a generic artisan good) has a different supply/change with Rhubarb, and then another generic artisan good, Rhubarb Jelly Beans has an entirely different economy with both Rhubarb and Rhubarb Tea.
From what I can see all the unique artisan goods that can be searched through the forecast table, has different supply/change from their base product, while the generic artisan goods has the same supply/change with their base product. And if DisableArtisanMapping unchecked, it's a bit more random.
Is there a way to combine their behaviors, where every artisan goods (unique or generic) has a different economy with the base crop/product, and also different economy with each other (the artisan goods)? Or will that be more comprehensive than originally thought to be. I'm guessing it will need to involve making the generic artisan goods behave as if it's a unique artisan good?
You are correct, the current config only affects items that have their own unique id and separates them from any base products that produce them through a machine. I had missed that some other mods were acting like preserves in that they share a single item id. I would need to think on how to dynamically handle that. At the moment that would be a fairly large undertaking for what I'm envisioning. I'll add it to the todo list to investigate but sadly I don't think that will happen that soon :(
I'm fairly confident that the config is correctly turning off mapping unique ids to other ids based on the logic in https://github.com/paulsteele/Ferngill-Supply-And-Demand/blob/a8d0347cbf91593678c8a71eab48d9d125719ce7/FerngillSimpleEconomy/services/ArtisanService.cs#L23 so I would assume any differences are either due to mods handling items differently for multiple products or the recipes being encoded in such a way that fse's logic thinks the base product is something it should be. The Smapi log should have a section "Artisan Good Mapping Trace" that indicates what each unique id maps to what which if you looked at and saw clear issues I could investigate (assuming the artisan mapping disabled checkbox is not checked).
I've not played the combination myself, but others have reported that longevity is mostly compatible. The only issue is the price in this mod's forecast menu doesn't take into account longevity's multiplier. When items are actually sold, the multiplier will be taken into effect.
In general I think the simplest way to make things more difficult is set the multiplier range to a lower value. By default at minimum supply prices will be higher than default. You could make it such that the max price multiplier is lower than 100%. This differs a little bit from profit margin in that profit margin can make seed prices go lower to compensate while this won't affect seed prices.
Lastly categories are mostly just a preference thing. Fish are probably the most impactful since it's a little hard to choose which fish you get in the beginning. But resources can also make a decent difference if you typically sell resources en masse.
I'd love to hear what settings you land on if you decide to try out the mod :-)
343 comments
---
1.3.0 Adds initial multiplayer support! I tried testing what scenarios I could think of but I'm sure I missed several. Please let me know if you encounter any issues.
If you experience de-sync I suggest having clients first attempting a re-connection as that should hopefully fix things. If not, having the host reset the economy either through the console or the mod config menu may get things working again (I'd recommend doing this at the change of a season or performing it multiple times so your planted crops have a similar supply)
I'm blown away at all the positive feedback and interest this has received. Thanks to everyone who has given it a shot :-)
The ones I have found that don't work are the rest of the ones that copy the input: smoked egg, smoked meat, pickled eggs, wax melts, candles, flavored yogurt, nut butters (except peanut butter) and probably something else I missed. Also Dried Squid for some reason.
Also none of the noodles match to the supply of their original ingredient, but honestly I didn't expect as much as they first need to be turned into flour and flour has no supply.
I know some people prefer the artisan goods supply being disconnected from their base ingredient supply, but I just got a little bit sad when my smoked meat was less valuable than the meat I put in and thought I'd report it if it wasn't already known.
Regarding noodles, I would expect you would have to enable whatever category flour is in for the mod to pick up that they should all be linked together.
[07:30:08 TRACE Ferngill Simple Economy] Cornucopia_SmokedEgg based on 176
[07:30:08 TRACE Ferngill Simple Economy] Cornucopia_SmokedMeat based on Cornucopia_Tofu
[07:30:08 TRACE Ferngill Simple Economy] Cornucopia_WaxMelts based on Cornucopia_EssentialOil
[07:30:08 TRACE Ferngill Simple Economy] Cornucopia_Candles based on 614
[07:30:08 TRACE Ferngill Simple Economy] Cornucopia_FlavoredYogurt based on Cornucopia_Vanilla
[07:30:08 TRACE Ferngill Simple Economy] Cornucopia_CoconutButter based on 88
[07:30:08 TRACE Ferngill Simple Economy] Cornucopia_HoneyButter based on 340
[07:30:08 TRACE Ferngill Simple Economy] Cornucopia_MapleButter based on 724
[07:30:08 TRACE Ferngill Simple Economy] Cornucopia_NutButter based on 421
I'll admit some of the mappings might not be intuitive but there exists some combination of machine recipes that result in the chain. It would be a bit hard for me to manually resolve every mod combination.
there's a chance you have other mods that are making unintuitive mappings. If you upload / look at your smapi log there will be a section Artisan Good Mapping Trace that can show what each item is listed off of.
At the moment, the only real solution I see is adding a config that allows specifying linked items manually.
What I find stange is that this behaves as I would expect it in some instances: pickled fish, essential oils, dried flowers/herbs/vegetables always inherit the supply of the item used. Even when these items do have "hypothetical" supplies in the forecast.
Other goods on the other hand always follow supply of one specific item: Nut Milk follows Oats, which means that nut cheese also follow oats. Pickled eggs and Smoked eggs always follow chicken eggs. Smoked meat always follows tofu. Candles for some reason follow Green Tea, which follows tea leaves? And even though Essential Oils follow ingridient supply properly, turning the oils into Wax Melts changes the supply to match Essential Oil which is chosen randomly independent on anything else. Flavored yogurt always follow vanilla even though you can make flavored yogurt out of a ton of things, including flower honey which is onfurtunate since this might be the only way to process flower honey.
Regarding a different mod I also noticed Flavored Mead from Extra Machine Configs always follow mead/honey supply and not the supply of the flower honey/flower used, but I didn't really expect otherwise.
I realise the reason some of these work and other don't might be because of the way it's coded and there might not be anything you can do about it, or at least not in a way that would be worth your time. Like I said, I love this mod and will continue to use it, but I've learnt the hard way that I need to double check the forecast before I process anything to not literally lose money.
I would be happy to spend time configuring this myself if there was an option but since this is an issue of flavored items not (always) inheriting flavor supply I'm not sure that would be possible.
(One last thing, Cornucopia Dried Squid should follow Squid supply, but doesn't for some reason)
Thank you for taking the time to respond and check it out! ♥
Game Version: SDV 1.6.15 (Android)
SMAPI Version: 4.1.10.3
Error shown:
ERROR Ferngill Simple EconomyOnLaunched
ERROR Ferngill Simple EconomyInvalid IL code in fse.core.handlers.GameLoadedHandler:RegisterGenericConfig (): IL_08dc: newobj 0x0a0001d6
ERROR Ferngill Simple Economyat fse.core.handlers.GameLoadedHandler.OnLaunched() at fse.core.actions.SafeAction.<>c__DisplayClass0_0.<Run>b__0() at fse.core.actions.SafeAction.Run[Boolean](Func`1 action, Boolean defaultValue, IMonitor monitor, String callerName)
https://smapi.io/log/05e253dbb63a4a828371f91d73370ae6
"Longevity's item price updates happen when the player inventory is updated. So it normally overwrites any price changes other mods might make."
Basically, I beleive Longevity updates prices at the end of all other modifiers and changes their sale price via the sale price in inventory. Could that info perhaps help change the UI to work with both?
That quote does add some additional context and explains observations others have had.
FSE does not edit individual object's price. It keeps its own separate data store of price multipliers to apply to items when they are sold. This overlaps with Longevity when actually selling an item hence the mods working together for selling items.
FSE's forecast menu creates each object from scratch and then looks at its sale price. This will not pick up on altered prices longevity (or any other mod) may have made to an individual item in the player's inventory.
theoretically there is a way to reconcile this but it would be a pretty fundamental architectural change. I will definitely keep the information in mind and consider it among the other feature requests that currently exist (I swear one of these day's I'll have time to make a dent on the backlog :) )
PS -- How will this mod interact with SVE?
SVE is fully supported as are most crop / content mods due to the architecture of the mod, no specific patches are required. If you find one that isn't working as you expect please let me know :)
Now, the change in 1.8 where artisan goods follow the supply & supply change as the base item... is it in any way possible to turn that off?
For example, in Wildflour Atelier Goods, there are a lot of different artisan goods that can be made from a given crop. Pre 1.8, the prices of all these goods would fluctuate independently of the base crop, and each other. Since 1.8 they all fluctuate the same.
This added some unpredictability in like "ok, the prices of blueberries are high - to make the most of this spike, what artisan goods should I produce?"
Would love if it can be a config, but understand if it's not doable
a config that turns off artisan goods mapping entirely would be pretty easy (although that would affect items like vanilla
wine /cheese etc (edit: generic items could be left alone))Adding a per mod filter is probably possible but more involved. I'll add it to the list.
Honestly, I tend to plan seasons by first prioritizing the products in shortest supply, then profitability second. I dunno, it makes me feel like I'm using my farm to address shortages in the Ferngill Republic :P
Oddly enough, I did some testing with the DisableArtisanMapping unchecked, and I think it's reversed, the one with the unique ids artisan goods has the same supply and change with the base product, while the other artisan goods has different supply/change with the base product (although it's inconsistent, some artisan goods while different supply/change with the base product, share the same economy with each other, I think eg. Blackberry Hard Candy, Blackberry Latte, Blackberry Jelly Beans).
Then with the Rhubarb Products, Pink velvet cake(the unique artisan good), share the same supply/change with rhubarb, while the Rhubarb Tea (which should be a generic artisan good) has a different supply/change with Rhubarb, and then another generic artisan good, Rhubarb Jelly Beans has an entirely different economy with both Rhubarb and Rhubarb Tea.
I also have a simple spreadsheet if you're interested.
From what I can see all the unique artisan goods that can be searched through the forecast table, has different supply/change from their base product, while the generic artisan goods has the same supply/change with their base product. And if DisableArtisanMapping unchecked, it's a bit more random.
Is there a way to combine their behaviors, where every artisan goods (unique or generic) has a different economy with the base crop/product, and also different economy with each other (the artisan goods)? Or will that be more comprehensive than originally thought to be. I'm guessing it will need to involve making the generic artisan goods behave as if it's a unique artisan good?
You are correct, the current config only affects items that have their own unique id and separates them from any base products that produce them through a machine. I had missed that some other mods were acting like preserves in that they share a single item id. I would need to think on how to dynamically handle that. At the moment that would be a fairly large undertaking for what I'm envisioning. I'll add it to the todo list to investigate but sadly I don't think that will happen that soon :(
I'm fairly confident that the config is correctly turning off mapping unique ids to other ids based on the logic in https://github.com/paulsteele/Ferngill-Supply-And-Demand/blob/a8d0347cbf91593678c8a71eab48d9d125719ce7/FerngillSimpleEconomy/services/ArtisanService.cs#L23 so I would assume any differences are either due to mods handling items differently for multiple products or the recipes being encoded in such a way that fse's logic thinks the base product is something it should be. The Smapi log should have a section "Artisan Good Mapping Trace" that indicates what each unique id maps to what which if you looked at and saw clear issues I could investigate (assuming the artisan mapping disabled checkbox is not checked).
This mod looks EXACTLY like what I always wanted in Stardew!
And I'm curious what settings to change to earn less money/make the game more difficult?And is there any downsides to just enabling all categories?
In general I think the simplest way to make things more difficult is set the multiplier range to a lower value. By default at minimum supply prices will be higher than default. You could make it such that the max price multiplier is lower than 100%. This differs a little bit from profit margin in that profit margin can make seed prices go lower to compensate while this won't affect seed prices.
Lastly categories are mostly just a preference thing. Fish are probably the most impactful since it's a little hard to choose which fish you get in the beginning. But resources can also make a decent difference if you typically sell resources en masse.
I'd love to hear what settings you land on if you decide to try out the mod :-)