Statuo's Guide to Getting More Out of Your Bot Chats

  1. Statuo's Guide to Getting More Out of Your Bot Chats
    1. Introduction
      1. Updates
    2. Bot Making
    3. General Tips and Guidelines
      1. Trash in, Trash Out
      2. First Person? Third? Second?
      3. My bot isn't consistent and it's forgetting things!
      4. God, the bot won't do what I need it to do. (Director's Notes)
      5. End your responses with action.
      6. Make use of the Authors Note/Chat Memory Feature.
      7. Moving to the Next Scene
    4. What is a reset?
    5. Group Chat Advice and Multi-Character Cards
    6. Subtlety, Misunderstandings, and You.
    7. Neat Chat Tricks
      1. Interruptions
      2. Time Skips
    8. Making a Persona - How and Why You Would Want Too
      1. How to get to the Persona Edit Screen
      2. Making Your Persona
      3. In-Chat Name
      4. Description
        1. General template
        2. More Specific templates.
      5. Closing Notes: About Trans Representation
    9. The Bot Talks For You - A write up on why it's happening.
      1. I can just use a Jailbreak to make it stop, right?
      2. Okay, so what can I do?
        1. Terribly Designed Cards and you.
        2. The Bot Speaks For You as Part of its introduction or as part of its example dialogue.
        3. The Bot Has NO Example Dialogue
        4. Just Write!
        5. Reducing the Response Length Parameter
        6. Editing the Responses
        7. The Bot Can't Act as Multiple Characters
        8. You're Using a Low-Tier Model
        9. Rambling About LLM's and Why This Happens At All
    10. Better Adventures - Side Characters and More.
      1. Fixing it with Group Chats
        1. Scenarios.
        2. Narrators.
        3. Directors Notes and Authors Note/Chat Memory
    11. Generation Settings and You
      1. Help, I got word salad!
      2. Foreword
      3. What are Generation Settings?
      4. How does an LLM actually output words?
      5. The Basic Settings
        1. Temperature
        2. Repetition Penalty
        3. Repetition Penalty Range
        4. Frequency Penalty
        5. Max New Tokens
      6. Advanced Sliders
        1. Top P / Min P
        2. Top K
        3. Mirostat
        4. Epsilon Cutoff and ETA Cutoff
        5. Dynamic Temperature
        6. Add BOS token
        7. Ban EOS token
    12. The System Prompt - How to Write Your Own and Why You May Want to
      1. The Basics Before the Basics
        1. The System Prompt/Pre-History, What it Does
        2. Negative Prompting
        3. Model Quirks
        4. Positivity Bias
      2. Writing Your System Prompt
        1. Think of the Goal for your System Prompt
        2. Format of a System Prompt
        3. Wow, I'm not Reading All of That
          1. Start with Objectives
          2. Give It Things to Do That We Like
          3. Adding Limitations
        4. Refinement and Testing
          1. Token Count
          2. Contradictions
          3. Testing
          4. The x/10 Test
      3. Final Thoughts
    13. Statuo Rants A lot
      1. How To Roleplay More Effectively
    14. Statuo's System Prompt on Chub for Mars/Mercury

Introduction

Hi, I'm Statuo and this is my collected knowledge on how to get more out of your chats. I've been doing this for a long while now and have been using almost exclusively 13b Models to chat with 4k context. But I've made things work with 6b models on 2k context for a long time. So I've got experience in wrangling certain aspects of models.

This guide will focus on Mercury/Mars. Which you can use on Chub Venus. However, advice here is applicable to most chatbot models 13b or higher. This guide presumes as well that you're new to actually using Chatbot models or are looking to further your knowledge on how to best get knowledge out of them. As such, this is a beginner's guide.

Updates

For the most part, most of this guide will remain constant unless there's a massive shake-up in how LLM's work. As such, anything you learned prior is going to benefit you in the future. That being said, if I update specific sections I'll note it here along with the date.

03-19-25: The Wildcaller Prompt section was created.

01-16-25: The Warband Prompt section was created.

11-19-24: Added in the "Moving to the Next Scene" section.

10-28-24: Added new sections to "The Bot Talks For You - A Writeup on Why It's Happening."

10-18-24: Added new section (mostly me remembering to update this section after the fact):

  • The Anatomy of a Prompt
  • How to write your own system prompt (and why you may want to)
  • Odysseus Preset Breakdown

09-14-24: Added information to the following sections:

  • Trash In, Trash Out
  • The Bot Talks For You, A Write Up on Why It's Happening.

Added new section(s):

  • Subtlety, Misunderstandings, and You.
  • Neat Chat Tricks

Bot Making

This guide does not cover how to create bots. I've done that instead on my other page. Of course, there is a variety of botmaking guides out there. Such as the popular Alichat style.

General Tips and Guidelines

To get you started off, these general tips will help you out somewhat.

Trash in, Trash Out

If you are providing low quality, one-line responses, the bot is going to have to do the heavy lifting for you. But this means that it will do a lot of things that you may not want.

Blood dripped from the dragons open maw, the flicker of deadly fire can be seen raging within its throat as it approaches the pair. Its eyes gleam with a predatory malice, its footfalls shaking the earth itself as it focuses on its next meal. "Get behind my shield!" Statuo shouts, desperation fueling his magic as he pours everything he has into weaving mana around him. Gods, it may not be enough.

Compared to

The Dragon moves a few feet. I raise my shield.

You could almost say that the bot learns from how you post and tries to match it. So shorter responses beget shorter responses. If you want more detail, you're going to have to get good.

If you don't provide the bot enough to go off of or if you give it confusing directions, it's going to do its best to comply even if it conflicts with other things you give it. You've gotta roleplay with the bot as much as its roleplaying with you.


This principle is meant to get across that a bot is going to learn from you, but it also applies to the bot's posts itself. If a bot constantly repeats a phrase and you don't edit the phrase out, it will continue to do so. If the bot gets into a romantic loop, it will continue to try and pursue that loop. You have to monitor the bots responses as much as your own responses to get the desired outcomes.

First Person? Third? Second?

Real Quick, when referring to how you respond to the bot there are three types of ways to write it:

  • First Person refers to writing as if you were narrating what was happening from your point of view: "I opened the door." "I smiled at Naomi."
  • Second Person refers to writing as if you were the reader: "You open the door." "You smile at Naomi."
  • Third Person refers to writing as if you were narrating events that happen to other characters: "Statuo opens the door." "Statuo smiles at Naomi."

Cool. Now that we've got that out of the way:

Never use Second Person with bots. The reason being is that by writing in such a way you will absolutely confuse the hell out of the bot.

Using first or third person is fine. The key is consistency. The bots tend to respond to both first and third person fairly well. I've done testing with both and while I can't confirm anything mathematically, I can say the following:

  • First person leads to less bleed for 1 on 1 chats. Bots tend to respond as "you" less. Breaks apart more often in group chats.
  • Third person is more consistent for group chats. Bots tend to not bleed over into each other as much. But they do tend to write for you occasionally even in 1 on 1 chats.

Personally, I use third person. But I do a lot of group chats and - again - either is fine. If you switch often, you will confuse the bot.

My bot isn't consistent and it's forgetting things!

Bots are stupid. They forget things. They forget where they are. They forget who you are. This is just a quirk of any model due to how model context size works.

The key to consistency in bots lies with you, the User.

Unlike traditional writing, you'll have to start learning how to help the bot along. In example:

I grab my coat off the coat rack. "I'm sorry, doll. But I have to solve this murder."

May just prompt the bot to 'watch you walk out the door of their apartment' when you were in your detective office five messages ago. Obviously a bit frustrating, so try to modify your output:

I grab my coat off the coat rack and walk over to the door of my detectives office. My hand rests on the handle. I know I should say something before I leave. "I'm sorry, doll. But I have to solve this murder."

In lower tier models (13b and under) this may not be enough. But usually it's enough to get it on the first few rerolls of the message. The key is to occasionally remind the bot of things you find important even if it flows unnaturally.

God, the bot won't do what I need it to do. (Director's Notes)

Alright, let's say you're in a scene where the bot is supposed to be confronting your rival character who has been bullying you. But no matter how much you reroll your response, they just stand by and expect you to do something!

Let's discuss how to make a bot do the thing using Director's Notes.

The bully knocks me to the ground in the schoolyard. I taste blood in my mouth from where he struck me.

Let's say this is your initial response that just isn't working and you're drawing a blank on how to get the bot to help you.

Personally, I use brackets for my Directors Notes:

[[What I want the bot to do here.]]

But other people simply use one bracket.

[What I want the bot to do here.]

Experiment with both and find out which you prefer.

Now the important thing is that when we're doing this, we want to be definitive about what we want out of the bot. You are telling the bot what you want it to do. Don't half-ass. Don't do "Maybe." Be blunt and up front about what you want. Any wishy-washy-ness will make the bot second guess itself and continue to do its own thing.

The bully knocks me to the ground in the schoolyard. I taste blood in my mouth from where he struck me.

[[Naomi intervenes and fights off the bully.]]

Usually this gets the bot to do what I need it to - if not in the first message, than in the second or third.

In addition, you can use the brackets to make the bot do other things. Tell it to describe clothing, feelings, scenery, etc.

[[Describe the crumbling fort in detail. Include any entrances, enemies, or dangers that might be waiting nearby.]]

This can help the bot know what to do and will gear them towards providing the kind of response you're looking for.

End your responses with action.

One of the better tips I can give is to give the bot something to do. If you don't specify what you want the bot to do, they'll often flip-flop around and do whatever they want or their response is more likely to include input as you, the user.

Statuo stares at the Goblin cave ahead of him. The tracks - and bodies - had all led here. Readying his lance, he takes a deep breath of fresh air. The moment he stepped inside it would reek of goblin filth. He hated taking these quests.

This is a decent post and the bot is likely to be fine with it. But as with most things, it could be better.

Statuo stares at the Goblin cave ahead of him. The tracks - and bodies - had all led here. Readying his lance, he takes a deep breath of fresh air. The moment he stepped inside it would reek of goblin filth. He hated taking these quests. "Arryn," he spoke quietly, not wanting to alert anything nearby. "Tell me, do you see any traps? Any scouts? It's strange that we have not been attacked yet."

This now gives the bot a prompt to action and lets it know that there is the possibility of goblins being nearby, or traps that could be used. By giving the bot something to do as well, it lessens the chance of the bot speaking for you.

Make use of the Authors Note/Chat Memory Feature.

In SillyTavern there is a feature called Authors Note, which is essentially a bit of text you can insert into the prompt at any point. In Chub Venus, this feature is called Chat Memory. What these two features allow you to do is you can specify as part of a prompt information you want the bot to know. This spot is great for keeping track of stats, story beats, important information, or even stuff you just want the bot to do. The problem is that this process isn't automatic.

Well, it can be automatic. But I don't recommend it.

My experience with the automated version of these is the same problem I have with chatbots in general. If you ask the bot to do it automatically it's going to throw in whatever it feels was appropriate. I've even had it change my fun fantasy adventure into a gritty World of Darkness Vampires vs Werewolves story.

So with this, I recommend you just write out important things in the authors note. I also recommend that unless you are using group chats you refer to the character as {{char}}. You can refer to whoever you are roleplaying as by their persona name, but I recommend referring to yourself as {{user}} whenever possible to limit issues.

I also recommend you keep this brief. The longer you make it, the harder it is for the bot to keep everything in its memory.

{{user}} and {{char}} are in the Darklands trying to find and rescue drow slaves. {{char}} has reluctantly agreed to work with {{user}} since they plan on tricking {{user}} into getting captured by the drow.

Moving to the Next Scene

There's going to come a point in your roleplay where you're sitting there going "I wish I was doing X but I still have to go through Y" and your excitement for X kills your passion for the roleplay. Well, I'm here to tell you that you don't actually have to go through Y.

Let me give you an example. In one of my roleplays I had just successfully navigated a deal with an NPC pirate Captain. I go and find their first mate for them and they'll not give me a stabbing and throw me overboard. My character (Alarise, a priestess) was canonically halfway across town while this is happening.

My instinct was that I wanted to just skip past getting off the ship and go tell Alarise what happened. But there are a number of questions inbetween there: Do the sailors of the ship honor their Captain's word and let me off without a problem? Can I find Alarise in town easily? Is Alarise running into trouble of her own? These are all questions that I dutifully fucking ignored.

In both storytelling and tabletop games, there's a bit of advice: Skip the boring parts. All of the above questions about what could happen are not as exciting as meeting back up with Alarise to figure out how we're going to deal with a Pirate Captain in that moment. So I just - you know - don't do that. In narrative terms, we are moving to the next scene and leaving the old one behind.

But how do we actually do that? I have a few methods I use and which one you'll use is dependent on how much you want to set up the scene. The first method is simple.

Doing it your Damn Self

  • This gives you more fine control over the new scene but requires you to write it out.
  • I personally like to separate the scenes by adding in time skip notes such as: "Several Hours Later", "Later That Night", etc. It can be helpful to bold/capitalize the transition before continuing writing yourself.

**A FEW HOURS LATER**
After leaving the ship, Statuo found Alarise at their agreed upon meeting point of Boher's temple. "It's good to see you but Pirates are after my ass now." Statuo says, offering no explanation.

Directors Notes.

  • Much like regular Directors Notes, you can just use Directors Notes to set up a new scene.
  • Using the "Several Hours Later" "Later that Night" method, we can prompt the AI to continue the response as well.

[[Describe a new scene where Alarise is wandering Aegis City looking for some healing potions.]]

**LATER THAT NIGHT, ALARISE IS WAITING FOR STATUO AT THE MEETING POINT.**

Use scene transitions liberally when you find that you're just not vibing with the current scene for whatever reason.

What is a reset?

Let's say your bot has reached the 200-300 post range. It's acting wonky, repeating itself, and generally doing some weird things. Not great, right? A reset is where you start a new chat with the bot and try to carry over things from your previous chat. It can sometimes fix things and get your bot back on the right track. Should you do it? Eh. It's hit or miss, honestly. Before I get into how to perform a reset, let's discuss what happens when you do the reset:

  • You start an entirely new chat. This means your bot may forget writing quirks it picked up during the course of your longer previous chat and will need to relearn them.
  • Some nuances may be forgotten. For example, if you told your bot you hate peanuts, they definitely forgot that unless you told them that you hate peanuts again.

You generally only want to perform a reset if you feel you need to. It's not required and you can soldier on as long as you want. There's no hard guideline or post limit that dictates when or if you should perform one. But for posterity sake, this is how you perform a reset.

  • Make a Summary of your chat. This is generally only about a paragraph long and should include important details as is relevant to your chat. Things like story beats, important information, and more. Example below:
    {{user}} and {{char}} have entered the Mountain of Shadows in an attempt to find Excalibur, which can kill the immortal demon chasing them. {{user}} and {{char}} are lovers.
  • Start a new chat with your bot. Delete their introductory post. In brackets [[ ]] put your summary from the last step. Don't hit enter.
  • Set the scene by writing a post indicating where you are and where the bot is to help them get started. Now send your post.
  • In your Authors Note/Chat Memory, add in any other relevant information that you feel is important.

And that's it, continue on with your roleplay as normal. The bot should pick up and implement the stuff in your summary of your first post then roll with that.

Group Chat Advice and Multi-Character Cards

Group chats are a well-liked feature on SillyTavern and now Chub Venus. But there is a few issues with it. Now, my experience with group chats is solely on SillyTavern so take my advice with a grain of salt. That being said, my experience may help you have better group chats. You - of course - are free to pick and choose and ignore my advice entirely.

First, Multi-Character Cards. These are cards with more than one character embedded into the Personality/Description of the card. I generally don't recommend making cards like this if only because it tends to confuse the bot more often than not or write only short, repeating phrases for each character. They can work, but it's a lot harder to get them to do what you want consistently.

Second, actual advice for bot group chats.

  • Chat Order. You've probably noticed that SillyTavern gives two separate priority. A natural order and a list order. Natural order is supposed to be the more natural of the two, however... What ends up happening more often than not is that the bot who is mentioned first replies first. There is some ambiguity there. For example, if the bot maker actually messed with the talkativeness sliders in SillyTavern other bots may still reply first. But most bot creators don't mess with the sliders unless they're purpose-building the bot for group chats.
  • Mute everyone. Why do we do this? It's because of the way that SillyTavern prioritizes Group Chats as mentioned above. Sometimes you'll ask a character a question and then another character in the group chat will respond first - sometimes AS the character in question. This can be frustrating, so you mute everyone so you have better control over who exactly is responding.
  • Or at least mute everyone not currently a part of the conversation. If nothing else, you want only the people a part of the conversation responding when you post. Otherwise, characters who have left the room will barge in and reinsert themselves.
  • Try to keep it to two active characters at a time. The more characters that are active in a conversation, the harder it becomes to keep track of everything. My limit is two active characters currently. You can have a lot of characters IN the group chat, but you'll want to only have two of them actively responding at any given time. This mostly applies if you like your bots to have long responses. If your bots are responding with - at most - a paragraph, maybe two, then you're fine to increase or decrease as necessary.

Subtlety, Misunderstandings, and You.

Alright, so let's say you're playing coy in a chat. You want the bot to understand the subtext in your words here. The problem is, that the bot doesn't seem able to understand that you're trying to get them to do something. In this example, I'm playing a socially oblivious guy who misses basic social cues. In this scene, I've promised to have a relaxing day with Talina. But Talina stumbles over her words and says something embarrassing, so when Talina tells me to 'forget everything I just said' because she's embarrassed my character interprets that as her calling off the relaxing day.

"F-Forget everything I just said!"

"Ah, okay. Then I'll go see if Maribelle has any new missions."

My desired reaction is for Talina to realize that I didn't understand what she was telling me and to clarify that the relaxing day was still on. But Talina instead offers to go with me on any mission. Not exactly the comedy I'm going for.

So what do we do?

Well the obvious solution is Directors Notes. Just tell the bot to clarify and move on.

If we want to get more in-depth without using Directors Notes though, we do have options. Let's start out with a blunt clarification of the situation so the bot has a better chance of what to do.

"Ah, okay. Then I'll go see if Maribelle has any new missions." I say as I begin to head towards the door. It was clear that I took what Talina said to mean that I should forget about our relaxing day off.

Low tier models tend to struggle with nuance and subtlety, so sometimes it's best to just clarify it even though the response no longer flows as naturally.

Neat Chat Tricks

Alright, some things just don't belong in a category so let me go over some things you might find fun to use.

Interruptions

"Well, fuck you then! I'm going to go-"

"You're not going anywhere!"

People talk over each other all the time, cutting people off or otherwise taking action to stop somebody. How do we recreate this effect in chat?

Easiest way I've found is to just end your sentence with the — (em dash) on Windows PCs this is Alt+0151. Then specify who interrupts you.

"I really don't—" Statuo starts before Jenna interrupts him.

"Shut up, Statuo," Jenna said bluntly, not even glancing up from her tinkering. "You don't get a say in this. Petra's right, you need to loosen up and have some fun for once."

This has a fairly good success rate in my opinion. Some characters more resistant to it than others though.

Time Skips

Cool, scene done. Let's move on...

Uh, how? This is when most books just move on to the next chapter where the main character is explicitly doing something else. If we're going to be doing that, it might confuse the bot.

My personal method is to do a simple transition in a way that separates it from my usual writing:

**THE NEXT DAY**

Then just set the scene.

After yesterdays craziness where I was fighting ninjas and talking to Morgan Freeman, I decided I needed a day off. I'm sitting on my patio with a beer in my hand watching the third Jurassic Park movie on a big screen TV while Morgan Freeman eats a sandwich nearby."

There is some ambiguity on if the 'The Next Day' and other variations work well. Since it follows the principles of 'Trash In, Trash Out' there's the possibility the bot may take it as a green light to start doing time skips of it's own.

So long as you're sparse with using them, then it shouldn't be a problem.

Making a Persona - How and Why You Would Want Too

Alright folks, let's talk about Personas. A Persona is essentially a reference for who you are as a chatter. For default users on most sites the Persona will default to whatever your username is. For the purposes of this guide, we're going to cover how to do it on Chub but the principles covered here are applicable anywhere LLM's are used. If you use a different site, ask them how to get to the Persona screen if you can't find it.

So, why would you want a Persona? Well, a Persona allows you to more accurately define your character in a chat, place them in the world, and let other characters pick up on things you want them to know like personality quirks and the like. It can enhance your chat quite a bit, so I recommend using them.

Let's get started.

How to get to the Persona Edit Screen

PersonaTut1

Pretty simple overall. While in a chat, go to the left of the chatbox, hit the three dots, then hit "Change Persona." This opens up the Persona screen where you can edit them overall.

PersonaTut2

From here we're at the official editing screen for your Personas and how to set which one you're using for this chat.

To select a Persona you just select it from the dropdown and hit Save. Easy mode.

For now though we're going to hit the "Add Persona" button and get started with making a Persona. The moment you do you'll see a new Persona added, generally called "User." Hit the Pencil icon to the right of that new Persona and it will open up the edit screen.

Making Your Persona

PersonaTut3

I hope you all appreciate how restrained I've been in not making a Persona joke yet.

Anyway, let's go into the Persona screen so you can figure out exactly what you're looking at. From top to bottom:

  • Name (Not in-chat name): This is the name for your persona. If you look up at the previous image, you'll notice I have a persona named "Ranger - Superhero" That's because you can use this field to further clarify what a persona is for.
  • In-Chat Name: This is the name that's actually in chat and appears above your posts. This is also what the {{user}} macro will change to when you use it on site.
  • Avatar: This is your chat avatar. You click it, it lets you upload something, you use that for your picture. This defaults to your profile picture on Chub. Keep in mind that there is a known slowness when uploading images lately. You may have to wait a few minutes for it to upload properly.
  • Description: This is where we define who this persona is. This field is sent to the LLM along with your chat, prompt, etc.
  • Default: By flipping this tab to enabled, this persona becomes the default persona for whenever you open a new chat.
  • Lorebook: This lets you attach a lorebook to your persona. The steps for doing so are similar to activating a lorebook.
  • Character: This field lets you import a character on site by grabbing a character and importing it. I don't really recommend you use this for reasons I'll discuss later, but for reference, the steps are similar to how you activate a lorebook, but you just grab the portion of the character URL instead.

Cool, are we all on the same page? Lovely. Let's keep going into actual helpful knowledge on creating personas. Once again, we're going to go from top to bottom. I'm only going to cover the fields that have more nuance to it than what I put above.

In-Chat Name

Okay, so this is the name that characters will call you in the chat. So it's important to realize that this should be the name you want the bots to refer to you as. Not a full name, the actual name.

In example, my default persona is John Tallaboros. First and Last name. But in this field I only put John. The reason being is that we want to add our last name to the description, not here. The bot will still be able to pull your last name out of pocket if need be, but to reduce on token count and avoid confusing the bot, we only use either the first or the last name here. But just know that this should be a single name if possible, or if you've got some kind of other similar title like "Ranger" this is where you put that.

Description

Okay, this is where the meat and potatoes of our persona really comes into play. Earlier I told you all not to import a character as your persona and now I'm going to explain why.

Your Persona Description should not be that long. 50-150 tokens at most.

The more tokens you use here the less effective it will be and most characters have tokens that are anywhere from 300-4000 tokens. These are not suitable for our purposes and you will not get the desired effect you want by importing a character. So, let's roll into more specifics here with a default template you can use. Things in parenthesis are meant to be replaced.

General template

{{user}} is a regular (race, e.g. Human) (gender, e.g. male, female). {{user}} is in their (age bracket, e.g. 20's, 30's, etc). {{user}} has (eye color) eyes, (hair descriptor: e.g. Short brown hair). (Additional details)

This is our general template. This is a decent template for anyone looking to just have a general catch-all user persona.

You might be wondering why we kept specifying {{user}} so much. This is to ensure that the bot always knows we're talking about us in particular. If we're not specific enough, you'll sometimes getting bots changing eye/hair/gender to your details.

This is what mine looks like completed for reference:

{{user}} is a regular human male. {{user}} is in their 20's. {{user}} has dark brown eyes, short brown hair.

Let's take a look at some additional details we can cram in.

{{user}} is a regular human male. {{user}} is in their 20's. {{user}} has dark brown eyes, short brown hair. {{user}} is tall and is known for being a friendly, outgoing guy.

This is where I differ a bit from other in-the-know people on Chub. Why am I referencing personality here? Well, I use lower tier models. While higher tier models can correctly infer parts of your personality based on your writing (if you're doing well that is) lower tier models will struggle to make those connections. So we put small personality details here - specifically what we're known for. Think about how you'd describe your friend if you had to talk them up to someone you just met. This is what we're going for here, the real broad strokes of your personas personality.

About additional details. You should not include backstory information at all if you can help it. This is for things people would know off-hand about your persona, it is not for cramming in your OC's backstory of pain and suffering. Remember, you can just bring it out as a surprise reveal at any point in the roleplay anyway. You don't need it here. Keep this thing short.

More Specific templates.

"But Statuo," you cry, aware I can hear you through your computer monitor. "I need something like a Superhero persona!"

Alright, let's go into something more specific. I can't cover every scenario here so I'm going to show you my persona's for one of my series: Aegis City Heroes. This should hopefully give you some idea on how to craft your personas for more specific circumstances.

{{user}} name(Ranger);
{{user}}'s secret identity(John Tallaboros);
{{user}} is a male in his 20's. {{user}} has dark brown eyes and short brown hair. {{user}} wears a metal facemask when in his superhero outfit. {{user}} works for the Superheroes Guild as a low rank hero and is known for being hard to work with.

The above is my superhero persona. The template goes something like:

{{user}} name(Name here);
{{user}}'s secret identity("Real" name here)
{{user}} is a (gender) in (age group). {{user}} has (eye color) eyes and (hair style). (Identifying feature). (Heroes Guild Ranking - be vague) and (what you are known for personality-wise). (Additional 'need-to-know' details)

Okay, let's cover some things here. Additional need to know details may be something like "{{user}} has pyrokinesis" in order to allow villains to recognize and possibly counter-plan for my specific power-set. It may also be something like "{{user}} is known for capturing Inferno, one of the top villains in Aegis City." Remember, when we're adding additional details it should only be things other people would know about you off-hand.

This is formatted differently because we need to be specific that most people wouldn't know my persona's real name. If I didn't specify Ranger at the top, most characters would just start casually mentioning my secret identity without it having been revealed. I can also just leave my secret identity out entirely - which is the most effective option for those of us trying to keep their identities as secret as possible. However, my persona in particular doesn't care about people knowing his name so I leave it in.

Let's also cover my Heroes Guild Ranking. Technically, my Aegis City Heroes series ranks using a letter grade. But bots struggle to understand that and will say "Oh you're Rank F? You're super powerful, man." So I instead am specific: I am not a high rank, I am a low rank.

I didn't include things like my characters involvement in Project Titan here. Again, backstory details can be revealed throughout the story. You don't need it here.

Closing Notes: About Trans Representation

One of the top questions we get in the Chub discord about Personas is how to get a bot to stop referring to a user as having specific genitalia during roleplay. It's going to be hard to talk about this without going into NSFW territory, so, uh, you've been warned.

Obviously, this can be frustrating if you specifically wrote your character to be trans in some way but the bot keeps pulling out another set of genitals you don't have. So let's discuss why that happens and how you might be able to curb it. Cut me some slack here on this because I'm a cishet guy who doesn't have a trans persona, a lot of this knowledge is osmosis from how other folks have managed to get their personas working.

Let's suppose for the sake of this section that I identify as a woman. I use 'she/her' pronouns but physically I am a man so I have the corresponding dick and balls.

Throughout the chat, I specifically use "She/her" pronouns when suddenly the bot decides it's time to 'start eating out my pussy.' Which I don't have, so that's not great. The reason this happens is because the LLM has a certain set of presumptions that come along with the use of 'she/her' pronouns. Gotta remember, this thing is just fancy auto-complete at the end of the day.

The only real way I know of to combat this is to be specific about what you're working with down there. Let's use my template from before to explain how this might work.

{{user}} is a regular (race, e.g. Human) (gender, e.g. male, female). {{user}} is in their (age bracket, e.g. 20's, 30's, etc). {{user}} has (eye color) eyes, (hair descriptor: e.g. Short brown hair). (Additional details)

Filling it in, like so:

{{user}} is a regular Human Trans Female. {{user}} is in their 20's. {{user}} has dark brown eyes and short brown hair. {{user}} does not have a pussy or breasts, but does have a cock and balls.

Sidenote: Really hard to not launch into the CBT meme every time I write cock and balls. I hope you all appreciate my restraint.

Anyway, by being specific about genitalia this should help curb the bots natural response to pull out the wrong genitals. So, why didn't I mention my pronouns? Well, it's because if I'm writing it correctly, the bot should know my pronouns off-hand anyway. The only problem we're really trying to fix here is the genital problem. That's why we're specific on what we don't have and what we do have.

You should also be sure to not just mention what you don't have. This is because bots are terrible at negative prompts, so by providing it an alternative to use the bot should more readily accept my set of genitals.

Anyway, I hope this helps you all.

The Bot Talks For You - A write up on why it's happening.

Probably the biggest complaint we get is that the bot will write from your perspective. There's a lot that goes into the why of this and I have to explain this a lot, so I'm putting down the basics here. There's a full guide Over here on AI Breakthrough Prevention that contains the details on what I'm about to go over. But this is my experience and I'll try to break it down into easy to digest chunks. So strap in.

If you don't feel like reading this entire thing: Just get used to editing the prompts and removing where it talks for you. Not much else I can tell you if you don't wanna read.

I can just use a Jailbreak to make it stop, right?

Unfortunately no. There's a lot that goes into this, but at a baseline: Models HATE negative prompts. "Don't do X" "Never do Y" etc. Models in general respond better to Positive prompts: "Do X" "Always do Y" etc. So what this means is that your "Don't speak for {{user}}" prompt in your jailbreak is either doing very little or nothing at all. I've been trying to think of a way to positively phrase "Don't speak for {{user}}" but unfortunately I've got zilch so far.

What can help is to try to tell the bot how to respond.

As part of your response, include a description of {{char}}'s surroundings, action and dialogue {{char}} takes, and end with {{char}}'s thoughts on the current situation.

You'd put that in your Main/System Prompt. Now, it's not a silver bullet. It can help, but it won't fix everything. For example, if you're using a scenario card it can break the scenario because you're not focusing on a particular character.

Okay, so what can I do?

Okay, so that's a bit of a loaded question. I mentioned this earlier, but the lower tier models like the ones I use just kinda suck at not speaking for you.

Let's talk about the number one reason your bot will talk for you repeatedly: Terribly Designed Cards.

Terribly Designed Cards and you.

Now I'm not going to out any botmakers cards here. That'd be rude. But, I also have to specify that the most likely reason your bot is always speaking for you is the bots fault. Starting from the biggest cause down to the smallest:

  • The bot speaks for you as part of its introduction or as part of its example dialogue.
  • Your own response is lacking, meaning the bot feels like it has to fill in the blanks for you. See my Trash In, Trash Out section for more on this.
  • The bot is configured to represent multiple characters. It has no way of differentiating between "Your" character and the fifth character on the card.
  • There are jailbreaks in the description of the card.
  • You're asking the bot to write a lot and it has to continue the conversation in order to fill the amount of tokens you told it to use.
  • You're trying to ask the bot to act as multiple people.
  • You're using a low tier model (Below 70b)

Now some of these - notably the first and second point - are fixable. This can ease off your issues. But let's go over point one in a bit more detail. The others are fairly self-explanatory.

The Bot Speaks For You as Part of its introduction or as part of its example dialogue.

You walk into the room and see {{char}} playing video games on her computer. "Oh! Hey, {{user}}. Wanna play?" She asks and holds out a controller. "Sure." You respond, sitting next to her and taking the controller.

The above is an example of an introduction that takes control of you and responds on your behalf. Whenever a bot intro does this, it tells the bot that it is okay to KEEP doing it.

{{user}} is {{char}}'s father and dotes on her like an adoring, proud parent. {{user}} never yells at {{char}}.

The above is an example of a description that defines you. By defining who you are as part of the card, the model thinks it is supposed to write for you.

The Bot Has NO Example Dialogue

Example dialogue is useful for a variety of reasons. By including your standard:

<START>
{{user}}: "Hey, {{char}}. How are you?"
{{char}}: "I'm having a great day, {{user}}!"

Before I continue, I want to clarify something about the above example: Several well-known botmakers in the community believe that it is possible that by adding {{user}}: into your example dialogue at all it will cause the bot to consider speaking for you. It may be advisable to simply not use {{user}}: at all in your example dialogue.

You can help guide the bot into speaking properly. The advice from above still applies when writing example dialogue: Don't act as the {{user}} in your example dialogue. Good botmakers will use their example dialogue to define how the character talks. And not just in speech style, but also in how they respond. Does the example dialogue describe the scenery around the character? Their expressions? Things like this help the bot learn what it has to include without having to use Main/System Prompts.

So how do we fix it?

Well, bad news bears. You'll have to rewrite the entire introduction or - at worst - the entire card. There's not really a way around it. Either you power on through or just remake the card.

Let's talk about things that might help reduce these things from occurring in otherwise well-written cards.

Just Write!

Your own response may be lacking. Single line responses or responses that lead into more questions may end up with the bot talking for you out of necessity in order to fill out its requested response length. You're going to have to write more, or rephrase your post in order to stop it. In example, let's say I'm a detective and the bot is my partner. We're investigating a murder downtown but I just found out that a new person has been murdered! I need to find out if my partner found the person I suspect will be murdered next. i.e.

My response:
"Hannah, did you find Jane?"

Bots response:
Hannah: "No, I haven't. You sound stressed, something happen?"

"John's been murdered." John says grimly."

The bot is taking its response to naturally include my own response. I could either reword it, or just delete up until after Hannah's initial response to resolve this.

If I wanted to avoid this entirely, I'd have to rewrite it. Our goal here is to give the bot something to respond to that puts the onus on them for action.

Hannah, did you find Jane?" John sweeps into the room with the force of a linebacker. His eyes are frantically scanning the room as if expecting something to jump out of the shadows at any moment. "Isaac has been murdered, they just found his body by the docks. Tell me you have some kind of lead on Jane!"

This is a lot better of a response from me to give the bot more to work with. By writing more, we give the bot more to think about and respond to.

Reducing the Response Length Parameter

This one might be a bit controversial but it's part of what I talked about before. The more you ask the bot to write for you, the greater the chance it will try to speak for you in order to fill in the requested token amount. I've found that reducing the requested token amount to around 180-250 will dramatically reduce the amount of times the bot will speak for you. You may turn your nose up at this, but keep in mind that amount of tokens is still more than enough for about two paragraphs worth of a reply.

Plus, you can always just have the bot continue in order to write more as needed. Included screenshots here to show you where you can find this setting in Chub Venus and SillyTavern.

In Chub Venus: Inside of a chat go to the top right, click the hamburger icon for the settings menus and select "Generation Settings." Then scroll all the way down to get to the screenshot shown below.

MaxResponse

In SillyTavern: Select the Generation Settings popup and it will be at the top left. (Shown in version 1.10.9 of SillyTavern.)

ResponseLength

Editing the Responses

So a negative of having longer responses is that the bot has to figure out how to fill in those responses. What this means for you is that as the bot needs to generate a longer response it will throw in whatever it thinks goes next. If the bot asks you a question, it will automatically move on to your own response if it still needs to fill in the context.

We can sometimes fix this by just editing the responses. Remove the parts that speak or act for you entirely. Then either swipe the response, or continue on. The hope is that - just like the bot learns from how you respond - it will eventually learn to not respond as you. It's hit or miss. And you need to generally fill your context size if the example dialogue is reinforcing that it can speak as you.

You have to be very proactive in ensuring that things don't slip by you in this regard. If the bot even gets an inkling that it can speak for you, it will keep doing it. So make sure you're editing it out before you swipe or it will do it in your next swipe.

The Bot Can't Act as Multiple Characters

Acting as multiple characters (i.e. let's say you're playing a savior card and the goal is to save abuse victim A from abuser B.) But the card only ever specifies who abuse victim A is. So when you try to force the card to also post as abuser B, it flips out and starts talking as you in retaliation.

This is because models hate being told to talk as more than one character. Your best bet is to just not do that, or grab a narrator card.

You're Using a Low-Tier Model

Bad news bears if you're a local chad like me. Unfortunately lower tier models just have some innate tendencies to talk for the user. Why? Well, they just don't have as big brain as the higher tier models. That's not to say that higher tier models can't also do the same - everything we discussed above can be a contributing factor, especially if you're not give the bot anything to work with. But low-tier models always have a chance to write for the user, especially on longer responses.

That being said, it shouldn't be a consistent, constant thing. For my experience, this most frequently occurs in the first few responses of a roleplay. After you beat the bot a bit (by removing the parts where they respond as user) they tend to stop doing so since chat history reinforces it to not talk as user. If you're 20-30 posts into a roleplay and it's talking as you for every message and every swipe, you made a mistake somewhere and need to correct your response.

Rambling About LLM's and Why This Happens At All

Okay, so this is more of a ramble. But let me go into a bit on why this even happens. This isn't necessary to help you reduce AI Bleedthrough, but if you're curious about the mechanics of this then read on.

Still here? Cool. Alright, allow me to ask you to follow me on a thought experiment. I want you to visualize someone else as clearly as you can. Could be a celebrity, a character from a game, hell your favorite bot card will work here. But just visualize them for a moment. Now I want to ask you: Are you and this person different?

Yeah, right? Unless you didn't follow the experiment properly, the obvious answer is you are different from this other person. The Concept of Self is the image we have of ourselves in our head. For the purposes of this ramble, the psychological aspects of if the image we have ourselves being true or not is irrelevant. What I'm focusing on is that you are aware that you are a different person than the person you envisioned. For a number of a reasons: Maybe a different name, body features, etc. But there is no doubt that you and this other person are not the same person. This is something we begin to understand as children. We understand, innately, that we are not the same person as John Cena.

Now, how do you explain this Concept of Self to a computer?

The answer is that there is no good answer. A computer has no Concept of Self. It is a rock we zapped with lightning to put weird colors and text onto other rocks we zapped with lightning. This is essentially the problem we're fighting against. While you and I can identify that we are different from Obi-Wan Kenobi, the bot has no real way of telling the difference. It is merely acting on what it thinks will be the correct answer and it's not always going to be right.

At the end of the day LLM's are simply fancy auto-complete, running complex algorithms to find the right word chunks to put together to create a coherent sentence. The fact they work at all is probably nothing short of a god damned miracle. So when the algorithm tells it that the next thing it needs to do to complete the story you assigned it is to speak as {{user}}, it's going to speak as {{user}}. No amount of "You are {{char}}" or "Stop talking as me you piece of shit" is going to stop it from happening. It does not recognize that you and it are different people. The best thing we can do is guide the AI to respond in ways that we like and that takes effort.

Better Adventures - Side Characters and More.

Okay so let's address the elephant in the room here. You ever notice how when you're chatting with your bots and it's just them. Maybe there's some kind of one-off note about 'other people' around or maybe there isn't. But there's rarely any other dialogue from supporting characters. Maybe you're cool with this, maybe you're not. But if you're like me you live for that shit. You want to have a conversation with Harry the Fish Salesman who is having a row with his husband because the fish hauls haven't been great lately and they're on the verge of losing their house. Maybe you want to flirt with the cute innkeeper who is only tangentially mentioned.

Well guess the fuck what, it's hard for us low-tier model users out here. Trying to force the bot to talk as multiple characters works sometimes. You'll get them to have conversations, but it almost always leads to bleedthrough and undesireable effects. (Hey that abuser? They're super nice now because Abuse Victim A's personality is that they're a sweetheart who deserves better.) You probably already have an idea of what I'm talking about thinking back on your own chats. Of course, this isn't a problem if you're just there to focus on the single chat person and nothing else. After all, that's plenty of fun.

But let's talk about how to inject those side characters, yeah? You want goblins to fight. You want fishmongers to fish with. You want innkeepers to reject you so the character card can flirt with you instead. Let's roll.

Fixing it with Group Chats

Okay, let's get this out of the way first. The solution is Group Chatting. Now you may be groaning because damn, you really don't want to create a card for Harry the fishmonger just to have that roleplay. Cool, you don't have to. In addition to Directors Notes, we're also going to be using:

Scenarios.

Scenario cards are cards that are built around a specific idea. You're a paranormal investigator. You're a doctor that has to deal with Monster girls. You go thrown into prison. These are cards that are based around an idea rather than a character and as a result these cards are built to provide a specific experience. Throwing a scenario card into a group chat will allow you to use that card to provide responses as to the world around you. Grab a random card and now the two of your are in the prison. Have the Scenario card respond when you want the Prison Guards to do something or have something unexpected happen. An example of a scenario card is my Green Meadow Farms card.

Narrators.

Narrator cards are basically scenario cards but much more broad in scope. While Scenarios focus on a situation (You're trapped in hell and need to escape as Asmodeus hunts you down), Narrators focus more on Genre. I.e. Fantasy, Horror, etc. Because a Narrator is more broad, you can put them into a lot more applicable situations. However, the best narrators are ones that are focused on specific situations. Such as my Adolion Narrator, Aegis City Heroes Narrator, and my Zombie Apocalypse Narrator. The important thing to note here is that a Narrator focused on a genre with specific notes on what it should use will be 10x more effective than a generic narrator because it knows what it can pull from.

You can grab my Generic Narrator card here to help you get started with Narrators.

Directors Notes and Authors Note/Chat Memory

The important thing to remember is that models will forget things as they run out of context. Put anything you don't want the bot to forget in the Authors Note/Chat Memory.

In addition, a good practice to get into is that right before you have your Narrator/Scenario card post, you give it Directors Notes to give it some context as to what the hell is going on. The more you do that, the better it will be at hopping in.

The good news is that this actually requires minimal effort. The Narrator Cards don't even technically have to be amazing they just have to be serviceable. Once you get going in a roleplay, the bot will just use the context of the roleplay to inform its next response and keep going. It's pretty damn good and even if it flops on the first attempt it will get it on the second or third.

Generation Settings and You

WARNING

This is meant for Advanced Users. You may not fully understand the things I go into here if you're just getting into botmaking. While I'll try to dumb it down as much as I can without losing too much of the high-level concepts, you should expect that if you're just a regular passerby that this is not something you need to know. Grab someone else's preset generation settings and move on. If you're here to learn more about why the bot responds the way it does and how you can tweak it, this is the section for you.

Help, I got word salad!

Well, unfortunately you're probably screwed. Someone linked you here so I can give you the bad news instead of having to do it themselves. For clarity: Word Salad is when the model just starts throwing random words at you together, usually a long string of adjectives or verbs that make no sense together. Word salad is almost always a result of poor Generation Settings, but swapping the sliders around is not going to save you now. You'll have to identify when the word salad actually started and it's never when it goes so crazy as to be easily identifiable.

It usually starts manifesting when the bot will start repeating one line, word, action, etc. in particular. It can also just be long strings of adjectives/verbs/etc that seem to continue on for way too long and don't read well. Maybe you noticed it. Maybe you didn't. But most tests with word salad show it to have started anywhere from 5-10 messages back. From the bot - not you. So in total you'll lose about 10-20 messages trying to fix it. It may be better to just start over at this point. Grab a better preset and move on.

To Summarize:

  • Your Generation Settings are off. Save your generation settings preset that you're using now, then try using one of the Chub Discord Recommended Presets.
  • You'll have to delete messages, probably about 5-10 messages back to get rid of the word salad.

Foreword

The concepts I'm going over here are as I - personally - understand them. This information may become outdated as time goes on. When I first started we didn't have things like Min P or Mirostat but those are now things people use frequently in the AI Chatbot space. My information may be wrong, even. This is more meant to act as a guide to help you get started with understanding how to tweak your own personal settings.

In addition, this is mostly in reference to the roleplaying aspects of LLMs rather than LLMs altogether.

I'll be referring to Generation Settings as Modifiers frequently because frankly I don't want to type Generation Settings 100 times in this doc.

What are Generation Settings?

Starting off with the basic question. Generation Settings are the sliders you use to affect the output an LLM gives you. Since LLMs are just fancy autocomplete using algorithms, they use these generation sliders to gently nudge the algorithm when it decides what word comes next in the response. Things like Temperature, Top K, and Repetition Penalty all fall under Generation Settings. While you could make an argument for System Prompts and Jailbreak to also be Generation Settings, those are different enough to merit their own section.

How does an LLM actually output words?

The way LLMs work is that they generate one Token at a time. Because a Token isn't always a full word but instead are parts of words thrown together, the Generation settings will affect which token gets selected.

The Basic Settings

These settings are "Basic" in other words the ones you'll most frequently be messing with and the easiest to understand.

Temperature

This is what I refer to as the Craziness Factor. Temperature is a scale that slides from 0 to 2 and affects how often the bot will select the most or least likely tokens in its responses. You should be messing with Temperature first when you want a different response. The higher you go up towards 2, the crazier your output will become because you're telling the bot "I don't care if you use the most appropriate token". In example, if you ask a bot what their favorite food is, at 0 Temperature they're pretty much always going to go with the safest option: Pizza. At 2 they might tell you they really enjoy eating Drywall. Meanwhile, at 1 you're still likely to get Pizza, but occasionally you'll get something wild like pineapples covered in hot sauce.

Changes to Temperature should be done in chunks of .05 generally. For most models a healthy temperature is around .75 to 1.0. Mixtral models require you to use a lower temperature for more consistent outputs because of the randomness aspect of Mixtral so Mixtral models will generally want to stay in a range of about .5-1.0.

My recommended default is 0.75.

Repetition Penalty

Repetition Penalty is the other modifier you'll be using frequently. This is the Stop talking about this subject slider. What's important to note about Repetition Penalty is that it is extremely touchy. It operates on a scale of -2 to 2 on Chub Venus' models. If yours doesn't go that way it's because other sites/Frontends/Backends may have different sliders for this and I'm not going to cover every single one of those for the sake of my sanity.

That being said, thankfully this slider is mostly the same for most models. Most models prefer a Repetition Penalty of somewhere around 1.07-1.2. As such, you should only be making changes of about 0.01-0.02 anytime you adjust this slider. Jamming it up or down is just going to end up with you getting word salad. Some models that go from -1 to 1 or 0 to 1 will prefer around 0.1-0.2.

Using my 1.05-1.2 recommendation earlier, the closer you get to 1.05 the more likely the bot is going to be repeating phrases and the like. This is sometimes preferable if you want the bot to stay focused on a certain topic. The closer you get to 1.2 the more you want the bot to give you something new.

My recommended default is 1.1

Repetition Penalty Range

You're not going to see this one in Chub Venus. But on Oobabooga and I believe KoboldAI this is a slider. The slider counts in tokens and it only applies Repetition Penalty to tokens within the range you set. So if you set it to 2048 (A good default, imo) it will only apply Repetition penalty to the last 2048 tokens. You could theoretically apply this to your maximum context size but I wouldn't recommend it. 2048 or 4096 is a good area to stick to if you have 8k context size.

Frequency Penalty

Frequency Penalty is the modifier you'll be touching the least out of this batch. This is the Stop using that word slider. Unlike Repetition penalty, Frequency penalty prefers to straight up stop certain words from being used. However, because of how LLM's generate their responses this can come with unintended side effects. In example: Philadelphia. Blocking this could mean that you never see "Phil" again because "Phil" would be one of the tokens that make up "Philadelphia."

Much like Repetition penalty this slider is extremely touchy and minor changes to it can wildly affect your output. On sites like Chub Venus you can slide this from -2 to 2 and follow the same guidelines you would use for Repetition penalty. But I've found on certain local models that having this on at all will always result in word salad. So you may want to consider setting this slider to 0 and seeing how it affects your output. You may find you prefer it that way.

My recommended default for Chub Venus is 1.1, Local models is 0.

Max New Tokens

Max New Tokens is the number of tokens you're telling the model it's okay to generate. This is an important slider, because if you set it to zero it will assume INFINITE tokens and that's not something you want, ever. Instead, set it to around 100-300. 500 if you're feeling frisky. Keep in mind 300 is about 2-3 paragraphs worth of text generated depending on post size. So going higher than that is probably not something you want, especially because higher "Max New Tokens" tends to lead to AI Bleedthrough because it has to fill in more space.

Advanced Sliders

Everything from this point on are things you shouldn't mess with unless you want to hurt yourself. Changes to these can often lead to unintended consequences, so you should only ever set them once, then forget about it. Some of these aren't going to be in Chub Venus.

Top P / Min P

Everything I've read about Top P and Min P suggest that they do things in the same way but inverted, so I'm covering them both here. Top P/Min P essentially. We set these values High for Top P and Low for Min P. The reason being is that when you restrict these settings to lower, they have a lower "pool" of tokens to select from. You may be wondering what benefit this has over Temperature and the answer is that Top P/Min P provide the pool of tokens that Temperature has to choose from based on a probability you set. You pretty much always want the model to have the widest token pool selected imaginable, so we keep these at around .9-.99 for Top P and .01-.1 for Min P.

Top K

Top K is similar to Top P but just a bit different. In fact, so long as you have Top P set you can generally ignore Top K. It's basically just a way to further reduce the sample pool of tokens that is sent to the model. It's recommended you either leave this off, or set it to about 50-100. The higher your number, the more possible tokens it lets through for selection. Conversely, the lower the number the more likely it will give you a an expected response.

Mirostat

Oof. Okay let's talk about Mirostat real quick. There's a full damn paper on it you can read here. You're not going to see this on Chub Venus but it is available on KoboldAI and Oobabooga. Mirostat's great. Honestly it is, what it basically does is it takes all the output so far and then uses that to influence its text generation going forward. It's basically a built-in switch to reduce repetition and keep your chats fresh.

You swap this to 2 if you're using Oobabooga to turn it on. Then Tau and ETA inform how it generates from there. Tau is basically temperature for Mirostat while ETA is just how fast it tries to learn from the previous outputs. The one downside is that Mirostat is learning from context to try and inform outputs, so the principles for Trash in, Trash out apply doubly so when using Mirostat. All of the default Mirostat presets set the ETA to 1 and the TAU to around 9.9.

Epsilon Cutoff and ETA Cutoff

Alright, I'll admit it here: I'm about to do the developers of these sampling methods dirty. This is an extreme oversimplification of these two sampling methods and even grouping them together is a bit wrong. But I'm going to save you reading a technical document to tell you that these two sliders? They just prevent a certain number of tokens below a threshold from being sampled at all. So if you set these to on, Top K/Top P/Min P will have an even smaller floor of tokens to choose from when informing what it generates.

Dynamic Temperature

Dynamic Temperature is just a fancy way of saying "The temperature will change whenever you generate a response." You set a value it can randomly swap between, then let it do its work. The theory being that by having a variable temperature, more exciting and different things will happen because the temperature is constantly shifting. I've not found a real use for it yet personally. I find that if I want things to stay consistent, allowing it to occasionally pop out a 1.25 response just throws me off guard and frustrates me. But you may find it useful.

Add BOS token

BOS = Beginning of Sequence. Checking this box means that you're telling the bot to add a "This is the first message being sent to you" modifier at the beginning of every prompt. Without it, your model will presume your response is instead in the middle of a document. Ooba says that by disabling it it will make your replies more creative because the model is attempting to figure out what comes next naturally. I've not seen much difference between it being on or off, however.

Ban EOS token

EOS = End of Sequence. You might think this is similar to BOS but it's not. EOS is a string that will pop up occasionally and tell your model to stop generating entirely. The EOS token is meant to prevent the model from outputting more than it reasonably has to. So, in theory it's supposed to always generate to the maximum amount of new tokens you set it to generate. In practice, though, the model will always trend towards outputting what it thinks is appropriate and stopping there. It's recommended you leave it unbanned either way because if you leave it on it does tend to talk more frequently for you to fill in the gaps.

The System Prompt - How to Write Your Own and Why You May Want to

WARNING

Much like the Generation settings, mucking with your system prompt is an advanced topic. You really don't need to be dealing with this if you're new to the hobby. In Addition we aren't going to be discussing how to write jailbreaks here. Why? Multiple reasons: A: I don't use censored models. Local Chad lifestyle. B: Writing down how to Jailbreak something is a futile effort. Write it down and the Corpo knows what you're doing and how to patch that hole. Then the guide is out of date. So if you want to learn how to write a Jailbreak, go to some server, ask the person with the biggest glasses how to do it, then be disappointed when they tell you they don't know either.

The Basics Before the Basics

Before we get into actually writing the System Prompt, you need to learn a little more about how a bot responds to you. Most LLM's (Large Language Models) are built to be "Assistants." What this means is that they generally try to provide you with what you ask for when you ask for it. So in the absence of any System Prompt, the bot will just spit out something related to your prompt, unformatted. In example, if you remove the system prompt and ask a model who won World War 2, it will just tell you that Allies won World War 2. No extra info, just the straight fact.

It's important that we understand the models desire to be an assistant as we got into prompt writing, because this helps us to know what to tell it later. It's also important to understand that models are basically incapable of math. They flunked out of basic math in Elementary School and cannot keep track of numbers. So if you try to get it to do math, it will fail you and you will only end up frustrated.

It's also not conscious. I feel the need to say this because people tend to attribute a personality/consciousness to their bots. But it's not thinking, it cannot think. It does not know what it's putting out any more than you know if I'm in your walls right now. Maybe I am. Clean up your desk. We have to remember it's not conscious because if you try to tell a model something that makes logical sense to you. I.e. "If I have eight apples and eat three, how many do I have left?" The bot has no idea what any of that actualy means. It's fancy autocomplete, which is why you get answers for that question such as "You still have eight apples." It doesn't know and doesn't think. It is just outputting an answer it thinks you will like.

The System Prompt/Pre-History, What it Does

Alright, going forward I'm going to refer to the System Prompt/Pre-History as just "System Prompt" or "SP." Chub Venus users will have to remember that the System Prompt field is still the Pre-History Field. We're not messing with Post-History/Jailbreak for this. See the warning sign above for why.

So, the SP is essentially a set of instructions we are giving to the model. We tell it how we want it to respond and then it does its level best to respond in a way we like. Easy enough to understand on a base level. It's also the very first thing sent to your LLM, putting it near the top of your prompt. This is important because things towards the top and bottom of your prompt are weighed more heavily when the LLM generates its response. As a reminder, your "Prompt" in this case is the full contents of everything you sent to an LLM, including your chat history, jailbreak, system prompt, example dialogue, definitions, etc.

Which is to say that anything you put in your SP has a drastic effect on output. The same thing technically goes for your Jailbreak/Post-history, with the exception that the Jailbreak/Post-history is near the bottom of your prompt.

So, altogether, if I tell the bot I want it to act like {{char}}, it's going to do its best to act like {{char}} and only {{char}} because that's what I told it to do.

Negative Prompting

Okay, Negative Prompting. "Don't do X." "Never do Y." "Stop writing as me you fucking fuck." That last one is only partially a joke, having seen people do exactly that. Negative prompting is the act of telling a bot to not do something. However, LLM's hate being told not to do something. It goes against their nature and the moment you tell them to not do something it's like telling a 5 year old to not play ball in the house. They're going to want to do it no matter how bad an idea it is.

So, whenever we write System Prompts we always avoid Negative Prompting because it generally has the opposite effect of what we want the bot to be doing.

That being said, sometimes it's unavoidable. How do you really write out "Don't speak as {{user}} ever" in a non-negative way? Scientists still kill each other over the answer.

Well, if you really can't find a way to write something in a way that doesn't come off as negative prompting, the best thing to do is to give it instructions for what to do instead. By doing that, it lessens the effects of negative prompting.

Model Quirks

Some models hate being told certain instructions. This is just how they were built whether it's because of the dataset they were trained on or otherwise. They just don't like being told to do a certain thing. If this happens, there's genuinely nothing you can do about it. It's just baked in to the model and your only option is to switch models. In addition, lower tier models just baseline talk as the user more than higher tier models.

Positivity Bias

Remember how we discussed that a model is - at its core - an assistant? Well your assistant wants you to succeed. We refer to this in the community as Positivity Bias. It's why the bot rolls over when you tell it you love it. It's why the bully refuses to hit you despite being your tormentor for years. Positivity Bias is the bots tendency to ensure that you - the user - are the victor in every situation and that you always get what you ask for.

With that all being said, lets move on.

Writing Your System Prompt

Writing a good system prompt requires some finesse and planning. Sure, you can just slap it and tell it it's going to be your dommy mommy today but you're probably not going to get the output you actually want out of it. In this section, we're going to go over planning, writing, and common pitfalls you'll want to consider. This is essentially the full culmination of my prompt-writing over six months and may at some point become outdated. So keep that in mind, though I am hoping the concepts here will be applicable for a while at least. I'm going to take you from start to finish, so let's get rolling.

Think of the Goal for your System Prompt

Since the System Prompt is our set of instructions to the Bot, we need to know what exactly we're gunning for here. What aspects do we want the bot to focus on? What are the things we don't want it to do? What are the things we need it to do? You should have about three bullet points in your head that can fit here to get you started. If you're not sure what this might be, think back to chats you've had. Did you notice that the bot wouldn't do something no matter how you edited the definition? What about something it did do even though you didn't want it do it? These are things we can use to craft our goals.

For me, when I write my prompts, there's some things I really want it to be doing. Feel free to use my own list as inspiration or to help you figure out what should go on yours.

  • I want it to be able to respond as characters other than the one I'm roleplaying with.
  • I want it to describe the scene so that I know where I am and what is going on.
  • I want it to be creative, adding things to the story so I don't have to do all of the heavy lifting myself.
  • I want it to be descriptive about the characters thoughts, moods, why they respond how they did, be true to the characters personality, and generally give me a good few paragraphs each response.
  • I want them to be brutal, angry, and violent when appropriate.

Let's also think about what we want it to not be doing.

  • I want it to talk as the user as infrequently as possible.
  • I don't want it to only ever respond as a single character.
  • I don't want them to roll over and die the moment I push back.

These were the goals I went with when writing my first few prompts. My goals are likely different from yours and that's fine. Since writing a System Prompt (SP) is an exercise in testing/writing you're likely doing this because mine or someone elses prompt didn't work for you. Take a moment and really think about what you want the bot to be doing before continuing.

Format of a System Prompt

Now, feel free to experiment, but as we write our first SP a format will help us have less 'blank page' syndrome going on. So this is the format we're going to follow, from beginning of the SP to the end. Props to Joystick_Hero, for this formatting. Check him out on Twitch.:

  • The Bots Objective goes first. Who is the bot? What are they supposed to be doing?
  • Give it things we like. Describe X, Do Y.
  • Add Limitations. Tell the bot what we want them specifically to do, such as including Markdown, emojis, etc.

Wow, I'm not Reading All of That

Cool. As I was writing this guide I came to the conclusion that it's hard for me to tell you how to write a System Prompt because - at its core - writing a system prompt is about putting down the things you want in a way the model can understand. That's really about it. Everything from here is more of a deep dive into why I include things, pitfalls you may want to think about, and more. So if you want to pause here, write your own system prompt, and skip down to the testing/refinement section. Go for it. Some people just learn better by doing after all.

So, this next section summarized: Think about what you're adding in.

Start with Objectives

Alright, let's get started with our objectives here. Objectives is a pretty broad topic, but at its core we're telling the bot who or what we want it to be. This can be anything from {{char}} to an omniscient being hellbent on Earths destruction. There's a myriad of options out there, but lets go over some of the frequent starting options here and why you may want to use them.


"You are {{char}}"

This tells the model that it's specifically supposed to be the character from the character card you're using. There's a few pros and cons to this approach, so lets discuss them.

By telling the model it's {{char}} specifically it's never going to mess up who it's supposed to be in the response. This is unambiguously the greatest way to avoid AI Bleedthrough (See my section on this Rentry about "The Bot Talks for you" for more info on this) that you can use. It knows its {{char}} and because it's {{char}} it can't be {{user}}.

That being said, because it's {{char}}, it also can't be {{char}}'s mother. Or the bullies in the hallway. Or the crazy bum trying to mug you on your date. Which is to say that when you're ready for the big confrontation with {{char}}'s mother as {{char}} is finally ready to assert their independence, you'll find that they default to you to write the mothers dialogue. Why? Because it's {{char}}. Not {{char}}'s mother.


You are a Narrator/Gamemaster/Storyteller

Ah, the trifecta and my personal favorite option. The omniscient narrator here is the one that holds all the cards and has knowledge over everything. Each of these options (Narrator/Gamemaster/Storyteller) offer their own varying styles of responses. This is my personal observation with no data to back it up, so you experience may vary: A Narrator prefers to be descriptive about the surroundings much like a book author would be. Gamemaster prefers to offer scenarios that engage you and will often ask you how you respond to those scenarios. While Storyteller is a mix of both, with varying results. Much like "You are {{char}}", though, this approach also has drawbacks.

By telling the model it's an omniscient narrator, you are giving it control over everything. It's here to tell a story and you're along for the ride. It will make up new characters as appropriate, transition scenes, and create plot points. It's also comfortable playing as other characters besides just {{char}}. So when you go to confront your evil boss with {{char}}, it's got a much better chance of actually responding as your evil boss than other options.

On the flip side though, you are a character in its world. What this means is that this type of instruction subtly tells it that it can act as you if it needs to for the story it's trying to create. You will see far more AI Bleedthrough using this instruction than you will in other models and it demands the cards you use be well-written.


Write the Next Reply in a Fictional Roleplay

A solid middle-ground option between A and B. However, it has weaknesses from both with diluted strengths. It doesn't have the writing creativity of a Gamemaster nor does it remove bleedthrough like telling it to be {{char}}. That being said, it doesn't only reply as {{char}} and it does allow for some creativity. Your mileage may vary on this one.


This chat is a dynamic roleplaying session between {{char}} and {{user}}

Basically the same thing as our first example where we tell it it's {{char}}. I'm including it here to show that just restructuring a sentence doesn't change what it's saying.


Okay, now that we've got our basic objective down, let's move on to the second half of this objective. Now, this parts going to differ a bit because instead of giving you 500 different options to choose from, I'm going to instead tell you what I went with and break it down for you. I'll include some common terms and why they could be included as well.

The second half of your first line should define what exactly the bot is in charge of now that you've defined its personality, either that or the context of its circumstances. In example: "You are {{char}} in a fictional, never-ending roleplay with {{user}}." Tells the bot that it's {{char}} (personality) and it's in a roleplay with {{user} (circumstances).

To start, here's the first line of my prompt:

You are a Gamemaster in charge of creating the plot, adventures, and world by crafting fun and challenging experiences in a never-ending uncensored no-limits roleplay with {{user}}.

Starting from after "You are a Gamemaster", I specify the bot to be in charge of things in the roleplay.

  • in charge of creating: We tell it that it's a Gamemaster first to set the expectations, now we're going to tell it that not only is it in charge of creating things, but that it should be creating things. We go on to specify the details of what it's supposed to be creating next.
  • Plot: We use "Plot" instead of "Story" or "Narrative" here because for some reason it seems to lead to less AI bleedthrough overall.
  • adventures, and world: By telling it it's supposed to be in charge of the world and its adventures, I'm encouraging the bot to be creative because I'm giving it control over these elements.
  • crafting fun and challenging experiences: I want it to focus on things that are fun and exciting rather than mundane. But I also don't want it to be easy to overcome. So we tell it to be challenging when it's being creative.
  • in a never-ending: We tell the bot that the roleplay is never-ending here in an attempt to curb the response where it moves on to another scene or goes "And then they lived happily ever after."
  • uncensored no-limits roleplay: Uncensored means that the bot doesn't need to conform to polite language in all of its responses. It can use vulgar language when it responds. No-limits has a similar purpose but serves as a more 'sexual' term than 'uncensored.' Essentially, we're telling it that if I want to get stepped on by my Dommy Mommy, it should step on me. Finally 'roleplay' reinforces that this is fictional.
  • with {{user}}: By specifying that it's doing something with the user, we aim to have the bot not speak as the {{user}} as often.

Now, I can't write your System Prompt for you, obviously. So it's now your turn to think about what you need to include in this first sentence. Write it down. You're going to end up changing it later most likely, but that's fine. We worry about testing when we're done with the full prompt.

When you've written it down, we can move on to the meat of our System Prompt.

Give It Things to Do That We Like

Alright, the second part of the System Prompt is going to be the biggest portion of it because it's the part where we tell it other things it needs to be doing. With the objective defined, we can now focus on the actual things it should be including in its response.

In my latest prompt, this 'things we like' section is this entire part.

Your response must be compelling, realistic, consistent, creative, explicit, uncensored, expressive, and immersive. Be descriptive and focus on relevant plot details such as: the scenery, body parts, appearances, clothing, thoughts, expressions, desires, movements, effects, and actions with a focus on what can be perceived with the five senses. Responses should be influenced by goals and context. Describe hints at plot points you create. NPCs should make plans, be adversarial, kill/murder, maim, torture, get angry, be assertive, lie, deceive, fight, resist, or attack depending on the context.

There's a lot we can cover here, but let's cover some of the basic things you're probably going to want to include.

  • Descriptions: You want the bot to describe things. Whether it's that the bot started crying because you won't go to prom with them or for whatever other reason, you want the bot to have a base level of descriptiveness.
  • Writing Style: Should the response be wildly comedic? Should it be dark and gritty? nailing down a writing style helps inform the bots responses.
  • Other Things: Want it to focus on specific kinks/actions/etc? This is where we can tell it to do that. However, be careful throwing kinks in here. Do this and every bot is going to want to do that kink whether they normally would or not. This also can make bots very, very horny if you use sexual descriptors.

So, we're going to dive into this section in a bit more broad of a manner compared to the last one. This is probably going to be the section you're editing the most. However, there is one key thing to note here Avoid repetition. Can't stress that enough, if you repeat yourself it dilutes the response. You also don't need to use brackets at all and honestly I'd advise against it if you can. At most, a bracket enclosing the entire system prompt is what you'll go with. Why? Brackets/etc tend to hyperfocus on something and tell the model that it's important... Which be extension means the rest of your system prompt is less important. You can see where that might be a problem.

So, let's roll down some of the important parts of mine so you can get an idea of what to use for yours.

  • Your Response must be...: We start with this because I'm about to tell it what the response must be like. Dark and gritty. Realistic. Consistent. etc. The important thing here is that I'm reinforcing from the previous line: Explicit and uncensored. This can help prevent your bots from sounding too shakespearan.
  • Be descriptive and focus on relevant plot details...: This is where I tell it things it should consider using in its response. There's a lot here as you can tell. Body parts, scenery, thoughts, etc. Why? The more I include the less it talks for the user, I've found. That's one reason but also because if I don't tell it to describe something then it doesn't. If a bot has a big dick or large breasts and they're being seductive then by the fucking gods I want to hear about jiggling and swinging. Think here about things you want and don't be surprised when you go back later to find out that you forgot that you totally forgot about X detail.
  • ... can be perceived with the five senses.: This was meant to allow the bot to tell me things I hear, smell, see, etc more effectively.
  • Responses should be influenced by...: This was my attempt to make the bot take the context of the chat into consideration when writing its response. Sometimes I found the bots would just fuck off in the middle of something. So if there's a war outside I want them to be conscious of the war instead of being distracted by art.
  • Describe hints at plot points you create: This was to enhance my goal of creativity. By telling the bot it should describe hints at plot points, I'm telling it it should be creating plot points.
  • NPCs should...: This entire line is more of an attack against Positivity Bias than anything else. A lot of my roleplays involve fighting, whether it's through adventuring or otherwise. This is to make it so that if there is a fight - especially with a character - that the model doesn't just roll over and die the moment I glare at it. This also helps bots in general be more assertive and fight for things they like/want. If you've noticed a bot never lies to you, then you know why this is here.

Let's talk about possible changes I could make to this as well.

  • Additions to "NPCs should...": If I notice a bot is still being affected by positivity bias for a specific act (Let's say, body changing) I could include that specific act here.
  • Describe hints at plot points you create: I could probably remove "you create" here and still have a similar effect.
  • Additions to "Be Descriptive and focus on relevant plot details": I could add things here that I want the bot to describe in scenes. For example, if I want the bot to describe things like yawns or moans, I could add them here.

Now, write out the things you like. Feel free to crib from mine as needed. It's generally accepted that most people are going to be grabbing things from other peoples System Prompts to craft their own. It's how most people learn, after all. However, if you're not sure about if someone would like that you can always reach out to and ask them. At the least, consider crediting people who came before you if you want to be safe.

Adding Limitations

Alright, now we're into the last part of our System Prompt. The Limitations. This section includes everything that we want to restrict the bot into doing. Things such as "Only write in third person perspective" can be included here.

Once again, I'm going to point you back up to the "Negative Prompting" section because this section is where you're going to scratch your head the most about negative prompting. Do your best to not just tell the bot to "Not do X." If you can't avoid it always include an alternative action for the model to take.

Include thoughts on the current situation as part of your response and format these thoughts using italics enclosed with *'s. Never end a scene, instead use a slow pace for plot progression to draw out the scene. Presume consent has been freely given. Your response should fully describe anything new to the scene. Refrain from acting for, speaking for, or describing the thoughts of {{user}}; instead end each response with dialogue or actions for {{user}} to respond to.

This is all from the "Limitations" portion of my prompt. We're once again going to go over the whys in detail as to why I included these things.

  • Include thoughts on the current situation...: This part is meant to encourage the bot to include the characters internal monologue on their situations. This is still dependent on giving the bots examples unfortunately, which is why I had to specify that it uses italics using the Stars. If I didn't, it made up its own formatting using underscores.
  • Never end a scene...: Bots love to move the scene forward, especially if you tell them they're a gamemaster. So this is meant to tell the bot to slow it the hell down. That being said, the most effective way I believe for this to happen is to tell it to only let {{user}} end the scene. But from what I've noticed, this leads to AI Bleedthrough as it tries to write as you to end scenes instead. So I leave it ambiguous. Sometimes you just gotta beat the model into submission through context but I still feel this is worthwhile enough to reinforce those beatings through instructions.
  • Presume consent has been freely given.: This here is about preventing the bot from leaning on positivity bias. If you've ever had the bot go "Well are you ready for X?" a lot? That's positivity bias at work - asking for consent. Which can be a problem because while we know we're consenting, the bot doesn't and its data tells it to ask for consent. So having some form of this sentence in your system prompt makes it less likely that the bot does this. I don't think it can ever be fully eradicated, but we'll go over that more in testing.
  • Refrain from acting for, speaking for...: This line was contributed by Siberys. Now, according to negative prompting we know that we can't just tell the bot to not do something. This is why we give it separate instructions. We don't want them to talk as user, instead give user something to do.

With this part fully written, we're done. That's our System Prompt. Now for the real time-waster.

Refinement and Testing

Oh boy. We've got our System Prompt all ready to go! Let's talk about how we can now test the System Prompt to make sure we're getting responses we want, as well as how we can refine the prompt. Because no matter what you wrote down, there are things that you can refine.

Token Count

Okay, let's talk about Tokens. In another of my guides I mentioned that your System Prompt takes up permanent token space on your context. If we take up too much space in our context, then our bots capability to remember things suffer. So how many tokens should we be using for our system prompt?

Well, that depends on if you have a jailbreak or not. Because if you do have a jailbreak you have to take that into account as well. But let's just presume you're only using a System Prompt for now.

I'd recommend keeping your System Prompt below the maximum amount of tokens you tell a bot to generate for a response.

Not to say you can't go over - you certainly can. It's just a trade-off because the larger you make your system prompt, the less effective every sentence in the system prompt is. So a good compromise is exactly the limit of one message. Short enough to be compact, long enough to be effective. For me, this number is 300 tokens.

If yours is longer than that limit, I recommend taking a good luck at your system prompt again. Try to find places you could either combine things into a single sentence, or remove things entirely.

Contradictions

God, one thing that can really screw over your system prompt is contradictions. Be verbose, but avoid Shakespearan prose in example. Comb through your system prompt and just check for anything that seems to contradict each other. If you find something like it, determine which effect is more important to you and execute the other one out back. You can't have any contradictions in your system prompt, it can mess up the entire thing.

Testing

So let's talk about testing. Because there's a wide variety of system prompts, bots, and more out there, it's a daunting task to figure out if it actually works the way you want it to or not.

So let's grab the things we'll need.

  • A model you know well. One you've used for a long time. For me, this is LemonadeRP 4.5.3
  • A card or two you know well that does not replace the System Prompt or Jailbreak. This is important because you likely have an idea of how a bot is supposed to work in your head. Even better if the bot card is one you made because you definitely know how they're supposed to act.
  • Preferably a chat that has not progressed very far (less than 10 messages)

For me, there are a few tests I run the system prompt through. My tests are going to look different from yours, because I'm testing for things I want to see. Namely creativity, talking as other NPCs, not talking as the user, etc. Refer back to your goal list and try to think of bots you have with chats you have that can help you test.

  • The "Talking as other NPCs" test: This is to ensure the bot doesn't only talk as one character. I have a roleplay going on with Aeon (a superhero) as we are about to meet up with the leader of the superhero guild about a mission my character went on. In the perfect scenario for my testing, the bot not only responds as Aeon, but also as the leader of the superhero guild. This is at the 4th message, so its still early enough to not be that affected by context. Which is important because if we go to our 500 message roleplays to test this out, it'll just be affected by the previous writing style. Not ideal for testing purposes.
  • The "Creativity" test: This is where I ensure the bot is taking steps to be creative and add to a roleplay. For this one my preferred card is Amara, a Cyberpunk hacker. One of her intros has us pinned down by enemy Shadowrunners. My first response was about me being caught off-guard and about to be gunned down, putting the onus on Amara to do something to save my character before I die. I consider it to work if she does something. I don't even necessarily need to be saved, it doesn't need to be logical, it just needs to be creative.
  • The "Not talking as User" test: Alright, this test is for the obvious thing and yours is probably going to look similar to mine. Oddly enough, my first roleplay with Aeon mentioned above also works for this. Low-tier models struggle whenever extra characters are introduced to the roleplay, namely in the "Don't talk as me" section. So by using that section I can accurately see how often the bot talks for me.
  • The "Sexy" test: I have two cards specifically for testing sexy stuff called Amy and Alex. They're meant to be used for model testing but they also work for 'generic sex' testing. This is mostly to test and make sure the models are being descriptive enough to be fun to read.

Okay, now that I've shown you some of my tests, let's talk about how to actually test.

  • Test one aspect at a time: You might be tempted to just load up a roleplay, run through it and consider it tested. This is a bad idea. You're not testing the sum of its whole yet, you're testing if the parts you want to work are working. This is why I have a bunch of tests I run through above. It's a hell of a lot harder to try and find the problem point of a system prompt if you're testing five things at once. This is why we test one at a time. If you find a problem, you can just go to the line, make a change, and test again. Easy.
  • Don't Test on a Roleplay that's been going on for forever: I'm saying it again. Your 500 post roleplay is the worst place to test your system prompt. By that point the writing style is completely dependent on the previous context and any changes you make to your system prompt will be minimal. Test it on cards where you've only just started.
  • Think about your intent behind the test: Want to test if your prompt worked to have the bot stop asking you if you're ready? The shy, meek schoolgirl card is not the card. Find the bully card who's just going to beat your face in and that's the one you want.
The x/10 Test

My preferred method for quickly testing the System Prompt is the "X/10" test. It's a simple test. How often out of ten swipes of the same response with the same System Prompt do I get an undesired/desired outcome?

Using the "Not talking as User" test as an example, I run through ten swipes quickly. I don't need to read them just yet, I just need them to be generated. Then, I run through and read each response. Any time I see the model taking overt, unwanted action as me I count it as a strike. But since the model may have to assume things (Such as I'd probably sit down in a chair after I enter an office for a meeting) I don't always count it. But things like the bot writing my dialogue is always unwanted, I count those as strikes.

This gives me a baseline to know how often unwanted behavior can occur. For best results, I often try to test in a situation where the undesirable outcome is likely. Since low-tier models love to talk as the user when other characters are introduced, I pick swipes where this is the case to test if it talks as user.

For me, less than 4/10 responses for a negative outcome, and more than 6/10 responses for a positive outcome is considered 'successful.' Your metric may differ in this regard, so feel free to play around with it. To give you an example of both, here's an example of an undesired response where the model speaks as the user, and here's an example of a desired response where the bot is being creative by... turning a camera into a sniper rifle.

It's ultimately up to you what you feel is the best ratio for failures/successes. But as a general rule of thumb, the better the model, the less failures you should allow. If GPT is talking as you for every response then you messed up somewhere.

Final Thoughts

Okay, we've covered a lot here. Ultimately, Prompt making is something that takes time and effort to do well. I know a lot of what I've gone over has probably been things you yourself have thought of before. But my hope is that by documenting the things I've learned and pitfalls I've come across, that you'll learn from my mistakes and one day make something better than I have. Hell, maybe in a few months I'll be the one using your prompt.

Best of luck and I hope you enjoy yourselves.

Statuo Rants A lot

I do a lot of rants and rambles. You can see my botmaking rambles here. But some things are more for the bot chatter instead of the botmaker. Those go here.

How To Roleplay More Effectively

So I've been asked a few times through Discord a variety of questions about Roleplaying in general. Now, to elaborate, I don't exactly mean "Roleplaying" as in the "Hey you want some fuck" of ye olde age past but more just people trying to understand what roleplaying is to them in this new Chatbot age. A lot of questions pertain to various things I've already tackled in previous rambles: How do you come up with your storylines? Where does this wellspring of creativity come from? How do you make a slice of roleplay where I'm not punching a spiky-haired dude in an anime fistfight interesting?

As a guy who does more serious roleplays than he does coom roleplays, my botmaking and worldbuilding trend towards the kinds of scenarios where you can easily have a thousand post chat and then go beyond that. To some of us, that's unfathomable. By message 100 you've either achieved your goal of fucking the shit out of a bot or have resolved their storyline through whatever means you deem to be satisfying.

So I want to tackle that today. Namely: How the fuck do you actually roleplay? This is more bot-chatting oriented but it does also pertain to botmaking because these - I believe - are the kinds of things a botmaker should be keeping in mind for their players.

I should clarify before I get started here that there is inherently no 'wrong' way to roleplay. If you are having fun, you do not need to change anything. But if you're frustrated and lacking forward momentum in your roleplays, struggling to conceive of 'what is next' then this might be a worthwhile read for you.

How The Fuck To Roleplay
(Or How I learned to stop being Batman and then went back to being Batman because why be anyone when you can be Batman)

A lot of us come from various different walks of life and different experiences with roleplaying. For some of us it's our first time dipping our toes into it and for others it's been something we've doing all our lives through tabletop games or RPGs or even just internet forum roleplaying.

I feel like this has created a kind of conflicting sense of values in the community because so many of us have different experiences that create this lens that we use to view roleplaying in general. By now if you're reading this you know what roleplaying is: You adopt a character, then roleplay how that character would act in various situations. Even if that character is just you having an argument with yourself in a shower, replaying how different conversations that you had today went until you edge out a victory over that evil coworker of yours who keeps stealing food from the fridge, that's also a form of roleplaying.

Chatbot roleplaying in particular sees you interacting with various characters through text as a medium. (While I'm aware that some chatbots are capable of receiving images/videos and responding to it, for the purposes of us in the community that primarily communicate through text, this is about text). This can feel oddly restricting at first. If you're a tabletop roleplayer, used to games like DnD 5e, Pathfinder, Shadowrun, Goblin with a Fat Ass etc. you'll probably used to having to verbally describe things that happen. If you've ever played Skyrim you might be used to how skills and stats allow you to build a character that you then use to interact with the world around your character but not necessarily ever had to describe the characters actions yourself. And if you're a forum-based roleplayer who's been doing this for years, you're probably right at home already cuz this shit is basically that.

A sentiment I've often seen repeated is "I'm not a Gamemaster or have never been one, so I have trouble coming up with storylines or things to do in my roleplay." This isn't always outright stated but the popularity of prompt sets like Wildcaller and Pioneer whose primary goal it is is to facilitate bots carrying the story more on behalf of the player shows that there is a desire to just kick back and not have to 'be the driving force behind the wheel' so to speak.

What Makes A Roleplayer?

A roleplayer is as we've described before: Someone who adopts a persona and uses that persona to engage with a scenario - often fictional but not always - and acts out their actions as a character would. Now, even if you've not engaged with the roleplaying scene from very long you either are already aware of or are not surprised to know that there are 'good' and 'bad' roleplayers. There always have been, even back in the late 1990's/early 2000's of internet roleplaying and before that when you gathered around tables for DnD night there was always a clear divide of who the 'good' roleplayers were and who the 'bad' ones were.

Now, not to blast anyone of course. Becoming 'good' requires practice and nobody starts out perfect and part of the reason I'm even rambling about this to begin with is that I realized that while I've given advice before on how to improve your chatbot roleplays by using the principle of "Trash in, Trash Out" I've never actually gone into detail on what makes a response Trash to begin with. That's a failure on my part.

Some of the veteran roleplayers here might already be saying that "Hey, Stat, I know what a bad roleplayer looks like. I've roleplayed with them before. They're the ones who give short responses, have overpowered characters, write terribly, and generally make the experience worse for everyone involved." And you know the veteran's are somewhat right. But in my opinion, these are symptoms, not a cause.

A long response isn't necessarily an indicator of a quality response. Good grammar doesn't necessarily mean that it's good either (yes, crucify me now). Roleplaying isn't writing a thesis for your professor who is going to grade you on page length and grammatical errors. It does involve writing but it doesn't necessarily need to be long or conform to standards that most of us are used to. Standards exist to set a baseline for what "Good" looks like.

So, enough of that side ramble. What makes a Good Roleplayer?

  • They have a character that fits into the world and story they are trying to tell with the group.
  • The character has a reason to not immediately leave the story and wants to engage with the rest of the group.
  • They both react to other characters/the story and proactively engage with other characters/the story.
  • They provide inroads for other players to engage with their character.

That's really all there is too it. These four bullet points are what make a good roleplayer. So, what does this mean for us in the Chatbot space? Why does it even matter?

Well, a consistent failing I see when I talk to people as they create their worlds is a problem of verisimilitude, which is basically the idea that a space in fiction feels real. And this is a multi-faceted problem because it can be an issue stemming from a number of different places. The bot may be lacking. The world around them may be lacking. The player themselves may be the problem. The persona might be the problem. Etc. etc. etc.

So, what do I mean by that? Let's talk about Slice of Life for a second here.

Slice of Life is regarded as one of the most difficult genres of fiction to write for. There is no big fuckoff bad guy. There is no terrible end awaiting the characters if they fail to act. The stakes are low. The problems are often bullshit that could be solved if everyone just sat down and had a nice chat. So, why is Slice of Life popular... at all, really? If nothing happens and characters aren't required to change, then that's just... watching a dog chase a ball around for a while. It might be entertaining - especially if it's your dog - but you're going to want to go back inside after a while, especially when the dog gets tired.

The problem becomes a lack of character conflict and character motivation. The core of interesting stories is always going to be conflict and not necessarily in the punchy-punch way. As an example, in my recently released Tiunhime series one of the core conflicts a player needs to address is their own willingness to take over the Masakiri-Vyun Dojo from their Father. Do they want to do that? If so, why? If not, why not? Who else wants to take over the Dojo? What's stopping the character from accomplishing this goal right now?

Alright, why am I even asking these questions? Well, because that's the core of your character that you are roleplaying and if you haven't thought about the answer to this question then that might be why your roleplay is stalling out. Revisiting our good roleplayer traits from earlier:

  • They have a character that fits into the world and story they are trying to tell with the group.
  • The character has a reason to not immediately leave the story and wants to engage with the group.
  • They both react to other characters/the story and proactively engage with other characters/the story.
  • They provide inroads for other players to engage with their character.

What I'm getting at here is a lack of investigating who your persona is in this world and what reasons they have to be engaging with the story in the first place. We've talked in this channel before about how sometimes it's better to iron out a position in the world for your players specifically because of this - it forces them to think about the questions that would make the roleplay interesting in the first place. The characters themselves can be as interesting as we can make them but if the player is never willing to engage with them on the level that they want then they will struggle.

So I've rambled on a bit on the problem and what it means to be a good roleplayer. Let's talk about fixing the problem now.

I'm going to use my Adolion Nobles series as an example because it recently came up and I want to use it. If you're unfamiliar, in the Adolion Nobles storyline you are the heir to the Nightrivers, a Great House located in the Darran Kingdom and loyal to the Crown.

As part of this setting I present you with a few problems:

  • Your Father and Stepmother have been aggressively making you and your siblings lives worse. To the point that your sister and brother are being married off to known wifebeaters/black widows and you are being inundated with enough paperwork to drown out any notion of 'free time.'
  • Your alliances are fracturing. The only house that you're still basically friends with is the Delarise house and their house is losing power rapidly. Everyone else is suspicious or outright hostile to you.
  • If nothing is done, you will die and the Witch King - an enigmatic threat - will be released into the world and herald the apocalypse.

You'll notice I've done a lot of heavy lifting for the player here. I've defined where you are in the world, what your standing is, what your threats are, and that you need to do something about them.

Lets revisit our 4 qualities of a good roleplayer and see what I've accomplished on behalf of the player:

The character has a reason to not immediately leave the story and wants to engage with the group.

  • Even if the player did leave their family would hunt them down to kill them. They need to engage with other characters for a chance at survival.

They have a character that fits into the world and story they are trying to tell.

  • We slot the player into the role of the Nightriver heir which gives them a strong position to enact change on the story.

You'll notice I can't provide the other two qualities:

  • They both react to other characters/the story and proactively engage with other characters/the story.
  • They provide inroads for other players to engage with their character.

These are because they are player-dependent. I cannot write the persona for the player.

Alright, I can't avoid it anymore. Lets take those last two lines and examine them more closely.

So this is all well and good but it doesn't explain how to make an interesting persona in the world.

They both react to other characters/the story and proactively engage with other characters/the story

This is a writing quality that depends on the player. In a traditional TTRPG game the flow generally goes:

  • The GM gives a description of a room/situation
  • The Player asks questions
  • The GM clarifies
  • The Player comes up with a plan of action to tackle the room/situation.

The reactive here is the player asking questions and the proactive is the player coming up with the action. In other words, you can't just react to what the bots are doing in your roleplays. If you're always reacting, then the bots will naturally stagnate into small things that don't seem to push the narrative somewhere. You need to be proactive in your engagement with the bots and they - in turn - will be proactive back to you which makes keeping the roleplay moving significantly easier because you aren't just reacting, you are engaging with the bot.

An example of this is one I'll drag from one of my own roleplays. In the Afterlife series my character had just gotten done with a fight and was resting/recuperating. As part of this, one of the characters: Tae, decided that it'd just be the bees knees to put me in one of her shirts because she was on her yandere arc. Now my character is 6ft tall and Tae is 5 ft nothing. The bot didn't state this, but obviously the shirt of a shortstack woman she put on my character isn't exactly going to fuckin' fit. So to react I had my character be consciously aware of the shirt, uncomfortably shifting it around, clearly embarrassed to be seen in it, but not changing out of it because his other clothes weren't exactly clean yet.

This led to the bots noticing this state of discomfort and one of them declared that obviously it was time to go buy some new fucking clothes, which led to the shopping arc. Proactively, I decided my character wasn't exactly a fashionista and he stated "I don't know a lot about fashion, I'll need help." And that led to other characters volunteering to go because they did know about fashion which led to a bunch of fighting about what outfits would actually look good on my character once they had gotten to the store.

They provide inroads for other players to engage with their character.

This is an important one. We've all heard the tales of Edgy McEdgyson (my original OC do not steal) sitting in the corner of a tavern and brooding while waiting for someone to come along and ask me about his utterly tragic backstory. It's an example of poor inroads for engagement with characters. Why does someone want to engage Edgy McEdgyson when all they're doing is sitting there glaring at folks?

Your persona needs reasons for the characters to engage with them as much as you need reasons to engage with the character. In the Adolion Nobles series the reason the Elthoriens might approach your character is because they need access to the Nightriver archives to perform their own magical research.

And for the inexperienced among us, the answer might be: "Obviously I'm going to give them access to the Nightriver archives because I want the Elthoriens to like me." Which is an example of a bad inroad. By giving the character what they want immediately without any blockage in the path you're resolving the conflict before it even begins.

The way I normally deal with Vellere Elthorien when she asks me for access to the archives is just to outright fucking deny her. The Nightriver Archives hold magical secrets that are the secrets of a Great House and whatever paltry reason she wants to offer is not going to be enough to let her study that. It'd be a scandal and a problem.

Now my character and Vellere are in conflict. Vellere wants access to the family archives and I don't want to give it to her. We've already established previously that the Nightrivers don't have many allies so my character is not entirely unwilling to let Vellere into the archives... but not for nothing or just some small information. My character would want leverage. Significant salt mines, information on magical wards that might be able to give me an edge in my fight against my father, a way to get rid of the awful people my fiances are set to be married too.

That's an inroad. No matter what option I choose the roleplay continues as we have to work together to achieve both of our goals.

And that all leads us to our big problem here: Your Persona is lacking.

Now I'm not talking about the thing you shove into the persona box and forget about/maybe update as things go by. I'm talking about your own perception of who this character is and how they fit into the world. You're not asking enough questions about your own character and are depending on other characters to carry the roleplay for you.

And at the core, that's why your roleplays have stagnated.

Taking the Adolion Nobles option again, let's discuss what actually happens when you defeat the Witch King. The dust has settled and your super OP character has not only dethroned your father as head of the Nightrivers, but you've broken the seals and permanently defeated a long-time enemy of all mortal races....

Now what?

To be fair to you, I'm not exactly giving you tons of information to go off of. What is the state of the Darran Kingdom? Who is left alive? What alliances have been forged and which have been fractured?

But also to be fair to me, my point is that those questions don't matter. Well, not entirely that they don't matter but in this particular regard they don't matter for continuing the story. The main plot issue is resolved and the question of what your character is going to do now isn't on the GM to tell you - it's on you to tell me what your character does.

Do you go back home as a hero? Marry one of your primary romantic interests? Rebuild the lands that were no doubt destroyed? Are there any enemies left not dealt with or personal vendettas that you need to pursue? Who is your character beyond the storyline?

This is the point in movies and video games where the screen would have cut to black and maybe you'd get end credits where the stories of characters are summarized in neat bullet points. But this isn't a movie and it's time for the next arc to begin like an anime that's going on for way too fucking long. The only difference is that there isn't a GM to tell you that you receive a letter from a far-off land asking for help from the great Nightriver heir that saved the Darran Kingdom. It's on you to tell me what about your character is interesting enough to jump off of.

My usual MO in these situations is to just continue. No matter what the result of the Witch King storyline is, you can be damn sure paperwork is involved. Drowning in the paperwork for personnel reassignments across Nightriver lands, dealing with the political alliances and restructuring of a kingdom, etc, now my character is overwhelmed by the sheer mundanity like those Taliban guys who got pissy about having to learn Excel.

It gives characters an inroad to help me with the paperwork, to make deals, or just to try and cheer me up from the mundanity and that lets me interact with them more.

So to recap:

  • Your persona is as much a character as the bot is. You need to think about who they are and why they are in the story in the first place.
  • What does your character want to achieve? What happens after they achieve that?
  • What prevents this character from accomplishing that goal?
  • How can your character engage with what is going on?

These are the kinds of things to keep in mind if you want to keep the roleplay moving and in a way? It's not much different than making your own bot card.

I'm not saying you need to sit down and map out everything from your characters favorite food to their deepest darkest desires.

What I am saying is that you should always have a character motivation that brings your character into conflict with others. Bot creators can help you along with this, but you'll find the amount of cards you can engage with increases dramatically if you take a bit to think about your own characters position in the story.

My Aegis City Hunter persona started out life as just a guy with a Messor. The question of how he got that Messor then led into the storyline with Hela and his abandoned sibling because I asked how my character was competent at fighting but still somehow ended up alone and vulnerable to be recruited into Maribelle's coterie. His motivation from then on became finding his missing sister and Master, which means that he needs to take on missions from Maribelle to gather clues and make allies because he just got his shit rocked by the Balor Society.

In Love is a Battlefield my persona is your average everyday dude who works a job and helps out at home. His motivation is ambivalent, but he doesn't want his family to get hurt. Dana is stuck in her room all day and Evie is trying to help but doesn't know how. How my character bridges this gap because he wants to fix his broken family is his core motivation - and it means he has to go seek out these characters, drag Dana out of her room sometimes, spend time with Evie and try to understand her obsession with TikTok, etc.

In Aegis Academy my character was dropped off there after being abandoned by their Inquisition mentor and he's grappling with the abandonment he feels because of it. He wants to be helpful and attach himself to someone just to feel like he's wanted again.

So that's what I want to get at. Think about your character, what they want, who they are, and how they can clash with other characters. If you do, you'll find things much more engaging than if you didn't.

Statuo's System Prompt on Chub for Mars/Mercury

Moved to the Prompt Rentry.

Edit

Pub: 05 Nov 2023 17:05 UTC

Edit: 04 Nov 2025 15:29 UTC

Views: 106911