查看“模组:制作指南/APIs/Manifest”的源代码
←
模组:制作指南/APIs/Manifest
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
{{../../header}} 每个模组都有且仅有一个<samp>manifest.json</samp>。Manifest一词,作名词时译为“清单,载货单,旅客名单”,在此语境中,可以理解成“对模组的描述”。 你模组的'''基本信息'''都写在<samp>manifest.json</samp>里,SMAPI靠它来'''识别、加载模组,检测是否需要更新,等等'''。 ==一个简单的示例== {|class="wikitable" |- ! SMAPI模组 ! 内容包 (Content Pack) |- | <syntaxhighlight lang="javascript"> { "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": [] } </syntaxhighlight> | <syntaxhighlight lang="javascript"> { "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" } } </syntaxhighlight> |} ==属性== ===必备属性=== 下列属性'''所有模组必须写明''': {|class="wikitable" |- ! 属性 ! 介绍 |- | <samp>Name</samp> | 模组名称。例如:<syntaxhighlight lang="javascript">"Name": "Lookup Anything"</syntaxhighlight> |- | <samp>Author</samp> | 作者。 |- | <samp>Version</samp> | 模组的[https://semver.org/lang/zh-CN/ 版本(号)]。用于检测模组是否需要更新,以及兼容性。每次更新别忘记更新版本号!示例: <syntaxhighlight lang="javascript"> "Version": "1.0.0" </syntaxhighlight> <syntaxhighlight lang="javascript"> "Version": "1.0.1-beta.2" </syntaxhighlight> |- | <samp>Description</samp> | 模组功能的简单描述。例如:<syntaxhighlight lang="javascript">"Description": "View metadata about anything by pressing a button."</syntaxhighlight> |- | <samp>UniqueID</samp> | 模组的唯一识别码。建议格式为<samp><作者名字>.<模组名称></samp>,不能有空格或特殊字符。这是你模组和外界交流的名片。例如:<syntaxhighlight lang="javascript">"UniqueID": "Pathoschild.LookupAnything"</syntaxhighlight> |- | <samp>EntryDll</samp> 或 <samp>ContentPackFor</samp> (二者选一) | <p>前者用于SMAPI模组,后者用于内容包。</p> 对于SMAPI模组,<samp>EntryDll</samp>是.dll文件名。例如:<syntaxhighlight lang="javascript">"EntryDll": "LookupAnything.dll"</syntaxhighlight> 对于SMAPI模组,<samp>ContentPackFor</samp>指定了该内容包的宿主模组。下面的<samp>MinimumVersion</samp>是可选属性,本章后面会讲到。例如: <syntaxhighlight lang="javascript"> "ContentPackFor": { "UniqueID": "Pathoschild.ContentPatcher", "MinimumVersion": "1.0.0" } </syntaxhighlight> |} ===Minimum SMAPI version 属性=== 顾名思义,该属性将指定需要的最早的SMAPI版本号。只有SMAPI版本'''大于或等于这个版本号''',你的模组才会加载进去,否则会提示更新SMAPI。这里有一个潜台词是,这个版本号不仅指定SMAPI,还限定了'''原游戏的最小版本'''。这是由于不同版本SMAPI有相对应的游戏版本。 <syntaxhighlight lang="javascript">"MinimumApiVersion": "3.8.0"</syntaxhighlight> ===Dependencies 属性=== Dependencies属性定义了:你的模组“依赖”的其他模组。所谓的'''前置''',指的就是这个。如果忘了安装前置,会报错,SMAPI控制台跳红字,提醒你安装必备的前置,同时你的模组不会加载。 <syntaxhighlight lang="javascript"> "Dependencies": [ { "UniqueID": "SMAPI.ConsoleCommands", "MinimumVersion": "3.8.0" // 选填。表示该前置允许的最小版本号。 } ] </syntaxhighlight> 前置的要求也可以很宽松:可以不是必备的。有安装就用,没安装就不用。<samp>IsRequired</samp>属性为<samp>false</samp>时,表示该前置可有可无。 <syntaxhighlight lang="javascript"> "Dependencies": [ { "UniqueID": "SMAPI.ConsoleCommands", "IsRequired": false } ] </syntaxhighlight> ===UpdateKeys 属性=== SMAPI根据<samp>UpdateKeys</samp>来检测更新。详见[[../Update checks|''update checks'']]。 ===其他属性=== 其他属性是指模组作者可以自行添加的属性。它们都储存在<samp>IManifest.ExtraFields</samp>中,这是一个以<string>为键,以<object>为值的[https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.idictionary-2?view=net-5.0 字典集合]。SMAPI不会识别这些属性。 [[en:Modding:Modder Guide/APIs/Manifest]]
该页面使用的模板:
模组:制作指南/header
(
查看源代码
)
返回至
模组:制作指南/APIs/Manifest
。
导航菜单
个人工具
创建账户
登录
名字空间
模组
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
台灣正體
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
未翻译的页面
帮助:编辑入门
随机页面
官方链接
官方网站
官方论坛
官方商品
Discord
Reddit
工具
链入页面
相关更改
上传文件
特殊页面
页面信息