模组:地點數據

出自Stardew Valley Wiki
跳至導覽 跳至搜尋

目錄

此頁面解釋如何創建和編輯遊戲內的地點。

術語

某些術語可能含義相同,也可能在不同語境下含義不同。在星露谷物語的語境下:

  • 地點是指遊戲代碼和存檔數據的一部分。它管理遊戲中的區域及其內容物(包括諸如玩家的非地圖實體)。地點可以被存檔文件讀寫,並且僅在加載存檔文件時被加載。
  • 地圖是一種素材文件,它描述遊戲內區域的地塊布局、地塊表和地圖/地塊屬性。每次加載存檔時或每次模組改變地圖時地圖會被重新加載。
  • 世界地圖是遊戲內菜單中顯示的地圖圖像。

換而言之,地點(遊戲代碼的一部分)是指地圖(從Content加載的數據):

┌──────────────────┐
│   - 地点                           │
│   - 物体                           │
│   - 家具                           │
│   - 作物                           │
│   - 灌木和树                       │
│   - 村民和玩家                     │
│   - 其他                           │
│                                    │
│   ┌─────────────┐   │
│   │ 地图素材                 │   │
│   │   - 地块布局             │   │
│   │   - 地图或地块属性       │   │
│   │   - 地块表               │   │
│   └─────────────┘   │
└──────────────────┘

數據格式

可以通過編輯Data/Locations素材以添加或編輯地點。

此素材為一個「字符串 → 數據模型」查詢,其中:

  • 鍵為地點的唯一字符串ID(即「內部名稱」)。該鍵名也會被用作地點的Name字段(而非DisplayName)。(農場則會使用Farm_<type key>代表原版農場類型,或Farm_<type ID>代表自定義農場類型,或Farm_Standard代表沒有特別指定類型。)
  • 值為包含如下字段的數據模型:

基本信息

字段 效果
DisplayName (可選,但強烈建議) 用於顯示翻譯後地點名的模板字符串。此字段用在原版或模組需要顯示地點名稱的場合。
DefaultArrivalTile (可選,但強烈建議) 玩家通過未指定地塊位置的傳送到達該地點後,默認到達的地塊位置。默認為none,也就是通常會把玩家放在(0, 0)。
CreateOnLoad (可選) 若設置,則加載存檔使用此數據文件時會自動創建地點。

此字段為包含如下字段的數據模型:

字段 效果
MapPath 該地點使用的地圖素材名稱。
AlwaysActive (可選) 該地點是否在多人遊戲中向農場幫手保持同步,無論他們是否在此地點。任何允許建造聯機小屋的地點必須開啟此字段以防崩潰。
Type (可選) 待創建的C#地點類的全名。必須為原版類型的名稱以防存檔時崩潰。由於類名過多,不在此一一列出,但最常用的類型為StardewValley.GameLocation (默認值)和StardewValley.Locations.DecoratableLocation
CanPlantHere (可選) 作物和樹木在默認情形下是否能夠種植和生長於此。除非相應的種植規則字段重寫此字段,否則默認使用此字段。農場默認為true,其他位置默認為false。
ExcludeFromNpcPathfinding (可選) 村民在不同地點間尋路時是否忽略此地點。默認為false。

內容

字段 效果
ArtifactSpots (可選) 可以在此地點通過挖掘遠古斑點找到的物品。

在生成古物時,首先會將此字段的物品與Default條目的物品混合,按照Precedence值排序,然後選取字段匹配成功的第一個物品。 (遠古斑點掉落物也可由Data/ObjectsMiscellaneous字段給出;其會被應用於DefaultArtifactSpots中的RANDOM_ARTIFACT_FOR_DIG_SPOT條目。)

此字段為一個由下列字段組成的模型的列表:

字段 效果
公共字段 參見物品生成字段以獲取遠古斑點掉落物支持的通用物品字段。

若設為返回多個物品的模組:物品查詢,則於其中隨機擇一。

Chance (可選) 若其他字段匹配成功,該物品掉落的概率。為 0(從不)到 1(必然)之間的小數值。默認為1。
ApplyGenerousEnchantment (可選) 是否使用「豐富」附魔,此附魔能提高50%掉落雙倍物品的概率。若使用此附魔,則此物品的字段會重新進行隨機判定以判定第二個掉落物(例如,重新選取介於MinStackMaxStack之間的隨機值)。默認為true。
OneDebrisPerDrop (可選) 是否將掉落的一組物品切分成每組堆疊數量為1的物品。例如,若掉落物堆疊數量為3,則會產生3組獨立的單個物品。默認為true。
ContinueOnDrop (可選) 當此物品掉落後,是否繼續檢查更多物品。默認為false。
Precedence (可選) 檢查此條目的順序,其中較小的值會先被檢查。可以取負值。具有同一優先級的遠古斑點會按照列表中的順序依次檢查。默認為0。

為保持一致,原版古物掉落物主要使用如下數值:

  • -1000:優先級應當覆蓋全局優先物品的那些物品(例如姜島上的化石);
  • -100: 全局有限物品(例如齊豆);
  • 0: 正常物品;
  • 100: 全局後備物品(例如粘土)。

例如,如下字段所在的地點會在夏日以50%的概率掉落2-4條河豚:

"ArtifactSpots": [
     {
          "Condition": "LOCATION_SEASON Here summer",
          "ItemId": "(O)128",
          "MinStack": 2,
          "MaxStack": 4
     }
]
FishAreas (可選) 此地點的不同釣魚區域。魚類可以通過FishAreaId字段引用此數據。此字段可以指示蟹籠所收集的魚類。

此字段為一個「字符串 → 數據模型」查詢,其中鍵為釣魚區域的ID,值為包含如下字段的數據模型所組成的列表:

字段 效果
Position (可選) 此釣魚區域覆蓋的地塊位置和尺寸,應當為一個包含 XYWidthHeight 字段的對象。此區域會作用於其中的浮標和蟹籠。默認為 null(任何位置)。

具有Position值的區域優先於沒有此值的區域。

CrabPotFishTypes (可選) 此區域能用蟹籠捕到的魚類種類列表。應當與Data/Fish的字段4(用於設置蟹籠魚類)相匹配。原版類型為 freshwaterocean。若忽略,默認為freshwater
CrabPotJunkChance (可選) 此地點的蟹籠每次產出垃圾而非魚類的概率。 若玩家具有水手職業則被忽略。默認0.2(20%)。
Fish (可選) 此地點能抓住的魚。

在選擇魚類時,此字段會與Default的對應字段混合,然後按照Precedence值排序(並隨機打亂有相同優先級的條目),最後選擇第一個字段匹配的條目。

注意:產出物品的ID會被自動保存,以便稍後重新創建魚類。任何與此ID無關的物品信息將被自動忽略(例如堆疊數量、品質、例如藍莓果酒-果酒的風味變種和is-recipe標識)。


此字段為包含如下字段的模型所組成的列表:

字段 效果
公共字段 參見物品生成字段以獲得採集品支持的通用物品字段。

必須返回Object類型(或其子類型)的物品。若設為返回多個物品的物品查詢,則隨機擇其一。

Chance (可選) 若選中此魚類,生成此魚類的概率,為 0(從不)到 1(必然)之間的小數。默認為1。
Season (可選) 若設置此字段,則其指定能抓住此魚所需季節。使用此字段較Condition高效,但只能支持一個季節。默認為null(所有季節)。
FishAreaId (可選) 若設置此字段,則其指定能抓住此魚的區域(為FishAreas下的區域ID)。默認為 null(所有區域)。
BobberPosition (可選) 若設置此字段,則其指定抓住此魚所需的浮標地塊區域。默認為null(所有地方)。
PlayerPosition (可選) 若設置此字段,則其指定抓住此魚所需的玩家站立地塊位置。默認為null(所有地方)。
MinFishingLevel (可選) 出現此魚所需的最小釣魚等級。
ApplyDailyLuck (可選) 生成概率是否受每日運氣影響。此字段影響Chance字段和Data\Fish幾率(若可用)。默認為false。
CuriosityLureBuff (可選) 當玩家裝配珍稀誘鈎,對生成率的增量。為0或以上的值。此字段影響Chance自動斷和Data\Fish幾率(若可用)。默認為-1,代表保持默認行為(即,不影響Cahnce字段,且為對Data\Fish概率先加後乘)。
SpecificBaitBuff (可選) 玩家裝備針對性魚餌時,直接在生成概率上增加的數值。默認為0。
SpecificBaitMultiplier (可選) 玩家裝備針對性魚餌時,生成概率乘以的倍數。默認為1.66。
CatchLimit (可選) 每個玩家可以抓到此魚的最大數量。此數量上限是永久性的,也就是只要抓到了指定數量的此種魚類就永遠不能再抓到這種魚類。例如,傳說之魚只能抓到1次。默認為-1(無限)。
CanUseTrainingRod (可選) 玩家是否可以用訓練用魚竿釣上此魚。可能的取值為true (總允許)、 false(從不允許)、null(使用默認邏輯,即只能釣上難度50以下的魚)。默認為空。
IsBossFish (可選) 這是否為「傳說魚類」。若是,則在釣魚小遊戲中顯示戴皇冠的魚圖標,並且獲得五倍正常經驗值,例如傳說之魚
RequireMagicBait (可選) 玩家是否需要魔法魚餌才能生成此魚。默認為false。
MinDistanceFromShore (可選) 能抓住此魚的離岸最小距離(單位為地塊),其中0代表緊貼岸邊的水體。
MaxDistanceFromShore (可選) 能抓住此魚的離岸最大距離(單位為地塊),其中0代表緊貼岸邊的水體。默認為-1(無限制)。
Precedence (可選) 檢查列表條目依照的順序。越小的值越先檢查。可以取負值。具有相同優先級的魚會隨機打亂。默認為0。

為保持一致,原版中的魚類主要使用如下取值:

  • -1100 to -1000:全局優先物品(例如齊豆);
  • -200 to -100:唯一地點物品(例如傳說之魚或秘密物品);
  • -50 to -1:正常的高優先級物品;
  • 0: 正常物品;
  • 1 to 100:正常的低優先級物品;
  • 1000+:全局備用物品(如垃圾)。
IgnoreFishDataRequirements (可選) 是否忽略Data/Fish中的生成前提(若可用)。

對於非物體((O))類型的物品或Data/Fish未列出ID的物品,無論此字段取什麼值,Data/Fish的生成前提都會被忽略。

CanBeInherited (可選) 此魚是否可以通過LOCATION_FISH物品查詢在其他地點生成。默認為true。
SetFlagOnCatch (可選) 成功抓到此魚時設置的信件標識。默認為none。The mail flag to set for the current player when this fish is successfully caught. Default none.
ChanceModifiers (可選) 待對Chance使用的修飾器。默認為none。
ChanceModifierMode (可選) 指示ChanceModifiers字段中多個數量修飾器的相互作用模式。默認為Stack
ChanceBoostPerLuckLevel (可選) 玩家幸運等級每高一級帶來的Chance增量。
UseFishCaughtSeededRandom (可選) 生成隨機數時是否使用基於已抓魚數的隨機數種子。
Forage (可選) 該地點可能生成的採集品

說明:

  • 不同於其他物品生成列表,此列表的條目並不是按序列順序檢查的,而是:
    1. 將此列表與Default地點條目中的採集品混合;
    2. 將所有ConditionSeason滿足條件的採集品添加到生成池子;
    3. 選取介於1到4的生成幾率隨機數;
    4. 對每個生成幾率,選取隨機地塊位置和待生成的物品。若無法生成(例如,地塊被占用或澆水,或採集品不能通過Chance檢查),則遊戲會重試最多9次,每次都會重新隨機選取地塊和採集品。若仍然不能通過,則跳過此生成幾率。
  • 物品堆疊數會被忽略。


此字段為包含如下字段的數據模型所組成的列表:

字段 效果
公共字段 參見物品生成字段以獲得採集品支持的通用物品字段。

必須返回 Object(O))類型的物品。若使用了返回多個物品的物品查詢,則在其中隨機擇一。若返回空或非Object類型的物品,則會跳過此物品生成(若物品類型無效,則會記錄一個警告)。

Chance (可選) 若選中該物品,其生成的概率,為 0(從不)到 1(必然)之間的小數。默認為1。
Season (可選) 生成此採集品的季節。此字段比Condition更高效,但此字段僅支持一個季節。默認為null(全部季節)。
MinDailyWeeds
MaxDailyWeeds
(可選) 一天中生成雜草的最低和最高值(若適用)。默認為1和5。
FirstDayWeedMultiplier (可選) 用於每年的第一天,計算生成雜草的倍數。默認為15。
MinDailyForageSpawn
MaxDailyForageSpawn
(可選) 一天中嘗試生成的採集品最小和最大數量(若適用且地點當前採集品數小於MaxSpawnedForageAtOnce)。默認為1和4。
MaxSpawnedForageAtOnce (可選) 地圖上允許生成的採集品最大數量。達到此數量會自動停止生成採集品。默認為6。
ChanceForClay (可選) 挖掘地塊產出粘土的概率,為 0(從不)到 1(必然)之間的數值。

音樂

字段 效果
Music 可選 玩家進入此地點時播放的音樂(受制於諸如MusicContext的其他字段)。

會使用此字段中第一個匹配的列表項。若沒有匹配的,則默認使用MusicDefault

此字段為由包含如下字段的數據模型所組成的列表:

字段 效果
Id 可選 指示該列表項的唯一字符串ID。默認為Track
Track 待播放的音軌ID
Condition 可選 指示此列表項是否可用的遊戲狀態查詢。默認為true。
MusicDefault 可選Music列表中各項均不匹配時的默認音樂。若此項為空,則使用Music地圖屬性(若已設置)。
MusicContext 可選 此地點的音樂上下文。推薦的值為DefaultSubLocation。默認為Default

設為SubLocation會產生如下效果:

  • SubLocation優先級低於Default。在分屏模式下,若玩家A正處於一個有Default上下文的地點,玩家B同時處於一個有SubLocation上下文的地點,則會播放玩家A的音樂。
  • 當玩家離開具有SubLocation上下文的地點時,音樂會自動停止,除非新地點具有相同的音樂和音樂上下文設定。
MusicIgnoredInRain 可選 當此地點下雨時是否忽略此音樂。默認為false。
MusicIgnoredInSpring
MusicIgnoredInSummer
MusicIgnoredInFall
MusicIgnoredInWinter
可選 指定季節是否忽略地點音樂。默認為false。
MusicIgnoredInFallDebris 可選 秋季風天是否忽略地點音樂。默認為false。
MusicIsTownTheme 可選 是否與鵜鶘鎮的音樂邏輯相同,也就是:在每日音樂結束之後開始播放,並且在玩家進入室內區域後繼續播放,但在進入與此地點MusicMusicIsTownTheme不同的戶外區域就會停止播放。默認為false。

高級

字段 效果
CustomFields 可選 此項的自定義字段
FormerLocationNames 可選 可能出現在存檔文件中的地點曾用名。參見「是否可以重命名地點?」以獲得更多信息。

默認條目

Data/Locations素材文件中有一個名為Default的地點。此地點的 ArtifactSpotsFishForage 字段會自動添加到其他地點的相應字段,因此可以使用此地點來配置所有地點的遠古斑點/魚類/採集品。

問答

如何在遊戲中前往自定義地點?

Data/Locations添加地點僅意味着遊戲中存在這個地點了,所以不要忘記添加到達此地點的方法。為此,通常可以在 Content Patcher內容包使用EditMap以添加傳送點。

如需快速測試新地點,可以使用控制台命令中的debug warp <location name>來直接傳送到此地點。

如何設置地點解鎖條件?

有很多方式來設置解鎖條件。例如,可以在使用Content Patcher內容包中使用EditMap以添加解鎖條件或待清理的障礙物(例如道路滑坡)。

注意: 解鎖條件僅應決定地點能否抵達,而不應決定地點存在與否。這是因為移除地點會導致其內部的所有東西永久刪除。

是否可以重命名地點?

若不加以注意,重命名地點會導致玩家對舊名稱對應地點的一切更改永久丟失。

可以通過配置Data/LocationsFormerLocationNames字段以避免上述問題。若存檔數據中存在匹配FormerLocationNames的地點名稱,並且該名稱不能匹配已加載地點的名稱,則其數據會被加載到指定FormerLocationNames字段的地點中。

例如:

"FormerLocationNames": [ "Custom_SomeOldName" ]

地點曾用名可以採用任意格式,但必須全局唯一。無論原版還是模組,一個地點的曾用名不能匹配Data/Locations中其他任何的地點的NameFormerLocationNames

地點名稱

遊戲中的地點是由GameLocation類(及其子類)表示的,且具有唯一名稱。

如下是一些原版地點:

名稱 描述
Farm StardewValley.Farm 鵜鶘鎮農場的室外區域。
FarmHouse StardewValley.Locations.FarmHouse 農舍內部。
FarmCave StardewValley.Locations.FarmCave 農場的蝙蝠/蘑菇山洞
Town StardewValley.Locations.Town 鵜鶘鎮的室外區域。
JoshHouse StardewValley.GameLocation 亞歷克斯/喬治/艾芙琳的房子。(Josh是亞歷克斯的曾用名。)
HaleyHouse StardewValley.GameLocation 海莉/艾米麗的房子。
SamHouse StardewValley.GameLocation 山姆/喬迪/肯特/文森特的房子。
Blacksmith StardewValley.GameLocation 克林特鐵匠鋪
ManorHouse StardewValley.Locations.ManorHouse 鎮長劉易斯的房子。
SeedShop StardewValley.Locations.SeedShop 皮埃爾雜貨店(同時也是卡洛琳/阿比蓋爾的房子以及教堂)
Saloon StardewValley.GameLocation 星之果實餐吧(也是格斯的房子)
Trailer StardewValley.GameLocation 潘姆/潘妮拖車
Hospital StardewValley.GameLocation 哈維的診所
HarveyRoom StardewValley.GameLocation 哈維診所樓上的房間
Beach StardewValley.Locations.Beach 鵜鶘鎮南端的沙灘
ElliottHouse StardewValley.GameLocation 沙灘上艾利歐特的小屋。
Mountain StardewValley.Locations.Mountain 深山的室外區域,也就是木匠商店、萊納斯的帳篷以及探險家公會的所在地。
ScienceHouse StardewValley.GameLocation 木匠的商店
SebastianRoom StardewValley.GameLocation 木匠的商店地下室的塞巴斯蒂安的房間。
Tent StardewValley.GameLocation 萊納斯帳篷
Forest StardewValley.Locations.Forest 農場南端的煤礦森林
WizardHouse StardewValley.Locations.WizardHouse 法師/拉斯莫迪斯法師塔
AnimalShop StardewValley.GameLocation 瑪妮的牧場
LeahHouse StardewValley.GameLocation 莉亞的農舍
BusStop StardewValley.Locations.BusStop 農場和鵜鶘鎮之間的巴士站
Mine StardewValley.Locations.Mine 礦井的第一間房,也就是矮人商店的所在地。
Sewer StardewValley.Locations.Sewer 科羅布斯商店所在的下水道
BugLand StardewValley.Locations.BugLand 下水道的突變蟲穴
Desert StardewValley.Locations.Desert 卡利科沙漠,即桑迪綠洲商店以及骷髏洞穴所在地。
Club StardewValley.Locations.Club 桑迪綠洲商店的齊先生賭場
SandyHouse StardewValley.GameLocation 綠洲,也就是桑迪的商店。
ArchaeologyHouse StardewValley.Locations.LibraryMuseum 鵜鶘鎮的博物館,位於鐵匠鋪南端。
WizardHouseBasement StardewValley.GameLocation 法師塔的地下室。
AdventureGuild StardewValley.Locations.AdventureGuild 探險家公會,也是馬龍吉爾的房子。
Woods StardewValley.Locations.Woods 煤礦森林被大圓木擋住的秘密森林
Railroad StardewValley.Locations.Railroad 深山北部的鐵路,也是溫泉的所在地。
WitchSwamp StardewValley.GameLocation 巫婆沼澤,女巫小屋的所在地。
WitchHut StardewValley.GameLocation 女巫小屋內部。
WitchWarpCave StardewValley.GameLocation 鐵路右上可以進入的洞穴,會將玩家傳送至巫婆沼澤。
Summit StardewValley.Locations.Summit 鐵路北端的頂峰
FishShop StardewValley.Locations.FishShop 威利魚店
BathHouse_Entry StardewValley.GameLocation 溫泉的入口房間,通往男/女更衣室。
BathHouse_MensLocker StardewValley.GameLocation 溫泉男更衣室。
BathHouse_WomensLocker StardewValley.GameLocation 溫泉女更衣室。
BathHouse_Pool StardewValley.Locations.BathHousePool 溫泉內部的浴池。
CommunityCenter StardewValley.Locations.CommunityCenter 社區中心內部。
JojaMart StardewValley.Locations.JojaMart Joja超市內部。
Greenhouse StardewValley.GameLocation 玩家農場的溫室
SkullCave StardewValley.GameLocation 卡利科沙漠骷髏洞穴入口。
Backwoods StardewValley.GameLocation 農場北邊、巴士站西邊的邊遠森林,通往巴士隧道或深山。
Tunnel StardewValley.GameLocation 巴士站西部黑暗的隧道
Trailer_Big StardewValley.GameLocation 社區升級後潘姆/潘妮的房子內部。
Cellar StardewValley.Locations.Cellar
Cellar2 StardewValley.Locations.Cellar
Cellar3 StardewValley.Locations.Cellar
Cellar4 StardewValley.Locations.Cellar
BeachNightMarket StardewValley.Locations.BeachNightMarket 夜市期間鵜鶘鎮的南部。
MermaidHouse StardewValley.Locations.MermaidHouse 夜市美人魚船內部。
Submarine StardewValley.Locations.Submarine 夜市潛艇內部。
AbandonedJojaMart StardewValley.Locations.AbandonedJojaMart 廢棄Joja超市內部,即遺失的收集包所在地。
MovieTheater StardewValley.Locations.MovieTheater 取代Joja超市的電影院的內部。
Sunroom StardewValley.GameLocation 卡洛琳位於皮埃爾雜貨店內的陽光房。
BoatTunnel StardewValley.Locations.BoatTunnel 魚店後面威利的船
IslandSouth StardewValley.Locations.IslandSouth 姜島南部,即玩家登陸和度假村所在地。
IslandSouthEast StardewValley.Locations.IslandSouthEast 姜島東南部,即美人魚和海盜灣所在地。
IslandSouthEastCave StardewValley.Locations.IslandSouthEastCave 海盜灣
IslandEast StardewValley.Locations.IslandEast 姜島東部,即雷歐小屋所在地。
IslandWest StardewValley.Locations.IslandWest 姜島西部,即農舍和貝啼的小屋所在地。
IslandNorth StardewValley.Locations.IslandNorth 姜島北部,即火山和蝸牛教授帳篷所在地。
IslandHut StardewValley.Locations.IslandHut 姜島雷歐小屋的內部。
IslandWestCave1 StardewValley.Locations.IslandWestCave1 姜島五彩水晶謎題所在洞穴。
IslandNorthCave1 StardewValley.Locations.IslandLocation 姜島的蘑菇洞穴,即蝸牛教授受困之處。
IslandFieldOffice StardewValley.Locations.IslandFieldOffice 蝸牛教授的島嶼辦事處帳篷。
IslandFarmHouse StardewValley.Locations.IslandFarmHouse 姜島農舍內部。
CaptainRoom StardewValley.Locations.IslandLocation 姜島西部沉船
IslandShrine StardewValley.Locations.IslandShrine 姜島叢林東部的區域
IslandFarmCave StardewValley.Locations.IslandFarmCave 姜島的饕餮青蛙洞穴
Caldera StardewValley.Locations.Caldera 火山地牢最後的火山口
LeoTreeHouse StardewValley.GameLocation 雷歐的樹屋
QiNutRoom StardewValley.Locations.IslandLocation 齊先生的核桃房