今天不刷怪

今天不刷怪

“我们对死亡之群说什么?不是今天。” 通过简单的服务器端配置规则,阻止不需要的生物或调整生成频率。

NotTodayMob

NotTodayMob 的设计注重简洁与性能,它提供了对生物生成的配置化控制,而无需修改世界生成定义或生物群系数据。可以完全屏蔽单个生物或整个命名空间,或通过简单的配置提高/降低其自然生成频率。

NotTodayMob 面向整合包作者和服务器管理员,旨在让他们无需复杂数据包或脚本,即可对生物行为进行可预测、轻量级的控制。

所有更改均在运行时应用,并自动适用于模组生物、模组生物群系和自定义维度。

当不想要的生物试图生成时,答案很简单:今天不行。

最新更新 - 版本 1.0.6

NotTodayMob 现在扩展了对自然生成和自定义生物生成的控制。

新增的 naturalSpawnWeightMultipliers 设置允许整合包作者和服务器管理员减少、增加或禁用匹配实体的自然生成。

另一个新的 customSpawnChanceMultipliers 设置允许独立减少或禁用使用 EVENT 或 TRIGGERED 生成类型的生成尝试,为使用自定义基于事件的生成的模组提供支持。

功能特性

  • 屏蔽特定生物的生成
  • 使用可配置的权重倍率调整自然生成频率
  • 可选择在区块加载期间替换/移除匹配的刷怪笼
  • 自动从玩家物品栏/世界中移除刷怪蛋和刷怪笼
  • 对幼年变体提供额外的精细控制,支持通过标准 Minecraft 实体行为暴露幼年/成年状态的原版和模组生物
  • 支持精确 ID 和通配符匹配,包括特定维度的规则范围限定
  • 定期性能统计日志记录
  • 自动适用于模组生物和生物群系
  • 无需修改生物群系或世界生成
  • 轻量级,对大型整合包安全
  • 对服务器和多人游戏友好
注意

在 Forge 1.20.1 和 NeoForge 1.21.1 上,匹配的刷怪笼会先被替换为惰性刷怪笼,然后在之后的一次区块加载中安全移除。

这种分阶段移除方式避免了在世界生成期间过早移除方块实体而导致的区块加载警告。

典型用例

  • 减少生存玩法中特定生物的数量
  • 增加主题世界中某些生物的出现频率
  • 禁用有问题的或不想要的模组生物
  • 平衡大型整合包中的生物种群
  • 在不编辑数据包的情况下微调难度

配置指南

NotTodayMob 使用一组服务器端设置进行配置,这些设置设计得可预测且易于理解。您可以随时进行更改,更改将在重启或重新加载后自动生效。

核心行为

blockEntitiesEnabled

控制是否阻止匹配实体的生成。

默认值:true

如果禁用,所有实体屏蔽规则都将被忽略。

blockBabyVariants

控制是否也屏蔽被屏蔽实体的幼年变体。

默认值:true

如果禁用,即使成年实体被屏蔽,幼年变体仍然会生成。

世界生成刷怪笼处理

worldgenSpawnerRemoval

控制是否在区块加载期间移除或替换匹配的世界生成刷怪笼。

默认值:true

如果启用,匹配的刷怪笼将会:

  • 使用 worldgenSpawnerReplacements 替换,或
  • 如果没有定义有效的替换,则移除

如果禁用,世界生成的刷怪笼保持不变。

worldgenSpawnerReplacements
worldgenSpawnerReplacements = [
    "minecraft:zombie"
]
行为说明
  • 仅适用于世界生成的刷怪笼(例如地牢、结构)
  • 仅接受精确实体 ID
  • 区块生成或加载时自动进行替换
  • 可以提供多个条目作为后备
  • 如果没有定义有效的替换,刷怪笼将被移除
  • 现有世界将在区块加载时更新
示例
blockedEntities = [
    "minecraft:skeleton",
    "minecraft:*spider"
]

worldgenSpawnerReplacements = [ "minecraft:zombie" ]

在此示例中,区块加载期间发现的骷髅或蜘蛛刷怪笼将变为僵尸刷怪笼。

刷怪笼和刷怪蛋控制

suppressBlockedEntitySpawners

控制是否阻止使用匹配的刷怪笼。

默认值:true

如果禁用:

  • 刷怪笼仍可使用
  • 实体生成行为仍遵循屏蔽规则
suppressBlockedEntitySpawnEggs

控制是否阻止使用匹配的刷怪蛋。

默认值:true

如果禁用:

  • 刷怪蛋仍可使用
  • 实体生成行为仍遵循屏蔽规则

物品栏和物品清理

cleanupDroppedItems

控制被屏蔽实体的刷怪蛋和刷怪笼在被丢弃到世界中时是否立即移除。

默认值:true

如果您希望被屏蔽的物品存在但仍阻止生成,请禁用此选项。

inventoryCleanupIntervalTicks

控制多久(以刻为单位)检查一次玩家物品栏中被屏蔽的刷怪蛋和刷怪笼。

默认值:10

刻数 实际时间
10 半秒
20 一秒

值越高,开销越小,但清理延迟越大。

enableStatsLogging

控制是否将定期的 NotTodayMob 摘要统计信息写入服务器日志。

默认值:false

statsLoggingIntervalTicks

控制多久(以刻为单位)记录一次摘要统计信息。

默认值:12000

刻数 实际时间
12000 十分钟
24000 二十分钟
statsLoggingVerbose

控制每个统计报告中是否包含额外细节。

默认值:false

启用时,报告可能包括:

  • 顶级被屏蔽实体
  • 规则匹配细分
statsLoggingToSeparateFile

控制是否也将统计信息写入专用日志文件。

默认值:false

启用后,统计信息也将写入 logs/nottodaymob.log。

屏蔽实体

blockedEntities

定义哪些实体被阻止生成。

支持:

  • 精确 ID
  • 命名空间通配符
  • 前缀和后缀通配符
  • 可选的维度范围限定
示例
blockedEntities = [
    "minecraft:skeleton",
    "minecraft:*spider",
    "alexsmobs:*",
    "minecraft:zombie|dimensions=minecraft:overworld"
]
blockedBabyEntities

定义哪些幼年变体在不屏蔽其成年对应物的情况下被阻止生成。

支持:

  • 精确 ID - 命名空间通配符
  • 前缀和后缀通配符
  • 可选的维度范围限定
示例
blockedBabyEntities = [
    "minecraft:zombie", 
    "minecraft:*piglin", 
    "alexsmobs:*", 
    "minecraft:hoglin|dimensions=minecraft:the_nether"
]

将规则限定到特定维度

可以使用内联的 dimensions= 过滤器,选择性地将规则限制到一个或多个维度。

blockedEntities = [
    "minecraft:skeleton|dimensions=minecraft:overworld",
    "minecraft:blaze|dimensions=minecraft:the_nether",
    "alexsmobs:*|dimensions=twilightforest:twilight_forest"
]
行为说明
  • 将规则限制在指定的维度
  • 可以使用逗号提供多个维度
  • 如果不存在 dimensions= 过滤器,则该规则适用于所有维度
  • 同时适用于原版和模组维度
  • 支持精确 ID 和通配符匹配
示例
blockedEntities = [
    "minecraft:zombie|dimensions=minecraft:overworld"
]

在此示例中,僵尸仅在主世界被屏蔽,而在其他维度不受影响。

调整自然/自定义生成频率

naturalSpawnWeightMultipliers

调整匹配实体的自然生成频率。

naturalSpawnWeightMultipliers = [
    "minecraft:zombie=0.5",
    "minecraft:creeper=2.5",
    "minecraft:bat=0.0"
]

格式:entity_or_pattern = multiplier

倍率行为
倍率 效果
0.0 禁用自然生成
0.5 生成频率减半
1.0 原版行为
2.5 生成频率约为 250%
10.0 支持的最大倍率

权重调整仅适用于自然生成。刷怪笼、命令和其他生成源不受影响。

customSpawnChanceMultipliers

调整通过 EVENT 或 TRIGGERED 生成类型创建的匹配实体的生成成功率。

customSpawnChanceMultipliers = [
    "simpleenemymod:ruunit=0.1",
    "simpleenemymod:usunit=0.1",
    "examplemod:boss=0.0"
]

格式:entity_or_pattern = multiplier

倍率行为
倍率 效果
0.0 禁用匹配的自定义生成
0.1 允许约 10% 的尝试
0.5 允许约一半的尝试
1.0 原始生成行为

几率调整仅适用于 EVENT 和 TRIGGERED 生成。自然生成、刷怪笼、刷怪蛋、命令和其他生成源不受影响。

兼容性

NotTodayMob 自动适用于:

  • 模组生物和生物群系
  • 自定义维度
  • 数据包驱动的生成

无需特殊集成。

问题报告

如果您遇到与其他模组的兼容性问题,请通过项目问题跟踪器报告,以便进行调查。