Skip to content

How to Mod Stardew Valley: SMAPI, the Mods Folder, Co-op and Servers

How to mod Stardew Valley with SMAPI on Windows, Mac and Linux: Mods folder paths, content packs, what co-op friends need, and adding mods to a server.

Updated September 28, 2026
Stardew Valley

Modding Stardew Valley takes two steps: install SMAPI, the mod loader, and unzip each mod into the game's Mods folder. That's all it takes for single player. Co-op needs a bit more care, because some mods change the world everyone shares and every player has to have them, while others only change what you see on your own screen.

This guide covers how to mod Stardew Valley on Windows, macOS and Linux, the three kinds of mods you'll come across, which ones your friends need too, and how to add mods to a GameServerKings Stardew Valley server. The server part matters because the server doesn't run a normal SMAPI setup. It's missing some things and adds others, and knowing which saves you a lot of guessing.

Versions this page was checked against

Stardew Valley 1.6.15 (the current patch, released 20 December 2024) · SMAPI 4.5.2 (current release, for your PC) · SMAPI 4.3.2 (the version the GSK server installs). Both SMAPI versions need game version 1.6.14 or later.

Step 1: Install SMAPI on your PC

SMAPI (Stardew Modding API) loads the mods, rewrites them to work on your operating system, catches their errors and turns off mods it knows are broken. Almost every current mod needs it. Get it from smapi.io, not a re-upload.

Before you install it, launch the game once without mods so it can finish its first-time setup.

System How to install
Windows Unzip the download anywhere except the game folder, then double-click install on Windows.bat and follow the prompts. On Steam, copy the launch line the installer shows (it looks like "C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\StardewModdingAPI.exe" %command%) into Properties → Launch Options. Include the quotes and %command%.
macOS (10.15 Catalina or later) First go to System Settings → Privacy & Security → Developer Tools and add Terminal, then restart. Unzip SMAPI outside the game folder, right-click install on Mac.command and choose Open.
Linux Unzip it, then run chmod +x "./install on Linux.sh" "./internal/linux/SMAPI.Installer" and start ./install\ on\ Linux.sh from a terminal (the wiki warns against double-clicking it).

With the Steam launch option set, you keep playing through Steam as usual, and achievements and the overlay still work. A second window, the SMAPI console, opens next to the game. That window is where you'll see what loaded and what didn't.

To update SMAPI later, run the new installer over the old one. It cleans up the previous version by itself.

Step 2: Find your Mods folder

SMAPI creates a Mods folder inside the game folder. The default game folders are:

Store Default game folder
Steam, Windows C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley
Steam, macOS ~/Library/Application Support/Steam/SteamApps/common/Stardew Valley/Contents/MacOS
Steam, Linux ~/.local/share/Steam/steamapps/common/Stardew Valley
GOG, Windows C:\Program Files (x86)\GOG Galaxy\Games\Stardew Valley (or C:\GOG Games\Stardew Valley)
Xbox app C:\XboxGames\Stardew Valley

Can't find it? Type show_game_files in the SMAPI console and it opens the folder for you.

Step 3: Know what kind of mod you downloaded

Most Stardew mods come from Nexus Mods. The official wiki recommends avoiding ModDrop. Open the zip before you install anything and check what's inside:

What's in the zip Type What it needs
A .dll and a manifest.json SMAPI mod (code) SMAPI
A manifest.json with a ContentPackFor line, plus JSON and images Content pack SMAPI, plus the framework it names. Usually that's Content Patcher (folders starting [CP]), and sometimes others, like Farm Type Manager ([FTM])
Only .xnb files, no manifest.json XNB mod Replaces files in Content. The wiki calls this an old type that's "no longer recommended", so look for a Content Patcher version instead

Content packs catch out most new modders. The pack does nothing without its framework, and SMAPI will tell you so (see the troubleshooting table below).

Step 4: Install, configure and update mods

  1. Unzip the mod somewhere outside Mods first.
  2. Move the mod's folder into Mods. Every mod needs its own folder with its manifest.json directly inside it:
Stardew Valley/
└── Mods/
    ├── ContentPatcher/
    │   ├── ContentPatcher.dll
    │   └── manifest.json
    └── [CP] Some Content Pack/
        ├── content.json
        └── manifest.json
  1. Launch the game through SMAPI. The console lists every mod that loaded, then a separate count of content packs.

Some more things worth knowing:

  • Settings. Many mods create a config.json the first time they run. Close the game before you edit it, or your changes may not stick.
  • Organising. You can group mods into subfolders (Mods/Farming/...), since SMAPI looks inside each one. To turn a mod off without deleting it, put a dot at the start of its folder name, like .PineappleMod.
  • Updating. Deleting the old folder and installing the new one is the cleanest way. If you want to keep your settings, copy the new files over the old folder and keep its config.json.
  • Compatibility. Before you install an older mod, check the mod compatibility list at smapi.io/mods. SMAPI turns off mods it knows are broken, even if you don't check.
  • Save backups. SMAPI keeps a backup of your saves every day in Mods/SaveBackup.

Mods are only possible on PC and Android. Switch, PlayStation, Xbox consoles and iOS can't load them.

Mods in co-op: who needs what

Every player runs their own SMAPI with their own mods. What matters is whether a mod changes the shared world or just your screen. The Stardew Valley wiki's multiplayer rules:

Mod type Who needs it What goes wrong if someone's missing it
New items, crops, furniture, weapons Everyone Players without it see Error Items
New locations or maps Everyone, same version "Entering a custom location that not everyone has installed can cause crashes."
New NPCs Everyone Dialogue and schedule problems
Map edits (Content Patcher) Ideally everyone A player without it sees the old map, with others walking through walls
World changes (fence decay, monster stats) Affects everyone, whoever installs it
Time changes (pause, slower days) Host only Doesn't do anything for farmhands
UI mods, cheat/efficiency mods Just you Nothing, because they're local

Big content mods like Stardew Valley Expanded sit in the strictest rows. Every player, and the server, needs them at matching versions (see How to Install Stardew Valley Expanded). Mods like Lookup Anything or CJB Cheats Menu only change your own game, so each player can decide for themselves.

The simplest way to avoid problems is for the group to agree on one list of "world" mods at fixed versions, and for everyone to install them from the same zips.

Adding mods to a GameServerKings Stardew server

Stardew Valley doesn't have a separate dedicated-server program. A GSK Stardew server runs the full game with SMAPI on a virtual screen, and a host player plays the farm around the clock (see Stardew Valley Multiplayer for how it's set up). That means server-side modding is ordinary SMAPI modding, with a few things you won't have on your own PC.

What's already in the server's Mods folder

Our installer puts SMAPI and five mods in the Mods folder in the server root. These mods are what let the server host by itself, so don't remove them:

Folder What it does on the server
Always On Server Plays the host automatically: sleeps, festivals, events
AutoLoadGame Loads the co-op farm straight into multiplayer on every boot
AutoHideHost Hides the host player and pauses when nobody's online
StardewPortChanger Sets the game port to your server's main port
UnlimitedPlayers Raises the player cap to your Player Limit setting
ConsoleCommands, SaveBackup SMAPI's bundled mods

Two settings are rewritten by the panel on every start. The player limit in UnlimitedPlayers/config.json comes from the Player Limit variable, and the port in StardewPortChanger/config.json comes from your main allocation. Change those in the panel. Edits to those two values in the files won't survive a restart.

Reinstalling the server resets the configs of Auto Hide Host, Auto Load Game and Port Changer, and installs SMAPI 4.3.2 again. Back up any config you've customised first.

Check the SMAPI version before you upload

The server runs SMAPI 4.3.2, the version our installer pins. Your PC will probably have 4.5.2. Most mods work on both, but look at the mod's manifest.json first:

"MinimumApiVersion": "4.1.10"
json

If that number is 4.3.2 or lower, it runs on the server. For example, Content Patcher, Automate and Chests Anywhere need 4.1.10, and Lookup Anything needs 4.3.1. If it's higher, the server skips the mod and the console says: "it needs SMAPI 4.x.x or later. Please update SMAPI to the latest version to use this mod." Contact support in that case, and keep the older version of the mod on the server and on every player's PC until then.

Upload the mods

  1. Stop the server and take a backup.
  2. Connect over SFTP and open Mods/ in the server root.
  3. Upload each mod's folder, with its manifest.json directly inside it, next to the folders already there. Upload the same versions your players have.
  4. Start the server and watch the console. SMAPI lists what loaded, and anything it rejected under Skipped mods.
  5. If a mod created a config.json on first start, stop the server, edit the file over SFTP, and start again.

Some things to know about the server:

  • Mods that change time or dates can clash with Always On Server. Its author warns that "anything that messes with the game time/date is likely to cause issues."
  • Mods that need a new save, like SVE, need you to create that farm on the server once over VNC. Set your own VNC Password in the Startup tab before you turn VNC on, because the installer's default is publicly known.
  • Local-only mods (UI, minimaps, cheat menus for your own character) don't need to go on the server at all.
  • The panel's console is the SMAPI console, so SMAPI commands like help or list_items work there. See Stardew Valley Cheats and Console Commands.

Troubleshooting: reading the SMAPI console

SMAPI explains why it rejected a mod in its own words. These are the messages you'll see most often, with what they mean:

SMAPI says Cause Fix
"Skipped … because it doesn't have a manifest.json" The folder is nested one level too deep, or it isn't a SMAPI mod (for example an XNB mod) Move the inner folder up so manifest.json is directly inside it, or look for a Content Patcher version
"it requires mods which aren't installed (…)" A content pack without its framework, or a missing dependency Install the mod it names (often Content Patcher or Farm Type Manager)
"it needs newer versions of some mods: …" A dependency is too old Update the dependency it names
"it needs SMAPI 4.x.x or later" The mod is newer than your SMAPI On your PC, run the latest SMAPI installer. On the server, see above
"it needs Stardew Valley 1.6.x or later" The game is older than the mod needs Update the game. The server installs the current Steam version (1.6.15 at the time of writing)
"it's no longer compatible. Please check for a newer version at …" SMAPI knows this version is broken Get the newer version from the link it gives
A friend sees Error Items or crashes entering an area They're missing an item or location mod, or have a different version Compare mod lists and match versions

If the list of skipped mods is long, fix the first dependency it names. Mods that depend on it will often load once it does.

If players can't reach the server at all, that's a network problem, not a mod one. See Players Can't Connect to My Server.


Made with 💜 by GameServerKings

Need a Stardew Valley server?

Deploy an instantly-provisioned Stardew Valley server on high-clock hardware — DDoS protected, no contracts, cancel anytime.

From $7.30 /month