
LuckyEngine
A modern and highly configurable LuckyBlock/luckyblocks plugin for Paper/Spigot 1.21.x featuring a dynamic luck system, powerful in-game reward editor, multi-language support, PlaceholderAPI integration, and 14 unique reward types.
Список изменений
v2.1 — Multi-Action Rewards, Economy & Events
A major update focused on reward flexibility, Lucky Coins, server-wide events, challenges, leaderboards, and performance improvements.
✨ Multi-Action Rewards
-
Added a new
MULTI_ACTIONreward type that lets you combine multiple actions into a single reward. -
Create rewards that can, for example, give diamonds, run a money command, and send an action bar message all at once.
-
Each action uses the same configuration fields as its standalone reward type.
-
Supported action types:
ITEMCOMMANDXPMESSAGEACTIONBARTITLESOUNDFIREWORKS
-
Added a dedicated Actions Editor GUI for adding, editing, and removing actions with guided chat prompts.
-
Added a "+ Add Another Action" button to every reward type.
- Converts the reward you are currently editing into the first action of a
MULTI_ACTIONreward. - Your existing configuration is preserved, so you never have to recreate a reward from scratch.
- Converts the reward you are currently editing into the first action of a
-
Added two ready-made examples to
rewards.yml:diamonds_and_moneylegendary_jackpot
💰 Lucky Coins
Lucky Coins are now a built-in currency earned by breaking Lucky Blocks.
-
Players earn coins based on the tier of the reward they receive.
-
Default rewards:
- Legendary: 10 coins
- Good: 5 coins
- Neutral: 2 coins
- Bad: 1 coin
-
Check your balance with
/lb coins. -
Added a Lucky Coins button to the Main Menu.
-
Configurable through:
coins.enabledcoins.per-break.*coins.notify-player
🛒 Coin Shop
Added a complete shop system for spending Lucky Coins.
-
New
/lb shopcommand. -
Shop is also accessible directly from the Main Menu.
-
All shop items are configured through
shop.yml. -
Add, remove, or reprice items without changing the plugin code.
-
Added four purchase types:
GIVE_LUCKY_BLOCK— gives a guaranteed Lucky Block rarity without RNG.ADD_LUCK— instantly increases the player's luck.GIVE_ITEM— gives an item with optional enchantments.RUN_COMMAND— executes a command for integrations with economy and other plugins.
-
Includes 8 default shop items:
- Rare Lucky Block
- Epic Lucky Block
- Legendary Lucky Block
- Small Luck Boost
- Large Luck Boost
- Diamonds
- Netherite
- Enchanted Sword
-
Added optional daily purchase limits for individual items.
-
Items automatically appear unavailable when:
- The player cannot afford them.
- The daily purchase limit has been reached.
🎉 Lucky Events
Added server-wide timed events that temporarily modify gameplay.
-
Start events with
/lb event start <name>or through the Events GUI. -
Events can apply:
- A global luck bonus.
- A global Lucky Coin multiplier.
- A configurable duration.
-
Added 3 default events:
- Double Luck Weekend — +30 Luck, 2x Coins, 1 hour.
- Coin Rush — 3x Coins, 15 minutes.
- Legendary Hour — +50 Luck, 1.5x Coins, 30 minutes.
-
Fully configurable through
lucky-events:inconfig.yml. -
Events automatically announce their start and end to the entire server.
-
Use
/lb event stopto end the active event early.
🎯 Daily & Weekly Challenges
Added challenges that reward players for completing different Lucky Block objectives.
-
7 challenges included by default.
-
Supported challenge types:
BREAK_BLOCKSGET_TIERREACH_COMBOEARN_COINS
-
Completing a challenge automatically awards Lucky Coins.
-
Added
/lb challengesto view challenge progress. -
Progress is displayed with a visual progress bar.
-
Supports:
DAILYWEEKLY
-
Challenge progress persists in
challenge_progress.yml. -
Goals, rewards, and reset periods are fully configurable.
🏆 Leaderboards
Added a dedicated leaderboard GUI with four separate rankings:
- All-Time Breaks
- Weekly Breaks
- Lucky Coins
- Highest Luck
Additional features:
/lb leaderboardand/lb top- Top 27 players displayed per leaderboard.
- Gold, silver, and bronze medal icons for the top 3.
- Automatic refresh every 5 minutes by default.
- Refresh interval configurable with
leaderboard.refresh-minutes. - Added a manual refresh button.
- Leaderboard data is cached to prevent unnecessary server load.
🎁 Lucky Chest
Added a new LUCKY_CHEST reward type.
- Opens a GUI containing multiple randomly selected rewards.
- The player chooses exactly one reward.
- All other rewards are discarded.
- Creates a more interactive alternative to standard RNG rewards.
- The number of choices is configurable with the
choicesfield. - Supports 2 or 3 choices.
🎨 Creative Mode
Lucky Blocks placed in Creative Mode are now fully functional.
- Players can place normal Lucky Blocks while in Creative.
- Previously, Creative placement created a non-functional decorative copy.
- The existing
creative-bypassoption still controls Creative-mode breaking. - When enabled, Creative players can break Lucky Blocks without triggering a reward.
- Useful for building, testing, and server setup.
🎁 Starter Reward Pack
Added a separate lightweight reward pack for smaller or more conservative servers.
-
New
rewards-starter.yml. -
Contains approximately 25 modest rewards.
-
Focused primarily on common and practical rewards.
-
Does not include:
- Legendary structures.
- Jackpot-style rewards.
- Complex
MULTI_ACTIONrewards.
-
The full
rewards.ymlstill contains 245 rewards.
To use the starter pack:
- Back up your existing
rewards.yml. - Rename
rewards-starter.ymltorewards.yml. - Run
/lb reload.
🖥️ Main Menu Improvements
The Main Menu has been expanded with the new v2.1 features.
Added access to:
- Lucky Coins
- Coin Shop
- Challenges
- Leaderboards
- Events
The Events button also displays an "Event Active!" indicator while an event is running.
Giving yourself a Lucky Block from the Main Menu now keeps the GUI open, allowing you to collect multiple rarities without reopening the menu.
🗄️ Optional Database Backend
Added an optional SQL backend for persistent player data.
-
Added
DatabaseManager. -
Supported databases:
- SQLite
- MySQL
-
SQLite requires no external database setup.
-
When enabled, the following data can be stored in SQL:
- Luck
- Lucky Coins
- Lucky Block breaks
-
Useful for BungeeCord/Velocity networks that share player data across multiple servers.
-
SQLite JDBC is bundled directly into the plugin.
New configuration:
database:
enabled: false
type: sqlite
sqlite-file: luckyblock.db
mysql:
host:
port:
name:
user:
password:
table-prefix:
🧩 New Commands
| Command | Permission | Description |
|---|---|---|
/lb leaderboard | luckyblock.use | Open the leaderboard |
/lb top | luckyblock.use | Open the leaderboard |
/lb challenges | luckyblock.use | View challenge progress |
/lb event | luckyblock.use | View active/available events |
/lb event start <name> | luckyblock.admin | Start a Lucky Event |
/lb event stop | luckyblock.admin | Stop the active Lucky Event |
/lb coins | luckyblock.use | Check your Lucky Coin balance |
/lb shop | luckyblock.use | Open the Coin Shop |
⚙️ Configuration Additions
database:
enabled: false
type: sqlite
sqlite-file: luckyblock.db
mysql:
host:
port:
name:
user:
password:
table-prefix:
coins:
enabled: true
notify-player: true
per-break:
great: 10
good: 5
neutral: 2
bad: 1
leaderboard:
refresh-minutes: 5
lucky-events:
double_luck_weekend:
# ...
coin_rush:
# ...
legendary_hour:
# ...
challenges:
daily_break_5:
# ...
daily_break_15:
# ...
daily_good_drop:
# ...
daily_combo_5:
# ...
weekly_break_50:
# ...
weekly_legendary:
# ...
weekly_earn_500_coins:
# ...
🔧 Bug Fixes & Performance
Fixed: Main Menu not opening
The Main Menu attempted to create a 7-row chest inventory containing 63 slots.
Minecraft chests support a maximum of 6 rows (54 slots), causing Bukkit to throw an IllegalArgumentException whenever /lb gui was used.
- Reduced the Main Menu to 6 rows.
- All existing content fits within the new layout.
- Added a permanent safety clamp to the base GUI system to prevent invalid inventory sizes from causing the same class of issue again.
Fixed: Leaderboard freezing or crashing the server
Leaderboard refreshes previously called Bukkit.getOfflinePlayers() synchronously on the main server thread.
This could trigger a blocking disk read involving player data files.
- Leaderboard refreshes now run asynchronously.
- Results are cached.
- Opening the leaderboard no longer blocks the main thread.
- First-time users see a "Loading..." placeholder while data is being prepared.
Fixed: Chat prompt cancellation
Cancelling a chat prompt by typing cancel could send the player to the wrong GUI.
The system previously always returned to the Reward Editor, even when the prompt originated from another feature such as the Main Menu's luck-setting flow.
- Every chat prompt now defines its own cancellation destination.
- Cancelling a prompt always returns the player to the correct screen.
- Prevents related
NullPointerExceptioncrashes.
Fixed: Reward Editor debug text
Removed leftover debug text from the ID and Weight field tooltips in the Reward Editor.
🔌 API
LuckyBlockAPI receives no breaking changes in v2.1.
Coins, events, and challenges are currently accessible through the corresponding manager getters on LuckyBlockPlugin for plugins that directly depend on LuckyBlock.
The new functionality will be added to the public API interface once it has been fully stabilized.
LuckyBlock v2.1 brings a much more flexible reward system, a complete Lucky Coin economy, server-wide events, challenges, leaderboards, a configurable shop, and major GUI/performance fixes — while keeping the existing API backward compatible.
