MOD基本文件结构
这里我用由 Eyres1 制作的 Never Perish Icebox(永久保鲜羊大白勺冰箱)来作为例子:
如上图所示,一个必须具有两个文件:
modmain.lua:游戏载入你制作的mod所需要的文件;
modinfo.lua:储存mod的作者、版本等信息的文件。
接下来我们打开这两个文件看看:
modinfo.lua
第一行描述了该mod的名称,
--The name of the mod displayed in the 'mods' screen.
name = "Never Perish Icebox"
第二行是作者留下的对该mod的简介,
--A description of the mod.
description = "Food doesn't perish in the Icebox."
第三行记录了制作者的名讳,
--Who wrote this awesome mod?
author = "Eyres Valkrie"
第四行是作者设置的mod版本号(注意,mod版本号跟游戏版本号是两码事)
--A version number so you can ask people if they are running an old version of your mod.
version = "1"
第五行是本mod对应的游戏API版本号(当你自己制作了一个mod以后,记得在每次游戏更新后检查自己mod是否依然能够正常运行,努力debug,并更改这一行的数值,然后上传到创意工坊)
--This lets other players know if your mod is out of date.
This typically needs to be updated every time there's a new game update.
api_version = 10
第六行说明本mod是否兼容 Don't Starve Together。
-- Compatible with Don't Starve Together
dst_compatible = true
第七行是向玩家说明本mod是否和 Don't Starve 和 Reign of Giants 兼容(因为Don't Starve Together和Don't Starve两者有大量相同代码,所以经常有人把Don't Starve的mod和Don't Starve Together的mod交换使用)
-- Compatible with both the base game and reign of giants
dont_starve_compatible = true
reign_of_giants_compatible = true
这八行说明本mod是否需要重启生效
--Some mods may crash or not work correctly until the game is restarted after the mod is enabled/disabled
restart_required = false
第九行说明本mod是否能够兼容其他mod
-- Set this to true to prevent _ANY_ other mods from loading while this mod is enabled.
standalone = false
modmain.lua
Never Perish Icebox这个mod的modmain.lua中只有一行代码,
TUNING.PERISH_FRIDGE_MULT = 0;
它的作用是修改 data\scripts\tuning.lua 中 TUNING 对象的成员 PERISH_FRIDGE_MULT,也就是修改游戏中 Icebox 的保鲜时间长度。
由此可见,要提供mod元信息,你就应该给出 modinfo.lua;而为了真正实现你的 mod 的功能,你则应该在 modmain.lua 中编写代码。