Community Spotlight #7: Creating Content for Foundry with Blair’s Module Generator!

Blair, the talented coder behind the Scene Packer module, has come out with his latest enhancement: the Foundry VTT Module Generator. Let’s learn more about Blair and his project! You can follow Blair’s work on his Discord as well.

FHub: How did you get started with Coding in general, and Foundry in particular?

Blair: I’m a self-taught coder having started a little over 20 years ago. I was running a LAN party in Brisbane, Australia with a group of friends (the LAN still runs today, although not so regularly due to Covid restrictions) and we needed a website to be able to host information on when our next LAN was and what to bring (this is back where you didn’t have an internet connection at a LAN party, so you had to bring everything you needed with you). This was my entry into HTML and CSS along with PHP. Over time this eventually led into my overall career, with games being a hobby. I had been playing D&D in person with pen and paper for a few years but then Covid meant that we couldn’t meet up in person anymore, so had to look to online solutions. Eventually I made the switch to Foundry VTT and haven’t looked back. The level of customization and openness really appeals to me, especially with a programming background.

FHub: Do you GM or play in any TTRPG games now? If so, which ones?

Blair: I GM D&D for a group each fortnight (when there’s enough of us available) in a fairly haphazard way due to the players’ constantly shifting availability. This means that we often stretch out one-shot style adventures and attempt to tie them together in a somewhat meaningful way – this is what lead me to creating the Scene Packer module. I was wanting to move my mini-adventures from my local dev machine onto my Foundry VTT instance to pull them into the world there. An “adventure module” was the way to do it, but my scene journal pins and actor tokens weren’t linked because the IDs changed. Thus, Scene Packer was born. I do get to play as a player every now and then but that’s far less often than when I’m GMing. I do enjoy building out a mini-adventure, trying out all of the various amazing modules that people create within the community and so it’s usually me who has yet-another-adventure ready to go. One of my players is willing to GM an Alien RPG campaign at some point and I am very keen to play that – I’ve been purposefully avoiding reading or looking at any of the content so as to not spoil any of it.

FHub: Where do you see the content creation ecosystem for Foundry heading, given that it’s becoming even easier for people to create and package up adventures?

Blair: I can see the content ecosystem for Foundry VTT really exploding. With tools like my module generator and Scene Packer making it easier for non-developers to make modules, it’s just a matter of distribution. Currently to distribute your content you need to create a module that the end user installs and activates in their world. This is an easy step to do, but it’s still a required step. A lot of content creators currently release their content via Patreon, so I’m working with the developer of the Moulinette module to integrate Scene Packer. Moulinette is a way for end users to easily search, browse and follow their favorite Patreon creators and install content straight into their Foundry VTT world with no need to install custom modules for each adventure. I’m very excited about the amazing content that already gets built, let alone all of the amazing new content that will continue to be built for Foundry VTT.

Understanding Scene-Packer (A Layperson’s Guide)

To understand how scene packer works, we must first understand what information is natively stored in a scene in Foundry. Scene data includes walls, lights, ambient sounds, images, fog of war, and drawings. This information follows a scene from world to world without any issues.

But there are times when we wish to store additional information in a scene, like actors and journals, as one would find in a ready-to-go adventure. Once actors and journals on a scene are exported out of one world and into another, the links to the underlying data are lost. This is where scene packer comes to the rescue. Scene packer maintains the links in the ‘packed’ scenes to journals and actors in compendiums, allowing for a truly turn-key solution where anyone could create an ‘adventure’ and export it.

This is the intent of scene packer in a nutshell.

Now, Blair has gone one step further. With his module generator, you can actually create the necessary elements of a full adventure packaged up as a Foundry Module and available to download. A simple solution to a complex series of data packing challenges!

Blair’s Guide

Creating a Foundry VTT module can be quite daunting, time-consuming, and fiddly. I created a module generator to make it easier to get a module up and running quickly. Depending on your requirements, you may not even have to open a text editor.

Visit the generator, fill in the form and download your module zip with all of the values filled in.

The generator supports two modes:

  • Scene Packer integrated
    • This mode (listed as “new module” in the generator) creates a new module for you, with Scene Packer module functionality already integrated. This mode is particularly useful for content creators who have an adventure and want to make use of Scene Packer’s functionality, but don’t know any JavaScript or aren’t wanting to fiddle around in a text editor.
  • Standalone Module
    • This mode creates a module without any dependencies. You could use this to quickly create a Shared Compendium Module to share your actors/items/journals between worlds. Alternatively, this mode can be used as a starting point for any custom module you wanted to build.

Module generator:

Are you a content creator? Might you become one now that creating adventures is a much easier process? Drop us a line in the comments and let us know your thoughts!


Share This Post
Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x