Relay Rounds
Run a cooperative relay race with friends using ordered gates and an explicitly passed virtual baton. No command blocks, item transfers or teleportation are required.
Quick start
- Organizer runs
/relayrounds createand/relayrounds invite <player>for each teammate. Organizer is runner one; invitation order sets subsequent legs. Two to eight runners are required. - Each invitee uses
/relayrounds accept, or/relayrounds leaveto decline. A player can belong to only one roster or invitation at a time. - Organizer stands at each destination and runs
/relayrounds gate, in leg order. There must be exactly one gate per runner./relayrounds undoremoves the last draft gate. - With everyone alive, online and in the course dimension, organizer runs
/relayrounds start. - Current runner reaches within two blocks of their gate and runs
/relayrounds handoffwhile the next runner is within three blocks. The final runner also useshandoffat their gate to finish.
/relayrounds status shows roster, acceptance, gate coordinates, elapsed ticks and completed splits. Organizer can cancel; anyone can leave. Leaving a running round cancels it for everyone. A declined draft invitation only removes that runner, so the organizer may need to undo/redefine gates before starting.
Timing and safety
Timing uses server ticks, not elapsed real-world seconds. Lag slows tick time. This is recreational timing, not anti-cheat: the mod does not police flying, shortcuts or teleports within a dimension.
Running rounds cancel when any participant disconnects, dies, becomes a spectator or changes dimension. Rounds are session-only and clear on restart. Drafts, running rounds and finished reports expire after one hour of server ticks from creation. At most 16 rounds exist server-wide, with eight runners/gates each; commands have a five-tick per-player cooldown. Course/roster changes lock when started. Reports go to the requesting player; race notices go only to accepted participants. An invitation sends one private notice to its target.
No blocks or inventories are read or modified and no chunks are forced to load. Existing protection/claim systems are not altered. Multiplayer clients do not need this server-side mod. In singleplayer there is no second player, so a team race requires a multiplayer or LAN session.
Files
Choose only your matching version: NeoForge 1.21.1 / Java 21; NeoForge 26.3 / Java 25. Files are not interchangeable.
Provenance and credits
Original relay state-machine and command behavior by RickCode, MIT licensed. Loader event bootstrap and Gradle/QA scaffolding reuse RickCode's MIT projects Last Good Tick and Pocket Balance. Those projects record redstone history and compare inventory snapshots; this mod instead coordinates consenting relay runners, ordered gates and server-tick handoffs. Neither project is required at runtime. MIT copyright notices are included in each file.
New beta release; bugs may remain. Both published NeoForge production artifacts passed dedicated-server startup and separate installed gameplay QA, with 17 runtime checks per target. The pure relay state-machine suite passed 16,018 assertions on each Java version. Graphical and actual multi-client network testing has not been performed; server QA uses actual server objects with synthetic roster positions for race transitions.

