1.10.0 Adds the ability to customize update frequencies to basically any value. Want to update every day? That's supported! Want to update once every 10 years? That's supported! A huge thanks to cidrei & SingularityPotato for proposing PRs that helped create the implementation.
This took a lot longer to get published than I had meant it to. Thank you all for your patience!
---
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 :-)
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.
Does this mod take into account that there is a war going on, and that because of this certain staple foods would consistently sell for more?
Things like potatoes, corn, wheat, peppers, etc would all have a higher price because of this.
Edit: I am not complaining if it doesn't, this is already a pretty complex mod from the looks of it, and it pretty good at keeping you from having more money than god later in the game.
With the addition of configs for the frequency, I wanted to begin playing with the values a bit. The problem is, I got no clue how changing the advances options influences item values. Is there anything I could read, to understand how changing the configs, will influence the value of items?
It's technically possible to add this, but my motivation is fairly low to do so since the mod can be installed and uninstalled mid play-through without any repercussions (with the exception of the economy being reset). Is there a use case I'm not thinking of that makes mid playthough installation not feasible?
First, I was wondering if it would be possible to link the supply of produce and their seeds when seeds are enabled in the config? I had hoped this was how it worked inately but unless it's conflicting with another mod I have installed it isn't.
Second, I never really got confirmation on wether "better" artisan mapping for cornucopia and other modded artisan goods were possible. After spending more time going through Cornucopia Artisan Goods mod files for Balance Overhaul I think I identified at least part of the problem. These flavored artisan goods (Nut Milk, Smoked Egg, Smoked Meat, Flavored Yogurt and probably more) have multiple output rules that make the specified artisan good. Let's use Cornucopia_NutMilk as an example. It has an OutputRule where it accepts any item tagged as nut_item, but it also has seperate output rules where it accepts two Soybeans or two Oats. Because of this any nut milk, no mapper the nut_item used, uses the supply of oats (if they are enabled in Cornucopia More Crops). I'm going to assume the reason some of them work (Essential Oil, Pickled Fish and probably more) is because these items only have a single output rule that accepts items based on tags, similar to how vanilla artisan goods work.
A slight outlier would be Candles and Essential Oils not working the same even though they both only have one Output Rule with multiple Triggers for the different items they accept. The main difference would be that Essential Oil only accepts items based on tags while Candles also accept Coffee and Green Tea (supply for candles is always based on Tea supply). It does generally look like if an artisan good has a specified item as one of it's triggers it will use that one for supply, and if there are multiple specified items it will use the last one loaded, but I haven't checked all the files so I can't say for sure.
The last things I feel could work but don't are Cornucopia Wax Melts and Extra Machine Configs Flavored Mead. Both of these accept a single item and inherit the flavor of said item. Both of the items used (Flower Honey and Essential Oils) do have working Artisan Good mapping where Flower Honey inherit the supply of the flower used and Essential Oil inherit the supply of whatever item was used to make it. But when these items are made into said Artisan Goods they loose track of their original supply and all default to the same (Wild Honey for Flavored Mead and a random value assigned to generic Essential Oil).
I know this is a massive amount of text and if you already decided this isn't a problem you want to solve (either bc it's not doable or because you do not play with these mods enough for it to be worth the effort) I totally understand. And if you would like to look into it and require any more testing/information that I would be able to provide as a content patcher modder only I'd love to help.
And once again, thank you so much for the mod it is truly a work of wonder! The Artisan Mapping as it is is already leagues above anything I could have wished for and is a complete non issue for player who just use vanilla artisan goods.
the first one should be straightforward. You're correct that the mod doesn't currently do this. The code link is already established so it should be somewhat simple to make it work the desired way.
the second one is definitely more complicated. I think the best option is allowing user defined mappings. This gets tricky for certain things like flower honey that don't have a unique code id. There might still be a code path to explore if the recipes are constructed a certain way. I'd have to look further into that!
Thank you so much for responding! Once again, let me know if there's anything I could do to help. Some things I could do if it would be helpful is find all the items where mapping isn't working as expected and document them, their output rules and their triggers.
And I'm super excited for a potential seed change! Even though crops being in high supply is bad short term, buying lots of seeds and hoping for better return next year seems really cool!
That indicates where the sell price is at its vanilla value. So if the bar is to the right you'll be selling for less than normal while if the bar is to the left you'll be selling for a higher value.
Sorry for the late reply, geodes aren't in the hardcoded ignore list so you should be able to add them by enabling their relevant category. I believe that would be under "Minerals"
I also made a pull request on GitHub (if it’s easier that way).
You did a great job with your mod (and the detailed explanations), bravo ! I will try to see how it interacts with In-Game Profit Calculator, will update soon.
{ "fse.appname" : "Prévisions économiques de Ferngill", "fse.forecast.menu.sort.none": "Aucun", "fse.forecast.menu.sort.name": "Nom", "fse.forecast.menu.sort.marketPrice": "Prix de vente", "fse.forecast.menu.sort.marketPricePerDay": "Prix de vente par jour", "fse.forecast.menu.sort.supply": "Offre", "fse.forecast.menu.sort.delta": "Variation quotidienne d’offre", "fse.forecast.menu.header.title": "Prévisions économiques de Ferngill", "fse.forecast.menu.header.sortBy": "Trier par", "fse.forecast.menu.header.category": "Choisir une catégorie", "fse.forecast.menu.header.item": "Article", "fse.forecast.menu.header.sellPrice": "Prix de vente", "fse.forecast.menu.header.perDay": "par jour", "fse.forecast.menu.header.supply": "Offre", "fse.forecast.menu.header.supplyDescriptor": "(De faible à elevé)", "fse.forecast.menu.tab.title": "Prévision", "fse.forecast.menu.basic.category": "Basique", "fse.forecast.menu.allCategory": "Tout", "fse.config.MaxCalculatedSupply": "Offre maximale calculée", "fse.config.MinDelta": "Changement minimum par jour", "fse.config.MaxDelta": "Changement maximum par jour", "fse.config.DeltaArrow": "Changement par jour par flèche", "fse.config.StdDevSupply": "Écart type approvisionnement", "fse.config.StdDevDelta": "Delta de l'écart type (toute saison)", "fse.config.StdDevDeltaInSeason": "Delta de l'écart type (en saison)", "fse.config.StdDevDeltaOutOfSeason": "Delta de l’écart type (hors saison)", "fse.config.MinPercentage": "Multiplicateur de prix minimum", "fse.config.MaxPercentage": "Multiplicateur de prix maximum", "fse.config.MenuTabOffset": "Décalage X de l’onglet de menu", "fse.config.EnableMenuTab": "Afficher l'onglet dans le menu", "fse.config.EnableTooltip": "Afficher l’info-bulle au survol", "fse.config.EnableShopDisplay": "Afficher l'aperçu dans la boutique", "fse.config.DisableArtisanMapping": "Désactiver la mise en relation des produits artisanaux", "fse.config.ResetEconomy": "Réinitialiser l'économie\n (en jeu uniquement)", "fse.config.hotkey.openMenu": "Raccourci « Prévisions éco. »", "fse.config.Reset": "Réinitialiser", "fse.config.category.header": "Catégories en économie", "fse.config.category.subtitle": "Le jeu doit être redémarré après cette modification. Les noms peuvent apparaître en double car c'est ainsi que le jeu les référence. Consultez le wiki pour plus de détails." }
thank you for your work on this, I have added these to 1.10.0 but unfortunately I redid the structure of the config menu which added several new strings and removed some old ones. :'(
I was looking for something in-between vanilla and the mod that adds taxes for a bit of difficulty when I'm working with my farm's income to help my play through to have a little more longevity. This mod really hits that spot, and seriously you should be more than proud of it! I plan on using it for EVERY farm going forward, the idea of putting things aside like different types of smoked fish or aged roe for example is an amazing way to limit income if someone has the patience to wait for a lack of supply.
368 comments
This took a lot longer to get published than I had meant it to. Thank you all for your patience!
---
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 :-)
Things like potatoes, corn, wheat, peppers, etc would all have a higher price because of this.
Edit: I am not complaining if it doesn't, this is already a pretty complex mod from the looks of it, and it pretty good at keeping you from having more money than god later in the game.
With the addition of configs for the frequency, I wanted to begin playing with the values a bit. The problem is, I got no clue how changing the advances options influences item values. Is there anything I could read, to understand how changing the configs, will influence the value of items?
First, I was wondering if it would be possible to link the supply of produce and their seeds when seeds are enabled in the config? I had hoped this was how it worked inately but unless it's conflicting with another mod I have installed it isn't.
Second, I never really got confirmation on wether "better" artisan mapping for cornucopia and other modded artisan goods were possible. After spending more time going through Cornucopia Artisan Goods mod files for Balance Overhaul I think I identified at least part of the problem. These flavored artisan goods (Nut Milk, Smoked Egg, Smoked Meat, Flavored Yogurt and probably more) have multiple output rules that make the specified artisan good. Let's use Cornucopia_NutMilk as an example. It has an OutputRule where it accepts any item tagged as nut_item, but it also has seperate output rules where it accepts two Soybeans or two Oats. Because of this any nut milk, no mapper the nut_item used, uses the supply of oats (if they are enabled in Cornucopia More Crops). I'm going to assume the reason some of them work (Essential Oil, Pickled Fish and probably more) is because these items only have a single output rule that accepts items based on tags, similar to how vanilla artisan goods work.
A slight outlier would be Candles and Essential Oils not working the same even though they both only have one Output Rule with multiple Triggers for the different items they accept. The main difference would be that Essential Oil only accepts items based on tags while Candles also accept Coffee and Green Tea (supply for candles is always based on Tea supply). It does generally look like if an artisan good has a specified item as one of it's triggers it will use that one for supply, and if there are multiple specified items it will use the last one loaded, but I haven't checked all the files so I can't say for sure.
The last things I feel could work but don't are Cornucopia Wax Melts and Extra Machine Configs Flavored Mead. Both of these accept a single item and inherit the flavor of said item. Both of the items used (Flower Honey and Essential Oils) do have working Artisan Good mapping where Flower Honey inherit the supply of the flower used and Essential Oil inherit the supply of whatever item was used to make it. But when these items are made into said Artisan Goods they loose track of their original supply and all default to the same (Wild Honey for Flavored Mead and a random value assigned to generic Essential Oil).
I know this is a massive amount of text and if you already decided this isn't a problem you want to solve (either bc it's not doable or because you do not play with these mods enough for it to be worth the effort) I totally understand. And if you would like to look into it and require any more testing/information that I would be able to provide as a content patcher modder only I'd love to help.
And once again, thank you so much for the mod it is truly a work of wonder! The Artisan Mapping as it is is already leagues above anything I could have wished for and is a complete non issue for player who just use vanilla artisan goods.
should be somewhat simple to make it work the desired way.
the second one is definitely more complicated. I think the best option is
allowing user defined mappings. This gets tricky for certain things like
flower honey that don't have a unique code id. There might still be a
code path to explore if the recipes are constructed a certain way. I'd
have to look further into that!
And I'm super excited for a potential seed change! Even though crops being in high supply is bad short term, buying lots of seeds and hoping for better return next year seems really cool!
https://smapi.io/json/i18n/baa029f024b14e14a5f2af8821362286 (i18n)
https://smapi.io/json/i18n/7b40fd826409457d95bfd5e0e58a04e0 (mail - I couldn’t exactly have the same length for each section so the mail is not as well separated as the original version)
I also made a pull request on GitHub (if it’s easier that way).
You did a great job with your mod (and the detailed explanations), bravo ! I will try to see how it interacts with In-Game Profit Calculator, will update soon.
Thanks for your mod, have a good day !
https://smapi.io/json/i18n/b03e1dc82ea74110a993599504a4463a
{
"fse.appname" : "Prévisions économiques de Ferngill",
"fse.forecast.menu.sort.none": "Aucun",
"fse.forecast.menu.sort.name": "Nom",
"fse.forecast.menu.sort.marketPrice": "Prix de vente",
"fse.forecast.menu.sort.marketPricePerDay": "Prix de vente par jour",
"fse.forecast.menu.sort.supply": "Offre",
"fse.forecast.menu.sort.delta": "Variation quotidienne d’offre",
"fse.forecast.menu.header.title": "Prévisions économiques de Ferngill",
"fse.forecast.menu.header.sortBy": "Trier par",
"fse.forecast.menu.header.category": "Choisir une catégorie",
"fse.forecast.menu.header.item": "Article",
"fse.forecast.menu.header.sellPrice": "Prix de vente",
"fse.forecast.menu.header.perDay": "par jour",
"fse.forecast.menu.header.supply": "Offre",
"fse.forecast.menu.header.supplyDescriptor": "(De faible à elevé)",
"fse.forecast.menu.tab.title": "Prévision",
"fse.forecast.menu.basic.category": "Basique",
"fse.forecast.menu.allCategory": "Tout",
"fse.config.MaxCalculatedSupply": "Offre maximale calculée",
"fse.config.MinDelta": "Changement minimum par jour",
"fse.config.MaxDelta": "Changement maximum par jour",
"fse.config.DeltaArrow": "Changement par jour par flèche",
"fse.config.StdDevSupply": "Écart type approvisionnement",
"fse.config.StdDevDelta": "Delta de l'écart type (toute saison)",
"fse.config.StdDevDeltaInSeason": "Delta de l'écart type (en saison)",
"fse.config.StdDevDeltaOutOfSeason": "Delta de l’écart type (hors saison)",
"fse.config.MinPercentage": "Multiplicateur de prix minimum",
"fse.config.MaxPercentage": "Multiplicateur de prix maximum",
"fse.config.MenuTabOffset": "Décalage X de l’onglet de menu",
"fse.config.EnableMenuTab": "Afficher l'onglet dans le menu",
"fse.config.EnableTooltip": "Afficher l’info-bulle au survol",
"fse.config.EnableShopDisplay": "Afficher l'aperçu dans la boutique",
"fse.config.DisableArtisanMapping": "Désactiver la mise en relation des produits artisanaux",
"fse.config.ResetEconomy": "Réinitialiser l'économie\n (en jeu uniquement)",
"fse.config.hotkey.openMenu": "Raccourci « Prévisions éco. »",
"fse.config.Reset": "Réinitialiser",
"fse.config.category.header": "Catégories en économie",
"fse.config.category.subtitle": "Le jeu doit être redémarré après cette modification. Les noms peuvent apparaître en double car c'est ainsi que le jeu les référence. Consultez le wiki pour plus de détails."
}