Littlest Brown Book Modding Guide (WIP)
For full tutorials on using Typst, see here and here. To use Typst in a browser, go to Typst.app. To install it locally, see the instructions here.
Files & Project Structure
All files should live in the same working directory, except for the Illustrations, which get their own subfolder. (Feel free to change this, but be aware that you will need to modify file paths to get it to compile).
The_littlest_brown_book.typ
-- main document that produces the pdf output when rendered.LBB.typ
-- a 'template' file that contains styling instructions that are applied to the whole document. Inspiration was taken from Kevin Crawford's Study of TSR Book Design.Monster_stats.csv
-- a table of monster stats that Typst reads in. Edit this if you want to add/remove/alter monsters.Random_enc_tables.csv
-- re-factored random encounter tables. Read in similarly to the monster stats.Illustrations.zip
-- self-explanatory. This should be unzipped to a subdirectory calledIllustrations
.The_littlest_brown_book_cover.typ
-- generates a pdf book cover that can be uploaded for printing at Lulu.com.TLstBB_books.yml
-- contains citation information for the other books referenced in the text.
Basic restyling
You can designate new page dimensions, fonts, & font sizes in the template function call at the start of The_littlest_brown_book.typ
. Just change any of the following variables to your desired parameters. (Fonts must be selected from those built into the Typst app, uploaded to the online workspace, or installed on your system if running it locally).
#show: lbb.with(
title: "The Littlest Brown Book",
subtitle: "Pocket-sized Rules for Fabulous Premodern Wargaming Campaigns Playable with Paper & Pencil & Miniature Figures",
author: "Thomas E.",
illustrator: "Thomas E.",
basefont: "Josefin Sans", //the font used for body text
basefontsize: 10pt,
headingfont: "Josefin Sans", //the font used for all heading levels
titlefont: "Rye", //the font used for the title page
titlefontsize: 18pt,
tablefontsize: 8pt,
copyrightpage: [Original rules: @odnd
The text & images in this book are licensed under CC-BY-SA 4.0. You are free to share or adapt this work as long as you credit the original author and distribute any resulting works under the same license.
https://creativecommons.org/licenses/by-sa/4.0/], //insert any amount of text into these brackets to print it on the copyright page
pageheight: 175mm,
pagewidth: 108mm,
margins: (10mm, 10mm, 10mm, 10mm), //top, bottom, inside, outside
pagefill: rgb(246,237,219), //default set to sampled color from scanned lbbs
textfill: black,
emojis: true, // toggle emoji abbreviations for HD, AC, saves
)
Other changes may require editing LBB.typ
.
Reskinning text
You can use a show
rule to easily 'reskin' certain words. For example, #show "Referee": "Dungeon Master"
tells Typst to render 'Dungeon Master' everywhere 'Referee' appears in the source code. Note that this can be an issue if the word or phrase appears inside other words -- reskinning the word "Ent" will interfere with "Entire", "Entity" etc. See lines 130-210 of LBB.typ
for examples.
Adding spells
Navigate to line 992 and insert an entry in the table as follows:
[Level], [Your spell's name], [Description goes here],
Adding monsters
Add a line to Monster_stats.csv
using Excel or a table editor of your choice and fill out the stats, then re-render the document. Make sure to set the Src
column to 'LBB' or it won't appear in the table.
Encounter tables
Edit the entries in Random_enc_tables.csv
as desired. If you want to add a new terrain type, you will need to add the following:
#columns(2)[#table(
columns: (auto, auto),
align:(center, left),
table.header([d100], [Encounter]),
..for enc in enctbls.filter(x => x.Terrain == "YOUR TERRAIN TYPE HERE") {
(enc.d_pct, enc.NAp + [ ] + enc.Monster + if enc.Pct_lair == "NA" {} else if enc.Pct_lair == "0" {} else {[ (#enc.Pct_lair%)]}
)
},
[97-00], [???] // if you need to fill in extra entries, add lines like so
)]
"YOUR TERRAIN TYPE HERE"
should correspond to text in the Terrain field of Random_enc_tables.csv
.
Illustrations
If you just want to swap out one of my janky doodles for something else, the easiest way is probably to overwrite one of my images with your own (i.e. give yours the same name and copy it into the /Illustrations
directory).
If you want to insert new images into the document, use the image
function.
If you want to change how the illustrations are displayed in the title page of each section, you'll need to edit LBB.typ
lines 74-91.