
ChallengeUtil - Advanced Speedrunning & Challenge Plugin
Platform: Minecraft 1.21.11 (Paper/Spigot)
Dependencies: PlaceholderAPI (optional, for team chat prefixes)
Overview
ChallengeUtil is a comprehensive Minecraft plugin designed for speedrunning servers and challenge gamemodes. It features instant world resets (~30 seconds, no server restart!), a built-in timer system, multiple game modes, and various challenge mechanics to create unique and engaging gameplay experiences.
Perfect for Velocity/BungeeCord proxy networks - players stay connected during world regeneration!
Key Features
Instant World Reset System
- 10-20 second world regeneration without server restart
- Holodeck Strategy: Players are smoothly transferred to a waiting room while the speedrun world regenerates
- Random seed generation for each reset
- Proxy-friendly: Full Velocity/BungeeCord support with auto-reconnect
- No disconnections: Players remain connected throughout the entire reset process
- Async world deletion: Zero lag during world regeneration
Advanced Timer System
- Real-time timer display above the hotbar (action bar)
- Format:
HH:MM:SSwith visual indicators - Color-coded states:
- Light Purple when running
- Red with pause symbol (⏸) when paused
- Start, pause, reset, and resume functionality
- Persistent through pause/resume cycles
- PlaceholderAPI support for external plugins
Multiple Game Modes
Manhunt Mode Classic speedrunner vs hunters gameplay:
- Runner Team: 1+ speedrunners trying to defeat the Ender Dragon
- Hunter Team: 1+ hunters trying to stop the runners
- Tracking Compass: Hunters receive a compass that tracks the nearest runner
- Team Protection: Friendly fire protection within teams (configurable)
- Spectator Mode: Spectators can watch without interfering
- Dynamic Spawning: Hunters spawn 10 minutes after
/startfor balanced gameplay
Team Race Mode Competitive team-based speedrunning:
- 2-10 Teams: Customizable team count with German names and colors
- Available Teams: Rot, Blau, Grün, Gelb, Lila, Aqua, Weiß, Orange, Pink, Grau
- Team Tracking Compass: Each team tracks the nearest enemy team member
- Color-coded UI: Team names appear in their respective colors
- Win Condition: First team to defeat the Ender Dragon wins
- Scoreboard Integration: Real-time team tracking and status
Challenge Modes
Chunk Items Challenge
- Receive random items when entering new chunks
- Player-specific: Different players get different items from the same chunk
- Persistent: Each chunk gives the same item to a player on re-entry
- Manhunt Integration: Hunters receive items only after 10 minutes
- Configurable Exclusions: Customize which items can drop
- Default Exclusions: Overpowered items (Elytra, Netherite gear, Totems) excluded by default
Friendly Fire = OP Items Challenge Damage teammates, get rewards:
- Damage Sync: Both attacker and victim take the same damage
- No Natural Regen: Natural health regeneration disabled
- Health-Based Rewards: Lower health = better items
- 80-100% HP: Basic items (Golden Apples, Arrows, Iron)
- 50-79% HP: Medium items (Diamonds, Enchanted Iron gear)
- 25-49% HP: Strong items (Diamond gear with Sharpness V, Totems)
- 1-24% HP: Extremely OP items (Netherite, fully enchanted diamond gear, multiple totems)
- Team Integration: Works with both Manhunt and Team Race modes
Advanced Configuration
Dual-World System
- Waiting Room: Lobby world where players wait during resets (peaceful, frozen time)
- Speedrun World: Main world that gets regenerated with new seeds
- Automatic Gamerule Management: Different gamerules for each world
- Smart Teleportation: Surface-detection spawn system
World Generation Settings
- World types: NORMAL, FLAT, LARGE_BIOMES, AMPLIFIED
- Structure generation toggle
- Configurable difficulty
- Random or fixed seed generation
- Custom spawn coordinates
Proxy Integration
- Full BungeeCord/Velocity support
- Auto-reconnect during world resets
- Configurable server names
- Companion proxy plugin included
Commands
Main Commands
| Command | Aliases | Description | Permission |
|---|---|---|---|
/start |
- | Start or resume the timer | challenge.start |
/pause |
- | Pause the timer | challenge.pause |
/reset |
- | Reset timer only (no world reset) | challenge.reset |
/fullreset |
/resetworld, /worldreset |
Holodeck reset - regenerate world instantly (3-5 sec) | challenge.fullreset |
/join |
/play, /go |
Join the speedrun world from waiting room | challenge.join |
/settings |
/config, /cfg |
Open settings GUI (waiting room only) | challenge.settings |
/team <name> |
- | Join a team (Manhunt or Team Race) | challenge.team |
Team Command Examples Manhunt Mode:
/team runner- Join the runner team/team hunter- Join the hunter team/team spectator- Join spectators
Team Race Mode:
/team- List all available teams and member counts/team Rot- Join Team Rot (Red)/team Blau- Join Team Blau (Blue)/team Grün- Join Team Grün (Green)- etc.
Permissions
Main Permissions
| Permission | Description | Default |
|---|---|---|
challenge.host |
Master permission - grants all admin commands | OP |
challenge.start |
Start/resume the timer | OP |
challenge.pause |
Pause the timer | OP |
challenge.reset |
Reset timer only | OP |
challenge.fullreset |
Execute Holodeck reset (world regeneration) | OP |
challenge.settings |
Open settings GUI | OP |
challenge.join |
Join speedrun world from waiting room | True (all players) |
challenge.team |
Join teams in Manhunt/Team Race | True (all players) |
challenge.* |
Grant all permissions | OP |
Permission Hierarchy
The challenge.host permission includes:
challenge.startchallenge.pausechallenge.resetchallenge.fullresetchallenge.settings
Host Control Features
Players with the challenge.host permission receive special tools:
Host Control Item
- Enchanted Nether Star automatically given on join
- Right-click to open Host Control GUI
- Quick access to all host commands without typing
Host Control GUI Interactive menu with three options:
- Start Challenge (Green Wool) - Executes
/start - Settings (Comparator) - Opens
/settingsGUI - ⚠ FULL RESET ⚠ (Barrier) - Executes
/fullresetwith warning
Configuration
The plugin features extensive configuration through config.yml:
Proxy Settings
proxy:
lobby-server: lobby1 # Lobby server name in proxy config
this-server-name: challenge1 # This server's name in proxy config
World Settings
world:
waiting-room: waiting_room # Fallback world (lobby)
speedrun-world: speedrun_world # World that gets regenerated
generation:
type: NORMAL # NORMAL, FLAT, LARGE_BIOMES, AMPLIFIED
generate-structures: true
random-seed: true
difficulty: NORMAL # PEACEFUL, EASY, NORMAL, HARD
teleport:
waiting-room-spawn:
x: 0
y: 65
z: 0
speedrun-spawn:
x: 0
y: 100 # Auto-finds surface
z: 0
Gamerules Separate gamerule configurations for waiting room (peaceful, frozen time) and speedrun world (normal gameplay).
Challenge Settings
challenge:
allow-respawn: true # false = hardcore mode (spectator on death)
chunk_items:
excluded: # Items to exclude from random rewards
# - DIAMOND
# - EMERALD
friendly_fire_item:
enabled: false # Toggle via GUI
PlaceholderAPI Integration (optional)
Available Placeholders
| Placeholder | Description | Example Output |
|---|---|---|
%ch_prefix% |
Team prefix with color | [RUNNER], [HUNTER], [Red] |
%ch_suffix% |
Team suffix (reserved) | - |
%ch_team% |
Raw team name | runner, hunter, Rot |
%ch_team_color% |
Legacy team color code | §d, §6, §c |
Usage Example EssentialsX Chat:
format: '{ch_prefix}{DISPLAYNAME}{ch_suffix}§r: {MESSAGE}'
Game Modes Comparison
Mode Compatibility Matrix
| Feature | Manhunt | Team Race | Solo |
|---|---|---|---|
| Timer System | ✅ | ✅ | ✅ |
| Instant Reset | ✅ | ✅ | ✅ |
| Team System | ✅ | ✅ | ❌ |
| Tracking Compass | ✅ (Hunters only) | ✅ (All teams) | ❌ |
| Chunk Items Challenge | ✅ | ✅ | ✅ |
| Friendly Fire Challenge | ✅ | ✅ | ❌ |
| Multiple Teams | ❌ (2 teams) | ✅ (2-10 teams) | ❌ |
| Can Run Simultaneously | ❌ | ❌ | ✅ |
Note: Manhunt and Team Race cannot be enabled simultaneously.
Technical Details
Performance
- Reset Time: 10-30 seconds typical
- World Deletion: Async (non-blocking)
- World Creation: Sync (main thread, optimized)
- Timer Updates: Every second (20 ticks)
- Compass Updates: Every second (20 ticks)
Installation
Basic Installation
- Download
ChallengeUtil.jar - Place in your server's
pluginsfolder - Configure
server.properties:level-name=waiting_room - Restart your server
- Configure
plugins/ChallengeUtil/config.yml - Reload or restart
Optional: PlaceholderAPI
- Install PlaceholderAPI from SpigotMC
- Restart server
- Placeholders automatically register
- Use in chat plugins (EssentialsX, ChatControl, etc.)
Usage Examples
Basic Speedrun Setup
- Server starts with players in waiting room
- Admin:
/settings- Configure challenge settings - Players:
/join- Enter speedrun world - Admin:
/start- Begin timer - Players: Complete speedrun
- Admin:
/fullreset- Instant 3-5 second reset for next run
Manhunt Setup
- Enable Manhunt mode in
/settings > Challenges - Players join teams:
/team runner(speedrunners)/team hunter(hunters)
- Admin:
/start - Runners get 10-minute head start
- Hunters spawn and receive tracking compass
- First team to defeat Ender Dragon wins
Team Race Setup
- Enable Team Race in
/settings > Challenges - Players:
/teamto see available teams - Players join teams:
/team Rot,/team Blau, etc. - Admin:
/start - All teams receive tracking compasses
- Race to defeat the Ender Dragon
- First team wins!
Troubleshooting
Common Issues
"Waiting room not found"
- Verify
level-name=waiting_roomin server.properties - Ensure waiting room world folder exists
Slow resets (>60 seconds)
- Use Paper instead of Spigot
- Use SSD instead of HDD
- Reduce world size/pregenerate less
- Check server TPS
Players fall into void
- Increase
speedrun-spawn.yto 120+ in config.yml - Plugin auto-finds surface, but high Y helps
Same seed every reset
- Set
random-seed: falsein config.yml
Compass not working
- Ensure players are in the same dimension
- Check that target players are online
- Verify team assignments with
/team
Chat prefixes not showing
- Install PlaceholderAPI
- Check if expansion is registered:
/papi list - Reload PlaceholderAPI:
/papi reload - Verify chat plugin configuration
Perfect For
- Speedrunning Servers: Instant resets for practice or races
- Challenge Servers: Unique gameplay mechanics
- Manhunt Servers: Classic hunter vs speedrunner
- Team Competition: Multi-team races
- Practice Servers: Quick reset for skill improvement
- Content Creation: Streamers and YouTubers
- Proxy Networks: Multiple parallel speedrun instances
License
MIT License - Free to use for any server!
**Why Choose ChallengeUtil?
**
Instant Resets - 10-30 seconds, no server restart
Unique Challenges - Chunk Items, Friendly Fire
Proxy Optimized - Perfect for networks
Highly Configurable - Customize everything
PlaceholderAPI - Full integration
Performance Focused - Optimized and tested
User-Friendly - GUI-based configuration
Active Development - Regular updates
Built with ❤️ for the Minecraft speedrunning community
Download now and revolutionize your speedrunning server!
Ченджлог
Alpha-1.5.48Альфа1.21.11 · 21 февраля 2026 г.
Introduce Connunity Hunt mode and related UI/logic, plus robustness improvements to full world reset.
- Add ConnunityHuntManager: automatic team assignment (Streamer vs Viewer), 2-minute viewer headstart (blindness/invulnerability), compass charging/usage, compass tracking with fallback portal search, glowing effects and visual particle feedback. Includes utility methods to manage teams and compass cooldowns.
- Add SpectatorCommand to allow hosts to become spectators in Connunity Hunt mode.
- Add team selection GUI and multiple new listeners (ConnunityHuntMovementListener, TeamSelectionGUIListener, TeamSelectionItemListener, HeadstartRestrictionListener, BedExplosionPreventionListener, and others) and wire them up in ChallengeUtil; also expose getters for new managers/listeners.
- Update StartCommand and TeamCommand to support Connunity Hunt mode (mode mutual-exclusion checks, auto-assignment, start/notify logic, spectator handling).
- Refactor FullResetCommand: perform folder deletion asynchronously, move Thread.sleep to async task, use boolean-returning deleteWorldFolder with NIO and improved error logging, add extra safety checks (abort on incomplete deletion), create data folders for new worlds/dimensions to avoid missing files, and ensure regeneration runs on the main thread.
- Avoid loading speedrun world at startup when reset.fullreset-on-startup is enabled to prevent unnecessary I/O and Windows file-lock issues.
- Register new commands/listeners and initialize new components in ChallengeUtil.
- Bump plugin version in pom.xml and update plugin language/resources and plugin.yml accordingly.
These changes add the new game mode features and harden the reset workflow to reduce failures on Windows and avoid re-opening deleted world files.
1.5.0Релиз1.21.11 · 17 февраля 2026 г.
Introduce CustomEndFightManager to handle egg holder mechanics, boss bars, team timers, and portal animations, integrated via ChallengeUtil with new listeners for dragon egg interactions and end portal prevention. Enhanced game state management for FullReset, Pause, and Start to include endfight deactivation, attribute restoration, and timed challenge synchronization. Performance optimizations include chunk-based movement checks and improved event handling in chunk and block-break listeners. Logging is centralized through new ChallengeUtil helpers to respect reduced-debug-info settings and decrease console spam. Added EggHolderRegenerationListener to block natural healing for holders and EndermanSpawnPreventionListener to manage End environments. Updated CustomEndFightManager with glowing effects for holders, improved portal state tracking, and escape listeners. UI updates include custom end fight toggles in SettingsGUI and ColorUtil adjustments.
Alpha-1.4.1Альфа1.21.11 · 3 февраля 2026 г.
Add a containerBlocks set and initialization to BlockBreakRandomizerListener to exclude container/storage blocks from drop randomization so their contents are preserved. initializeContainerBlocks() registers chests, trapped/ender chests, all shulker box colors, barrel, furnace variants, smoker, blast furnace, dispenser, dropper, hopper, brewing stand, etc., and is invoked from the constructor. The block-break handler now returns early for container blocks.
1.4.0Релиз1.21.11 · 3 февраля 2026 г.
Adds two new challenge systems and integrates them across startup, reset and UI:
- New listeners: TimedRandomItemListener (gives progressive random loot every 30s) and BlockBreakRandomizerListener (replaces block drops with deterministic/randomized items per match).
- Registered listeners and exposed getters in ChallengeUtil; StartCommand now starts the timed challenge and ResetCommand stops it. FullReset now resets the block-break randomizer state.
- FullResetCommand.performHolodeckReset made public; world deletion now unloads Overworld, Nether and End (with a short delay) to avoid file-lock issues on Windows and then deletes/regenerates worlds asynchronously.
- DataManager: added reloadData() and expanded clearAllData() to clear timer/world/teamrace/speedrun milestones, save and reload to ensure on-disk state matches memory after resets.
- Settings GUI and SettingsGUIListener updated to expose new challenge toggles (timed_random_item, block_break_randomizer) and added language entries for messages; config.yml added settings for block_break_randomizer and an optional fullreset-on-startup toggle.
- Version bumped to 1.4.0.
These changes implement two new RNG-based challenges, ensure proper lifecycle handling during start/reset/fullreset, and fix world-unload race conditions during regeneration.
Alpha-1.3.77Альфа1.21.11 · 30 января 2026 г.
Introduces the Keep RNG challenge, allowing players to keep a configurable percentage of their inventory on death, with GUI controls and enforcement. Adds Team Race kill tracking with per-player kill counts and suffix updates. Improves version checking, inventory handling, and team management. Updates dependencies and language files, and refines player reset logic for game start and full reset.
Alpha-1.3.47Альфа1.21.11 · 27 января 2026 г.
Introduces the ability for players in Manhunt Race mode to switch the team their compass tracks via right-click, with UI and language updates to reflect this feature. Refactors all references from 'Team Race' to 'Manhunt Race' in code, GUI, and language files for consistency. Also improves compass protection and tracking logic to support the new team tracking behavior and cleans up related event handling.
Alpha-1.3.45Альфа1.21.11 · 26 января 2026 г.
- Automatic Version Checker The plugin has a built-in Modrinth version checker that automatically notifies OPs when updates are available Checks on server startup and when OPs join Configurable in config.yml under update-checker.enabled Uses Modrinth API to fetch latest versions
- bStats implementation
Alpha-1.3.19Альфа1.21.11 · 26 января 2026 г.
Initial Modrinth release.
- added a muli team mode named "Team Race"
- updated /team command to support both Manhunt and Team Race mode
- removed LuckPerms integration
- added PlaceholderAPI integration
- added placeholders to allow Velocitab support via PAPIProxyBridge
- removed the need for a proxied lobby server
- added MiniMessage support
- updated prefixes to use MiniMessage formatting
- improved spawnpoint detection
- added Host GUI
- added item to open the Host GUI
Комментарии
Загружаем…