如何在雨世界1.9中给已存在区域添加新房间?
前言
本文档的目的是带你入门添加房间到一个已有区域,不会覆盖所有可以设置的部分。有兴趣的应当自行参考mods\moreslugcats中的各种设置,以及这两个网站:
https://rainworldmodding.miraheze.org/wiki/Category:Content_Mods
https://rainworldmodding.miraheze.org/wiki/Downpour_Reference
本文档也不会对地图编辑器的用法进行说明。

1. 建立基本文件夹结构
在当前版本中,游戏已经为模组制作者准备好了专门的模组文件夹,位于:
Rain World\RainWorld_Data\StreamingAssets\mods
在这个文件夹内,你可以找到游戏自带的模组。我们的区域修改就从这里开始。
步骤:
1. 在mods文件夹中建立一个新文件夹,命名为你的模组名称。例如,我的模组名称为expandedleg。

2. 下面我们在你的模组文件夹内创建一个名称为modinfo的JSON文件。我的建议是你直接从一个其它模组文件夹内复制一个过来,之后修改其中的内容。由于编写modinfo不在本文档的解释范围内,我便不多赘述了。想更详细了解的请查看:
https://rainworldmodding.miraheze.org/wiki/Downpour_Reference/Mod_Directories
我在这里只给一个我自己填写的例子。

此外你也可以创建一个名称为thumbnail的PNG图片作为你的模组的封面。注意,创意工坊只接受16:9的图片。
3. 由于我们的模组是一个区域模组,我们要在你刚刚建立的文件夹中再建立一个名为modify的文件夹,以及一个名为world的文件夹。这些文件夹负责什么我之后再解释.

4. 下面我们打开world文件夹。这个文件负责的是游戏加载的房间文件以及地图文件。首先你需要确定你要修改哪一个区域,并且知道其在游戏文件内的缩写。之后在world文件夹中建立一个名称为该区域缩写的文件夹。例如,我要修改外缘,那么我就会在world文件夹中建立一个名叫uw的文件夹。这个文件夹用来存放新渲染的地图。在建立这个文件夹的同时,也需要建立一个存放房间文件的文件夹。例如,我要修改的区域为uw,那么我需要建立的房间文件夹名称应该为uw-rooms。如果你要修改业力门,那么你应该新建一个名称为gates的文件夹,修改后的业力门房间应当放在这里。

5. 下面我们回到上一级,打开modify文件夹。Modify文件夹负责的是存放修改后的原本在原游戏world文件夹里的world_xx文件和properties文件。在modify文件夹中,建立一个world文件夹,并在这个新的world文件夹中创建一个区域缩写文件夹,例如我会建立uw。

6. 做完以上步骤后,你就完整建立了修改一个已有区域房间所需要的文件夹结构。

2. 将新房间链接到游戏内(基础)
在开始正式修改房间之前,最好查看此网站以排除和其它区域模组可能出现的不兼容问题:https://docs.google.com/spreadsheets/d/14wt42_ZalI5di8zpUFx3WvPWldC_L7SwIbgb_TxOpUk/edit#gid=0
(需要魔法才能访问)
步骤:
1. 参考该网站后,选择一个没有别人用过的房间(如果你准备发布你的这个模组的话,这样做可以避免不同模组之间冲突),在Level Editor中找到该房间,添加一个新的房间入口,并渲染这个新房间(或者只输出房间txt文件,这取决于你是怎么修改的房间)。
2. 将这个修改过的房间,和你新做的房间都移到:
mods\[你的模组]\world\[区域缩写]-rooms

3. 然后需要把房间链接起来。为此,你需要确定房间入口的编号。编号的排列顺序遵循从上到下、从左到右的规则。在填写房间链接时,需要按照房间入口的顺序来排序。注意,原游戏的房间在你修改了之后,房间入口的顺序是可能变化的。如果你自己不能确定房间入口是怎么排列的,可以在链接房间之前先进入游戏,进入该房间,打开devtools的map选项,查看该房间的入口顺序。

4. 确定了房间入口顺序之后,就需要开始填写world_[区域缩写].txt了。首先修改原房间的链接。打开:
mods\[你的模组]\modify\world\[区域缩写]
在这个文件夹里新建一个txt文件,命名为world_[区域缩写].txt。例如,我要修改外缘,那么我应当创建一个world_uw.txt。创建好后打开这个文件。
然后,在第一行填写:
[FINDLINESTART]房间代号 :
例如,我需要修改UW_C06,那么就应该填写“[FINDLINESTART]UW_C06 : ”
然后换一行,填写:
[REPLACE_1]房间代码 : 房间链接1, 房间链接2, 房间链接3, [按需求填写]
填写链接房间的顺序应当按照之前确定的房间入口顺序,填写相应的链接房间。

5. 然后填写新房间的链接。由于是在已有区域内新添房间,我们需要用到游戏的融合功能。
另起一行,写下:
[MERGE]
再另起一行,写下:
[ENDMERGE]
这两行之间应当填写所有新房间的链接和生物设置。
然后这两行之间另起一行,写:
ROOMS
再另起一行,写:
END ROOMS
在这两行之间应当填写所有新房间的链接。
在ROOMS和END ROOMS之间新起一行,写下:
[新房间代码] : 链接房间1, 链接房间2, 链接房间3, [按需求填写]
这里的链接顺序也应该符合新房间的入口顺序,并在应当和已修改房间链接的计划入口对应。
例如,我要将UW_Y01链接UW_C06,我计划的链接入口是UW_Y01的0号入口,那么我就会在第一个链接房间位置填写UW_C06。如果目前你只新添了一个新房间,那么其它入口都应该填写DISCONNECTED,如图。

如果有其它新房间,应该填写相应的房间代码,并且也新起几行写那些房间的房间代码和链接。总之就把相应入口全都缝起来就好了。

6. 做完这一步,你的房间就应该链接进游戏内原区域了。

3. 给新房间设置生物
3.1 基础添加
步骤:
1. 确定房间生物巢穴编号。方法和房间入口一样。所有生物洞穴的数字都排在房间入口后
面。顺序依然是从上到下、从左到右。如果房间入口的最后一个编号是2,那生物洞穴第一
个编号是3,后面以此类推。这里可以参考UW_C06的图片。
2. 在END ROOMS后面新起一行,写下:
CREATURES
再新起一行,写下:
END CREATURES
这两行之间会写下所有生物设置。
在这两行之间新起一行,写下:
[房间代码] : [洞穴号]-[生物种类]-[生成数量], [洞穴号]-[生物种类]-[生成数量]
生成数量为1时可以不用填写数量。示意图如下:

要使新设置的生物生成,需要重新开始你的存档。
3.2 给每个蛞蝓猫不同的生物生成
在1.5中,给不同蛞蝓猫设置不同生物设置使用的是蛞蝓猫的代号ID。在1.9中则直接使用蛞蝓猫的名称:

在使用时,在生物设置行之前写:(蛞蝓猫名称)。括号应该为英文括号。实例如下:

若多个蛞蝓猫公用同一个生物设置,则在生物设置行这样写:(蛞蝓猫1,蛞蝓猫2,…)。注意蛞蝓猫之间不应该有空格隔开。实例如下:

若除了某些蛞蝓猫,其它蛞蝓猫都使用同一生物设置,那么应该在蛞蝓猫前加一个X-,实例如下:
