模组:製作指南/APIs/Manifest
跳至導覽
跳至搜尋
← 模組:目錄
每個模組都有且僅有一個manifest.json。Manifest一詞,作名詞時譯為「清單,載貨單,旅客名單」,在此語境中,可以理解成「對模組的描述」。 你模組的基本信息都寫在manifest.json里,SMAPI靠它來識別、加載模組,檢測是否需要更新,等等。
一個簡單的示例
SMAPI模組 | 內容包 (Content Pack) |
---|---|
{
"Name": "Your Project Name",
"Author": "your name",
"Version": "1.0.0",
"Description": "One or two sentences about the mod.",
"UniqueID": "YourName.YourProjectName",
"EntryDll": "YourDllFileName.dll",
"UpdateKeys": []
}
|
{
"Name": "Your Project Name",
"Author": "your name",
"Version": "1.0.0",
"Description": "One or two sentences about the mod.",
"UniqueID": "YourName.YourProjectName",
"UpdateKeys": [],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
}
}
|
屬性
必備屬性
下列屬性所有模組必須寫明:
屬性 | 介紹 |
---|---|
Name | 模組名稱。例如:"Name": "Lookup Anything"
|
Author | 作者。 |
Version | 模組的版本(號)。用於檢測模組是否需要更新,以及兼容性。每次更新別忘記更新版本號!示例:
"Version": "1.0.0"
"Version": "1.0.1-beta.2"
|
Description | 模組功能的簡單描述。例如:"Description": "View metadata about anything by pressing a button."
|
UniqueID | 模組的唯一識別碼。建議格式為<作者名字>.<模組名稱>,不能有空格或特殊字符。這是你模組和外界交流的名片。例如:"UniqueID": "Pathoschild.LookupAnything"
|
EntryDll 或 ContentPackFor (二者選一) | 前者用於SMAPI模組,後者用於內容包。 對於SMAPI模組,EntryDll是.dll文件名。例如:"EntryDll": "LookupAnything.dll"
對於SMAPI模組,ContentPackFor指定了該內容包的宿主模組。下面的MinimumVersion是可選屬性,本章後面會講到。例如: "ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher",
"MinimumVersion": "1.0.0"
}
|
Minimum SMAPI version 屬性
顧名思義,該屬性將指定需要的最早的SMAPI版本號。只有SMAPI版本大於或等於這個版本號,你的模組才會加載進去,否則會提示更新SMAPI。這裡有一個潛台詞是,這個版本號不僅指定SMAPI,還限定了原遊戲的最小版本。這是由於不同版本SMAPI有相對應的遊戲版本。
"MinimumApiVersion": "3.8.0"
Dependencies 屬性
Dependencies屬性定義了:你的模組「依賴」的其他模組。所謂的前置,指的就是這個。如果忘了安裝前置,會報錯,SMAPI控制台跳紅字,提醒你安裝必備的前置,同時你的模組不會加載。
"Dependencies": [
{
"UniqueID": "SMAPI.ConsoleCommands",
"MinimumVersion": "3.8.0" // 选填。表示该前置允许的最小版本号。
}
]
前置的要求也可以很寬鬆:可以不是必備的。有安裝就用,沒安裝就不用。IsRequired屬性為false時,表示該前置可有可無。
"Dependencies": [
{
"UniqueID": "SMAPI.ConsoleCommands",
"IsRequired": false
}
]
UpdateKeys 屬性
SMAPI根據UpdateKeys來檢測更新。詳見update checks。
其他屬性
其他屬性是指模組作者可以自行添加的屬性。它們都儲存在IManifest.ExtraFields中,這是一個以<string>為鍵,以<object>為值的字典集合。SMAPI不會識別這些屬性。