Field Guide

HachiDraft Manual

How to host, join, configure, draft, and export a Blood on the Clocktower script.

Start Here

Quick start

  1. Host a lobby. Enter a Storyteller name, choose the rules, and optionally upload an official BOTC script JSON.
  2. Share the code. Players join with the short lobby code and a unique display name.
  3. Wait for seven players. The draft cannot begin with fewer than seven non-Storyteller players.
  4. Run bans or votes. Each player acts from their own device. The server enforces every allowance and restriction.
  5. Resolve characters. Evil characters resolve first; good character types and choices follow when setup information is known.
  6. Export the script. The Storyteller copies or downloads the generated JSON and imports it into the official BOTC app.

The Storyteller controls settings, starting, forced phase completion, final assignment where applicable, export, and lobby closure. Player browsers submit choices; the server decides what is legal.

Players, spectators, and additional Storytellers
  • Players count toward lobby capacity, the seven-player minimum, team composition, bans or votes, and character assignment.
  • Spectators may opt in from the waiting lobby. Anyone joining after all player seats are occupied automatically enters as a spectator instead of being rejected. Spectators do not count as players and receive a read-only observer view with live information similar to the Storyteller view.
  • A spectator may reclaim a player seat before the draft if the player capacity is not full.
  • A Storyteller can use Manage on a player or spectator card to promote that participant to an additional Storyteller.
  • Additional Storytellers do not count as players and receive full Storyteller controls.
  • Before the draft, any Storyteller can step down into a spectator seat. If no Storytellers remain, a connected player can claim the open seat; that participant then stops counting as a draft player.
  • A disconnected Storyteller keeps the seat for five minutes in the waiting lobby. After that grace period the seat is released and the former Storyteller becomes a spectator. During an active draft, the seat remains protected until the lobby returns to waiting.
Interface, profiles, sound, and reconnecting
  • The upper-right controls provide one-click mute, sound and display settings, and a book button beneath the settings cog that opens this manual. Display settings include a toggle that disables all interface, draft, reveal, and background animations.
  • Selecting your profile picture in a lobby opens the avatar picker. Your most recent avatar is reused when possible.
  • Green and white connection indicators distinguish connected and disconnected lobby members without relying on color alone.
  • HachiDraft saves the current player session in the browser so returning through the lobby code can restore the correct player route.
  • The update modal reads the current version and release notes from the app manifest; it is not a separate list maintained by each page.
  • On capable desktop browsers, the WebGL background responds to the current phase, pointer activity, staged bans and picks, confirmations, removals, and Democracy vetoes. Mobile and lower-end devices receive lightweight fallback pulses; reduced-motion preferences disable those animations.
  • Selected character tokens briefly surface inside the atmosphere. During banning, known bans remain around the ritual field; Blind bans show only your own staged choices until they are revealed. Script Building and the final reveal arrange accepted script characters into a background constellation.
  • Animated background can be disabled at any time to keep the static gothic backdrop. Desaturated colors retains motion and reactive effects with a muted near-monochrome palette. Both choices are remembered by the current browser.
Configuration

Lobby settings

Max Players

The maximum number of active player seats, from 7 to 20. Spectators and Storytellers do not consume these seats. It cannot be lowered below the number of players already present.

Good Bans / Votes

How many direct bans each good player receives, or how many votes they receive in Democracy. A player may submit fewer. At zero, affected players are automatically marked complete and do not see a confirmation step.

Evil Bans / Votes

How many direct bans each Demon or Minion receives, or how many votes each receives in Democracy. At zero, affected evil players automatically skip voting confirmation.

Good Demon Ban Limit

The maximum number of Demon characters one good player may ban or vote for. Set it to -1 to disable this cap.

Good Minion Ban Limit

The separate maximum for Minion characters. A value of 1 on both limits allows one Demon and one Minion; -1 disables that cap.

Character Picks

The number of preferences each player submits from their assigned character pool. Final use depends on the assignment mode.

Random Fallback

Allows the server to select a legal, unbanned character when a player does not finish choosing. Randomness never bypasses bans or team restrictions.

Marionette Chance

The chance that Marionette setup is active. When active, one normal Minion picker is removed. In Democracy this is resolved before evil seats are assigned.

Votes Required to Ban

Democracy only. A character is provisionally banned when its total votes meet or exceed this threshold. Evil vetoes can lower the total afterward.

Friendly Lobby Code

An optional 4–8 character code using easy-to-read letters and numbers. Leave it blank to generate a collision-checked code.

Pick/Ban

Ban styles

01

Structured

Bans are direct and visible. A good player may use at most one Outsider ban. Demon and Minion limits are counted separately, and Townsfolk may fill the remaining allowance.

02

Blind

Bans are direct, but submitted bans remain hidden from ordinary players until banning ends. The Storyteller can still monitor submissions. Good-player Demon and Minion caps still apply.

03

Democracy

Ban allowances become votes. Submitted votes are tallied per character, and only characters reaching the configured threshold are provisionally banned.

Democracy: voting and veto sequence
  1. The app preselects one Demon seat and the required Minion seats before voting so it knows who will receive vetoes.
  2. Every drafted player submits up to their good or evil vote allowance. A player cannot put multiple votes on the same character.
  3. Characters at or above the threshold become provisional bans. Characters below it remain available.
  4. Each preselected Demon or Minion player receives one optional veto. A veto removes exactly one vote from one currently banned character.
  5. If the adjusted total drops below the threshold, the character immediately becomes available again. A role with votes still at or above the threshold stays banned.
  6. The Storyteller may force-complete voting or vetoes; incomplete players are treated as submitting what they staged or skipping their veto.
Democracy: setup-character exceptions

Democracy requires stable evil seats during voting. Atheist, Kazali, Legion, Lord of Typhon, and Summoner are disabled because their setup replaces or restructures those seats.

Lil’ Monsta remains enabled: if selected, the original Demon-seat player becomes a Minion-role player while remaining the Lil’ Monsta holder.

Marionette remains enabled: when its chance succeeds, the app preselects one fewer normal Minion picker.

Pre-bans and minimum pools

Storyteller pre-bans are locked before players act and cannot be vetoed. HachiDraft also protects the draft from exhausting a character team: at least four roles from each playable team must remain available.

Force-assignment-only roles, such as Drunk and Marionette, cannot be manually banned, voted for, or picked as ordinary visible characters.

After Bans

Character assignment modes

Players Choose

Players submit preferences from their assigned pool. After the required number is submitted, the app resolves a legal final character from those choices.

Storyteller Chooses

Players submit preferences, but the Storyteller selects each final character. The Storyteller may also use additional legal roles shown by the app.

Friend’s Draft

Players draft for another player rather than themselves. Everyone chooses simultaneously from the target pool, while target identities remain private to clients.

Automatic

The server assigns legal unbanned characters without waiting for player preferences. Evil setup resolves first, then good character types and final roles.

Script Building

Players vote Yea or Nay on proposed script characters. The Storyteller can configure the vote timer and force a proposal to resolve. This replaces the ordinary ban-and-pick flow.

Assignments and hidden setup information are server-authoritative. A route parameter, browser value, or edited form cannot grant Storyteller permissions or make an illegal role selectable.

Team Composition

Setup and ordering rules

PlayersDemonsMinionsGood players
7–911Total − 2
10–1212Total − 3
13–2013Total − 4
Why evil resolves first

Demon and Minion choices can alter setup. HachiDraft therefore resolves the Demon and required Minions before splitting good players into Townsfolk and Outsiders.

Outsider counts

The base Outsider count follows the standard player-count cycle. Known selected setup modifiers are then applied when enough information exists. Supported examples include Baron (+2), Balloonist (+1), Fang Gu (+1), and Vigormortis (−1); variable modifiers are rolled once per lobby and reused consistently.

The Drunk occupies an Outsider slot but is shown a Townsfolk character. The app handles that as a hidden forced assignment rather than a normal visible pick.

Special evil setups

Some characters alter the usual one-Demon-and-Minions structure. Outside Democracy, HachiDraft delays Minion seat assignment until the selected Demon setup is known so Atheist, Kazali, Legion, Lil’ Monsta, Lord of Typhon, Summoner, and Marionette can be handled safely.

When Kazali is selected, the Kazali player receives a private player-card panel showing how many Minion seats remain. They choose the players first; those players then draft or receive their Minion characters before good character types are assigned. Automatic assignment pauses for this player choice, and Friend’s Draft rebuilds its temporary teams around the chosen seats.

The complete list of automated exceptions is in Character-specific rules.

Automated Exceptions

Character-specific rules

This section describes what HachiDraft automates while building teams, assigning characters, and generating the possible-character script. It does not simulate night abilities or replace Storyteller rulings during the game.

Characters that replace the normal evil setup
  • Atheist: only the Demon-seat player may select Atheist as the special setup choice; ordinary Townsfolk players cannot choose or receive it. Selecting it moves that player and every other player to the good team, after which the remaining players are assigned Townsfolk or Outsider pools. Atheist is disabled in Democracy.
  • Kazali: all non-Kazali players are reset to good first. The Kazali player privately chooses the normal number of Minion players; each chosen player then drafts or receives a Minion character. Good character pools wait until those seats resolve. Kazali is disabled in Democracy.
  • Legion: the app assigns Legion to 70% of players, rounded up, while always keeping a strict majority. Every Legion player is placed in the Demon pool and all remaining players become good. Legion is disabled in Democracy.
  • Lord of Typhon: the selected Demon remains in place, separately assigned Minion seats are removed, and every other player is reassigned through the good pools. The Lord of Typhon player then chooses four or five Minion characters for the generated script before reveal can complete. Lord of Typhon is disabled in Democracy.
  • Lil’ Monsta: the setup creates one more Minion seat than the normal player-count table. In Democracy, the original Demon-seat player is treated as a Minion-role player while remaining the Lil’ Monsta holder.
  • Summoner: the Demon-seat player may select Summoner even though it is a Minion character. The app reduces the additional Minion seats by one but always creates at least one other Minion, even when another setup modifier would otherwise reduce the count to zero. Summoner is disabled in Democracy.
  • Marionette: if Marionette is available, the configured chance is rolled once for the lobby. When active, one fewer visible Minion seat is created. Marionette is hidden and cannot be banned, voted for, or selected as an ordinary character.
Outsiders, hidden roles, and final recounts
  • Baron: adds 2 Outsiders.
  • Balloonist: adds either 0 or 1 Outsider.
  • Fang Gu: adds 1 Outsider.
  • Godfather: adds either 1 Outsider or removes 1 Outsider.
  • Vigormortis: removes 1 Outsider.
  • Drunk: occupies an Outsider slot but is secretly forced onto a player assigned to the Townsfolk pool. That player is shown one of their Townsfolk choices when possible, or another available Townsfolk character. Drunk cannot be selected directly.

Balloonist and Godfather are rolled once per lobby and reuse the same result. After every final character is known, HachiDraft recounts the modifiers and may replace a non-forced good character to make the Townsfolk/Outsider split match the final setup.

Pairing, duplicate, and extra-evil safeguards
  • Huntsman / Damsel: assigning Huntsman forces Damsel onto another good player if Damsel is not already present. The chosen player becomes an Outsider and their previous choices are cleared. Generated and uploaded script pools also try to include Damsel whenever Huntsman is present.
  • King / Choirboy: random resolution gives Choirboy its normal weight once King has been chosen; otherwise Choirboy is strongly deweighted.
  • Village Idiot: unlike most characters, which are unique, up to three Village Idiots may be assigned or included on a generated script.
  • Extra-evil risk: Bounty Hunter, Cult Leader, Goon, Mezepheles, and Ogre are limited to two total characters in play and two entries on a generated script. Random assignment prefers a non-risk character after one of these is already present when another legal option exists.
Generated-script character support

Standard generation and finalized Script Building favor useful character combinations rather than filling every team uniformly at random:

  • Lleech and Zombuul favor Pacifist, Sailor, Devil’s Advocate, or Fool.
  • Dreamer favors Spy, Widow, or Wraith.
  • Assassin favors Gossip, Gambler, or Tinker.
  • Goblin and Vizier favor Alchemist; Shabaloth favors Professor; Imp favors Ravenkeeper or Sage; Summoner favors Po or Riot.
  • The builder adds an Outsider-count support role, a misinformation role, and Gardener when eligible, unbanned, and compatible with the current pool.
  • Atheist, Amnesiac, Goon, Heretic, Hermit, Legion, Politician, Wizard, and Zealot are deliberately less common during automatic script construction.
  • Lil’ Monsta or Lord of Typhon increases the preferred Minion pool from four to five. Summoner has a 50% chance to do the same.

Blocking jinx pairs are removed or rejected during script construction. These support rules affect the exported list of possible characters; they do not assign extra roles to players unless a player-assignment rule above explicitly says so.

Official App Output

Script pools and JSON

Standard Generation

Builds a curated possible-character script, preserving team coverage and known support or pairing needs while excluding banned roles. Final scripts have exactly 13 Townsfolk when enough eligible roles exist and never exceed 13.

Buffet Generation

Buffet draws broadly from the eligible pool, then applies the official script team limits, including the hard maximum of 13 Townsfolk.

Uploaded Scripts

An uploaded official-format JSON limits the draft pool. Uploaded-script drafting requires Storyteller Choice, Friend’s Draft, or Script Building.

The generated JSON keeps official character IDs for unchanged standard roles and places metadata first when present. It also adds a custom unnamed Fabled whose token is a QR code using a compact scheme-free lobby address. Scanning it opens the lobby's full public join page in modern QR readers, and the complete HTTPS link remains available in the Fabled ability text without placing a name over the QR image. This utility Fabled is not a playable character and does not change the game setup. While the lobby is waiting, the Storyteller can also download a fresh random script containing the same QR Fabled. Only the Storyteller can generate, copy, download, or close the completed lobby.

Common Questions

Troubleshooting

Why can’t the Storyteller start?

At least seven non-Storyteller players must be joined. Settings and an uploaded pool must also leave enough legal roles for every playable team.

Why is a character button disabled?

It may be pre-banned, already banned, force-assignment-only, outside your assigned team, already chosen, blocked by a good-player cap, unavailable under Democracy setup, or unsafe because too few roles would remain.

Why did a Democracy veto not unban the role?

A veto removes one vote; it does not guarantee an unban. The role remains banned if its adjusted total still meets the configured threshold.

What happens when someone does not finish?

The Storyteller can force-complete ban and veto stages. Character behavior depends on the assignment mode and whether Random Fallback is enabled.

Does HachiDraft store campaigns?

No. Lobbies are live-session state rather than campaign storage. Copy or download the generated JSON before the Storyteller closes the lobby.

An unhandled error has occurred. Reload x