World & Campaign Builder
World & Campaign Builder is a free, system-agnostic module designed to streamline every part of your TTRPG prep and gameplay—from deep worldbuilding to session planning and live play tracking. Whether you're building a sprawling lore-rich universe or following the Lazy DM approach to lightweight prep, this tool lets you create interconnected characters, locations, organizations, and events with ease, all inside Foundry. It’s fast enough to use in real time during a session, and flexible enough to evolve as your world grows. Optional AI-assisted content and image generation offer powerful creative boosts, but the module is fully usable without them.
See the user documentation for full details.

A note on AI
The module is fully functional and useful without any use of AI, and all of the AI features/functions are disabled by default. It was, however, developed with substantial assistance from AI coding tools. It is fully compliant with Foundry's AI Policy (https://foundryvtt.com/article/ai-policy/) for official store listings.
Content and "Advanced Features"
You'll see lots of references to AI capabilities in the documentation and feature lists. There is no AI-generated content (or any other content) provided by the module (other than foreign language translations of UI elements, which are then reviewed by humans). It merely has the capability to use AI to generate various things if you desire.
That said, full details on features, costs, and setup are in the documentation. Any description of AI features in the documentation is clearly denoted as an "Advanced Feature".
Code
AI was used in the production of this code. I use AI to help with code generation and debugging, but I review every line before it is committed, usually with edits. There is no "vibe coding", but rather the use of the AI allows me to put out new releases much more quickly, and by using it to build and maintain test infrastructure, it also helps to ensure the code is more robust and reliable.
I have and continue to try a variety of tools to get the best quality output while reducing my development time. Tools have included Cursor, Windsurf, and Claude Code. Primary have included those from OpenAI (though not since release 1.2 or so), Anthropic, Zhipu, and Windsurf.
Play style notes
The campaign planning component is modeled after The Lazy Dungeon Master, which I highly recommend. There is a freely available copy of the original book and I also recommend the newer Return of the Lazy Dungeon Master (though you have to buy that version).
It's totally possible to adapt your usage of the module to whatever your preferred prep style is, though. If you have ideas for additional approaches or functionality that you'd like to see, please let me know.
Current features
- Create characters, locations, organizations, and events with detailed descriptions and images
- Easily see (and click through) the relationships between them
- Create geographical hierarchies (world-continents-countries-regions-towns-etc.)
- Create organizational hierarchies (ex. for religions, governing bodies, large families, criminal organizations, companies, etc.)
- Define your world's species for assigning to characters (and using for AI prompts)
- Directory view of all of your world entries
- Create mindmap-like views of your campaign plots and relationships
- Integration with Calendaria to convert calendar notes to timelines tied to specific parts of your world.
- Manage your campaigns with story arcs, DungeonWorld-style fronts, and sessions
- Easily plan your play sessions (in Lazy DM style) and track what happens to blend it back into your world
- Powerful search based on names, descriptions, relationships, tags, etc.
- AI-driven generation of characters, locations, and organizations (descriptions and images) - it's hard to overstate how well the image generation in particular works... you need to try it to believe it
- Maintain connections to relevant Foundry documents (ex. Scenes and Actors) for quick reference
- Quick links to AI-refreshed RollTables for creating NPC, town, store, and tavern names
- Lots more - see more details below and in the user documentation
How it works
The module is designed to support the full cycle preparation and playing your game. While each part is optional, the general flow of using the module to prep and play games is:
-
Build your world. If your preferred approach is to build every little detail out ahead of time, you can do that.
-
Prep for a session. Go through the full Lazy DM method and prepare for your session. Use AI to flesh out your characters, locations, etc. (and even create images) or do it all yourself.
-
Play your game. Reference your prep, create new PCs, locations, etc. on the fly (including AI generation) and record important details of things that were improvised during the session.
-
Record the results. Capture the things that did (or didn't) happen - fleshing out the world for easy reference in the future and giving you a head-start on the next session prep.
See the user documentation for more details.
Known bugs/issues
- If you have a Story Web open in more than one panel, changes will not be immediately updated on the other panel. Whichever panel is modified last is more or less going to win. I don't recommend it.
Issues?
If you believe you found a bug or would like to post a feature request, head over to the module's Github repo and open a new issue.
Languages
English, French, German, and Russian currently supported. Let me know if you want others. PRs also welcome for either new languages or fixes to bad translations in the current ones.
Support
I'm happy to do this for free, as I primarily work on things I like to use myself. But if you'd like to buy me a root beer, I love knowing that people are using my projects and like them enough to make the effort. It's really appreciated!
Credits
See credits page for all the details, but the main one is that I seriously doubt this would have been possible without the FVTT-Types project from League of Foundry Developers. Those folks have been working through a ton of typescript insanity so the rest of us don't have to.
Copyright and usage
THIS ENTIRE REPOSITORY IS COVERED BY THIS LICENSE AND COPYRIGHT NOTICE
Copyright 2025 Dov Rosenberg
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.