<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://mdtwiki.top/index.php?action=history&amp;feed=atom&amp;title=JSON%E6%A8%A1%E7%BB%84%E6%95%99%E7%A8%8B-%E6%A8%A1%E7%BB%84%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80</id>
	<title>JSON模组教程-模组开发基础 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://mdtwiki.top/index.php?action=history&amp;feed=atom&amp;title=JSON%E6%A8%A1%E7%BB%84%E6%95%99%E7%A8%8B-%E6%A8%A1%E7%BB%84%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80"/>
	<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=JSON%E6%A8%A1%E7%BB%84%E6%95%99%E7%A8%8B-%E6%A8%A1%E7%BB%84%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80&amp;action=history"/>
	<updated>2026-05-18T03:26:14Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://mdtwiki.top/index.php?title=JSON%E6%A8%A1%E7%BB%84%E6%95%99%E7%A8%8B-%E6%A8%A1%E7%BB%84%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80&amp;diff=3750&amp;oldid=prev</id>
		<title>Bmte：​更正一处错误目录statuses to status</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=JSON%E6%A8%A1%E7%BB%84%E6%95%99%E7%A8%8B-%E6%A8%A1%E7%BB%84%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80&amp;diff=3750&amp;oldid=prev"/>
		<updated>2026-05-16T02:21:45Z</updated>

		<summary type="html">&lt;p&gt;更正一处错误目录statuses to status&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年5月16日 (六) 10:21的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l66&quot;&gt;第66行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第66行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &amp;lt;code&amp;gt;/blocks/&amp;lt;/code&amp;gt;：方块代码；&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &amp;lt;code&amp;gt;/blocks/&amp;lt;/code&amp;gt;：方块代码；&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &amp;lt;code&amp;gt;/units/&amp;lt;/code&amp;gt;：单位代码；&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &amp;lt;code&amp;gt;/units/&amp;lt;/code&amp;gt;：单位代码；&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &amp;lt;code&amp;gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;statuses&lt;/del&gt;/&amp;lt;/code&amp;gt;：状态效果；&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &amp;lt;code&amp;gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;status&lt;/ins&gt;/&amp;lt;/code&amp;gt;：状态效果；&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &amp;lt;code&amp;gt;/planets/&amp;lt;/code&amp;gt;：行星；&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &amp;lt;code&amp;gt;/planets/&amp;lt;/code&amp;gt;：行星；&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &amp;lt;code&amp;gt;/sectors/&amp;lt;/code&amp;gt;：区块；&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &amp;lt;code&amp;gt;/sectors/&amp;lt;/code&amp;gt;：区块；&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mdtwiki_stnglove:diff:1.41:old-2509:rev-3750:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Bmte</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=JSON%E6%A8%A1%E7%BB%84%E6%95%99%E7%A8%8B-%E6%A8%A1%E7%BB%84%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80&amp;diff=2509&amp;oldid=prev</id>
		<title>硫缺铅：​创建页面，内容为“= 模组开发基础 =  == 工具配置 ==  JSON是一种&#039;&#039;&#039;标记语言&#039;&#039;&#039;，不属于&#039;&#039;&#039;编程语言（Programming Language）&#039;&#039;&#039;范畴。开发JSON模组不需要使用&#039;&#039;&#039;集成开发环境（IDE）&#039;&#039;&#039;，仅需一个&#039;&#039;&#039;文本编辑器&#039;&#039;&#039;即可。然而，具备&#039;&#039;&#039;格式化&#039;&#039;&#039;功能的编辑器或在移动设备上便于输入符号的工具能够显著提升开发效率，因此不建议直接使用系统自带的&lt;code&gt;notepad.exe&lt;/code&gt;进行模组开发。…”</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=JSON%E6%A8%A1%E7%BB%84%E6%95%99%E7%A8%8B-%E6%A8%A1%E7%BB%84%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80&amp;diff=2509&amp;oldid=prev"/>
		<updated>2026-02-01T13:04:43Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“= 模组开发基础 =  == 工具配置 ==  JSON是一种&amp;#039;&amp;#039;&amp;#039;标记语言&amp;#039;&amp;#039;&amp;#039;，不属于&amp;#039;&amp;#039;&amp;#039;编程语言（Programming Language）&amp;#039;&amp;#039;&amp;#039;范畴。开发JSON模组不需要使用&amp;#039;&amp;#039;&amp;#039;集成开发环境（IDE）&amp;#039;&amp;#039;&amp;#039;，仅需一个&amp;#039;&amp;#039;&amp;#039;文本编辑器&amp;#039;&amp;#039;&amp;#039;即可。然而，具备&amp;#039;&amp;#039;&amp;#039;格式化&amp;#039;&amp;#039;&amp;#039;功能的编辑器或在移动设备上便于输入符号的工具能够显著提升开发效率，因此不建议直接使用系统自带的&amp;lt;code&amp;gt;notepad.exe&amp;lt;/code&amp;gt;进行模组开发。…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= 模组开发基础 =&lt;br /&gt;
&lt;br /&gt;
== 工具配置 ==&lt;br /&gt;
&lt;br /&gt;
JSON是一种&amp;#039;&amp;#039;&amp;#039;标记语言&amp;#039;&amp;#039;&amp;#039;，不属于&amp;#039;&amp;#039;&amp;#039;编程语言（Programming Language）&amp;#039;&amp;#039;&amp;#039;范畴。开发JSON模组不需要使用&amp;#039;&amp;#039;&amp;#039;集成开发环境（IDE）&amp;#039;&amp;#039;&amp;#039;，仅需一个&amp;#039;&amp;#039;&amp;#039;文本编辑器&amp;#039;&amp;#039;&amp;#039;即可。然而，具备&amp;#039;&amp;#039;&amp;#039;格式化&amp;#039;&amp;#039;&amp;#039;功能的编辑器或在移动设备上便于输入符号的工具能够显著提升开发效率，因此不建议直接使用系统自带的&amp;lt;code&amp;gt;notepad.exe&amp;lt;/code&amp;gt;进行模组开发。&lt;br /&gt;
&lt;br /&gt;
=== 安卓端 ===&lt;br /&gt;
&lt;br /&gt;
在安卓端上，笔者唯二推荐的编辑器之一就是&amp;#039;&amp;#039;&amp;#039;MT管理器&amp;#039;&amp;#039;&amp;#039;，理由有下：&lt;br /&gt;
&lt;br /&gt;
* 许多用户长期使用；&lt;br /&gt;
* 自带代码编辑器，是等宽字体，还支持多标签页，方便查代码；&lt;br /&gt;
* 自带代码格式化器，但只支持JSON；&lt;br /&gt;
* 自带压缩功能，方便将模组导入到游戏中；&lt;br /&gt;
* 自带软键盘，方便输入特殊符号。&lt;br /&gt;
&lt;br /&gt;
下载这个软件并不难，但是在各大自带软件市场无法找到这个软件，原因无外乎MT管理器并非一个简单的文件管理器，而是一把瑞士军刀。你甚至可以用MT管理器反编译应用。但请注意，没有必要用破解版MT去反编译Mindustry，因为Mindustry的源代码是公开的，比反编译出来的可读性要好上不少。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;ios&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== iOS ===&lt;br /&gt;
&lt;br /&gt;
在iOS上，笔者只推荐&amp;#039;&amp;#039;&amp;#039;Spec Editor&amp;#039;&amp;#039;&amp;#039;，这也是安卓端推荐的第二个编辑器。后推荐它的原因主要是因为较少有人使用。优点如下：&lt;br /&gt;
&lt;br /&gt;
* 衍生自 &amp;#039;&amp;#039;&amp;#039;Visual Studio Code&amp;#039;&amp;#039;&amp;#039; ，UI令人舒适；&lt;br /&gt;
* 自动Json纠错，自动检查代码语法错误；&lt;br /&gt;
* 软键盘功能齐全；&lt;br /&gt;
* 压缩导出非常方便；&lt;br /&gt;
* 甚至它是支持Git的！&lt;br /&gt;
&lt;br /&gt;
在iOS上这个软件非常好下载，但在安卓平台上可能要花一些苦功夫去找了。&lt;br /&gt;
&lt;br /&gt;
=== 桌面端 ===&lt;br /&gt;
&lt;br /&gt;
虽然桌面端也有很多选择，但是笔者仍然最推荐 &amp;#039;&amp;#039;&amp;#039;Visual Studio Code&amp;#039;&amp;#039;&amp;#039; 。而在压缩软件方面，Windows推荐&amp;#039;&amp;#039;&amp;#039;Bandzip&amp;#039;&amp;#039;&amp;#039;，macOS推荐&amp;#039;&amp;#039;&amp;#039;Keka&amp;#039;&amp;#039;&amp;#039;，*nix用户请自行使用命令行工作。&lt;br /&gt;
&lt;br /&gt;
如果使用&amp;#039;&amp;#039;&amp;#039;VSCode&amp;#039;&amp;#039;&amp;#039;，你可以选择安装&amp;#039;&amp;#039;&amp;#039;Hjson&amp;#039;&amp;#039;&amp;#039;插件，支持Hjson的格式化。不装任何插件也可以浏览Mindustry源代码，如果加装&amp;#039;&amp;#039;&amp;#039;Gradle&amp;#039;&amp;#039;&amp;#039;插件反而会占用存储空间。&lt;br /&gt;
&lt;br /&gt;
=== 绘图软件 ===&lt;br /&gt;
&lt;br /&gt;
绘图软件不必区分平台，通用的选择就是&amp;#039;&amp;#039;&amp;#039;PS&amp;#039;&amp;#039;&amp;#039;，我指的不是Adobe Photoshop，而是 &amp;#039;&amp;#039;&amp;#039;Pixel Studio&amp;#039;&amp;#039;&amp;#039; 。&lt;br /&gt;
&lt;br /&gt;
万事俱备，只欠东风。工具配备齐全后，我们可以开工了！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 模组结构 ==&lt;br /&gt;
&lt;br /&gt;
JSON模组不区分“源代码”和实际可以安装的模组文件。实际上，JSON模组实质就是一个文件夹，或者是一个文件夹的&amp;lt;code&amp;gt;zip&amp;lt;/code&amp;gt;压缩包。&lt;br /&gt;
&lt;br /&gt;
当然，为了和官方wiki中的教程贴近一些，你可以选择直接把文件夹建在游戏的mod文件夹里。有的系统直接直接输入路径进行访问相应路径，直接复制下方路径即可。&lt;br /&gt;
&lt;br /&gt;
我还是要再次声明，如果你找不到这些路径在哪里，压缩模组再导入游戏也不会耗费太多时间：&lt;br /&gt;
&lt;br /&gt;
* Linux： ~/.local/share/Mindustry/mods/&lt;br /&gt;
* Steam： steam/steamapps/common/Mindustry/saves/mods/&lt;br /&gt;
* Windows： %appdata%/Mindustry/mods/&lt;br /&gt;
* MacOS： ~/Library/Application Support/Mindustry/mods/&lt;br /&gt;
* Android：/Android/data/io.anuke.mindustry/mods&lt;br /&gt;
* iOS：你在做梦&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;mod.json&amp;lt;/code&amp;gt;：模组配置数据，是模组唯一必需的文件； &lt;br /&gt;
* &amp;lt;code&amp;gt;content/&amp;lt;/code&amp;gt;：Json数据，也就是模组的“代码”： &lt;br /&gt;
** &amp;lt;code&amp;gt;/items/&amp;lt;/code&amp;gt;：物品代码；&lt;br /&gt;
** &amp;lt;code&amp;gt;/liquids/&amp;lt;/code&amp;gt;：流体代码；&lt;br /&gt;
** &amp;lt;code&amp;gt;/blocks/&amp;lt;/code&amp;gt;：方块代码；&lt;br /&gt;
** &amp;lt;code&amp;gt;/units/&amp;lt;/code&amp;gt;：单位代码；&lt;br /&gt;
** &amp;lt;code&amp;gt;/statuses/&amp;lt;/code&amp;gt;：状态效果；&lt;br /&gt;
** &amp;lt;code&amp;gt;/planets/&amp;lt;/code&amp;gt;：行星；&lt;br /&gt;
** &amp;lt;code&amp;gt;/sectors/&amp;lt;/code&amp;gt;：区块；&lt;br /&gt;
** &amp;lt;code&amp;gt;/weathers/&amp;lt;/code&amp;gt;：天气；&lt;br /&gt;
* &amp;lt;code&amp;gt;bundles/&amp;lt;/code&amp;gt;：语言文件；&lt;br /&gt;
* &amp;lt;code&amp;gt;sprites/&amp;lt;/code&amp;gt;：模组贴图文件；&lt;br /&gt;
** &amp;lt;code&amp;gt;/blocks/environment/&amp;lt;/code&amp;gt;：&amp;#039;&amp;#039;&amp;#039;模组地板的贴图必须放在这里&amp;#039;&amp;#039;&amp;#039;；&lt;br /&gt;
* &amp;lt;code&amp;gt;sprites-override/&amp;lt;/code&amp;gt;：&amp;#039;&amp;#039;&amp;#039;覆盖原版&amp;#039;&amp;#039;&amp;#039;的贴图文件；&lt;br /&gt;
* &amp;lt;code&amp;gt;schematics/&amp;lt;/code&amp;gt;：蓝图文件；&lt;br /&gt;
* &amp;lt;code&amp;gt;maps/&amp;lt;/code&amp;gt;：地图文件；&lt;br /&gt;
* &amp;lt;code&amp;gt;sounds/&amp;lt;/code&amp;gt;：音效文件；&lt;br /&gt;
* &amp;lt;code&amp;gt;musics/&amp;lt;/code&amp;gt;：音乐文件；&lt;br /&gt;
* &amp;lt;code&amp;gt;scirpts/&amp;lt;/code&amp;gt;：Javascript文件。&lt;br /&gt;
以上就是JSON模组基本上所有需要用到的文件夹，以及原版&amp;#039;&amp;#039;&amp;#039;唯一必需的文件&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;mod.json&amp;lt;/code&amp;gt;（也可以是&amp;lt;code&amp;gt;mod.hjson&amp;lt;/code&amp;gt;，区别见下文）。为了能完成这个必需的文件，我们需要先一览JSON的语法。在这里我可以直接给你Json模组所有要用到的文件夹。你可以选择按需创建，一次性全都创建完成也可以。&lt;br /&gt;
&lt;br /&gt;
与官方教程不同的是，中文版的本教程会先讲&amp;#039;&amp;#039;&amp;#039;标准Json语法&amp;#039;&amp;#039;&amp;#039;。这是因为国内手机较电脑更为普及，而在手机上缺少Hjson的格式化器导致的。如果你想要更严谨的学习，可以访问[https://www.runoob.com/json/json-tutorial.html 菜鸟教程]。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
如果要严格地去定义的话，应当有以下表述：&lt;br /&gt;
&lt;br /&gt;
* JSON全称&amp;#039;&amp;#039;&amp;#039;Javascript对象表示法&amp;#039;&amp;#039;&amp;#039;，Javascript对象表示语法是JSON语法的超集；&lt;br /&gt;
* 一个&amp;lt;code&amp;gt;.json&amp;lt;/code&amp;gt;文件为一个JSON对象。对象中的数据由键值对存储，符合&amp;lt;code&amp;gt;key : value&amp;lt;/code&amp;gt;的格式，并且每条键值对需要用逗号分隔，不允许尾随逗号；&lt;br /&gt;
* 键必须为字符串格式。值有五只类型，包括数字（Number）、布尔值（Bool）、字符串（String）、列表（List）和对象（Object）。数字类型为纯数字，常用的表示方法均可识别；布尔值仅有两值&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;，表逻辑判断；字符串需要用双引号括起，不支持直接换行，可以使用控制字符；列表用&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;包围，是值的集合，值间用逗号隔开；对象用&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;包围，是键值对的集合，键值对间用逗号隔开。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;如果你真的能从上面这些东西学到JSON语法，恐怕你是先天程序员圣体了。&amp;#039;&amp;#039;&amp;#039; 实际上，你只需要对JSON语法有个朦胧的印象，如果游戏报语法错误，你只需要有使用&amp;#039;&amp;#039;&amp;#039;格式化器&amp;#039;&amp;#039;&amp;#039;查找错误的能力即可。不过，我还是想提两点常见的错误：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;使用英文字符&amp;#039;&amp;#039;&amp;#039;：虽然&amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;：&amp;lt;/code&amp;gt;看起来很像，但是游戏只会认可前一个。你需要使用英文键盘输入代码。受影响的字符包括：&amp;lt;code&amp;gt;&amp;amp;quot; , : { } [ ]&amp;lt;/code&amp;gt;。有的时候，在英文输入法下也可能会输入英文的前后引号，你要保证你的引号是直的！&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;成对字符必须成对&amp;#039;&amp;#039;&amp;#039;：这句话表象上是一句将军式的废话，但是我见过的50%的错误都是丢个后引号或者括号没配上对导致的。如果你实在想不起来写引号，还不愿意使用格式化器的话，往下看；&lt;br /&gt;
* 分清方括号和花括号。&lt;br /&gt;
&lt;br /&gt;
如果能克服这两个问题，一般你也就可以声称自己学会JSON语法了。不过，JSON语法本身并不算什么有用的东西。只有JSON文件被解析才产生了意义，对于某些Mindustry中额外添加的规则，比如&amp;lt;code&amp;gt;copper/10&amp;lt;/code&amp;gt;，才是本教程存在最大的意义。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;hjson&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Hjson ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Hjson是一种基于JSON的配置文件格式，旨在提供更人性化的语法，同时保持与JSON的兼容性。它通过减少必要的标点符号、支持注释和更灵活的字符串表示方式，使得配置文件更易于人类读写和维护。&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
实际上，Mindustry（或者说是Arc）中的JSON并非标准JSON，而是一种&amp;#039;&amp;#039;&amp;#039;Hjson&amp;#039;&amp;#039;&amp;#039;。正如其标榜的内容一样，Hjson写进来更加轻松，具体来说就是：&amp;#039;&amp;#039;&amp;#039;不引起歧义的双引号、逗号可以省略；支持注释；可以省略开头结尾的大括号&amp;#039;&amp;#039;&amp;#039;。此外，Mindustry中的解析更为宽松，还允许&amp;#039;&amp;#039;&amp;#039;多行字符串不加任何引号；给数字和布尔值加引号&amp;#039;&amp;#039;&amp;#039;。比如，上面的示例还可以这样写：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;hjson&amp;quot;&amp;gt;{&lt;br /&gt;
  //Block Type&lt;br /&gt;
  type: GenericCrafter&lt;br /&gt;
  description: Hello &lt;br /&gt;
  world!&lt;br /&gt;
  health: 100&lt;br /&gt;
  hasItems: true&lt;br /&gt;
  &lt;br /&gt;
  /* &lt;br /&gt;
   Nice Boat&lt;br /&gt;
  */&lt;br /&gt;
  &lt;br /&gt;
  requirements: [&lt;br /&gt;
    copper/10&lt;br /&gt;
    {&lt;br /&gt;
      item: lead&lt;br /&gt;
      amount: 10&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
  research: {&lt;br /&gt;
    parent: copper-wall&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
可以看出，基本只省下两种括号和冒号了。这也是为什么有的时候你忘掉一个逗号或引号不会引起错误。&lt;br /&gt;
&lt;br /&gt;
关于注释，使用&amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;领起单行注释，&amp;lt;code&amp;gt;/* ... */&amp;lt;/code&amp;gt;括起多行注释。Mindustry不支持使用&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;领起单行注释。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
虽然Hjson这么美好，但是并非没有代价。虽然可读性变高了，但语法检查也变难了。因此，你需要权衡一下，而且最好在整个模组中保持一致的语法规则。&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;code&amp;gt;mod.json&amp;lt;/code&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
接下来，你需要找一个地方安放你的文件夹，并且按上面的目录结构创建了&amp;lt;code&amp;gt;mod.json&amp;lt;/code&amp;gt;（或&amp;lt;code&amp;gt;mod.hjson&amp;lt;/code&amp;gt;）这个文本文件，然后填入以下内容：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code-group&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre lang=&amp;quot;json&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;tutorial-json-mod&amp;quot;,&lt;br /&gt;
  &amp;quot;displayName&amp;quot;: &amp;quot;JSON教程模组&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: &amp;quot;Learn-Mindustry-Mod&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;1.0.0&amp;quot;,&lt;br /&gt;
  &amp;quot;minGameVersion&amp;quot;: &amp;quot;152.2&amp;quot;,&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;这是一个示例模组&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;hjson&amp;quot;&amp;gt;{&lt;br /&gt;
  name: tutorial-json-mod&lt;br /&gt;
  displayName: JSON教程模组&lt;br /&gt;
  author: Learn-Mindustry-Mod&lt;br /&gt;
  version: 1.0.0&lt;br /&gt;
  minGameVersion: 152.2&lt;br /&gt;
  description: 这是一个示例模组&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;：模组的&amp;#039;&amp;#039;&amp;#039;内部名称（Internal Name）&amp;#039;&amp;#039;&amp;#039;，推荐使用小写字母及连字符，在未来你可能需要在贴图命名的时候用到它，我会用&amp;lt;code&amp;gt;modName&amp;lt;/code&amp;gt;指代之；&lt;br /&gt;
* &amp;lt;code&amp;gt;minGameVersion&amp;lt;/code&amp;gt;：&amp;#039;&amp;#039;&amp;#039;最低游戏版本&amp;#039;&amp;#039;&amp;#039;，非常重要，是游戏用来在大版本更新时逼迫作者更新模组的利器。不能低于当前大版本的第一个小版本，例如，现在对JSON模组是&amp;lt;code&amp;gt;136&amp;lt;/code&amp;gt;。建议与最新版本&amp;lt;code&amp;gt;152.2&amp;lt;/code&amp;gt;保持一致；&lt;br /&gt;
* &amp;lt;code&amp;gt;displayName&amp;lt;/code&amp;gt;：模组在模组对话框中显示出来的全称；&lt;br /&gt;
* &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt;：你（作者）的名字；&lt;br /&gt;
* &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt;：模组的版本号；&lt;br /&gt;
* &amp;lt;code&amp;gt;deescription&amp;lt;/code&amp;gt;：模组详细页里的简介，你可以在这里简单介绍你的模组。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
完成上述工作后，你就可以压缩你的模组，然后导入到游戏当中。游戏重启后，如果能在模组页面看到你的模组，就说明没有问题了！&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;获取一份源代码可选&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 获取一份源代码（可选） ==&lt;br /&gt;
&lt;br /&gt;
Mindustry是开源的游戏，遵守GPL-3许可证。这对你有两点意味：首先，你的模组也必须是开放源&amp;#039;&amp;#039;&amp;#039;代码&amp;#039;&amp;#039;&amp;#039;的；其次，你可以直接获取Mindustry的源代码来查找数据和贴图，而不必像其他游戏一样要靠&amp;#039;&amp;#039;&amp;#039;拆包和反编译。&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Mindustry的源代码就托管在GitHub上，项目地址为https://github.com/Anuken/Mindustry。此外，Mindustry是基于Arc游戏框架开发的，因此你还需要用到https://github.com/Anuken/Arc。&lt;br /&gt;
&lt;br /&gt;
访问这两个网站，你可以在线访问源代码（很考验你的网速），或者是下载源代码。找到Code-&amp;amp;gt;Download Zip，这样你就将源代码下载到本地了。&lt;br /&gt;
&lt;br /&gt;
如果你的网络不支持你这么做，你可以选择寻找一些GitHub加速的手段。这里我可以给你提供两个网址：[https://ghfast.top/https://github.com/Anuken/Mindustry/archive/master.zip Mindustry最新源代码]和[https://ghfast.top/https://github.com/Anuken/Arc/archive/master.zip Arc最新源代码]。&lt;br /&gt;
&lt;br /&gt;
在Mindustry源代码目录下方&amp;lt;code&amp;gt;core/src&amp;lt;/code&amp;gt;就是原版大部分源代码了，&amp;lt;code&amp;gt;core/sprites-raw&amp;lt;/code&amp;gt;则是原版所有&amp;#039;&amp;#039;&amp;#039;未经处理的&amp;#039;&amp;#039;&amp;#039;贴图。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;faq&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;在Windows上报错&amp;lt;code&amp;gt;Invalid CEN header&amp;lt;/code&amp;gt;怎么办？&amp;#039;&amp;#039;&amp;#039;：这说明你的压缩包编码格式不对，你需要确保你的所有文件都是&amp;lt;code&amp;gt;UTF-8（无BOM）&amp;lt;/code&amp;gt;编码的；&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;我的模组重启后就消失了？&amp;#039;&amp;#039;&amp;#039;：如果模组消失，只有可能是加载失败了，在设置-数据中导出日志或直接查看&amp;lt;code&amp;gt;lastlog.txt&amp;lt;/code&amp;gt;解决问题；&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;报错&amp;lt;code&amp;gt;No mod.json found&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;：首先检查文件名的拼写是否有误。如果无误，你需要改变一下压缩的手法，不要压缩包括&amp;lt;code&amp;gt;mod.json&amp;lt;/code&amp;gt;文件的文件夹，而是全选所有文件并压缩；&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;官方Wiki上指示我把模组文件夹直接建立在Mindustry数据文件夹里，为何本教程不推荐这么做？&amp;#039;&amp;#039;&amp;#039;：从国情考虑，大多数人找不到数据文件夹在哪。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;为什么&amp;lt;code&amp;gt;modName&amp;lt;/code&amp;gt;命名有那么多限制？&amp;#039;&amp;#039;&amp;#039;：因为原版自带一种特殊的处理机制（位于&amp;lt;code&amp;gt;Mod.java&amp;lt;/code&amp;gt;的953行），&amp;lt;code&amp;gt;modName&amp;lt;/code&amp;gt;会自动把大写字母转成小写字母，并把空格转为连字符。例如，&amp;lt;code&amp;gt;My Mod Name&amp;lt;/code&amp;gt;转化成&amp;lt;code&amp;gt;my-mod-name&amp;lt;/code&amp;gt;这一过程是全自动的，本来就会被游戏识别成相同的名称。至于中文字符，就是仁者见仁的东西了。&lt;/div&gt;</summary>
		<author><name>硫缺铅</name></author>
	</entry>
</feed>