\documentclass[a4paper,openany]{book}
\usepackage{bind}
\usepackage{lipsum}

\date{\today}

\settoggle{debug}{true}

\begin{document}

\chapter{Random Stuff}

\section{Introduction}

\begin{multicols}{2}

\subsection{This Document}

This is a test document, to make sure new code works before sticking it in a project.
Current day should equal \arabic{r4b}.

\npc{\M}{Random Guy}
\person{1}% STRENGTH
{1}% DEXTERITY 
{1}% SPEED
{{-2}% INTELLIGENCE
{-1}% WITS
{0}}% CHARISMA
{0}% DR
{1}% COMBAT
{Academics 1, Wyldcrafting 1
\Path{\illusion~3, \invocation~1}
}% SKILLS
{\Dagger, pieces of string}% EQUIPMENT
{}

\begin{speechtext}

  ``Would you tell me, please, which way I ought to go from here?''

  ``That depends a good deal on where you want to get to.''

\end{speechtext}

\subsection{And now for something completely different}

\magicitem{Noodle of Death}% NAME
  {Extinguish}% SPELL
  {Divinity (FSM)}% PATH
  {Instant}% DURATION
  {Pocket Spell}% TYPE
  {2}% Potency
  {5}% MP

\subsection{Encounters}

\begin{encounters}{Wonderland}

  Fields & Gardens & Results \\\hline

  \li & Doormouse \\
  \li & Dodo \\
  \li \lii Unicorn \\
  \li \lii Red Queen \\
  & \lii Black Queen \\
  & \lii Green Queen \\


\end{encounters}

\begin{rollchart}

Roll & Result \\\hline

12 & Success \\

11 & Failure \\

\end{rollchart}

\subsection{Random Text}

\lipsum[7]

\subsection{And further more\ldots}

\lipsum[10]

\begin{boxtext}
  \lipsum[4]
\end{boxtext}

\end{multicols}

\chapter{Stat Blocks}

\section{Humanoids}

\begin{multicols}{2}

\subsection{Humans}

\humanfarmer

\humanmaid

\humansoldier

\humanarcher

\royalguard

\humansoldier

\humandiplomat

This section is non-verbose, so only basic stats are shown.
\settoggle{verbose}{false}
\settoggle{debug}{false}

\humanbard

\humanbard

\humanthief

\humanalchemist

\necromancer

\subsection{Dwarves}

\settoggle{verbose}{true}

\dwarvensoldier

\dwarventrader

\dwarvenrunemaster

\subsection{Elves}

\elf

\elf

\elvenenchanter

\subsection{Gnomes}

\gnome

\gnomishsoldier

\gnomishsoldier

\gnomishillusionist

\subsection{Gnolls}

\gnollhunter

\gnollshaman

\gnollshaman

\end{multicols}

\section{Forest Critters}

\begin{multicols}{2}

\bear

\boar

\chitincrawler

\basilisk

\wolf

\woodspy

\end{multicols}

\section{Undead}

\begin{multicols}{2}

\ghoul

\ghast

\demilich

\lich

\end{multicols}

\chapter{Nura}

\begin{multicols}{2}

\subsection{Humanoids}

\goblin[\npc{\N}{Random Goblin}]

\goblin

\goblin

\goblinnuramancer

\hobgoblin

\ogre

\deepogre

\subsection{Animals}

\nurarat

\nurahorse

\nuracrab

\nuracat

\nuraslug

\nuraspider

\nurawolf

\end{multicols}

\chapter{Outsiders}

\section{Weird Ones}

\begin{multicols}{2}

\archmage

\archmage

\dragon

\rockman

\lavaman

\end{multicols}

\section{Same}

\begin{multicols}{2}

\rockman

\archmage

\dragon

\archmage

\lavaman

\end{multicols}

\chapter{Bestiary Chapters}

\begin{multicols}{2}

\settoggle{bestiarychapter}{true}

When using a bestiary chapter, the stats appear as dice rolls, rather than fixed amounts.

\subsection{Humans}

\humanfarmer

\humansoldier

\royalguard

\humandiplomat

\humanbard

\humanthief

\humanalchemist

\humanalchemist

\necromancer

\subsection{Dwarves}

\dwarvensoldier

\dwarventrader

\dwarvenrunemaster

\subsection{Elves}

\elf

\elf

\elvenenchanter

\subsection{Gnomes}

\gnome

\gnomishillusionist

\subsection{Gnolls}

\gnollhunter

\gnollshaman

\gnollshaman

\end{multicols}

\section{Forest Critters}

\begin{multicols}{2}

\bear

\boar

\huntingdog

\cat

\chitincrawler

\basilisk

\end{multicols}

\section{Underground}

\begin{multicols}{2}

\umberhulk

\jelly

\jelly

\jelly

\jelly

\end{multicols}

\section{Undead}

\begin{multicols}{2}

\ghoul

\ghast

\demilich

\lich

\end{multicols}

\section{Nura}

\begin{multicols}{2}

\subsection{Animals}

\nurahorse

\nuracrab

\nuracat

\nuraslug

\nuraspider

\nurawolf

\subsection{Humanoids}

\goblin

\goblinnuramancer

\hobgoblin

\ogre

\end{multicols}

\settoggle{bestiarychapter}{false}

\chapter{Lots of Text}

\begin{multicols}{2}

\noindent
\lipsum

\end{multicols}

\newcommand{\tests}{

\chapter{Another Test}

\section{Test Section}

\begin{multicols}{2}

\lipsum[\arabic{r4}]

\humanbard

\lipsum[2]

\subsection{Test subsection}

\settoggle{allyCharacter}{true}

\elf

\settoggle{examplecharacter}{true}

\lipsum[3]

\elf

\settoggle{allyCharacter}{false}

\subsubsection{Test sub-sub-section}

\lipsum[10]

\subsubsection{Test sub-sub-section again}

\subsection{Test subsection}

\lipsum[2]

\elf

\settoggle{examplecharacter}{false}

\lipsum[10]

\section{Last Section}

\lipsum[3]

\end{multicols}

}

\Repeat{4}{\tests}

\end{document}