RandomLib
Modby NaturaSpell
A library to create customizable random pools. Originally from the oneblock mod.
Type
Mod
CurseForge Downloads
2,796,887
CurseForge ID
597890
Last Updated
Sep 5, 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:

Recommended Gear
AffiliateHardware and extras that pair well with this mod.
As an Amazon Associate I earn from qualifying purchases.
Screenshots
Similar Mods
Shield Expansion
Adds tiers and parrying to shields for more interesting combat!
Lollipop
A library mod for owmii's mods.
EnderChests
Public, Personal, and Team EnderChests and EnderBags
Stylish Effects
Status effect display overhaul: Display them in any menu! And way more compact.
Enchanting Infuser
An all-new enchanting table for choosing your enchantments at fair prices without the randomness.
AeroBlender
AeroBlender is a library mod dependent on TerraBlender, for adding biomes in a simple and compatible manner with Aether'...