BetterRNG is an advanced, flexible Random Number Generator (RNG) system designed for Minecraft Paper servers. It completely overhauls the way server rewards and loot drops are handled. With support for multiple external plugin integrations, dynamic event-based triggers, and an independent Buff system, BetterRNG allows server owners to create deeply customized reward experiences.
- Diverse Loot Types: Support for Vanilla items, EXP, Commands, MythicMobs drops, and MMOItems.
- Dynamic Event Triggers: Passively listen to server events and trigger specific LootSets.
- Basic Aliases: Easy setup for common events like
BLOCK_BREAK,ENTITY_DEATH,MYTHICMOB_DEATH, andPLAYER_JOIN. - Advanced Reflection: Define custom triggers for any Bukkit/Paper event or third-party plugin event (e.g., triggering a LootSet when a player catches a fish).
- Basic Aliases: Easy setup for common events like
- Buff System (Multipliers): Boost players' RNG chances using permanent or temporary multipliers. Great for VIP ranks, server-wide boost events, or consumable boosters.
- In-game GUI: Easily view and inspect available LootSets and rewards directly in-game.
- High Performance: Built natively for modern Java (Java 25) and PaperMC.
- Java: 25 or higher
- Server: PaperMC (or forks) API 1.21.x+
- Dependencies:
- MythicMobs (Required)
- MMOItems (Optional - for MMOItems integration)
- MythicLib (Optional - required if using MMOItems)
- Download the latest
BetterRNG.jarrelease. - Stop your server.
- Place the
BetterRNG.jarfile into your server'splugins/folder. - Ensure you have the required dependencies (MythicMobs) installed.
- Start the server to generate the default configuration files.
- Configure the plugin in
plugins/BetterRNG/to your liking, then use/rng reloadin-game or console.
BetterRNG is highly configurable. When you start the plugin for the first time, it will generate several files and folders:
The main configuration file. You can toggle features such as the debug mode. Enable debug: true when you are setting up LootSets and drop rates to monitor calculations in the server console, and set it to false for a clean production environment.
This is where the magic happens. You define which server events trigger which LootSets.
- Basic Example: Using aliases like
BLOCK_BREAKfor Mining Rewards. - Advanced Example: Using Java Reflection to target specific plugin events.
Events:
mining_stone_reward:
type: "BLOCK_BREAK"
conditions:
material: "STONE"
lootset: "Miner_Rewards"This folder contains your individual LootSets. A LootSet represents a table of possible rewards (items, commands, etc.) with their respective chances.
Customize the look and feel of the in-game LootSet viewer GUI and all plugin messages sent to players.
The primary command alias is /rng.
Permission required for all commands: betterrng.admin
/rng reload- Description: Reloads all configuration files and LootSets.
/rng give <player> <lootset>- Description: Forcibly rolls and gives the rewards from a specific LootSet to the targeted player.
/rng gui- Description: Opens the interactive GUI to view available LootSets (Player only).
/rng buff check <target>- Description: Checks the total, permanent, and temporary RNG multipliers of a player.
/rng buff add <target> <multiplier> [duration_seconds]- Description: Adds an RNG multiplier to a player. If
duration_secondsis omitted, the multiplier is permanent.
- Description: Adds an RNG multiplier to a player. If
/rng buff remove <target>- Description: Clears all permanent and temporary multipliers from a player, resetting them to 1.0x.
The BetterRNG plugin uses a reflection-based event listener that allows you to hook into virtually any event thrown on the server without requiring a hard API dependency. Check events.yml for instructions on configuring Advanced Mode triggers using exact Class Names, method paths, and expected values.
Author: VoChiDanh