全面战争模组中文站全面战争模组中文站
搜索/

搜索教程

输入标题,直接打开已发布教程。

输入教程标题开始搜索。

教程目录

制作第一个模组

创建时间:2026年9月3日最后更新:2026年9月6日

下面用一个数值修改走完 RPFM 的基本流程:把震旦玉勇的基础近战防御从34改为100。

开始前应已完成首次启动与初始设置,并能在依赖项中看到游戏文件。操作时关闭游戏,并暂时停用其他会修改玉勇数据的 Mod。

为什么选择 land_units_tables

对第一次制作 Mod 的用户来说,修改单位数值是最简单、方便且直观的入门操作。它不需要先理解模型、贴图、动画、脚本和多张数据表之间的复杂关系,只要找到一个数值、修改并保存,就能在游戏中看到变化。

这次选择land_units_tables,是因为它保存了陆战单位的许多核心战斗数据。玉勇的基础近战防御就直接写在这张表的melee_defence列中,把34改为100即可得到明显的游戏内变化,非常适合用来确认第一个 Mod 是否制作成功。

这篇教程真正要学习的并不只是把一个数值从34改成100,而是借助这个简单修改,完整走一遍制作数据类 Mod 的基本流程:

  • 新建 Pack、设置文件名并保存到正确位置。
  • 在依赖项中查找原版数据表和单位记录。
  • 复制原版记录并创建新表,或者把原始表导入自己的 Pack。
  • 为导入的表文件重新命名,避免使用data__覆盖原版同名数据表。
  • 只保留需要修改的单位记录,减少冲突和不必要的数据。
  • 修改数值、保存 Pack、运行诊断并进入游戏检查结果。

掌握这些操作后,即使以后修改的不是近战防御,也可以沿用相同思路:先找到负责该内容的数据表,再把需要的原版记录放进自己的 Pack,完成修改、保存和测试。

land_units_tables不只包含近战防御。它可以直接设置领导力、近战攻击、冲锋加成、弹药容量、射击精度、装填技能、额外生命值和多种伤害抗性,也可以指定单位使用的护甲、盾牌、近战武器、远程武器、实体、动画、坐骑、阵型间距、属性组和语音,还包含隐蔽与侦测、AI 战斗定位、占领能力、自动结算分类和默认战斗模式等设置。

有些列保存的是数值,有些列只是指向其他表的记录。例如armour选择护甲记录,primary_melee_weapon选择近战武器记录;决定面板护甲强度、基础武器杀伤、破甲武器杀伤和攻击间隔的数值还要到被引用的表中查看。land_units_tables也不负责单位人数、招募费用、招募建筑、单位名称、兵牌或模型外观,这些内容需要其他表或 Loc 文件。第一个练习只修改它直接保存的melee_defence。

新建并保存 Pack

  1. 打开PackFile → 新建 PackFile,也可以按Ctrl+N。
  2. 新建后左侧会出现new_pack.pack。按Ctrl+S打开保存窗口;新建 Pack 本身不会自动弹出保存窗口。
  3. 在保存窗口中进入《全面战争:战锤 III》的data文件夹。
  4. 将文件名设为tutorial_first_mod.pack并保存。

在 PackFile 菜单中新建 Pack

常见的保存位置如下,实际 Steam 库和盘符以你的电脑为准:

……\SteamLibrary\steamapps\common\Total War WARHAMMER III\data\tutorial_first_mod.pack

不要覆盖data.pack、db.pack等原版文件,也不要使用已经存在的 Mod 文件名。新 Pack 默认是Mod类型;如需确认,右键 Pack 根节点,查看更改 PackFile 类型 → Mod左侧是否有选中标记。

这次会遇到三个名称,照下面分别处理即可:

名称 本例填写或保留的值 为什么
磁盘上的 Pack 文件名 tutorial_first_mod.pack 用来在启动器中找到这份练习 Mod,可换成自己的独特名字。
Pack 内部的 DB 文件名 tutorial_first_mod 创建表时填写,或导入后把data__改成它;不要添加.pack后缀。
行内单位 Key wh3_main_cth_inf_jade_warriors_0 必须保留,才能修改原版玉勇;随意改名会变成另一条记录。

找到玉勇的数据

  1. 如果左下角没有依赖项面板,打开视图 → 切换依赖面板。
  2. 在依赖项筛选框中输入land_units_tables。
  3. 展开游戏文件 → db → land_units_tables,双击data__。
  4. 在表格下方的筛选栏中输入wh3_main_cth_inf_jade_warriors_0并按Enter。
  5. 确认表格只剩这条玉勇记录。

标签名中的Game-RO:表示这份数据来自游戏文件依赖、正在只读查看,并不单独证明它是 CA 原版数据;依赖缓存也可能包含其他 Mod。本例要同时核对游戏文件来源、land_units_tables和原版文件名data__,不要打开同目录下作者自定义命名的表,也不要使用Assembly Kit 文件中的结果。只读页只供查找和复制,不能直接保存修改。

复制完整数据行

如果准备使用下面的“方法一:创建空表”,先复制玉勇记录;如果准备使用“方法二:导入原始表”,可以跳过这一节。

  1. 保持数据表的全部列可见。
  2. 点击玉勇记录最左侧的行号,选中整行。行号会随游戏和工具版本变化,不必与图中的1447相同。
  3. 按Ctrl+C复制。

从 Game-RO 表格复制完整的玉勇数据行

不要在复制前隐藏列。RPFM 只会复制当前显示的列;缺少列的数据粘贴到新表后,会产生空字段或错误引用。复制完成后再隐藏无关列没有问题。

在自己的 Pack 中创建数据表

创建land_units_tables有两种常用方法。第一种是创建空表后粘贴目标记录,Pack 最干净;第二种是把原始表导入 Pack,再删除不需要的记录,适合习惯先取得完整原表再筛选的用户。两种方法最后都只应留下玉勇这一条记录,选择其中一种即可。

方法一:创建空表

  1. 在左上角Pack 内容中右键tutorial_first_mod.pack。
  2. 点击创建 → 创建 DB 数据表。
  3. 文件名填写tutorial_first_mod。
  4. 在下方筛选框输入land_units_tables,然后在中间的下拉框选择land_units_tables。
  5. 点击确定。

创建 land_units_tables 数据表

完成后,Pack 中会出现db → land_units_tables → tutorial_first_mod。双击tutorial_first_mod打开空白表格。

方法二:导入原始表

  1. 在Pack 内容中先单击tutorial_first_mod.pack,确保它是当前目标 Pack。
  2. 在依赖项筛选框中输入land_units_tables。
  3. 展开游戏文件 → db → land_units_tables,右键data__并点击导入。
  4. 在Pack 内容中展开db → land_units_tables,确认已经出现data__。
  5. 右键这个data__文件,点击重命名/移动,将文件名改为tutorial_first_mod。不要勾选启用全路径移动,也不要重命名land_units_tables文件夹。

导入后必须重命名data__。 如果 Mod 中仍然保留db/land_units_tables/data__这个原版内部路径和文件名,游戏加载 Mod 时会用它覆盖原版同名数据表,而不是只覆盖你修改的玉勇记录。这不会改坏硬盘中的原版data.pack,但会让你的 Mod 接管整张原版表,容易造成大范围兼容问题。应把文件改成自己独有的名称,例如tutorial_first_mod。

  1. 双击重命名后的tutorial_first_mod,在表格筛选栏中输入wh3_main_cth_inf_jade_warriors_0并按Enter。
  2. 点击玉勇记录最左侧的行号,选中完整一行。
  3. 清空筛选栏并按Enter,让全部记录重新显示。此时玉勇这一行仍应保持选中。
  4. 使用表格工具栏或右键菜单中的反选;如果使用右键菜单,应在仍被选中的玉勇行上点击右键。确认玉勇不再处于选中状态,而其他记录全部被选中。
  5. 在任意一个已选中的其他记录上点击右键,再点击删除行,只留下玉勇记录。
  6. 确认右下角的行数显示为1/1,并再次核对剩下的Key是wh3_main_cth_inf_jade_warriors_0。

执行反选前必须先清空筛选条件。反选只会处理当前表格中可见的记录;如果筛选结果中只显示玉勇,直接反选不会选中那些被筛选隐藏的记录,也就无法删除它们。

修改数值

如果使用方法一,先完成下面两步;如果使用方法二,表格中已经只剩玉勇,可以直接修改Melee Defence。

  1. 右键空白表格,点击粘贴为新行,也可以按Ctrl+Shift+V。
  2. 确认右下角的行数显示为1/1。

接下来两种方法的操作相同:

  1. 为了方便查看,可以打开表格下方的Columns,先勾选隐藏列顶部的总开关,再取消Key和Melee Defence两行的隐藏勾选,只显示这两列。拖动表头右边界可加宽列。使用方法一时,这一步必须放在复制完成之后。
  2. 双击Melee Defence列中的34,输入100并按Enter。

在自己的 Pack 中把玉勇近战防御改为 100

截图中的new_pack_2.pack是本次演示新建的独立 Pack;你已经保存过的话,这里显示的是tutorial_first_mod.pack。判断编辑目标要看所属 Pack 和自建表文件名,不要把临时 Pack 名称当成必须照抄的内容。

左侧文件位于自己的 Pack 中,标签也不再以Game-RO开头,因此这里的内容可以编辑。不要修改Key,它用于确定这条记录覆盖的是哪个原版单位。

100是本次用于观察变化的基础近战防御值,直接输入数字,不输入100%、+100或中文单位。它不表示“免疫全部近战攻击”。如果想先做较小的变化,也可填44,即在本例原值34上增加10点;同一次验证只改这一列,确认流程成功后再按陆战单位详解学习其他字段。

保存并运行诊断

  1. 按Ctrl+S保存 Pack。
  2. 确认保存成功。只有打开这一份 Pack 时,标题末尾的*应消失;多 Pack 工作时还要核对自己的 Pack 是否保存,不能只看包含其他文件状态的总标题。Ctrl+S会保存所有打开的 Pack,不希望保存其他文件时,应右键目标 Pack 根节点并点击保存 Pack。
  3. 打开视图 → 切换诊断窗口。
  4. 点击诊断面板左侧的三角形按钮重新检查。
  5. 等待诊断完成,再查看结果。只打开本文这一份练习 Pack、且依赖设置正确时,目标是没有相关错误或警告;如果同时打开多份 Pack,先看每条消息的Pack和路径,确认它属于哪个文件,不要把所有计数都算到当前表头上。

根据 Pack 和路径识别诊断消息的来源

图中教学副本已保存为.tmp_firstmod_capture.pack,而下方警告的Pack列指向另一份new_pack.pack。这说明多 Pack 诊断会把其他打开文件的问题一起列出;不能通过隐藏警告来“修复”,也不应为了清零擅自删除其他 Pack 的数据。本文只改玉勇这一行,应重点核对自建land_units_tables/tutorial_first_mod有没有缺列、错误引用或重复记录。

诊断通过只说明 Pack 的结构和引用没有发现问题,不等于已经完成游戏内验证。

在游戏中检查

  1. 关闭 RPFM 或保持 Pack 已保存,然后打开《全面战争:战锤 III》启动器。
  2. 在模组管理器中启用tutorial_first_mod.pack,暂时关闭其他 Mod。
  3. 启动游戏并进入自定义战斗。
  4. 选择震旦军队,查看玉勇的近战防御。

预期结果是玉勇的近战防御明显提高。游戏版本、难度、技能和战场效果可能继续修改单位面板中的最终数值,因此不要只凭是否恰好显示100判断 Pack 有没有加载。

如果启动器中找不到 Mod,检查 Pack 是否位于游戏的data文件夹、扩展名是否确实为.pack、PackFile 类型是否为Mod。如果数值没有变化,先确认 Mod 已启用,再关闭其他会修改land_units_tables的 Mod 后重试。

完成测试后,可以继续保留这个练习 Mod,也可以先在启动器中停用,再从data文件夹移走tutorial_first_mod.pack。

图片查看
100%

滚轮或按钮缩放 · 拖动或滑动查看 · Esc 关闭