❄️ IceBoatRacing
A professional-grade Minecraft Paper plugin for competitive ice boat racing — precision checkpoints, live scoreboards, automatic track generation, and full race management.

🎯 What Is This?
IceBoatRacing turns your Minecraft server into a competitive ice boat racing platform. Create races, design tracks, register boats, and run events with live timing — all without leaving the game.
Built for servers running competitive racing events (like Grands Prix by Mini Jeux Entre Potes).
✨ Features
| Category |
Features |
| Race Management |
Interactive creation wizard · Prepare/start/end races · Configurable lap counts · Auto-end when last player finishes |
| Checkpoints |
BOX (simple cuboid) or PLANE (oriented rectangle for curved tracks) · Alternate bypass routes · Sector timing gates |
| AutoTrace |
Drive one lap → plugin generates precise PLANE checkpoints automatically · Particle preview · Edit individual gates before saving |
| Live Scoreboard |
Real-time sidebar showing lap, checkpoint progress, and position for every racer |
| Race Lights |
Optional 6-stage stained-glass starting lights (Brown → Red → Orange → Yellow → Lime → Green) synced with countdown |
| Car System |
Register boats per player (all wood types, rafts, chest variants) · Custom names · Auto-spawn on prepare · Invulnerable |
| Multi-Language |
English & French built-in · Extensible via YAML · MiniMessage formatting (gradients, hover/click events) |
| Persistence |
One self-contained YAML file per race · Easy backup/migration |
📦 Installation
- Download the latest
.jar
- Place it in your server's
plugins/ folder
- Restart the server (or run
/ibr reload)
- First run generates:
plugins/IceBoatRacing/config.yml
plugins/IceBoatRacing/lang/en_US.yml & fr_FR.yml
plugins/IceBoatRacing/races/ (race data folder)
⚙️ Configuration Highlights
Edit plugins/IceBoatRacing/config.yml:
language: en_US # en_US or fr_FR (add your own in lang/)
race:
allowRejoin: true # Let players rejoin mid-race after logout
racingGameMode: ADVENTURE # GameMode during race
enforceRacingGameMode: true
spectateOnFinish: true # Put finishers in spectator mode
removeCarWhenLoggingOut: false
lights:
enabled: false # Set true + configure from/to coords to enable
from: { x: 0, y: 0, z: 0 }
to: { x: 0, y: 0, z: 0 }
startRotation: 0 # Boat yaw on start (degrees)
Tip: Race lights require a 3D region defined by from/to coordinates. The plugin fills it with stained glass during the 5-second countdown.
⌨️ Commands
| Command |
Description |
Permission |
/race create |
Interactive race creation wizard |
iceboatracing.race.create |
/race start [name] |
Start race with 5s countdown + lights |
iceboatracing.command.race |
/race prepare [name] |
Spawn cars, teleport players, set Adventure mode |
iceboatracing.command.race |
/race end [name] |
End race, broadcast final standings |
iceboatracing.command.race |
/race delete [name] |
Delete race permanently |
iceboatracing.race.create |
/race setLapCount [name] <amount> |
View/change lap count |
iceboatracing.command.race |
/checkpoint create <race> [SECTOR] |
Save BOX checkpoint from shovel selection |
iceboatracing.command.checkpoint |
/checkpoint setFinish <race> |
Save separate finish line |
iceboatracing.command.checkpoint |
/checkpoint autotrace start <race> [...] |
Begin recording a lap for AutoTrace |
iceboatracing.command.checkpoint |
/checkpoint autotrace accept |
Save generated checkpoints to race |
iceboatracing.command.checkpoint |
/checkpoint view <race> |
Toggle particle preview of checkpoints |
iceboatracing.command.checkpoint |
/checkpoint addAlternate <race> <id> |
Add bypass gate to checkpoint |
iceboatracing.command.checkpoint |
/car create |
Register a boat for a player (3-step wizard) |
iceboatracing.command.car |
/car list [page] |
List all cars (clickable TP/remove/owner) |
iceboatracing.command.car |
/ibr reload |
Reload config, languages, races, scoreboard |
iceboatracing.command.plugin |
/ibr info |
Show plugin info |
iceboatracing.command.plugin |
Aliases: /ibr = /iceboatracing · Tab completion works for all subcommands, race names, and player names.
🔑 Permissions
| Permission |
Description |
Default |
iceboatracing.* |
All permissions |
op |
iceboatracing.command.* |
All commands |
op |
iceboatracing.command.race |
/race commands |
false |
iceboatracing.command.checkpoint |
/checkpoint commands |
false |
iceboatracing.command.car |
/car commands |
false |
iceboatracing.command.plugin |
/ibr commands |
false |
iceboatracing.race.create |
Create/delete races |
false |
iceboatracing.race.checkpoints |
Manage checkpoints |
false |
iceboatracing.race.cars |
Manage cars |
false |
Recommendation: Give staff iceboatracing.* or specific children like iceboatracing.race.*.
✅ Compatibility
| Requirement |
Version |
| Minecraft |
1.21.5+ |
| Paper |
1.21.5+ (API 26.1.2+) |
| Java |
25 |
Notes:
- Paper is required — uses Paper-specific APIs (Brigadier commands, Adventure components). Spigot/Purpur/Folia are not supported.
- No external dependencies — only Paper API (compile-only).
- Published on Modrinth and CurseForge.
❓ FAQ
<details>
<summary>Why does it require Paper instead of Spigot?</summary>
It uses Paper's Brigadier command API, Adventure text/title/sound/particle APIs, and modern NMS mappings — none of which exist on Spigot forks.
</details>
<details>
<summary>My boats face the wrong direction on start.</summary>
Change race.startRotation in config.yml (degrees: 0=South, 90=West, 180=North, 270=East), then /ibr reload.
</details>
<details>
<summary>AutoTrace missed a turn / generated checkpoints in wrong order.</summary>
Drive a clean, continuous lap without backtracking. Adjust spacing (default 3 blocks) — higher for long straights, lower for tight corners. Use /checkpoint autotrace resize/delete to fix individual gates before /accept.
</details>
<details>
<summary>Players get "Illegal GameMode!" in action bar.</summary>
The plugin enforces racingGameMode (default ADVENTURE) during races. Either disable enforceRacingGameMode or ensure your server doesn't force a different gamemode.
</details>
<details>
<summary>Can I run multiple races at once?</summary>
Yes — each race tracks independently. Use the race name argument to target a specific one.
</details>
<details>
<summary>How do I backup or move races to another server?</summary>
Copy the plugins/IceBoatRacing/races/ folder (each .yml is a complete race). Copy config.yml and lang/ for full setup.
</details>
<details>
<summary>Are chest boats and bamboo rafts supported?</summary>
Yes — all vanilla boat types including *_CHEST_BOAT, BAMBOO_CHEST_RAFT, and PALE_OAK_BOAT (1.21.5+). Just hold the item during /car create.
</details>
❤️ Support & Links
📄 License
MIT License — free for any use, including commercial servers. See LICENSE.
**Made with ❄️ for the Minecraft racing community**