Skip to content
JSLarsonPublic

About

WIP BOTC web app

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Blood on the Clocktower Grimoire (Name WIP)

A browser-based "Grimoire" (storyteller's tool) for running games of Blood on the Clocktower, built for my uni's BOTC club.

Grimoire demo

Work in progress. Core state management and a functional token/script/bluff/reminder UI are working. Fancy stuff forthcoming...

Purpose

I wanted a grim tool optimized for local play with features other (excellent!) tools lack. Specifically auto-resolution, offline modes, and co-storytelling support. I run games for the 100+ member university club I founded, so I'm building the tool I want to use.

Current features

  • Add, remove, kill, revive, and rotate tokens on the board
  • Load offical and custom scripts (but not homebrew, yet) and scope character selection to it
  • Bluff support with auto-generation
  • Track and add per-character and global reminder tokens
  • View in-play jinxes
  • Full undo/redo history!

Planned features

  • MAJOR UI OVERHAULS FOR EVERYTHING
  • Pass 'n play role assignment
  • Step-by-step storyteller instructions and auto-resolution
  • Offline support as an installable PWA
  • Online support for co-storytelling

Architecture notes

  • State is managed with a single useReducer over a discriminated-union GrimAction type, with an undo/redo history wrapper around it.
  • All actions are plain, deterministic JSON to support future multiplayer features.
  • Game logic was first prototyped in Python (see /prototype) as I figured out the shape of things.

Tech stack

React, TypeScript, Vite. Character/script data vendored locally from TPI's offical community release rather than fetched at runtime.

AI disclosure

All code within was written by me by hand or taken from common templates. However, AI was used in planning architecture and identifying bugs. This is my first significant web project, so I relied on the help and got rather savvy with it. Thank you for bearing with me.

Running locally

npm install
npm run dev

About

WIP BOTC web app

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages