跳到正文

Mob Stacker Ind.

作者:frikinjay

通过合并附近的生物来大幅提升性能,减少世界中的实体数量。理论上性能可提升 2147483646 倍。

收藏

截图

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

alt An entity stacked to almost maximum integer limit

Discord Server Invite Link

MobStacker 是一款用于优化实体处理的 Minecraft 性能模组,可解决原版和模组环境中常见的性能问题。MobStacker 会智能地将近距离的同类生物“堆叠”起来,从而大幅降低服务器负载并提升客户端性能,同时不影响游戏机制。

需要:Dungeon Config 和 Fabric API。MobStacker 仅需安装在服务器端:玩家无需安装即可加入。

注意:MobStacker 会保留堆叠实体中的所有战利品和生物属性。已命名的生物(通过命名牌命名)不会被堆叠,以保持其独特性。

主要优点

  1. 提升服务器性能:大幅降低实体处理开销。
  2. 提升客户端 FPS:减轻客户端渲染负担。
  3. 优化网络流量:减少实体数据传输。
  4. 游戏画面更整洁:减少生物密集区域的视觉杂乱。
  5. 降低内存占用:减少整体内存使用量。

性能提升

实际性能提升会因服务器配置、玩家数量和模组配置而异;在以下环境中,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 的其他作品

查看全部 →