Difference between revisions of "Modding:Content pack frameworks"

From Stardew Valley Wiki
Jump to navigation Jump to search
m (Remove line)
(add new column for CP extension mods)
Line 22: Line 22:
 
See [[Modding:Content Patcher]] for a getting started guide.
 
See [[Modding:Content Patcher]] for a getting started guide.
  
==Popular frameworks==
+
==Other popular frameworks==
Here are the framework mods used most often to create content packs. <small>(The parenthesis next to each name is the [[Modding:Content packs#Conventions|conventional acronym used in the folder name]].)</small>
+
While you want to use Content Patcher in most cases, other frameworks can be useful if you need features that isn't supported by the game engine itself. These framework mods usually either extend Content Patcher by adding new assets to the game for content packs to edit (in which case they don't have their own content pack formats, but instead rely on Content Patcher's own), or define their own separate formats.
 +
 
 +
Here is a non-exhaustive list of framework mods used most often to create content packs. <small>(The parenthesis next to each name is the [[Modding:Content packs#Conventions|conventional acronym used in the folder name]] for mods that do not use Content Patcher.)</small>.
  
 
===Core (1000+ content packs)===
 
===Core (1000+ content packs)===
Line 29: Line 31:
 
|-
 
|-
 
! mod
 
! mod
 +
! is CP extension
 
! functionality
 
! functionality
|-
 
| {{nexus mod|1915|Content Patcher}} <small>(CP)</small>
 
| Add/edit/replace any content asset in the game (''i.e.,'' assets normally read from [[Modding:Player Guide/Getting Started#Find your game folder|your game's <samp>Content</samp> folder]]). It supports data/image/map files, has functionality like partial patches and prepend/append, and supports many different conditions and tokens (''e.g.,'' to make textures seasonal, data that changes by time of day, etc). A wide variety of mods can be created using Content Patcher, from simple portrait replacements to creating entire NPCs.
 
 
See [[Modding:Content Patcher]] for a getting started guide.
 
 
|-
 
|-
 
| {{nexus mod|1720|Json Assets}} <small>(JA)</small>
 
| {{nexus mod|1720|Json Assets}} <small>(JA)</small>
 +
| no
 
| Create specific item types, with support for functionality specific to each item type (''e.g.,'' specifying crafting/cooking/recipes or gift tastes for new items). It currently supports creating objects, big craftables, crops, fruit trees, hats, weapons, shirts, pants, and boots. Content and images added by Json Assets can also be edited through Content Patcher.
 
| Create specific item types, with support for functionality specific to each item type (''e.g.,'' specifying crafting/cooking/recipes or gift tastes for new items). It currently supports creating objects, big craftables, crops, fruit trees, hats, weapons, shirts, pants, and boots. Content and images added by Json Assets can also be edited through Content Patcher.
  
Line 42: Line 41:
 
|-
 
|-
 
| {{nexus mod|9246|Alternative Textures}} <small>(AT)</small>
 
| {{nexus mod|9246|Alternative Textures}} <small>(AT)</small>
 +
| no
 
| Enables texture variation for placeable objects, buildings and entities. This includes trees, animals, pets, farm buildings, plants, and more.
 
| Enables texture variation for placeable objects, buildings and entities. This includes trees, animals, pets, farm buildings, plants, and more.
 
|}
 
|}
Line 49: Line 49:
 
|-
 
|-
 
! mod
 
! mod
 +
! is CP extension
 
! functionality
 
! functionality
 
|-
 
|-
 
| {{nexus mod|4970|Producer Framework Mod}} <small>(PFM)</small>
 
| {{nexus mod|4970|Producer Framework Mod}} <small>(PFM)</small>
 +
| no
 
| Add/change the inputs/outputs/behaviour of any machine in the game. That includes vanilla machines (''e.g.,'' [[Keg|keg]]), machines added by other mods, and adding machine logic to any big craftable.
 
| Add/change the inputs/outputs/behaviour of any machine in the game. That includes vanilla machines (''e.g.,'' [[Keg|keg]]), machines added by other mods, and adding machine logic to any big craftable.
 
|-
 
|-
 
| {{nexus mod|9969|Fashion Sense}} <small>(FS)</small>
 
| {{nexus mod|9969|Fashion Sense}} <small>(FS)</small>
 +
| no
 
| Allows for bigger accessories, hairstyles, hats, shirts, sleeves and pants, as well as animation support and more.
 
| Allows for bigger accessories, hairstyles, hats, shirts, sleeves and pants, as well as animation support and more.
 
|}
 
|}
Line 62: Line 65:
 
|-
 
|-
 
! mod
 
! mod
 +
! is CP extension
 
! functionality
 
! functionality
 
|-
 
|-
 
| {{nexus mod|2080|Better Artisan Good Icons}} <small>(BAGI)</small>
 
| {{nexus mod|2080|Better Artisan Good Icons}} <small>(BAGI)</small>
 +
| no
 
| Add custom icons to artisanal items like [[honey]] or [[wine]] based on the item or flower used to make them.
 
| Add custom icons to artisanal items like [[honey]] or [[wine]] based on the item or flower used to make them.
 
|-
 
|-
 
| {{nexus mod|1254|Custom Furniture}} <small>(CF)</small>
 
| {{nexus mod|1254|Custom Furniture}} <small>(CF)</small>
 +
| no
 
| Add new [[furniture]] items.
 
| Add new [[furniture]] items.
|-
 
| {{nexus mod|9365|Dynamic Game Assets}} <small>(DGA)</small>
 
| Create specific item types, with support for functionality specific to each item type (''e.g.,'' specifying crafting/cooking/recipes or gift tastes for new items). It currently supports creating big craftables, boots, crafting recipes, crops, fences, forge recipes, fruit trees, furniture, hats, machine recipes, melee weapons, objects, gift tastes, pants, shirts, shop entries, tailoring recipes, and texture overrides.
 
 
|-
 
|-
 
| {{nexus mod|3231|Farm Type Manager}} <small>(FTM)</small>
 
| {{nexus mod|3231|Farm Type Manager}} <small>(FTM)</small>
 +
| no
 
| Add farm-like spawning logic to any map. That includes spawning stumps, debris, forage, meteors, monsters, ores, etc.
 
| Add farm-like spawning logic to any map. That includes spawning stumps, debris, forage, meteors, monsters, ores, etc.
 
|-
 
|-
 
| {{nexus mod|1536|Mail Framework Mod}} <small>(MFM)</small>
 
| {{nexus mod|1536|Mail Framework Mod}} <small>(MFM)</small>
 +
| no
 
| Add new mail with functionality like custom backgrounds, repeating mail, a wider variety of mail attachments, and support for multiple attachments. (Simple mail without the custom functionality can also be added via Content Patcher.)
 
| Add new mail with functionality like custom backgrounds, repeating mail, a wider variety of mail attachments, and support for multiple attachments. (Simple mail without the custom functionality can also be added via Content Patcher.)
 
|-
 
|-
 
| {{nexus mod|5005|Shop Tile Framework}} <small>(STF)</small>
 
| {{nexus mod|5005|Shop Tile Framework}} <small>(STF)</small>
 +
| no
 
| Add new shops or edit existing shop inventories with a wide variety of conditions.
 
| Add new shops or edit existing shop inventories with a wide variety of conditions.
 
|-
 
|-
 
| {{nexus mod|1820|TMXL Map Toolkit}} <small>(TMXL)</small>
 
| {{nexus mod|1820|TMXL Map Toolkit}} <small>(TMXL)</small>
 +
| no
 
| Add/edit in-game locations and maps. It includes a wide variety of specialized map functionality like crop layers, water color, tile actions, and Lua scripting.
 
| Add/edit in-game locations and maps. It includes a wide variety of specialized map functionality like crop layers, water color, tile actions, and Lua scripting.
  
Line 94: Line 101:
 
|-
 
|-
 
! mod
 
! mod
 +
! is CP extension
 
! functionality
 
! functionality
 
|-
 
|-
 
| {{nexus mod|11115|Better Crafting}} <small>(BC)</small>
 
| {{nexus mod|11115|Better Crafting}} <small>(BC)</small>
 +
| yes
 
| Create custom recipes more advanced than those supported by the base game including support for controlling availability and ingredients via [[Modding:Game state queries|game state queries]], running [[Modding:Trigger actions|trigger actions]] when a player crafts the recipe, and multiple possible ingredients or outputs using [[Modding:Item queries|item queries and spawn fields]].
 
| Create custom recipes more advanced than those supported by the base game including support for controlling availability and ingredients via [[Modding:Game state queries|game state queries]], running [[Modding:Trigger actions|trigger actions]] when a player crafts the recipe, and multiple possible ingredients or outputs using [[Modding:Item queries|item queries and spawn fields]].
 
Create custom crafting stations with a limited selection of recipes, which can optionally be excluded from other crafting menus. These crafting stations can be opened via map tile actions or trigger actions. Allows assigning map tile actions to big craftables, which allows using them with the custom crafting stations feature. '''1.6 Only.'''
 
Create custom crafting stations with a limited selection of recipes, which can optionally be excluded from other crafting menus. These crafting stations can be opened via map tile actions or trigger actions. Allows assigning map tile actions to big craftables, which allows using them with the custom crafting stations feature. '''1.6 Only.'''
 
|-
 
|-
 
| {{nexus mod|3853|Content Patcher Animations}} <small>(CP-A)</small>
 
| {{nexus mod|3853|Content Patcher Animations}} <small>(CP-A)</small>
 +
| yes
 
| Animate any texture loaded through Content Patcher, including for textures that can't normally be animated (''e.g.,'' item sprites).
 
| Animate any texture loaded through Content Patcher, including for textures that can't normally be animated (''e.g.,'' item sprites).
 
|-
 
|-
 
| {{nexus mod|8626|Custom Companions}} <small>(CC)</small>
 
| {{nexus mod|8626|Custom Companions}} <small>(CC)</small>
 +
| no
 
| Allows creating custom entities that can be spawned on maps or follow the player around. This includes animals in the world or wandering NPCs.
 
| Allows creating custom entities that can be spawned on maps or follow the player around. This includes animals in the world or wandering NPCs.
 
|-
 
|-
 
| {{nexus mod|6293|Custom Crafting Stations}} <small>(CCS)</small>
 
| {{nexus mod|6293|Custom Crafting Stations}} <small>(CCS)</small>
 +
| no
 
| Add customized crafting stations which opens menus with a limited selection of recipes, without those recipes cluttering up the vanilla crafting menus. The stations can be [https://stardewvalleywiki.com/Modding:Big_craftables_data big craftables] that are vanilla or added using Json Assets (JA). The stations can also be added via tiledata added to the map.
 
| Add customized crafting stations which opens menus with a limited selection of recipes, without those recipes cluttering up the vanilla crafting menus. The stations can be [https://stardewvalleywiki.com/Modding:Big_craftables_data big craftables] that are vanilla or added using Json Assets (JA). The stations can also be added via tiledata added to the map.
 
|-
 
|-
 
| {{nexus mod|1255|Custom Critters}} <small>(CC)</small>
 
| {{nexus mod|1255|Custom Critters}} <small>(CC)</small>
 +
| no
 
| Add custom critters to the world, like butterflies and bees.
 
| Add custom critters to the world, like butterflies and bees.
 
|-
 
|-
 
| {{nexus mod|13804|Custom Farm Loader}} <small>(CFL)</small>
 
| {{nexus mod|13804|Custom Farm Loader}} <small>(CFL)</small>
 +
| no
 
| A simplified way of adding custom farms. Supports among other things spawning items/wild crops/resource clumps/beach drops and setting fishing rules within your farms context.
 
| A simplified way of adding custom farms. Supports among other things spawning items/wild crops/resource clumps/beach drops and setting fishing rules within your farms context.
 
|-
 
|-
 
| {{nexus mod|7431|Expanded Storage}} <small>(XS)</small>
 
| {{nexus mod|7431|Expanded Storage}} <small>(XS)</small>
 +
| yes
 
| Adds custom storages (chests, cabinets, etc.) that support capacity at vanilla levels and beyond.
 
| Adds custom storages (chests, cabinets, etc.) that support capacity at vanilla levels and beyond.
 
|-
 
|-
 
| {{nexus mod|23458|Furniture Framework}} <small>(FF)</small>
 
| {{nexus mod|23458|Furniture Framework}} <small>(FF)</small>
 +
| no
 
| A Framework to make "Furniture Packs" with much more freedom that what a simple Content Pack allows: with it you can define seats, table slots, layers, shops, and much more.
 
| A Framework to make "Furniture Packs" with much more freedom that what a simple Content Pack allows: with it you can define seats, table slots, layers, shops, and much more.
 
|-
 
|-
 
| {{nexus mod|22612|More Nightly Events}} <small>(MNE)</small>
 
| {{nexus mod|22612|More Nightly Events}} <small>(MNE)</small>
 +
| yes
 
| Adds custom night-time events, using either configurable pre-made events, or by making your own with [[Modding:Event data|event scripting]]. '''1.6 Only.'''
 
| Adds custom night-time events, using either configurable pre-made events, or by making your own with [[Modding:Event data|event scripting]]. '''1.6 Only.'''
 
|-
 
|-
 
| {{nexus mod|6183|Train Station}} <small>(TS)</small>
 
| {{nexus mod|6183|Train Station}} <small>(TS)</small>
 +
| no
 
| Make new locations accessible through the [[railroad]] train station, so you don't need to patch paths/warps into existing maps.
 
| Make new locations accessible through the [[railroad]] train station, so you don't need to patch paths/warps into existing maps.
 
|-
 
|-
 
| {{nexus mod|17265|Unlockable Bundles}} <small>(UB)</small>
 
| {{nexus mod|17265|Unlockable Bundles}} <small>(UB)</small>
 +
| yes
 
| Enables custom bundle creation.
 
| Enables custom bundle creation.
 
|-
 
|-
 
| {{nexus mod|20357|Item Extensions}} <small>(IE)</small>
 
| {{nexus mod|20357|Item Extensions}} <small>(IE)</small>
 +
| yes
 
| Gives modders the ability to create custom resources, custom mixed seeds, and interactions between objects in-menu. (1.6)
 
| Gives modders the ability to create custom resources, custom mixed seeds, and interactions between objects in-menu. (1.6)
 
|-
 
|-
 
| {{nexus mod|20537|Personal Indoor Farm}} <small>(PIF)</small>
 
| {{nexus mod|20537|Personal Indoor Farm}} <small>(PIF)</small>
 +
| yes
 
| Adds new personal FarmHouse rooms. Modders can add room designs
 
| Adds new personal FarmHouse rooms. Modders can add room designs
 
|}
 
|}

Revision as of 01:24, 19 August 2024

Content pack frameworks are SMAPI mods designed to simplify the process of creating content packs for Stardew Valley. While they aim to minimize the need for programming experience, some familiarity with coding concepts can be helpful. Creating mods directly in C# for SMAPI may offer insight into the way the game works. Content packs are one of the two main ways to mod Stardew Valley, alongside creating C# mods for SMAPI directly.

Here's a list of software for pixel art and JSON text editors we recommend. With software like VS Code and Sublime, you can set up the schema so it checks the formatting of your JSON file as you write your mod. In that way, it's like a built in json validator site. More details on setting up the schema here.

Content Patcher

Stardew Valley loads its contents, assets, sprites, maps, and even much of its logic from its Content folder folder, which Content Patcher allows you to change.

The following is a non-exhaustive list of new things you can add to the game using Content Patcher:

  • Items (including cooking, crops, trees, clothing, furniture, and new artisan machines that can process inputs)
  • Buildings, maps, and locations
  • Farm animals and pets
  • NPCs, including dialogue, sprites, schedule and events
  • Mail, shops, quests, and special orders

With Content Patcher you can also patch existing assets, which includes:

  • Retexturing sprites, including (but not limited to) item sprites, NPC portraits and map appearance
  • Changing NPC behavior, dialogue or even their name
  • Modify maps to add new locations or warps

See Modding:Content Patcher for a getting started guide.

Other popular frameworks

While you want to use Content Patcher in most cases, other frameworks can be useful if you need features that isn't supported by the game engine itself. These framework mods usually either extend Content Patcher by adding new assets to the game for content packs to edit (in which case they don't have their own content pack formats, but instead rely on Content Patcher's own), or define their own separate formats.

Here is a non-exhaustive list of framework mods used most often to create content packs. (The parenthesis next to each name is the conventional acronym used in the folder name for mods that do not use Content Patcher.).

Core (1000+ content packs)

mod is CP extension functionality
Json Assets (JA) no Create specific item types, with support for functionality specific to each item type (e.g., specifying crafting/cooking/recipes or gift tastes for new items). It currently supports creating objects, big craftables, crops, fruit trees, hats, weapons, shirts, pants, and boots. Content and images added by Json Assets can also be edited through Content Patcher.

See its GitHub readme for documentation.

Alternative Textures (AT) no Enables texture variation for placeable objects, buildings and entities. This includes trees, animals, pets, farm buildings, plants, and more.

Popular (400+)

mod is CP extension functionality
Producer Framework Mod (PFM) no Add/change the inputs/outputs/behaviour of any machine in the game. That includes vanilla machines (e.g., keg), machines added by other mods, and adding machine logic to any big craftable.
Fashion Sense (FS) no Allows for bigger accessories, hairstyles, hats, shirts, sleeves and pants, as well as animation support and more.

Common (100+)

mod is CP extension functionality
Better Artisan Good Icons (BAGI) no Add custom icons to artisanal items like honey or wine based on the item or flower used to make them.
Custom Furniture (CF) no Add new furniture items.
Farm Type Manager (FTM) no Add farm-like spawning logic to any map. That includes spawning stumps, debris, forage, meteors, monsters, ores, etc.
Mail Framework Mod (MFM) no Add new mail with functionality like custom backgrounds, repeating mail, a wider variety of mail attachments, and support for multiple attachments. (Simple mail without the custom functionality can also be added via Content Patcher.)
Shop Tile Framework (STF) no Add new shops or edit existing shop inventories with a wide variety of conditions.
TMXL Map Toolkit (TMXL) no Add/edit in-game locations and maps. It includes a wide variety of specialized map functionality like crop layers, water color, tile actions, and Lua scripting.

See additional TMXL documentation.

Specialized frameworks

These have fewer than 100 content packs, but provide useful functionality for specific cases.

mod is CP extension functionality
Better Crafting (BC) yes Create custom recipes more advanced than those supported by the base game including support for controlling availability and ingredients via game state queries, running trigger actions when a player crafts the recipe, and multiple possible ingredients or outputs using item queries and spawn fields.

Create custom crafting stations with a limited selection of recipes, which can optionally be excluded from other crafting menus. These crafting stations can be opened via map tile actions or trigger actions. Allows assigning map tile actions to big craftables, which allows using them with the custom crafting stations feature. 1.6 Only.

Content Patcher Animations (CP-A) yes Animate any texture loaded through Content Patcher, including for textures that can't normally be animated (e.g., item sprites).
Custom Companions (CC) no Allows creating custom entities that can be spawned on maps or follow the player around. This includes animals in the world or wandering NPCs.
Custom Crafting Stations (CCS) no Add customized crafting stations which opens menus with a limited selection of recipes, without those recipes cluttering up the vanilla crafting menus. The stations can be big craftables that are vanilla or added using Json Assets (JA). The stations can also be added via tiledata added to the map.
Custom Critters (CC) no Add custom critters to the world, like butterflies and bees.
Custom Farm Loader (CFL) no A simplified way of adding custom farms. Supports among other things spawning items/wild crops/resource clumps/beach drops and setting fishing rules within your farms context.
Expanded Storage (XS) yes Adds custom storages (chests, cabinets, etc.) that support capacity at vanilla levels and beyond.
Furniture Framework (FF) no A Framework to make "Furniture Packs" with much more freedom that what a simple Content Pack allows: with it you can define seats, table slots, layers, shops, and much more.
More Nightly Events (MNE) yes Adds custom night-time events, using either configurable pre-made events, or by making your own with event scripting. 1.6 Only.
Train Station (TS) no Make new locations accessible through the railroad train station, so you don't need to patch paths/warps into existing maps.
Unlockable Bundles (UB) yes Enables custom bundle creation.
Item Extensions (IE) yes Gives modders the ability to create custom resources, custom mixed seeds, and interactions between objects in-menu. (1.6)
Personal Indoor Farm (PIF) yes Adds new personal FarmHouse rooms. Modders can add room designs

See also

  • Modding:Index for different ways to create mods, and more detailed documentation.