Перейти к содержимому
Mineforgian

Ice Boat Racing

A powerful plugin for your ice boat races

Загрузки
424
Подписчики
2
Обновлён
10 августа 2026 г.
Лицензия
MIT

Опубликован 19 февраля 2026 г.

❄️ IceBoatRacing

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

Modrinth CurseForge Paper Java License Version


🎯 What Is This?

IceBoatRacing turns your Minecraft server into a competitive ice boat racing platform. Create races, design tracks, register boats, enforce pit stops, and run events with live timing — all in one plugin.

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 · Clean ranking with a bunch of info when the race ends
Checkpoints Oriented rectangle that the racers cross to update the live scoreboard · Alternate bypass routes · Sector timing gates
AutoTrace Drive/Walk one lap → plugin generates precise checkpoints automatically · Particle preview · Edit checkpoints before saving
Pit Stops Mandatory (or not if set to 0), configurable pit-stop count per race · Timed pit boxes with a live countdown · Real F1 teams color themes (11 real F1 team gradients) · Automatic disqualification for racers who skip them
Live Scoreboard Real-time sidebar that shows the current ranking
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 and legacy color codes formatting (gradients and colors)
Storage One YAML file per race · Easy backup/export-import

📦 Installation

  1. Download the latest .jar
  2. Place it in your server's plugins/ folder
  3. Restart the server
  4. Race.

⚙️ 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 }

Tip: Race lights require a 3D region defined by from/to coordinates. These get filled with stained glass during the 5-second countdown.

Tip: Pit stop count and start rotation is set per-race, not globally — use /race setPitStops <race> <amount> (defaults to 1).


⌨️ 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, send ranking and useful info iceboatracing.command.race
/race delete [name] Delete race permanently iceboatracing.race.create
/race setLapCount [name] <amount> View/change lap count iceboatracing.command.race
/race setPitStops [name] <amount> View/change required pit-stop count iceboatracing.command.race
/race setStartRotation [name] <amount> View/change start rotation iceboatracing.command.race
/checkpoint create <arguments> Create checkpoint from shovel selection iceboatracing.command.checkpoint
/checkpoint remove [race] [id] Remove checkpoint by ID or nearest to player iceboatracing.command.checkpoint
/checkpoint view <race> Toggle particle preview of all checkpoints iceboatracing.command.checkpoint
/checkpoint list [page] List all checkpoints (paginated, clickable) 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 autotrace preview Toggle particle preview of generated checkpoints iceboatracing.command.checkpoint
/checkpoint autotrace sector Add sector gate at nearest preview checkpoint iceboatracing.command.checkpoint
/checkpoint autotrace resize Resize nearest preview checkpoint iceboatracing.command.checkpoint
/checkpoint autotrace add Add a checkpoint iceboatracing.command.checkpoint
/checkpoint autotrace delete Delete nearest preview checkpoint iceboatracing.command.checkpoint
/checkpoint autotrace cancel Cancel AutoTrace session iceboatracing.command.checkpoint
/checkpoint addAlternate <race> <id> Add an alternate checkpoint for a checkpoint (shovel selection) iceboatracing.command.checkpoint
/checkpoint clearAll <race> Delete all checkpoints (with confirmation) iceboatracing.command.checkpoint
/pitbox create <race> Interactive pit box creation wizard iceboatracing.command.pitbox
/pitbox list <race> List all pit boxes (clickable edit/color/TP/remove) iceboatracing.command.pitbox
/pitbox remove <race> <id> Remove a pit box iceboatracing.command.pitbox
/pitbox setAllowed <race> <id> <names|*> Change which players may use a pit box iceboatracing.command.pitbox
/pitbox setColor <race> <id> <color> Change a pit box's color theme iceboatracing.command.pitbox
/car create Register a boat for a player (interactive wizard) iceboatracing.command.car
/car list [page] List all cars (clickable TP/remove/owner) iceboatracing.command.car
/car remove <id> <race> Remove a car from a race iceboatracing.command.car
/car changeOwner <id> <race> <player> Change car owner iceboatracing.command.car
/ibr reload Reload config, languages, races from file iceboatracing.command.plugin
/ibr info Show some info iceboatracing.command.plugin

Aliases: /ibr = /iceboatracing · Tab completion works for all subcommands, race names, and player names.


🔑 Permissions overview

Permission Description Default
iceboatracing.* All permissions op
iceboatracing.command.* All commands op
iceboatracing.command.race /race commands op
iceboatracing.command.checkpoint /checkpoint commands op
iceboatracing.command.pitbox /pitbox commands op
iceboatracing.command.car /car commands op
iceboatracing.command.plugin /ibr commands op

Recommendation: Give staff iceboatracing.* or specific children like iceboatracing.command.car.


✅ Compatibility

Requirement Version
Minecraft 1.21.4+
Software Paper
Java 21

Notes:

  • Paper is required — uses Paper-specific APIs (Brigadier commands, Adventure components). Spigot/Purpur/Folia are not supported.
  • No required external dependencies — only Paper API (compile-only).

PacketEvents is optional, the plugin will run just like normal without it.

  • Published on Modrinth and CurseForge.

❓ FAQ

Why does it require Paper instead of Spigot? It uses Paper's Brigadier command API, Adventure text/title/sound/particle APIs, which is the most stable and modern server version.
My boats face the wrong direction on start. Use `/race setStartRotation ` to .
AutoTrace missed a turn / generated checkpoints in wrong order. 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`/`add` to fix individual gates before `/checkpoint autotrace accept`.
Players get "Illegal GameMode!" in action bar. The plugin enforces `racingGameMode` (default ADVENTURE) during races. Either disable `enforceRacingGameMode` or ensure your server doesn't force a different gamemode.
What happens if a player skips a pit stop? They're automatically disqualified when they cross the finish line without completing the race's required pit-stop count, and are listed separately at the bottom of the final standings marked `DSQ`.
Can I make a pit box available to only one team? Yes — `/pitbox setAllowed ` restricts a box to specific player name(s), or use `*` to allow anyone racing. Only one player can occupy a box at a time.
Can I run multiple races at once? Yes — each race tracks independently. Use the race name argument to target a specific one.
How do I backup or move races to another server? Copy the `plugins/IceBoatRacing/races/` folder (each `.yml` is a complete race, including its pit boxes and cars). Copy `config.yml` and `lang/` for full setup.
Are chest boats and bamboo rafts supported? Yes — all vanilla boat types including `*_CHEST_BOAT`, `BAMBOO_CHEST_RAFT`, and `PALE_OAK_BOAT` (1.21.4+). Just hold the item during `/car create`.

🔗 Links


📄 License

MIT License — free for any use, including commercial servers, but proper credit is required. See LICENSE.


Made with ❄️ for the Minecraft racing community

Ченджлог

2.0-RELEASEРелиз26.1, 26.1.1, 26.2 · 10 августа 2026 г.

IceBoatRacing v2.0

A major update adding mandatory pit stops to races — full box detection, a per-team freeze-and-countdown sequence, and F1-team-themed visuals — plus disqualification handling for racers who skip them.

✨ Major Features

🅿️ Pit Box System

Racers can now be required to stop at a pit box mid-race, just like a real pit lane.

  • New PitBox/PitBoxManager classes: each race can define any number of pit boxes, stored in the same race.yml as checkpoints and cars.
  • Detection is folded directly into the existing checkpoint-crossing tick loop — no separate listener re-walking every racing boat.
  • Entering an eligible box freezes the boat in place (velocity zeroed every tick) for a configurable duration — no early exit needed, since the freeze itself keeps the player inside the trigger zone.
  • Adaptive title countdown (5, 4, 3... Go!) synced to each box's configured duration, with a rising-pitch pling on completion — mirrors the existing race-start light sequence.
  • One occupant per box at a time; a box can be restricted to specific player names or opened to everyone (*).
  • New PitBoxCreator: a guided, step-by-step wand-based setup (name → location → duration → allowed players → color), following the same chat-driven flow as RaceCreator.
  • New /pitbox create|list|remove|setAllowed|setColor commands, with inline edit/color/remove/teleport buttons in /pitbox list.

🎨 Team-Themed Colors

Each pit box can be colored, including full gradients — not just solid colors.

  • Preset color list rather than free-form hex input, so anyone setting up a box just types a name.
  • Real F1 team livery gradients: McLaren, Mercedes, Red Bull, Ferrari, Williams, VCARB, Aston Martin, Haas, Alpine, Audi, and Cadillac.
  • Plus solid basics (red/blue/green/gold) and a few extra gradients (the plugin's own ICE brand gradient, fire, rainbow).
  • Colors apply live to the "BOX BOX" call and countdown title, so each team's stop feels distinct.
  • Fully editable post-creation via /pitbox setColor <race> <id> <color>.

🏆 Mandatory Stops & Disqualification

  • Races now have a configurable required pit-stop count (/race setPitStops, same pattern as setLapCount).
  • Racers who cross the finish line without completing the required number of stops are marked disqualified with an immediate broadcast notice.
  • Final ranking now correctly reconstructs finish order from crossing order (previously relied on unordered map iteration) and lists disqualified racers separately at the bottom under a DSQ marker, below all qualified finishers.

🌍 Localization

  • Full fr_FR/en_US coverage for every new pit box message, command, and creation step.

🛠️ General / Technical

  • PitBoxManager mirrors CheckpointManager's save/load conventions exactly, so pit box storage follows the same per-race config pattern as everything else.
  • Pit box task type is stored as an enum (TIMED for now) rather than hardcoded, so future task types (e.g. skill-based stops) won't need a config migration.
  • Lowered the minimum supported Paper version to 1.21.4 — the version registerCommand() was introduced in, and also the version Paper hard-forked from its former Spigot upstream on, making it effectively the floor for the current Paper API. Built and tested with Java 21, no errors.

📝 Notes

Pit boxes ship as a v1: timed stops only, mandatory, no early exit. Task variety (beyond a simple timer) and finer-grained enforcement (e.g. blocking the finish line itself rather than DSQ-ing after the fact) are natural next steps if you want to build on this.

2.0-BETA-2Бета26.1.1, 26.1.2, 26.2 · 8 августа 2026 г.

Ice Boat Racing 2.0-BETA-2

Bug fixes update

Downgraded Paper build and Java version to actually support 1.21.9 and later (and nothing changes on modern versions). Added /checkpoint autotrace add. Actually fixed /checkpoint autotrace resize (fr this time). Added centerline preview in autotrace preview. Updated /checkpoint create to work with planes. Fixed CheckpointManager#getNearestCheckpoint (would cause a branch of /checkpoint remove to not work properly). Updated some messages. Position set messages now won't show it the position hasn't changed. Checkpoint#getCenter now also supports BOX checkpoints (propably fixing a bunch of bugs btw). RaceCreator's cancel operation now actually cancels.


Disclaimer

This is still a beta version of v2.0, so it will probably contain bugs. If you encounter any, please report them on GitHub (click me) (or the 'Report issues' button on the right of this plugin's page)

2.0-BETA-1Бета26.1.2, 26.2 · 7 августа 2026 г.

IceBoatRacing 2.0-BETA 1

Fixed a bunch of bugs including:

  • Fixed /checkpoint autotrace resize
  • /checkpoint remove now supports new checkpoints
  • Fixed /race setLapCount

Added automatic race load when loading a world gets loaded and saved when a world gets unloaded.

Full changelog on the previous version

2.0-BETAБета26.1.2, 26.2 · 6 августа 2026 г.

IceBoatRacing v2.0-BETA

A major update focused on multi-race support, a brand-new auto-trace checkpoint system, and a big pass on stability, translations, and race-finish feedback. This is a BETA release — core features are implemented and playable, but some older systems are still being polished and re-tested.


✨ Major Features

🏁 Multi-Race System

IBR now supports multiple simultaneous races instead of a single global race.

  • New Race class: every race (checkpoints, cars, sectors, data) is now scoped to its own race instance instead of being global.
  • RaceManager can load, save, and manage many races at once.
  • Cars, checkpoints, and sectors are all race-aware.
  • Races can be started/ended/prepared directly from Race.java, without needing to go through RaceManager.

🧙 RaceCreator: Guided Race Setup

A new guided, step-by-step process for creating a race from scratch, replacing manual/scattered setup steps.

🛰️ Auto-Trace Checkpoint System

A brand new way to place checkpoints — record a lap and let IBR trace the track for you instead of manually placing every checkpoint with a wand.

  • Full language/config support for auto-trace messages.
  • Integrated directly into the RaceCreator guided flow.
  • New /checkpoint view <Race> command to visualize all checkpoints of a race.

🌍 Localization

  • Full French (fr_FR) and English (en_US) language files, including translated error and ranking messages.
  • Auto-trace and checkpoint messages now support the language config system.

🏆 Ranking & Finish Stats

  • Races now send a full ranking when they end, with proper error handling/logging.
  • Players get a personal stats message when they finish a race, including best sector times (fixed a bug where these previously wouldn't display correctly).

🚤 Cars

  • Added support for chest boat cars.
  • Prevented players from creating more than one car per race.
  • Fixed cars not deleting properly (config path bug).
  • Fixed the car listener not stopping cars from moving before a race starts.
  • Cars are now removed before respawning to prevent duplicate boats.
  • Improved handling of cars when a player disconnects and reconnects mid-race (start location, logging, etc.).

🏎️ Races

  • Races now automatically end when the last racer disconnects.
  • Racing gamemode is now enforced and configurable, along with spectateOnFinish, via config.yml.
  • Added /race setLapCount.
  • Added support for players disconnecting and reconnecting during an active race.
  • Players can now skip a checkpoint if needed.
  • Fixed /race delete reading from the wrong race list.
  • Fixed race name lookups not supporting spaces.

🛠️ General / Technical

  • Migrated the project from Maven to Gradle.
  • Plugin version in build.gradle.kts is now kept in sync with paper-plugin.yml.
  • Rewrote README.md.
  • Added automatic reload when a world loads.
  • Various dev quality-of-life improvements.
  • Numerous bug fixes and project warning cleanups throughout (checkpoint/car commands, tab completion, sidebar scoring, sector/finish messages, and more).

📝 Notes

This is a BETA build — auto-trace and several reworked systems are still being play-tested. Feedback and bug reports are very welcome!

1.4-SNAPSHOT-2Альфа26.1, 26.1.1, 26.1.2 · 7 июня 2026 г.

Disclaimer: This is an alpha, as it doesn't contain any new groundbreaking feature.

  • Removed LuckPerms dependency, as it wasn't used
  • Limited to only 1 passengers per car during a race (otherwise racers could hop in other racer's cars)
  • Added temporary ranking that will be sent in the console on race end (planning on implementing a better one)
  • Racers will automatically be put in spectator mode when they finish the race
1.4-SNAPSHOTАльфа1.21.9, 1.21.10, 1.21.11 · 20 мая 2026 г.

Disclaimer: This is an alpha, as it doesn't contain any new groundbreaking feature.

  • Added comments in the default config and language configs to make them easier to understand.
  • Can now configure race lap count in config under race.lapCount

    = The required laps to complete the race

1.3Релиз1.21.9, 1.21.10, 1.21.11 · 8 апреля 2026 г.

Additions

  • Plugin now supports multiple languages
  • Cars now support custom names -> Better support for the race cars texture pack
  • Car rotation on race start is now customisable in config under the path race.startRotation
  • Added race lights (like colored glass that change color during the countdown) - configurable in config under race.lights.[...]

A bunch of fixes

  • Fixed /ibr reload (now actually reloads)
  • Race world is now set correctly
  • Fixed /ibr where prefix would show correctly
  • Config would sometimes not be saved
  • And more...
1.2Релиз1.21.9, 1.21.10, 1.21.11 · 2 марта 2026 г.

Bug fixes

Комментарии

Загружаем…