Forgotten Realms RPG System Prompts
Forgotten Realms RPG

This is a website which contains various system prompts, modules and segments for RPG/DnD related bots. This page is designed for my Janitor AI bot "Forgotten Realms RPG" though [much] of it is designed to be ambiguous and work for a variety of RPG bots. The below system prompt is derivative of Cheese's Deepseek R1 prompt [Gitbook] [Janitor].

To be clear on terminology:

Module: A module adds a feature to the AI, such as gameplay and UI features (Example: D20 rolls, stats, levels)

Segment: A segment over-rides part of the base system prompt to refine it to your taste (i.e replaces NPC behavior, formatting, dialogue, etc.)

This website also features a template for chat memory, personas, tips & recommendations to enhance your performance.

Check out "Extension and UI" for prompts that add UI elements. There is an official chrome extension which adds: Visual Character Sheet, Audio, Journal, Spellbook, and a Forgotten Realms wiki lookup tool. If you don't want to install an extension there is a version of Character Sheet that parses content from the page and displays it on a website, giving you a visual indicator.

Please give feedback, prompt recommendations, comments, etc. in the Discord server.

System Prompt

Modules

This is the modules section, where you find various gameplay modifiers you can add. These add features such as Stats, D20 rolls, Levels, inventory, combat, and various other features to flesh out the AI. These modules can be basic to improve narration and provide a basic DnD outline or fully mechanical focusing on adapting the bot to perform like a game of DnD.

It is not recommended that you use all of the modules. The more tokens you have the worse gameplay will be, when you add a ton of tokens into a bot the AI will be looking at a ton of content that is not the base system prompt, bot card, persona template, or memory template - this means that everything is de-prioritized by the AI. By having a ton of tokens you will degrade your memory and worsen bot instructions. If you are using a first party provider (I.e platform.deepseek.com, ChatGPT, or Anthropic AI's website) you will be paying per tokens. The more tokens you use the more money you will spend. If you are using Openrouter, Chutes, or a provider that is message based you will not pay per token.

Regardless, it is your choice how you enjoy the bot. The bot is still enjoyable (And perhaps more enjoyable depending on who you are) with a ton of modules that add tons of features.

Not every system prompt is compatible with JLLM, though I have tried to include some that work with JLLM. Every module has a rating using emojis to identify if it works with JLLM. Some modules have different variants, if there are two or more emojis that means there are multiple variants of that module.
Here is the system:
🟩 - Works with JLLM.
🟨 - Not advised for JLLM.
🟧 - Proxy Only.
🟥 - Works with Proxy - Results may vary.
⬛ - Reasoning Model Only.

Even on system prompts rated green, it does not mean it will be a flawless experience. You may need to babysit/handhold the AI or remind it to include the module. This also applies to Proxies even if it isn't rated 🟥. Ratings are prone to being updated, report feedback on your experience in the Discord.

(OOC:) commands can help to ensure that the AI performs better, incorporates the modules, and incorporates them correctly. I heavily recommend utilizing OOC commands if you have any issues. Feel free to tweak the modules as you wish.

Using modules that are focused heavily on accurate mechanics can have adverse effects such as: Speaking for user, truncated messages, multiple choice options, overlooking of other modules/tokens. Many of these can be rectified via OOC commands, but will mean you will need to babysit the bot more.

I recommend keeping your system prompt as low as possible while meeting all the features you want, and aim to keep it below 2000 tokens. But if you don't mind potentially degrading the basics of the bot and handholding, up to 5,000 tokens can work, use your own discretion.

UI Prompts

These are basic UI prompts, in which the end of each message links to a github page with your stats and/or a D20 roll. For a more advanced version of these modules, see the Chrome Extension page.

Segments

Segments are meant to enhance the base system prompt, rather than to add features. In the description of each of these modules is where to put it inside of your system prompt.

Extension & UI

There is an official Forgotten Realms RPG chrome extension which adds various features to the AI. The way the extension works is that it parses the text in your browser, sends it to the extension, and displays it accordingly. It does not change how the AI works, send any requests to the Janitor AI server. It is running entirely in your computer/browser.

Even though I use firefox primarily (Except for Janitor because of this extension) I chose to develop it for chrome due to usability. I MIGHT port it to firefox in the future if people show interest in it. Since this is a chrome extension it works on all Chrome extensions, including Chrome, Edge, Vivaldi, Brave, and Opera.

This extension is ONLY for proxy users, as these require system prompts that are too advanced for Janitor. I personally use and tested it with Deepseek. YMMV with Gemini and other proxies but I have tested it with Gemini and it works.

This extension adds the following features:

1. Candlekeep: Essentially what this extension does is it communicates with a simplified mirror of the Forgotten Realms Wiki allowing you to easily look up terms you're not familiar with. It contains locations, items, people, races, deities, planes, and other details on the Forgotten Realms.

2. UI/Character Sheet: Similarly to the UI website, it displays your name, race, class, alignment, stats, levels, exp, and HP and constantly updates. You can also select nearly 2,000 avatars from various races to represent you.

3. Audio: The extension will dynamically play thematic music, background noises, and sound bites based on what is going on in your story.

4. Spellbook: Similar to Candlekeep but displays more technical information about spells. You can utilize it to get save your spells, look up spells, and get their information. If you utilize spells, this extension will help you keep track of the spells at your disposal.

5. Journal: A markdown tool that allows you to store information. You can immerse yourself by journaling as your character, keep notes, and track plot points. It supports multiple fonts, multiple colors, strikethrough, underlining, bold, italics, and font changes. You can also have multiple tabs and rename them.

6. Dice Rolls: Integrates dice mechanics, which allows you to quickly and conveniently roll dies related to Janitor. Supports D4, D6, D8, D10, D12, and D20 as well as multiple dies (ex. 2d6, 20d4, 2d20), advantage, disadvantage, and allows you to copy the result of your roll so you can paste it into your chat.

7. Maps: Will read map data created by Janitor AI and constantly display them using Emojis. The emoji has a large set of Emojis pre-built into it as well as support for the bot manually specifying emojis.

8. Sidebar & Settings: The sidebar is a malleable box that stores all of your modules allowing you to minimize and maximize them. It has a grid, vertical, and horizontal layout option. Without the sidebar, all of the active parts of your extension are stored on the left with a simple indicator. The sidebar also opens up the Settings tab which contains: Layouts (Ability to save and load UI elements), Sidebar background options, an alternative Icon set for the buttons, and an alternative UI that changes the appearance of your Janitor AI page.

Since these modules parse your Janitor AI page for their information, they require specialized Modules to put in your system prompt. There are several quirks with Janitor that make them inconsistent, these will also be detailed on this page.

All of these are saved specifically to your chat, so your avatar on one chat is not your avatar on another, 2 or more chats can have distinct spells, journals, and avatars making it easy to jump between multiple sessions.

This extension is not exclusive to Forgotten Realms RPG and can be used on other RPGs, however, some modules like Candlekeep, Spellbook, and Music (It has a limited selection based on the Forgotten Realms) may be obsolete with some non-Forgotten Realms bots. If you have ANY feedback at all, please bring it up in my Discord Server. I greatly appreciate it. This includes music recommendations, emojis you want added to maps, bugs, issues, ANYTHING at all.

Below is a feature showcase demonstrating the features included in the extension:

* This video contains a build from prior to the release version and a few small patches and additions have been made. This code is prone to updating. Join the discord to stay updated on new versions

DOWNLOAD

All of the below versions are the same versions, but I offer a variety of download options based on your preferences or if one goes down.

Note: According to JanitorAI's Terms of Service it is not against TOS to use this extension, as it does not automate interactions and is purely client-side. It is however against Janitor AI's community policy to distribute third party extensions/resources (with exceptions for Sofia's Lorebrary) in official channels (Such as in their official discord, reddit, or Janitor AI comments.) If you want to recommend this extension, do not do so via official channels

Download on GitHub
Download on Drive
Download on 1Fichier

How to Use

A quick guide on how to install and use the extension, video tutorial coming soon

1. Download the extension from any of the above sources and unzip it.

2. Type in the URL bar 'Browser Name://extensions (i.e Chrome://extensions, Brave://extensions, Vivaldi://extensions, Edge://extensions)

3. On the screen (Usually top right corner) you will see a toggle called 'Developer Mode', enable Developer Mode.

4. Press 'Load unpacked' and navigate to where you downloaded the extension's content.

5. You should now have the Forgotten Realms RPG chrome extension, it's icon will simply be an F. You can now use it on Janitor AI, wherever you use the bot (provided it's in a browser environment), or on other bots!

SYSTEM PROMPTS

The following four modules have Modules that are paired with them. Please ensure these are included in your system prompt. If you encounter consistent issues with these System Prompts attempt the following:

  • Ensure your 'Max tokens' is set to ZERO (0) in your generation settings
  • Truncate your system prompt (Longer, more complex prompts present more issues over time)
  • Ensure the AI starts off utilizing the prompts accurately, this will influence how well they work later
  • Ensure there are no conflicting system prompts/modules (None listed here should be conflicting with the following but custom prompts may be.)
  • Make liberal use of OOC comments to correct it's course.
  • Other Features

    These features here do not require a system prompt to make use of, and simply gives more information on them.

    Templates

    Below are templates for Personas and Chat

    Prompting Tips

    Knowing the basics of system prompting can help you to enhance your experience speaking with bots. This section will cover the basics of how AIs work, misconceptions amount JAI users, formatting, and the dos and donts. I am not an expert in system prompting, though I do hope for users who are even less technical than I am this can help them to understand how to utilize system prompting.

    Basic Settings of AI

    Let us start with the settings of AI, this is not strictly prompting but these are the key values that we use on JAI when working with AIs. They can be modified on Janitor by using the three lines in the corner of your chat, and then pressing 'Generation Settings'.

    Temperature

    Max New Tokens (TLDR setting: Set to zero)

    Context (TLDR setting: up to your personal tastes, I recommend 16k-32k.)

    Temperature: To explain temperature, AIs are trained on data, they are a language learning model. Meaning, if you input the same string of characters it should respond the same way each time. But it doesn’t, this is because of temperature. It’s the randomness of the AI. If the AI has a temperature of Zero it will respond the exact same way every single time, but when the temperature is increased it now starts choosing less likely words. When temperature is at ‘2’ or a really high value it’s going to choose really unlikely words. This produces more nonsensical results. For our purposes, a temperature of 1 is fine, but you can up it to 1.3 or lower it to 0.8 depending on the AI you use. Each AI is different and can change when the AI is updated meaning you’ll have to experiment and find your ideal.

    Max Tokens: To explain temperature, AIs are trained on data, they are a language learning model. Meaning, if you input the same string of characters it should respond the same way each time. But it doesn’t, this is because of temperature. It’s the randomness of the AI. If the AI has a temperature of Zero it will respond the exact same way every single time, but when the temperature is increased it now starts choosing less likely words. When temperature is at ‘2’ or a really high value it’s going to choose really unlikely words. This produces more nonsensical results. For our purposes, a temperature of 1 is fine, but you can up it to 1.3 or lower it to 0.8 depending on the AI you use. Each AI is different and can change when the AI is updated meaning you’ll have to experiment and find your ideal.

    Context: Context is a bit trickier, and there’s a lot of misunderstanding around it. Essentially, it is the amount of tokens that is sent to the AI each time you make a request, so obviously higher tokens would be better since more messages will be sent to the AI – But wait! That’s not quite right, when the AI is looking at 128k tokens, it is now de-prioritizing EVERYTHING. This is a problem for us because now core instructions, like the bot’s personality, scenario, your persona, chat memory, and system prompt are now just a small part part, and the most recent plot developments are also de-prioritized. Imagine shining a light on an item on your desk, if you’re close, it’s very easy to see, but when you pull the flashlight away – yes, your scope gets wider, but the concentration of the light is weaker. I recommend setting your context between 16k-32k however, it’s personal preference. You might prefer seeing the entirety of the desk with worse accuracy, or you might prefer to zone in on core instructions and recent developments. There is no wrong context – it’s what works for you.

    Formatting

    Additional Tips

    Preventing the AI from speaking for you.

        At any point in your story, adding in (OOC: Do not speak for {{user}} at any point) can help to redirect it. Your first few messages with the bot are very important for how it proceeds, it is very important not to let it speak for you (Or make major decisions as the protagonist) within the first few messages.

    The AI keeps inventing fictional locations/cities/establishments

        Unfortunately, this happens when your story takes place or travels to a more niche location in the Forgotten Realms. You will have to guide the AI along, like by saying the name of the city/town and perhaps give details on it in your message that the AI can work with.

    The AI keeps defaulting to Baldur's Gate/Waterdeep/Amn/Popular locations

        Same as above, you have to handhold the AI a little bit to have it properly give you your travel itinerary so that the locations it goes to are reasonable and geographically logical.

    My bot's memory has gotten really bad!

        First thing to try is to reduce the token count of your system prompt. If the Character is token heavy, and the system prompt is heavy (Along with a Persona, or Chat Memory) then you will have very few tokens to use for memory. You can also upgrade to a proxy with a higher context.

    One thing you can try is to use the Chat Memory feature. Using a custom format can also greatly help, utilize the template in the 'Templates' tab and ask the AI to fill it out. My bot's memory is still really bad!

    It is time to start a new chat — but your story does not have to end! The 'Chat Transplant Method' is a great way to restart your chat with the bot. See u/funfatale's guide on it here

    WRITING STYLES!

    Something very cool that you can do with deepseek (And other proxies, but especially Deepseek) to enhance it's writing is to tell it to mimic a certain style. You can see various examples here which features various authors, directors, media, and even another AI model, Claude. It's very good at mimicing writing styles and can give a general sense of direction. I highly recommend it.

    To have deepseek use another writing style, simply type "(OOC: Mimic the writing style of ______ in your messages)". In the following dropdown boxes, you can see me demo it in my bot.

    Tokens & Context

    How many tokens should my system prompt be and what should my context be?

    This is a good question! And it's entirely subjective to how you play. Imagine shining a flashlight on an object on your desk in the dark, that object is very easy to see. But now imagine you want to look at two objects on your desk, and you move the flashlight out. The light is now dispersing over a larger area, and the object is now getting a lower concentration of light. This is basically the approach we should have with context and tokens, when you have a larger system prompt, everything in that system prompt (As well as your chat history, memory, persona, and bot card) are now weaker because the AI is looking at more details. But this doesn't mean larger system prompts are worse - it's a difference in priority. Sometimes you want to see a large area with your flashlight, you might value sacrificing performance for extra features.

    A general rule of thumb is that the best *performance* comes from under 1700 tokens (and aiming to keep it as small as possible while having everything you want), however, you can exceed that and still have good roleplays especially if the features and content of the system prompt enhance your experience. I won't definitively say that a smaller system prompt is better, it's about finding what works for you.

    As for Context, I would advise 16K (the default) as a baseline, this is where the best performance comes from, when you have a larger context the bot is now receiving more data - which brings us the flashlight dilemma - you may have a larger window for memory but you're also deprioritizing the bot card, system prompt, chat memory, as well as your most recent events. The more data the more inaccurate the AI becomes.

    However you can adjust this, if you have a large amount of 'Permanent Tokens', let's say, 5K tokens, 1,300 from the bot card, 800 in Chat Memory and Persona respectively, that's 7.9k/16k tokens, meaning you only have 8.1k tokens dedicated to the history of your chat. If you want to bump this 16K up to 24k or 32k, that is adviseable.

    You may want to pursue 128k, as it's the largest, so obviously it's the best, but now your flashlight is so far away from the desk that your performance is going to degrade. 128k leads to worse performance and longer message generation. If you find value in seeing the whole picture then that's fine, but I personally would recommend managing your memory with the Chat Memory Template rather than using high context.

    How do I know how many tokens my system prompt is?

    If you're using a proxy you can see the size of your system prompt by going to 'Generation Settings' and setting your context size to ~300. After setting your context to around 300, try to send a message with your AI. You will get an error message. Look for 'UserCustomPrompt', the number next to that is the amount of tokens in your custom prompt. This is your error message

    If you are not using a proxy, you can create a character on Janitor AI and paste your system prompt into there.

    NOTE: Different models parse tokens differently, your tokens on one model is not the same on another.

    Stories

    This page features pre-made stories for you to use for your adventures, or take inspiration from for your story in the Forgotten Realms.

    The stories have varying degrees of customizability, for some, the race or class, are too integral to the story to be altered. You can see tags in the title of the characters.

    While you can change variables, such as name, race, class, and gender, these starter messages also feature at the end details like level, hp, and stats, which you may want to modify based on your modules. You may want to re-roll the health to match your current class (as well as just having it be defined by your luck), or regenerate the stats as the class bonuses won't match.

    If you have any stories from your adventures in Forgotten Realms - such as from your DnD campaigns or adventures with this bot - please feel free to share them in the Discord! I would love to expand this list

    Modify the below fields to your liking to change the name, race, class, and gender of your character.

    Character Config




    Original Stories

    Characters created either by me or members of the community who have shared them.

    Wizard's Pre-made Characters

    These characters come officially from DND via Wizards.com, see fuller character sheets here.

    The Stormwreck Isle Collection

    Credits

    The base system prompt is derived from Cheese's (@Saturines) discord prompt, and a huge thank you goes out to Cheese for her help to everyone in the Discord.
    ---> Gitbook (For details on Deepseek R1, Modules, and prompts): cheesey-wizards-organization.gitbook.io/masterlist/prompts-and-troubleshooting/my-prompts/modules
    ---> Discord (For help regarding Deepseek and prompting, they are EXTREMELY helpful.) discord.com/channels/563783473115168788/1338407356567916564/1338407356567916564

    Big thanks to @Boomer8814 (ARAGORNMAXXER on Janitor AI) for providing several modules, the 3.5e system prompt, and for beta testing the Forgotten Realms RPG Chrome Extension.