About

Although called the complete compendium, it is far from complete. Help out on the GitHub.

Summary

This is a project to create a comprehensive compendium of all the monsters accross the entire Advanced Dungeons and Dragons 2nd Edition collection. Advanced Dungeons & Dragons (AD&D) 2nd Edition (AD&D 2e) is a table top roleplaying game created by TSR inc. Thousands of monsters were written over the decades and this website seeks to be a convenient, fair-use way to browse monsters from out of print sourcebooks.

Motivation

My friends and I played 2nd edition religiously in high school. I stumbled across a site called lomion.de where someone had created a nearly complete appendix of all ad&d 2nd edition monsters. *All* of them, or so we assumed, that's what it felt like. We loved to use it and explore the vast collection, but the site was quite archaic and barebones in terms of functionality. Unfortunately, the site went down around 2014. However, it was indexed many times by the Wayback machine. So I sought to resurrect the site and bring the complete monstrous compendium of 2nd Edition to life with lots of navigational and explorational features.

The scope of AD&D content dwarfs all other editions of Dungeons & Dragons. All these monsters serve well as inspriation and starting points, valuable to Game Masters of all fantasy table top roleplaying games.

Purpose

This is a project to create a comprehensive compendium of all the monsters accross the entire Advanced Dungeons and Dragons 2nd Edition collection.

The original creator of this project was Lomion, who created a website with a similar goal. Unfortunately, the website is no longer online. It went offline around 2018, but that motivated me to build this.

Architecture

I started with downloading the entire directory of lomion.de from the Wayback Machine through some command line operations.

Then with all the mosnter file html documents, I build a harvester program in C++ to collect all the data so that it may be uploaded to a database. The harvester also collected the publicaiton ID numbers of its sourcebook(s), so I can organize the monsters by book. Then the theming of the pages indicates the campaign setting the monster is most prominent, so I can organize the monsters by setting/world.

I wanted to turn this project into a fully deployed application available for the public. So the next steps were to set up a database to store the monster data; naturally an API is required to publish to and retrieve data form the database.

This was previously an overengineered mess of cloud compute EC2 instances to run an API and database, and while cool, that isn't what I needed and cost $30/month if I wanted to do it securely. Because of the nature of this data: a load of html files and a campaign setting - book catalog structure, which can be achieved with simple JSON. With publish id's from the monster pages to identify the books, a list of all of the book's titles, authors, and publication years, the catalog can be created. New books can be added to the JSON files easily. New monsters require writing the new monster from an html template and running the harvester program to update the JSON files. I use Gatsby Typescript framework to build statically and host with GitHub pages, so it's free to host except for the domain, which is still cheap.

Features

Appendix

A comprehensive list of all the monsters on a single page. This page simply lists all monster titles and links them with their corresponding monster key.

Catalog

Here you can browse through all of the books and sources that contain monsters. You can also browse by campaign settting/world.

Implemented basic text filtering in the appendix page, now searchable!

Future

Planned Features

Priority

List of features that I intend to implement and add to the site.

  • Pivot "database" to static site generation with json files and host for free
  • Add a table of contents to the Appendix
  • Add the "How to Use this Book" / "The Monsters" page. Have each MonsterPage link to this page too.
  • Automate the missing data reporting process. Now organized through GitHub issues.

Stretch Goals

  • Appendix Title Redudancy mode. Switch that toggles on/off Redudancy mode, which displays all aliases of all monsters. Take caution when doing this since there are over 7000 titles and this page will not perform well on lower-spec devices. Warning will be placed next to it. Maybe React detects if device can support it and will hide the option entirely if it detects a lower spec device.
  • Lore:
    • Baatezu Promotion and Demotion
    • The Comlete Golem Table
    • The Planes of Existence
  • Pages:
    • Similar Monster page like a Monstrous Classification Page
  • Glossary for terms
  • Complete Spell Description list so you can hover over spells and see what they do.