~/projects/molehunt

GAMES2026

Molehunt

A Minecraft social-deduction minigame where anonymized "moles" try to eliminate innocents inside a shrinking, altitude-capped arena.

TIMELINE
May 2026 – Sep 2026
TEAM
Solo
CONTEXT
Personal project
Side-view diagram of the Molehunt arena: world border closing in, altitude cap dropping, lava rising, and identical anonymized players.

Overview

Molehunt is a Minecraft social-deduction minigame. At game start, players are secretly assigned a role: a configurable number of “moles” (who know each other’s identities) try to eliminate the “innocents,” while innocents try to survive without knowing anyone’s role. Nametags, chat, the tab list, and the player locator are disabled so players can’t identify each other except by voice through proximity chat.

Features

  • Role assignment with moles and innocents, skins anonymized so players can’t be identified visually
  • Combat tracker that attributes kills through a fallback rule when Minecraft’s own damage attribution isn’t reliable, with a “jester” mechanic based on damage dealt within a commit window
  • Shrinking world border combined with a separate altitude ceiling and rising lava, both run as independently configurable timed phases
  • Countdown-gated game start with a title/chat reveal of each player’s role
  • Proximity voice chat via the Simple Voice Chat API, disabled automatically for eliminated (spectator) players
  • Admin commands (/mh) for managing games and a /role command for players to check their own role
  • Per-game world regeneration integrated with Multiverse

How it works

The plugin is built around a GameManager and GameState that drive the match lifecycle, with AreaController and LavaFiller handling the shrinking-arena mechanics as scheduled Bukkit tasks that snapshot their phase configuration at game start so a mid-game config reload can’t shift the border. CombatTracker records recent damage per player within a time window to resolve ambiguous kills, and SkinAnonymizer / TabListHandler strip identifying information from the client. The plugin soft-depends on Multiverse-Core and Multiverse-Inventories for per-game world handling and Chunky for pre-generating arenas.