promotional bannermobile promotional banner

Randomized Block & Mob Drops

This mod randomizes all block and mob drops in Minecraft — including modded ones.

File Details

RBMD 2.0.0

  • R
  • Mar 19, 2026
  • 12.89 KB
  • 21
  • 1.21.1
  • NeoForge

File Name

rbmd-2.0.0.jar

Supported Versions

  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:rbmd-1332736:7781682"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

Changelog — Randomized Block & Mob Drops (RBMD)


[2.0.0] — 2026-03-19 — NeoForge 1.21.1 Port

🚀 New Features

  • Plug & play — the randomized datapack now generates and reloads automatically on world load. No commands needed to get started.
  • /rbmdreshuffle — new command to re-randomize drops with a fresh random seed, then auto-reload.
  • /rbmdreshuffle <seed> — re-randomize with a specific seed. Share it with friends so everyone gets the same drops.
  • All commands now auto-trigger a datapack reload — no need to manually run /reload after /rbmdmakepack or /rbmdreshuffle.

🔧 Fixes

  • Fixed the core bug causing 0 loot tables to be written: Minecraft 1.21 renamed the resource folder from loot_tables/ to loot_table/ (no S). The old path returned empty results silently.
  • Switched from System.out.println to a proper SLF4J logger ([RBMD]) — log output is now visible in latest.log and debug.log.
  • Fixed ServerStartedEvent not firing on the integrated client (singleplayer). Switched to ServerStartingEvent, which works correctly for both singleplayer and dedicated servers.
  • Fixed reloadResources() compile error — NeoForge 1.21.1 requires Collection<String> (pack IDs), not Collection<Pack>. Fixed with Pack::getId mapping.
  • Removed dependency on ForgeRegistries (removed in NeoForge 1.21.1). Now uses BuiltInRegistries.ITEM for all item lookups and iteration.
  • BuiltInRegistries.ITEM.get() returns AIR for unknown item IDs instead of null — added an explicit AIR guard to prevent remapping entries to air.
  • Errors during individual loot table processing are now logged with the file name instead of being silently swallowed.

⚙️ Technical / Internal

  • Ported from Forge 1.20.1 → NeoForge 1.21.1.
  • Constructor now accepts IEventBus modBus as required by NeoForge.
  • Game events (ServerStartingEvent, RegisterCommandsEvent) registered via NeoForge.EVENT_BUS.register(this).
  • pack_format bumped from 15 to 26 (Minecraft 1.21.1).
  • Permutation class gained clearAndSetSeed(long) to support custom seeds from /rbmdreshuffle.
  • Removed /rbmdreload command — replaced by the auto-reload built into /rbmdreshuffle and /rbmdmakepack.