随机方块与生物掉落

随机方块与生物掉落

这个模组随机化了《我的世界》中所有方块和生物的掉落物——包括模组添加的内容。

杂项

🎲 随机方块与生物掉落 (RBMD)

Minecraft 中每个方块和生物的掉落物都被随机化了——包括原版和模组内容。只需安装并游玩即可。


📖 功能简介

  • 每个方块和生物的掉落物都会被随机替换为完全不同的物品
  • 掉落物保持一致——在你的世界中,同一个方块总会掉落相同的物品
  • 每个世界都有自己独立的随机化配置,并会被保存,确保跨游戏会话不会改变
  • 自动兼容模组中的方块、生物和物品
  • 只有自然可掉落的物品才会进入随机池——不会出现无法获得的物品
  • 如果你添加、移除或更新了模组,数据包会在下次加载世界时自动重建

⚙️ 运作方式

加载一个世界。RBMD 会自动:

  1. 扫描所有战利品表,找出每个自然可获得的物品
  2. 使用你的世界种子对它们进行随机打乱
  3. 写入一个数据包并重新加载——掉落物立即生效

如果你更改了配置或模组列表,RBMD 会检测到变化,并在下次加载世界时使用相同的种子重建数据包。无需手动操作。

🔁 想要全新的掉落物?随时运行 /rbmdreshuffle 即可。


📜 命令

命令 描述
/rbmdhelp 在游戏中显示帮助信息
/rbmdreshuffle 使用新种子重新随机化
/rbmdreshuffle <seed> 使用指定种子重新随机化
/rbmdfind <item> 查询哪个方块或生物会掉落该物品
/rbmdmob <mob> 查询该生物现在会掉落什么

/rbmdfind 和 /rbmdmob 都支持标签补全——输入 minecraft: 或 mymod: 时,会自动提示匹配的物品和生物。

调试命令(仅限管理员)

命令 描述
/rbmddebug 如果掉落物看起来异常,强制重建数据包
/rbmdcheck 验证黑名单是否正常运作——显示随机池大小并标记问题
/rbmddump 将所有掉落物变更导出到 datapacks/rbmd_randomizer/rbmd_dump.txt

💡 使用 /rbmddump 查看所有变更,并将物品 ID 直接复制到黑名单配置中。


⚙️ 配置

文件:config/rbmd-common.toml

配置更改会在下次加载世界时自动检测——除非你想要完全全新的掉落物,否则无需运行 /rbmdreshuffle。

选项 默认值 描述
randomize_blocks true 随机化方块掉落物
randomize_mobs true 随机化生物掉落物
randomize_silk_touch true 随机化精准采集的掉落物
item_blacklist (见下文) 完全排除在随机池之外的物品
mob_blacklist (空) 掉落物永远不会被随机化的生物
mod_blacklist (空) 通过模组 ID 排除某个模组中的所有物品和生物
chaos_mode false 跳过所有过滤器——见下文说明
reset_welcome_message false 下次加入时再次显示欢迎消息

物品黑名单默认项——因无法自然获得而被排除:bedrock(基岩)、barrier(屏障)、command_block(命令方块)、chain_command_block(连锁命令方块)、repeating_command_block(循环命令方块)、structure_block(结构方块)、structure_void(结构空位)、jigsaw(拼图方块)、light(光源方块)、debug_stick(调试棒)、knowledge_book(知识之书)、bundle(收纳袋)。删除任何条目即可将其重新加入随机池。

黑名单格式——使用完整的注册表 ID:

item_blacklist = ["minecraft:diamond", "mymod:special_item"]
mob_blacklist  = ["minecraft:zombie", "mymod:boss"]
mod_blacklist  = ["mymod", "anothermod"]

🔴 混沌模式

将 chaos_mode 设置为 true 会跳过所有过滤步骤——包括黑名单、刷怪蛋过滤器和自然掉落过滤器。所有已注册的物品都会进入随机池。开启混沌模式加入游戏时,聊天栏中会出现一条警告。

⚠️ 在混沌模式下,某些物品可能变得无法获得。请自行承担使用风险。


🔧 注意事项

  • 使用错误的工具 = 不掉落物品——与原版机制相同。需要使用镐子开采的方块,如果不使用镐子就不会掉落任何物品。
  • 相同种子 = 相同掉落物——共享相同种子的两个世界将具有完全相同的随机化结果。可使用 /rbmdreshuffle 来覆盖。
  • 每个世界独立运行——每个世界都会在 datapacks/rbmd_randomizer/ 中保存自己独立的种子和配置哈希值。在不同世界之间切换互不影响。
  • 添加或移除模组——会自动检测。由于随机池大小发生变化,掉落物会略有变动,但会复用相同的种子,因此现有物品会尽可能保持一致。
  • 精准采集——默认会被随机化。如果你希望精准采集始终掉落原始方块,请将 randomize_silk_touch 设置为 false。
  • 使用硬编码掉落物的模组——跳过战利品表系统的生物仍会被覆盖,因为模组会在每次生物死亡时触发一个事件钩子。
  • 调试——所有输出都会在 latest.log 中带有 [RBMD] 标签。使用 /rbmddump 可导出包含所有掉落物变更的完整易读列表。