Difference between revisions of "Modding:Player Guide/Getting Started"

From Stardew Valley Wiki
Jump to navigation Jump to search
(→‎Can I use mods on Linux, Mac, Windows, or consoles?: update for Android integrated into main docs)
 
(88 intermediate revisions by 32 users not shown)
Line 1: Line 1:
{{../header}}
+
{{modding player guide header}}
  
 
Do you want to play Stardew Valley with mods? This guide is for you!
 
Do you want to play Stardew Valley with mods? This guide is for you!
Line 8: Line 8:
 
Using mods is easy! You just need to...
 
Using mods is easy! You just need to...
 
# Install SMAPI. That's the mod loader for Stardew Valley — it launches the game with mod support and lets mods interact directly with the game code. It's safely installed alongside your normal game, and you can uninstall it anytime.
 
# Install SMAPI. That's the mod loader for Stardew Valley — it launches the game with mod support and lets mods interact directly with the game code. It's safely installed alongside your normal game, and you can uninstall it anytime.
# Unzip mods into your <tt>Mods</tt> folder.
+
# Unzip mods into your <samp>Mods</samp> folder.
  
 
See [[#Frequent questions|frequent questions below]], or keep reading to get started!
 
See [[#Frequent questions|frequent questions below]], or keep reading to get started!
Line 14: Line 14:
 
==Getting started==
 
==Getting started==
 
===Install SMAPI===
 
===Install SMAPI===
First you'll need to install the mod loader, SMAPI. Click the right link for more info:
+
First you'll need to install the mod loader, SMAPI.  
  
* [[Modding:Installing SMAPI on Android|Instructions for Android]]
+
See the instructions for:
* [[Modding:Installing SMAPI on Linux|Instructions for Linux]]
+
* [[Modding:Installing SMAPI on Windows|Windows]];
* [[Modding:Installing SMAPI on Mac|Instructions for Mac]]
+
* [[Modding:Installing SMAPI on Mac|macOS]];
* [[Modding:Installing SMAPI on Windows|Instructions for Windows]]
+
* [[Modding:Installing SMAPI on Linux|Linux]];
 +
* [[Modding:Installing SMAPI on Steam Deck|Steam Deck]] (the handheld console);
 +
* or [[Modding:Installing SMAPI on Android|Android]].
  
 
===Find mods===
 
===Find mods===
Line 25: Line 27:
  
 
<ul>
 
<ul>
<li>[http://www.nexusmods.com/stardewvalley/mods/topalltime/ most popular mods on Nexus];</li>
+
<li>[https://www.nexusmods.com/stardewvalley/mods/topalltime/ most popular mods on Nexus];</li>
 
<li>[https://gist.github.com/Pathoschild/b608892d3e60bd25d0eea71ca7584649 recommendations for a first playthrough];</li>
 
<li>[https://gist.github.com/Pathoschild/b608892d3e60bd25d0eea71ca7584649 recommendations for a first playthrough];</li>
 +
<li>[https://stardewmodding.wiki.gg/wiki/Category:Recommendations recommendations from other players];</li>
 
<li>search for mods here:
 
<li>search for mods here:
 
{| class="wikitable"
 
{| class="wikitable"
Line 33: Line 36:
 
! description
 
! description
 
|-
 
|-
| '''[http://nexusmods.com/stardewvalley/ Nexus Mods]'''
+
| '''[https://nexusmods.com/stardewvalley/ Nexus Mods]'''
| Most mods are released here.<br /><small>(Registering an account is free, just don't choose a package when you register.)</small>
+
| Most mods are released here.<br /><small>An account is required, but it's free; just don't choose a package when you register. You can use their [https://www.nexusmods.com/site/mods/1?tab=files Vortex client] (Windows only) to install/manage your mods, or download them manually.</small>
 
|-
 
|-
| [http://community.playstarbound.com/resources/categories/stardew-valley.22/ Chucklefish mods]
+
| [https://www.moddrop.com/stardew-valley/ ModDrop]
| Some mods are released here (most are also on Nexus).
+
| Many mods are released here.<br /><small>You can use their ModDrop client (Windows only) to install/manage/auto-update your mods.</small>
 
|-
 
|-
| [https://www.moddrop.com ModDrop]
+
| [https://forums.stardewvalley.net/index.php?resources/ Official forums]
| Pretty new. Not many mods yet, but you can install those it has very quickly through their (Windows-only) client.  Auto-updates mods that are published and installed through it.
+
| Some mods are released here, though most are also on Nexus or ModDrop.
 
|-
 
|-
| [http://community.playstarbound.com/forums/mods.215/ Stardew Valley forums]
+
| [https://community.playstarbound.com/resources/categories/stardew-valley.22/ Chucklefish mods]
| Some mods are posted directly in the forums. Some hidden gems are only here, but finding them can be a challenge.
+
| Some older mods are released here, though most are also on Nexus or ModDrop.
 +
|-
 +
| [https://community.playstarbound.com/forums/mods.215/ Chucklefish forums]
 +
| Some older mods are posted directly in the Chucklefish forums. Some hidden gems are only here, but finding them can be a challenge.
 
|}</li>
 
|}</li>
 
</ul>
 
</ul>
  
Before you download a mod...
+
Before you download a mod, check if it works with the [[Version_History|latest version]] of the game. For SMAPI mods, see the [[Modding:Mod compatibility|mod compatibility list]]; SMAPI will also automatically disable most incompatible SMAPI mods. You're on your own for XNB mods; try checking the mod description or comments for those.
* Does it work with the latest version of the game? (SMAPI will automatically disable most incompatible SMAPI mods, but you're on your own with XNB mods. Try checking the mod description or comments.)
 
* Don't download from stardewvalleymods.net. (Mods here are usually outdated, since the site republishes mods without permission for ad revenue.)
 
  
 
===Find your game folder===
 
===Find your game folder===
Next you'll need to open your game folder (the one containing Stardew Valley's <code>.exe</code> file). Here's where to find it by default:
+
Next you'll need to open your game folder (the one containing {{executable name|Stardew Valley}} or {{executable name|StardewValley}}). Here's where to find it by default:
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 60: Line 64:
 
|-
 
|-
 
| Windows
 
| Windows
| GOG: <code>C:\Program Files (x86)\GOG Galaxy\Games\Stardew Valley</code><br /> or <code>C:\GOG Games\Stardew Valley</code><br />Steam: <code>C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley</code>
+
| GOG: <code>C:\Program Files (x86)\GOG Galaxy\Games\Stardew Valley</code><br /> or <code>C:\GOG Games\Stardew Valley</code><br />Steam: <code>C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley</code><br />Xbox App:<code>C:\XboxGames\Stardew Valley</code>
 
|-
 
|-
 
| Android
 
| Android
Line 70: Line 74:
 
| Mac
 
| Mac
 
| GOG: <code>/Applications/Stardew Valley.app/Contents/MacOS</code><br />Steam: <code>~/Library/Application Support/Steam/SteamApps/common/Stardew Valley/Contents/MacOS</code>
 
| GOG: <code>/Applications/Stardew Valley.app/Contents/MacOS</code><br />Steam: <code>~/Library/Application Support/Steam/SteamApps/common/Stardew Valley/Contents/MacOS</code>
 +
 +
See also a [[Modding:Installing SMAPI on Mac Pictorial Guide#Find and save your Mods folder|pictorial guide to finding the folder on macOS]].
 
|}
 
|}
  
Line 93: Line 99:
 
:# In the game sidebar, right-click on ''Stardew Valley''.
 
:# In the game sidebar, right-click on ''Stardew Valley''.
 
:# Choose ''Manage Installation > Show Folder'' to open the game folder.
 
:# Choose ''Manage Installation > Show Folder'' to open the game folder.
 +
 +
; Option 5&#58; finding it through Xbox Gamepass
 +
 +
:# Open the Xbox game client.
 +
:# On the main page for the game, click the ''...'' button.
 +
:# Select ''Open Mods Folder''
 +
 +
For images, please see [[Modding:Installing_SMAPI_on_Windows#Xbox_app]]
 
}}
 
}}
  
Line 98: Line 112:
 
To install a mod, just unzip it into the <code>Mods</code> folder in [[#Find your game folder|your game folder]]. Make sure each mod has its own subfolder, without trailing numbers. For example, if you have a <code>PineapplesEverywhere</code> mod, you should have a file structure like this:
 
To install a mod, just unzip it into the <code>Mods</code> folder in [[#Find your game folder|your game folder]]. Make sure each mod has its own subfolder, without trailing numbers. For example, if you have a <code>PineapplesEverywhere</code> mod, you should have a file structure like this:
 
<pre>
 
<pre>
Stardew Valley/
+
📁 Stardew Valley/
   Mods/
+
   📁 Mods/
       PineapplesEverywhere/
+
       📁 PineapplesEverywhere/
         PineapplesEverywhere.dll
+
         🗎 PineapplesEverywhere.dll
         manifest.json
+
         🗎 manifest.json
 
</pre>
 
</pre>
  
TIP: Download mods into a folder other than <code>Mods</code> and unzip there before moving the correct folder(s) into <code>Mods</code>.  This helps prevent errors related to extra files.
+
Tips:
 
+
<ul>
If you have a lot of mods, you can optionally organise them into subfolders. SMAPI will automatically search inside each folder until it finds one with files.
+
<li>If you have a lot of mods, you can optionally organise them into subfolders. SMAPI will automatically search inside each folder until it finds one with files.
 
<pre>
 
<pre>
Stardew Valley/
+
📁 Stardew Valley/
   Mods/
+
   📁 Mods/
       Fruit mods/
+
       📁 Fruit mods/
         PineapplesEverywhere/
+
         📁 PineapplesEverywhere/
             PineapplesEverywhere.dll
+
             🗎 PineapplesEverywhere.dll
             manifest.json
+
             🗎 manifest.json
         ApplesNowhere/
+
         📁 ApplesNowhere/
             ApplesNowhere.dll
+
             🗎 ApplesNowhere.dll
             manifest.json
+
             🗎 manifest.json
</pre>
+
</pre></li>
 
+
<li>To disable a folder, just add a dot in front of the folder name (like <code>.disabled mods</code>). If Windows doesn't let you do that, put a dot at the end too and it'll let you (like <code>.disabled mods.</code>).</li>
If you have a folder that looks like <code>PineapplesEverywhere-1234567890</code>, check inside it for the actual mod folder.  Folders named like this often have more folders and possibly readme files inside them.
+
<li>Download mods into a folder other than <code>Mods</code>, unzip them there, and then move their folder(s) into <code>Mods</code>. That helps prevent errors related to extra files.</li>
 
+
<li>If you have a folder that looks like <code>PineapplesEverywhere-1234567890</code>, check inside it for the actual mod folder. Folders named like this often have more folders and possibly readme files inside them.</li>
If you want to disable a folder, just add a dot in front of the folder name (like <code>.disabled mods</code>). Windows won't let you do that by default, but just put a dot at the end too and it'll let you (like <code>.disabled mods.</code>).
+
</ul>
  
 
===Configure mods===
 
===Configure mods===
Some mods have a <code>config.json</code> file in their mod folder. It might be created the first time you launch the game with that mod. This file lets you customise the mod settings.
+
Some mods have a <code>config.json</code> file in their mod folder, which lets you customise the mod settings. The file is usually created the first time you launch the game with that mod installed.
  
To edit the <code>config.json</code> file, just open it in a text editor. Make sure the game isn't running when you edit it, or your changes might not take effect. See a [http://www.w3schools.com/js/js_json_syntax.asp basic guide to JSON]; basically make sure your values are surrounded by quotes (like <code>"value"</code>). You can use this [https://jsonformatter.curiousconcept.com/ JSON validator] to make sure the format is correct.
+
To edit the <code>config.json</code> file, just open it in a text editor. Make sure the game isn't running when you edit it, or your changes might not take effect. See a [https://www.w3schools.com/js/js_json_syntax.asp basic guide to JSON]; basically make sure your values are surrounded by quotes (like <code>"value"</code>). You can use this [https://jsonformatter.curiousconcept.com/ JSON validator] to make sure the format is correct.
  
 
===Update mods===
 
===Update mods===
Line 134: Line 148:
 
More detailed steps:
 
More detailed steps:
 
# Download the new mod version.
 
# Download the new mod version.
 +
# Check the mod page for any special update instructions.
 
# Unzip it somewhere else (not in your <code>Mods</code> folder).
 
# Unzip it somewhere else (not in your <code>Mods</code> folder).
 
# Open the mod's old and new folders, so the <code>manifest.json</code> is visible in both.
 
# Open the mod's old and new folders, so the <code>manifest.json</code> is visible in both.
Line 162: Line 177:
 
| ✓ fully supported
 
| ✓ fully supported
 
|-
 
|-
|rowspan="3"| console
+
|rowspan="5"| console
 
| Nintendo Switch
 
| Nintendo Switch
 
| ✖ no mod support
 
| ✖ no mod support
Line 168: Line 183:
 
| PS4
 
| PS4
 
| ✖ no mod support
 
| ✖ no mod support
 +
|-
 +
| PS Vita
 +
| ✖ no mod support
 +
|-
 +
| Steam Deck
 +
| ✓ fully supported, but may increase power usage
 
|-
 
|-
 
| XBox One
 
| XBox One
Line 181: Line 202:
  
 
Almost all mods will work on any supported platform, since SMAPI rewrites them for compatibility.
 
Almost all mods will work on any supported platform, since SMAPI rewrites them for compatibility.
 +
 +
<small>(For more technical info, see the [https://github.com/Pathoschild/SMAPI/issues/632 SMAPI tracking ticket].)</small>
  
 
===Can mods corrupt my save?===
 
===Can mods corrupt my save?===
 
Yes, but it's extremely rare. Only a few mods affect your save file at all. If you avoid those, mods are very unlikely to corrupt your save file. In most cases, you can fix save corruption by [[Saves#Undo the last save|undoing the last save]].
 
Yes, but it's extremely rare. Only a few mods affect your save file at all. If you avoid those, mods are very unlikely to corrupt your save file. In most cases, you can fix save corruption by [[Saves#Undo the last save|undoing the last save]].
  
If you're worried, just back up [[Saves|your save files]] occasionally. That's strongly recommended even if you don't use mods, since save corruption is almost always caused by the game itself. SMAPI also creates a daily backup of your saves automatically; you can retrieve those from the <tt>Mods/SaveBackup</tt> folder.
+
If you're worried, just back up [[Saves|your save files]] occasionally. That's strongly recommended even if you don't use mods, since save corruption is almost always caused by the game itself. SMAPI also creates a daily backup of your saves automatically; you can retrieve those from the <samp>Mods/SaveBackup</samp> folder.
  
 
===Can I stop using mods later?===
 
===Can I stop using mods later?===
Line 201: Line 224:
 
|-
 
|-
 
!style="text-align: left;"| type of mod
 
!style="text-align: left;"| type of mod
!style="text-align: left;"| effects
+
!style="text-align: left;"| affects
 
!style="text-align: left;"| summary
 
!style="text-align: left;"| summary
 
|-
 
|-
Line 210: Line 233:
 
| Map replacements
 
| Map replacements
 
| local
 
| local
| That includes mods which replace an existing map (without adding special logic with SMAPI). These are only visible to players who install them. Players without the custom map will see the normal map and will be subject to the normal bounds (e.g. they may see other players walk through walls, but they won't be able to follow).
+
| That includes mods which replace an existing map (without adding special logic with SMAPI). These are only visible to players who install them. Players without the custom map will see the normal map and will be subject to the normal bounds (''e.g.,'' they may see other players walk through walls, but they won't be able to follow).
 +
|-
 +
| Custom items
 +
| global
 +
| That includes new crops, fruit trees, craftables, cooking recipes, furniture, wallpapers and floors, weapons, rings, clothing, and hats. Any mod that adds completely new items that don't exist in the base game needs to be installed by ''all players''. If anyone is missing a custom item mod, it can cause crashes, give you error items, break your save, or stop farmhands from joining.
 +
|-
 +
| Custom locations
 +
| global
 +
| That includes new locations and buildables added by TMXL or other frameworks. All players should have the same location mods. Entering a custom location that not everyone has installed can cause crashes. Buildables can only be built by the main player.
 +
|-
 +
| Custom NPCs
 +
| global
 +
| That includes any mod that adds new characters to the game. All players should have the same custom NPCs installed to avoid issues. Farmhands are currently unable to see custom NPCs at festivals (this is due to be fixed in an upcoming version of Content Patcher). Farmhands also can't marry custom NPCs; the host is able to do that with no issues.  
 
|-
 
|-
 
| Visual changes
 
| Visual changes
 +
| ''depends''
 +
| That includes custom portraits and sprites, custom farmer appearance, recolors, etc. Most of these mods only affect the players who installed them. Other players won't be affected. If both players have the same mods, they'll see the same visual changes. The exception is Content Patcher farmer appearance mods that add, rather than recolor, the existing sprites. All players need to have the same ''amount'' of new sprites (''e.g.,'' hairstyles or shirts) or there can be visual bugs for other players. On older versions of SMAPI, this can cause crashes.
 +
|-
 +
| "Cheat"/"efficiency" mods
 
| local
 
| local
| That includes custom portraits and sprites, custom farmer appearance (except GetDressed or Kisekae), recolors, etc. These mods only affect the players who installed them. Other players won't be affected. If both players have the same mods, they'll see the same visual changes though.
+
| That includes mods that increase player speed, make farm tasks easier, give infinite energy, spawn items, etc. Other players will see the effects, but won't be able to use the mod unless they have it installed. It won't affect other players.
 
|-
 
|-
 
| Time changes
 
| Time changes
Line 234: Line 273:
  
 
===What is SMAPI?===
 
===What is SMAPI?===
SMAPI is the mod loader for Stardew Valley. It works fine with GOG and Steam achievements, it's compatible with Linux/Mac/Windows, you can uninstall it anytime, and there's a friendly community if you need help. SMAPI is required for most types of Stardew Valley mod.
+
SMAPI is the mod loader for Stardew Valley. It works fine with GOG and Steam achievements, it's compatible with Linux/Mac/Windows and (unofficially) Android, you can uninstall it anytime, and there's a friendly community if you need help. SMAPI is required for most types of Stardew Valley mods.
  
 
SMAPI does a lot for you. For example, it will...
 
SMAPI does a lot for you. For example, it will...
  
# Load mods into the game and provide APIs they can use. Many types of mod aren't possible without SMAPI.
+
# Load mods into the game and provide APIs they can use. Many types of mods aren't possible without SMAPI.
# Rewrite mods for crossplatform compatibility, so you can use almost any mod on Linux/Mac/Windows.
+
# Rewrite mods for crossplatform compatibility, so you can use almost any mod on any platform.
 
# Intercept errors. If a mod crashes or causes an error, SMAPI will intercept the error, show the error details in the console window, and in most cases automatically recover the game.
 
# Intercept errors. If a mod crashes or causes an error, SMAPI will intercept the error, show the error details in the console window, and in most cases automatically recover the game.
 
# Provide update checks. SMAPI automatically alerts you when a new version of a mod is available.
 
# Provide update checks. SMAPI automatically alerts you when a new version of a mod is available.
Line 246: Line 285:
 
===Where are my...===
 
===Where are my...===
 
* Game folder: see ''[[#Find your game folder|Getting Started#Find your game folder]]''.
 
* Game folder: see ''[[#Find your game folder|Getting Started#Find your game folder]]''.
* SMAPI log: see ''[[Modding:Player Guide/Troubleshooting#Find your SMAPI log|Troubleshooting#Find your SMAPI log]]''.
+
* SMAPI log: see [https://smapi.io/log smapi.io/log] (and [[Modding:Help]] if you need help with something).
 
* Save files: see ''[[Saves]]''.
 
* Save files: see ''[[Saves]]''.
  
 
===Can I have different mod groups?===
 
===Can I have different mod groups?===
Yep. There are two common approaches:
+
Yep, SMAPI has built-in support for different mod groups. The instructions may seem complex, but it's easy once you get the hang of it:
 +
 
 +
For simplicity, you can also just rename the Mods folder to something else.
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Platform
 +
! Instructions
 +
|-
 +
| Windows
 +
| &#32;
 +
# Create a separate folder for each mod group in [[#Find your game folder|your game folder]], like <code>Mods</code> and <code>Mods (multiplayer)</code>.
 +
# Create a shortcut to the {{executable name|StardewModdingAPI}} file in [[#Find your game folder|your game folder]].
 +
# Right-click the shortcut, choose <samp>Properties</samp>, and add this to the end of the <samp>Target</samp> field: <code> --mods-path "Mods (multiplayer)"</code> (changing folder name as needed). '''Don't delete any of the existing text in that field! This should be added to the end of what's already there.''' Done correctly, it should look something like <code>"your-path-here\SteamLibrary\steamapps\common\Stardew Valley\StardewModdingAPI.exe" --mods-path "Mods (multiplayer)"</code>.
 +
# Double-click that shortcut to launch SMAPI with the specified mod folder.
 +
|-
 +
|-
 +
| Windows (Steam)
 +
| &#32;
 +
# Create a separate folder for each mod group in [[#Find your game folder|your game folder]], like <code>Mods</code> and <code>Mods (multiplayer)</code>.
 +
# Create a shortcut to your {{executable name|steam}} file.
 +
# Right-click the shortcut, choose <samp>Properties</samp>, and add this to the end of the <samp>Target</samp> field: <code>-applaunch 413150 --mods-path "Mods (multiplayer)"</code> (changing folder name as needed). '''Don't delete any of the existing text in that field! This should be added to the end of what's already there.''' Done correctly, it should look something like <code>"your-path-here\Steam\steam.exe" -applaunch 413150 --mods-path "Mods (multiplayer)"</code>.
 +
# Optionally you can click the <samp>"Change Icon..."</samp> button and browse to your Stardew Valley folder to change the icon of the shortcut from the Steam icon to the Stardew Valley Icon.
 +
# Double-click that shortcut to make Steam launch SMAPI with the specified mod folder and all steam features.
 +
|-
 +
|-
 +
| Windows (Steam, Non-Steam Game Method)
 +
| &#32;
 +
# Create a separate folder for each mod group in [[#Find your game folder|your game folder]], like <code>Mods</code> and <code>Mods (multiplayer)</code>.
 +
# Add SMAPI as a Non-Steam Game to your library a second time. Follow the second set of instructions in [[Modding:Installing SMAPI on Windows#Steam|installing SMAPI on Windows]] - it is highly suggested you alter the title in your Steam Library to differentiate between mod groups, such as "Stardew Valley Modded" and "Stardew Valley Modded Multiplayer".
 +
# Right-click the new SMAPI entry in your Steam Library, select "Properties", and add this to the end of the Target field: <code> --mods-path "Mods (multiplayer)"</code>. '''Don't delete any of the existing text in that field! This should be added to the end of what's already there.''' Done correctly, it should look something like <code>"your-path-here\SteamLibrary\steamapps\common\Stardew Valley\StardewModdingAPI.exe" --mods-path "Mods (multiplayer)"</code>.
 +
# Click the "Play" button in the new SMAPI entry in Steam to make Steam launch SMAPI with the specified mod folder and all Steam features.
 +
|-
 +
| Linux
 +
| <ol>
 +
<li>Create a separate folder for each mod group in [[#Find your game folder|your game folder]], like <code>Mods</code> and <code>Mods (multiplayer)</code>.</li>
 +
<li>Create a file like <samp>SMAPI_multiplayer.sh</samp> on your desktop.</li>
 +
<li>Edit the file and set the text to this (change the folder name as needed, and replace <samp>/path/to/StardewValley</samp> with the full path to the <samp>StardewValley</samp> file in [[#Find your game folder|your game folder]]):
 +
<syntaxhighlight lang="bash">
 +
#!/bin/bash
 +
SMAPI_MODS_PATH="Mods (multiplayer)" /path/to/StardewValley
 +
</syntaxhighlight></li>
 +
<li>Mark the file executable (see [https://support.apple.com/en-ca/guide/terminal/apdd100908f-06b3-4e63-8a87-32e71241bab4/mac instructions for Linux or Mac]).</li>
 +
<li>Double-click the script to launch SMAPI with the specified mod folder.</li>
 +
</ol>
 +
|-
 +
| Mac (non-Steam)
 +
| <ol>
 +
<li>Create a separate folder for each mod group in [[#Find your game folder|your game folder]], like <code>Mods</code> and <code>Mods(multiplayer)</code> (no spaces).</li>
 +
<li>Create a text file on your desktop with the same name as the mod group, for example <samp>SMAPI_multiplayer</samp> and format as Plain Text.</li>
 +
<li>Input ~ followed by your folder path ([[#Find your game folder|your game folder]]). Add the following text to the end of the string:
 +
<syntaxhighlight lang="bash"> --mods-path "Mods(multiplayer)"
 +
</syntaxhighlight></li>
 +
<li>Example: <code>~/Library/Application\ Support/Steam/steamapps/common/Stardew\ Valley/Contents/MacOS/StardewModdingAPI --mods-path "Mods(multiplayer)"</code></li>
 +
<li>Save the file, then mark the file executable (see [https://support.apple.com/en-ca/guide/terminal/apdd100908f-06b3-4e63-8a87-32e71241bab4/mac instructions for Linux or Mac]).</li>
 +
<li>If you get the error: "The file “SMAPI multiplayer.command” could not be executed because you do not have appropriate access privileges. To view or change access privileges, select the file in the Finder and choose File > Get Info." Then use the following code in the terminal: <samp>chmod u+x /path/to/SMAPI multiplayer.command</samp> to give yourself these access privileges.</li>
 +
<li>Double-click the script on your desktop to launch SMAPI with the specified mod folder.</li>
 +
</ol>
 +
|-
 +
| Mac (Steam)
 +
| <ol>
 +
<li>Create a separate folder for each mod group in [[#Find your game folder|your game folder]], like <code>Mods</code> and <code>Mods(multiplayer)</code>. Note there shouldn't be a space between "Mods" and "(multiplayer)".</li>
 +
<li>Create a file <samp>SMAPI_multiplayer.command</samp> on your desktop.</li>
 +
<li>Edit the file and set the text to this (change the folder name as needed, and replace <samp>/path/to/steam_osx</samp> with the full path to the <samp>steam_osx</samp> file (you can find the path for <samp>steam_osx</samp> by using <samp>find /Applications -name steam_osx</samp> or if that does not work use the longer search <samp>sudo find / -name steam_osx</samp>):
 +
<syntaxhighlight lang="bash">
 +
/path/to/steam_osx -applaunch 413150 --mods-path "Mods(multiplayer)"
 +
</syntaxhighlight></li>
 +
<li>Example: <code>/Applications/Steam.app/Contents/MacOS/steam_osx -applaunch 413150 --mods-path "Mods(multiplayer)"</code></li>
 +
<li>Mark the file executable (see [https://support.apple.com/en-ca/guide/terminal/apdd100908f-06b3-4e63-8a87-32e71241bab4/mac instructions for Linux or Mac]).</li>
 +
<li>If you get the error: "The file “SMAPI multiplayer.command” could not be executed because you do not have appropriate access privileges. To view or change access privileges, select the file in the Finder and choose File > Get Info." Then use the following code in the terminal: <samp>chmod u+x /path/to/SMAPI multiplayer.command</samp> to give yourself these access privileges.</li>
 +
<li>Double-click the script to make Steam launch SMAPI with the specified mod folder and all steam features.</li>
 +
</ol>
 +
|-
 +
|}
 +
 
 +
On Windows only, the [https://moddrop.com ModDrop] mod manager also supports up to three 'mod loadouts' which you can switch between.
  
* Create a separate folder for each mod group in [[Modding:Game folder|your game folder]], like <code>Mods</code> and <code>Mods (multiplayer)</code>. Then create a shortcut to the <tt>StardewModdingAPI.exe</tt> file, right-click it and choose <tt>Properties</tt>, and add this to the end of the <tt>Target</tt> field: <code> --mods-path "Mods (multiplayer)"</code> (changing folder name as needed). Done correctly, it should look something like <code>"your-path-here\SteamLibrary\steamapps\common\Stardew Valley\StardewModdingAPI.exe" --mods-path "Mods (multiplayer)"</code>. If you double-click that shortcut, it will launch SMAPI with the specified mod folder. You can add any number of folders and shortcuts this way.
 
* Use the [https://moddrop.com ModDrop] mod manager (Windows-only), which supports up to three 'mod loadouts' which you can switch between.
 
 
{{Modding guide footer
 
{{Modding guide footer
 
   |prev =  
 
   |prev =  
 
   |next = [[../Troubleshooting|Troubleshooting]]
 
   |next = [[../Troubleshooting|Troubleshooting]]
 
}}
 
}}
 +
 +
[[Category:Modding]]
  
 
[[de:Modding:Spieleranleitung/Erste Schritte]]
 
[[de:Modding:Spieleranleitung/Erste Schritte]]
 +
[[es:Modding:Guía del jugador/Introducción]]
 +
[[fr:Modding:Guide Joueur/Commencer]]
 
[[pt:Modificações:Guia do Jogador/Começando]]
 
[[pt:Modificações:Guia do Jogador/Começando]]
 
[[ru:Модификации:Руководство по использованию модификаций/Введение]]
 
[[ru:Модификации:Руководство по использованию модификаций/Введение]]
[[zh:使用模组:玩家常见问题]]
+
[[zh:模组:使用指南/入门]]

Latest revision as of 02:26, 16 April 2024

Do you want to play Stardew Valley with mods? This guide is for you!

Intro

A "mod" is just a package of files which changes Stardew Valley in some way. Mods can add features (like showing NPCs on the map), change game mechanics (like making fences decay more slowly), make cosmetic changes (like making your house look like a hobbit home), and more.

Using mods is easy! You just need to...

  1. Install SMAPI. That's the mod loader for Stardew Valley — it launches the game with mod support and lets mods interact directly with the game code. It's safely installed alongside your normal game, and you can uninstall it anytime.
  2. Unzip mods into your Mods folder.

See frequent questions below, or keep reading to get started!

Getting started

Install SMAPI

First you'll need to install the mod loader, SMAPI.

See the instructions for:

Find mods

Next you can download the mods you want. Some suggestions:

Before you download a mod, check if it works with the latest version of the game. For SMAPI mods, see the mod compatibility list; SMAPI will also automatically disable most incompatible SMAPI mods. You're on your own for XNB mods; try checking the mod description or comments for those.

Find your game folder

Next you'll need to open your game folder (the one containing Stardew Valley executable icon.png Stardew Valley.exe or Stardew Valley executable icon.png StardewValley.exe). Here's where to find it by default:

Platform Path
Windows GOG: C:\Program Files (x86)\GOG Galaxy\Games\Stardew Valley
or C:\GOG Games\Stardew Valley
Steam: C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley
Xbox App:C:\XboxGames\Stardew Valley
Android /storage/emulated/0/StardewValley/Mods
(Usually file manager apps show StardewValley in the root)
Linux GOG: ~/GOGGames/StardewValley/game
Steam: ~/.local/share/Steam/steamapps/common/Stardew Valley
Mac GOG: /Applications/Stardew Valley.app/Contents/MacOS
Steam: ~/Library/Application Support/Steam/SteamApps/common/Stardew Valley/Contents/MacOS

See also a pictorial guide to finding the folder on macOS.

Not there? Here are some other ways to find it:

more options 
Option 2: find it through SMAPI
  1. Launch SMAPI.
  2. Enter this command in the SMAPI console (the second window that opens with the game):
    show_game_files
Option 3: find it through Steam
  1. Open the Steam client.
  2. Right-click on Stardew Valley.
  3. Click Properties.
  4. Click the Local Files tab.
  5. Click the Browse Local Files... button to open the game folder.
Option 4: find it through GOG Galaxy
  1. Open the GOG Galaxy client.
  2. In the game sidebar, right-click on Stardew Valley.
  3. Choose Manage Installation > Show Folder to open the game folder.
Option 5: finding it through Xbox Gamepass
  1. Open the Xbox game client.
  2. On the main page for the game, click the ... button.
  3. Select Open Mods Folder

For images, please see Modding:Installing_SMAPI_on_Windows#Xbox_app

Install mods

To install a mod, just unzip it into the Mods folder in your game folder. Make sure each mod has its own subfolder, without trailing numbers. For example, if you have a PineapplesEverywhere mod, you should have a file structure like this:

📁 Stardew Valley/
   📁 Mods/
      📁 PineapplesEverywhere/
         🗎 PineapplesEverywhere.dll
         🗎 manifest.json

Tips:

  • If you have a lot of mods, you can optionally organise them into subfolders. SMAPI will automatically search inside each folder until it finds one with files.
    📁 Stardew Valley/
       📁 Mods/
          📁 Fruit mods/
             📁 PineapplesEverywhere/
                🗎 PineapplesEverywhere.dll
                🗎 manifest.json
             📁 ApplesNowhere/
                🗎 ApplesNowhere.dll
                🗎 manifest.json
    
  • To disable a folder, just add a dot in front of the folder name (like .disabled mods). If Windows doesn't let you do that, put a dot at the end too and it'll let you (like .disabled mods.).
  • Download mods into a folder other than Mods, unzip them there, and then move their folder(s) into Mods. That helps prevent errors related to extra files.
  • If you have a folder that looks like PineapplesEverywhere-1234567890, check inside it for the actual mod folder. Folders named like this often have more folders and possibly readme files inside them.

Configure mods

Some mods have a config.json file in their mod folder, which lets you customise the mod settings. The file is usually created the first time you launch the game with that mod installed.

To edit the config.json file, just open it in a text editor. Make sure the game isn't running when you edit it, or your changes might not take effect. See a basic guide to JSON; basically make sure your values are surrounded by quotes (like "value"). You can use this JSON validator to make sure the format is correct.

Update mods

To update a mod, just replace its files with the new versions (making sure to keep generated files like config.json).

More detailed steps:

  1. Download the new mod version.
  2. Check the mod page for any special update instructions.
  3. Unzip it somewhere else (not in your Mods folder).
  4. Open the mod's old and new folders, so the manifest.json is visible in both.
  5. Copy all the files/subfolders from the new folder into the old folder.

Remove mods

Delete a mod from the Mods folder to uninstall it. Make sure to check the mod page in case it mentions any special uninstall instructions.

XNB mods

XNB mods replace files in your game's Content folder with custom versions. If a mod has some .xnb files and no manifest.json, it's an XNB mod. This is an older type of mod that's no longer recommended, but see Modding:Using XNB mods if you're still interested.

Frequent questions

Which platforms allow mods?

Mod support for each platform:

Platform Mod support
PC Linux ✓ fully supported
Mac ✓ fully supported
Windows ✓ fully supported
console Nintendo Switch ✖ no mod support
PS4 ✖ no mod support
PS Vita ✖ no mod support
Steam Deck ✓ fully supported, but may increase power usage
XBox One ✖ no mod support
mobile Android ✓ most mods supported
iOS ✖ no mod support

Almost all mods will work on any supported platform, since SMAPI rewrites them for compatibility.

(For more technical info, see the SMAPI tracking ticket.)

Can mods corrupt my save?

Yes, but it's extremely rare. Only a few mods affect your save file at all. If you avoid those, mods are very unlikely to corrupt your save file. In most cases, you can fix save corruption by undoing the last save.

If you're worried, just back up your save files occasionally. That's strongly recommended even if you don't use mods, since save corruption is almost always caused by the game itself. SMAPI also creates a daily backup of your saves automatically; you can retrieve those from the Mods/SaveBackup folder.

Can I stop using mods later?

Yep. With a few exceptions (see previous question), mods don't directly affect your save file so you can stop using them anytime.

Do mods disable Steam achievements?

Steam achievements work fine, as long as you launch SMAPI through Steam. Make sure you follow the install instructions to configure Steam on Windows (no Steam changes needed on Linux or Mac). If the Steam overlay works, the achievements should work too.

Do mods work in multiplayer?

Yep, but it depends on the mod. Usually each player can have their own mods, and you can mix modded and vanilla players. Some mods don't work (or work poorly) in multiplayer, or affect other players too. Try checking the mod description for details about multiplayer (often under a 'compatibility' header).

Here are some approximate rules for mods that don't specify:

type of mod affects summary
Content Patcher depends See Multiplayer in the Content Patcher readme (applies for XNB mods too).
Map replacements local That includes mods which replace an existing map (without adding special logic with SMAPI). These are only visible to players who install them. Players without the custom map will see the normal map and will be subject to the normal bounds (e.g., they may see other players walk through walls, but they won't be able to follow).
Custom items global That includes new crops, fruit trees, craftables, cooking recipes, furniture, wallpapers and floors, weapons, rings, clothing, and hats. Any mod that adds completely new items that don't exist in the base game needs to be installed by all players. If anyone is missing a custom item mod, it can cause crashes, give you error items, break your save, or stop farmhands from joining.
Custom locations global That includes new locations and buildables added by TMXL or other frameworks. All players should have the same location mods. Entering a custom location that not everyone has installed can cause crashes. Buildables can only be built by the main player.
Custom NPCs global That includes any mod that adds new characters to the game. All players should have the same custom NPCs installed to avoid issues. Farmhands are currently unable to see custom NPCs at festivals (this is due to be fixed in an upcoming version of Content Patcher). Farmhands also can't marry custom NPCs; the host is able to do that with no issues.
Visual changes depends That includes custom portraits and sprites, custom farmer appearance, recolors, etc. Most of these mods only affect the players who installed them. Other players won't be affected. If both players have the same mods, they'll see the same visual changes. The exception is Content Patcher farmer appearance mods that add, rather than recolor, the existing sprites. All players need to have the same amount of new sprites (e.g., hairstyles or shirts) or there can be visual bugs for other players. On older versions of SMAPI, this can cause crashes.
"Cheat"/"efficiency" mods local That includes mods that increase player speed, make farm tasks easier, give infinite energy, spawn items, etc. Other players will see the effects, but won't be able to use the mod unless they have it installed. It won't affect other players.
Time changes global That includes any mod which pauses time, changes the current time, or changes the rate of time. These mods only work when installed by the main player, but will affect all players. They will have no effect when used by farmhands.
Custom UI local That includes mods that add new icons, tooltips, and menus. These mods only affect the players who installed them. Other players won't be affected.
World changes global That includes any mods which edit things in the world — durable fences, monster stat changes, etc. These mods affect all players, no matter who installs them.
Other mods depends See the mod's description for details, or ask the author.

What is SMAPI?

SMAPI is the mod loader for Stardew Valley. It works fine with GOG and Steam achievements, it's compatible with Linux/Mac/Windows and (unofficially) Android, you can uninstall it anytime, and there's a friendly community if you need help. SMAPI is required for most types of Stardew Valley mods.

SMAPI does a lot for you. For example, it will...

  1. Load mods into the game and provide APIs they can use. Many types of mods aren't possible without SMAPI.
  2. Rewrite mods for crossplatform compatibility, so you can use almost any mod on any platform.
  3. Intercept errors. If a mod crashes or causes an error, SMAPI will intercept the error, show the error details in the console window, and in most cases automatically recover the game.
  4. Provide update checks. SMAPI automatically alerts you when a new version of a mod is available.
  5. Provide compatibility checks. SMAPI automatically detects when a mod is incompatible and disables it before it causes problems.

Where are my...

Can I have different mod groups?

Yep, SMAPI has built-in support for different mod groups. The instructions may seem complex, but it's easy once you get the hang of it:

For simplicity, you can also just rename the Mods folder to something else.

Platform Instructions
Windows
  1. Create a separate folder for each mod group in your game folder, like Mods and Mods (multiplayer).
  2. Create a shortcut to the SMAPI mascot.png StardewModdingAPI.exe file in your game folder.
  3. Right-click the shortcut, choose Properties, and add this to the end of the Target field: --mods-path "Mods (multiplayer)" (changing folder name as needed). Don't delete any of the existing text in that field! This should be added to the end of what's already there. Done correctly, it should look something like "your-path-here\SteamLibrary\steamapps\common\Stardew Valley\StardewModdingAPI.exe" --mods-path "Mods (multiplayer)".
  4. Double-click that shortcut to launch SMAPI with the specified mod folder.
Windows (Steam)
  1. Create a separate folder for each mod group in your game folder, like Mods and Mods (multiplayer).
  2. Create a shortcut to your steam.exe file.
  3. Right-click the shortcut, choose Properties, and add this to the end of the Target field: -applaunch 413150 --mods-path "Mods (multiplayer)" (changing folder name as needed). Don't delete any of the existing text in that field! This should be added to the end of what's already there. Done correctly, it should look something like "your-path-here\Steam\steam.exe" -applaunch 413150 --mods-path "Mods (multiplayer)".
  4. Optionally you can click the "Change Icon..." button and browse to your Stardew Valley folder to change the icon of the shortcut from the Steam icon to the Stardew Valley Icon.
  5. Double-click that shortcut to make Steam launch SMAPI with the specified mod folder and all steam features.
Windows (Steam, Non-Steam Game Method)
  1. Create a separate folder for each mod group in your game folder, like Mods and Mods (multiplayer).
  2. Add SMAPI as a Non-Steam Game to your library a second time. Follow the second set of instructions in installing SMAPI on Windows - it is highly suggested you alter the title in your Steam Library to differentiate between mod groups, such as "Stardew Valley Modded" and "Stardew Valley Modded Multiplayer".
  3. Right-click the new SMAPI entry in your Steam Library, select "Properties", and add this to the end of the Target field: --mods-path "Mods (multiplayer)". Don't delete any of the existing text in that field! This should be added to the end of what's already there. Done correctly, it should look something like "your-path-here\SteamLibrary\steamapps\common\Stardew Valley\StardewModdingAPI.exe" --mods-path "Mods (multiplayer)".
  4. Click the "Play" button in the new SMAPI entry in Steam to make Steam launch SMAPI with the specified mod folder and all Steam features.
Linux
  1. Create a separate folder for each mod group in your game folder, like Mods and Mods (multiplayer).
  2. Create a file like SMAPI_multiplayer.sh on your desktop.
  3. Edit the file and set the text to this (change the folder name as needed, and replace /path/to/StardewValley with the full path to the StardewValley file in your game folder):
    #!/bin/bash
    SMAPI_MODS_PATH="Mods (multiplayer)" /path/to/StardewValley
    
  4. Mark the file executable (see instructions for Linux or Mac).
  5. Double-click the script to launch SMAPI with the specified mod folder.
Mac (non-Steam)
  1. Create a separate folder for each mod group in your game folder, like Mods and Mods(multiplayer) (no spaces).
  2. Create a text file on your desktop with the same name as the mod group, for example SMAPI_multiplayer and format as Plain Text.
  3. Input ~ followed by your folder path (your game folder). Add the following text to the end of the string:
     --mods-path "Mods(multiplayer)"
    
  4. Example: ~/Library/Application\ Support/Steam/steamapps/common/Stardew\ Valley/Contents/MacOS/StardewModdingAPI --mods-path "Mods(multiplayer)"
  5. Save the file, then mark the file executable (see instructions for Linux or Mac).
  6. If you get the error: "The file “SMAPI multiplayer.command” could not be executed because you do not have appropriate access privileges. To view or change access privileges, select the file in the Finder and choose File > Get Info." Then use the following code in the terminal: chmod u+x /path/to/SMAPI multiplayer.command to give yourself these access privileges.
  7. Double-click the script on your desktop to launch SMAPI with the specified mod folder.
Mac (Steam)
  1. Create a separate folder for each mod group in your game folder, like Mods and Mods(multiplayer). Note there shouldn't be a space between "Mods" and "(multiplayer)".
  2. Create a file SMAPI_multiplayer.command on your desktop.
  3. Edit the file and set the text to this (change the folder name as needed, and replace /path/to/steam_osx with the full path to the steam_osx file (you can find the path for steam_osx by using find /Applications -name steam_osx or if that does not work use the longer search sudo find / -name steam_osx):
    /path/to/steam_osx -applaunch 413150 --mods-path "Mods(multiplayer)"
    
  4. Example: /Applications/Steam.app/Contents/MacOS/steam_osx -applaunch 413150 --mods-path "Mods(multiplayer)"
  5. Mark the file executable (see instructions for Linux or Mac).
  6. If you get the error: "The file “SMAPI multiplayer.command” could not be executed because you do not have appropriate access privileges. To view or change access privileges, select the file in the Finder and choose File > Get Info." Then use the following code in the terminal: chmod u+x /path/to/SMAPI multiplayer.command to give yourself these access privileges.
  7. Double-click the script to make Steam launch SMAPI with the specified mod folder and all steam features.

On Windows only, the ModDrop mod manager also supports up to three 'mod loadouts' which you can switch between.