NBContest is a lightweight, fast and highly customizable Minecraft plugin that allows you to host exciting server-wide contests such as farming, fishing, and mob hunting events. It encourages players to compete and earn configurable rewards.
✨ Features
- Farming Contest – Break a random crop (e.g., wheat, carrots, etc.)
- Fishing Contest – Catch as many fish as possible!
- Passive Mobs Contest – Kill cows, chickens, sheep and more!
- Hostile Mobs Contest – Kill hostile mobs like zombies and skeletons!
- Real-time HUD
- BossBar showing time and global objective (with MiniMessage support)
- ActionBar showing individual player score (fully functional workaround)
- Top 3 Rewards system via command execution
- Automatic Event Scheduler via `config.yml`:
- Supports multiple times per event (e.g., start farming at 14:00, 18:30)
- Fully customizable timezone (e.g., Europe/Paris)
- Runs automatically every day, based on server clock
- Fully translatable via `messages.yml` (MiniMessage ready)
- Lightweight and optimized for performance
️ Commands
/nbcontest start <event> |
Start a contest (`farming`, `fishing`, `hostiles_mobs`, `passive_mobs`) |
nbcontest.admin |
/nbcontest stop |
Stop the current contest |
nbcontest.admin |
/nbcontest reload |
Reload config, schedule and language |
nbcontest.admin |
Automatic Events
Auto-events can be scheduled using `auto-events` in the config. Each event can have multiple start times, and all times are based on the server's timezone.
You can configure the timezone with `timezone: Europe/Paris` (or any supported ID).
⚙️ Configuration (`config.yml`)
Code (YAML):
duration
: 300
# Duration of the all event in seconds
# Timezone ID list (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
timezone
:
"Europe/Paris"
auto-events:
enabled
: true
farming
:
-
"14:00"
-
"18:30"
fishing
:
-
"15:00"
hostiles_mobs
:
-
"16:00"
passive_mobs
:
-
"17:00"
bossbar:
color
: YELLOW
# Options: PINK, BLUE, GREEN, RED, YELLOW, PURPLE, WHITE
# Contest configuration
objective:
fixed
: false
amount
: 100
min
: 50
max
: 500
# Block types for the contest
farming:
block-types
:
- WHEAT
- POTATOES
- CARROTS
- BEETROOTS
- PUMPKIN
- MELON
- SUGAR_CANE
- COCOA_BEANS
- NETHER_WART
# Rewards (Max top 3 players)
rewards:
farming:
top1
: 'give
%player% minecraft:diamond 5'
top2
: 'give
%player% minecraft:emerald 10'
top3
: 'give
%player% minecraft:bread 32'
fishing:
top1
: 'give
%player% minecraft:trident 1'
top2
: 'give
%player% minecraft:cod 16'
top3
: 'give
%player% minecraft:salmon 16'
hostiles_mobs:
top1
: 'give
%player% minecraft:netherite_ingot 1'
top2
: 'give
%player% minecraft:iron_sword 1'
top3
: 'give
%player% minecraft:shield 1'
passive_mobs:
top1
: 'give
%player% minecraft:golden_apple 3'
top2
: 'give
%player% minecraft:cooked_beef 32'
top3
: 'give
%player% minecraft:leather 16'
Messages (`messages.yml`)
Code (YAML):
contest-started
:
"<green>[NBContest] <yellow>The %event% <yellow>contest has started!"
contest-ended
:
"<red>[NBContest] The contest has ended!"
no-participants
:
"<gray>No players participated in this contest."
top-title
:
"<gold>Top 5 Players:"
top-line
:
"<gray>#%rank% <green>%player% <dark_gray>- <yellow>%score% %unit%"
farming-objective
:
"<gold>Goal: <yellow>Break %amount% %material%"
bossbar.farming
:
"<gold>Time: <white>%time%s <green>- <white>%remaining% %material% left"
bossbar.generic
:
"<gold>Time: <white>%time%s"
# Don't use Minimessage for actionbar, it doesn't support color codes (Temporary workaround)
actionbar.farming
:
"&e%score% &f%material% harvested"
actionbar.fishing
:
"&e%score% &ffish caught"
actionbar.mobs
:
"&e%score% &fmobs killed"
event:
farming
:
"<aqua>Harvesting"
fishing
:
"<blue>Fishing"
hostiles_mobs
:
"<dark_red>Monster Hunt"
passive_mobs
:
"<dark_green>Culling"
unit:
fishing
: fish caught
hostiles_mobs
: mobs killed
passive_mobs
: mobs killed
materials:
WHEAT
: wheat
POTATOES
: potatoes
CARROTS
: carrots
BEETROOTS
: beetroot
PUMPKIN
: pumpkins
MELON
: melons
SUGAR_CANE
: sugar cane
COCOA_BEANS
: cocoa beans
NETHER_WART
: nether wart
Placeholder Usage
These placeholders are used across messages and rewards:
- %event% – Event name (translated)
- %material% – Target material
- %amount% – Objective amount
- %score% – Player score
- %player% – Player name
- %unit% – Display unit (e.g., mobs killed)
- %time% – Time left (in seconds)
- %remaining% – Blocks or entities remaining to goal
- %rank% – Player's rank in leaderboard
Plugin Setup
- Place the `NBContest.jar` in your `/plugins` folder.
- Restart the server or use `/reload`.
- Customize `config.yml` and `messages.yml` as needed.
- Use `/nbcontest start <event>` to begin a contest or rely on the auto scheduler.
Screenshots
Credits
Created with ❤️ by
6rius
Join our
Discord for support, suggestions, or questions.