Producer Framework Mod helps custom rules for creating objects can be added to the framework. Code and content pack interfaces are supported.
Creator: Digus
Producer Framework Mod


REQUIREMENTS
Nowmods requirements:
Mod name | Notes |
SMAPI – Stardew Modding API |
Mods requiring this Producer Framework Mod file:
Mod name | Notes |
(Chinese)Vyranity's Breads Upgraded | |
(PFM) Easy Coal | |
(PFM) Flower Pack for Artisanal Soda Makers | Required for machines to function |
(PFM) Sapling Machine | |
(PFM) Wine to Vinegar | |
(SOJA) Ancient Crops | |
A Winter Fruit—Yilisnow Fruit | |
Adaptable Bee House | |
Advanced Farming | |
Ahegao Dryads (Json Assets) | Required for Machine Functionality, otherwise Dryads will be statues |
Alpacas BFAV | |
Alternate Milk | |
Ancichoke (Ancient Artichoke) | It is always required. |
Ancient Seed Germinator | required |
Apiary on Flowers | |
Aqua Sanctuary | |
Aquilegia's Sweet Tooth | |
Arcane Table Mod | For the light and animation |
Artifact Trove Generating Apparatus | |
Artisan Valley for Better Kegs Mod | |
Artisanal Soda Makers | Required |
Artisanal Soda Makers – Portuguese | |
Artisanal Soda Makers Chinese (simplified) | 必需前置mod |
Atelier Wildflour – Tea Pack | required |
Atelier Wildflour Candy Pack | REQUIRED |
Atelier Wildflour Coffee Pack | REQUIRED |
Atelier Wildflour Floral Goods Pack | REQUIRED |
Auto Resources | |
BAGI and Mead Pack for MF and AC | Only necessary for the optional liqueur |
Basic Resource Converters | |
Be rich with animals | NECESSARY |
Better Quality Increase Seeds – Fish's Flowers Compatibility Version for PFM | |
Better Quality Increased Seeds – Ancient Crops for PFM | |
Better Quality Increased Seeds – Ancient Fruit Color Variants | |
Better Quality Increased Seeds – Bonster's Crops for PFM | |
Better Quality Increased Seeds – Cannabis Kit for PFM | |
Better Quality Increased Seeds – Champagne Wishes | |
Better Quality Increased Seeds – Christmas Crops | |
Better Quality Increased Seeds – Eemie's Crops for PFM | |
Better Quality Increased Seeds – Fantasy Crops for PFM | |
Better Quality Increased Seeds – Farmer to Florist for PFM | |
Better Quality Increased Seeds – Fresh Meat for PFM | |
Better Quality Increased Seeds – Fruits and Veggies for PFM | |
Better Quality Increased Seeds – Green Pear for PFM | |
Better Quality Increased Seeds – Joja TAKEOVER | |
Better Quality Increased Seeds – Lucky Clover for PFM | |
Better Quality Increased Seeds – Mizu's Flowers for PFM | |
Better Quality Increased Seeds – Mouse-Ear Cress for PFM | |
Better Quality Increased Seeds – Soda Vine for PFM | |
Better Quality Increased Seeds – Spoopy Valley for PFM | |
Better Quality Increased Seeds – Stardew Vineyard for PFM | |
Better Quality Increased Seeds – Stephan's Crops for PFM | |
Better Quality Increased Seeds – Tea Time for PFM | |
Better Quality Increased Seeds – Vanilla for PFM | |
Better Quality Increased Seeds – Winter Crops | |
Better Quality Increased Seeds – Winter Lychee for PFM | |
BFAV Bulls | |
BFAV Bulls For Chinese | |
BFAV Easter Bunnies | required for mayonnaise machine rules |
BFAV Gem Infused Fauns | allows machines to produce the repective goods |
BFAV Golden Goose | |
BFAV Peafowl | |
BFAV Phoenixes | |
BFAV Phoenixes (Hungarian) | |
BFAV Pterodactyl | |
BFAV Roosters | Needed for Custom Items |
BFAV So Many Horses | required to process animal products |
BFAV Void Barn Animals | |
BFAV Working Goose | |
BFAV Yaks | |
Blast Furnace | |
Blue Chicken Products PT – BR | |
Blue Eggs | |
Blue Moon Casks | |
BlueChickenProducts | |
BlueChickenProducts-Russian | |
Boarding House and Bus Stop Expansion – Portugues – 4.0.3 | |
Boarding House and Bus Stop Extension | Makes machines rules |
Boarding House and Bus Stop Extension – Chinese 4.0.1 | |
Boarding House Nut Butters | |
Bomb Generators | |
Bonster's Crops – PPJA intergration | |
Bouquet Production | |
Boxes with mushrooms and collectibles (DEMO) | NECESSARY |
Breaking Bad in Stardew Valley | Required to be able to turn Blue Jazz to Methylamine and Methylamine to Blue Sky Meth |
Breeding Overhaul | |
Bug Meat Generating Apparatus | |
Cage Free Eggs | Needed for seed makers |
Cakes and Creams | |
CAMELS by DRIJUCE (BFAV) | |
Candy Cap Mushroom Cooking | |
Cannabis Crop | (Optional) If you would like to produce the Cannabis Wine in a Keg. |
Cannabis Crop – Spanish | |
Carrot SummerCrop | for Seed Maker to work |
Champagne Wishes | |
Charcoal Generating Equipment and Charcoal Grill | |
Cheese Tea | |
Chicken Math | |
Cider Press (PFM) | Required for the press to work |
Clay Generating Millstone | |
Coal from Tree Seeds | required |
Coconut Addon | |
Coffee Maker | |
Composter (JA and PFM) | |
Cookie Clicker Suite | |
Cosy Cafe | |
Cotton Candy | |
Cotton Candy Cel Sheep | |
Cotton the sweetest shopkeeper | |
Craftable Magic Worm Bin | Required |
Craftable Mushroom Box – PFM | |
Culinary Expansion v1.2.1(Mobile)Pc | |
Custom NPC Mod Seven Deadly Sins Eng Translation | |
Custom Producer Mod | |
Dairy and Egg Product Overhaul | |
Dark Club | |
Dark Village(Beta version) | |
Dark Village(Beta version)(Chinese) | |
Deluxe Preservation | |
DengDeng's Fantastic Crops | |
DengDeng's Fantastic Crops beta | |
Distillery | |
Doll Maker | Required |
Domed Garden Pots | |
Domed Garden Pots hungarian translation | |
Donkeys BFAV | |
Drink More Water (JA) | For the machines. |
drinkable battery acid | |
Drinkable Battery Acid (Edit) | |
Duck Fabric | |
Durin's Rest | Required |
Dust Sprites in the Coop by Wickedy – BFAV | |
Dwarven Brewing and Distilling | Absolutely Required |
Dwarvish | New requirement as of 2.0 |
Dwarvish (PT-BR) | |
Dwarvish for Chinese | |
E's Teas | Required for the custom machines to work. |
E's Teas in Portuguese | |
Edible Gels – Recipe and Product Pack | |
Electric Furnace and Carbon Fiber | |
Emyn's Sericulture and Fabrics | |
ExoticAnimals | |
Expanded Vanilla Crops | |
Express Smoothie | |
Fake Fairy Stone | |
Fallen London Mushroom Wines | |
Fennec Settings – PFM Support for BFAV Fennecs | What it adds support for (in relation to BFAV Fennec Foxes) |
Financial Call Center | Simules the “financial market probabilities” in game |
Fish Breeding Tanks | |
Fish Breeding Tanks – French | |
Fish-2-Seed Processor | |
Fizzy Drinks | To run the custom machines. Rules are configurable. |
Floral Liqueurs | |
Floral Megamix | For now, it for the objects only obtained via multi yield so can be put through the seed maker. |
Flow Hive | REQUIRED + ALL DEPENDENCIES |
Flower Meads | Required |
Forage of Ferngill | |
Frozen Yogurt | |
Fruit Tree Honey | |
Fucking Machine | |
Garden Village – Portuguese | |
Garden Village Shops – Expansion Mod | required for new artisan goods |
Garden Village Shops – Russian | |
Garden Village Shops for CP | A MUST! |
Gashapon Machines | |
Gem Lamp Posts Mod | For producing rules and machine configuration. |
Gems and Minerals to Monster Loot and Omni Geodes and Artifact Troves | |
Girls Love Dildos | |
Golden Crops | Required: allow to make golden coffee/oil/beer/pale ale. |
Golden Crops Chinese20x version | |
Golden Walnut Machine | |
Grapes of Ferngill | |
Growable Berry Bushes | |
Growable Bombs | |
Guardians of Stardew Valley | |
Hardew Valley – Slow Life In The Valley | Required |
Haste Milk | |
Heirloom Sunflowers | |
Hempire | |
High Purity Ore Node Tree | Required. |
Hogwarts – A School of Witchcraft and Wizardry | |
Holiday Special Orders | Technically optional. Required if you want one reward to function beyond being decorative. |
Host Trees | For the artisan goods and machine interactions. |
Immersive Solar Panels | |
Industrialization for PFM – More Gems Support | |
Industrialization for PFM – PPJA Support | |
Industrialization for PFM Bonster's Crops Support | |
Industrialization for Ssaturn's Tropical Farms | |
Industrialization Official Utility Grid Addon | |
Industrialization Phoenix Addon | |
Industrialization Settings For Utility Grid | |
Inspiring Valley | |
Jewelcraft Chinese Translations | |
Joja Seeds | Required to put Joja fruits/veggies in craftables |
JOJA TAKEOVER | |
Joseph's Seed Shop (GMM) | |
Joseph's Seed Shop (GMM)-Chinese | |
Kimchi Maker | |
Ksoul's Ingredient and Machine | |
Lemonade Stand Machine Compatible with More Fruit Trees (PFM) | |
Lootboxes for Stardew Valley | |
Louvier Fromagerie (GMM) | |
LuckE Basics | required |
Lumisteria Guinea Fowls | |
Lumisteria More Pickled Products | |
Luxury Meals | |
Machine_Ex for PFM | Necessary |
Magic Pluses | |
Magic Tarots (Json Assets) | |
Magic Tree Roots (Json Assets) | |
Manure Industries | |
Marshmallows in Stardew | |
Mass Production | |
Master Brewer | |
Material Converter | |
Milk Egg Combine Split | |
Milk the Villagers' Artisan Goods | |
Mineral Lamps | |
Mineral Mage | |
Mineral Mage – Russian | |
Mining Drills | |
Mining-2-Seed Processor | |
Mixed Seed Kiln | |
Mixed Seeds from Forage | |
Monster Crops | |
Monster Men Livestock for BFAV | |
More Ice Cream | |
More New Fish | |
More New Fish – Portugues – 5.1.2 | |
More Tea | In order to make tea /为了做茶 |
Multi-Mod Add-On for k10_FTW KrissyMarie's Lemonade Stand Machine | |
Mushroom Suite | |
Nari's Artisan Goods | |
Neon Signs | |
Nutrimatic Drinks Dispenser | |
Occhii's Holiday Treats | Required |
Octopetalas | |
Official – Industrialization for PFM | Is Required |
Organic Lamps | |
Ostrich Mayo and Golden Mayo | |
Pacific Northwest Mushrooms | |
Packing Boxes and Crates | Required |
Panties Creator | |
Pasta Fantastica | |
Persimmon mod | |
PFM – Advanced Charcoal Kilns | |
PFM – Expanded Casks | |
PFM – Industrialization and Industrialization Plus Golden Crops Addon – English and Simplified Chinese | |
PFM – Resource Recycling – Wood Stone and Sap | |
PFM – Upgraded Seed Makers Bonster's Crops Addon | |
PFM Better Kegs Mod | |
PFM Ikebana Mod | |
PFM Indoor Apiary – Indoor Bee House Mod | |
PFM Jewelcraft | Converted to this framework |
PFM Jewelcraft – Russian | |
PFM KEG QUALITY | NECESSARY |
PFM Oil Quality and Amount | NECESSARY |
PFM Rice Vinegar | |
PFM Upgraded Jars | |
PFM Upgraded Kegs | |
PFM Vinegar on Kegs | |
PFM-JA Upgraded Seed Makers | |
PFMAutomate | |
Pink Items for pink animals | |
Pink Sheep with pink wool | |
Platonic's Recipes | |
Plentiful Harvest – Crops and Cooking | |
Popcorn Machine | |
Potions Maker | required |
PPJA – Artisan Valley | |
PPJA – Cannabis Kit | |
PPJA – Cannabis Kit – French Translation | |
PPJA – Even More Recipes_Another Collection of Recipes | |
PPJA – Farmer to Florist | |
PPJA – Fresh Meat_An ‘Alternative' Butcher Mod | |
PPJA Producer Converter | |
PPJA Redux – For DGA | Required for some machines. |
Preservar Jar Extra | NECESSARY |
PRESERVAR JAR QUALITY | NECESSARY |
Preserved Fish (DEMO) | NECESSARY |
Prismatic Nuggets | |
Produce to Sapling – Artisanal Soda Makers for PFM | |
Produce to Sapling – Bonster's Crops for PFM | |
Produce to Sapling – Farmer to Florist for PFM | |
Produce to Sapling – Fizzy Drinks for PFM | |
Produce to Sapling – Fresh Meat for PFM | |
Produce to Sapling – Guava Tree for PFM | |
Produce to Sapling – Mae's Trees for PFM | |
Produce to Sapling – More Trees for PFM | |
Produce to Sapling – Spoopy Valley for PFM | |
Produce to Sapling – Vanilla for PFM | |
Produce to Sapling – Winter Crops for PFM | |
ProducerFrameworkMod – Polish (Auto) | |
Prospurrity (BFAV Cats) | |
Pudding Plus | |
Pufferfish Chickens | |
Quality Scrubber | |
Rabbit's Foot Lucky Oil | |
Radioactive Tools | |
Raffadax Beers | REQUIRED + All Dependencies |
Raffadax Complete Production | REQUIRED |
Raffadax Light | ONLY REQUIRED IF Basic Production Version is Used |
Raffadax Liquors | REQUIRED + All Dependencies |
Raffadax Teas | REQUIRED + All Dependencies |
Rare Seeds Improved | |
Raretron 3000 | |
Re-Updated Mining Drills | |
Realistic Looms | |
Recipes And Crafting Coexistence | |
Recyclable Artifacts | |
Recyclable Cola (Automate) | required |
REX SPECIES BFAV | NECESSARY |
riKey's Recipes | Use lastest version |
Rose Cows | |
Sam and Vincent's Cola Shop | |
Sap Product Generating Tapper | |
Sapling GET – put tree produce in the seed maker – vanilla and mods | MANDATORY! |
Seaweed Generating Bowl | |
Secret Candy | |
Secret Gourmet | |
Sediment Sorter | |
Seed Shop Progression Mod | |
Seed Shortage | |
Seed Sorter | |
Shaved Ice and Frozen Treats | (Required) For the Shaved Ice Machine |
Shaved Ice and Frozen Treats – PTBR | (Obrigatório) Para a máquina de gelo raspado |
Shrine of Fulmination | |
Silkworm Mulberry | |
Simple Electricity System | |
Simply Sour Cherry | |
Skys Extended Stardew | |
Slave Machines of Stardew Valley | |
Slime Livestock and Potion Brewing Revamp | |
Slime Mayonnaise | |
Slime Sauce | |
Soda machine for MFM PFM | for the new Colas |
Spring Onion Seeds | |
Sprinkler Upgrader | |
Squash Crop | |
SSaturn's Oriental Kitchen | Required for machines to produce custom products |
SSaturn's Oriental Kitchen-Chinese Simplified | |
SSaturn's Tropical Farm | Required for machines to produce custom products |
StarAmy's BFAV Bison | Needed for wool and bison horn processing |
Stardew Alchemy | |
Stardew Survival Project | Required for additional machines to function |
Stardew Valley For Babies (Easy Mode – For Fun – Free Play) | |
Stardew Vineyard Pack for Artisanal Soda Makers | Required to make the Artisanal Soda Makers mod work |
Stardrop Bloom | |
Stardrop Candy | |
STARHARD | NECESSARY |
Statue Of Anglers Sorrow | |
Statue Of Fortune | |
Steamed Rice | |
SugarBlast Sweets | |
Summer Pack | For the Ice Maker to work. |
Summer Treats | Enables machines |
SWANS by DRIJUCE (BFAV) | |
T's Big-Craftables Pack | Required. |
Tales From The Bayou | |
Tea Set Makes Tea | (required for add-on) |
Tea Station (PFM Machine) | Required |
Teatotaller Farmer | |
Terraria Fishing | |
The Cowboy Life Expanded | (Requisito desde da v1.0 ~ Requirement since v1.0) |
The Geology Mod | Required for rock and salt processors. |
The Planter for All Occasions | |
Toffee's Parrots | Required for the new Artisan Good |
Totem Idol | |
Tree breeding machine | |
Trent new animals Portugues | Para os itens |
Trent's New Animals | |
Trent's New Animals – Russian | |
Trent's New Animals for Chinese | |
Trent's New Raccoons | |
Trinkets to Treasures | |
Trinkets To Treasures – Artifacts | |
Trinkets To Treasures – Jewelry | |
Universal Sausage | |
Upgraded Seed Maker Fantasy Crops Addon | |
Upgraded Seed Maker Gemstone Fruits Addon | |
Upgraded Seed Makers – Ssaturn's Tropical Farm Support | |
Utility Grid for Industrialization | |
Valley Herbalist | Required |
Vodka | |
Void Duck | |
Void Farming Mod | Required |
Void Machines | |
Vyranity's Breads JA | This mod makes sure that all the machines work. |
Vyranity's Jams and Pies JA | This allows the machines to work |
Vyranity's Lovebirds BFAV | |
Vyranity's Pizza's JA | |
Vyranity's Pizza's Spanish | |
Walk to the Desert – Expansion Mod | required for artisan goods production |
Walk to the Desert – Redux | Required for Artisan Goods Production |
Walk to The Desert – Redux TURKCE CEVIRI by FehmiDogruJS | |
Walk to the Desert Expansion Mod – Russian | |
Walk to the Desert Redux | Требуется для производства ремесленных товаров |
Walk to the Desert Redux (French) | |
Wild Bait Worm Bin | ONLY FOR THE PFM VERSION |
Wild Food – A Forage Expansion Mod | required |
Wildflour's Pixie Forage | required to make the tree saplings in the seed maker |
Wildflour's Specialty Ales and Meads | required |
Willamette Valley | |
Winter Crops | |
Winter Crops For Chinese | |
Wood Maker | Add the producer rules. |
Working Bonsai Pots |
PERMISSIONS AND CREDITS
Credits and distribution rights
- Assets of other users: All of the assets in this Producer Framework Mod file are either the author's or free-to-use modder's resources.
- Upload authorization: Under no circumstances may you upload this material to other websites.
- Permission to modify: You must obtain my permission before modifying my files in order to enhance them.
- Permission to convert: Under no circumstances are you permitted to convert this Producer Framework Mod file for use in other games.
- Permission to utilize an asset: You must obtain my permission before using any of the materials in this Producer Framework Mod file.
- Asset use authorization in purchased mods/files: This file's assets may not be used in any modifications or files that are sold for money on Steam Workshop or other platforms.
- Permission to utilize assets in mods/files that earn donation points: You cannot earn Donation Points for your modifications if they use my materials.
Notes from the Author
This author has made no further remarks about Producer Framework Mod file permissions.
File credits
This author has not credited anyone else in this Producer Framework Mod file
CHANGELOGS
- Producer Framework Mod Version 1.7.4
- Fix to bouncing happening when not supposed to.
- Fix to giving errors when machines had animations but the item supposed to be held diapered.
- Upgrade to hamony 2 and Stardew Valley 1.5.5
- Spanish i18n. (Thanks to bpsys)
- Producer Framework Mod Version 1.7.3
- Hungarian i18n. (Thanks to martin66789)
- Fix to object not stacking properly when the output had a preserved type and the input also had a preservedParentIndex.
- Producer Framework Mod Version 1.7.2
- Fix incompatibility with the way translation worked before.
- Producer Framework Mod Version 1.7.1
- Fix to some output names not working properly when there is no i18n key for the name.
- Producer Framework Mod Version 1.7.0
- Animations can now be different based on the output inside the machine, identified by Name, Index or category.
- Internationalization of output names aren't restricted to one per index anymore. Will only apply to new produced items.
- New rule property to make the output index be replaced by the preserved parent index, so you can reverse produce items. (ex. fish from fish roe) Producer Framework Mod
- New properties to increment stats label on input and output. Status label can be any string and can be used with Mail Framework Mod.
- New properties AdditionalProducerNames, to let rules and configs work for more than one producer name.
- Korean i18n. (Thanks to wally232)
- Turkish i18n. (Thanks to KeDili)
- Producer Framework Mod Version 1.6.0
- Outputs can now have restrictions for Input Stack. The required stack will be the value consumed.
- New property compatible with Lookup Anything.
- Fix bug when a “preserved item” parent index could not be found.
- Fix to input stack not displaying correctly on Lookup Anything.
- Japanese i18n. (Thanks to TwelveYO)
- Chinese i18n. (Thanks to irischerish)
- Producer Framework Mod Version 1.5.0
- Outputs can now have restrictions for Mail and Events.
- New API method to let SMAPI mods to load content packs directly. (Thanks to Amy Nagle)
- Russian i18n. (Thanks to Dmitrey Kupcov)
- New property on producer rules to let the creator define the log level that should be used to warn the player about rule conflicts Producer Framework Mod.
- New config.json file that let you change the default log level of conflict warns for all producer rules.
- Season condition and requirement now uses the season of the location the machine is placed.
- Performance improvement when hovering over machines, on certain occasions.
- Producer Framework Mod Version 1.4.2
- Fix to animations not working properly on Stardew Valley 1.5.
- Fix to SubtractTimeOfDay property not working as intended.
- Fix to light sources not starting when loading the first save.
- Fix to animations not stopping if production was on hold because of a season, weather or time condition.
- Producer Framework Mod Version 1.4.1
- Fix to bee house to work indoors even when configured.
- Deutsch i18n. (Thanks zirolive69)
- Producer Framework Mod Version 1.4.0
- Producers can now produce colored outputs. Like Aged Roes.
- Color can be chosen based on input color, input dye color or a defined color in the output config.
- Producer can now keep the input “parent” for the output. Like Salmon Roe become Aged Salmon Roe.
- Output can now have restrictions based on input parent. Like Sturgeon Roe become Caviar and not Aged Sturgeon Roe.
- Producers can now look for an near by object to affect name, price and parent. Like Honey is affected by flowers in the bee house Producer Framework Mod.
- Object looked for can be the harvest product of a crop in the field or garden pot, a fruit from a tree or an object inside a machine.
- Producer light source can no be based on output color or dye color.
- Light source color definition is now inverted to reflect the actual light color.
- Stone name is now fixed to the proper index.
- Better log messages when loading rules and configs Producer Framework Mod.
- Producer can now have animations when producing or when ready. (Needs version 1.7 of Json Asset or content patcher to load texture in sprite sheet)
- Fix to producer config override property.
- Fix to condition validation on vanilla machines.
- Fix to AlwaysOn property on the light source config.
- Producer Framework Mod Version 1.3.2
- Fix to price multiplayer not being applied to the output.
- Better random variety.
- Producer Framework Mod Version 1.3.1
- Fix to producer light always being lit.
- New property to let the producer light always be lit.
- Producer Framework Mod Version 1.3.0
- Producer can now be set to no input start. (On placement or on day start)
- Producer can now have a number of conditions for producing. (Time, Location, Weather and Season)
- Producer can now configure a light source for while producing.
- Producer can now disable the bouncing animation while producing.
- Producer can now increase game stats on product removing per output Producer Framework Mod.
- Outputs can now have restrictions for producing. (Fuel, Location, Weather and Season)
- Each output can now have different production time, overriding the default value for the rule.
- Time to produce can be subtracted from time of the day.
- Rules now need to state they can override a specific mod.
- Mod files should now load despite case and system OS.
- Producer Framework Mod Version 1.2.0
- Modifications to support the new PFMAutomate.
- Using PFMAutomate, the producer rules added with the framework will integrate with Automate mod.
- Producer Framework Mod Version 1.1.0
- New animation for Charcoal Kiln Smoke
- New offset property to better position animations.
- Property to add sounds with a delay.
- Property to increment a game stats on Producer Framework Mod input.
- Support to the creation of Torches as output.
- Fix to max stack working with one less amount than it should.
- Producer Framework Mod Version 1.0.0
- Initial release.
- Support to content pack configuration.
- Support to method calling configuration.
- All basic vanilla rules implemented for production from Producer Framework Mod input.
DESCRIPTIONS
Objective: Producer Framework Mod make it easier to include new production rules into the game.
For Modders to use content pack:
- Inside the Producer Framework Mod folder is a template with commented explanations on what each property does.
- The framework methods use the same object that was used for the content pack. There should be no distinction between utilizing the approach and developing a content pack.
- In Producer Framework Mod, there are two configuration files. One for the rules and one for the new producers. Most items are covered in the rules file, however things like the sprite frame that should be displayed when the machine is producing or ready should be defined per machine, not per generating rule. Vanilla machines are preconfigured, but this may be altered.
- The following is the template for the custom rules that were added to the Producer Framework Mod file (ProducerRules.json):
Spoiler:
[
{ // All lines that have a default value can be removed and that value will be used.
"ProducerName": "ProducerName", //Name of the producer. Required.
"AdditionalProducerNames": [ "ProducerName2", "ProducerName3" ], //Additional names of the producer. The rule will be completely copied to the producer names in the list.
"InputIdentifier": "fruit_tree_item", //The identifier of the input. Can be the Index of the object, the category of the object if it's a negative value. Can be the name of the object, or a context_tag of the object. Can be null only if there is a NoInputStartMode for the producer. Default is null.
"InputStack": 2, //The required stack of the input. Default value is 1.
"ExcludeIdentifiers": [ "Peach" ], //List of identifiers to exclude from the rule. Follow the same rules for InputIdentifier. Default value is null.
"FuelIdentifier": "Coal", //The identifier of the Fuel. Fuel is the extra item used when producing. Can be the Index, the Name or the category of the object. Default is null.
"FuelStack": 4, //The required stack of the Fuel. Only used if fuel is not null. Default is 1.
"AdditionalFuel": {
"-6": 2,
"Coal": 1,
"246": 5
}, //Additional fuel if needed. You don't need to set a Fuel to use AdditionalFuel. The format is a pair of identifier and stack amount, following the same rules of the other fuel property. Default is null.
"MinutesUntilReady": 120, //The amount of minutes it takes to produce. Stardew days have 1600 minutes. 1200 minutes from 6 am to 2am and 400 minutes from 2am to 6am. Should be divisible by 10. Required.
"SubtractTimeOfDay": true, //If MinutesUntilReady should be subtracted by the current time of day. It always add 360 to the formula, since the day start at 6 am. So if you set MinutesUntilReady to 1600, it will always produce at 6 am of the next day. Never set to true if MinutesUntilReady is smaller than 1600.
"OutputIdentifier": "Beer", //The identifier of the output. Can be the Index or the Name of the object. Required.
"OutputName": "{farmerName}'s {inputName} {outputName} from {farmName}", //The Name of the object. This will replace the basic output name. It accepts 4 tags that are dynamically replaced. Default is null.
"OutputTranslationKey": "MyMod.MyOutput", //The translation key. This is the key in the i18n file where the mod will look for the format of the OutputName in other languages. The value of this key follows the same rules of the OutputName property above. Default is null.
"OutputGenericParentName": "Wild", //The generic parent name is for when there is no parent name for the object that needs a parent, like Wild for Honey. Default is blank.
"OutputGenericParentNameTranslationKey": "MyMod.MyOutput", //The translation key. This is the key in the i18n file where the mod will look for the OutputGenericParentName in other languages. Default is null.
"PreserveType": "Wine", //[Wine|Jelly|Pickle|Juice|Roe|AgedRoe] - If the output is one of the vanilla game Preserves Type. Default is null.
"KeepInputParentIndex": true, // When true the input of the preserved parent index will be used as the parent index of the output.
"ReplaceWithInputParentIndex": true, // When true the input of the preserved parent index will be used as the output index.
"InputPriceBased": true, //If the base price of the output should be replaced with the base price of the input. Default is false.
"OutputPriceIncrement": 200, //Increment the base price by this amount. Default is 0.
"OutputPriceMultiplier": 2.5, //Multiply the base price by this amount. Default is 1.
"KeepInputQuality": false, //If the output should have the same quality as the input. Default is false.
"OutputQuality": 2, //Set the output quality. Default is 0.
"OutputStack": 2, //Set the output stack. Default is 1.
"OutputMaxStack": 2, //Set the max output stack, if you want a random output stack. It'll be ignored if smaller than OutputStack. Default is 1.
"SilverQualityInput": { //Define an alternative stack if they input is silver quality. Removing will ignore this since probability will be 0.
"Probability": 0.2, //Probability to use the alternative stack. Default is 0.
"OutputStack": 2, //Same as others.
"OutputMaxStack": 4 //Same as others.
},
"GoldQualityInput": { //Define an alternative stack if they input is gold quality. Removing will ignore this since probability will be 0.
"Probability": 0.4, //Same as others.
"OutputStack": 3, //Same as others.
"OutputMaxStack": 4 //Same as others.
},
"IridiumQualityInput": { //Define an alternative stack if they input is iridium quality. Removing will ignore this since probability will be 0.
"Probability": 1, //Same as others.
"OutputStack": 4, //Same as others.
"OutputMaxStack": 4 //Same as others.
},
"OutputColorConfig": { // If set, the output will be a Colored Object. Remember that colored objects need the next sprite in the sheet to be a pallet for the color. Default is null.
"Type": "DefinedColor", // [ObjectColor|ObjectDyeColor|DefinedColor] If ObjectColor and the input is a colored object, it will use the color of the input. If ObjectDyeColor and the input has a dye color, it will use this color. If DefinedColor or it does find the color on the other options, it will create the color based on the Red, Green and Blue values. Default is DefinedColor.
"Red": 255, // The red value of the color. Default is 255.
"Green": 255, // The green value of the color. Default is 255.
"Blue": 255 // The blue value of the color. Default is 255.
},
"AdditionalOutputs": [ // Define a list of additional outputs. You don't need to set a default output to use the additional ones, the first additional output will be the default in that case. Only one output is given, randomly chosen between the options. Default is an empty list.
{
"OutputProbability": 0.2, //The absolute probability of getting that output, from 0 to 1. Default is 0. If 0 the remain percent not defined will be equally divided between all outputs with 0 probability. Probability are checked from the first to the last output, so with the total is bigger than 1, the remaining outputs will be ignored.
"OutputIdentifier": "Apple", //This is required. Works the same as the OutputIdentifier described in the rule.
"MinutesUntilReady": 100, //The amount of minutes it takes to produce this output. This will override the default MinutesUntilReady set in the rule. Should be divisible by 10.
"RequiredInputQuality": [ 0, 1 ], // Required input quality for the output to be possible. Default is no required quality.
"RequiredInputStack": 8, // Required input stack to be equal or greater to this value for the output to be possible. This amount will be consumed instead of InputStack value. It can be less than the InputStack value, but the player still need to have at least the value set on InputStack for the rule to be triggered. Default is no required stack.
"RequiredFuel": { "Coal": 1 }, //Required fuel for the output to be possible. These fuels will be consumed in additional to the rule defined fuels. The format is a pair of identifier and stack amount, following the same rules of the other fuel property. Default is no required fuel.
"RequiredSeason": [ "spring", "summer" ], // Required season for the output to be possible. Default is no required season.
"RequiredWeather": [ "Sunny", "Windy" ], // [Sunny|Rainy|Stormy|Snowy|Windy] Required weather for the output to be possible. Default is no required weather.
"RequiredLocation": [ "Cellar", "FarmCave" ], // Required location for the output to be possible. Default is no required location.
"RequiredMail": [ "BackpackTip" ], // Required one of the mails to have been received by the player for the output to be possible. Default is no required mail.
"RequiredEvent": [ 611439 ], // Required one of events to have been seen by the player for the output to be possible. Default is no required event.
"RequiredOutdoors": true, // [true|false|null] If true, the output can only be produced outdoors. If false, the output can only be produced indoors. If the line is removed or the value is null, it there is no restriction.
"RequiredInputParentIdentifier": [ "22", "-80" ] // Required input parent for the output to be possible. Parent is the item that originated the input.(ex. Salmon Roe has Salmon as parent) The identifier is compared with the input parent on this order: Index, Name, Category, Context_Tag.
// All other properties that refer to the output can be used in the AdditionalOutputs. Remember to use commas to separate properties.
}
],
"Sounds": [ "furnace" ], //List of sound to make when an input is placed. Default is an empty list.
"DelayedSounds": [ { "bubbles": 50 } ], //List of sounds to make after a delay. Default is an empty list.
"PlacingAnimation": "Fire", //[Bubbles|Fire|CharcoalKiltSmoke] //Animation to make when placing the input. Default is null.
"PlacingAnimationColorName": "White", //The color of the animation.[http://www.foszor.com/blog/xna-color-chart/] Default White.
"PlacingAnimationOffsetX": 0, //The offset of the X axis. The offset is relative to the animation default location, not the position of the machine. Default is 0.
"PlacingAnimationOffsetY": -32, //The offset of the Y axis. The offset is relative to the animation default location, not the position of the machine. Default is 0.
"IncrementStatsOnInput": [ "PiecesOfTrashRecycled" ], // Game stats to increment when a input is placed. Will increment the stats by the amount of the stack. Vanilla machines already increment stats when an item is removed from the machine. Only the Recycle Machine increment the stats on input. Default is an empty list.
"IncrementStatsLabelOnInput": [ "ModId.MyCustomProduct" ], // Game stats label to increment when a input is placed. Will increment the stats by the amount of the stack. Can be any label text you want. MFM also support stats label for conditions. Check vanilla stats label at the end of the file. Default is an empty list.
"OverrideMod": [ "IdOfTheMod.ToOverride" ], //If defined, this rule can override rules with the same producer/input combination from the mods in the list. Otherwise the first one to be loaded will be used.
"LookForInputWhenReady": { // Set this config if you want to look for a specific object when ready. If the rule has an input, it will consume the input on placement, check restrictions to choose the output, but won't apply name, price, quality and similar modifications based on that input. The found object when ready will be used for these modifications instead.
"Range": 5, //Max range the input will be looked for. A negative number will be considered no limit (will stop at 150 to avoid crash). Default is -1.
"InputIdentifier": [ "Orange", "-80" ], //Identifier of the input. Can be the index, name or category.
"Crop": true, //If should look up for crops. The identifier will be compared with the harvest object. Default is false.
"ExcludeForageCrops": true, //If it should ignore Forage crops. Default is false.
"GardenPot": true, //If it should look for crops inside garden pots. Default is false.
"FruitTree": true, //If it should look up for fruit trees. The identifier will be compared with the fruit. Default is false.
"BigCraftable": false //If it should look up for BigCraftables. The identifier will be compared with the held object. Default is false.
},
"WarningsLogLevel": "Warn" //[Warn|Info|Debug|Trace] Log level of messages warning the player that something was missing when loading the rule. Default is what is set on the content pack config.
}
]
/* Additional Notes
* Possible stats: [SeedsSown|ItemsShipped|ItemsCooked|ItemsCrafted|ChickenEggsLayed|DuckEggsLayed|CowMilkProduced|GoatMilkProduced|RabbitWoolProduced|SheepWoolProduced|CheeseMade|GoatCheeseMade|TrufflesFound|StoneGathered|RocksCrushed|DirtHoed|GiftsGiven|TimesUnconscious|AverageBedtime|TimesFished|FishCaught|BouldersCracked|StumpsChopped|StepsTaken|MonstersKilled|DiamondsFound|PrismaticShardsFound|OtherPreciousGemsFound|CaveCarrotsFound|CopperFound|IronFound|CoalFound|CoinsFound|GoldFound|IridiumFound|BarsSmelted|BeveragesMade|PreservesMade|PiecesOfTrashRecycled|MysticStonesCrushed|DaysPlayed|WeedsEliminated|SticksChopped|NotesFound|QuestsCompleted|StarLevelCropsShipped|CropsShipped|ItemsForaged|SlimesKilled|GeodesCracked|GoodFriends|IndividualMoneyEarned]
* Vanilla stats label: [exMemoriesWiped|childrenTurnedToDoves|trashCansChecked|boatRidesToIsland|beachFarmSpawns|hardModeMonstersKilled|timesEnchanted]
* Note that not all stats are correctly counted by the game.
*/

- Here is the template for the producers as added in the Producer Framework Mod file (ProducersConfig.json):
Spoiler:
[
{
"ProducerName": "ProducerName", //Name of the producer
"AdditionalProducerNames": [ "ProducerName2", "ProducerName3" ], //Additional names of the producer. The config will be completely copied to the producer names in the list.
"AlternateFrameProducing": true, //If the producer should use the alternate frame when producing.
"AlternateFrameWhenReady": true, //If the producer should use the alternate frame and ready for harvest.
"DisableBouncingAnimationWhileWorking": false, // If the producer bouncing animation while working should be disabled.
"NoInputStartMode": "Placement", // [Placement|DayUpdate] //If the machine has a value for this property, it can only have one ProducerRule without a InputIdentifier. If Placement, the machine will start on placement, and will restart every time the produced object is taken out. If DayUpdate, the machine will start at the begin of the day. Default is null.
"IncrementStatsOnOutput": { //Pairs of "stats:object" that identify what should be incremented.
"GoatCheeseMade": "Goat Cheese", //First value is the stats to be incremented, second value is which output should be produced for the stat to be incremented. The identifier can be the index, name, category or context tag of the output. Will increment the stats by the amount of the stack.
"CheeseMade": null //If the identifier is null, any output will match.
},
"IncrementStatsLabelOnOutput": { //Pairs of "statsLabel:object" that identify what should be incremented. You can add your own custom stats label. MFM also support stats label for conditions. Default is null.
"timesEnchanted": "Magic Bait", //First value is the stats label to be incremented, second value is which output should be produced for the stat to be incremented. The identifier can be the index, name, category or context tag of the output. Will increment the stats label by the amount of the stack.
"modId.myItemProduced": null //If the identifier is null, any output will match.
},
"MultipleStatsIncrement": true, //If all stats that match should be incremented. If false, just the first match will be increased. Default is false.
"LightSource": { // Defines the light source the producer should use when working. Default is null.
"TextureIndex": 4, // Shape of the light source. All vanilla machines uses "sconceLight". 1=lantern, 2=windowLight, 4=sconceLight, 5=cauldronLight, 6=indoorWindowLight, 7=projectorLight. Default is 4.
"Radius": 1.5, // The actual size of the light source depends on the texture used. Default is 1.5 (the size of the furnace light source with the sconceLight texture)
"OffsetX": 0, // The horizontal offset from the center of the producer tile. Default is 0.
"OffsetY": 0, // The vertical offset from the top of the producer tile. Default is 0.
"ColorType": "DefinedColor", // [ObjectColor|ObjectDyeColor|DefinedColor] If ObjectColor and the output is a colored object, it will use the color of the output. If ObjectDyeColor and the output has a dye color, it will use this color. If DefinedColor or it doesn't find the color on the other options, it will create the color based on the Red, Green and Blue values.
"ColorRed": 255, // The red value of the light color. Default is 255.
"ColorGreen": 255, // The green value of the light color. Default is 255.
"ColorBlue": 255, // The blue value of the light color. Default is 255.
"ColorAlpha": 255, // The transparency value of the light color. 0 is fully transparent, 255 is fully opaque. Default is 255.
"ColorFactor": 0.75, // The factor that will multiply all other colors parameters. Default is 1.
"AlwaysOn": true // If true, the light source will be lit even while not producing. Default is false.
},
"WorkingTime": { // If a value is defined, the machine will only produce during this period. Production will be on hold out of this period. Default is working any time.
"Begin": 600, //Format [HHmm]. The time from which the machine can start producing. Default is 0
"End": 1800 //Format [HHmm]. The time at which the machine stop producing. Default is 0
},
"WorkingWeather": [ "Rainy", "Stormy" ], // [Sunny|Rainy|Stormy|Snowy|Windy] The weathers in which the machine works. Default is working in any weather.
"WorkingLocation": [ "Barn", "Big Barn", "Deluxe Barn" ], // The locations in which the machine will work. Can be any map of building. Default is working in any location.
"WorkingOutdoors": true, // [true|false|null] If true, the machine will only work outdoor. If false, the machine will only work indoor. If the line is removed or the value is null, it will work on both kind of location.
"WorkingSeason": [ "spring", "summer", "fall" ], // The seasons in which the machine will work. Different than other conditions, season clean the machine at the start of the day if in a not working season. The default is working in any season.
"OverrideMod": [ "IdOfTheMod.ToOverride" ], //If defined, this config can override the configs for the same producer from the mods in the list. Otherwise the first one to be loaded will be used.
"ProducingAnimation": { // Set a configuration for animating the producing state of the machine. Default is null.
"RelativeFrameIndex": [ 2, 3, 4, 5, 6, 7 ], //Index and order of the frames that should be used for the animation. Index start at zero, the base frame and index of the non producing state. Extra frames are content from that frame. Extra frames can be added with Json Assets or Content Patcher.
"FrameInterval": 10, // Amount of game ticks between frames. Default is 10
"AdditionalAnimations": { //Animation that should be played depending on the object inside the machine. Pair of output identifier and list of frames. Identifier can be Name, Index or Category. Default is null.
"Salmon": [ 8, 9, 10 ],
"131": [ 8, 11, 12 ],
"-4": [ 8, 13, 14 ]
}
},
"ReadyAnimation": null //Set a configuration for animating the ready state of the machine. Same format of configuration as WorkingAnimation. Default is null.
}
]
/* Additional Notes
* Possible stats: [SeedsSown|ItemsShipped|ItemsCooked|ItemsCrafted|ChickenEggsLayed|DuckEggsLayed|CowMilkProduced|GoatMilkProduced|RabbitWoolProduced|SheepWoolProduced|CheeseMade|GoatCheeseMade|TrufflesFound|StoneGathered|RocksCrushed|DirtHoed|GiftsGiven|TimesUnconscious|AverageBedtime|TimesFished|FishCaught|BouldersCracked|StumpsChopped|StepsTaken|MonstersKilled|DiamondsFound|PrismaticShardsFound|OtherPreciousGemsFound|CaveCarrotsFound|CopperFound|IronFound|CoalFound|CoinsFound|GoldFound|IridiumFound|BarsSmelted|BeveragesMade|PreservesMade|PiecesOfTrashRecycled|MysticStonesCrushed|DaysPlayed|WeedsEliminated|SticksChopped|NotesFound|QuestsCompleted|StarLevelCropsShipped|CropsShipped|ItemsForaged|SlimesKilled|GeodesCracked|GoodFriends|IndividualMoneyEarned]
* Vanilla stats label: [exMemoriesWiped|childrenTurnedToDoves|trashCansChecked|boatRidesToIsland|beachFarmSpawns|hardModeMonstersKilled|timesEnchanted]
* Note that not all stats are correctly counted by the game.
*/
- Here is the template for the config properties as added in the Producer Framework Mod file(Config.json):
Spoiler:
{
"DefaultWarningsLogLevel": "Warn" //[Warn|Info|Debug|Trace] Default log level of messages warning the playing that something was missing when loading the rule. Default is Warn.
}
For Modder to code:
- In your SMAPI project, include the ProducerFrameworkMod.dll.
- To add the rules and configurations, use the ProducerController class.
- The parameters have the same attributes as the content pack template.
- You may also use the API method “AddContentPack” with the directory containing your content pack files, and the Producer Framework Mod will load them.
INSTALLATION
- Install the latest version of SMAPI.
- Unzip the Producer Framework Mod into /Stardew Valley/Mods.

📥Download Producer Framework Mod-v1.7.4

Special thanks:
- minervamaga, SpringsSong, ParadigmNomad, Trent, spacechase0 – They were directly involved on the producing of this Producer Framework Mod.
- Everybody at the Stardew Valley Discord #modding channel – They are all very supportive and were the inspiration for this Producer Framework Mod project.
Browse for more Stardew Valley mods with us
NOWMODS.COM