Mineuniverse
Log in Register
Mods

RandomLib

A library to create customizable random pools. Originally from the oneblock mod.
by NaturaSpell
Download Claim this project
2,707,400 downloads
0 likes
Updated Jun 30, 2026
0 hypes

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.

<T extends ExtraData> RandomLibUtils.setup(ResourceLocation registryKey, Supplier<T> extra, Consumer<Map<String, RandomPool<T>>> afterDeserialization)

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.setup
extraDataCommand 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: 

 

 

 

randomlib-1.16.x-1.1.0.jar
MC Client, 1.16.5, Forge, Server
Beta 2024-12-26 Get

More from NaturaSpell

Progressive Aggressivity
916
Dimensional Conduit
747
Quests Additions (Fabric)
4,609,142
Teams Stages
440,628
One Block Plus
3,768,754
Filtered Chests
3,320,385

You Might Also Like

Vivecraft
A Minecraft VR mod on a loader of your choice!
9,988,339
Athena
A crossplatform (Forge/Fabric) solution to connected block textures for 1.19.4+
99,799,527
Lodestone
A collection of code used throughout projects under the Lodestar team.
9,914,417
TheDragonLib
A library for most of sokratis12GR's Mods
9,910,232
Multi Mob Library
A library mod containing essential files for Daveyx0's mob mods
9,892,767
FTB Library (Forge) (Legacy)
FTB Library is a library mod that is used for some of our mods.
98,265,314