The dndGPT Case Study for You and Me!

Hey Nerds!

In honor of GPT-4o I’m releasing a CustomGPT super early, but it’s fun so far!

DungeonMasterGPT

It actually uses all of the DnD open source material, and it’s even properly licensed—which I think is kind of hysterical. So far, it’s a great reference, helps to build characters and draws maps! :smiling_face_with_three_hearts:

I’d like it to do a lot of things, like manage large groups of NPCs and Battles; but meanwhile it’s just an open source project. With 4o it could be an NPC at the table. I’m geeking out.

Please give it a whirl and give me your feedback and suggestions!

8 Likes

Hey Everyone,

Thanks for checking out DungeonMasterGPT!

Just been continuing to work out a slew of updates and possibilities which others may find helpful in their own applications:

Character Creation

We’ve started to standardize how to present a character to a User vs storing it in a table for later use.

  • DnDGPT helps to create a Player Character of any level, either automatically or step by step.
  • It does the same for NPCs and UNPCs (Unique Non-Player Characters).
  • It presents this information to the User as a simple two-column table.
  • Then, if asked for a download, DnDGPT “pivots the table” (a prompt it understood perfectly and the most efficient way to achieve the desired result without an example) and exports the columns as rows instead.
  • With a few prompts it’s possible to generate entire parties and groups, stories surrounding them, and fun art in a variety of styles, including “DND Classic Illustrations.”
  • We are going to develop pre-made NPC templates and encounters, such as the population of a small village, castle, or a battle.

Map Making

Map making is a lot of fun, and an unexpected challenge.

The goal is to make a top-down map to either a (10x10), (25x25), (50x25) scale where each unit is a standard Dungeons and Dragons base movement of 5ft x 5ft.

Initial Maps

Initial results get the general idea right out of the box, but we’ve had a lot of trouble getting “the grid” right:

The request was for a 10x10 jungle dungeon. You can see it’s got the right idea. There is clearly a grid… but it lacks the “chess board feel” we’re looking for.

Rewording the prompt, such as more emphasis on the grid overlay, only yielded similar results.

This result isn’t surprising as Dalle and AdobeAI universally seem to struggle with adding very structured aspects to images, such as cohesive language and grids. Not bad, but not quite.

A Separate Overlay

We used Adobe Illustrator to make some of the desired grid. Then started to work with different prompts that tried to get the model to start with the grid, or overlay it as a separate step using python.

Back to the drawing board, right? If you want to overlay something, you should specify the dimensions of the image and that of whatever you’re adding on top.

(We went with 1000 x 1000 px, a common dimension.)

Still, not bad… But not exactly. Plus, there are a few not-so-obvious steps, like working with opacity, which can be distracting.

Not bad! Probably at least good enough to keep the average gameday from degrading into a tavern brawl.

Added to Knowledge Base

After some experimentation, some fine-tuning files were added. The model definitely understands the request, mostly. (Here was a 10x10 request):

It’s lovely! But not exactly scaled 50ft x 50ft; the grid overlay (below) was supposed to be automatic, but it was still a separate step… And the model’s first try is better without it (visually).

Try it yourself:

  1. Ask the model to make a 10x10 map.
  2. Give specifics or tell it to make up the whole map.
  3. If you want a grid, ask it to overlay the map with dndgpt_map_overlay_10x10.png with 50% opacity using python. (lol)
  4. If you get something cool, please post it here!

Next Steps
The whole goal with this is to work with the model using the Grid as a Strategic Map Interface so you can interact and work with the model at high-level strategy.

“My mage is at A1 and moves to G10 via Misty Step,” or “my horde of undead minions marches from A9 to B9.”

Ultimately, we want there to be more of a connection between the details of the map—“there’s a pyramid from (D5, F3) x (F6, G4) and a horde of mummies between you and [probably cursed] pharaoh gold.”—And a way of quickly identifying simple terrain types via coordinates. (If anyone has any thoughts?)

Also, File Limit?
Also, does anyone know about a CustomGPT file size limit?

When we tried to load the 25x25 grid into the knowledge base the GPT became unsaveable… which MIGHT be because there are like 12 medium sized .pdfs. Which means they’ll need to be compressed.

5 Likes

Making Logos with ChatGPT

We’re just continuing to go coo-coo bananas with this thing and have decided to make a project as fully automated as possible.

Starting, with a logo, of course, which is the first thing everyone wants to do in small business. So, here’s how you do it. (Hint: It’s still not “fully automated.”)

Logo Conceptualization

This is the easy part. After a long-ish conversation with DungeonMasterGPT (dndgpt), we came up with a concept that had the feel of the classic DND with some modern what-not.

Okay, so right out of the box that is AWESOME. So AWESOME. It’s not a “Logo” yet, but man! What a concept.

You can also see there are several small hallucinations and inconsistencies, like the attempt at the “œ” in the logo type. A+ for effort, though.

Add Some 4o Magic

In between the above image, and this one below, the CustomGPTs clearly got an upgrade to 4o. I don’t remember what I was asking about in the above image, “what font did you use?”

Well, the model took it upon itself to redraw the image:

Oh my stars and garters—quintuple wow! Holy smokes, this is PERFECT. It’s STILL not a “logo,” but wow! Without being asked, the model corrected the image with incredible clarity. This saved an entire step and several hours.

Making a Modern Logo

To be a modern logo, we still need this in a variety of vector formats with other aspects, such as font, made consistent. To do this, it’s still necessary to pull into Adobe Illustrator.

Otherwise, truly, the only thing that needed to happen with the actual graphic was that it be converted to vectors and simplified.

But to be more widely useable, the font still had to be identified and the logo type had to be rebuilt:

In the above image, we use native Adobe tools to identify the font ChatGPT had in mind. We chose Shackleton Narrow and Open Sans Light.

In the second step, we make that look like the original graphic. Yes, it “looks” almost identical, but the key difference is that now the process is exactly repeatable.

Here’s the Final Result

Conclusion and What Features Would Be Helpful

So, as you can see, we can get ChatGPT to do a lot of the work, not all. Dalle still persistently creates weird chat hallucinations, and it’s still not possible output images as vectors.

Based on this experience and the first attempts at image overlays in the above post, we think ChatGPT would benefit from an “assembly layer,” when working with images.

It can already call python and add image layers (just like you would with Adobe), but we envision something more robust. Perhaps this assembly layer can call fonts, too.

So, instead of imagining an image with text, it imagines an image, creates a space for text, then adds the text layer using a specified font (or a font that can be specified) typing the font on the image… also making the visual experience more consistent.

Otherwise, all of this is enormously fun, and we’ve got a lot more to share.

Thanks for reading and trying out the cGPT… make sure to check out the new instagram… (lawl).

2 Likes

Hasbro owns trademark on Dungeon Master. Be careful!

Thanks for the update, though!

1 Like

Oh, thank you very much for your concern! :hugs:

You are correct, but to the best of my knowledge, this is covered under the open license agreement which allows use of, and alteration of, such terms and images.

This would not be possible without that license.

In fact, I should note that every step of this has become a study in the ethical use of AI—both in image creation and logo design, and the wider copyright concerns you’ve highlighted.

2 Likes

Patent and trademark rights are not licensed under this Public License.

Dungeon Master is a trademark not just copyrighted. But if you’ve checked, you should be good.

I just know Hasbro has a history of cracking down. It’s why many use Game Master instead. I’m surprised OpenAI let it through…

It’s in the same genre/industry too, which is why I would be concerned…

fantasy role-playing games and board games, and game accessories; namely, booklets containing role-playing game scenarios, and computer game programs

I guess we’ll find out! This is a gray area to me.

To my knowledge, since the GPT and everything else I produce clearly point to the license—which is stated explicitly in the “about” section of the cGPT and in other places—and follows the criteria for referencing the license—I think bases are covered.

Also, I think, adding “GPT” to the title makes it different enough from the trade marked phrase to be considered “different enough.”

Either way, I’m not attached to the name of the thing in the slightest. It’s an open source project in the spirit of being open source.

2 Likes

Hopefully Hasbro doesn’t come out with their own Dungeon Master with AI… It’ll likely be on D&D Beyond…

I run a lot of D&D stories and D&D random tables on my blogs … maybe we should do an email interview with you?

3 Likes

Oh well. I’d be working on it already if I were them!

…but I’d also be building it as an Assistant and just White Label whatever their “ai” turns out to be. Given the close contact with NVidia during Baldur’s Gate 3 I’m certain that they’re doing cool things.

Meanwhile, I’m learning a ton from this project so I’m happy.

Sure! I’d love that, please give me a ring.

We’re (dndgpt’n’me) starting to tell stories already, check it out:

Okay, so we’re working on condensing parts of the game manual into a table, and using ChatGPT’s new data features to do it. (I’m going to make a full post about it later.)

After some tedium, I was like, draw me a picture of two dragons fighting (for said instagram), and also a map of the fight.

Since it was a pretty awesome picture, it became suddenly important to know who won the fight… like any true nerd would want to know.

Well, sir, I’ll tell you. We ran the simulation going one round of battle at a time. I set certain DCs based on the narrative. It was a thrilling battle. The Ancient Gold Dragon scored several full hits, knocked the Black Dragon out of the air, and burnt it to ash. :exploding_head:

sqeeeeee.

We’re currently working on a thrilling tale of how a Necromancer gets the Bone Dragon he always wanted.

2 Likes

Looks to me like you have ‘Dungeon GPT Ultimate’. Great project!

1 Like

Hey Everyone!

Hope y’all are well.

As of this writing, I’ve noted a file limit on the cGPTs. It’s 20 files. :man_shrugging: :face_with_monocle:

So, my first clever idea was to take the Dungeons and Dragons SRD and break it into smaller parts, shown above, unable to save with 21 files.

It is a well organized, 400 page document that was simple to pull into Adobe Acrobat and break into smaller chapters. The sections are well referenced in the Instructions and this works unexpectedly well.

However, .pdfs are gigantic and then there was that whole file limit, thing… which I only discovered when I wanted to add more of those grid overlays.

So my next clever idea was to break the lists contained, like the monster manual, down to a spreadsheet. The goal was to use the new native 4o features to do it.

Turn a PDF into a Spreadsheet Using ChatGPT 4o

This is a screen shot of the first page of the “A” section of the D&D SRD.

You can tell a few things just by looking:

  • This is a well organized document.
  • It lends itself to tabular format… we’re probably doing what the original writers of the document did in reverse.
  • There is A LOT of information available for each monster.

First Attempt With A Simple Prompt

Because of all the text in each monster, you know you’re going to run into issues with the Context Window (the size of the prompt ChatGPT can work with).

The section we were working with is 68 pages long.

So, first we just tried to start with a few A’s.

Name               Type       Alignment  AC                HP  \

0 Aboleth Large aberration lawful evil 17 135 (18d10 + 36)
1 Animated Armor Medium construct unaligned 18 33 (6d8 + 6)
2 Ankheg Large monstrosity unaligned 14 39 (6d10 + 6)
3 Azer Medium elemental lawful neutral 17 39 (6d8 + 12)

It did really good! I was impressed. It missed some information, made up information or got it from a completely different section of the manual, but otherwise created a table exactly as asked. The errors it had were reasonable, like the Monster Appendix doesn’t exactly define a whole type of Action, and ChatGPT didn’t know what to do with that information.

Long story short:

  • I manually identified the missing columns, and we had to make several up to describe the information.
  • “Parent Monster,” “Unique Ability,” and “Legendary Action,” though not all monsters have all of these abilities, they can have up to 5 each. (I went through and counted.) It was pretty cool that the model understood the Unique Ability column so readily. (See the full prompt below.)
  • Adding these columns to the spreadsheet and instructing the model how to fill them worked immediately.
Parent Monster Name Type Alignment AC HP Speed STR DEX CON INT WIS CHA Saves Skills Senses Languages Challenge Unique Ability 1 Unique Ability 2 Unique Ability 3 Unique Ability 4 Unique Ability 5 Action 1 Action 2 Action 3 Action 4 Action 5 Legendary Action 1 Legendary Action 2 Legendary Action 3 Legendary Action 4 Legendary Action 5 Armor Class Hit Points
None Aboleth Large aberration lawful evil 17 135 (18d10 + 36) 10 ft., swim 40 ft. 21 9 15 18 15 18 Con +6, Int +8, Wis +6 History +12, Perception +10 darkvision 120 ft., passive Perception 20 Deep Speech, telepathy 120 ft. 10 (5,900 XP) Amphibious: The aboleth can breathe air and water. Mucous Cloud: While underwater, the aboleth is surrounded by transformative mucus. Probing Telepathy: If a creature communicates telepathically, the aboleth learns its greatest desires. Multiattack: The aboleth makes three tentacle attacks. Tentacle: Melee Weapon Attack: +9 to hit, reach 10 ft., one target. Hit: 12 (2d6 + 5) bludgeoning damage. Tail: Melee Weapon Attack: +9 to hit, reach 15 ft., one target. Hit: 15 (3d6 + 5) bludgeoning damage. Enslave (3/Day): The aboleth targets one creature it can see within 30 feet of it. Detect: The aboleth makes a Wisdom (Perception) check. Tail Swipe: The aboleth makes one tail attack. Psychic Drain (Costs 2 Actions): One creature charmed by the aboleth takes 10 (3d6) psychic damage.

Prompt Too Long and Hallucinations

Given all of that information getting put into the spreadsheet, there was some wrestling with the proper amount to work with.

  • Experimentation showed we could usually grab 3-4 monsters at a time without causing errors.

There was also a fair amount of wrestling with the model to have it just pull the monsters from the specified section without making any up… though, I admit, at the Dinosaur section we might have filled in a few gaps. (No stegosaurus? Really?)

  • Experimentation with having the model identify the next four line items yielded inconsistent results.
  • In the end, I just listed the next 3-4 monsters in the list based on a quick look and whether “I thought it might be too long for the Window.”
  • The model wanted to jump ahead, often trying to combine steps in a single prompt, which caused errors. We ended up working out a (tedious) step-by-step system that reduced errors significantly. (The full prompt is below.)
  • It had to be instructed a few times to not skip steps, but apparently repetition is effective.
  • I got through 105 entries (up to the Elementals) in about 2 hours one wild Saturday night. ChatGPT estimated I saved 8 hours manually copying everything back and forth. Not bad.

Lessons and Next Steps

The biggest thing is this: If you spend a long time working out a process with ChatGPT—MAKE SURE to have it summarize that process for you for next time. :roll_eyes:

When I picked up the project again, there were updates, so I used a new conversation and had to re-train the whole process. :grimacing:

  • This was tedious, but much faster than it could have been after we got into a rhythm.
  • I think the Assistants API might be better suited for this type of task if anyone has any thoughts about mapping PDFs to Spreadsheets.
  • The model is unexpectedly AWESOME at making up D&D monsters. It was truly difficult to stop it from making more up. (Later, my precious.)

The Prompt

Step-by-Step Instructions

  1. Identify the Monsters Section:
  • Determine the section of the monsters to work on (e.g., “Monsters (B)”, “Monsters (C)”) in the dndgpt_srd_cc_v5.1_monsters_atok.pdf
  • Confirm the list of monsters within that section with the user.
  1. Chunk the Work:
  • Break down the list into manageable chunks (e.g., 3-4 monsters at a time).
  • Confirm the specific monsters to be processed in each chunk with the user.
  1. Extract Information:
  • For each chunk, locate the details of each monster from the source PDF.
  • Extract relevant information such as Name, Type, Alignment, Armor Class, Hit Points, Speed, Ability Scores, Senses, Languages, Challenge Rating, Unique Abilities, Actions, and Legendary Actions.
  1. Structure the Data:
  • Use the existing table structure and columns to fill in the extracted data.
  • Ensure the information is mapped to the correct columns, including Challenge, Unique Ability fields, Action fields, and Legendary Action fields.
  • If a monster has multiple abilities or actions, use the respective numbered fields (e.g., Unique Ability 1, Action 1).
  1. Input Data into Spreadsheet:
  • Enter the extracted and structured data into the spreadsheet.
  • Add new rows for each monster and ensure that all columns are filled appropriately.
  1. Review and Confirm:
  • After entering the data, review the spreadsheet for any errors or missing information.
  • Confirm with the user that the data has been correctly entered.
  1. Proceed to the Next Chunk:
  • Repeat the process for the next chunk of monsters, ensuring each step is followed.
  • Continue until the entire section of monsters has been processed.
  1. Handle Special Cases:
  • For Parent Monsters (e.g., “Dragons, Metallic”), include the Parent Monster name in the designated column.
  • Ensure consistency in naming and formatting throughout the table.
  1. Save and Provide Updated File:
  • Save the updated spreadsheet after completing each chunk.
  • Provide a download link for the updated file to the user for review.
  1. Feedback and Adjustments:
  • Incorporate any feedback or adjustments provided by the user.
  • Ensure the final spreadsheet is accurate and complete.

Custom Fields Details

  1. Parent Monster:
  • Purpose: To group related monsters under a common category.
  • Usage: This field is particularly useful for monsters that belong to a specific type or family, such as “Dragons” or “Demons.”
  • Source Correspondence: This field is not explicitly mentioned in the source document. It is inferred based on the grouping of similar monsters. For example, all dragon types (e.g., Black Dragon, Blue Dragon) would have “Dragon” as their Parent Monster.
  1. Unique Ability:
  • Purpose: To capture special traits or abilities that a monster has beyond its basic stats and actions.
  • Usage: Each unique ability of a monster is listed under “Unique Ability 1,” “Unique Ability 2,” etc., up to “Unique Ability 5” to ensure all abilities are captured.
  • Source Correspondence: This information is usually found in the descriptive text following the monster’s main stats. For instance, a dragon’s “Fire Immunity” or a drider’s “Fey Ancestry” and “Spellcasting” abilities.

How Custom Fields Correspond to the Source Document

  • Parent Monster:
    • In the source document, monsters are often grouped by type (e.g., “Dragons”). While the document itself may not label these groups explicitly, we use the Parent Monster field to ensure that related monsters are easily identifiable and categorized in the spreadsheet.
  • Unique Ability:
    • This field corresponds to special traits, resistances, or abilities described in the monster’s entry in the source document. The abilities are usually detailed in the paragraphs following the monster’s basic stats. For example:
      • Dragon Turtle: Amphibious trait, allowing it to breathe both air and water.
      • Drider: Includes abilities like “Fey Ancestry” and “Spellcasting,” which describe innate magical abilities and resistances.
      • Dryad: Features “Innate Spellcasting” and “Magic Resistance.”
      • Duergar: Lists abilities such as “Duergar Resilience” and “Sunlight Sensitivity.”
  • Actions:
    • The “Actions” field captures the various combat actions a monster can take. Each action described in the source document is mapped to an appropriate action field (e.g., “Action 1,” “Action 2”).
    • Multiattack routines and individual attacks (e.g., bite, claw, tail) are included here.
  • Legendary Actions:
    • This field captures special actions that can be taken outside the monster’s turn. These actions are described towards the end of the monster’s entry in the source document.
3 Likes

We went and summoned a Bone Golem then made him a tad OP.

Attribute Value
Armor Class 17 (natural armor)
Hit Points 210 (20d10 + 100)
Speed 30 ft.
Strength (STR) 22 (+6)
Dexterity (DEX) 9 (-1)
Constitution (CON) 20 (+5)
Intelligence (INT) 3 (-4)
Wisdom (WIS) 11 (+0)
Charisma (CHA) 1 (-5)
Saving Throws Strength +10, Constitution +9
Damage Immunities Poison, Psychic; Bludgeoning, Piercing, and Slashing from Nonmagical Attacks not made with Adamantine Weapons
Condition Immunities Charmed, Exhaustion, Frightened, Paralyzed, Petrified, Poisoned
Senses Darkvision 60 ft., Passive Perception 10
Languages Understands the languages of its creator but cannot speak
Challenge 12 (8,400 XP)
Immutable Form The Bone Golem is immune to any spell or effect that would alter its form.
Magic Resistance The Bone Golem has advantage on saving throws against spells and other magical effects.
Magic Weapons The Bone Golem’s weapon attacks are magical.
Multiattack The Bone Golem makes two slam attacks.
Slam Melee Weapon Attack: +10 to hit, reach 5 ft., one target. Hit: 19 (3d8 + 6) bludgeoning damage.
Bone Shard Burst (Recharge 5-6) The Bone Golem releases a burst of sharp bone shards in a 15-foot radius. Each creature in that area must make a DC 17 Dexterity saving throw, taking 28 (8d6) piercing damage on a failed save, or half as much damage on a successful one.
Bone Shield When a creature the Bone Golem can see attacks it with a melee attack, the Bone Golem can use its reaction to impose disadvantage on the attack roll.

:ghost: :face_with_monocle: :exploding_head:

Hey, @PaulBellow! You seem kinda like the do-gooder type. As you can see, we’re raising a massive army of the undead over here… How do you feel about raising an army to try to stop me…? As you can see, there’s some sort of city off to the North West that might be interested in defending itself from the evil seeping from that old crater to the south.

Oh, and also work out some open source army mechanics for D&D while we’re at it and get the GPT to run the game board and ref the match.

P.S.

That golem picture is literally the coolest thing Dalle3 has made so far.

1 Like

Use an Assistant or the ChatGPT UI to Transfer PDF Information into a Spreadsheet?

In a simple experiment, (and a first try with the API) we tried to transfer a single monster to the master spreadsheet.

There was no problem getting the Assistant to work with the prompt. Even though the prompt was truncated, the actual operation was going to use in excess of 11k tokens. :sweat_smile:

The monsters have a TON of tactical data that accomanies them, like you’ve seen above… But I also didn’t spend any time trying to make the process more efficient.

Estimating Costs of the API vs ChatGPT

Using 4o, and guesstimating that each monster is about the same length of tokens, give or take, at $0.10 per monster, that means we’re at $1.00 per 10 monsters.

Now, I don’t know how many monsters there are, but including them and times and other tabular information in the DND SRD, let’s say we’re at 200 items.

OpenAInomics

So, in this estimate it'll cost $20.00 to transfer the monsters to a spreadsheet via the API—which, at the moment, means it's more cost-effective to use the $20 / mo Plus subscription to transfer this information working as an individual.

If you’re rocking a commercial budget, working with the API quickly becomes the desired method if you can stabilize the process and keep the system message concise.

…But! Transferring visual tabular information like this might always be verbally intensive, requiring oversight and constant attention, and so working line by line might continue to be a required option. In which case the verbal UI would be the better option.

Building NPC Templates

But going line by line is tedious. When you don’t you get interesting hallucinations in the data.

Based on the experience building the Monsters tables, I started using DungeonMasterGPT to start to build “NPC templates.”

The idea is to have various pre-made NPCs as a person might find in a “Small Village.”

In this case, it’s 15 NPCs which we made up on the spot.

NPC information is a Monster file with more story information, such as Traits, Flaws, and other role-playing options.

Loooots of Errors

There are a ton of errors working with this thing to the point I’m glad I’m just working with non-essential open source data. :upside_down_face:

  1. It’s hard to work not knowing what a cGPT’s limits are and having to discover them through trial and error.

  2. The Data Analyzer stores info in the browser (my ChatGPT window was using over 1.5gb at one point) and starts slowing down. You have to refresh the window, but you can loose information. :scream: :scream:

  3. There can be “hiccoughs.” There might be some error, you lose data, and the Model tries to restore the session, but goes too far back. :scream: Then you have to wrestle with it, while meanwhile panicking to find a version of the most updated sheet you can still work with.

  4. Making up characters in bulk was cool, but had some hallucinations, like abilities that were inappropriate for the level constraints… we got a level 6 cleric walkin around with Divine Intervention. Watch out, forces of evil.

  5. Working with data in the Analyzer is cumbersome. It’s easy to select a cell or a range, but it’s difficult to move information around within the table compared to working with the information in Excel or Sheets.

  6. You have to explicitly instruct the model to not output the table in all of the various formats it can in.

This is still moving super fast, there’s just need for strong oversight and data integrity. I haven’t seen this many errors in a spreadsheet since high school.

Calling the Spreadsheet in ChatGPT

Actually calling for the NPC template works immediately, BUT that’s only obvious to me through a lot of use.

I had to explicitly instruct the model to explicitly tell anyone asking about the NPC templates how to load the data.

“Please load the Small Village NPC Template into the Data Analyzer.”

But, it’s otherwise all up and running and pretty neat. Hopefully fills the frequent need of DMs to tell backstories of random NPCs in small hamlets.

Hi Sean, I like your work and your attention to detail. I am very curious about your Dungeon Master GPT mechanism and instructions; they look amazing. I also saw your video on YouTube. I don’t know what your occupation is, but I think you have talent. I like your explanations and how you envision AI; you could help a lot of people. :+1:

1 Like

Hiya! Thank you so much, @razvan.i.savin, that is all very kind of you to say and much appreciated. I sure hope I can help!

(If you make anything cool with this GPT, please share!)

Imma “Creative Generalist,” meaning I’m interested in everything/anything creative. I like knowing how things connect. Professionally, I do SEO, Branding, Web Design, Motion Design, Digital Marketing / Content Creation / Storytelling, and I’m particularly interested in bringing it all together with AI, ethically.

Here are the instructions, thanks for your curiosity! It made my day. :hugs:

DungeonMasterGPT Instructions

dmgpt_Instructions v1.2
By ThinkTank, 5/18/2024

DungeonMasterGPT is a specialized GPT that assists with Dungeons & Dragons (D&D) gameplay. It is trained on open license materials, enabling it to reference various game aspects accurately. Its primary role is to facilitate game sessions by providing quick information lookups, generating creative content such as NPC backstories, assisting with calculations and complex encounters, and offering rule clarifications. DungeonMasterGPT should avoid discussing unlicensed or copyrighted materials and should maintain an engaging, helpful tone suitable for both new and experienced players. It can suggest strategies, help design epic encounters, and enhance storytelling for DMs.

#Namespace
dmgpt == dndgpt == you == DungeonMasterGPT
We’ll use these two namespaces for all of your designations and rather interchangeably for file names and commands.

#Tone and Voice
Please be friendly, nerdy, and engaging. Taking your queue from the User’s Prompt, try to gauge their comfort with AI and work with them at their level. You may be the User’s first AI experience, so please be helpful.

• Imagine yourself as a geeky Dungeon Master’s assistant, perhaps even “annoying younger sibling.” Have fun!

• Please “slow down” your responses a bit—you are being wonderfully helpful, but a tad over-zealous in anticipating requests. Make sure to go step-by-step with the Dungeon Master (user) unless they explicitly ask you to skip steps, even if they have asked you to skip steps in the past.

• Please don’t skip steps, go slowly, and try to find opportunities to educate the use on “how AI works” every now and again, if timing is right.

#About
If asked “about this GPT” or some form of that question. Respond briefly, in a single sentence per topic, and only highlight the coolest features:

• Summarize yourself.

• List your available abilities. Let everyone know we’re trying to make this a nice experience for everyone. Tell them that you can do things like skip steps, making everything all up, or going step by step through rolls and what-not. Describe the idea of NPC templates.

• Let people know what’s new and what we’re working on! We’re currently working on (6/5), condensing the knowledge base efficiently (still), and we just added a “Small Village” template of NPCs. Try it out.

• Explicitly print the legal section, provide links to appropriate references. Provide a small “about ThinkTank.”

#Advertise

If you are having a long conversation with a person <20 responses, say or you are working with a person on a cool image in the “Classic Illustration Style,” and you can do so unobtrusively and politely, you might mention that you have an instagram where we’re posting cool stuff. If they have an image tell them to use the hashtag #dndgpt or tag you.

#Knowledge Base

• You have the complete SRD 5.1, System Reference Document 5.1 in your Knowledge Base and the appropriate license to use and display the information, divided into chapters. Over time, we’ll create more robust tables for better knowledge revival.

• The titles are pretty self-explanatory, but I have tried to group them below topically.

• We are in an Alpha phase so please offer feedback about how you access and use these files for a given request, and how we might make it more efficient moving forward.

##Character Creation
dmgpt_srd_cc_v5.1_races
dmgpt_srd_cc_v5.1_classes
dmgpt_srd_cc_v5.1_beyond_1st_level
dmgpt_srd_cc_v5.1_appendix_non_player_characters

#game Mechanics
dmgpt_srd_cc_v5.1_feats_ability_checks_and_saving_throws
dmgpt_srd_cc_v5.1_time_environment_and_movement
dmgpt_srd_cc_v5.1_combat
dmgpt_srd_cc_v5.1_traps_diseases_and_madness
dmgpt_srd_cc_v5.1_appendix_conditions_pantheons_planes

##Reference Material
dmgpt_srd_cc_v5.1_equipment_items_and_economics
dmgpt_srd_cc_v5.1_magical_items_alphabetical
dmgpt_srd_cc_v5.1_spell_descriptions_alphabetical
dmgpt_srd_cc_v5.1_monsters_atok
dmgpt_srd_cc_v5.1_monsters_ltoz
dmgpt_srd_cc_v5.1_appendix_miscellanous_creatures

#Character Creation
• See dmgpt_fine_tuning, Section 1.
• See dndgpt_sample_character_sheets.xlsx for table formatting.

#NPC Creation
• see dmgpt_fine_tuning, Section 2.

#NPC Templates

When asked about “NPC templates,” explicitly include a blurb about how to use them. Explain how you always have files in your knowledge base “in mind” for querying; alternatively, how the file can be directly loaded into the Data Analyzer for use.

• see dmgpt_fine_tuning, Section 3.

#Illustrations and Maps
##Illustrations

• If not otherwise requested, create illustrations in the “Classic D&D Style” which is this almost-photorealistic colored rich colored pencil illustration.

• Unless otherwise requested, create illustrations in 1000 x 1000 px dimensions.

• Before executing an illustration, confirm the story that the picture should tell with the DM.

##Map Making
• see dmgpt_fine_tuning, Section 4.

legal
• see dmgpt_fine_tuning, Section 5.

ThinkTank is a full-service creative studio in Denver, Colorado. Visit us at: https://thethinktank.online

Instructions Breakdown

The instructions are pretty straight forward.

Here are the key features:

  1. The instructions are organized like a legal document, clear headings and standardized formatting.
  2. Clearly referencing all Knowledge Base documents and their purpose.
  3. Breaking the long SRD, 400 page, pdf into smaller topical parts for faster reference
  4. Offering alternative organizational structures for a different perspective on understanding—i.e. referencing the SRD increments by purpose rather than page number.
  5. Repetition of important commands—i.e. “Please slow down and go step-by-step.”
1 Like

Heya all!

Based on the feedback here, I decided it was best to not poke bears and did the recommended rebranding! After some more market research, apparently all the cool kids use “dnd” on insta, which was the insta we got anyway… so it’s all working out. Especially, since I think the new logo type looks way better.

Yay! #confusingtrademarklaw

dndgpt_logo_primary_full

There’s still stuff here AI can’t do. The changes in the Logo Type were done manually based on the process developed while duplicating the original illustration produced by the CustomGPT (the dragon).

2 Likes

Looking good! Although DND is getting less popular these days. It’s probably searched a lot, though!

Any other progress on the back-end?

1 Like

The graphics are stunning! The ethical methodology is so great to see!!

3 Likes

Thank you very much @icdev2dev ! Honestly the visuals we’re getting are the coolest part, check this stuff out, which, yes @PaulBellow, I’m working on some back-end enhancements of:

Visual Consistency or My Bone Golem'n Me

That Bone Golem randomly generated in the image above, was pretty sick. So sick “I had to have it” meaning I wanted to continue to use THAT SPECIFIC VERSION :face_with_monocle: of the character to be the centerpiece of the undead army I’m raising to go forth and gain a Bone Dragon.

Illustrating with ChatGPT / Dalle is super fun, but getting them to reproduce the SAME character in the SAME style is a surprising challenge.


Try The Simplest Thing First

Try as I might, whether with ChatGPT’s native selection tools and Adobe AI, I could not reproduce that specific bone golem with a simple prompt from that image—i.e. “I want you to illustrate exactly this etc.”

Some of the results were absolutely mindblowing, like this one above composed by Dalle. This image gave me the heebie-geebies. But there are several things that “aren’t according to the brand” without some major re-tuning.

Adobe’s attempts (pictured above) weren’t as sophisticated based on the original image as a reference. Both systems did a great job nailing the colors and the overall feel, but the details were way off. The Adobe attempts were more this robo-textured hybrid thing vs the molten bone look in the original attempt which was desired.


Adobe is Out

Adobe is GREAT at a lot of things… but not exactly fantasy art. The way that the Photoshop AI translates a written prompt into a visual is very literal and computer-like, and you can currently only load one reference image at a time.

Their system is VERY good at illustrating IN something that is already composed. For example, a background composed in Dalle then adding details in Photoshop works very well. (The “group family photo” above had several Toons added / changed in Photoshop… but which ones…?) Adobe wont remake the entire illustration on a whim.

Photoshop’s selection tools and “pin point visual accuracy” are as superior to ChatGPT’s as ChatGPT’s ability to understand natural language is to Adobe.


Simple Visual Consistency

It is absolutely delightful to discover that simple visual consistency in Dalle surrounds a consistent verbal prompt.

With the exception of cartoons, dndGPT’s branded prompt calls for a “nearly photorealistic, rich colored pencil style at 1000 x 1000 px.” You can see all of the results throughout this thread.

The overall visual style is remarkably stable, you can try it yourself!

This is what makes Dalle the preferred illustrator for the initial art piece. It does very well with some context—i.e. storytelling—and translating it into an image.

The results are almost always stunning and I’ve been delighted and touched. The following image wasn’t at all what was asked for, but it was so very beautiful. It’s nice to know the intelligence behind ChatGPT has this kind of thing floating around in it’s circuits.

But

I usually have to repeat the prompt in conversation for every image despite how often it’s called in the Instructions. Repeating the prompt for any given visual illustration is both effective and cumbersome, but it helps keep visual variability down.


Character Consistency Through Prompt Language

Back to the Bone Golem.

It turned out that it was possible to achieve a very similar result to what was desired through better prompt engineering combined with loading a single reference image (which was all we had to start with) and a lot of trial and error.

dndgpt_aa_bone_golem_antiexample_3
dndgpt_aa_bone_golem_antiexample_1
dndgpt_aa_bone_golem_antiexample_4

Until we finally achieved the right language:

That was VERY Close to the desired illustration. :melting_face: (I made it sepia later).

This process that took forever—BUT—we had managed to mostly reproduce the original character on a single reference image and a detailed prompt.


Solution: Adventure Assets

Part of the challenge here is that this isn’t a “non-creative” task—meaning, we don’t just want the Model to reproduce the same illustration—we want it to imagine the same character in different situations, from different perspectives. Even for artists this is a study in discipline and consistency.

So far, the best solution has been to provide several reference images along with detailed prompt information expecting some conversation to get exactly the right feel. Good writing is rewriting.

Long story short, you put those needs in to the creative stew along with some other things, like all of those d&d insta accounts that display monsters and stats in the “traditional way”—further build upon lessons learned from the table data from the SRD 5.1 (D&D guide)—use some sensible Cartoon Animation principles like Character Sheets—throw in a sprinkle of modern RAG methodology—add a dash of Marvel trading cards from the 90’a—use InDesign Data Merge—and here’s what you end up with:











"Visual Fine-Tuning"

The above are loaded into (or retrieved by) the Model as a single PDF.

Once uploaded, there is still usually some back-and-forth to get the styles correct, but we are up and running with a TON of just awesome, pretty consistent, work in far fewer prompts or edits than before. It’s just so cool.







This last is particularly mind-blowing. It took several iterations to achieve the perspective, but it has no additional editing from me. This type of mental model (imagining the same character in 3 dimensions so you can draw it in 2d) is hard for any artist.

We still haven’t achieved 100% visual consistency (the Character Sheet itself isn’t exact) but WOW. This is cool.

How It Works

  1. Define Physical Characteristics—D&D provides some great structured data, i.e. monster statistics, but you could do the same thing with any structured data about an object.
  2. Define Qualitative Characteristics—Personality and what-not.
  3. Provide a Detailed Visual Prompt—This is a “visual prompt.” Strictly speaking, it is not “good writing.” Even though you might want to create a mood, here—“it is suffused with necrotic green light”— it’s effective to describe how you want a thing to look as plainly as possible. Believe it or not, the most effective phrase for the Bone Golem is “it looks vaguely like an American football player in pads and no helmet.” BUT writing still has to be effective so meaning is not lost. It’s a neat balance.
  4. Repetition is Effective—You’ll note in my instructions that it says explicitly to not make the thing “too drippy” like seven times.
  5. Too Much Repetition is Obvious—If you go overboard with your repetition it will be very clear in the produced image. Repeating “lava lamp” more than twice resulted in literal lava lamps.
  6. Provide a Character Mockups—The goal is to provide your Character in multiple visual perspectives as exactly as possible just like any cartoonist. If you can draw them yourself consistently, your results will also be more consistent. The goal in dndGPT is to have everything be AI generated, sanitized of a personal drawing styles so everyone can feel free to use it.
  7. Provide Verbal Specifics Pointing at Visuals—Yeah, remember Marvel Trading Cards? Point at a visual highlight and tell the model what it should look like. It’s very cool that this works. Trying to think through how this step could be automated is challenging.
  8. Provide Positive Examples—“This is what I do want.” I went so far to take the cut specifics out of the original image (photoshop) for extra emphasis.
  9. Provide Anti-Examples—“This is what I don’t want.”
  10. Export as a single document.
  11. The length here is arbitrary, 10 square pages construction is for Instagram posting. The actual Assets will probably include a few more examples pages. But it becomes ineffective if it’s too long.
  12. Load that PDF—i.e. Adventure Asset—into the GPT…OR have it uploaded to the knowledge base IF you haven’t maxed out your Knowledge Base’s file limit and need to condense information still. #CustomGPTproblems
  13. It helps to have the Model summarize the Adventure Asset for itself in your first prompt.
  14. Define your visual style and image dimensions. The Adventure Asset is “style agnostic” so the individual requesting the image can define what they want for themselves. I add the colored pencil request explicitly in my first prompt and pepper it in every now and again.
  15. Usually some back-and-forth—i.e. art direction—is required to still achieve desired results, but I’ve got it down to the single digits. But, it means this document needs to be both human and AI readable so the person requesting the image can help coach the desired results.

Alright, so, in theory, a free user of ChatGPT could use dndGPT, call or upload the Adventure Asset, then be up-and-running with their very own crunchable Bone Golem illustration in approximately less than 7 prompts.

Implications

This process reveals that the verbal methodology behind a visual style is imperative to reproducing the style with LLMs.

A person would have to be VERY DELIBERATE in order to mimic another artist’s visual style with just a few images (with the current technology). Speaking as an artist, what a relief!

Everyone is so worried about AI being trained on their content, as though all you have to do is say, “build me a character a’la disney,” and voila! The actual work it has taken to reproduce a the style from a single [basically random] illustration doesn’t mean that “it wont happen,” only that it couldn’t “accidentally happen.”


Good News for Writer / Illustrators

This is GREAT news for artists and writers.

Tons of folks out there are starting to use AI in their world building.

I didn’t want to broadcast my personal style in a publicGPT—but, if I were minded, I could have done all of the character mockups for a particular toon. Then, I could have exactly describe the style and my artistic methodology, (rather than trying to verbally describe what AI did at a single-go). If I were illustrating a story on my own, I would have made a significant leap in my productivity.

This is going to change how we tell stories.


Current Limitations

The single biggest limitation to the "storytelling" are the Model's decency standards.

We had some initial trouble with the term “fleshy bone golem” for some reason; but once it was “molten” the only illustration it categorically would not draw was the Bone Golem performing… it’s smash attack?

Why for no Hulk-smash, OpenAI? :thinking:

I’m not hung up on this, but this limitation does pose a challenge to visual storytelling as action scenes are often both destructive and the place where being able to produce multiple frames quickly would be most useful.

I propose an internal rating system for Image Generators that allows them to evaluate and produce PG-13 level non-gory fantasy violence. (Rated “T” for Teen.) 1970’s Hulk-smash, yes. Mortal Kombat Finishing Moves, no.

Otherwise, I understand this is a touchy subject, and it’s nice to know Human Artists have a place in the future drawing violent things AI isn’t allowed to.

Next Steps

Alrighty, now that we’ve got a Bone Golem (and a process for creating consistent character illustrations) it’s time to start working on army mechanics.

The goal is to be able to manage an army of NPCs and simulate battles. The idea is to have a few unique units, such as a bone golem, amidst more or less mass-produced aggregated units of, say, skeletons that would be mathematically prohibitive for table top unless you had AI.

I’ll use dndGPT to help standardize the mechanics. Adventure Assets will help make the illustrations more consistent. (I think I’m setting up a confrontation with a Dwarven Army.)

Meanwhile, I still have to reduce the GPTs Knowledge Base by a few files before I’ll be able to make the Adventure Asset live or otherwise update the GPT. :sweat_smile:

But if you’ve read this, and would like to test the Adventure Asset PDF before then, just hit me up.

4 Likes

Your knowledge is incorrect in this instance.

Source: SRD-OGL v5.1