The Forbidden Temple of Pflarr
Just in time for Halloween, a short adventure module I wrote while working on Retrotype v0.2. Not only does it showcase the functions of the Retrotype LaTeX package, but it has also helped me detect and fix some stealthy bugs.
The module is set in Mystara after the events of B10: Night's Dark Terror1 in the Hutaaka Valley. Nevertheless, with some adjustments, it can be run in any campaign.
Hidden deep in the mountains of Hutaaka Valley, the ancient temple of Pflarr stood centuries undisturbed. Now, something dark has awakened there. Crawling through its dusty halls the evil force tries to escape outside.
You can download the module here:
The rest of the post will demonstrate some of the tricks that were employed in designing the layout of the document.
Tabs instead of Tables
The retrotable
environment is still in its early stage of development, but since we are working with a monospaced font, we can use the tabular commands instead. Not the most elegant solution, but gets the job done.
\ulf\textbf{~d20\tab Ruin Inhabitants\tabn{2}~~Treasure}\\
~1-5\tab Deserted\\
~6-8\tab Harmless mammals\\
\tabn{2} or reptiles\\
~9-10\tab 3d6 \hyperlink{stirge}{stirges}\tabn{4}~~L\\
~~11\tab 2d4 \hyperlink{hellhound}{hellhounds}\tabn{3}~~C\\
12-13\tab 1 \hyperlink{swarm}{insect swarm}\\
~~14\tab 1d4 \hyperlink{lion}{mountain lions}\tabn{2}~~U\\
15-16\tab 1d4 \hyperlink{lizard}{footpad lizards}\\
\ulf17-20\tab 1d6 \hyperlink{ghoul}{ghouls (Traldar)}\tabn{2}~~R\\
Statblocks
The same approach may be used with the monster stat blocks by redefining the default tab position with the \setCustomTabPositions
command.
\newcommand{\setAnimalTabPositions}{%
\setCustomTabPositions{%
4, 4, 11, 16, 15, 6, 4, 5, 4, 5}%
% AC HD MV AT Dmg Sv ML Int AL XP THAC0
}
\newcommand{\headerAnimal}{%
\textbf{AC\tab HD\tab MV\tab \#AT \tab Damage\tab Save\tab ML\tab Int\tab AL\tab XP\tab THAC0}\\%
}
\setAnimalTabPositions{}
\hypertarget{hellhound}{}
\paragraph{Hellhound}
\rightbox[\aparskip]{(EX51/RC184)}
\headerAnimal
4\tab 3**\tab 120'(40')\tab d6 roll:\tab 1 target:\tab F3\tab 9\tab 12\tab C\tab 65\tab 17
\\\tabn{3}\textit{1-2:} 1 breath\tab 3d6 (Save vs. Breath for half)
\\\tabn{3}\textit{3-6:} 1 bite\tabn{1}1d6
Reddish-brown doglike monster as big as a small pony.
\begin{itemize}[leftmargin=*,label=\itshape\textbullet]
\item
Immune to normal fire.
\item
Can \textbf{detect invisible} at 75\% chance per round, range 60'.
\end{itemize}
Footnotes
Hand-made footnotes can be easily created in a figure
environment so it always is at the bottom of the current page, detached from the main content. Note that if you are using custom text coloring, you need to declare it again with the \color
command.
\begin{figure}[b]
\color{darkgray}
\uln[8]
\textsuperscript{1} Golden stars are set into the chests of the statues. Physical destruction of a statue lowers the value of each star to 1d8 × 10\% of its full cost.
\end{figure}
Maps
The most interesting challenge was creating ASCII-art maps for the module. The default Retrotype font (TT2020
2) doesn't have enough special glyphs for that, so I settled on the Truetypewriter PolyglOTT
.3 Since we are working in XeLaTeX, you can just switch the document font with a \setmonofont
command.
📝 NOTE: Maps presented below differ from the ones in the adventure — they were modified to remove most of the spoilers.
Wilderness Map
Using the \BVerbatimInput
command of the fancyvrb
4 package you can load a plain text file containing the map. Note the baselinestretch=0
parameter for reducing the vertical space between the lines.
\noindent
\begin{minipage}{\textwidth}
\setmonofont{TruetypewriterPolyglOTT}
\fvset{fontsize=\footnotesize, baselinestretch=0}
\hspace*{-7pt}
\BVerbatimInput{img/hutaaka.txt}
\end{minipage}
As you can see, each hex takes 5 lines and 9 columns of text, giving enough space for any symbols and descriptions.
_____
/ \
/ one \
\ mile /
\_____/
Dungeon Map
Dungeon maps are even easier to make since we can use the box-drawing characters5
The purpose of the \renewcommand{\FancyVerbFormatLine}[1]{\vspace*{-0.5ex}#1}
line is to "compress" each line of text horizontally to make square rooms actually square (or close enough).
\noindent
\begin{minipage}{\textwidth}
\setmonofont{TruetypewriterPolyglOTT}
\fvset{fontsize=\small, baselinestretch=0}
\renewcommand{\FancyVerbFormatLine}[1]{\vspace*{-0.5ex}#1}
{\hfill
\BVerbatimInput{img/temple.txt}
\hfill}
\end{minipage}
Discuss this post on Reddit