IceBoatRacing-2.0-RELEASE.jar
What's new
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/PitBoxManagerclasses: each race can define any number of pit boxes, stored in the samerace.ymlas 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 asRaceCreator. - New
/pitbox create|list|remove|setAllowed|setColorcommands, 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 assetLapCount). - 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
DSQmarker, below all qualified finishers.
🌍 Localization
- Full
fr_FR/en_UScoverage for every new pit box message, command, and creation step.
🛠️ General / Technical
PitBoxManagermirrorsCheckpointManager'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 (
TIMEDfor 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.
This mod has no additional files

