\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]

\begin{xpbox}
    Attribute Level & Cost \\\hline

    Buy off negative & 5 \\

    +1 & 10 \\

    +2 & 20 \\

    +3 & 30 \\

    +4 & 50 \\
\end{xpbox}

\subsection{And further more\ldots}

\lipsum[10]

\begin{xpchart}{FSM}

  1 & Boiling Pasta. \\

  3 & Being a pirate. \\

  5 & Perfecting Meatballs. \\

\end{xpchart}

\lipsum[2]

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

\end{multicols}

\chapter{Stat Blocks}

\section{Humanoids}

\begin{multicols}{2}

\subsection{Humans}

\humanfarmer

\humanmaid

\humansoldier

\royalguard

\humansoldier

\humandiplomat

\humanbard

\humanbard

\humanthief

\humanalchemist

\necromancer

\subsection{Dwarves}

\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

\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

\humansoldier

\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}