BOTCH

A mod to help a game master run Blood on the Clocktower games in a minecraft server

Botch — Blood on the Clocktower Helper

A Fabric plugin that pairs with my papermc plugin to turn a Minecraft server into a Blood on the Clocktower session. Players vote by right-clicking copper bulb lamps, the game master controls time of day and nominations from in-game commands, and a sidebar scoreboard tracks the living and dead in real time.

> New to Blood on the Clocktower? It is a social deduction game of deduction, bluffing, and murder. One team of villagers tries to identify and execute the demon hiding among them before it kills everyone. Read the rules at wiki.bloodontheclocktower.com.


What this does for the Game Master

  • Voting lamps — each player has a copper bulb block in the world. Right-clicking it toggles their vote. The first time a player votes Aye their lamp lights up; clicking again switches to Nay and extinguishes it.
  • Nominations/vote begin <player> starts a sequential vote where each player votes one at a time. The result is announced automatically; if the vote passes, the nominated player is marked dead.
  • Dead tracking — dead players appear greyed out with a skull on the scoreboard. Players executed during a vote can no longer vote in future rounds (their lamp turns to a different block type).
  • Time of day/botch day, /botch evening, and /botch night smoothly advance the world clock and play an ambient sound on all Fabric clients. A title is shown to every player explaining what to do.
  • Live scoreboard — a persistent sidebar shows the current time of day, every player's status (alive, dead with vote remaining, dead vote used), and whose turn it is to vote during a nomination.
  • Boss bars — during a vote, the top bar shows the running Aye/Nay tally and turns green when the vote is passing. The lower bar shows the active voter's name, their current choice, and the time remaining.

Setup guide

1. Install

This comes with both a papermc plugin and a fabric mod, you will need both for full features.
It does work perfectly well with just the papermc plugin, you will simply lack transparent dead players and noises to signal day time changes.

2. Place and register voting lamps

Place a Waxed Copper Bulb (or any lightable block) in the world for each player. Stand close, look directly at the block (within 5 blocks), and register it with a seat name:

/vote blocks add One
/vote blocks add Two
/vote blocks add Three

Check placement with /vote blocks show — all lamps highlight yellow for 10 seconds.

4. Assign players to lamps

Link each player name to their lamp so the vote system knows who owns which block: Easiest way to do this is with

/vote blocks list

And then lick the [unassigned] button next to a block and type their name in. You can also use the arrows in the chat list to re-order the blocks.

5. Set the vote timer

Each player has a limited time to vote. The default is 15 seconds per player.

Change time allowed per player in seconds using

/vote time 20

6. Run a day

At the start of each day phase, advance the world to daytime:

/botch day

This rushes the world clock to dawn and plays the morning ambient sound. Players see a title reading Morning / You can walk around town safely.

Let players walk around and talk as normal.

7. Run an evening vote

Advance to evening and start discussions and nominations, start the vote:

/botch evening
/vote begin Alice Bob

The above example /vote begin means that Alice nominates Bob for execution. Each player's lamp extinguishes, then players vote one at a time in block order starting after the nominator — the current voter's lamp is highlighted and they have the configured number of seconds to right-click Aye or Nay. The boss bars show the live tally.

When all votes are cast the result is announced in chat. If the vote passes it is announced to all players, but no automatic killing occurs.

8. Advance to night

/botch night

World time moves to night and the night ambient sound plays. Players see Night / Get to bed! Hurry Now!.

9. Kill or revive players manually

If a player dies through the story (demon kill, execution due to a vote, etc.) you can update their status directly:

/botch dead Alice
/botch revive Alice

10. Reset between games

/botch game reset

Resets all vote lamps back to their default (unlit) state and marks all players as alive again.


Command reference

All commands require the botch.admin permission (default: op).


/botch — Game management

Command Description
/botch players Show the player roster (same as /botch players list).
/botch players list Display the full player list with reorder and remove buttons.
/botch players add <name> Add a player to the roster. Names do not have to match Minecraft usernames.
/botch players remove <name> Remove a player from the roster.
/botch players up <name> Move a player up one position in the roster.
/botch players down <name> Move a player down one position in the roster.
/botch dead <name> Mark a player as dead. Their lamp block changes to indicate they have been executed.
/botch revive <name> Mark a player as alive again.
/botch game reset Restore all lamp blocks to their default state and mark all players alive. Cannot be used while a vote is active.
/botch day Advance world time at 10× speed to dawn (tick 0), then at normal speed to midday (tick 6000), then freeze. Plays morning.ogg on all Fabric clients and shows the Morning title.
/botch evening Advance time to pre-sunset (tick 11000) at 10× speed, then at normal speed to early night (tick 12500), then freeze. Plays evening.ogg and shows the Evening title.
/botch night Advance time to early night (tick 12500) at 10× speed, then at normal speed to late night (tick 22500), then freeze. Plays night.ogg and shows the Night title.

/vote — Voting setup and control

Block management

Command Description
/vote blocks add <name> Register the block you are looking at (within 5 blocks) as a voting lamp with the given seat name. Must be a lightable block.
/vote blocks remove Unregister the block you are looking at.
/vote blocks list List all registered lamps with their assigned player, order controls, and a remove button.
/vote blocks show Highlight all registered lamps in yellow for 10 seconds so you can locate them.
/vote blocks goto <name> Teleport to the saved view position for a lamp and highlight it.
/vote blocks setplayer <blockName> [playerName] Assign a player to a lamp. Omitting playerName opens a clickable picker of online players.
/vote blocks up <name> Move a lamp earlier in the voting order.
/vote blocks down <name> Move a lamp later in the voting order.
/vote blocks removename <name> Remove the player assignment from the named lamp (lamp itself stays registered).

Vote control

Command Description
/vote time <seconds> Set how many seconds each player has to vote. Default is 15. Saved to config.
/vote begin <playerName> <playerName> First player nominates a player for execution. playerName must match a player assigned to a lamp. All lamps are extinguished, then players vote sequentially in block order.
/vote end End the current vote immediately and tally results.

Scoreboard

The sidebar scoreboard is always visible and refreshes every second. It shows:

  • TitleBlood on the Clocktower normally; the nomination message during a vote.
  • Line 1 — Separator.
  • Line 2 — Current time of day (☀ Day / 🌅 Evening / 🌙 Night). Updated when a /botch day/evening/night command is run, and initialised from world time when the server starts.
  • Lines 3+ — One line per assigned player, in block order. Icons indicate status:
    • 🖉☻ Name — alive
    • 🖉☠ Name — dead, has their one remaining vote available
    • ⛔☠ Name — dead, vote used
    • A is appended during a vote to show the player voted Aye.
    • The current voter's name is highlighted in gold and bold.

Boss bars (during a vote)

Bar Content
Top — Outcome <nomination message> · N Aye / N Nay. Fills proportionally to the yes vote share. Green when the vote is passing (≥ 50 %), red when failing. Only counts players who have already voted plus the current voter.
Bottom — Timer <playerName> · Aye/Nay · Ns. Fills as time counts down. Yellow. Updates live as the current player toggles their lamp.

The BOTCH Team

profile avatar
  • 1
    Projects
  • 59
    Downloads