With the increase of accessibility of AI for both text and art, the implications on the RPG world have been greatly apparent. I have an ongoing 5e game that I run on a Foundry server, but this can also apply to the other variety of TTRPG games out there as well.
I’ve used Stable Diffusion to create character and scene art and it’s allowed me to output high quality visuals for my players. When I’m having a hard time getting out the words I want to say, I’ve pulled up ChatGPT to help me convey the ideas. I’ve also used ChatGPT to fill out random encounter tables, come up with names, and fill out towns for flavoring. There’s still a lot of work involved and I only keep about 5% of anything that’s generated, but I feel like this is a tool that has helped me become a better DM rather than outright replace me entirely.
I use it extensively! Both ChatGPT/GPT4 and StableDiffusion.
First off, I maintain likely the most flexible fork of the FoundryVTT-AI-Description-Generator. The original was only really compatible with a select few settings, particularly D&D and the author didn’t want to make things more robust for other systems. So I basically exposed the underlying templates and data-structures to the user via the settings UI in an effort to port it over to Stars Without Number. It works pretty well now, and should allow people to get most things working with only the settings page. As soon as I get GPT-4 API access I’ll upgrade it to that and use it more. Here’s the link for anyone interested: https://github.com/th3raid0r/FoundryVTT-AI-Description-Generator
In my development I learned a lot about how ChatGPT works and the most optimal way to structure my questions. Here’s my main, most important takeaways from the capabilities:
First we tell the bot your system - not necessarily for the rules, but the included setting and details (i.e. D&D is high fantasy and has certain monsters, SWN is a spacefaring sci-fi RPG with entirely different classes, etc.). For my case, I use Stars Without Number, and I quickly came to believe that the Free Rulebook was ingested in ChatGPTs dataset. It wasn’t perfect, but good enough to work with for my purposes.
Then we need to communicate any setting expansions or modification. Definitely make use of names and events to further strengthen the association to the desired setting.
Once that’s out, introduce your party.
Now we’re about half way to actually asking the AI what we want of it, Whoo!
Then get to their present setting. The specific place or town they’re in, and as much set dressing as you can muster.
Next we go into a brief last game summary or “current status”.
Next we go into the party’s present goals and predicaments.
Now we finally ask ChatGPT what we want:
This formatting should be optimal for most things for a few reasons.
I’ve used this style of prompt with great success. On ChatGPT the AI seems to keep most context for about 5-8 responses or so before worsening in quality. At that point just try to update the more recent summary section before starting a new chat and going from there. On GPT-4 it seems to last pretty long, sometimes surprising me with an accurate character description 20 messages in with it, only having mentioned the character’s appearance in the first message.
I hope that this approach to ChatGPT prompts helps someone else! I know it certainly helps me!
I’ll go into my use of Stable Diffusion and combining it with player art in another post…
Wow - thank you for this!
Something else that can help with this too:
If you’re using Bing, it can read the web page you’ve got open and use that to inform responses as context.
It can’t read anything that’s gated behind an account like a Google document, but it can read a PDF if you open it in the browser.
Due to that, I created a single document containing setting info, plot hooks, NPC details, session recaps and party details etc.
When prompting Bing I’d ask it to refer to the campaign document and that cut out a lot of the parameters I’d otherwise have needed to repeat at the beginning of each chat otherwise.
It also means it’s got access to a much wider pool of material to iterate on. For example, if I ask it to generate more plot hooks for a particular district in my city-based game, it’d cross reference NPCs and plots from elsewhere in the city, rather than providing a tailored (but generic) output.