~/projects/looprun

GAMES2026

LoopRun

A Minecraft speedrunning plugin that loops players through randomized worlds and syncs their Discord voice channel to the player they are following.

TIMELINE
Jan 2026 – Feb 2026
TEAM
Solo
CONTEXT
Personal project
Diagram of players moving around a loop of four worlds while their Discord voice channels mirror which world they are in.

Overview

LoopRun is a Minecraft plugin built for a speedrunning format where players loop through a sequence of worlds, advancing on certain events (like completing an advancement). It links each player’s Minecraft account to a Discord account and automatically moves that player’s Discord voice session to match who they’re currently following or playing alongside in-game.

Features

  • /loop start and /loop stop commands to control the game
  • Per-player world looping using Multiverse-Core world creation/deletion and Multiverse-Inventories for per-world inventory separation
  • Discord bot integration (via JDA) with slash commands for linking a Discord account to a Minecraft player
  • Automatic Discord voice channel movement that follows player state changes (world changes, join events)
  • Armor restrictions and join/world-change announcements via dedicated listeners

How it works

GameManager listens for advancement and world-change events and drives players through the Multiverse-managed world sequence, copying player profile data between worlds via the Multiverse-Inventories API. The discord package runs a JDA bot: LinkManager persists Minecraft-to-Discord account links in a YAML file, and VoiceManager listens for in-game world/join events and moves the corresponding Discord guild member between voice channels. The JDA dependency is shaded and relocated in the plugin jar to avoid classpath conflicts with other plugins.