Line 4: |
Line 4: |
| {| | | {| |
| |- | | |- |
− | |style="border: 2px solid rgb(0, 116, 72); background: rgba(3, 160, 7, 0.1); padding: 1em;"| <big>'''[[Modding:Player Guide/Getting Started|Using mods]]'''</big><br />How to install SMAPI, use mods, and troubleshoot them. Includes the compatibility list. | + | |style="border: 2px solid rgb(0, 116, 72); background: rgba(3, 160, 7, 0.1); padding: 1em;"| <span style="font-size: larger;">'''[[Modding:Player Guide/Getting Started|Using mods]]'''</span><br />How to install SMAPI, use mods, and troubleshoot them. Includes the compatibility list. |
| |} | | |} |
| | | |
Line 12: |
Line 12: |
| | | |
| ==Creating mods== | | ==Creating mods== |
− | ''Looking for something specific? Try [{{fullurl:Special:Search|ns570=1}} searching the <tt>Modding</tt> namespace].''
| |
− |
| |
− | Some of the known framework mods are listed below, along with their capabilities. The framework mods are written in C#, so you can make content packs for them without needing to know coding yourself. They are available on Nexus Mods.
| |
− |
| |
− | '''Content Patcher (CP)''' [https://www.nexusmods.com/stardewvalley/mods/1915/ CP Nexus Mods page]
| |
− |
| |
− | * Edit or replace literally any game file in the [[Modding:Player Guide/Getting Started#Find your game folder|game's <tt>Content</tt> folder]].
| |
− |
| |
− | * Add new files, alter images, data, and maps
| |
− |
| |
− | * Send the player basic mail
| |
− |
| |
− | * Create entire NPCs
| |
− |
| |
− | * Make changes dynamic, conditional, seasonal, and/or configurable
| |
− |
| |
− | '''Content Patcher Animations (CP-A)''' [https://www.nexusmods.com/stardewvalley/mods/3853/ CP-A Nexus Mods page]
| |
− |
| |
− | * Images patched in with CP can be animated
| |
− |
| |
− | '''Json Assets (JA)''' [https://www.nexusmods.com/stardewvalley/mods/1720/ JA Nexus Mods page]
| |
− |
| |
− | * Create new objects, Big Craftables (placeable, machine-sized), crops, fruit trees, hats, weapons, shirts, pants, and boots
| |
− | * Specify crafting, cooking, and tailor recipes for new items
| |
− | * Specify gift tastes for new items
| |
− | * New item data and images can also be targeted with CP
| |
− |
| |
− | '''Custom Furniture (CF)''' [https://www.nexusmods.com/stardewvalley/mods/1254/ CF Nexus Mods page]
| |
− | * Make new items that behave as furniture (e.g. rotatable, or placeable on walls)
| |
− |
| |
− | '''TMXL (and PyTK)'''
| |
− | * Necessary to add new map locations
| |
− | * Tons of map features like crop layers and water color
| |
− | * Can use high resolution textures anywhere, even unrelated to maps
| |
− | * Extreme custom tile actions and Lua scripting
| |
− |
| |
− | '''Farm Type Manager (FTM)'''
| |
− | * Spawn stumps, debris, forage, ores, meteors, etc.
| |
− | * Spawn monsters and create new monster types based on existing ones
| |
− |
| |
− | '''Custom Ore Nodes (CON)'''
| |
− | * Make new types of rocks you can break to get items, either custom or from the base game
| |
− |
| |
− | '''Shop Tile Framework (STF)'''
| |
− | * Add to or change what's for sale in base game shops
| |
− | * Create new shops with a wide variety of conditions
| |
− |
| |
− | '''Mail Framework Mod (MFM)'''
| |
− | * Additional mail features (CP can already do basic mail)
| |
− | * Custom backgrounds, repeat mail, wider variety of mail attachments, and the ability add multiple attachments to mail
| |
− |
| |
− | '''Train Station'''
| |
− | * Make new locations accessible without patching vanilla maps
| |
− |
| |
− | '''Custom Music'''
| |
− | * Replace or add new music tracks and sound effects
| |
| | | |
| + | Making mods can be broadly divided into two categories: C# mods and content packs (formatted text files that rely on a framework C# mod). Content packs can make new NPCs, edit maps, add new items, add shops, and more, while C# mods can change fundamental game mechanics. Usually it’s easiest to start with making content packs, since you don't need to learn how to program in C#. If you're confused and want to look at a picture of what kinds of modding is possible, see [[Modding:Modder Guide/Get Started/Pictorial Guide]]. |
| | | |
| {| | | {| |
| |- | | |- |
− | |style="border: 2px solid rgb(0, 116, 72); background: rgba(3, 160, 7, 0.1); padding: 1em;"| <big>'''[[Modding:Modder Guide/Get Started|Creating SMAPI mods]]'''</big><br />How to create SMAPI mods, with tutorials and documentation. This includes the full SMAPI API + event reference. | + | |style="border: 2px solid rgb(0, 116, 72); background: rgba(3, 160, 7, 0.1); padding: 1em;"| <span style="font-size: larger;">'''[[Modding:Content pack frameworks|Creating content mods with jsons]]'''</span><br />How to create content packs for frameworks like Content Patcher. |
| |- | | |- |
− | |style="border: 2px solid rgb(0, 116, 72); background: rgba(3, 160, 7, 0.1); padding: 1em;"| <big>'''[[Modding:Content Patcher|Creating Content Patcher packs]]'''</big><br />How to create content packs for Content Patcher, including links to more info. | + | |style="border: 2px solid rgb(0, 116, 72); background: rgba(3, 160, 7, 0.1); padding: 1em;"| <span style="font-size: larger;">'''[[Modding:Modder Guide/Get Started|Creating SMAPI mods with C#]]'''</span><br />How to create SMAPI mods, with tutorials and documentation. This includes the full SMAPI API + event reference. |
| |- | | |- |
− | |style="border: 2px solid rgb(0, 116, 72); background: rgba(3, 160, 7, 0.1); padding: 1em;"| <big>'''[[Modding:Translations|Translating mods]]'''</big><br />How to contribute mod translations for any language supported by the game. (And for modders, how to enable and request translations.) | + | |style="border: 2px solid rgb(0, 116, 72); background: rgba(3, 160, 7, 0.1); padding: 1em;"| <span style="font-size: larger;">'''[[Modding:Translations|Translating mods]]'''</span><br />How to contribute mod translations for any language supported by the game. (And for modders, how to enable and request translations.) |
| |} | | |} |
| | | |
| + | * ''Looking for something specific? Try [{{fullurl:Special:Search|ns570=1}} searching the <samp>Modding</samp> namespace].'' |
| * [[Modding:Help|Get help or ask question]] | | * [[Modding:Help|Get help or ask question]] |
| * [[Modding:Community|Join the community]] | | * [[Modding:Community|Join the community]] |
| * [[Modding:Open source|Open source]] | | * [[Modding:Open source|Open source]] |
| | | |
− | ===Advanced topics=== | + | ===Specific topics=== |
| * '''[[Modding:Modder Guide/APIs|SMAPI API reference]]''' (also on the sidebar in the "Creating SMAPI mods" guide above) | | * '''[[Modding:Modder Guide/APIs|SMAPI API reference]]''' (also on the sidebar in the "Creating SMAPI mods" guide above) |
| + | * '''[https://stardewmodding.wiki.gg Modding tutorials wiki]''' |
| * [[Modding:Common tasks|Common tasks (SMAPI mods)]] | | * [[Modding:Common tasks|Common tasks (SMAPI mods)]] |
− | * [[Modding:Specific Examples|Specific Examples (SMAPI mods)]]
| |
| * [[Modding:Editing XNB files|Editing XNB files]] | | * [[Modding:Editing XNB files|Editing XNB files]] |
| * [[Modding:IDE reference|IDE reference]] | | * [[Modding:IDE reference|IDE reference]] |
| + | |
| + | * Game: |
| + | ** [[Modding:Modder Guide/Game Fundamentals|Game fundamentals]] |
| + | ** [[Modding:Audio|Audio]] |
| + | ** [[Modding:Custom languages|Custom languages]] |
| + | ** [[Modding:Console commands|Console commands]] |
| + | ** [[Modding:World map|World map]] |
| + | ** [[Modding:Game state queries|Game state queries]] |
| + | ** [[Modding:Trigger actions|Trigger actions]] |
| + | ** [[Modding:Tokenizable strings|Tokenizable strings]] |
| | | |
| * NPCs: | | * NPCs: |
Line 98: |
Line 54: |
| ** [[Modding:Schedule data|Schedules]] | | ** [[Modding:Schedule data|Schedules]] |
| | | |
− | * Objects: | + | * Item data: |
− | ** [[Modding:Big craftables data|Craftable items]] | + | ** [[Modding:Items|Items]] |
| ** [[Modding:Crop data|Crops]] | | ** [[Modding:Crop data|Crops]] |
− | ** [[Modding:Furniture data|Furniture]] | + | ** [[Modding:Fruit trees|Fruit trees]] |
− | ** [[Modding:Hat data|Hats]] | + | ** [[Modding:Item queries|Item queries]] |
− | ** [[Modding:Object data|Objects]] | + | ** [[Modding:Machines|Machines]] |
− | ** [[Modding:Weapon data|Weapons]] | + | ** [[Modding:Recipe data|Recipes]] |
| + | ** [[Modding:Shops|Shops]] |
| | | |
− | * Other: | + | * Locations and maps: |
| + | ** [[Modding:Maps|Maps]] |
| + | ** [[Modding:Farm data|Farm data]] |
| + | ** [[Modding:Festival data|Festivals]] |
| + | ** [[Modding:Fish data|Fish]] |
| + | ** [[Modding:Movie theater data|Movie theater]] |
| + | ** [[Modding:Weather data|Weather]] |
| + | |
| + | * Other content: |
| ** [[Modding:Animal data|Animals]] | | ** [[Modding:Animal data|Animals]] |
| ** [[Modding:Achievement data|Achievements]] | | ** [[Modding:Achievement data|Achievements]] |
| ** [[Modding:Blueprint data|Blueprints]] | | ** [[Modding:Blueprint data|Blueprints]] |
| ** [[Modding:Bundles|Bundles]] | | ** [[Modding:Bundles|Bundles]] |
− | ** [[Modding:Debug commands|Debug commands]]
| |
| ** [[Modding:Farmer sprite|Farmer sprite]] | | ** [[Modding:Farmer sprite|Farmer sprite]] |
− | ** [[Modding:Festival data|Festivals]]
| |
− | ** [[Modding:Fish data|Fish]]
| |
| ** [[Modding:Fish Pond data|Fish Ponds]] | | ** [[Modding:Fish Pond data|Fish Ponds]] |
− | ** [[Modding:Location_data|Locations]] | + | ** [[Modding:Location data|Locations]] |
− | ** [[Modding:Maps|Maps]]
| |
| ** [[Modding:Mail data|Mail]] | | ** [[Modding:Mail data|Mail]] |
| ** [[Modding:Monster data|Monsters]] | | ** [[Modding:Monster data|Monsters]] |
− | ** [[Modding:Recipe data|Recipes]] | + | ** [[Modding:Special orders|Special orders]] |
− | ** [[Modding:Weather data|Weather]] | + | |
| + | * Specialized (normally linked from other pages): |
| + | ** [[Modding:Common data field types|Common data field types]] |
| | | |
| ===Migration guides=== | | ===Migration guides=== |
Line 141: |
Line 104: |
| | [[Modding:Migrate to SMAPI 3.0|SMAPI 3.0]] || November 2019 | | | [[Modding:Migrate to SMAPI 3.0|SMAPI 3.0]] || November 2019 |
| |- | | |- |
− | | [[Modding:Migrate to Harmony 2.0|Harmony 2.0]] || TBD | + | | [[Modding:Migrate to Stardew Valley 1.5|Stardew Valley 1.5]] || December 2020 |
| + | |- |
| + | | [[Modding:Migrate to 64-bit on Windows|64-bit on Windows]] || May 2021 |
| + | |- |
| + | | [[Modding:Migrate to Harmony 2.0|Harmony 2.0]] || July 2021 |
| + | |- |
| + | | [[Modding:Migrate to Stardew Valley 1.5.5|Stardew Valley 1.5.5]] || November 2021 |
| + | |- |
| + | | [[Modding:Migrate to SMAPI 4.0|SMAPI 4.0]] || March 2024 |
| + | |- |
| + | | [[Modding:Migrate to Stardew Valley 1.6|Stardew Valley 1.6]] || March 2024 |
| |} | | |} |
| | | |
| ===See also=== | | ===See also=== |
− | * [[User:Kdau#Notes on Android SMAPI modding]] | + | * Pixel art resources: |
| + | ** [https://sundrop.kvdk.net/art-guide Stardew Valley art style guide] |
| + | ** [https://pixeljoint.com/forum/forum_posts.asp?TID=11299&PID=139322 Pixel art tutorial on Pixel Joint] |
| + | ** [https://medium.com/pixel-grimoire/how-to-start-making-pixel-art-2d1e31a5ceab Pixel art guide on Medium] |
| + | * Content pack resources: |
| + | ** [https://docs.google.com/spreadsheets/d/1CpDrw23peQiq-C7F2FjYOMePaYe0Rc9BwQsj3h6sjyo The great ID spreadsheet] |
| + | ** [https://stardewmodding.wiki.gg/wiki/Custom_NPC_Tiles Custom NPC festival tile positions] |
| + | * Useful tools: |
| + | ** [https://smapi.io/mods SMAPI mod compatibility list] ([[Modding:Mod compatibility|you can edit it!]]) |
| + | ** [https://smapi.io/log SMAPI log parser] |
| + | ** [https://smapi.io/json JSON validator] |
| + | * [[User:Kdau#Notes on Android SMAPI modding|Kdau's notes on Android SMAPI modding]] |
| + | * [[User:Dem1se#Getting_Started_with_Making_UIs| Dem1se's getting started guide on mod UIs]] |
| | | |
| [[Category:Modding| ]] | | [[Category:Modding| ]] |
Line 151: |
Line 136: |
| [[de:Modding:Index]] | | [[de:Modding:Index]] |
| [[es:Modding:Índice]] | | [[es:Modding:Índice]] |
| + | [[fr:Modding:Index]] |
| [[pt:Modificações:Índice]] | | [[pt:Modificações:Índice]] |
| [[ru:Модификации:Индекс]] | | [[ru:Модификации:Индекс]] |
| [[zh:使用模组:目录]] | | [[zh:使用模组:目录]] |