⚔ NBContest ⚔
Lightweight & Customizable Contest Plugin
Host exciting server-wide contests!
Farming • Fishing • Mob Hunting • Real-time Leaderboards
✨ Features
Contest Types
- Farming Contest – Break random crops (wheat, carrots, potatoes, 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 Display System
- Boss Bar (can be enabled/disabled)
- Shows time remaining and global objective
- Customizable color (PINK, BLUE, GREEN, RED, YELLOW, PURPLE, WHITE)
- Full MiniMessage support for rich formatting
- Scoreboard (can be enabled/disabled) - NEW!
- Live display of contest information
- Event name with custom formatting
- Time remaining (MM:SS format)
- Objective progress (for farming events)
- Real-time Top 3 leaderboard
- Shows only active participants
- Fully customizable via messages.yml
- Action Bar
- Individual player score display
- Updates in real-time
- Legacy color code support for compatibility
Rewards System
- Top 3 players receive configurable rewards
- Execute any console command as reward
- Support for multiple commands per rank
- Placeholder support (%player%)
⏰ Automatic Event Scheduler
- Schedule multiple events per day
- Supports multiple times per event type
- Fully customizable timezone (e.g., Europe/Paris)
- Runs automatically based on server clock
- Enable/disable individual events
Customization
- MiniMessage Support for rich text formatting
- Gradients, hex colors, formatting tags
- Hover and click events support
- Fully translatable via messages.yml
- Configurable objectives (fixed or random)
- Custom material names for better localization
- Organized configuration with detailed comments
️ Technical Features
- Lightweight and optimized for performance
- Adventure API integration for modern text components
- Paper/Purpur optimized
- No dependencies required (standalone)
- Automatic cleanup on server shutdown
⌨️ Commands
• /nbcontest start <event>
Start a contest (farming, fishing, hostiles_mobs, passive_mobs)
Permission:
nbcontest.admin
• /nbcontest stop
Stop the current contest
Permission:
nbcontest.admin
• /nbcontest reload
Reload config, schedule and language
Permission:
nbcontest.admin
Event Types:
- farming - Harvesting contest
- fishing - Fishing contest
- hostiles_mobs - Monster hunt
- passive_mobs - Animal culling
Automatic Events
Auto-events can be scheduled using
auto-events in the config. The scheduling system is highly flexible:
- Schedule events on specific days (e.g., MONDAY, TUESDAY, DAILY)
- Multiple times per day
- Farming Specifics: Define exactly which crop to farm for a specific time slot!
Advanced Schedule Example:
Code (YAML):
auto-events:
enabled
: true
farming:
DAILY
:
-
"18:30"
# Random crop at 6:30 PM every day
SATURDAY:
- time
:
"14:00"
type
: POTATOES
# Potato contest at 2:00 PM
- time
:
"16:00"
type
: CARROTS
# Carrot contest at 4:00 PM
SUNDAY
:
-
"10:00"
fishing:
DAILY
:
-
"15:00"
You can configure the timezone with
timezone: "Europe/Paris" (or any supported timezone ID).
⚙️ Configuration
Code (YAML):
# ========================================
# NBContest Configuration
# ========================================
# Plugin for managing competitive events on your Minecraft server
# Discord: https://discord.nb.studio/
# ========================================
# ========================================
# General Settings
# ========================================
# Duration of all events in seconds (default: 300 = 5 minutes)
duration
: 300
# Timezone for auto-events scheduling
timezone
:
"Europe/Paris"
# ========================================
# Display Settings
# ========================================
# Boss Bar Configuration
bossbar:
enabled
: true
color
: YELLOW
# Options: PINK, BLUE, GREEN, RED, YELLOW, PURPLE, WHITE
# Scoreboard Configuration
scoreboard:
enabled
: true
# Shows: event name, time, top 3 players, objective
# ========================================
# Contest Objective
# ========================================
objective:
fixed
: false
# If true, use 'amount'. If false, random between min-max
amount
: 100
min
: 50
max
: 500
# ========================================
# Auto-Events Scheduler
# ========================================
auto-events:
enabled
: true
farming:
DAILY
:
-
"18:30"
SATURDAY:
- time
:
"14:00"
type
: POTATOES
- time
:
"16:00"
type
: CARROTS
SUNDAY:
- time
:
"14:00"
type
: WHEAT
-
"18:00"
fishing:
DAILY
:
-
"15:00"
hostiles_mobs:
DAILY
:
-
"21:00"
FRIDAY
:
-
"16:00"
passive_mobs:
DAILY
:
-
"17:00"
# ========================================
# Event-Specific Settings
# ========================================
farming:
block-types
:
- WHEAT
- POTATOES
- CARROTS
- BEETROOTS
- PUMPKIN
- MELON
- SUGAR_CANE
- COCOA_BEANS
- NETHER_WART
# ========================================
# Rewards Configuration
# ========================================
rewards:
farming:
top1
:
-
"give %player% minecraft:diamond 5"
-
"eco give %player% 250"
-
"say Congratulations %player%, you won the Farming Contest!"
top2
:
-
"give %player% minecraft:emerald 10"
-
"eco give %player% 150"
top3
:
-
"give %player% minecraft:bread 32"
fishing:
top1
:
-
"give %player% minecraft:trident 1"
-
"eco give %player% 200"
top2
:
-
"give %player% minecraft:cod 16"
top3
:
-
"give %player% minecraft:salmon 16"
hostiles_mobs:
top1
:
-
"give %player% minecraft:netherite_ingot 1"
-
"effect give %player% strength 30 1"
top2
:
-
"give %player% minecraft:iron_sword 1"
top3
:
-
"give %player% minecraft:shield 1"
passive_mobs:
top1
:
-
"give %player% minecraft:golden_apple 3"
-
"eco give %player% 200"
top2
:
-
"give %player% minecraft:cooked_beef 32"
top3
:
-
"give %player% minecraft:leather 16"
Messages & Customization
All messages support
MiniMessage format for rich text formatting!
Available MiniMessage Tags:
- Colors: <red>, <green>, <blue>, <yellow>, <gold>, <aqua>, etc.
- Formatting: <bold>, <italic>, <underlined>, <strikethrough>
- Gradients: <gradient:color1:color2>text</gradient>
- Hex colors: <#FF5555>text</#FF5555>
Code (YAML):
# Contest Messages
contest-started
:
"<green>[NBContest] <yellow>The %event% contest has started!"
contest-ended
:
"<red>[NBContest] The contest has ended!"
farming-objective
:
"<gold>Goal: <yellow>Break %amount% %material%"
# Boss Bar
bossbar.farming
:
"<gold>Time: <white>%time%s <green>- <white>%remaining% %material% left"
bossbar.generic
:
"<gold>Time: <white>%time%s"
# Action Bar (uses legacy codes: &e, &f, etc.)
actionbar.farming
:
"&e%score% &f%material% harvested"
actionbar.fishing
:
"&e%score% &ffish caught"
actionbar.mobs
:
"&e%score% &fmobs killed"
# Scoreboard (Live Display)
scoreboard.title
:
"<gold><bold>CONTEST"
scoreboard.event
:
"<yellow>Event: <white>%event%"
scoreboard.time
:
"<aqua>Time: <white>%minutes%:%seconds%"
scoreboard.remaining
:
"<green>Remaining: <white>%remaining% %material%"
scoreboard.top-title
:
"<gold>Top Players:"
scoreboard.top-line
:
"<gray>#%rank% <green>%player%<dark_gray>: <yellow>%score%"
scoreboard.top-empty
:
"<gray>#%rank% <dark_gray>---"
# Leaderboard (End of Contest)
top-title
:
"<gold>Top 5 Players:"
top-line
:
"<gray>#%rank% <green>%player% <dark_gray>- <yellow>%score% %unit%"
# Event Names
event:
farming
:
"<aqua>Harvesting"
fishing
:
"<blue>Fishing"
hostiles_mobs
:
"<dark_red>Monster Hunt"
passive_mobs
:
"<dark_green>Culling"
Placeholders
• %event% - Event name (translated) - Example: "Harvesting"
• %material% - Target material - Example: "wheat"
• %amount% - Objective amount - Example: "100"
• %score% - Player score - Example: "45"
• %player% - Player name - Example: "Steve"
• %time% - Time left (seconds) - Example: "180"
• %minutes% - Minutes remaining - Example: "3"
• %seconds% - Seconds remaining - Example: "00"
• %remaining% - Items remaining to goal - Example: "55"
• %rank% - Player's rank - Example: "1"
Customization Examples
Gradient Titles:
Code (YAML):
scoreboard.title
:
"<gradient:gold:yellow>⚔ CONTEST ⚔</gradient>"
Hex Colors:
Code (YAML):
scoreboard.top-line
:
"<#FFD700>#%rank% <#00FF00>%player% <#FFFF00>%score%"
Emoji Support:
Code (YAML):
scoreboard.title
:
"<gold> CONTEST "
scoreboard.time
:
"⏱️ %minutes%:%seconds%"
scoreboard.remaining
:
" %remaining% %material%"
Display Options
You can enable/disable each display element independently:
• Boss Bar -
bossbar.enabled: true
Shows time and objective at the top
• Scoreboard -
scoreboard.enabled: true
Shows live leaderboard on the side
• Action Bar - Always enabled
Shows personal score above hotbar
Minimal Configuration (Action Bar only):
Code (YAML):
bossbar:
enabled
: false
scoreboard:
enabled
: false
Full Display (All enabled):
Code (YAML):
bossbar:
enabled
: true
scoreboard:
enabled
: true
Screenshots
⚡ Performance
- Lightweight design with minimal overhead
- Efficient scoreboard updates (1 per second)
- Optimized player score tracking
- Automatic cleanup on contest end
Known Issues
- Action Bar: Due to Minecraft limitations, action bar only supports legacy color codes (&e, &f, etc.) instead of MiniMessage format.
- Scoreboard: Text is limited to 40 characters per line (Minecraft limitation).
❤️ Support & Credits
Created with ❤️ by
6rius
Join our Discord for support, suggestions, or questions!