Spawn Balance Utility
允许你按生物群系和结构控制生物的生成权重与群组大小。此模组控制的是生成生物的种类构成,不会像我们的另一个模组“Spawncap Control Utility”那样修改生成上限。
截图
介绍

1. 生成平衡实用工具 (SBU)
该模组目前支持 Forge 和 Fabric。 Neoforge 目前更像是一个愿望而非计划。
Forge 已跟进。
Fabric 将很快跟进至 1.21.8。
现在为 1.20.X 版本提供*有限的* Fabric 支持(更多说明见下文)
概述
我们在整合包中平衡所有生物生成权重时遇到了问题,所以我编写了这个实用工具模组。
生成平衡实用工具(”SBU”)将帮助整合包设计者、服务器管理员、运行带有多个生物模组的个人游戏的普通玩家以及模组开发者识别和调整生成平衡问题。 SBU 将为你节省无数次尝试数值、观察效果、然后再次重启的反复迭代。 在编辑模组中的生成权重和群体大小时,你将能够做出更明智的选择。
使用 SBU,你将能够逐个生物群系地控制模组生物和普通生物的生成权重。
你将能够把整合包中的任何生物添加到整合包中的任何生物群系。 (不过该生物仍然必须通过其内部生成要求!)
五种常见用途
情况 1:一个新模组使现有生物变得过于稀有。 鳕鱼在温水海洋中的默认权重为 5,而 ImaginaryWaterCreatures 模组添加了权重为 20 的”HappyFish”。 现在海洋里全是快乐鱼,鳕鱼消失了。 生成平衡实用工具将帮助你识别并修复这个问题。
情况 2:添加了一个新模组,但你从未见过其中的生物。 SBU 将帮助你了解原因,并让你调整生成率,使新怪物更常见。
情况 3:你正在编写一个新模组,想要一些好的默认生成权重。 生成平衡实用工具将帮助你更轻松地选择更好的生成权重。
情况 4:你只想修复最极端的情况,即生成权重很容易过高或过低。比如你只想直接放入并快速修复生物从不出现或出现过多的最严重问题。 默认情况下,它将生成权重的下限和上限分别设置为 5 和 80。
情况 5:你希望没有生物生成。 每个生物群系必须至少有一种生物。 我建议使用蝙蝠。 删除除蝙蝠以外的所有行。
其他一些功能
SBU 现在可以选择将现有生成权重提高到可配置的最低权重。
如果下界生物群系缺少僵尸猪灵和恶魂,SBU 可以将它们添加进去。 有些生物群系现在基本上是空的,所以这有助于将危险程度恢复到正常水平。
易于使用
作为普通用户,你可以将 SBU 作为即插即用的模组使用。 只需使用默认值将其放入,它就会修复最严重的问题。 Minecraft 生物不会消失,一些模组生物会变得稍微更常见,而其他模组生物会变得稍微不那么常见。 你不需要做任何其他事情。
它会在 /spawnbiomeutility 文件夹中创建一些文件,你可以用它们查看当前的生成率。 例如,在我们的案例中,Mutant Beasts 的值为 45,但它们所在的生物群系中有许多其他模组生物,这些生物的生成率更高。 结果我们从未见到它们。 我们将此值提高到 100,它们又太常见了。 然后我们将它们降低到 80,它们出现的频率就”刚刚好”。
然而……
如果你深入挖掘,就能获得完全控制的强大能力。
作为服务器所有者或整合包设计者,你可以使用 SBU 完全控制生成权重,让生物更常见或更少见,甚至将它们添加到目前不出现的生物群系中。 这可以通过文本编辑器完成,但使用电子表格最为简便。
2. 文档
配置文件
注意:请使用 Wordpad、Notepad++、Textpad 编辑 Forge 配置文件,否则它们会显示为一行长文本,难以阅读。 不要使用记事本。
配置文件(版本 3,1.36.0.3)摘要
[“Spawn Balance UtilityControl Values”]
#Fix min, max values and add nether creatures
fixSpawnValues = true
#minimum Spawn Weight #Range: 1 ~ 1000
minSpawnWeight = 5
#maximum Spawn Weight #Range: 1 ~ 1000
maxSpawnWeight = 80
#fixEmptyNether
fixEmptyNether = true
#generateReport
generateReport = true
#Use the BiomeMobWeight.CSV file to balance Biome spawn values
balanceBiomeSpawnValues = true
#Use the StructMobWeight.CSV file to balance structure spawn values
balanceStructureSpawnValues = true
debugLevel = 0
配置字段文档
#Fix min, max values and add nether creatures
fixSpawnValues = true
如果此项为 true,Spawn Balance Utility (SBU) 会将生成权重提升到最小值,并将生成权重降低到最大值。
当 Minecraft 默认使用非常低的生成权重值(如”1″)时,这很有帮助,因为该生物群系中只有一种生物。 然后当模组添加了具有更高生成权重的新怪物时,原版 Minecraft 生物就变得非常稀有。
#minimum Spawn Weight #Range: 1 ~ 1000
minSpawnWeight = 5
如果默认 Minecraft 生成权重为”1″(例如鳕鱼),那么任何新模组都会使鳕鱼变得稀有,除非这些模组也使用生成权重”1″。
#maximum Spawn Weight #Range: 1 ~ 1000
maxSpawnWeight = 80
有些模组默认使用非常高的生成权重。 任何超过 50 的值可能都是不必要的。 默认值将最大生成值限制为 80。 因此,如果某个生物的权重为 100,它就会变成 80。 结合 minSpawnWeight,你最终得到的生成权重在 5 到 80 之间。
#fixEmptyNether
fixEmptyNether = true
一些新的 Minecraft 下界生物群系没有传统的下界生物,如僵尸猪灵和恶魂。 这导致下界非常无聊空旷。 当你将此设置为 true 时,SBU 会使用 minSpawnWeight 值将僵尸猪灵和恶魂添加到所有下界生物群系中。 请注意,恶魂在没有 5×5 开阔地面的生物群系中仍然很难生成。 另请注意,恶魂每个区块限制为 1 次成功生成。 它们的群体大小为 4,因此它们会尝试生成 4 次后放弃。
#generateReport
generateReport = true
这会生成两个 SBU 报告(BiomeMobWeight.txt、StructureMobWeight.txt),它们是 CSV 格式的文件,用于配置。 注意:结构生成文件目前仅供参考。 用它来向结构添加怪物和生物的功能即将推出。 例如:林地府邸不会生成灾厄村民——它们是在世界构建时生成的。 完成后,你可以让林地府邸生成灾厄村民、破损的下界传送门生成疣猪兽,以及沉船生成模组水生生物,比如我们 HostileWaterMobs 模组中的 River Guardians 或 Slippery Biters。
#使用 CSV 文件来平衡生成值
balanceSpawnValues = true
当此项为 true 时,如果 BiomeSpawnUtility.csv 文件存在,SBU 将使用它来修改生成值。 SBU 在世界启动时*仅*执行一次。 它不会再次运行。 它不会产生持续的服务器负载。
#suppressMinecraftMobReporting
suppressMinecraftMobReporting = false
如果你只想从 .txt 报告中移除 Minecraft 怪物,请将其设置为 “true”。
#要报告的模组名称集合,以分号分隔。
includedReportModsSet = “;”
输入以分号 “;” 分隔的模组列表以包含在报告中。 留空(默认)时,它将报告所有模组。 示例:”undergarden;greekfantasy;dreamlands”。 当你添加新模组并且只想查看它添加的怪物以便将它们添加到 .csv 平衡文件时使用。
#调试级别:0 = 关闭,1 = 日志,2 = 聊天+日志 #范围:0 ~ 2
debugLevel = 0
debugLevel 决定日志的详细程度。
级别 1 将重要错误输出到日志,并标注为 “SpawnBiomeUtility Error” 行。
级别 2 输出警告和*大量*信息消息(但每次服务器/世界启动时仅输出一次)。
#Mod:MobName,DefaultSpawnweight 的列表; #Mod:MobName,DefaultSpawnweight 的列表;
defaultSpawnWeightList = “minecraft:enderman,5;modname:mobname,6;“
填入 “modname:mobname”、一个逗号,然后是一个整数。 这将覆盖默认的最小和最大生成权重值。 它不会将怪物添加到生物群系。
[“Spawn Placement Fixes”][“Spawn Placement Fixes”] #将生成在空中并下落的怪物添加到此列表。
defaultSpawnWeightList = “minecraft:piglin_brute;goblinanddungeon:gob;goblinanddungeon:Hobgob;”
这修复了怪物因为没有注册生成位置而自然生成在空中的问题。(版本 13 及更高版本)
3. 完全控制:BiomeMobWeight 文件。
更改所有生成值后,Spawn Balance Utility(”SBU”)会在 /config/spawnbiomeutility 文件夹中输出一个包含所有生成权重值的文件,标题为 BiomeMobWeight.txt。
你可以将此文件重命名为 BiomeMobWeight.CSV,SBU 将把它用作配置文件。
你可以使用电子表格编辑此文件,逐行或一次多行更改怪物的生成权重和群体大小。 例如,你可以使用电子表格按怪物名称(minecraft:skeleton)排序,将骷髅在每个生物群系中改为更少见,然后让它们在森林生物群系中更常见……选择那些行并使用查找和替换将生成权重从 80 改为 50……然后将森林类别的骷髅生成权重改为 90。
示例:BiomeMobWeight(添加了示例标题行以帮助你理解)
行号, 生物群系类别, 生物群系, 分类, 模组:怪物, 生成权重, 最小群组数, 最大群组数
1, taiga, byg:snowy_blue_taiga_hills, MONSTER, minecraft:spider, 80, 4, 4
2, taiga, byg:snowy_blue_taiga_hills, MONSTER, minecraft:zombie, 80, 4, 4
3, taiga, byg:snowy_blue_taiga_hills, MONSTER, minecraft:zombie_villager, 10, 1, 1
4, taiga, byg:snowy_blue_taiga_hills, MONSTER, minecraft:skeleton, 80, 4, 4
5, taiga, byg:snowy_blue_taiga_hills, MONSTER, minecraft:creeper, 80, 4, 4
6, taiga, byg:snowy_blue_taiga_hills, MONSTER, minecraft:slime, 80, 4, 4
友好
如果 SBU 遇到错误行,它会输出一条错误消息,包含该错误行以及出错所在的字段。
然后它会继续处理下一行。错误数据会被处理。它不会崩溃。所以请检查你的日志以查找这些错误消息。
向结构添加生物
你也可以使用 SBU 向结构添加生物。目前这仅适用于 minecraft 结构。SBU 确实会将它们添加到模组结构中,但 Forge 以某种方式对它们的生成处理方式不同。
我用它向沉船添加了敌对与和平鱼类。并向海底神殿添加了一些和平鱼类。
同样的流程适用。第一次运行时,SBU 会创建一个 StructureMobWeight TXT 报告文件。你将其复制为 StructureMobWeight CSV,然后编辑其中的值。
示例:原始 StructureMobWeight csv 文件。
1, minecraft:swamp_hut, HEADING, header:ignore, 0, 0, 0
2, minecraft:swamp_hut, MONSTER, minecraft:witch, 10, 1, 1
4, minecraft:swamp_hut, CREATURE, minecraft:cat, 13, 1, 1
6, minecraft:pillager_outpost, HEADING, header:ignore, 0, 0, 0
7, minecraft:pillager_outpost, MONSTER, minecraft:pillager, 41, 1, 1
9, minecraft:monument, HEADING, header:ignore, 0, 0, 0
10, minecraft:monument, MONSTER, minecraft:guardian, 70, 2, 4
12, minecraft:monument, CREATURE, minecraft:cod, 13, 2, 4
14, minecraft:fortress, HEADING, header:ignore, 0, 0, 0
15, minecraft:fortress, MONSTER, minecraft:blaze, 11, 2, 3
17, minecraft:fortress, MONSTER, minecraft:zombified_piglin, 53, 4, 4
19, minecraft:fortress, MONSTER, minecraft:wither_skeleton, 79, 5, 5
21, minecraft:fortress, MONSTER, minecraft:skeleton, 19, 5, 5
23, minecraft:fortress, MONSTER, minecraft:magma_cube, 33, 4, 4
25, minecraft:mineshaft, HEADING, header:ignore, 0, 0, 0
26, minecraft:mansion, HEADING, header:ignore, 0, 0, 0
27, minecraft:jungle_pyramid, HEADING, header:ignore, 0, 0, 0
28, minecraft:desert_pyramid, HEADING, header:ignore, 0, 0, 0
29, minecraft:igloo, HEADING, header:ignore, 0, 0, 0
30, minecraft:ruined_portal, HEADING, header:ignore, 0, 0, 0
31, minecraft:shipwreck, HEADING, header:ignore, 0, 0, 0
32, minecraft:stronghold, HEADING, header:ignore, 0, 0, 0
33, minecraft:ocean_ruin, HEADING, header:ignore, 0, 0, 0
34, minecraft:endcity, HEADING, header:ignore, 0, 0, 0
35, minecraft:buried_treasure, HEADING, header:ignore, 0, 0, 0
36, minecraft:village, HEADING, header:ignore, 0, 0, 0
37, minecraft:nether_fossil, HEADING, header:ignore, 0, 0, 0
38, minecraft:bastion_remnant, HEADING, header:ignore, 0, 0, 0
轻松向每个生物群系添加生物
SBU 会读取 “MassAdditionMobs.CSV” 的内容,并根据四个选项之一(全部、主世界、下界、末地)将文件中的任何生物添加到生物群系中。
SBU 会在 config 文件夹内的 spawnbalanceutility 子文件夹中为你创建一个名为 “MassAdditionMobs.TXT” 的模板供使用。它看起来像这样:
示例生物群系添加文件。按照下面的格式添加生物,并将文件重命名为 MassAdditionMobs.csv
行号, 分类*, 类别**, 命名空间:生物, 权重, 最小群组, 最大群组
1, A, MONSTER, minecraft:phantom, 10, 1, 4
* A、O、N、E 分别代表全部、主世界、下界、末地
** MONSTER、CREATURE、AMBIENT
此文件会将 minecraft:phantom 添加到所有维度的每个生物群系中。它还会为文本行打印一些非致命错误消息。
一个正确的文件可能如下所示:
1, A, MONSTER, minecraft:phantom, 10, 1, 4
1, N, AMBIENT, minecraft:bat, 15, 1, 4
1, E, CREATURE, abynormalcraft:twistedbunny, 10, 1, 4
1, O, MONSTER, minecraft:silverfish, 5, 3, 6
此文件将会
* 将幻翼作为一种稀有怪物(你可能每晚看到 1 只)添加到游戏中的每个生物群系。
* 将蝙蝠作为环境生物添加到每个生物群系(它们仍会受到 BatEntity 规则的限制,只能出现在黑暗的低处区域)。
* 将来自(虚构的)abynormalcraft 模组的扭曲兔子作为生物(像羊……牛……)添加到每个末地生物群系。
* 将 minecraft 蠹虫作为非常稀有的生成添加到所有主世界生物群系(但忽略其他维度)。
4. 生成平衡实用工具工作流程
安装 Spawn Balance Utility
运行 Minecraft。
使用默认值时,它会将所有低于 5 的生成权重提高到 5,并将所有高于 80 的生成权重降低到 80。
如果你想进一步自定义——方法如下:
创建一个世界。
退出。
浏览到 /config 文件夹,查看 /spawnbalanceutility 文件夹。
你会看到两份报告
- BiomeMobWeight.txt
- StructMobWeight.txt
将 BiomeMobWeight.txt 重命名为 BiomeMobWeight.csv
使用任意文本编辑器、文字处理软件或电子表格编辑 BiomeMobWeight.csv 文件。确保将更改保存为 *txt* 或 *csv* txt 文件,后缀为“.csv”。
操作
* 在生物群系部分添加/插入一行新怪物。
* 将生成权重更改为更高或更低的值,使其更常见或更少见。
* 将生成权重更改为 0 或负数以移除生物。
* 将最小群组大小更改为更高或更低的值。
* 将最大群组大小更改为更高或更低的值。
* 删除该行以从生物群系中移除生物(但每个生物群系至少需要一行,否则 SBU 会保留该生物群系的默认值)。
* 如果你删除某个生物群系中的*所有*行,那么它会保留默认值而不是移除怪物(毕竟,必须始终保留一个)!
高级操作
* 在电子表格中按怪物列对文件排序,使所有蜘蛛放在一起。 复制该块并粘贴。 将所有 minecraft:spiders 更改为 Mod:creature。
* 注意行号不是“键”字段,你编辑后的文件可以有重复的行号。 它只是用来帮助你排序文件和修复错误。
* 将分类(生成池)更改为另一个合法分类(monster、creature、ambient,或合法的扩展分类(如下例中的 EIBTY)
如果你在某一行犯了错误——没什么大不了的! 该行上的怪物/生物不会被放入生成表,你会收到此错误消息。
“SpawnBalanceUtility Error reading field ”+errorField+“ on 394th line of BiomeMobWeight.csv.”
操作顺序
* 首先,如果开启,将 BiomeMobWeight.csv 文件(以及实现后的 StructureMobWeight)应用到生成权重值。
* 其次,如果开启,应用 FixSpawnWeight 和 FixEmptyNether 更改
* 第三,生成包含最终值的 BiomeMobWeight.txt 文件
通常,一旦你设置好 BiomeMobWeight.csv 文件,就可以关闭其他功能。但保持开启也是*可以的*。最坏的情况是你在 CSV 文件中设置了 100 的生成权重,然后它被降低到 80。
示例
BiomeMobWeight 文件内容示例
行号, 生物群系类别, 生物群系, 分类, 模组:怪物, 生成权重, 最小群组数, 最大群组数
1, taiga, byg:snowy_blue_taiga_hills, MONSTER, minecraft:spider, 80, 4, 4
2, taiga, byg:snowy_blue_taiga_hills, MONSTER, minecraft:zombie, 80, 4, 4
3, taiga, byg:snowy_blue_taiga_hills, MONSTER, minecraft:zombie_villager, 10, 1, 1
4, taiga, byg:snowy_blue_taiga_hills, MONSTER, minecraft:skeleton, 80, 4, 4
5, taiga, byg:snowy_blue_taiga_hills, MONSTER, minecraft:creeper, 80, 4, 4
6, taiga, byg:snowy_blue_taiga_hills, MONSTER, minecraft:slime, 80, 4, 4
7, taiga, byg:snowy_blue_taiga_hills, MONSTER, minecraft:enderman, 10, 1, 4
8, taiga, byg:snowy_blue_taiga_hills, MONSTER, minecraft:witch, 10, 1, 1
9, taiga, byg:snowy_blue_taiga_hills, MONSTER, minecraft:stray, 80, 4, 4
10, taiga, byg:snowy_blue_taiga_hills, MONSTER, earthmobsmod:lobber_zombie, 10, 2, 4
11, taiga, byg:snowy_blue_taiga_hills, MONSTER, dungeonsmod:notehead, 10, 1, 1
12, taiga, byg:snowy_blue_taiga_hills, MONSTER, nasty:skeleton, 80, 1, 3
13, taiga, byg:snowy_blue_taiga_hills, MONSTER, greekfantasy:shade, 10, 1, 1
14, taiga, byg:snowy_blue_taiga_hills, MONSTER, quark:toretoise, 80, 1, 1
15, taiga, byg:snowy_blue_taiga_hills, MONSTER, quark:stoneling, 80, 1, 1
16, taiga, byg:snowy_blue_taiga_hills, MONSTER, hostilewatermobs:slipperybiter, 15, 1, 2
17, taiga, byg:snowy_blue_taiga_hills, MONSTER, hostilewatermobs:river_guardian, 10, 1, 1
18, taiga, byg:snowy_blue_taiga_hills, MONSTER, hostilewatermobs:gurty, 15, 1, 1
19, taiga, byg:snowy_blue_taiga_hills, CREATURE, minecraft:sheep, 12, 4, 4
20, taiga, byg:snowy_blue_taiga_hills, CREATURE, minecraft:pig, 10, 4, 4
21, taiga, byg:snowy_blue_taiga_hills, CREATURE, minecraft:chicken, 10, 4, 4
22, taiga, byg:snowy_blue_taiga_hills, CREATURE, minecraft:cow, 10, 4, 4
23, taiga, byg:snowy_blue_taiga_hills, CREATURE, minecraft:wolf, 10, 4, 4
24, taiga, byg:snowy_blue_taiga_hills, CREATURE, minecraft:rabbit, 10, 2, 3
25, taiga, byg:snowy_blue_taiga_hills, CREATURE, minecraft:fox, 10, 2, 4
26, taiga, byg:snowy_blue_taiga_hills, CREATURE, greekfantasy:cyprian, 15, 1, 3
27, taiga, byg:snowy_blue_taiga_hills, CREATURE, greekfantasy:dryad, 24, 1, 3
28, taiga, byg:snowy_blue_taiga_hills, EIBTY, classy:creepygiggle, 22, 2, 5
29, taiga, byg:snowy_blue_taiga_hills, AMBIENT, minecraft:bat, 10, 8, 8
5. 常见问题
1) SBU 会绕过生成上限吗?
不会。它只改变生成权重。请记住,许多类人生物会在洞穴中生成,所以如果你移除它们并且只保留大型生物,它们会在表面上变得非常常见!
2) SBU 会改变任何硬编码的生物限制吗?
不会。夜间生物仍然不会在白天生成。每个区块数量有限的生物仍然受到该限制。生物的分类池限制仍然适用。
3) SpawnWeight 文件中的行号重要吗?
不——它可以被复制。它的存在是为了帮助你在电子表格(如 LibreOffice Calc 或 Excel)中编辑配置数据时进行排序。例如,你可以按 mod:mob 排序,利用这一点快速创建一个新的 mod:mob:复制所有 “minecraft:skeleton” 行,然后将复制行中的 mod:mob 改为你想要添加的新生物,使其在所有骷髅现在出现的地方出现,并具有与骷髅当前相同的权重和群组大小。
4) 这是否意味着我可以让某种生物在黑森林或模组生物群系中常见,而在平原中完全不生成?
是的,是的,是的!绝对可以!
5) 这是否意味着我可以让豹猫在沙漠中生成?
只有当那片沙漠有一些树叶或草方块时才行。具有硬编码生成方块要求的生物仍然需要它们的生成方块。如果你将带有其生成方块的结构添加到原本敌对生物群系中,它们会在那些结构处生成。
5) 生成权重是如何工作的?
假设你有 3 种生物,生成权重分别为 10、30 和 50。Minecraft 将它们求和得到 90。它掷一个 90 面的骰子。然后它尝试生成掷出的 mod:mob。当 Mojang 程序员知道一个生物群系只有一种生物时,他们可能会使用生成权重 1。这意味着生成表总和为 1,Minecraft 掷一个 1 面的骰子。基本上,在这种情况下,1 与 10 或 100 相同。但当你添加一个带有新生物和生成权重 10 的模组时,现在你得到 1+10 = 11,Minecraft 掷一个 11 面的骰子。而默认生物从 100% 的出现率降到了 1/11(约 9%)的出现率。但是等等……这也可能导致一种情况:所有生成上限槽位都被其他生物占据,然后在它们死亡或消失之前,任何不常见的生物都不会出现。
接下来是什么?发布计划
除非我收到新的功能请求,否则它现在已经功能完整了。
我希望在那之后这将是我的第一个 Fabric 模组。第一次和第二次尝试将其制作为 fabric 模组都失败了。但我认为第三次尝试(在秋天之前)会成功。我一直在做一些较小的 fabric 模组来练手。
赞助者支持者
Spawn Balance Utility 目前没有支持者。它可以在 Curseforge 和 Github 上免费获取。我们的许多模组现在都得到了支持,这使它们可以用于任何替代模组加载器。
你可以通过下面的链接加入我们的 Discord 服务器。
常见问题
Spawn Balance Utility 支持哪些 Minecraft 版本?
Spawn Balance Utility 支持 Minecraft Java 版 1.16.2–1.21.11,共 30 个版本,可用的加载器:Fabric / Forge。下载时注意选择和你游戏版本一致的文件。
Spawn Balance Utility 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
MacTso 的其他作品
查看全部 →Bee Fix
修复蜜蜂相关漏洞
Fix Experience Bug (now with FABRIC and FORGE versions)
修复切换维度时经验值消失的问题。
Spawner Bug Fix
修复了末影人刷怪笼因 MC-189565 漏洞导致的卡顿问题。
Claim Chunk
允许玩家认领区块


评论
登录后评论和评分