RandomLib
Modby NaturaSpell
A library to create customizable random pools. Originally from the oneblock mod.
Downloads
2,602,191
Type
Mod
CurseForge ID
597890
Last Updated
Apr 9, 2026
Description
Originally a part of the One Block Plus mod, RandomLib is now a standalone library allowing your mod to create config files for weighted random generation.
Developer documentation. (WIP)
(This will likely be replaced later by a github repository)
RandomLibUtils.setup during FMLCommonSetupEvent to setup your config files.
As an example, your config files will be generated in configs/oneblock/phases/ folder if registryKey = oneblock:phases.
extra is a supplier for an instance of an ExtraData implementation. This allows you to save more information about a random pool, in addition to the weighted items.
Once your config files are deserialized, they are saved in a map with their file name as a key but you likely would like to store them in a more convenient structure for your mod using the afterDeserialization consumer.
RandomLibUtils.registerCommand during FMLServerStartingEvent to setup a command to manage config files generated by RandomLib.
RandomLibUtils.registerCommand(FMLServerStartingEvent event, String commandname, ResourceLocation registryKey) RandomLibUtils.registerCommand(FMLServerStartingEvent event, String commandname, ResourceLocation registryKey, ExtraDataCommand<? extends ExtraData> extraDataCommand) registryKey is the same as for RandomLibUtils.setupextraDataCommand completes brigadier for your ExtraData implementation.
RandomPool#getExtra() to get your deserialized ExtraData.
RandomPool#getRandom()#generateAndReplace(ServerWorld, BlockPos) to destroy block and generate an item from the random pool in the given world at the given position.
RandomPool#getRandom()#generate(ServerWorld, BlockPos) to generate an item from the random pool in the given world at the given position.
RandomPool#getRandom()#vgenerate(RandomContainer, ServerWorld, BlockPos, ItemStack) to generate an item from the random pool for an object implementing RandomContainer (likely a tile entity) in the given world at the given position and for the given held item (if any).
User documentation. (WIP)
Help command : /<RandomLib command name for this mod> help
example:

Screenshots
Similar Mods
EnderChests
Public, Personal, and Team EnderChests and EnderBags
Utilitarian
A bunch of different functionality, neatly packaged in different modules that can be disabled and enabled depending on t...
Disenchanter (The Disenchanter Mod)
A small Mod adding a block to disenchant Items
Dynamic View[Forge]
Dynamically changes chunk view(and simulation) distance based on load
Initial Inventory
Allows you to set an Initial Inventory for a player using ZenScript
It Takes a Pillage
The Pillager civilization has evolved.