
村民招募:村庄扩张
用于招募的插件,为游戏引入了自主运作的村庄,每个村庄拥有自己的中心、派系、角色及内部逻辑。定居点会自行组织管理、安排招募人员,并在无需玩家干预的情况下,作为自给自足的社区运转。
查看大图招募:村庄扩展 – Recruits 的附属模组
招募:村庄扩展是 Recruits 的一个附属模组,它引入了一个完全自主的村庄系统。每个定居点都有自己的中心、派系和内部逻辑,使村庄能够像活生生的社区一样运作,无需玩家干预即可自行组织、发展和保卫领土。
该模组创建的村庄并非静态结构:它们是活跃的实体,管理着招募单位、分配职责、维护自身身份并响应世界事件。每个村庄都可以扩张、建造功能性建筑、确立领土,并维持平民、士兵与资源之间的内部平衡。
目标是让村庄成为自治的派系,前后一致且令人信服,与世界和玩家进行动态互动。最终带来一个更有生机、更具涌现性和策略性的体验,并与 Recruits 无缝集成。
新更新 - 更好的团体领袖,修复了所有重要错误(希望如此),派系扩张系统?(尚未测试),更智能的派系(何时进攻、何时结盟或开战、何时扩张)。
📦 添加新建筑说明
如何为村庄招募附属模组制作自定义建筑
本指南将说明如何建造并保存你自己的建筑,使其能在村庄中出现。你可以制作 两种 建筑:
- 塔楼替换 – 村庄的大型中心建筑(“市政厅”)。
- 普通建筑 – 散布在周围的普通房屋和工作场所。
每种建筑都有自己的规则。请阅读你要制作类型的规则框。如果规则搞错了,你的村庄生成时就会出问题(没有士兵、没有村民或出现重复的市政厅),所以请仔细遵守。
你不需要会编程。 这里所有操作都在游戏内使用原版的 结构方块 完成。唯一的“特殊”部分是两种方块和一条指令,下面都会说明。
你需要了解的两种特殊方块
| 方块 | 来源 | 作用 | 物品/ID |
|---|---|---|---|
| 招募方块 | 基础 Recruits 模组 | 将村民转化为招募单位,并成为村庄的中心 | recruits:recruit_block |
| 村民生成方块 | 本附属模组 | 生成 16 个村民 来填充村庄,然后消失 | village_recruits:basic_villager_spawner |
你可以像普通方块一样将这些方块放入你的建筑中。当村庄在实际游戏中生成时,它们会自动变成招募单位/村民。
⚠️ 村民生成方块会自毁!
当它在世界中激活的那一刻,村民生成方块会生成村民并 移除自身。如果你试图在它还在原位时保存建筑,它已经消失了 — 你的建筑最终将没有村民。解决方法是一条指令,在下面的第 0 步中说明。每次都请 先 执行此操作。
第 0 步 — 冻结村民生成方块(请先执行此操作)
在建筑中放置村民生成方块之前,请先执行一次此指令:
/vr disable_spawner
这会阻止所有村民生成方块激活,使其 静止不动 在世界中,让你能将其保存到结构里。你会看到一条消息:“Spawner disabilitato.”(即生成器已禁用。)
当你完全完成所有建筑的保存后,可以通过以下指令重新启用:
/vr enable_spawner
(你只需要在实际游玩时启用它 — 对于建造/保存,请保持 禁用 状态。)
建造塔楼替换建筑
✅ 塔楼规则(必须遵守)
- 恰好一个招募方块 (
recruits:recruit_block) 放置在结构的 中心(X/Z 轴中心)。塔楼将以此点为中心生成,所以中心是村庄第一个士兵出现的地方。- 至少一个村民生成方块 (
village_recruits:basic_villager_spawner) 放置在结构 内部任意位置(隐藏的角落或地下室都可以)。- 推荐尺寸:最大 11 × 11 方块(长 × 宽)。高度不限,但占地面积保持在 11×11 或更小,以便适应村庄布局。
步骤
- 执行
/vr disable_spawner(见第 0 步)。 - 建造你的塔楼。尽量将占地面积控制在 11×11 或更小。
- 在地板的 正中心 放置 一个招募方块。(对于 11×11 的地板,即从每条边向内数 5 格的位置。)
- 在内部任意位置放置 一个村民生成方块 — 可以隐藏起来。
- 放置一个原版 结构方块,并将其切换为 保存 模式。
- 为其命名(这是你结构的 ID,例如
mypack:cool_tower)。 - 调整尺寸/位置,使整个塔楼(包括两个特殊方块)都在高亮框内,然后点击 保存。
- 你的
.nbt文件已保存。完成!
保存塔楼前的快速检查清单
- ☐ 已执行
/vr disable_spawner - ☐ 一个招募方块 位于 中心
- ☐ 一个村民生成方块 在内部某处
- ☐ 占地面积 为 11×11 或更小
- ☐ 结构方块框覆盖所有内容
建造普通建筑(房屋 / 工作场所)
✅ 普通建筑规则(必须遵守)
- 没有招募方块。 普通建筑 绝对不能 包含
recruits:recruit_block。(招募方块只属于塔楼替换建筑。)- 这里 不要求 有村民生成方块,但如果你添加了一个,仍然需要先执行
/vr disable_spawner(见第 0 步)。- 保持一个合理的村庄大小。没有像塔楼那样的硬性限制,但小型/中型房屋看起来效果最好,并能适应道路布局。
步骤
- (仅当你放了村民生成方块时)执行
/vr disable_spawner。 - 建造你的房屋或工作场所。不要放置任何招募方块。
- 放置一个原版 结构方块,切换到 保存 模式。
- 为其命名(你的结构 ID,例如
mypack:cozy_house)。 - 将框调整到包围整个建筑,然后点击 保存。
保存普通建筑前的快速检查清单
- ☐ 建筑内 没有招募方块
- ☐ 结构方块框覆盖所有内容
常见错误(以及会出现的问题)
| 错误 | 游戏内表现 |
|---|---|
保存前忘记执行 /vr disable_spawner |
你的村民生成方块消失了 — 村庄生成时没有村民 |
| 在 普通 建筑中放置了招募方块 | 一个村庄内出现多个中心;村庄逻辑被破坏 |
| 塔楼 没有 招募方块 | 村庄永远无法获得初始士兵和中心 |
| 塔楼 没有 村民生成方块 | 村庄生成时空空如也(没有村民) |
| 招募方块不在塔楼 中心 | 士兵生成在建筑侧面/外部 |
| 塔楼大于 11×11 | 会与道路/其他建筑重叠,看起来破碎不堪 |
注册你的建筑(将 .nbt 文件变成附属模组)
保存 .nbt 文件只完成了一半工作 — 附属模组不会使用你的建筑,直到你 注册 它。好消息是:你不需要编写模组或任何 Java 代码。 你只需要制作一个普通的 数据包(一个文件夹或 .zip 文件),里面包含两样东西:
- 你保存的
.nbt文件,以及 - 每个建筑对应一个小的
.json文件,告诉附属模组如何使用它。
世界加载时以及每次执行 /reload 时,附属模组会自动读取这些文件。本指南旁边 example_datapack/ 文件夹中有一个现成的示例 — 复制它并更改名称。
文件夹布局
数据包结构如下:
my_structures_pack/
├── pack.mcmeta
└── data/
└── mypack/ ← 你的命名空间(任意的纯小写名称)
├── structures/ ← 你保存的 .nbt 文件放在这里
│ ├── desert_tower.nbt
│ ├── cozy_house.nbt
│ └── blacksmith.nbt
└── vr_structures/ ← 每个建筑对应的 .json 文件放在这里
├── desert_tower.json
├── cozy_house.json
└── blacksmith.json
pack.mcmeta将该文件夹标记为数据包(从示例中复制)。structures/是结构方块保存文件的标准文件夹。位于data/mypack/structures/desert_tower.nbt的文件具有 IDmypack:desert_tower。vr_structures/是你放置小型.json描述符文件的地方,用于向附属模组注册每个建筑。
.json 描述符
每个 .json 文件都有一个 type 字段,并指向一个结构 ID。字段说明:
| 字段 | 用于 | 含义 |
|---|---|---|
type |
全部 | "tower"、"house" 或 "work"(必需) |
structure |
全部 | 结构 ID,例如 "mypack:desert_tower"(可选 — 默认为 json 文件本身的名称) |
weight |
仅塔楼 | 被选中的频率;越高越常见(默认 1) |
biomes |
仅塔楼 | 真实生物群系 ID 列表,例如 ["minecraft:desert"]。省略则允许 任何 生物群系 |
categories |
仅房屋/工作场所 | 村庄类别列表:plains、taiga、desert、savanna、snowy。省略则允许 所有 类别 |
塔楼使用真实生物群系 ID,房屋/工作场所使用 5 个类别 — 它们是不同的!
塔楼的biomes是精确的生物群系,如minecraft:desert。房屋/工作场所的categories只能是五个之一:plains / taiga / desert / savanna / snowy。附属模组会将每个真实生物群系列映射到其中一个类别(例如 forest/meadow/jungle →plains,spruce/pine →taiga,任何 snowy/frozen →snowy)。在categories中使用像forest这样的真实生物群系名称会被忽略。
示例(可复制这些)
一个出现在 两个特定生物群系 中的 塔楼:
{
"type": "tower",
"structure": "mypack:desert_tower",
"weight": 10,
"biomes": ["minecraft:desert", "minecraft:plains"]
}
一个可以出现在 任何地方(没有 biomes)的 塔楼:
{
"type": "tower",
"structure": "mypack:global_tower",
"weight": 3
}
一个出现在 几个类别 中的 房屋:
{
"type": "house",
"structure": "mypack:cozy_house",
"categories": ["plains", "savanna"]
}
一个出现在 所有类别(没有 categories)的 工作场所:
{
"type": "work",
"structure": "mypack:blacksmith"
}
安装数据包
- 单个世界: 将文件夹/zip 放入
<world>/datapacks/,然后执行/reload(或重新进入世界)。 - 整个服务器 / 所有世界: 将其放入全局数据包位置,或者压缩后像任何数据包一样与其他玩家分享。
加载后,检查服务器日志 — 你会看到一行类似 [VillageRecruits] Strutture da datapack caricate: 2 torri, 1 case, 1 lavoro 的信息。如果一个 .json 文件有误,同一日志会打印出文件名和错误信息,并且只有该条目会被跳过。
提醒: 建筑规则仍然适用。
tower类型结构必须在中心有招募方块 + 一个村民生成方块;house/work类型结构必须 没有 招募方块。使用了错误的type会导致建筑生成异常。
总结(一句话版本)
- 塔楼替换:
/vr disable_spawner→ 招募方块放在 中心 + 村民生成方块放在 任意位置 → 保持 ≤ 11×11 → 保存。 - 普通建筑: 绝对不能有 招募方块 → 保存(只有包含村民生成方块时才先使用
/vr disable_spawner)。
即将到来的更新
外交与战争、自动扩张、攻击、战斗以及可雇佣的晋升实体。
兼容模组
ewewukek 的 Musket Mod 会让十字弩兵使用火枪,并增加其生成率。
即将推出的功能
- 外交与战争
- 自动派系扩张
- 更高级的建筑结构
- 平衡性改进
推荐的优化模组
- Let Me Despawn
- Radium Reforged
- Almanac Lib
- Embeddium
- ServerCore
- ModernFix
- Entity Culling
- FerriteCore
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。