什么是Mod控制器(Mod-Controller)?
Mod控制器是您的Mod的中央集成器,您可以在其中将新的数据表附加到核心游戏数据表(新的配方、物品或任何其他数据表)。它还允许将组件附加到蓝图,如果您想为游戏的某些部分添加新功能,这是非常有用的。
本质上,它可以确保Mod正确加载。(可以说是Mod的中心枢纽)
Mod控制器(Mod-Controller)的功能是什么?
当流放者柯南载入装有mods的游戏时,它会自动检查是否有Mod控制器;然后继续检查Mod控制器,合并其中关联的所有表,并在游戏本体蓝图上附加在控制器中设置的任何蓝图组件。
如何创建mod

在我们进入Mod控制器之前,最重要的是了解如何使用Conan Exiles mod工具包创建新的mod。
您需要做的第一件事是单击屏幕右上角Conan Exiles Dev Kit图标旁边的向下箭头(生成MOD文件及上传功能也在此处)。
这将打开一个菜单,您可以从中选择“创建新的mod”。
点击这将给您一个输入框,要求为您的mod命名。
一旦您选择了一个名字并点击这里的“创建”(Create),Conan Exiles Mod工具包将重新以加载的mod启动,这样您就可以使用它了。
添加Mod控制器
假设您现在已经创建了一个mod,您需要找到该mod的文件夹,右键单击资产浏览器内的某个位置,然后选择“新建蓝图类”。
您将得到一个选择器,它允许您在许多公共类之间进行选择,您还将获得一个搜索框。
如果在此搜索框中输入“Modcontroller”,您将找到正确的条目。
您可以随意命名您的Mod控制器。在我们的示例中,我们将Mod控制器命名为“MurderBunnies_ModController”。
当您打开您的Mod控制器,它会看起来像下图。


添加数据表(DataTable)
如果您想添加新的配方、物品或使用任何其他表格,您需要创建一个相同类型的新表格。然后,这个新的数据表(通过Mod控制器)将被合并到基础游戏表中,并允许您访问所有条目。
(有关不同表的指南,我将在后续文件中附上英文版文档,并尽量在后续内容中对其翻译汉化。)
对于下面的示例,我们将添加三个最常见的表:ItemTable、RecipesTable和FeatTable。

(同样的,命名可以根据个人爱好,但是最终目的是为了能快速分辨表格功能,所以尽量使用益于分辨的命名)

添加三个核心表后,Mods文件夹的内容如上图所示。我们添加了FeatTable、RecipesTable和ItemTable。现在我们需要在构建mod时让Mod控制器将它们合并在一起。
通过双击Mod控制器功能列表中的“ModDataTableOperations”功能,您将在蓝图中打开一个新选项卡。在此选项卡中,您将看到一个紫色节点,表示此函数的开始。
如果您点击鼠标左键并从该节点中拖出,您将得到一个可以使用此函数进行的可能调用的列表;我们要找的那个叫“合并数据表”(Merge Data Tables)。
合并数据表(Merge Data Tables)

单击此按钮时,将出现一个新的蓝色节点,其中有两个下拉选项-一个用于要合并到的数据表(右侧图像中以红色标记的是基础游戏表),另一个是新添加的用于合并的表(以绿色标记)。
(从白色小三角标记点击下拉菜单中选择目标表名称)
您需要以这种方式设置要合并的每个表。
将组件添加到蓝图
为了访问许多蓝图的某些功能,最好将组件附加到蓝图,而不是修改原始资产。如果其他人编辑了基础游戏资源,那么mod加载顺序原则上只会应用最后一个,您的功能可能会丢失。因此,Mod控制器可以将组件添加到蓝图中。
要添加组件,首先需要创建组件。与创建Mod控制器一样,您需要在内容浏览器的mods文件夹中单击鼠标右键。
这次,选择“Blueprint Class”,并在父类选择器中选择“Actor Component”。
在我们的示例中,我们将创建一个名为“Bunny_Component”的组件,并将其附加到参与者“BP_NPC_Wildlife_Rabbit”蓝图。
值得注意的是,加法规则非常重要。对于在服务器上运行的功能使用“默认设置“,对于需要在客户端与服务器之间进行通信的功能,使用“服务器和客户端”,对于只需要在客户端上执行的功能,使用“客户端”。
知道这里使用什么是一个经验问题,了解系统和完整的指南将超出本初级读物的范围(抱歉)。
现在,您已经设置了一个基本的Mod控制器,包括表和组件。
对于使用组件,有比这一个更广泛的指南-这里是虚幻引擎官方文档:
https://docs.unrealengine.com/5.0/en-US/components-in-unreal-engine/
预加载模式控制器(此部分未经实践)
Mods可以使用一个名为PreLoad的特殊目录,允许在进入主菜单时,即在实际开始游戏之前,加载部分数据。
如果您有一个创建新地图的mod,这是启动单人游戏时使地图出现在下拉列表中的唯一方法。必须把数据表放置于目录内,您的mod功能才会正常。添加的任何内容都会减慢进入主菜单的加载时间。
要加载和合并mods添加的地图的数据,请执行以下操作:
1.在您的mod中创建一个名为“PreLoad”的新目录,
2.在“PreLoad”目录中创建新的附加ModController。
3.基于“PreLoad”目录中的MapDataRow创建新数据表,并添加包含新地图信息的新行。
4.在“PreLoad”目录中的新ModController的ModDataTableOperations函数中添加对MergeDataTables的调用,以将新表从基础游戏合并到MapDataTable。