Modding, 或称为“模组制作”,是修改基本游戏(即原版)的行为, 无论是供个人使用,或者是公开发布给其他玩家,比如发布到Steam创意工坊。
就所有p社游戏而言,ck2的模组制作有很大开放性,可以很显著的延伸游戏的内容,增强游戏的可玩性。 mod制作者的动机各不相同:更好的翻译成母语,更多的事件及决议,更棒的地图,亦或游戏整体大修改等等。
mod制作非魔术邪说也,人皆可学习相关知识以制作mod,这个指引旨在降低ck2模组制作的门槛。不过,无论学习资料有多么的好,制作mod的过程都会是十分曲折的,并且学习资料无法取代对阅读基础代码,以及不断调试的需要。总之,制作mod不是一天两天的功夫,而是一项宏伟的工程,努力是必须的。
以下是支持CK2编程语言的文本编辑器:
| 如果你是第一次创作mod,请看引导创建模组. |
mod文件被放置在 ~\Paradox Interactive\Crusader Kings II\mod, 里面必须包含:
.mod 文件的文件名不能包含任何空格,否则在启动器重启的时候,不会被自动选中。
.mod 文件的内容如下所示:
| 关键字 | 必需? | 效果 | 例子 |
|---|---|---|---|
| name | Yes | 你的mod显示在启动器中的名称 | name = "My Mod" |
| path | Yes | 定义哪个文件夹是你的mod文件夹。 其路径是相对于~\Documents\Paradox Interactive\Crusader Kings II\ . | path = "mod/MyMod" |
| user_dir | No | 告诉启动器存储游戏或临时文件到特定的文件夹。 这对能改善mod的兼容性(例如新的标题,旗帜,宗教,文化,建筑之类的),让文件不会混淆在一起。
警告:不要给主mod的子mod设置 user_dir,因为所有激活mod的user_dir会连接在一起。 |
user_dir = "MyMod" |
| archive | No | 定义一个zip压缩包来代替文件夹。设置它的路径,路径是相对于 ~\Documents\Paradox Interactive\Crusader Kings II\ 的。这是从Steam创意工坊下载的mod使用的格式,但是在将mod上传到创意工坊时,必须使用path结构。 | archive = "mod/mymod.zip" |
| replace_path | No | 告诉启动器覆盖对应文件夹的所有内容,并且只从mod中的指定路径加载。这是删除原版东西的唯一有效方式,而这经常被完全改动类mod所使用。
Notes:
|
replace_path = "history" replace_path = "history/characters" |
| dependencies | No | 告诉启动器,在此mod之前必须加载另一个mod。另一个模组将首先加载,允许另一个模组覆盖某些文件(否则第一个模组将先加载)。一个dependencies不是必要的;如果mod有一个集,则不需要加载dependencies。这只是 .mod文件告诉启动器应首先加载哪些文件的一种方式。 如果dependencies里的mod的名称包含空格,则必须将其括在转义引号中。 |
dependencies = { "MyMod" "\"Another Mod\"" } |
| picture | No | 模组文件夹下的图像可用作Steam创意工坊的展示图片。(将显示为 268 像素× 268 像素 JPEG) | picture = "MyMod.jpg" |
| tags | No | Steam创意工坊的标签列表。警告:不要忘记包含空格的标签的引号。 | tags = { "Tag1" "Tag 2" } |
| supported_checksums | No | 脚本条件将计算为true的预期校验和列表。这可以在事件模组制作中使用,以向玩家显示警告。supported_checksums
|
supported_checksums = { ABCD EFGH } |
以下是一些示例模组文件,具体取决于模组的类别:
小型mod更常见一些,为了保证和其它小型mod的兼容性,请不要使用user_dir或者是replace_path。
name = "Small Mod"
path = "mod/SmallMod"
picture = "SmallMod.jpg"
tags = { "Mods" "Small" }
大型模组通常使用 user_dir 使保存内容无论如何都无法在开启此mod前加载。对于总转化模组, replace_path 用于完全覆盖在模组中没有意义的原版文件夹(histroy,flags等)。
name = "Big Mod"
path = "mod/BigMod"
user_dir = "BigMod"
replace_path = "history/provinces"
picture = "BigMod.jpg"
tags = { "Mods" "Big" }
主mod的子mod通常用 dependencies 来覆盖主mod的文件。
name = "Sub Mod"
path = "mod/SubMod"
dependencies = { "\"Main Mod\"" }
picture = "SubMod.jpg"
tags = { "Mods" "Main Mod" }
游戏数据是由包含游戏文件的文件夹及子文件夹的结构组成。
模组遵循与基础游戏相同的文件夹结构,因此在加载游戏时,引擎将合并来自原版和mod的文件。在大多数文件夹中,引擎将加载其中的所有文件,这允许mod添加新的定义(头衔,宗教等),而无需复制和修改原版文件。若要利用这一点,请务必了解如何在文件级别和定义级别加载脚本。
加载模组时的行为如下:
replace_path ,则该文件夹中的所有原版文件都将被忽略,并且只会加载mod文件(如果有)。以下是CKII游戏文件和文件夹的列表,以及相关的模组指南和加载行为。
对于加载行为,单元格颜色会突出显示行为是预期的行为、奇怪的行为还是需要注意的行为、是意外的,还是需要避免的行为。
| 文件夹/文件 | 该文件包含什么 | 如何模组 | 加载行为 |
|---|---|---|---|
.\common\
|
大致信息 | 不适用 | |
| .\common\alternate_start\ | 另类开局模组制作 | [?] 合并。 | |
| .\common\artifact_spawns\ | 宝物模组制作 | 合并。 | |
| .\common\artifacts\ | 宝物的定义 | 宝物模组制作 | 合并。 |
| .\common\bloodlines\ | 血脉文件夹,所有的血脉都存储在这里。 | 血脉模组制作 | |
| .\common\bookmarks\ | 剧本文件夹,所有的剧本都存储在这里。 | 剧本模组制作 | 合并。剧本在游戏中按时间顺序列出,无论文件中的顺序如何。 |
| .\common\buildings\ | 建筑文件夹,所有的建筑都存储在这里。 | 建筑模组制作 | [?] 合并。 |
| .\common\cb_types\ | 宣战理由文件夹,所有的宣战理由都存储在这里。 | 宣战理由模组制作 | 合并,但通过重复使用相同的名称来覆盖宣战理由不起作用。(创建重复的宣战理由文件) |
| .\common\combat_tactics\ | 作战战术文件夹,所有的作战战术都存储在这里。 | 单位模组制作 | [?] 合并。 |
| .\common\council_positions\ | AI内阁成员采取哪种类别的行为的规则。 | 内阁成员模组制作 | [?] |
| .\common\council_voting\ | AI在内阁中投票法律的规则 | 内阁成员模组制作 | [?] |
| .\common\cultures\ | 文化文件夹,所有的文化都存储在这里。 | 文化模组制作 | 合并。 由于补丁2.4文化像宗教一样合并,并且可以通过单独的文件将新的文化添加到原版文化组中。 |
| .\common\death\ | 死亡原因文件夹,所有的死亡原因都存储在这里。 | 死亡模组制作 | |
| .\common\death_text\ | 为继承屏幕添加死后评价 | 死亡模组制作 | |
| .\common\defines\ | 定义文件夹,所有的定义都存储在这里。 | 定义 | [?] 合并。文件中的条目将覆盖common/defines.lua。 |
| .\common\disease\ | 疾病文件夹,所有的疾病都存储在这里。 | 疾病模组制作 | [?] 合并。 |
| .\common\dynasties\ | 家族文件夹,所有的家族都存储在这里。 | 家族模组制作 | 合并。在原版之前加载的重复家族将覆盖家族盾徽(i.e., 000_ 等前缀) 。之后加载的重复项 (i.e., z_ 等前缀) 将覆盖家族名称。要覆盖两者,请使用重复的文件,一个具有前面的前缀,另一个具有后续前缀。
|
| .\common\event_modifiers\ | 事件修正文件夹,所有的事件修正都存储在这里。 | 修正 | 合并。 |
| .\common\execution_methods\ | 处决类型文件夹,所有的处决类型都存储在这里。 | 死亡模组制作 | [?] |
| .\common\game_rules\ | 游戏规则文件夹,所有的游戏规则都存储在这里。 | 游戏规则模组制作 | 合并。规则根据文件的顺序(文件名上的字母数字)和文件中的规则顺序显示在 UI 中。 |
| .\common\government_flavor\ | 政体定义文件夹,所有的政体定义都存储在这里。 | 政体模组制作 | [?] |
| .\common\governments\ | 政体文件夹,所有的政体都存储在这里。 | 政体模组制作 | 合并。可以在不同的文件中定义同一政府组的政府。 |
| .\common\graphicalculturetypes\ | 文化肤色文件夹,所有的文化肤色都存储在这里。 | [?] 合并。 | |
| .\common\heir_text\ | 为继承屏幕添加继承人评价 | 死亡模组制作 | |
| .\common\holding_types\ | 地产类型文件夹,所有的地产类型都存储在这里。 | 政体模组制作 | [?]. 无法添加新的地产类型。 |
| .\common\job_actions\ | 内阁成员行为文件夹,所有的内阁成员行为都存储在这里。 | 内阁成员模组制作 | 合并。 |
| .\common\job_titles\ | 内阁职务文件夹,所有的内阁职务都存储在这里。 | 内阁成员模组制作 | [?] |
| .\common\landed_titles\ | 头衔文件夹,所有的头衔都存储在这里。 | 头衔模组制作 | 合并。合并行为“很复杂,可能不是故意设计的”[1] |
| .\common\laws\ | 法律模组制作 | 合并。与现有法律同名的法律将在允许部分附加条件,但不会将潜在部分附加条件。 | |
| .\common\mercenaries\ | 佣兵文件夹,所有的佣兵都存储在这里。 | [?] 合并。 | |
| .\common\minor_titles\ | 荣誉头衔文件夹,所有的荣誉头衔都存储在这里。 | 荣誉头衔模组制作 | 无法覆盖,尝试这样做将导致多个荣誉头衔具有相同的tag,如特质 |
| .\common\modifier_definitions\ | 定义动态定义的修饰符,特别是特殊单位的修饰符。 | 单位模组制作 | [?] 合并。 |
| .\common\nicknames\ | 称号文件夹,所有的称号都存储在这里。 | 称号模组制作 | 合并。 |
| .\common\objectives\ | 目标文件夹,所有的目标都存储在这里。 | 目标模组制作 | [?] 合并。 |
.\common\offmap_powers\
|
定义地图外政权的文件夹。 | 地图外政权模组制作 | [?] 合并。不需要碧玉之龙DLC。 |
| .\common\on_actions\ | On_actions文件夹,所有的on_actions文件都存储在这里。 | 事件模组制作 | 合并。由于补丁 2.4 on_actions被合并,新事件被添加到特定on_action的先前列表中,而不是替换列表。 |
| .\common\opinion_modifiers\ | 好感修正文件夹,所有的好感修正都存储在这里。 | 修正 | [?] 合并。 |
| .\common\province_setup\ | patch 3.0后废弃 | 不适用 | 不适用 |
| .\common\religion_features\ | 宗教特性文件夹,所有的宗教特性都存储在这里。 | 宗教模组制作 | [?] 合并,但具有相同键的功能会重复。 |
| .\common\religion_modifiers\ | 宗教修正文件夹,所有的宗教修正都存储在这里。 | 修正 | [?] 合并。 |
| .\common\religions\ | 宗教文件夹,所有的宗教都存储在这里。 | 宗教模组制作 |
合并。原版宗教可以被覆盖,而不需要复制整个宗教组。限制:需要在未改革宗教之前定义改革宗教。 |
| .\common\religious_titles\ | 宗教头衔文件夹,所有的宗教头衔都存储在这里。 | [?] 合并。 | |
| .\common\retinue_subunits\ | 近卫军单位文件夹,所有的近卫军单位都存储在这里。 | [?] 合并,但具有相同密钥的随从被复制。 | |
| .\common\save_conversion\ | 游戏存档兼容性 | [?] | |
| .\common\scripted_effects\ | 脚本 | [?] 合并。 | |
| .\common\scripted_score_value\ | 脚本分数值 | [?] 合并。 | |
| .\common\scripted_triggers\ | 脚本触发器 | 合并,但具有相同名称的脚本化触发器会附加其条件,而不是替换原始条件。 | |
| .\common\societies\ | 社团文件夹,所有的社团都存储在这里。 | 社团模组制作 | Merge,但通过用相同名称覆盖一个社团不起作用(创建重复的社团)。 |
| .\common\special_troops\ | 特殊单位文件夹,所有的特殊单位都存储在这里。 | 单位模组制作 | [?] 合并。 |
| .\common\stories\ | 废弃的 | 不适用 | 不适用 |
| .\common\succession_voting\ | 继承投票规则及AI继承投票行为规则 | 继承模组制作 | [?] 合并。 |
| .\common\trade_routes\ | 贸易路线文件夹,所有的贸易路线都存储在这里。 | 贸易路线模组制作 | [?] |
| .\common\traits\ | 特质文件夹,所有的特质都存储在这里。 | 特质模组制作 | 合并,但具有相同名称的特质将共存,并且生成的角色可以同时获得两种特质。使用命令时,最后一个定义将分配给角色。 |
| .\common\tributary_types\ | 朝贡关系文件夹,所有的朝贡关系都存储在这里。 | 朝贡类型模组制作 | [?] |
| .\common\triggered_modifiers\ | 定义在特定条件下触发的全局修饰符。 | Triggered modifiers | [?] 合并。 |
| .\connectui\ | 似乎是已停止使用的Paradox Connect服务的剩余接口(用于克劳塞维茨引擎开发的较旧的游戏如CK2)。 | 废弃的 | 不适用 |
| .\decisions\ | 决议文件夹,所有的决议都存储在这里。 | 决议模组制作 | 合并, 但通过重用相同名称覆盖决策不起作用(破坏决策效果,这不执行任何操作)。 |
| .\dlc\ | 包含 DLC 信息和压缩内容文件 | 可下载内容 | 不适用 |
| .\dlc_metadata\ | ? | ? | ? |
| .\eu4_converter\ | EU4转档器文件夹,所有的EU4转档器文件都存储在这里。 | EU4转档器模组制作 | [?] |
| .\events\ | 事件文件夹,所有的事件都存储在这里。 | 事件模组制作 | 合并,如果在原始文件之后按字母顺序加载的文件中重新定义事件,则该事件将被完全覆盖。
开发人员不鼓励这种做法,因为该引擎行为不能保证在将来保留(来源?) |
.\gfx\
|
图像文件夹,所有的图像都存储在这里。 | 图形模组制作
图形映射到 .\interface\*.gfx 文件中 的逻辑名称 (GFX_xxx) |
|
| .\history\ | 字符、标题、省份和战争的历史数据,以及可能的开始日期。这可能是内部数据库的文本导出,有时在补丁说明中会提到。[2] | 历史模组制作 | 不适用 |
| .\history\characters\ | 历史人物,可选择与\common\dynasties\文件夹中的王朝相关联。 | 角色模组制作 | [?] 合并。重复的角色ID会破坏角色历史记录,必须避免。 |
| .\history\diplomacy\ | 未使用 | 不适用 | 不适用 |
| .\history\offmap_powers\ | 地图外政权的历史(持有者,地位等) | 地图外政权模组制作 | [?] 合并。 |
| .\history\provinces\ | 省份历史(地产,文化或宗教的变化) | 省份模组制作 | [?] 合并。 |
| .\history\technology\ | 各省的初始技术,取决于开始日期。 | 科技模组制作 | [?] |
| .\history\titles\ | 头衔历史(持有者名单) | Note: titles that should be deactivated at game start (ex: reformed religion heads) must have an history file that disables the title. | [?] 合并。 |
| .\history\wars\ | 重要的正在进行的战争(进攻者,防守者,宣战理由,战争得分等),通常用于历史剧本。 | [?] 合并。 | |
.\interface\
|
界面图形 | 界面模组制作 |
|
| .\interface\coat_of_arms\ | 盾徽模组制作 | 盾徽定义可以拆分到多个文件中。不支持从其他文件追加现有定义。 | |
| .\interface\portrait_offsets\ | .txt带有肖像框架外部偏移的文件 | 肖像模组制作 | |
| .\interface\portrait_properties\ | 用于选择纵向属性值的动态规则 | 肖像模组制作 | [?] |
| .\interface\portrait\ | 肖像的spriteType和portraitType元素的定义。 | 肖像模组制作 | 合并。 |
| .\launcher\ | 启动器图像和配置 | 不适用 | |
| .\localisation\ | 所有本地化国家/地区名称和事件描述等内容的所有文本数据。 | 本地化 | 完全覆盖。如果重复项位于不同的文件中,则首先加载的文件优先(即使用 00_ 文件前缀覆盖原始键)。如果在同一文件中,则文件中的最后一个重复项优先。警告:文件必须以.csv扩展名结尾,否则将不加载。 |
| .\localisation\customizable_localisation\ | 习惯的本地化命令定义 | 本地化 | [?] 合并 |
.\map\
|
地图文件夹,所有的地图数据都存储在这里。 | 地图模组制作 | 不适用 |
| .\map\statics | 地图外部框架大小,以及固定3D地图元素的位置(奇观等)。 | 地图模组制作 | |
| .\map\terrain | 地图模组制作 | ||
| .\mod\ | 虚拟mod文件夹,不要在这里放mod。 | 模组制作 | 破坏模组,因为像replace_path这样的配置被忽略。 |
| .\music\ | 音乐文件夹,所有的音乐都存储在这里。 | 音乐模组制作 | [?] 加载所有.txt文件歌曲元素。 |
| .\sound\ | 声音文件夹,所有的声音都存储在这里。 | [?] | |
| .\tutorial\ | 教程设置 | [?] |
path 里的mod名称mklink /J "%HOMEDRIVE%%HOMEPATH%\Documents\Paradox Interactive\Crusader Kings II\mod\<mod_path_name>" ".\<git_mod_folder>"
毫无疑问,更多隐藏的控制台指令(在控制台输入help也不会显示的内容)对MOD测试会起到巨大的作用。
更多控制台指令可以在首页找到,用于实现杀掉某人之类的特定功能,这些对MOD测试同样必不可少。
| 历史 | 角色 • 家族 • 省份 • 头衔 • 剧本 |
| 脚本 | 指令 • 条件 • 作用域 • 修正 • 事件 • 决议 |
| 常规 | 定义 • 游戏规则 • 另类开局 • 宗教 • 文化 • 政体 • 特质 • 血脉 • 科技 • 法律 • 建筑 • 宣战理由 • 朝贡国 • 单位 • 目标 • 疾病 • 死亡 • 荣誉头衔 • 社团 • 宝物 • 地图外政权 • 内阁成员 • 贸易路线 • 继承 • 奇观 • 称号 |
| 图像/音效/本地化 | 地图 • 图形 • 盾徽 • 肖像 • 界面 • 小地图 • 音乐 • 本地化 |
| 其他 | 故障排除 • 验证器 • 控制台指令 • 编辑游戏存档 • Steam创意工坊 • EU4转档器模组制作 |
Councillor moddingDeath moddingDefinesEU4转档器模组制作Government moddingMap moddingModding suggestionsModsOffmap power moddingPatch 2.3.6Patch 2.4Patch 2.4 mod compatibility guidePatch 2.4.5Patch 2.4.XPatch 2.5 mod compatibility guidePatch 2.5.2Patch 2.5.XPatch 2.6 mod compatibility guidePatch 2.6.3Patch 2.6.XPatch 2.7 mod compatibility guidePatch 2.7.2Patch 2.7.XPatch 2.8 mod compatibility guidePatch 2.8.3.2Patch 2.8.XPatch 3.0Patch 3.0 mod compatibility guidePatch 3.0.XPatch 3.1 mod compatibility guidePatch 3.1.XPortrait BuilderReligion moddingStatic modifiersSteam创意工坊The ValidatorTitular Title Generator《欧陆风云IV》转档器事件事件模组制作作战战术作用域修正内阁内阁成员模组制作决议决议模组制作创建模组剧本模组制作单位模组制作历史模组制作原始宗教另类开局模组制作可下载内容合并指南图形模组制作地产地图外政权模组制作地图模组制作处决