多村庄选择器

多村庄选择器

一个允许模组包创作者拥有任意数量村庄替换模组的模组,可设置生物群系、权重以及池结构的频率。

世界生成

Multi Village Selector (MVS)

Minecraft 1.21.1 | NeoForge 与 Fabric | MIT 许可证

Multi Village Selector 让你能够控制 Minecraft 中村庄的生成。MVS 不会让每个村庄模组争夺生成槽位,而是拦截村庄生成,并使用可配置的权重从所有已安装的村庄模组中进行选择。

MVS 解决的问题

当你安装多个村庄模组(Cobblemon Additions、ChoiceTheorem's Overhauled Village、Towns & Towers 等)时,它们会争夺相同的生成位置。一些模组会覆盖其他模组,一些则永远不会生成,而你无法控制它们的混合比例。MVS 通过以下方式解决这个问题:

  • 在任何模组处理之前拦截原版村庄生成
  • 使用加权随机选择从所有已配置的村庄结构中选取
  • 遵循生物群系规则,使沙漠村庄生成在沙漠中,雪地村庄生成在雪地中,等等
  • 让你控制村庄生成以及不同村庄类型的混合比例

下载

要求:

  • Minecraft 1.21.1
  • NeoForge 21.1.80+ 或 Fabric Loader 0.16.0+ 及 Fabric API
  • Architectury API(两个平台都必需)

快速开始

  1. 将 MVS 和 Architectury API 安装到你的 mods/ 文件夹中
  2. 启动 Minecraft 并加载一个世界
  3. 在游戏内运行 /mvs generate 来扫描已安装的模组
  4. 查看位于 local/mvs/multivillageselector.json5 生成的配置文件
  5. 将配置文件移动到 config/multivillageselector.json5
  6. 重启 Minecraft 以应用更改

就是这样!来自你所有模组的村庄现在都会以加权表示的形式生成——但请务必检查权重,生成器会做出一些猜测,并不完美。

有关详细的设置说明,请参阅 入门指南。

配置

MVS 使用 JSON5 配置文件,包含四个主要部分:

{
  // MVS 控制哪些结构集(通常只是 minecraft:villages)
  intercept_structure_sets: ["minecraft:villages"],

  // 你的村庄结构及每个生物群系的权重
  structure_pool: [
    { structure: "minecraft:village_plains", biomes: {"#minecraft:is_plains": 25} },
    { structure: "bca:village/default_mid", biomes: {"#bca:villages": 29} },  // Cobblemon Additions
    // ... 更多结构
  ],

  // 可选:降低特定生物群系的生成率
  biome_frequency: {
    "#minecraft:is_ocean": 0.3,  // 只有 30% 的海洋生成尝试会继续进行
  },

  // 可选:控制村庄密度(显示的是原版默认值)
  placement: {
    "minecraft:villages": {
      spacing: 34,
      separation: 8,
    }
  }
}

完整文档请参阅 配置指南。

命令

/mvs generate              # 扫描模组并生成配置
/mvs biome                 # 显示当前生物群系信息
/mvs locate <structure>    # 查找最近的结构并附带传送链接
/mvs structure biomes <id> # 显示某个结构的生物群系规则
/mvs structure pool        # 列出 MVS 配置池中的结构
/mvs structure list        # 将所有游戏结构转储到文件
/mvs structure nearby      # 列出玩家附近的结构
/mvs structure predict     # 预测当前位置会生成什么
/mvs help                  # 显示所有命令

完整文档请参阅 命令参考。

支持的模组

MVS 适用于将新村庄添加到结构集的模组:

  • 原版 Minecraft - 全部 5 种村庄类型
  • Cobblemon Additions (BCA) - Cobblemon 主题村庄
  • ChoiceTheorem's Overhauled Village (CTOV)
  • Towns & Towers
  • Terralith
  • 以及更多……

某些模组需要禁用它们自己的村庄生成。设置说明请参阅 模组兼容性。

已测试兼容的模组

这些模组已与 MVS 一同测试,没有出现问题:

  • C2ME - 并发区块生成与 MVS 配合正常
  • Explorer's Compass - 结构定位仍然有效
  • Nature's Compass - 生物群系定位仍然有效
  • Chunky - 预生成与 MVS 结构配合正常

MVS 无法控制的内容

MVS 拦截的是结构选择,而不是拼图片段组装。替换单个村庄片段(建筑、道路)而不是添加整个村庄结构的模组,其工作方式不同:

  • Better Villages - 替换原版村庄拼图片段
  • Luki's Grand Capitals - 替换/扩展原版村庄片段

这些模组仍会对 MVS 选择的任何村庄(通常是原版村庄)应用它们的更改。如果你只使用其中一个,这通常没问题——MVS 选择生成哪种村庄类型,然后拼图替换器修改其建筑。但 MVS 无法帮助你处理这些类型模组之间的冲突。

文档

指南 描述
入门 安装和首次设置
配置 完整配置参考
模组兼容性 每个模组的设置说明
命令 游戏内命令参考
间距指南 控制村庄密度
故障排除 常见问题与解决方案
项目范围 设计理念与限制

已知问题

  • 大型模组结构可能无法通过生物群系验证 - 具有大型起始片段的结构(BCA、Terralith)可能无法通过原版的生物群系检查。请在配置中使用 relaxed_biome_validation: true。
  • Terralith 天空生物群系 - Terralith 在地面之上添加了 3D 生物群系。高地形上的结构可能会采样到天空生物群系而不是预期的地表生物群系,导致生物群系验证失败。

详情和解决方法请参阅 故障排除。

常见问题

我需要安装村庄模组吗?

MVS 可与原版一起使用,但你只会看到原版村庄。安装 Cobblemon Additions 或 Towns & Towers 等村庄模组以获得更多种类。

为什么我的村庄没有生成?

请查看故障排除指南。常见原因:模组冲突、生物群系不匹配或间距设置问题。

MVS 能控制其他结构(神殿、林地府邸)吗?

目前 MVS 专注于村庄。设计原理请参阅范围。你可以将任何结构添加到 MVS 的池中,但它只设计用于一个结构池。

Fabric 还是 NeoForge?

两者都支持!MVS v0.3.0+ 通过 Architectury 支持两个平台。

我可以把它添加到我的整合包中吗?

可以!如果你有功能请求或发现 bug,请提交问题。如果超出项目范围,我可能会拒绝。

你能为所有结构做这个吗?

那更难。以这种方式管理所有结构池要复杂得多。我正在考虑,但老实说,全面的数据包对于那种用例可能更容易。

如何让村庄生成得更频繁或更少?

使用 placement 配置部分调整 spacing 和 separation。详情和建议请参阅 间距指南。

贡献

欢迎贡献!请:

  1. Fork 该仓库
  2. 创建一个功能分支
  3. 提交 Pull Request

有关 bug 报告和功能请求,请使用 GitHub Issues。

作者

项目设计: RhettL —— Rhett 对本仓库中的代码不承担任何责任,他没有编写其中任何代码。

实现: 此模组完全由 Claude Code(Claude Sonnet 4.5)开发,这是 Anthropic 的 AI 编程助手。RhettL 提供了设计方向和测试。

许可证

MIT 许可证 - 详情请参阅 LICENSE。

致谢

  • 村庄模组创作者们,感谢他们出色的结构
  • Cobblemon Additions 的创作者们,感谢他们的鼓励以及允许我在他们的 Discord 上向大家介绍这个模组
  • Architectury 提供的多加载器支持
  • json5-java 提供的配置解析
  • NeoForge 和 Fabric 团队
  • Claude Code(Sonnet 4.5)在 RhettL 的指导下完成了大部分编码工作