Difference between revisions of "Modding:Location data"
Margotbean (talk | contribs) |
Pathoschild (talk | contribs) (add terminology, copyedit) |
||
Line 1: | Line 1: | ||
← [[Modding:Index]] | ← [[Modding:Index]] | ||
+ | This page explains how to create and edit in-game locations. | ||
+ | |||
+ | ==Terminology== | ||
+ | A few terms may be used interchangeably or have different meanings depending on the context. In the context of Stardew Valley: | ||
+ | |||
+ | * A '''location''' is part of the game code and save data. It manages the in-game area and everything inside it (including non-map entities like players). The location is read/written to the save file, and is only loaded when loading the save file. | ||
+ | * A '''[[Modding:Maps|map]]''' is an asset which describes the tile layout, tilesheets, and map/tile properties for the in-game area. The map is reloaded each time you load a save, and each time a mod changes the map. | ||
+ | * A '''[[Modding:World map|world map]]''' is the image shown for a world region in the in-game menu. | ||
+ | |||
+ | In other words, a ''location'' (part of the game code) references the ''map'' (loaded from the <samp>Content</samp> folder): | ||
+ | |||
+ | <pre> | ||
+ | ┌─────────────────────────────────┐ | ||
+ | │ Location │ | ||
+ | │ - objects │ | ||
+ | │ - furniture │ | ||
+ | │ - crops │ | ||
+ | │ - bushes and trees │ | ||
+ | │ - NPCs and players │ | ||
+ | │ - etc │ | ||
+ | │ │ | ||
+ | │ ┌─────────────────────────┐ │ | ||
+ | │ │ Map asset │ │ | ||
+ | │ │ - tile layout │ │ | ||
+ | │ │ - map/tile properties │ │ | ||
+ | │ │ - tilesheets │ │ | ||
+ | │ └─────────────────────────┘ │ | ||
+ | └─────────────────────────────────┘ | ||
+ | </pre> | ||
+ | |||
+ | ==Data format== | ||
Data/Locations controls many things about locations. | Data/Locations controls many things about locations. | ||
Line 64: | Line 95: | ||
In order to have artifacts work, custom locations need to add their data to this file, which can be done with mods such as Content Patcher. | In order to have artifacts work, custom locations need to add their data to this file, which can be done with mods such as Content Patcher. | ||
− | == | + | ==Location names== |
+ | In-game locations like the farm or beach are represented by the [[Modding:Modder Guide/Game Fundamentals#GameLocation et al|<samp>GameLocation</samp> class]] (or a subclass), and are identified by a unique name. | ||
− | + | Here are some of the vanilla locations: | |
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
− | ! style="position: sticky; top: 0;"|Name | + | ! style="position: sticky; top: 0;"| Name |
− | ! style="position: sticky; top: 0;"|Class | + | ! style="position: sticky; top: 0;"| Class |
− | ! style="position: sticky; top: 0;"|Description | + | ! style="position: sticky; top: 0;"| Description |
|- | |- | ||
| <samp>Farm</samp> | | <samp>Farm</samp> |
Revision as of 00:41, 21 November 2023
This page explains how to create and edit in-game locations.
Terminology
A few terms may be used interchangeably or have different meanings depending on the context. In the context of Stardew Valley:
- A location is part of the game code and save data. It manages the in-game area and everything inside it (including non-map entities like players). The location is read/written to the save file, and is only loaded when loading the save file.
- A map is an asset which describes the tile layout, tilesheets, and map/tile properties for the in-game area. The map is reloaded each time you load a save, and each time a mod changes the map.
- A world map is the image shown for a world region in the in-game menu.
In other words, a location (part of the game code) references the map (loaded from the Content folder):
┌─────────────────────────────────┐ │ Location │ │ - objects │ │ - furniture │ │ - crops │ │ - bushes and trees │ │ - NPCs and players │ │ - etc │ │ │ │ ┌─────────────────────────┐ │ │ │ Map asset │ │ │ │ - tile layout │ │ │ │ - map/tile properties │ │ │ │ - tilesheets │ │ │ └─────────────────────────┘ │ └─────────────────────────────────┘
Data format
Data/Locations controls many things about locations.
Here is an example location:
"Beach": "372 .9 718 .1 719 .3 723 .3/372 .9 394 .5 718 .1 719 .3 723 .3/372 .9 718 .1 719 .3 723 .3/372 .4 392 .8 718 .05 719 .2 723 .2/129 -1 131 -1 147 -1 148 -1 152 -1 708 -1 267 -1/128 -1 130 -1 146 -1 149 -1 150 -1 152 -1 155 -1 708 -1 701 -1 267 -1/129 -1 131 -1 148 -1 150 -1 152 -1 154 -1 155 -1 705 -1 701 -1/708 -1 130 -1 131 -1 146 -1 147 -1 150 -1 151 -1 152 -1 154 -1 705 -1/384 .08 589 .09 102 .15 390 .25 330 1",
Breaking it down:
Index | Entry | Explanation |
---|---|---|
0 | "372 .9 718 .1 719 .3 723 .3" | Spring forage. Item ID chance. No particular order required. |
1 | "372 .9 394 .5 718 .1 719 .3 723 .3" | Summer forage. As above. |
2 | "372 .9 718 .1 719 .3 723 .3" | Fall forage. As above. |
3 | "372 .4 392 .8 718 .05 719 .2 723 .2" | Winter forage. As above. |
4 | "129 -1 131 -1 147 -1 148 -1 152 -1 708 -1 267 -1" | Fish data for spring. Fish is ID zoneNumber ID zoneNumber. Some locations have multiple fishing locations. To seperate fish, the zoneNumber is used. It starts at -1, and some locations have 0, or even 1, to indicate the zone. For more information, see Modding:Fish_data |
5 | "128 -1 130 -1 146 -1 149 -1 150 -1 152 -1 155 -1 708 -1 701 -1 267 -1" | Fish data for summer |
6 | "129 -1 131 -1 148 -1 150 -1 152 -1 154 -1 155 -1 705 -1 701 -1" | Fish data for autumn |
7 | "708 -1 130 -1 131 -1 146 -1 147 -1 150 -1 151 -1 152 -1 154 -1 705 -1" | Fish data for winter |
8 | "384 .08 589 .09 102 .15 390 .25 330 1" | Artifact data. (Article data TBA): Artifacts should be added in increasing likelihood, and in format: ID chance ID chance, with chance being addressed in 0 to 1. |
Note that not all fields are required: If you have no fish, you can just put -1 for the relevant fields, and if you have no forage, you can just put -1 for the relevant fields.
Examples are:
"Farm": "-1/-1/-1/-1/-1/-1/-1/-1/382 .05 770 .1 390 .25 330 1",
This has no forage or fishing data (handled programmatically) so it's just -1.
In order to have artifacts work, custom locations need to add their data to this file, which can be done with mods such as Content Patcher.
Location names
In-game locations like the farm or beach are represented by the GameLocation class (or a subclass), and are identified by a unique name.
Here are some of the vanilla locations:
Name | Class | Description |
---|---|---|
Farm | StardewValley.Farm | The outdoor area of the Pelican Town farm. |
FarmHouse | StardewValley.Locations.FarmHouse | The interior of the farm house. |
FarmCave | StardewValley.Locations.FarmCave | The bats/mushroom cave on the farm. |
Town | StardewValley.Locations.Town | The outdoor area of Pelican Town. |
JoshHouse | StardewValley.GameLocation | Alex/George/Evelyn's house. (Josh was the old name for the Alex character.) |
HaleyHouse | StardewValley.GameLocation | Haley/Emily's house. |
SamHouse | StardewValley.GameLocation | Sam/Jodi/Kent/Vincent's house. |
Blacksmith | StardewValley.GameLocation | Clint's blacksmith shop. |
ManorHouse | StardewValley.Locations.ManorHouse | Mayor Lewis' house. |
SeedShop | StardewValley.Locations.SeedShop | Pierre's general store (also Caroline/Abigail's house and church) |
Saloon | StardewValley.GameLocation | The Stardrop Saloon (and Gus' house) |
Trailer | StardewValley.GameLocation | Pam/Penny's trailer. |
Hospital | StardewValley.GameLocation | Harvey's clinic. |
HarveyRoom | StardewValley.GameLocation | Harvey's room upstairs from the clinic. |
Beach | StardewValley.Locations.Beach | The beach south of Pelican Town. |
ElliottHouse | StardewValley.GameLocation | Elliott's cabin on the beach. |
Mountain | StardewValley.Locations.Mountain | The outdoor mountain area where the Carpenter, Linus' tent, and Adventurer's Guild are. |
ScienceHouse | StardewValley.GameLocation | The Carpenter's Shop. |
SebastianRoom | StardewValley.GameLocation | Sebastian's room in the basement of the carpenter house. |
Tent | StardewValley.GameLocation | Linus' tent. |
Forest | StardewValley.Locations.Forest | Cindersap forest south of the farm. |
WizardHouse | StardewValley.Locations.WizardHouse | The wizard/Rasmodius's tower |
AnimalShop | StardewValley.GameLocation | Marnie's Ranch |
LeahHouse | StardewValley.GameLocation | Leah's Cottage. |
BusStop | StardewValley.Locations.BusStop | The bus stop area between the farm and Pelican Town. |
Mine | StardewValley.Locations.Mine | The first room of the mines, where the dwarf's shop is. |
Sewer | StardewValley.Locations.Sewer | The sewers where Krobus' shop is. |
BugLand | StardewValley.Locations.BugLand | The mutant bug lair in the sewers. |
Desert | StardewValley.Locations.Desert | Calico Desert where Sandy's Oasis shop and the skull cavern are. |
Club | StardewValley.Locations.Club | Mr. Qi's casino in Sandy's Oasis shop. |
SandyHouse | StardewValley.GameLocation | The Oasis, Sandy's shop in Calico Desert. |
ArchaeologyHouse | StardewValley.Locations.LibraryMuseum | The Museum in Pelican Town, south of the Blacksmith. |
WizardHouseBasement | StardewValley.GameLocation | The basement of the Wizard's Tower |
AdventureGuild | StardewValley.Locations.AdventureGuild | The Adventurer's Guild, home of Marlon and Gil. |
Woods | StardewValley.Locations.Woods | The secret woods in Cindersap forest blocked by a large log. |
Railroad | StardewValley.Locations.Railroad | The railroad north of the mountains, where the spa is located. |
WitchSwamp | StardewValley.GameLocation | The swamp area where the Witch's Hut is. |
WitchHut | StardewValley.GameLocation | The interior of the Witch's Hut. |
WitchWarpCave | StardewValley.GameLocation | The cave accessible at the top right of the railroad, which warps to the Witch's swamp. |
Summit | StardewValley.Locations.Summit | The summit north of the railroad. |
FishShop | StardewValley.Locations.FishShop | Willy's shop. |
BathHouse_Entry | StardewValley.GameLocation | The entrance room in the spa, leading to the men's and women's locker rooms. |
BathHouse_MensLocker | StardewValley.GameLocation | The men's locker room in the spa. |
BathHouse_WomensLocker | StardewValley.GameLocation | The women's locker room in the spa. |
BathHouse_Pool | StardewValley.Locations.BathHousePool | The bathhouse pool in the spa. |
CommunityCenter | StardewValley.Locations.CommunityCenter | The inside of the Community Center. |
JojaMart | StardewValley.Locations.JojaMart | The inside of Pelican Town's JojaMart. |
Greenhouse | StardewValley.GameLocation | The Greenhouse on the player's farm. |
SkullCave | StardewValley.GameLocation | The entrance of the Skull Cavern in Calico desert. |
Backwoods | StardewValley.GameLocation | The backwoods area north of the farm/west of the bus stop, leading to the bus tunnel or to the mountains. |
Tunnel | StardewValley.GameLocation | The dark bus tunnel to the west of the bus stop. |
Trailer_Big | StardewValley.GameLocation | The inside of Pam/Penny's house after the Community Upgrade. |
Cellar | StardewValley.Locations.Cellar | |
Cellar2 | StardewValley.Locations.Cellar | |
Cellar3 | StardewValley.Locations.Cellar | |
Cellar4 | StardewValley.Locations.Cellar | |
BeachNightMarket | StardewValley.Locations.BeachNightMarket | The beach south of Pelican Town during the Night Market. |
MermaidHouse | StardewValley.Locations.MermaidHouse | The interior of the mermaid boat at the Night Market. |
Submarine | StardewValley.Locations.Submarine | The interior of the fishing submarine during the Night Market. |
AbandonedJojaMart | StardewValley.Locations.AbandonedJojaMart | The small interior of the abandoned JojaMart where the Missing Bundle is. |
MovieTheater | StardewValley.Locations.MovieTheater | The interior of the Movie Theater that replaces JojaMart. |
Sunroom | StardewValley.GameLocation | Caroline's sunroom inside Pierre's General Store. |
BoatTunnel | StardewValley.Locations.BoatTunnel | Where Willy's Boat is, in back of the fish shop. |
IslandSouth | StardewValley.Locations.IslandSouth | Ginger Island, the docks where the player first lands and where the beach resort is. |
IslandSouthEast | StardewValley.Locations.IslandSouthEast | Ginger Island, where the mermaid and pirate cove are. |
IslandSouthEastCave | StardewValley.Locations.IslandSouthEastCave | The pirate cove. |
IslandEast | StardewValley.Locations.IslandEast | Ginger Island jungle, where Leo's hut is. |
IslandWest | StardewValley.Locations.IslandWest | Ginger Island, Island West, where the farm and Birdie's Shack are. |
IslandNorth | StardewValley.Locations.IslandNorth | Ginger Island, Island North, where the volcano and Professor Snail's tent are. |
IslandHut | StardewValley.Locations.IslandHut | The interior of Leo's hut on Ginger Island. |
IslandWestCave1 | StardewValley.Locations.IslandWestCave1 | The Ginger Island cave where the colored crystals puzzle can be found. |
IslandNorthCave1 | StardewValley.Locations.IslandLocation | The mushroom cave on Ginger Island where Professor Snail is initially blocked in by a boulder. |
IslandFieldOffice | StardewValley.Locations.IslandFieldOffice | The interior of Professor Snail's Island Field Office tent. |
IslandFarmHouse | StardewValley.Locations.IslandFarmHouse | The interior of the farm house on Ginger Island. |
CaptainRoom | StardewValley.Locations.IslandLocation | The interior of the shipwreck on Ginger Island West. |
IslandShrine | StardewValley.Locations.IslandShrine | The area East of the jungle on Ginger Island. |
IslandFarmCave | StardewValley.Locations.IslandFarmCave | The interior of Gourmand Frog's cave on Ginger Island. |
Caldera | StardewValley.Locations.Caldera | The volcano caldera on Ginger Island at the end of the volcano dungeon. |
LeoTreeHouse | StardewValley.GameLocation | Leo's tree house home. |
QiNutRoom | StardewValley.Locations.IslandLocation | Mr. Qi's Walnut Room |