截图
介绍

MobStacker 是一款用于优化实体处理的 Minecraft 性能模组,可解决原版和模组环境中常见的性能问题。MobStacker 会智能地将近距离的同类生物“堆叠”起来,从而大幅降低服务器负载并提升客户端性能,同时不影响游戏机制。
需要:Dungeon Config 和 Fabric API。MobStacker 仅需安装在服务器端:玩家无需安装即可加入。
注意:MobStacker 会保留堆叠实体中的所有战利品和生物属性。已命名的生物(通过命名牌命名)不会被堆叠,以保持其独特性。
主要优点
- 提升服务器性能:大幅降低实体处理开销。
- 提升客户端 FPS:减轻客户端渲染负担。
- 优化网络流量:减少实体数据传输。
- 游戏画面更整洁:减少生物密集区域的视觉杂乱。
- 降低内存占用:减少整体内存使用量。
性能提升
实际性能提升会因服务器配置、玩家数量和模组配置而异;在以下环境中,MobStacker 尤其能带来显著改善:
- 生物密度较高
- 安装了大量添加实体的模组
- 玩家群体规模大且活跃
🔗 注意:
- MobStacker 内置可配置的生成上限模块,可减少每个区块中的生物生成数量。
功能
| 功能 | 说明 |
|---|---|
| 智能堆叠 | 自动合并可配置半径内的相同类型生物 |
| 严格匹配 | 仅堆叠可见变种和已保存数据均相同的生物,包括其他模组添加的数据(精英词缀、等级、所有者等) |
| 自定义堆叠 | 设置首选的最大堆叠数量,可全局设置或按规则设置 |
| 灵活的生命值管理 | 可配置堆叠生命值、死亡机制和批量击杀选项 |
| 掉落物按数量倍增 | 剪毛、刷扫和自然掉落物(鸡蛋、鳞甲等)会随堆叠数量增加 |
| 批量繁殖 | 喂食一次即可繁殖堆叠中的多只生物 |
| 堆叠战斗 | 可选择让堆叠生物的近战伤害按堆叠数量倍增 |
| 选择性堆叠 | 排除指定实体、实体标签或整个模组 |
| 规则 | 针对指定生物、维度、生物群系、区块或区域更改任意设置 |
| 领地支持 | 玩家可以为自己的领地创建规则(FTB Chunks、Open Parties and Claims) |
| 拆分堆叠 | 分离器物品可将一只生物从堆叠中分离出来;同化器物品可切换生物是否能够堆叠 |
| 堆叠名称 | 按玩家本地化显示堆叠标签(例如“僵尸 x5”),且不会将标签保存到生物身上 |
| 游戏内配置 | 所有选项均可在 Dungeon Config 设置界面中编辑 |
不会堆叠的生物
为保持游戏玩法不变,MobStacker 不会对以下生物进行堆叠:
- 幼年生物、没有 AI 的生物以及有自定义名称的生物
- 正在骑乘、被骑乘或被拴住的生物,装有鞍的生物以及穿戴护甲的生物
- 已驯服或有主人的生物、马及其近亲,以及从桶中放出的生物
- 携带物品的生物、处于繁殖模式的动物以及玩家建造的铁傀儡
- 正在进行的袭击中的掠夺者和巡逻队长
- 有职业、床或集合点的村民(无业村民和傻子村民可以堆叠;村民一旦认领工作站或床,就会立刻离开堆叠,因此交易大厅、繁殖场和铁傀儡农场仍能正常运作)
- 手持必定掉落装备的生物
- Boss(属于
#c:bosses或基础生命值至少达到bossHealthThreshold的任何生物),除非启用了stackBosses - 属于
#mobstacker:unstackable实体类型标签的任何生物;默认包括末影龙、凋灵、监守者、远古守卫者、流浪商人、悦灵、蜜蜂、恼鬼、快乐恶魂、铜傀儡和嘎吱怪
配置
配置文件位于 config/mobstacker/mobstacker.json5,也可以在游戏内通过 Dungeon Config 界面进行编辑。旧版 mobstacker.json 配置(包括生物组和区块覆盖设置)会在首次启动时自动导入。
堆叠
| 选项 | 描述 | 默认值 |
|---|---|---|
maxMobStackSize |
单个堆叠中生物的最大数量(1 – 4096) | 16 |
stackRadius |
生物尝试堆叠的半径,单位为方块 | 6.0 |
stackCheckInterval |
每个生物检查可加入堆叠的间隔,单位为刻 | 20 |
strictDataComparison |
仅堆叠已保存数据也相匹配的生物,包括模组添加的数据 | true |
matchSoundVariants |
还要求猪、牛、鸡、狼和猫的叫声相同 | false |
死亡与战利品
| 选项 | 描述 | 默认值 |
|---|---|---|
killWholeStackOnDeath |
一次性杀死整个堆叠,并为其中每个生物掉落战利品和经验值 | false |
killBatchSize |
整个堆叠不会同时死亡时,每次击杀死亡的生物数量。战利品会按相应数量倍增 | 1 |
stackHealth |
合并堆叠生物的生命值;整个堆叠会共同承受伤害。启用后也会启用 killWholeStackOnDeath |
false |
multiplyShearDrops |
剪毛或刷扫堆叠时,会对其中每个生物执行操作并倍增掉落物 | true |
scaleToolDamage |
对堆叠使用剪刀或刷子时,工具损耗会按对每个生物分别使用计算 | true |
damageWeaponPerHit |
整个堆叠同时死亡时,每次攻击都会按堆叠中的每个生物计算武器损耗 | false |
multiplyGiftDrops |
倍增生物自行产生的掉落物(鸡蛋、犰狳鳞甲……) | true |
instantKillWholeStack |
/kill 命令和掉出世界会移除整个堆叠 |
true |
繁殖
| 选项 | 描述 | 默认值 |
|---|---|---|
breedBatchSize |
一次喂食可以让一群生物中的多少只进行繁殖。1 保持原版繁殖行为 |
1 |
breedCooldown |
一群生物再次进行批量繁殖前的刻数 | 6000 |
战斗
| 选项 | 描述 | 默认值 |
|---|---|---|
stackOutgoingDamage |
将一群生物的近战伤害乘以其数量 | false |
maxDamageMultiplier |
stackOutgoingDamage 可应用的最大伤害倍率 |
16 |
物品
| 选项 | 描述 | 默认值 |
|---|---|---|
enableSeparator |
用分离器右键点击一群生物会分离出一只生物(被分离的生物不会再次堆叠) | false |
consumeSeparator |
决定分离器物品在使用时是否被消耗(或损坏) | true |
separatorItem |
指定用作分离器的物品 | "minecraft:diamond" |
enableAssimilator |
用同化器右键点击生物可切换其是否可堆叠 | false |
consumeAssimilator |
决定同化器物品在使用时是否被消耗(或损坏) | true |
assimilatorItem |
指定用作同化器的物品 | "minecraft:emerald" |
显示
| 选项 | 描述 | 默认值 |
|---|---|---|
showStackNames |
在堆叠的生物上方显示堆叠数量。仅发送给玩家,绝不会保存在生物上 | true |
alwaysShowStackNames |
始终显示堆叠数量,而不仅仅是在看向生物时 | false |
stackNameFormat |
标签格式。{name} 是生物在各玩家语言中的名称,{count} 是堆叠数量 |
"{name} x{count}" |
过滤器
| 选项 | 描述 | 默认值 |
|---|---|---|
ignoredEntities |
不参与堆叠的实体列表 | ["minecraft:ender_dragon", "minecraft:vex"] |
ignoredMods |
其实体不参与堆叠的模组 ID 列表 | ["corpse", "cobblemon"] |
stackVillagers |
允许无职业村民和傻子村民堆叠 | true |
stackBosses |
允许 Boss 堆叠 | false |
bossHealthThreshold |
基础最大生命值至少达到此数值的未标记生物视为 Boss。0 表示关闭此功能 |
150.0 |
生物上限
| 选项 | 描述 | 默认值 |
|---|---|---|
enableMobCapOverrides |
用下方的值替换原版按类别划分的生物上限 | true |
monsterMobCap |
怪物(原版 70) | 25 |
creatureMobCap |
动物(原版 10) | 5 |
ambientMobCap |
蝙蝠(原版 15) | 7 |
axolotlsMobCap |
美西螈(原版 5) | 2 |
undergroundWaterCreatureMobCap |
发光鱿鱼(原版 5) | 2 |
waterCreatureMobCap |
鱿鱼和海豚(原版 5) | 2 |
waterAmbientMobCap |
鱼(原版 20) | 8 |
规则与领地
| 选项 | 描述 | 默认值 |
|---|---|---|
claimRules |
允许非管理员为其本人或团队已认领的区块创建规则 | true |
maxRulesPerTeam |
一名玩家或一个团队最多可拥有的规则数量 | 10 |
playerRules.<setting> |
玩家可以在自己领地的规则中更改哪些设置 | 堆叠、最大堆叠数量、数据/声音匹配、堆叠名称和村民堆叠 |
规则
规则会更改某些生物或某些位置的设置,例如在你的刷怪塔中设置更大的堆叠数量,或在 Boss 竞技场中完全禁用堆叠。一条规则可以匹配:
- 生物:像
minecraft:zombie这样的 ID、像#minecraft:undead这样的标签,或像@alexsmobs这样的整个模组(留空 = 所有生物) - 维度:例如
minecraft:the_nether(留空 = 全部) - 生物群系:像
minecraft:plains这样的 ID 或像#minecraft:is_ocean这样的标签(留空 = 全部) - 位置:区块或方块区域,例如
minecraft:overworld 0 0 63 63(留空 = 所有地方)
在一条规则内部,上述各节中的每个设置(模组/实体的过滤器、生物上限和检查间隔除外)都可以被覆盖,或保留为全局,并且堆叠本身也可以关闭。当多条规则匹配同一个生物时,列表中靠前的规则生效。规则按世界保存在 serverconfig/mobstacker-rules.json 中。
安装 FTB Chunks(配合 FTB Teams)或 Open Parties and Claims 后,非管理员的玩家也可以创建规则。他们的规则仅在团队已认领的区块内生效,并且只能更改服务器允许的设置。
命令
所有命令都以 /mobstacker 为前缀。除 /mobstacker rule 外,其他所有命令都需要管理员权限(等级 2)。
通用
# Reload the config from disk
/mobstacker reload
# Show stack information for a mob
/mobstacker info [entity]
# Set stack size for specific entity
/mobstacker setStackSize [entity] [size]
配置命令
# 切换整组生物死亡
/mobstacker stackerConfig killWholeStackOnDeath [true|false]
# 切换生命值叠加
/mobstacker stackerConfig stackHealth [true|false]
# 设置最大堆叠数量
/mobstacker stackerConfig maxStackSize [value]
# 设置堆叠半径
/mobstacker stackerConfig stackRadius [value]
# 设置生物检查堆叠的频率(刻)
/mobstacker stackerConfig stackCheckInterval [value]
# 切换堆叠生物的近战伤害倍率
/mobstacker stackerConfig stackOutgoingDamage [true|false]
# 设置每次击杀死亡的生物数量
/mobstacker stackerConfig killBatchSize [value]
# 设置批量繁殖数量和冷却时间
/mobstacker stackerConfig breedBatchSize [value]
/mobstacker stackerConfig breedCooldown [value]
# 切换工具和武器耐久消耗缩放
/mobstacker stackerConfig scaleToolDamage [true|false]
/mobstacker stackerConfig damageWeaponPerHit [true|false]
# 切换村民堆叠
/mobstacker stackerConfig stackVillagers [true|false]
# 切换分离器功能
/mobstacker stackerConfig separator enableSeparator [true|false]
# 切换分离器消耗
/mobstacker stackerConfig separator consumeSeparator [true|false]
# 设置分离器物品
/mobstacker stackerConfig separator separatorItem [item_id]
# 切换吸收器功能
/mobstacker stackerConfig assimilator enableAssimilator [true|false]
# 切换吸收器消耗
/mobstacker stackerConfig assimilator consumeAssimilator [true|false]
# 设置吸收器物品
/mobstacker stackerConfig assimilator assimilatorItem [item_id]
实体与模组管理
# 忽略指定实体
/mobstacker ignore entity [entity_id]
# 忽略某个模组的所有实体
/mobstacker ignore mod [mod_id]
# 将实体从忽略列表中移除
/mobstacker unignore entity [entity_id]
# 将模组从忽略列表中移除
/mobstacker unignore mod [mod_id]
注意:可以为实体添加标签 {StackData: {CanStack:0b}},以禁止其堆叠。也可以通过数据包将实体类型添加到 #mobstacker:unstackable 标签中。
生物上限管理
# 切换生物上限覆盖
/mobstacker mobCapConfig enableMobCapOverrides [true|false]
# 设置某个生物类别的上限
/mobstacker mobCapConfig monsterMobCap [value]
/mobstacker mobCapConfig creatureMobCap [value]
/mobstacker mobCapConfig ambientMobCap [value]
/mobstacker mobCapConfig axolotlsMobCap [value]
/mobstacker mobCapConfig undergroundWaterCreatureMobCap [value]
/mobstacker mobCapConfig waterCreatureMobCap [value]
/mobstacker mobCapConfig waterAmbientMobCap [value]
规则管理
聊天中的规则页面可以点击操作,因此大部分设置无需输入完整命令即可完成。
# 列出规则(也可以直接使用 /mobstacker rule)
/mobstacker rule list
# 创建或删除规则
/mobstacker rule add [name]
/mobstacker rule remove [rule]
# 打开规则页面
/mobstacker rule [rule]
# 启用或禁用规则
/mobstacker rule [rule] enable
/mobstacker rule [rule] disable
# 更改多个规则匹配时的优先顺序(仅限管理员)
/mobstacker rule [rule] priority [position]
# 编辑规则适用的生物、维度和生物群系
/mobstacker rule [rule] mob [add|remove] [mob_id|#tag|@mod_id]
/mobstacker rule [rule] mob clear
/mobstacker rule [rule] dimension [add|remove] [dimension_id]
/mobstacker rule [rule] dimension here
/mobstacker rule [rule] biome [add|remove] [biome_id|#tag]
/mobstacker rule [rule] biome here
# 为规则添加地点
/mobstacker rule [rule] place chunk [chunkX] [chunkZ]
/mobstacker rule [rule] place chunks [radius]
/mobstacker rule [rule] place area [x1] [z1] [x2] [z2]
/mobstacker rule [rule] place remove [number]
/mobstacker rule [rule] place clear
# 查看和更改规则设置
/mobstacker rule [rule] settings [page]
/mobstacker rule [rule] set [setting] [value]
/mobstacker rule [rule] reset [setting]
API
其他模组可以通过 MobStackerAPI 进行集成:
getStackSize(mob):一个生物代表多少个生物addMergingCondition(...):两个生物合并必须满足的额外条件addDeathHandler(...):当堆叠生物死亡且堆叠中剩余生物取而代之的时候运行addEntityDataModifiers(...):调整替代死亡或爆炸的堆叠生物的生物addEntityDataModifiersOnSeparation(...):调整用分离器分离出来的生物registerClaimProvider(...):添加对另一个领地模组的支持
附加说明
- 生物会定期寻找附近的堆叠加入(每
stackCheckInterval刻)。 - 当堆叠的苦力怕爆炸或末影人拾取方块时,只有那一个生物会这样做;堆叠中剩余的生物会留在原地。
- 堆叠生物会在名称中显示堆叠数量(例如“Zombie x5”),并以每个玩家自己的语言显示。
- 兼容各种实体类型:动物、怪物和NPC。
请将问题报告到 github 上的问题追踪器。
常见问题
Mob Stacker Ind. 支持哪些 Minecraft 版本?
Mob Stacker Ind. 支持 Minecraft Java 版 1.20.1–26.3,共 12 个版本,可用的加载器:Fabric / Forge / NeoForge / Quilt。下载时注意选择和你游戏版本一致的文件。
Mob Stacker Ind. 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / Forge / NeoForge / Quilt,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
frikinjay 的其他作品
查看全部 →Let Me Despawn
通过调整生物消失规则提升性能,告别那些烦人的意外永久存在生物。
Almanac Lib
一个独立于加载器的前置库,包含模组间复用的共享代码,并修复了空 NBT 问题。
Almanac
Almanac 是我的模组使用的一个前置库,主要提供跨加载器通用的共享代码,供多个模组复用,以避免代码重复。
More Villagers: Re-employed
新增多种村民职业和工作站,是原版 More Villagers 模组的移植版。

评论
登录后评论和评分