Producer Framework Mod Stardew Valley

Producer Framework Mod | Stardew Valley

by Dona

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

Producer Framework Mod Stardew Valley
nowmods information

Nowmods requirements:

Mod nameNotes
SMAPI – Stardew Modding API

Mods requiring this Producer Framework Mod file:

Mod nameNotes
(Chinese)Vyranity’s Breads Upgraded
(PFM) Easy Coal
(PFM) Flower Pack for Artisanal Soda MakersRequired 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 Germinatorrequired
Apiary on Flowers
Aqua Sanctuary
Aquilegia’s Sweet Tooth
Arcane Table ModFor the light and animation
Artifact Trove Generating Apparatus
Artisan Valley for Better Kegs Mod
Artisanal Soda MakersRequired
Artisanal Soda Makers – Portuguese
Artisanal Soda Makers Chinese (simplified)必需前置mod
Atelier Wildflour – Tea Packrequired
Atelier Wildflour Candy PackREQUIRED
Atelier Wildflour Coffee PackREQUIRED
Atelier Wildflour Floral Goods PackREQUIRED
Auto Resources
BAGI and Mead Pack for MF and ACOnly necessary for the optional liqueur
Basic Resource Converters
Be rich with animalsNECESSARY
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 Bunniesrequired for mayonnaise machine rules
BFAV Gem Infused Faunsallows machines to produce the repective goods
BFAV Golden Goose
BFAV Peafowl
BFAV Phoenixes
BFAV Phoenixes (Hungarian)
BFAV Pterodactyl
BFAV RoostersNeeded for Custom Items
BFAV So Many Horsesrequired 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 ExtensionMakes 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 ValleyRequired to be able to turn Blue Jazz to Methylamine and Methylamine to Blue Sky Meth
Breeding Overhaul
Bug Meat Generating Apparatus
Cage Free EggsNeeded 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 SummerCropfor 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 Seedsrequired
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 BinRequired
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 MakerRequired
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 RestRequired
Dust Sprites in the Coop by Wickedy – BFAV
Dwarven Brewing and DistillingAbsolutely Required
DwarvishNew requirement as of 2.0
Dwarvish (PT-BR)
Dwarvish for Chinese
E’s TeasRequired 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 FennecsWhat it adds support for (in relation to BFAV Fennec Foxes)
Financial Call CenterSimules the “financial market probabilities” in game
Fish Breeding Tanks
Fish Breeding Tanks – French
Fish-2-Seed Processor
Fizzy DrinksTo run the custom machines. Rules are configurable.
Floral Liqueurs
Floral MegamixFor now, it for the objects only obtained via multi yield so can be put through the seed maker.
Flow HiveREQUIRED + ALL DEPENDENCIES
Flower MeadsRequired
Forage of Ferngill
Frozen Yogurt
Fruit Tree Honey
Fucking Machine
Garden Village – Portuguese
Garden Village Shops – Expansion Modrequired for new artisan goods
Garden Village Shops – Russian
Garden Village Shops for CPA MUST!
Gashapon Machines
Gem Lamp Posts ModFor producing rules and machine configuration.
Gems and Minerals to Monster Loot and Omni Geodes and Artifact Troves
Girls Love Dildos
Golden CropsRequired: 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 ValleyRequired
Haste Milk
Heirloom Sunflowers
Hempire
High Purity Ore Node TreeRequired.
Hogwarts – A School of Witchcraft and Wizardry
Holiday Special OrdersTechnically optional. Required if you want one reward to function beyond being decorative.
Host TreesFor 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 SeedsRequired 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 Basicsrequired
Lumisteria Guinea Fowls
Lumisteria More Pickled Products
Luxury Meals
Machine_Ex for PFMNecessary
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 TeaIn 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 TreatsRequired
Octopetalas
Official – Industrialization for PFMIs Required
Organic Lamps
Ostrich Mayo and Golden Mayo
Pacific Northwest Mushrooms
Packing Boxes and CratesRequired
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 JewelcraftConverted to this framework
PFM Jewelcraft – Russian
PFM KEG QUALITYNECESSARY
PFM Oil Quality and AmountNECESSARY
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 Makerrequired
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 DGARequired for some machines.
Preservar Jar ExtraNECESSARY
PRESERVAR JAR QUALITYNECESSARY
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 BeersREQUIRED + All Dependencies
Raffadax Complete ProductionREQUIRED
Raffadax LightONLY REQUIRED IF Basic Production Version is Used
Raffadax LiquorsREQUIRED + All Dependencies
Raffadax TeasREQUIRED + 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 BFAVNECESSARY
riKey’s RecipesUse 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 modsMANDATORY!
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 PFMfor the new Colas
Spring Onion Seeds
Sprinkler Upgrader
Squash Crop
SSaturn’s Oriental KitchenRequired for machines to produce custom products
SSaturn’s Oriental Kitchen-Chinese Simplified
SSaturn’s Tropical FarmRequired for machines to produce custom products
StarAmy’s BFAV BisonNeeded for wool and bison horn processing
Stardew Alchemy
Stardew Survival ProjectRequired for additional machines to function
Stardew Valley For Babies (Easy Mode – For Fun – Free Play)
Stardew Vineyard Pack for Artisanal Soda MakersRequired to make the Artisanal Soda Makers mod work
Stardrop Bloom
Stardrop Candy
STARHARDNECESSARY
Statue Of Anglers Sorrow
Statue Of Fortune
Steamed Rice
SugarBlast Sweets
Summer PackFor the Ice Maker to work.
Summer TreatsEnables machines
SWANS by DRIJUCE (BFAV)
T’s Big-Craftables PackRequired.
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 ModRequired for rock and salt processors.
The Planter for All Occasions
Toffee’s ParrotsRequired for the new Artisan Good
Totem Idol
Tree breeding machine
Trent new animals PortuguesPara 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 HerbalistRequired
Vodka
Void Duck
Void Farming ModRequired
Void Machines
Vyranity’s Breads JAThis mod makes sure that all the machines work.
Vyranity’s Jams and Pies JAThis allows the machines to work
Vyranity’s Lovebirds BFAV
Vyranity’s Pizza’s JA
Vyranity’s Pizza’s Spanish
Walk to the Desert – Expansion Modrequired for artisan goods production
Walk to the Desert – ReduxRequired 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 BinONLY FOR THE PFM VERSION
Wild Food – A Forage Expansion Modrequired
Wildflour’s Pixie Foragerequired to make the tree saplings in the seed maker
Wildflour’s Specialty Ales and Meadsrequired
Willamette Valley
Winter Crops
Winter Crops For Chinese
Wood MakerAdd the producer rules.
Working Bonsai Pots

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

  • 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):
[
    { // 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.
 */
Producer Framework Mod
Producer Framework Mod
  • Here is the template for the producers as added in the Producer Framework Mod file (ProducersConfig.json):
[
    {
        "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):
{
    "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

  1. Install the latest version of SMAPI.
  2. Unzip the Producer Framework Mod into /Stardew Valley/Mods.
nowmods download

?Download Producer Framework Mod-v1.7.4

Producer Framework Mod Stardew Valley

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

Related Posts

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x