23 December 2025

Vvardenfell Map in the Style of RuneScape

In the setting of the Elder Scrolls games, the alien, volcanic island of Vvardenfell makes up the northern part of the province of Morrowind, in the northeastern corner of Tamriel. Vvardenfell is the setting for the third Elder Scrolls game, named Morrowind after the province, and this year I've been drawing it in the pixelated style of RuneScape.

Vvardenfell mapped in the style of RuneScape (full-size version)

In the rest of this post I'll talk about how the map came about and describe some of the creative choices made along the way.


Beyond Skyrim

I made the map of Skyrim in the style of RuneScape in summer 2020 as a way to stay entertained at the height of the Covid lockdowns. After that, I experimented with some other ideas, including Stormwind from World of Warcraft and the Imperial City from Skyrim's predecessor Oblivion.
Imperial City, from The Elder Scrolls IV: Oblivion, in the style of RuneScape
Although I'm too young to have played Morrowind when it came out, Vvardenfell seemed very compelling as a place to depict in RuneScape's style. Morrowind and RuneScape are about the same age, and have a similar open-ended design philosophy. Moreover, Vvardenfell is an island of stark contrasts, including salt marshes in the southwest, barren islands in the east, rocky highlands in the northwest and an ash-covered wasteland in the centre, all of which seemed really cool to combine into one map.

The most important decision, and the hardest to change once the map was underway, was the scale. My first thought was to draw the Vvardenfell map at the same scale as the Skyrim map so that the two maps could connect if shown side-by-side. It would mean that, in theory, I could grow the map even further over time to eventually build up a complete map of the continent of Tamriel.

However, a few reasons pushed me towards developing a different scale for the Vvardenfell map:
  • In-game, Skyrim and Vvardenfell are depicted at different scales. In the series lore, the province of Skyrim is more than twice as big as Vvardenfell, but the world is depicted at a larger scale in Morrowind so that the game's playable area is only slightly smaller than it is in Skyrim.
  • My RuneScape-style mapmaking skills have improved a bit since I made the Skyrim map, and I developed a few tools to help speed up the mapmaking process. This meant I could be comfortable making a map which was a little bit larger than before.
  • Joining the maps would have been a bit weird anyway, since Skyrim and Morrowind are set more than 200 years apart, with significant political and geographical changes in between (especially to Vvardenfell).
Because of this, I started fresh with the scale, resulting in a map which was bigger than the map for Skyrim but still manageable to draw. As for the Skyrim map, I scaled up the sizes of towns and cities compared to the surrounding areas.
My Excel plan for the Vvardenfell map.
Each grid square represents one RuneScape "chunk", 192 by 192 pixels on the final map.

Working smart, not hard

Although the Vvardenfell map is bigger than the Skyrim map, I had a few techniques and tools to speed up the process.

For the terrain base layer, rather than blend all the colours by hand like I did for the Skyrim map, I painted solid blocks of colour. Then I used Inkscape's Gaussian blur and pixelate effects to convert the terrain into RuneScape's style. This was not only faster, but also made it easier to go back and make changes if (for example) I wanted to tweak a region's colour palette.
Terrain blending
Rather than place every rock and tree individually, I wrote a Python script to fill regions of the map with randomly-placed sprites, automatically aligned to the grid defined by the pixelated base terrain layer.

Another Python script was used to smooth the edges of mountains, making them conform to straight lines like they usually do on the RuneScape map. The effect is subtle but goes a long way towards giving the mountains the right feel.
Mountain smoothing

"What a grand and intoxicating innocence ..."

In-game, Vvardenfell is surrounded by an infinite ocean, but community modding projects have set out to depict the mainland described in lore. Most notably, Tamriel Rebuilt is a project to bring the rest of the Morrowind province to the game, extending the playable area to six times what's shown in the retail game, while still staying faithful to Morrowind's game design philosophy.

I was very keen to include some of the content from Tamriel Rebuilt on the Vvardenfell map, especially the parts that fit inside Vvardenfell's bounding box. Although I did make progress on this, including getting some nice depictions of Althoa, Firewatch and Old Ebonheart, I did run into some stumbling blocks.

In particular, while Tamriel Rebuilt has been consistently releasing new regions, many areas are still unfinished or with significant overhauls planned. The Clambering Moor to the southwest of Vvardenfell is an example of the former, while Dagon Urul to the northeast is an example of the latter.
Althoa, northeast of Vvardenfell, from Tamriel Rebuilt
Because of this, and because Old School RuneScape's player-designed island competition needed its entries (even joke entries like mine) submitted before 7 January, I decided to put these ambitions on hold and focus on Vvardenfell itself. Still, the outline of mainland Morrowind still appears on the map in pale grey (for this, I'm indebted to the Tamriel Rebuilt masterplan map overseen by Tiny Plesiosaur), and the Saros caldera is the "rekindled" version from Tamriel Rebuilt rather than the version from the Fort Firemoth DLC.

I'd still be very keen to come back and finish the Tamriel Rebuilt areas, either basing them off the extensive maps and concept art that are already available or waiting until those areas have been developed more fully.

Until then, thank you for reading this far, and I wish you wealth beyond measure. To finish off, here is Solstheim as it appears in Morrowind's Bloodmoon expansion.
Solstheim, from Bloodmoon, in the style of RuneScape


19 November 2024

Blood on the Clocktower Weekly Puzzle archive

This page lists the Blood on the Clocktower puzzles which I've posted weekly to the BotC subreddit. I will update the list regularly as new puzzles are posted.

# Title Claimed roles Hidden roles Notes
1 Can the sober Savant solve the puzzle? Savant, Knight, Steward, Investigator, Noble, Seamstress Leviathan, Goblin, Drunk
2 Come Fly With Me Seamstress, Knight, Fortune Teller, Saint, Investigator, Juggler, Clockmaker, Balloonist Leviathan, Goblin, Drunk
3a Not Throwing Away My Shot (7-player) Slayer, Chef, Recluse, Investigator, Washerwoman, Librarian, Empath Imp, Baron, Spy, Poisoner, Scarlet Woman, Drunk
3b Not Throwing Away My Shot (8-player) Slayer, Librarian, Investigator, Saint, Chef, Recluse, Washerwoman, Empath Imp, Baron, Spy, Poisoner, Scarlet Woman, Drunk
4 The Many-Headed Monster Investigator, Empath, Undertaker, Fortune Teller, Librarian, Recluse, Juggler, Dreamer Lord of Typhon, Marionette, Poisoner, Drunk
5a You Only Guess Twice (Alsaahir) Alsaahir, Noble, Knight, Investigator, Empath, Steward, Seamstress Leviathan, Goblin Find an Alsaahir guess to solve the puzzle
5b You Only Guess Twice (Juggler) Juggler, Empath, Seamstress, Steward, Investigator, Noble, Knight Leviathan, Goblin Find a Juggler guess to solve the puzzle
6 Super Marionette Bros Librarian, Saint, Noble, Seamstress, Investigator, Juggler, Knight, Empath, Steward Pukka, No Dashii, Vortox, Marionette, Drunk
7 The Savant Strikes Back Village Idiot × 2, Savant, Fortune Teller, Investigator, Juggler, Shugenja, Dreamer Leviathan, Goblin, Mutant
8 The Stitch-Up Seamstress × 7 Imp, Poisoner Every Townsfolk is a Seamstress
9 The New Acrobat Acrobat, Balloonist, Gossip, Knight, Gambler, Juggler, Steward Imp, Po, Goblin, Drunk
10 Don't Overcook It Slayer, Ravenkeeper, Undertaker, Fortune Teller, Chef, Recluse, Washerwoman Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
11 False Is the New Black Clockmaker, Snake Charmer, Dreamer, Sweetheart, Artist, Sage, Snake Charmer, Artist Vortox, Cerenovus, Pit-Hag, Mutant Guest puzzle by u/Allison314
12a Thunderstruck (6-player) Dreamer, Clockmaker, Empath, Slayer, Courtier, Mayor Vortox, Spy, Scarlet Woman, Lunatic Based on "Race To The Bottom"
12b Thunderstruck (8-player) Librarian, Investigator, Empath, Mayor, Slayer, Dreamer, Clockmaker, Courtier Vortox, Spy, Scarlet Woman, Lunatic Based on "Race To The Bottom"
13 Clockblocking Investigator, Clockmaker, Librarian, Ravenkeeper, Fortune Teller, Slayer, Recluse Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
14 New Super Marionette Bros Slayer, Washerwoman, Undertaker, Fortune Teller, Empath, Chef, Investigator Imp, Poisoner, Spy, Scarlet Woman, Marionette
15 Wake Up and Choose Violets Savant, Klutz, Juggler, Snake Charmer × 2, Clockmaker, Seamstress, Artist No Dashii, Vortox, Evil Twin, Mutant
16 Who Watches the Watchmen? Saint, Empath, Fortune Teller, Nightwatchman, Recluse, Washerwoman, Investigator, Chef Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
17 The Missing Piece Puzzlemaster, Chef, Empath, Fortune Teller, Undertaker, Washerwoman, Investigator, Slayer Imp, Scarlet Woman Find a Puzzlemaster guess to solve the puzzle
18 X and the City Librarian, Juggler, Snake Charmer, Fortune Teller, Balloonist, Saint, Investigator, Recluse Leviathan, Xaan, Drunk
19 He Could Be You, He Could Be Me Librarian, Saint, Recluse, Slayer, Undertaker, Ravenkeeper, Washerwoman, Empath Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
20 The Three Wise Men Village Idiot × 3, Investigator, Saint, Virgin, Ravenkeeper Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
21 Eight Jugglers Juggling Juggler × 8 Leviathan, Goblin, Drunk Every Townsfolk is a Juggler
22 One in the Chamber Chambermaid, Investigator, Slayer, Ravenkeeper, Saint, Recluse, Librarian, Washerwoman Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
23 Goblincore Chef, Washerwoman, Investigator, Fortune Teller, Ravenkeeper, Goblin, Librarian, Slayer Imp, Goblin, Lunatic
24 The Ultimate Blunder Investigator, Klutz, Fortune Teller, Washerwoman, Virgin, Librarian, Chef, Empath Imp, Poisoner, Drunk
25 Clockdoku Sudoku-style puzzle
26 A Major Problem Empath, Saint, Slayer, Recluse, Librarian, Soldier, Undertaker, Chef Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
27 Is This a Legion Game? Legionary × 3, Washerwoman, Investigator, Fortune Teller, Empath Imp, Poisoner Uses Legionary from "Fall of Rome" homebrew
28 A Study in Scarlet Chambermaid, Juggler, Undertaker, Librarian, Clockmaker, Empath, Fortune Teller, Oracle Pukka, No Dashii, Scarlet Woman, Drunk
29 A Dreamer? I'm Not the Only One Dreamer × 8 Imp, Poisoner, Drunk Every Townsfolk is a Dreamer
30 The Babel Fish is a Dead Giveaway Atheist, Artist, Clockmaker, Knight, Noble, Seamstress Imp, Spy, Drunk Two games, one of which has a genuine Atheist
31 No, Your Other Left Chef, Empath, Ravenkeeper, Investigator, Recluse, Undertaker, Fortune Teller Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
32 Prepare for Juggle, and Make it Double Dreamer, Juggler × 2, Recluse, Empath, Saint, Undertaker, Fortune Teller Imp, Poisoner, Baron, Drunk
33 Twice is Coincidence, Thrice is Proof Empath, Recluse, Ravenkeeper, Washerwoman, Librarian, Fortune Teller, Saint, Investigator Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
34 The Vortox Conjecture Mathematician, Sage, Artist, Clockmaker, Seamstress, Juggler, Snake Charmer No Dashii, Vortox, Witch
35 Typhon Season Librarian, Clockmaker, Undertaker, Fortune Teller, Ravenkeeper, Saint, Investigator, Empath Imp, Lord of Typhon, Poisoner, Spy, Drunk
36 What is Your Weapon of Choice? Empath, Saint, Slayer × 2, Ravenkeeper, Investigator, Fortune Teller, Recluse Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
37 New Super Marionette Bros U Undertaker, Washerwoman, Chef, Ravenkeeper, Librarian, Fortune Teller, Empath, Imp Imp, Poisoner, Spy, Scarlet Woman, Marionette, Drunk
38 Snakes on a Plane Recluse, Empath, Ravenkeeper, Investigator, Snake Charmer × 2, Fortune Teller, Saint Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
39 Squid Game Oracle, Juggler, Philosopher, Seamstress, Sage, Artist, Washerwoman, Klutz No Dashii, Witch, Mutant
40 Nine Lives Investigator, Fortune Teller, Recluse, Washerwoman, Saint, Librarian, Empath, Butler, Slayer Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
41 No, John, You Are the Demons Imp, Fortune Teller, Seamstress, Slayer, Chef, Noble, Poppy Grower, Artist Imp, Witch, Drunk, Lunatic
42 Life, the Universe, and Everything Philosopher, Artist, Empath, Undertaker, Fortune Teller, Recluse, Juggler, Saint Imp, Baron, Widow, Drunk
43 Two Many Cooks Chef × 2, Fortune Teller, Investigator, Recluse, Saint, Empath, Ravenkeeper Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
44 Trouble Homebrewing Prodigy × 2, Juggler, Chef, Fortune Teller, Noble, Shugenja, Investigator Leviathan, Scarlet Woman, Drunk Uses homebrew Townsfolk
45a Don't Try This at Home Investigator × 2, Ravenkeeper, Empath, Fortune Teller, Chef, Washerwoman, Slayer Imp, Spy, Scarlet Woman, Drunk, Hermit
45b Don't Try This at Home Investigator × 2, Slayer, Undertaker, Empath, Ravenkeeper, Washerwoman, Chef Imp, Spy, Scarlet Woman, Drunk, Hermit
46 The Princess Diaries Clockmaker, Exorcist, Investigator, Chambermaid, Gossip, Princess, Gambler Imp, Poisoner
47 We Have Evil Twin at Home Saint × 2, Recluse, Investigator, Undertaker, Butler, Washerwoman, Chef, Ravenkeeper Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
48 Solving for X Village Idiot × 2, Mathematician, Chambermaid, Juggler, Golem, Puzzlemaster, Artist Leviathan, Poisoner, Xaan
49 Bastille Day Washerwoman, Librarian, Chef, Recluse, Empath, Saint, Undertaker, Fortune Teller Riot, Poisoner, Baron, Drunk
50 Art Imitates Life, Life Imitates Art Knight, Librarian, Clockmaker, Investigator, Juggler, Artist Leviathan, Goblin, Drunk Two games, each with an Artist asking about the other game
51 Weird Science Washerwoman, Slayer, Recluse, Golem, Virgin, Noble, Artist, Nightwatchman Kazali, Poisoner, Spy, Boffin, Scarlet Woman
52 Two Votes Is Enough Undertaker, Investigator, Butler, Empath, Librarian, Virgin, Recluse, Saint, Ravenkeeper Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
53 Let's Do the Time Warp Again Artist, Klutz, Snake Charmer, Juggler, Clockmaker, Dreamer, Oracle, Mathematician Fang Gu, Vigormortis, No Dashii, Vortox, Witch, Mutant
54 Silence in the Library Librarian, Recluse, Investigator, Fortune Teller, Empath, Chef, Ravenkeeper Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
55 The Life of a Flowergirl Flowergirl, Seamstress, Clockmaker, Klutz, Artist, Juggler, Mathematician, Oracle Fang Gu, Vigormortis, No Dashii, Vortox, Witch, Mutant
56 Meanwhile, at the Legion of Doom Saint, Oracle, Slayer, Empath, Knight, Investigator, Washerwoman, Chambermaid Imp, Legion, Poisoner
57 Neither Victims nor Executioners Noble, Tea Lady, Oracle, Slayer, Seamstress, Artist, Chef, Ravenkeeper Vigormortis, Poisoner, Devil's Advocate
58 Minus One, That's Three Dreamer, Politician, Puzzlemaster, Noble, Nightwatchman × 2, Shugenja, Juggler, Seamstress Riot, Spy, Xaan, Politician
59 Fifty-Fifty Ravenkeeper, Saint, Investigator, Butler, Recluse, Virgin, Empath, Chef, Undertaker Imp, Poisoner, Spy, Baron, Scarlet Woman, Drunk
60 What's a Mind Goblin? Goblin, Poppy Grower, Librarian, Artist, Washerwoman, Empath, Sage, Knight No Dashii, Vortox, Drunk
61 Thus With a Kiss I Die Savant, Seamstress, Mathematician, Sweetheart, Juggler, Oracle, Dreamer, Snake Charmer Fang Gu, Vigormortis, No Dashii, Vortox, Witch, Mutant
62 Have You Ever Seen The Rain? Recluse, Washerwoman, Ravenkeeper, Librarian, Investigator, Empath, Fortune Teller, Undertaker, Slayer Imp, Spy, Scarlet Woman, Drunk Uses the Storm Catcher

09 July 2024

Beginner's guide to Blood on the Clocktower custom scripts

This is a guide for crafting custom scripts for the social deduction game Blood on the Clocktower.

The game's core editions – Trouble BrewingBad Moon Rising and Sects & Violets – are well-tested and meticulously-balanced game-theoretic ecosystems, but the game's enormous cast of characters and complex emergent gameplay interactions create an irresistible temptation to experiment with new combinations of bluffers and puzzle-solvers. This post, which draws heavily on the wisdom already shared within the community, provides a checklist of principles to keep in mind.

Even if you aren't in the business of making custom scripts, unpacking exactly what goes into a great Blood on the Clocktower script is interesting from a game design perspective, and this post will highlight some of the less obvious features that make Clocktower's core editions work so well.

If you have no idea what I'm talking about, introductions to the game can be found here (official website) and here (video).

Outline

The rest of this post consists of ten guidelines, listed in roughly descending order of priority. Links to further resources are provided at the end.
  1. Figure out the basics
  2. Include misinformation
  3. Conceal the outsider count
  4. Conceal which Demon is in play
  5. Avoid good characters who are too easy to confirm
  6. Give the good team reasons to be secretive
  7. Give the evil team an escape hatch
  8. Aim for similar minion "loudness"
  9. Consider using Fabled
  10. Consider starting Teensy
Two things are essential to remember. First, these are guidelines, not commandments. There will certainly be occasions where you decide it's right to do something differently.

Second, the best way to evaluate your script is by playing it! Unexpected interactions between characters are a vital part of Blood on the Clocktower, and giving players creative opportunities to exploit these interactions will make the game all the more fun, but often the only way to discover these interactions and gauge their impact on the player experience will be to watch them show up organically when your script is played.

1. Figure out the basics

So, you have your cool idea for a script. Maybe there's a gameplay theme you want to focus on, or a couple of characters you really like and want to include.

The best place to start is the Script Tool from the official Clocktower site. As well as making it easy to add and remove characters, the Script Tool will automatically figure out night order, flag jinxed characters and generate a printable PDF to share with players.

Make sure your script has the minimum number of characters of each type. For a standard game this is at least 13 Townsfolk, 4 Outsiders, 4 Minions and at least 1 Demon. A lot of the time you'll be working from the bottom upwards, starting with your Demons and building the remaining characters around them.

Among your Townsfolk, make sure there's at least a few that receive information. It's recommended to list Townsfolk in "Steven-approved order", which groups together characters according to when their ability takes effect (again, this is something the official Script Tool can automate, using the "sort" button on the bottom left).

2. Include misinformation

A crucial goal for the good team is separating true information from misinformation. If the good team have no reason to doubt any of the information they are given, it will usually be too difficult for the evil team to win.

Misinformation can be created consciously by the evil team (e.g. through the Poisoner and Pukka's targeted poisoning) or exist passively as a result of characters' abilities (e.g. Drunk or Vortox). If in doubt, it's good to include both types of misinformation sources.


Madness abilities (like Mutant and Cerenovus) are a less effective source of misinformation. Although they may encourage the good team to doubt each other, keep in mind that madness does not cause players to doubt their own information, and players can always break madness if they want to (and they are happy to face the consequences).

3. Conceal the outsider count

By default, the number of Outsiders in the game is determined by the overall number of players. But if the good team know exactly how many Outsiders should be in play, it will be much harder for players on the evil team to bluff as an Outsider. It will also make it easier for Outsiders who believe they are other characters (e.g. Drunk and Lunatic) to figure out their true role.

There are two ways of avoiding this: either include characters that directly manipulate the Outsider count (especially evil characters, since they won't make themselves public), or Outsiders who are less likely to make themselves known to the good team (because of madness, because they don't know they're Outsiders, or because they may change teams). The former type of obfuscation is generally most effective, but if in doubt, it's good to include both (like in the three base scripts).



4. Conceal which Demon is in play

If there is more than one Demon on the script, part of the puzzle for the good team is working out which Demon is in play. Make sure that this is indeed a puzzle! Be careful with Demons which cause more than one death per night, since they will clearly signal their presence unless there are other sources of death at night.

On some scripts (including the classic Trouble Brewing) there is only one Demon on the script. For these games, the good team will not need to spend any effort figuring out which Demon is in play. Keep in mind that some Demons (like the Vortox and Legion) work best when it's not guaranteed they are in play, letting them instil paranoia in the good team.

5. Avoid good characters who are too easy to confirm

In general, games are most fun when no good player can be completely trusted. To support this, it's worth having ways for the evil team to plausibly look like any good character on the script (or as many as possible).

For "information" roles, this is usually not much of a concern: for example, any evil player can bluff as a Clockmaker and invent a number (although extremely info-heavy characters like Undertaker are hard to bluff without an info-heavy Minion like Spy or Widow).

For "power" abilities which kill, protect or resurrect, the consequences are much more visible and it's harder for the evil team to bluff as them without extra support. For example, the Professor's ability to resurrect another character is almost impossible for the evil team to fake unless they have a Shabaloth on their team (and even then, it will usually require coordination with the storyteller or very good luck). The Devil's Advocate, an evil character that can protect others from death by execution, is a versatile mechanism for the evil team to bluff as a protection role like Tea Lady, Pacifist or Sailor.


Another interesting option is to include ways of generating evil characters with Townsfolk abilities. With a Bounty Hunter, Pit-Hag or Boffin on the script, even a player who can confirm they have a Townsfolk ability won't be guaranteed to be on the good team.

6. Give the good team reasons to be secretive

In a typical social deduction game, the good team will tend to be honest and the evil team will tend to lie. But you can make games much more exciting if the good team is incentivised to conceal some of their information.

On the one hand, good team secrecy makes the game less of an uphill battle for the evil team: if every good player thinks it's best to publicly state their role on day one, it will be significantly harder for the evil team to bluff. I would also argue that good team secrecy makes the game more fun: players who enjoy detective work will be able to do it even if they are assigned the evil team, and players who enjoy deception will have more opportunity to do it even if they are on the good team.

Some good characters (like the Damsel, Pixie and Magician) explicitly want to hide their role. Having these characters on the script will nudge the whole good team towards concealing their roles, so that they can protect the members of their team who really need to stay under the radar.

You can also gently encourage the good team to be secretive by including a mix of good characters who want to get killed at night and characters who want to stay alive. If your good characters are taken from across the spectrum pictured below, they will not want to be too open about their roles, in the hope that the Demon will target the wrong player at night.


One last factor to think about is how good team secrecy affects the relative strength of evil characters. If your good team are encouraged to keep quiet about their roles, evil information characters (like Spy and Widow) become much more powerful, whereas characters that need information to work effectively (like Poisoner and Pit-Hag) are weaker.

7. Give the evil team an escape hatch

A loss through bad luck tends to happen more often for the evil team than for the good team. By default, the good team only needs one lucky execution to win the game. To balance this out, consider including an "escape hatch" which helps the evil team get back on their feet if the game is going badly. Another gameplay function served by many escape hatches (including Imp, Zombuul and Fang Gu) is giving the good team more reason to suspect that a dead player is evil, sowing extra distrust.

Escape hatches can take a number of different forms. The most obvious are abilities letting a Demon jump to another character if they're attracting too much suspicion, or letting the game continue after the Demon is executed. Each of the three base scripts includes at least two escape hatches.


8. Aim for similar minion "loudness"

Some minions are "loud", meaning that the good team will learn quickly that they are in play. Others are "quiet", affecting the game in more subtle ways. A quiet minion tends not to work as well on a script where other minions are loud: the good team will be able to work out they are in play by process of elimination (having not seen the obvious "tells" for the loud minions on the script), making it hard for the quiet minion to influence the game discreetly.

A good approach is to have all the minions be a roughly similar level of loudness: all quiet (like in Trouble Brewing), all loud (like in Sects & Violets) or all in the middle (like in Bad Moon Rising).


9. Consider using Fabled

Fabled, while officially called "characters", don't have any agency and aren't controlled by any player. They are best thought of as flavourful ways of tweaking the rules of your game.

Duchess, Fibbin, Sentinel and Spirit of Ivory are specifically designed to help balance custom scripts when it's not possible to do so by adding or removing (non-Fabled) characters. Other Fabled don't have script balancing as their principal goal, but sometimes appear on custom scripts to make games more interesting, such as Revolutionary on Comrade Demon or Doomsayer on Race to the Bottom.


The Djinn is a special Fabled which adds new rules to amend the interaction between two characters on a script. Officially, the two characters are said to be "jinxed" when unpatched, but you'll usually see the community instead use "jinx" to refer to the patch itself (which is the approach used in the rest of this post).

There's a lot of variation in how jinxes work. In the most extreme case, so-called "hate jinxes" declare that two characters cannot be in play at the same time (this applies, for example, to Spy and Heretic). At the other end of the spectrum, there are characters that work perfectly well together, but a jinx exists allowing them to interact in an interesting way (such as the Mathematician seeing the Lunatic malfunction, or the Cerenovus making a player mad they are the Goblin).

Some people are anxious about including jinxed characters on custom scripts, out of a fear that jinxes are just band-aids to stop poorly-built scripts from completely breaking. This is generally a mischaracterisation: jinxes are designed to cultivate fun and interesting character interactions and are worth embracing.

That said, avoid overloading players with too much rules complexity, and make sure that any jinxes on the script are clearly explained before the game starts (even if the jinxed characters aren't in play). Losing because you didn't understand all the fine print is never fun!

There is a lot more that can be said about the how the possibility of extra evil characters affects a script's balance and the places where the Spirit of Ivory is appropriate or inappropriate. This blog post contains some helpful analysis.

10. Consider starting Teensy

"Teensyville" games, which have 5 or 6 players, use their own type of script with a smaller pool of characters (6 Townsfolk, 2 Outsiders, 2 Minions and 1-2 Demons). Steven Medway, creator of Blood on the Clocktower, suggests that Teensyville scripts are a perfect starting point for new script designers, quicker to assemble, faster to playtest and easier to focus around a central theme.

All the scriptbuilding principles listed above still apply to Teensyville scripts. To see an example of this, we can look at No Greater Joy, the archetypal entry-level Teensyville script:
  • There is a source of misinformation (Drunk);
  • There is outsider count manipulation (Baron);
  • All Townsfolk are information characters who are easy for the evil team to bluff (this is especially important in Teensyville games where the evil team aren't given any out-of-play characters to bluff as);
  • There are good characters who want to stay alive (Empath, Chambermaid and especially Klutz) and a character who wants to get killed at night (Sage), encouraging some good-team secrecy;
  • There are two escape hatches (Imp and Scarlet Woman); and
  • The two Minions are similar in terms of loudness (both very quiet without any active abilities).

Further resources

Recommended custom scripts
  • The official Blood on the Clocktower site has a regularly-updated page listing some of the team's favourite custom scripts.  An archive of scripts which have historically been featured on this page is maintained here on Reddit and here as a Google doc.
  • AdmiralGT's BotC Scripts is a large searchable database of custom scripts.
  • The Carousel Script Collection is an officially-curated set of custom scripts designed to curate the experimental characters released as the "Carousel" token pack.
  • The Streamer Stack is a collection of popular custom scripts from streamers and their communities.
  • Bakery by the Clocktower includes a curated list of well-known scripts.
  • Zets has assembled a list of neat, balanced custom scripts, available on Imgur.

Scriptbuilding guides
  • This Reddit comment by official storyteller Ben Burns covers six "must-haves" for custom scripts.
  • "The Teensyville Fair" is a Tumblr post by BotC creator Steven Medway with advice on building Teensyville scripts. Much of the advice is also applicable to full-size scripts.
  • Angelus Morningstar's Ravenswood Bluff site includes an excellent scriptbuilding guide as well as a collection of custom scripts.
  • Script Tease is a podcast series specifically focused on scriptbuilding. The first episode looks at features common to the three base scripts as a guide for what to include in custom scripts.
  • Grim Scenarios is a general BotC podcast series which often discusses scriptbuilding. Episode 24b, for example, discusses some of the challenges that arise when mixing characters from the three base scripts. The podcast creators also maintain a list of recommended custom scripts, available here and here.

Discussion forums

15 March 2021

Sentiment Analysis of MTG Flavor Text

The fantasy card game Magic: The Gathering (often called simply Magic), with its decades of history and thousands of cards, is a treasure trove of data, which curious players can explore even when a global pandemic makes face-to-face tabletop gaming much more difficult.

In summer last year I posted a tongue-in-cheek "periodic table" of the game's fantasy races and classes (known as "creature subtypes"), something I'm keen to update in a proper blog post. Today I'm interested in "flavor text": this is the italicised text at the bottom of a card which doesn't carry any rules meaning, but acts as a bridge between the card's mechanics and the story.

VADER (Valence Aware Dictionary for Sentiment Reasoning, described here) is one "off-the-shelf" model for analysing the valence (positive or negative) and intensity of the mood expressed in a piece of text. Here's a few examples of how VADER evaluates sentences:

Sentence VADER compound sentiment
This is a really great blog post! 0.6893
This is a great blog post! 0.6588
This is not a good blog post -0.3412
This is a terrible blog post! -0.5255

While VADER is designed primarily for social media comments, it can easily be applied to snippets of fantasy lore. What are the trends in the tone expressed by Magic cards? Which cards come out most positive and most negative?

To state the obvious, no analysis could ever encapsulate a text's whole emotional impact in one number. Because of this, and because a slightly different methodology could produce very different results, everything here should be taken with a pinch of salt. I should also emphasise that, while everything written here is correct at the time of writing (March 2021, between the releases of Kaldheim and Strixhaven), Magic releases new cards at a rate of hundreds per year, so this will likely be out of date pretty quickly.

With those caveats in mind, the rest of this post will cover a few results which I found interesting, looking first at cards individually, then at groups of cards and finally at long-term trends.


Highest and lowest

A natural starting point is to grade the VADER sentiment of flavor text on each of the game's cards and see which cards end up at the top and bottom of the table.

These are the five cards with the lowest overall scores. Restless Bones is the lowest with -0.9792. A common theme among the five is reference to death, which VADER's lexicon rates particularly strongly. Angel of Renewal appears to be an oddity: the analysis picks up the negative sentiment behind "fear", "failure" and "death", but isn't able to detect that in the Angel's flavor text these concepts are triumphantly rebuked.

The five cards with the highest sentiment scores have little in common, in contrast with the bottom five. Soaring Show-Off's score, 0.9545, is the highest. Borderland Minotaur's flavor text, poignantly describing a Pyrrhic victory, may be another example where this analysis is too simplistic to pick up on every nuance.


Grouping by color and subtype

Looking at the scores for cards individually appears not always to give results that exactly match our intuitions, but we can still get interesting results when aggregating groups of cards together and examining the average sentiment scores within each group.

Grouping the cards by "color" we find that white cards have the highest average sentiment (0.033) and black cards have the lowest (-0.103). Looking at creature subtypes, Orc (-0.253) and Zombie (-0.141) are among the lowest, while Druid (0.108), Dog (0.089) and Angel (0.031) are among the highest.

It's worth noting that a full ranking of creature subtypes would be distorted by some very small sample sizes. For example, "Starfish" has the lowest average sentiment of any creature subtype, but it isn't worth reading much into this given that only one Starfish has ever been printed with flavor text:


Sets over time

Is there anything we can learn by looking at long-term trends? Magic's cards are released in "sets", each with their own setting, story and tone. What do we see when we look at each set and calculate the average sentiment of its cards?

(full-size version here)

There are many details which could be picked out, but here's a few specific observations:

  • For a long portion of Magic's history, two or three sets would be grouped into a "block" sharing one setting. (This graph uses red and green coloring to group sets in the same block.) Often the average sentiment will decrease over the course of a block, as the story's crisis escalates, but we also see cases where the trend is less clear or goes in the other direction.
  • One of the sharpest contrasts between adjacent blocks is between Lorwyn and Shadowmoor. These two blocks depict a "Jekyll-and-Hyde" world which alternates between light and dark.
  • The set with by far the highest average sentiment is Kaladesh, which was consciously designed with an optimistic tone in mind.
  • Two other sets with high average scores are New Phyrexia and Amonkhet. These are both sets which deliberately create dissonance with their flavor text: New Phyrexia pairs idealism in its flavor text with metallic horror in its artwork, while Amonkhet was designed so that upbeat story components are "out of sync" with the sinister game mechanics.

While there is a lot of variation in average sentiment between nearby sets (and certainly a lot of variation in flavor text sentiment within each set), there is a slight upward trend over the course of the game's history. Some might interpret this as a sign that the game is "dumbing down" or trying to appeal to younger audience, but in fact I think you can make a good case that the opposite is true: as the game's fanbase has grown and matured, players get more comfortable acknowledging that fantasy battles between wizards don't always have to be doom and gloom.


30 December 2020

Stormwind Map in the Style of RuneScape

After trying my hand at adapting Skyrim's world map to the style of RuneScape, I was in search of another location that could work well with that distinctive pixellated look. Stormwind City, the largest human settlement in the online role-playing game World of Warcraft, is one of the most iconic cities in gaming, so seemed like an obvious choice.

Stormwind map in the style of RuneScape

There isn't too much to say on methodology. In fact, the biggest practical challenge when researching the map was persuading my brother to let me borrow his World of Warcraft account so that I could fly around and take screenshots of the city layout.

Stormwind as it appears in World of Warcraft

For those who are curious, this is what the map looks like without the icon and text label layers:

Map without icons or labels

How ambitious a task would it be to adapt the whole of World of Warcraft to RuneScape's style? Obviously the short answer is "very", but we can get a more precise answer with some back-of-the-envelope calculation.

When adapting Skyrim, my quick-and-dirty way of planning out the map was to allocate Skyrim's cities and adventuring sites to RuneScape's 192-by-192-pixel "chunks". Generally, RuneScape has one major feature per chunk, with a few big locations (like cities) occupying multiple chunks.

We can see this in the map below, which takes the official Old School RuneScape world map (as of December 2020) and labels the main feature each chunk. The game world has about 450 chunks of landmass, around half of which contain some kind of landmark. Chunks coloured blue are mostly ocean, while grey chunks are currently "unknown" and appear black on the official map.

Outline of RuneScape's map
(full-size version)

If we took the map of World of Warcraft's Eastern Kingdoms (where Stormwind is situated) and allocated the main locations to RuneScape-style chunks, we would get something like the below:

World of Warcraft's Eastern Kingdoms divided into chunks
(full-size version)

If the map above were used as a basis for a full map, the whole Eastern Kingdoms (excluding underground and underwater areas) would take up about 270 RuneScape chunks. The whole map would be 3264 by 8064 pixels in size.

Add in Kalimdor (the other continent dating back to "classic" World of Warcraft) and you have another 300 or so chunks to map. The two continents, with a combined landmass larger than the whole world of RuneScape, would almost definitely make for a mapping task too large for any one person to take on!