๐Ÿ“‹ Reference ยท Print me

Stardew Modding
Cheat Sheet

Everything from the Stardew World Workshop on one page: paths, templates, layers, rules and the common fixes. Print it and keep it next to your keyboard.

๐Ÿฏ
Ember says: the copy, open, change, save, load, test loop is the whole job. This page is the answer key for when something does not match.

๐Ÿ“ Where the Mods folder lives

Paths
Windows:  C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Mods
Mac:      ~/Library/Application Support/Steam/steamapps/common/Stardew Valley/Mods
Linux:    ~/.steam/steam/steamapps/common/Stardew Valley/Mods

๐Ÿ—‚๏ธ A tidy mod layout

Folder structure
MyFirstFarm/
โ”œโ”€โ”€ manifest.json
โ”œโ”€โ”€ content.json
โ”œโ”€โ”€ icon.png            (optional)
โ””โ”€โ”€ assets/
    โ”œโ”€โ”€ maps/
    โ”‚   โ””โ”€โ”€ Farm.tmx
    โ””โ”€โ”€ images/
        โ””โ”€โ”€ CustomBed.png

๐Ÿท๏ธ manifest.json template

manifest.json
{
  "Name": "My First Farm",
  "Author": "You",
  "Version": "1.0.0",
  "Description": "A custom farm and a secret garden.",
  "UniqueID": "You.MyFirstFarm",
  "ContentPackFor": { "UniqueID": "Pathoschild.ContentPatcher" }
}

๐Ÿ“ content.json template

content.json (load two maps)
{
  "Format": "2.9.0",
  "LogName": "My First Farm",
  "Changes": [
    { "Action": "Load", "Target": "Maps/Farm",
      "FromFile": "assets/maps/Farm.tmx" },
    { "Action": "Load", "Target": "Maps/SecretGarden",
      "FromFile": "assets/maps/SecretGarden.tmx" }
  ]
}

๐Ÿ—‚๏ธ Layer draw order (bottom to top)

Layers
Back         the ground: grass, dirt, water, floors
Buildings    houses, objects, tree trunks
Paths        walkable flooring
Front        draws OVER the player: tree tops, roofs
AlwaysFront  the very top: weather and effects

๐Ÿšถ Tile properties

Common tile rules
Passable   = T  (walk on it) / F (wall)
Water      = T  (water, can refill or fish)
Diggable   = T  (hoe and plant here)
Type       = Grass / Dirt / Stone / Water

// Stardew stores true as T and false as F.

๐Ÿšช Warps

Doorway (map Warp property)
Map property "Warp" (string): "8 4 Cabin 2 4"
// Step on this map at tile 8,4 -> arrive on Cabin at 2,4.
// Five values: fromX fromY toArea toX toY.
// Always add the return warp, or the player is stranded.

๐Ÿงญ Adding a brand-new area

content.json (register a new location)
{ "Action": "EditData", "Target": "Data/Locations",
  "Entries": { "YourName_SecretGarden": {
    "DisplayName": "Secret Garden",
    "CreateOnLoad": { "MapPath": "Maps/YourName_SecretGarden" },
    "DefaultArrivalTile": { "X": 3, "Y": 3 } } } }

// A loaded map is not enough. Register the location in Data/Locations,
// then add a warp to it with EditMap AddWarps on the map you leave from.

๐Ÿ”Ž The five common mistakes

Fix list
1 Nested folder (ContentPatcher/ContentPatcher)  -> move inner folder up
2 Wrong FromFile path                            -> match the real file name
3 Broken JSON (missing comma or quote)           -> check with a JSON tool
4 Map name mismatch                              -> warp name = Load Target
5 Duplicate UniqueID                             -> make yours one of a kind

๐Ÿ—œ๏ธ Sharing check

Before you share
Zip the MOD FOLDER, so unzipping gives MyFirstFarm/manifest.json
Name it with the version, e.g. MyFirstFarm-1.0.0.zip
Unzip into a fresh Mods folder and launch through SMAPI to test
๐Ÿ“ฆ
Prefer the starter files? Download the pack from the workshop: โฌ‡ stardew-world-starter.zip