townsquare/README.md

125 lines
6.3 KiB
Markdown
Raw Normal View History

2020-10-01 13:19:48 +00:00
# Blood on the Clocktower Grimoire & Town Square
2020-04-18 19:14:06 +00:00
2023-03-14 10:10:55 +00:00
> :warning: **This project is no longer actively maintained** and will only receive critical bug fixes. :warning:
2021-10-19 08:46:15 +00:00
2020-12-22 14:17:58 +00:00
![social](https://user-images.githubusercontent.com/325521/102897760-d1147b00-4468-11eb-9d7b-63a204bc9fc1.png)
2020-04-18 19:14:06 +00:00
2020-05-01 19:19:15 +00:00
This is an unofficial online tool to run Blood on the Clocktower games through Discord or other digital means.
2021-02-28 12:48:27 +00:00
It is supposed to aid storytellers and players by allowing them to quickly set up games, run votes and much more.
2020-04-18 19:14:06 +00:00
2020-12-18 20:05:14 +00:00
[You can try it online!](https://clocktower.online)
2020-04-18 19:14:06 +00:00
2021-02-28 12:48:27 +00:00
If you want to learn more about how to use the app as a player, [JayBotC](https://www.youtube.com/channel/UCNZy-4Rp877XtTHaIZdWYFQ) kindly created two tutorial videos.
2020-10-31 18:35:24 +00:00
2020-12-27 20:56:43 +00:00
### How to host a game
[![How to host a game](https://img.youtube.com/vi/lVRJPBXfqxg/0.jpg)](https://www.youtube.com/watch?v=lVRJPBXfqxg)
### How to play a game
[![How to play a game](https://img.youtube.com/vi/VCpFnJFiCbk/0.jpg)](https://www.youtube.com/watch?v=VCpFnJFiCbk)
## Features
2020-05-24 20:56:27 +00:00
- Public Town Square and Storyteller Grimoire (toggle with **shortcut \[G\]**)
- Supports custom script JSON generated by the [Script Tool](https://bloodontheclocktower.com/script)
2020-12-18 20:05:14 +00:00
- Live Session for Storyteller / Players including live voting and character distribution!
- Includes all 3 base editions, Travellers and Fabled plus all officially spoiled characters so far!
2020-05-24 20:56:27 +00:00
- Night sheet and reminder text for each character ability to help storytellers
2021-02-26 08:58:20 +00:00
- Full homebrew support for hosting and playing games with your own sets of characters
2020-05-24 20:56:27 +00:00
- Many other customization options!
2020-12-20 21:01:56 +00:00
### Custom Script Support
2022-01-30 11:12:51 +00:00
Any custom script generated by the official [Script Tool](https://script.bloodontheclocktower.com/) is supported out of
2020-12-20 21:01:56 +00:00
the box and you only need to upload it to get the selected set of characters into your grimoire. If you want to customize
your script further, there is an additional `"_meta"` object that you can add to the script like you would add a normal
character:
```json
[
{
"id": "_meta",
"name": "Deadly Penance Day",
"author": "TPI",
"logo": "https://url.to/your/logo.png"
}
]
```
This will provide your local Grimoire (and those of your live session players) with more information to show about
your custom script - instead of "Custom Script" it would show "Deadly Penance Day" on the character reference sheet,
2021-02-26 08:58:20 +00:00
for example. The logo will be shown to your players after they have enabled custom images in the Grimoire menu.
2020-12-20 21:01:56 +00:00
### Custom Character Support
In order to add custom characters to your local Grimoire, you need to create a JSON definition for them,
2020-06-30 12:16:58 +00:00
similar to what is provided in the [`roles.json`](https://github.com/bra1n/townsquare/blob/main/src/roles.json) for the 3 base editions. Here's an example of how such a character
2020-06-30 11:54:45 +00:00
definition file might be written:
```json
2020-06-30 11:54:45 +00:00
[
{
"id": "acrobat",
2020-06-30 12:17:33 +00:00
"image": "https://github.com/bra1n/townsquare/blob/main/src/assets/icons/acrobat.png?raw=true",
"edition": "custom",
"firstNight": 0,
"firstNightReminder": "",
"otherNight": 49,
"otherNightReminder": "If either good living neighbor is drunk or poisoned, the Acrobat dies.",
"reminders": ["Die"],
"remindersGlobal": [],
"setup": false,
"name": "Acrobat",
"team": "outsider",
"ability": "Each night*, if either good living neighbor is drunk or poisoned, you die."
2020-06-30 11:54:45 +00:00
},
{
"id": "investigator"
},
{
"id": "imp"
}
2020-06-30 11:54:45 +00:00
]
```
2020-06-30 11:54:45 +00:00
This definition JSON includes a custom character, the Acrobat, and 2 base game characters, the Investigator and the Imp.
For base game characters, it is sufficient to only provide the ID, similar to what you get from the Script Tool.
**Required properties:** `id`, `name`, `team`, `ability`
2021-02-11 20:39:52 +00:00
- **id**: the internal ID for this character, without spaces or special characters<br>
_Note_: this ID needs to be unique and can't be the same as any ID already used by an existing character, otherwise the custom character will be overwritten with the existing role!
2021-02-26 08:58:20 +00:00
- **image**: a URL to a PNG of the character token icon (should have a transparent background!)<br>
_Note_: custom images will only be visible after enabling them in the Grimoire menu!
- **edition**: the ID of the edition for this character. can be left blank or "custom"
- **firstNight** / **otherNight**: the position that this character acts on the first / other nights, compared to all
other characters<br>
_Note_: must be a positive number or zero, with zero being treated as "does not act during the night"
- **firstNightReminder** / **otherNightReminder**: reminder text for first / other nights
- **reminders**: reminder tokens, should be an empty array `[]` if none
- **remindersGlobal**: global reminder tokens that will always be available, no matter if the character is assigned to a player or not
- **setup**: whether this token affects setup (orange leaf), like the Drunk or Baron
- **name**: the displayed name of this character
- **team**: the team of the character, has to be one of `townsfolk`, `outsider`, `minion`, `demon`, `traveller` or `fabled`<br>
v2.13.0 (#168) * add support for custom fabled (closes #110) * 2.13.0 * show custom fabled first * add recordVoteHistory & clearVoteHistory to session menu * Update CHANGELOG.md * socket part of toggle recordVoteHistory analogous to isNight * remove accidental * Add files via upload * add custom fabled * Add option to reduce night animations to save power. * add fallback icon for fabled * changelog * disable all animations now * linter * add 'on the block' indicator - after vote, ST chooses to put onto block / empty block / no change to block - player menu has add / remove from block - players are automatically removed from the block when (i) they die (ii) another player is put onto block - fixed crash on add/remove/etc player mid vote * hide rounded corners on maximized modals (barely visible anyway) * ST always sees vote history i.e. toggle affects only players * empty block at night * avoid clashing with seat icon * nlc: toggle within session.js * lint * minor * Use proper "Exile" terminology for exile * Add info about "Banishment"->"Exile" to CHANGELOG * requested changes * remove direct ST control of block * player menu order * move block/night logic from socket to menu * minor fix to previous * on block -> marked * requested changes * requested change Co-authored-by: Steffen <steffen@baumgart.biz> * fix players being moved or removed during a nomination (closes #164) add vue linter * let's try adding a lint error * linter adjusted * it's working! * requested change record marked player id in session * feedback implemented npm audit * prepare develop branch * adjust linter config * revert version bump * fixes & visuals * Update CHANGELOG.md * restore old lint command (fixes #170) * minor fix default * show jinxed interactions on character reference modal * 2.13.0 * changelog Co-authored-by: nicfreeman1209 <nicfreeman1209@gmail.com> Co-authored-by: nicfreeman1209 <14160941+nicfreeman1209@users.noreply.github.com> Co-authored-by: Adrian Irving-Beer <wisq@wisq.net> Co-authored-by: Andrew Conant <emptierset@gmail.com>
2021-05-15 18:07:54 +00:00
_Note_: if you create a custom Fabled character, it will be automatically added to the game when the custom script is loaded
- **ability**: the displayed ability text of the character
2020-05-24 20:56:27 +00:00
## [Code of Conduct](CODE_OF_CONDUCT.md)
## [Contributing](CONTRIBUTING.md)
2020-04-28 20:01:41 +00:00
## Acknowledgements and Copyrights
2020-10-01 13:19:48 +00:00
* [Blood on the Clocktower](https://bloodontheclocktower.com/) is a trademark of Steven Medway and [The Pandemonium Institute](https://www.thepandemoniuminstitute.com/)
2020-05-05 10:15:09 +00:00
* Night reminders and other auxiliary text written by [Ben Finney](http://bignose.whitetree.org/projects/botc/diy/)
2020-04-28 20:01:41 +00:00
* Iconography by [Font Awesome](https://fontawesome.com/)
2022-04-04 18:33:22 +00:00
* Background image copyright and permission granted by [Ryan Maloney](https://www.artstation.com/maloney94)
2020-04-28 20:01:41 +00:00
* Webfonts by [Google Fonts](https://fonts.google.com/) and [Online Web Fonts](https://www.onlinewebfonts.com/)
2020-05-13 16:20:58 +00:00
* All other images and icons are copyright to their respective owners
2020-04-28 20:01:41 +00:00
2020-05-13 16:20:58 +00:00
This project and its website are provided free of charge and not affiliated with The Pandemonium Institute in any way.
2020-05-31 20:47:07 +00:00
## Donations
This project will always be available free of charge, since I love building cool things and playing Blood on the Clocktower. If you still want to support me with a donation, you can do that here:
2020-05-31 20:48:48 +00:00
2020-06-01 09:11:36 +00:00
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/bra1n)