Starbound mod制作教程(二) mod长什么样

当第一部分准备工作完成后,就可以开始制作第一个mod了,无论打算制作怎样的mod,最开始遇到的问题显然是:mod的文件必须是什么样的?放在哪里才能生效?

屎大棒的目录下,有个叫mods的文件夹,如果你使用我提供的教程进行解包,你应该已经找到那个文件夹了。_(这里有一点需要注意,那就是steam创意工坊订阅的mod并不在这里,而是在steam目录下的创意工坊文件夹里。)_屎大棒会从这个文件夹里读取mod载入游戏之中,无论是打包成pak的mod,还是文件夹形式的mod,都是一样的。为了方便修改,开发时我们当然不会每次都打包mod。
mod的结构遵循assets里unpacked文件夹的形式,因为mod基本上都是对这些文件进行增加和修改,所以目录结构也是对应的。
举个例子,如果我们的mod功能十分简单,就是去替换游戏中的一个bgm,即存放在music文件夹中的某个音乐文件,如assets/_unpacked/music/jupiter.ogg,想必各位肯定十分熟悉这首优美的背景音乐。为了让游戏在加载的时候同时加载我们的mod来替换这个音乐,我们需要
(1)准备一个jupiter.ogg文件,也就是用来替换原版jupiter.ogg。如果文件名起的不一样,那么显然游戏也不知道你要替换的是这个文件)
(2)在starbound的mods文件夹下创建一个文件夹,起名随意,比如XSWL,这就是我们的XSWL mod的文件夹,接下来将我们要替换的文件以和assets文件夹中相同的位置进行放置,在这里,就是mods/XSWL/music/jupiter.ogg
(3)最后,为了让屎大棒知道这是一个mod,我们需要在XSWL文件夹下创建一个空文档,并将其命名为_metadata(无后缀名)在这个文件内编辑一个JSON表来说明该mod的一些必要属性,你可以参照其他mod的写法,不过assets之中就有一个可以参照,它的内容是这样的。

{ “author” : “Chucklefish”, “name” : “base”, “priority” : -9999, “friendlyName” : “Base Game Assets”}

如果把assets这个文件夹看作一个大mod,这个文件就是说
它的author是呵呵鱼
mod的name叫base
优先级为-9999,说白了就是只要其他mod的优先级不设置成更低的数字,那么发生文件冲突,base的文件会最先被覆盖掉,这也是为何我们可以用自己的mod中的音乐文件来覆盖asstes中的音乐文件。
friendlyName,即展示在游戏中的mod名称,这里也可以填写中文,总之大家在游戏里看到你的mod名字就叫这个。

你可以直接将这个文件复制到你的XSWL(好了我知道这名字太sb了你也可以用其他名字但是既然我们在做sb的mod为何不把mod名字写的sb一点呢)文件夹下,然后修改其作者和名字等属性(这个属性可以没有),这样屎大棒在加载的时候就知道你这个是个mod啦。

有关_metadata的内容,wiki上给了很全面的属性列表,你没有必要全写上,总之看自己的想法了。这里再提供一下FU的_metadata文件作为参考。

本次教程就是为了熟悉mod的结构和原理,所以并没有做成什么实质性的mod,如果你的确把这个音乐替换mod做出来了,可以尝试运行一下,并在mod列表里查看是否加载成功。
下一次教程将开始制作一个能实际增加或修改游戏内物品和功能的mod。