Stardew Valley
0 of 0

File information

Last updated

Original upload

Created by

aedenthorn

Uploaded by

aedenthorn

Virus scan

Safe to use

About this mod

Lets you add custom wallpaperable and flooringable areas to any decoratable or ordinary non-decoratable game location.

Requirements
Permissions and credits
Changelogs
Donations
This mod is a framework that allows mod authors to create content packs that either add / replace flooring and wallpapering rectangles to compatible game locations.


Basic Use

If someone makes a content pack for this mod, install this mod and their content pack.


Making Content Packs

Content Pack Files

Content packs contain a manifest.json file and a content.json file.  The manifest.json file looks something like this:

{
  "Name": "Saloon Content Pack for Custom Walls and Floors",
  "Author": "aedenthorn",
  "Version": "0.1.0",
  "Description": "",
  "UniqueID": "aedenthorn.CWFSaloonPack",
  "MinimumApiVersion": "3.12.0",
  "ContentPackFor": {
    "UniqueID": "aedenthorn.CustomWallsAndFloors",
    "MinimumVersion": "0.1.0"
  },
  "Dependencies": [
   {
      "UniqueID": "aedenthorn.CustomWallsAndFloors",
      "IsRequired": true
   },
  ]
}

The content.json file looks something like this:

{
    "data":
    [
        {
            "name": "Saloon",
            "replaceFloors": false,
            "replaceWalls": false,
            "replaceNonDecorationTiles": true,
            "getFloorsFromFile":"",
            "getWallsFromFile":"",
            "floors":
            [
                {
                    "X":1,
                    "Y":17,
                    "Width":28,
                    "Height":7
                }
            ],
            "walls":
            [
                {
                    "X":3,
                    "Y":1,
                    "Width":9,
                    "Height":3
                }
            ],
            "floorsOmit":
            [
            ],
            "wallsOmit":
            [
            ]
        }
    ]
}

Each entry in "data" defines a set of floors and walls to add to a game location.

name is the name of the game location. As of now, the mod works with decoratable locations (FarmHouse and Shed) and ordinary game locations, including the following vanilla locations:

  • JoshHouse
  • HaleyHouse
  • SamHouse
  • Blacksmith
  • Saloon
  • Trailer
  • Hospital
  • HarveyRoom
  • ElliottHouse
  • ScienceHouse
  • SebastianRoom
  • Tent
  • AnimalShop
  • LeahHouse
  • SandyHouse
  • WitchSwamp
  • WitchHut
  • WitchWarpCave
  • BathHouse_Entry
  • BathHouse_MensLocker
  • BathHouse_WomensLocker
  • Greenhouse
  • SkullCave
  • Backwoods
  • Tunnel
  • Trailer_big
  • Sunroom
  • LeoTreeHouse

This mod will turn any of the above ordinary locations into a decoratable location if included in a content pack for this mod. That may have unexpected consequences, so you may want to limit your use of this mod to locations that are already decoratable (FarmHouse and Shed, and any modded decoratable locations). Of course, that takes away half the fun of this mod.

Other locations are not ordinary, so they will have to be adapted individually to work with the mod (I might get around to that some day).

If replaceFloors or replaceWalls are set to true, it will remove any walls and floors defined by the vanilla game. Otherwise it will add new walls and floors to the game's list for that location. This is only applicable to decoratable locations like FarmHouse and Shed. These keys can be omitted (default is false)

If replaceNonDecorationTiles is set to false, the mod will ignore any tiles that are not already wallpaper or flooring tiles. This key can be omitted (default is true).

If getFloorsFromFile or getWallsFromFile is set to a relative file path, the mod will look for that resource in the game content. This allows modders to create Content Patcher mods with all the CP wizardry around relationships, marriages, seasons, etc. If you don't know how this works, you can learn about it from the Content Patcher docs. The file retrieved should be a JSON array of rectangle objects, e.g.:

[
    {
        "X":1,
        "Y":1,
        "Width":5,
        "Height":3
    },
    {
        "X":6,
        "Y":1,
        "Width":5,
        "Height":3
    }
]

These keys can be omitted (default is to take the list of floors and walls from the content.json file directly).

floorsOmit and wallsOmit are lists of rectangles that specify areas to skip, allowing for irregularly-shaped floors and walls.


Technical

Requires SMAPI, uses Harmony.

Compatible with Mod Updater for automatic updates.

Code is at https://github.com/aedenthorn/StardewValleyMods.

If you want to complain or ask for help or help me test my mods, you can visit my Discord server.

A list of all my mods for Stardew Valley is available at https://www.nexusmods.com/stardewvalley/articles/895.