生成怪物

生成怪物

Spawn Mobs Active 是一个轻量级、完全可配置的Fabric 1.21.1模组,用于管理生物生成。

生成生物活跃

生成生物活跃是一款轻量级、完全可配置的生物生成管理器,适用于 Fabric 1.21.1。通过简单的规则列表,您可以精确决定哪些生物可以生成、哪些被阻止——可按生物、类别、生成来源、维度、高度、光照等级和生物群系进行控制。无需命令或编码:所有设置都在一个简单的 JSON 文件中完成。

无论您是想让主世界变得和平,只有刷怪笼能生成怪物;还是想体验洞穴专属的僵尸世界;或者只是想移除某一种烦人的生物——生成控制都能用几行代码搞定。


功能特性

  • 单独阻止或允许任何生物(minecraft:creeper、minecraft:zombie……)
  • 通过类别阻止或允许整个群体(例如一次性阻止所有MONSTER——也适用于模组生物)
  • 按生成来源过滤:自然生成、刷怪笼、结构、巡逻等
  • 按维度过滤(主世界/下界/末地/模组维度)
  • 按高度过滤(minY/maxY)——非常适合“仅限洞穴”
  • 按光照等级和天空可见度过滤(地表 vs. 洞穴)
  • 按生物群系过滤
  • 用于处理鸡骑士的专用选项
  • 游戏内重载——无需重启
  • 可选的日志记录,打印每次被阻止的生成及其精确的生物 ID

工作原理(重要部分)

您需要编写一个规则列表。每条规则要么是ALLOW(允许生成),要么是DENY(阻止生成)。

当生物尝试生成时,生成控制会自上而下检查规则,并应用第一条匹配的规则——然后停止检查。如果没有规则匹配,则使用defaultAction(默认为ALLOW,即原版行为)。

第一条匹配的规则生效。 这就是为什么“例外”(ALLOW)必须放在通用禁令(DENY)之上。

一条规则就是条件(必须满足的条件)加上一个动作。任何省略的字段都会被忽略,意味着“适用于所有情况”。在同一条规则中,所有列出的条件都必须匹配(AND 逻辑)。


配置文件

位置:config/spawncontrol.json(首次启动时自动创建,包含示例)。

顶层设置

设置 含义
enabled 整个模组的总开关(true / false)
defaultAction 没有规则匹配时的行为:"ALLOW"(原版)或 "DENY"
disableChickenJockeys true = 不生成作为坐骑的鸡;幼年生物会留在地面上
removeChickenJockeyRiders true = 移除整个鸡骑士(骑手和鸡),无论来自何种生成来源
logBlockedSpawns true = 将每次被阻止的生成及其生物 ID 打印到控制台(便于查找 ID)
rules 规则列表,自上而下检查

规则字段

字段 含义
action "ALLOW" 或 "DENY"
entities 生物 ID 列表,例如 ["minecraft:zombie", "minecraft:creeper"]。空列表 = 所有生物
categories 生物类别(见下文)。空列表 = 所有类别
spawnReasons 生成来源(见下文)。空列表 = 所有来源
dimensions 例如 ["minecraft:overworld", "minecraft:the_nether"]。空列表 = 所有维度
biomes 例如 ["minecraft:plains"]。空列表 = 所有生物群系
minY / maxY 高度范围(包含)
requireSkyVisible true = 仅限地表,false = 仅限洞穴
minBlockLight / maxBlockLight 方块光照范围(0–15)
minSkyLight / maxSkyLight 天空光照范围(0–15)
comment 自由文本备注,仅供自己参考;无实际效果

类别

MONSTER、CREATURE、AMBIENT、WATER_CREATURE、WATER_AMBIENT、UNDERGROUND_WATER_CREATURE、AXOLOTLS、MISC

MONSTER 包含敌对生物(僵尸、骷髅、苦力怕、蜘蛛、末影人、女巫、掠夺者等)——也包括注册在该类别下的模组生物。

生成来源

NATURAL、SPAWNER、STRUCTURE、CHUNK_GENERATION、PATROL、JOCKEY、REINFORCEMENT 等。


示例(“配方”)

完全禁用一种生物(任何来源):

{ "action": "DENY", "entities": ["minecraft:creeper"] }

在所有地方禁用所有敌对怪物:

{ "action": "DENY", "categories": ["MONSTER"] }

怪物仅来自刷怪笼(允许刷怪笼,阻止其余来源):

{ "action": "ALLOW", "categories": ["MONSTER"], "spawnReasons": ["SPAWNER"] },
{ "action": "DENY",  "categories": ["MONSTER"] }

仅阻止主世界的怪物(下界和末地保持正常):

{ "action": "DENY", "categories": ["MONSTER"], "dimensions": ["minecraft:overworld"] }

僵尸仅限洞穴(Y 50 以下),不在地表:

{ "action": "ALLOW", "entities": ["minecraft:zombie"], "spawnReasons": ["NATURAL"], "dimensions": ["minecraft:overworld"], "maxY": 50 },
{ "action": "DENY",  "entities": ["minecraft:zombie"], "spawnReasons": ["NATURAL"], "dimensions": ["minecraft:overworld"] }

提示: 构建规则时,先问自己 “哪些应该作为例外被允许?” → 将其作为ALLOW放在顶部附近,然后将通用的DENY放在下面。


鸡骑士

鸡骑士以特殊方式生成,不经过正常的生成检查,因此有自己的设置:

  • removeChickenJockeyRiders: true → 移除整个骑士(骑乘的幼年生物和它的鸡),无论生成来源。已有存档中的骑士也会在加载时被清理。正常僵尸和正常幼年僵尸不受影响。
  • disableChickenJockeys: true → 仅阻止鸡坐骑的生成;一个正常的幼年生物会留在地面上。
  • 按规则的替代方案(仅移除鸡):{ "action": "DENY", "entities": ["minecraft:chicken"], "spawnReasons": ["JOCKEY"] }

两个开关均默认为 false。


命令

需要 OP / 权限等级 2:

  • /spawncontrol reload — 重载配置文件,无需重启
  • /spawncontrol on / /spawncontrol off — 全局开关模组
  • /spawncontrol status — 显示当前状态和规则数量

须知

  • 试炼刷怪笼(来自试炼密室的)使用自己的逻辑,不受本模组影响。
  • 生成控制仅阻止新生成;已加载到世界中的生物不会被移除(让它们自动消失或自行清除)。
  • 调整了某些设置?运行 /spawncontrol reload 即可生效。

需求

  • Minecraft 1.21.1(Fabric)
  • Fabric API
  • Java 21