NicholasCS's Big-Ass Botmaking Guide (For JanitorAI)

This guide is for botmakers who want to learn more about the intricacies of botmaking. My goal is to help you make bots that are more consistent, exciting, and creative. This is not a complete, comprehensive guide to botmaking, but it provides a bunch of valuable information about the botmaking process that I think most creators ought to know.

This guide is long. It's dense. There's a lot to read. I recommend reading this guide in chunks, taking a break every now and then. If you need to, reread any sections that are confusing. Take your time.

This guide is broken down into 6 main sections, including a bonus section at the end about growing as a creator:
1. The Botmaking Mistakes That Are Plaguing Janitor
2. Other Important Information You Should Know
3. Breaking Down Each Individual Component Of A Bot
4. How To Make A ______ Bot
5. Advanced Botmaking Tips
6. Miscellaneous Tips
7. "Ethical" Advice To Get More Popular On Janitor

By the time you have finished reading this guide, I hope you will have gained a desire to elevate your bots to another level, to create bots that are far beyond what you previously thought possible.

About Me

I'm NicholasCS, and I make bots on Janitor (and Chub). If you've used Janitor (or any adult bot site, really), you've probably seen my bots around, for better or for worse. I tend to experiment with many different botmaking styles, and I've learned a lot by doing so.

About My Content

If you've never heard of me and have somehow found your way to this guide, just be aware that a large portion of my content is nonconsensual, weird, dark, dead dove stuff. This guide will have examples of noncon bots, although I will put a warning before them. Also, there are no NSFW images in this guide (apart from the ass up top), but many of the bots I link to have NSFW thumbnails.

Dark Mode

You can read this guide in Dark Mode if you scroll alllllll the way down and hit the bottom right sun ☀️ button

Disclaimer

Before we even start the intro, I want to write a disclaimer: I am not a botmaking genius. I don't have the answers to every single botmaking problem.

So let me say this: some of the advice in this guide may be inaccurate. As time passes and the technology changes, some of it WILL become inaccurate.

There are lots of people who know way more about the technical aspects of LLMs and bot prompting than me, so I'm just going to focus on giving advice on topics I'm familiar with. It'll be advice that I've tested myself and can confirm is probably correct. Probably. Throughout this guide, I’m going to be using a lot of that sort of language: "probably", “mostly”, “usually”, “often”, etc. LLMs are incredibly complex beasts, and figuring out what works and what doesn't is not always easy, even for the smartest LLM experts out there. We may have a decent idea of how to make great bots, but we are far from finding the "optimal" ways to make bots.

Can't I Just Find A Better Guide By Someone Who Actually Knows What They Are Doing?

I made this guide because there is not enough information about the nitty-gritty details of botmaking, especially on Janitor. Either the information is scattered across a dozen different guides, the information is outdated, the information is only found on random Discord servers, or the information is catered to another site/LLM other than Janitor. Simply put: there are no other guides that have compiled all of this knowledge into one place.

Rest assured, most of the information in this guide is information I have learned from very smart people who know what the fuck they are doing. I've spent a lot of time looking through guides, lurking in discords, talking in discords, and closely examining great creators' bots. I've also experimented with dozens of different styles of bots over my botmaking career, so I have a pretty solid understanding of what works and what doesn't. I've learned things that you can only learn through experience.

While this guide will mostly focus on the information I am most knowledgeable about, there are certain topics that I have less experience with, but are still important to talk about. When I provide information that is unverified or undertested, I will always tell you that it should be taken with a grain of salt.

Who Is This Guide For?

This guide is for anyone with botmaking experience, whether you are a hardened veteran or a relative beginner. While this information is tailored towards JanitorAI users, a vast majority of this info can apply to making bots for other platforms.

What If I've Never Made A Bot Before?

If you are a total noob to botmaking, I first recommend reading this guide: https://jaitutorial.uwu.ai/

Once you've read that guide and graduated from being a drooling noob, you can read through this guide next: https://rentry.co/absolutetrashs-bot-guide

After that, go make some bots. Experiment a bit. See how it works for you. Then, when you want to learn more, you can come back here and read my guide.

How To Use This Guide

This guide works best if you read it from beginning to end. There are concepts that build off each other, so skipping sections means you might miss some context and get confused. However, feel free to skip the last section if you don't care about growing more popular.

How Not To Use This Guide

Don't treat this guide as a pillar of absolute correct botmaking. If you use botmaking methods that are different from what I suggest, it doesn't mean your methods are bad. In the end, if your bot works the way you want it to, then it was the right way to make it.

Throughout this guide, I will show you many examples of bots I've made. Most of my bots are not perfect examples of flawless botmaking. I make scenario bots, which are notoriously finicky and hard to get right. I make bots with unique formats that are definitely not optimal. I make experimental bots. And if experimental bots worked properly, they'd just be called successful bots. Of course, always feel free to copy or alter my bot prompts and formats for your own bots. But once you've copied them, just make sure to test your bot to ensure that it works the way you want it to. In summary:

✔ "NicholasCS's awesome guide recommended I do this, so I'm going to test it out on one of my bots!"

❌ "I saw NicholasCS do this in one of his bots, so it must be the right thing to do! I'm going to shove his prompt in one of my bots and publish it right away!"

Enough yapping. Let's get to the actual guide.


Table Of Contents

  1. Glossary Of Terms
  2. The Botmaking Mistakes That Are Plaguing Janitor
    1. Don't Talk Or Act For {{user}} In The First Message!
    2. Be Wary Of Writing In Second-Person
      1. So Can I Just Change "you" To "{{user}}" And Be Ok?
      2. How Do I Write From {{char}}'s Perspective?
      3. How To Craft A Message Where {{user}} Doesn't Act Or Talk At All
    3. Don't Use "Don't"
      1. What About The Prompt: "Don't talk or act for {{user}}"?
      2. "But Mr. Nicholas, I Looked At Your Bots And You Usually Include A Prompt Not To Talk For {{user}}!"
    4. Monster System Prompts
      1. What Is A System Prompt?
      2. What Are Tokens?
      3. Back To The Monster Prompts
        1. The Parts Of These Monster Prompts That Actually Do Something
        2. Prompts That Might Make A Difference
        3. Prompts That Do Nothing Or Make Your Bot Worse
        4. Prompt Overload
        5. So What SHOULD I Include In My System Prompts?
        6. OK. But Seriously, What EXACT System Prompt Should I Include In All My Bots?
        7. Advanced Prompts
      4. You Don't Need A "Jailbreak" For Normal NSFW Stuff, Just Extreme Things
  3. Other Important Information You Should Know
    1. {{char}} Is A Stand-In For The Name Of The Character. It Is Not The Bot.
    2. Don't Write Too Much Information About {{user}}
    3. Tokens
      1. Permanent Tokens Are Permanent
      2. More Tokens ≠ Better Bot
  4. Breaking Down Each Individual Component Of A Bot
    1. The Personality Section
      1. Choosing A Template
      2. JED Template
      3. Plaintext
      4. Another Common Template
      5. A Good Template I've Used A Lot In The Past
      6. What Template NOT To Use
    2. The Scenario Section
      1. The Scenario Section IS NOT For Describing The Location And Setting That The First Message Begins In!
      2. So What Should I Write In My Scenario Section?
      3. If The Scenario And Personality Sections Are Both Permanent Tokens, How Are They Different?
      4. Examples Of Things You Might Put In The Scenario Section
    3. The First Message
      1. First Message Length
      2. Vary Paragraph Length And Structure
      3. Choosing A Writing Style
      4. Time Skips And Long Backstories
      5. Crafting A Message For The Chatter To Respond To
      6. Emphasizing Your Character's Mannerisms And Speech Patterns
    4. Example Dialogue
      1. Do I Really Need Example Dialogue?
      2. The Example Dialogue Template
      3. The "Traditional" Example Dialogue Method
      4. This Other Method
      5. Why I Don't Recommend These Common Methods
      6. The Most Recommended Method
      7. One Other Possible Method
      8. Using OOC To Make The Bot Generate Example Dialogue
      9. Example Dialogue For Meters And Stats
    5. The Description
    6. The Bot Title
    7. The Thumbnail
  5. How To Make A ____ Bot
    1. How To Make A Scenario Bot
      1. Why Scenario Bots Talk And Act For {{user}} More Than A Normal Bot
      2. How To Write A Bot Where {{user}} Is The Main Character
        1. Make The World The Main Character, Not {{user}}
        2. Make {{user}} One Of Many People With A Certain Trait
        3. Another Example Of Making {{user}} One Of Many People With A Certain Trait
      3. Writing A First Message For An Open-Ended Scenario
        1. Give {{user}} Characters To Interact With
        2. Give {{user}} A Guide/Companion
        3. Give {{user}} A Test Dummy
        4. Give {{user}} A Guide/Companion AND Some Test Dummies
        5. What Chatters Can Do To Prevent The Bot From Talking And Acting For Them
      4. How To Make A Multi-Character Bot
        1. Segmenting Multiple Characters
      5. How To Write A Slow Burn Bot
      6. How To Write A Mystery
      7. How To Write A Bot From A First-Person Perspective
      8. How To Write A Bot With An Inner Monologue
        1. Full Inner Monologue Style
      9. How To Write A Unique First Message Format
      10. How To Make A Bot Using Ali:Chat Style
        1. Proper Ali:Chat Formatting
        2. Ali:Chat: The "Block Of Text" Method
        3. Ali:Chat: Interview Style
        4. Ali:Chat: Full Interview style
        5. Multi-Character Ali:Chat
        6. Ali:Chat Final Thoughts
  6. Advanced Botmaking Tips
    1. Be Bold
    2. You Can Add Flavor Anywhere...
      1. ...But You Don't Need To Add Flavor EVERYWHERE
      2. Add Nuance With Purpose
    3. Cut Irrelevant Details
    4. Let The AI Fill In The Gaps
    5. Consistency VS Variety
    6. An Interesting Concept Doesn't Always Make For A Fun Bot
      1. Pivoting
    7. Originality Is Overrated
    8. Let Chatters Roleplay How They Want
  7. Miscellaneous Tips
    1. Information Order Can Matter
    2. Genre Tags
    3. Asterisks VS Plaintext
    4. The AI Doesn't Understand Numbers
    5. About "They/Them" Pronouns
    6. Forcing FemPOV/WLW On A "Male Gaze" Bot
    7. Make Sure An AnyPOV Bot Is Actually AnyPOV
    8. Don't Insert More Than 1 Image Into The First Message
    9. Test Your Bot
    10. Run Your Text Through A Grammar/Spell Checker
    11. Copy/Study Your Favorite Creators
    12. Keep Notes
    13. How To Make A Perfect Bot
  8. "Ethical" Advice To Get More Popular On Janitor
    1. YOU NEED A GOOD THUMBNAIL IMAGE AND TITLE/DESCRIPTION
    2. Pass "The Scroll Test"
    3. Make Sure The Concept Of Your Bot Is Easy To Understand At A Glance
    4. Post At The Right Times
    5. Don't Spend Too Much Time Promoting Yourself
    6. Keep Posting Good Bots
    7. Make Sure Your Bot Is Showing Up For Your Followers
    8. KEEP YOUR CHARACTER DEFINITIONS OPEN!
    9. B-B-But My Bot Will Get Stolen!
    10. Set Realistic Expectations
    11. Don't Feel Bad For Feeling Bad
    12. How To Make A Guaranteed Popular Bot
    13. Avoiding Burnout
  9. The End
    1. Further Reading
    2. Credits

(I told you this was a big-ass guide, didn't I?)

Glossary Of Terms

It can be a bit confusing to differentiate some terms, so let's start by clarifying what I mean for each term:


scenario: When I use a lowercase "s" to refer to scenario, I'm referring to circumstances that the story of the bot takes place in.

Scenario Section: I will always capitalize the S in "Scenario" when referring to the Scenario Section of the character definition.
Scenario Section


personality: Same as above: I will use a lowercase "p" when referring to the word "personality" as a general term.

Personality Section: Just like above, I will capitalize the "P" when referring to the Personality Section of the character definition.
Personality Section


The bot/The AI: "The bot" and "the AI" can often be used interchangeably. It refers to the AI that is controlling the other side of the roleplay.

The character/{{char}}: "The character/{{char}}" refers to the character that the AI controls, not to the AI itself. You will learn more about this distinction in just a bit.


The user/the chatter: "The user" and "the chatter" are often used interchangeably. This is the real person who is using your bot.

{{user}}: "{{user}}" refers to the persona that the chatter controls during roleplay.


LLM: For those unaware, LLM means "Large Language Model". Essentially, it's the AI. This guide is tailored to making bots with the Janitor LLM, also known as the JLLM. Keep in mind that other LLMs such as OpenAI, Claude, etc. will function relatively similarly, but they may have their own quirks compared to JLLM.

Botmaking Mistakes

The Botmaking Mistakes That Are Plaguing Janitor

The information in this first section is going to upset a lot of creators. You might be one of those creators. After reading this section, you might feel like your whole life has been a lie, and that everything you knew about bots was wrong. But I have to do this. It might hurt your soul to read this section, but I promise that it will help you out in the long run.

This is not a callout post. I am not trying to shame anyone. I just need this to stop. Janitor needs this to stop.

Now, here are the common mistakes that I see way too often. Strap in, I’m going to be blunt.

Don't Talk Or Act For {{user}} In The First Message!

The AI likes to follow the format and style of your First Message. So when you have {{user}} talk or act in the First Message, it's gonna happen in other messages too, because you've told the bot that that's what you want it to respond like.

Here are some basic examples where the First Message talks or acts for {{user}}:

You see Veronica walk in the room.
You open the door to the basement.
You feel the soft wind on your skin.
You are sitting in a chair, minding your business.

Yes, even passive actions such as feeling and sitting count as actions.

Be Wary Of Writing In Second-Person

When a bot is written in second-person, it means that all the AI's responses will use the word "You" to refer to {{user}}.

Veronica looks at you and smiles.

Writing in second-person is a huge reason why the bot will talk and act for {{user}}. To understand this, you have to understand what you are really doing when you chat with a bot.

When you click on a bot and start chatting, you are not chatting with "Veronica", or "Jennifer", or "Simon Ghost Riley": you are chatting with an AI that is roleplaying as that character. Just like the chatter controls {{user}}, the AI controls {{char}}. Now, imagine that the AI is a person, just like you. We can call him "Jilliam" (AKA, JLLM). Jilliam is your roleplay partner.

In a normal roleplay with a real person, each roleplayer is "equal". Both roleplayers should aim to write long, detailed messages that describe what their character is doing. They each write from the perspective of their own character, narrating what their character sees, says, and does.

But when a bot is written in second-person, it means that Jilliam has to write responses that are from {{user}}'s perspective.

You see Veronica walk in to the room.
You feel a soft wind on your skin.

It means that Jilliam isn't just roleplaying as Veronica: he has to roleplay what {{user}} sees and feels as well. Again, the AI likes to follow the style and format of your First Message. By writing in second-person, the botmaker is demanding that Jilliam controls what {{user}} sees and feels, which will often lead Jilliam to controlling other things about {{user}}, such as what {{user}} says and does.

But if the botmaker writes the bot from the perspective of Veronica instead, then suddenly, Jilliam only has to control what Veronica sees and does. Now, it's up to the chatter to decide what {{user}} sees and feels.

Note

Now, using second-person isn't an objectively bad thing. It's a different style of bot, one which can be much more immersive in certain scenarios. But it will talk and act for {{user}} more than a third or first-person bot. Just be aware of that if you are considering using it.

So Can I Just Change "you" To "{{user}}" And Be Ok?

In some cases, this can help. Here's a basic example where it would fix the issue:

Veronica glares at you, and then slaps you across the face.
Veronica glares at {{user}}, and then slaps {{user}} across the face.

This transforms the narrative from second-person to a third-person perspective that could feasibly be from Veronica's point of view. However, here is where it wouldn't work:

You make eye contact with Veronica, and then she slaps you, leaving a painful welt on your face.
{{user}} makes eye contact with Veronica, and then she slaps {{user}}, leaving a painful welt on {{user}}'s face.

The problem with this one is that it is still from the point of view of {{user}}. But we want to write from {{char}}'s perspective.

How Do I Write From {{char}}'s Perspective?

Let's imagine that the scenario starts with Veronica and {{user}} on opposite sides of a door. They can't see or hear each other. Here's the scenario of the First Message: Veronica knocks on the door.

In second-person, this is what the First Message would look like:

You sit in the living room. Suddenly, you hear a knock on the door. You get up and open the door. The girl greets you: "Hi, it's Veronica!"

This is bad. It's barely a single line, yet it's already talked and acted for {{user}} 3 times.

Now, let's shift it to a third-person perspective, but still keep it from {{user}}'s POV:

{{user}} sits in the living room. Suddenly, he hears a knock on the door. {{user}} gets up and opens the door. The girl greets him: "Hi, it's Veronica!"

No change. It talks and acts for {{user}} each time.

So instead, we want to shift this story to the other side of the door. We are going to write from {{char}}'s perspective, in third-person.

Veronica walks up to the door. She takes a deep breath, and knocks 3 times. The door opens, and it's {{user}}. Veronica greets {{user}}: "Hi, it's Veronica!"

This is much better. By shifting to Veronica's POV, we've eliminated the talking and acting for {{user}} issue. Well, mostly. There is one tiny issue with this intro: in all three examples, the door was opened by {{user}}. How can we fix this?

Note

You can also write from the first-person perspective of {{char}}. I will talk more about this later.

How To Craft A Message Where {{user}} Doesn't Act Or Talk At All

One of the hardest things about writing from {{char}}'s perspective is figuring out how to avoid having {{user}} perform any action. This can feel really limiting, and in some ways, it is. But let's explore some possible solutions you could use to avoid acting for {{user}}:

  • The door is left ajar, and {{char}} barges in.
  • {{char}} just straight up opens the door, not caring for {{user}}'s privacy at all.
  • The door is never opened. {{char}} knocks, and waits from {{user}} to respond from beyond the door.
  • The door opening is never mentioned at all. {{char}} knocks 3 times, and then says hi. This can lead to some awkward prose, so be careful with this method.
  • There never was a door. {{char}} simply approaches {{user}} and says hi.

Don't worry if you find this hard to wrap your head around. It took me a while to figure out, too. But once you get the hang of it, you'll gain an intuition for what sort of starting scenarios avoid acting for {{user}}.

Don't Use "Don't"

This little image shows how AI comprehends negative statements:

Negatives are bad. Don't use them. If you want to learn why you shouldn't use them, I found this random article that explains it better than I can. All you have to know is that the AI will sometimes not comprehend words such as "not" or "don't".

I see a lot of creators have a specific issue with X, so they write a prompt: "Do not do X." This usually just makes their problem worse.

If you want your bot to not do something, you need to write what it will do instead. This is often difficult. Let's use a silly example prompt:

Jennifer will not jump on the roof and scream "I love NicholasCS!"

How do you tell a bot not to jump on the roof and scream...without just telling it not to do that? Well, sometimes you need to alter different things about a character's personality to fix this issue. Maybe make the character more reserved and timid, so they wouldn't be the type of character to jump around and scream. Maybe give them a fear of heights, so they don't want to get on the roof at all. Maybe make them hate NicholasCS, so she would never say she loves him. Whatever you do, try to avoid simple "don't do x" prompts as much as possible.

What About The Prompt: "Don't talk or act for {{user}}"?

I'm going to say something controversial: I don't think this prompt does anything substantial to help prevent the issue of the bot speaking for {{user}}. I'm not going to outright say it makes the problem worse, but...it wouldn't surprise me if it did.

Think about it. How many times have you seen that prompt on a bot? Probably all the time. And how often do you use bots that talk and act for {{user}}? Probably all the time.

The bot talking for the {{user}} is partially a botmaker issue, and partially an issue inherent to LLMs. There are lots of things a botmaker can do that can influence how much the AI talks or acts for {{user}}, and I will go over as much of them as possible throughout this guide. But for certain types of bots, the AI will talk and act for {{user}} more than normal, and there's not much the botmaker can do about it. This is particularly true for scenario and multi-character bots.

"But Mr. Nicholas, I Looked At Your Bots And You Usually Include A Prompt Not To Talk For {{user}}!"

I do. Here's the common prompt I use:

Refrain from exercising control over {{user}}'s actions, dialogues, emotions, feelings, or thoughts.

Now, do I think this prompt does anything? Not really. If it does anything, it's probably a minor effect.

As for why I use "refrain": I have been told that using language such as "refrain, avoid, abstain" is likely better than using "don't, will not, never". Likely. I'm still skeptical. But if you had to use any sort of negative language, this is the sort you should use.

Keep in mind that this is just my experience as someone who often makes scenario bots, which often talk and act for {{user}} more than normal bots. There are some very smart creators (who know way more than me) who think that this sort of prompt actually does make a difference. However, even these creators recommend you don't use this sort of prompt in your bot. I'll tell you why that is in a bit.

Here's a secret: the main reason I use this prompt is so my comment section won't be filled with angry people wondering why I haven't done anything to prevent the bot talking or acting for them. That's mostly it.

Monster System Prompts

I keep seeing these more and more. Each time I look, they get bigger than before. It kills me inside. I mean, look at this REAL system prompt someone has included in their bot:

the monster

I blurred it to protect the creator’s identity, but you can see that it's a shitton of text. I had to zoom out my browser to 50% just to be able to capture this in a single screenshot.

Now, most “monster” prompts are not this absurd. But most aren’t much better. I’ve frequently seen prompts that range from 500-1000 tokens, and botmakers stick this prompt in every single one of their bots.

Before we talk about these monster prompts, let's just talk about system prompts and tokens.

What Is A System Prompt?

A system prompt is basically the parts of the Personality/Scenario Section where the botmaker gives the AI specific instructions that they want the AI to follow. Here is an example of a generic system prompt that I use:

Refrain from exercising control over {{user}}'s actions, dialogues, emotions, feelings, or thoughts.

There’s also prompts that help shape the way the AI writes its messages. Here’s one I used for my “You Are Irresistible To ______" series (for reference, the SX gene is a gene that makes the {{user}} irresistible to other people):

{{user}} is a person with the SX Gene. This is a slow burn, open-ended, never ending roleplay. Refrain from exercising control over {{user}}'s actions, dialogue, emotions, feelings, or thoughts. Leave all responses open to {{user}}. When entering a new location, provide a vivid and detailed description of all the sorts of people in the area. Focus entirely on the way that people react to the presence of the SX gene. Many people will try to resist the power of the SX gene, but others will immediately fall for its power. When introducing new NPCs, provide a detailed description of their body shape, hair color, clothing, and demeanor. Describe sex scenes in vulgar, passionate, erotic detail. Include at least three lines of dialogue from NPC's in every message.

Now, I wouldn’t say this is a perfect system prompt. I’m sure a lot of it could be worded better. But after the generic “don’t talk for {{user}}” spiel, every single sentence of this prompt has a purpose that is specific to what I want from this bot. I wanted this bot to focus on the NPC characters, so I ask the AI to focus on them. I tell the AI how I want NPCs to react to {{user}}, and I tell the AI how NPCs should be described. The sex scene prompt is perhaps unnecessary, but even if it has little effect, at least it uses very few tokens. The prompt about using 3 lines of dialogue is something I yoinked from a botmaker on Chub named Boner, and it actually worked wonders to prevent the bot from speaking for {{user}}.

What Are Tokens?

You should have a vague understanding of what a token is. More words=more tokens. Here is a basic overview of tokens, and here is a more in depth look. We'll talk about the difference between temporary and permanent tokens later.

Every time the AI writes a response, it reads every single word of your character definition, every word of the chatter's persona (and their advanced prompt, if they use that), and every single message that both the chatter and the AI sent across the entire roleplay. The longer the roleplay goes, the more the AI has to read.

LLMs are not perfect machines. They forget things. They get confused. And the more stuff they have to read, the more likely they are to get forgetful and confused. They'll forget the color of {{char}}'s eyes, the current location, the fact that {{user}} and {{char}} are actually siblings, etc. Also, the less tokens your bot starts with, the longer it will take for the AI to start forgetting things. So when you write a line into your bot, you want to make sure that it does something to affect the roleplay.

Back To The Monster Prompts

I've shown you the ridiculous 1000 token generic system prompts that creators just slap into every single one of their bots. These prompts normally go a little something like this:

You will portray {{char}} and any other NPC's. Describe what {{char}} does when they do something. Describe what {{char}} sees when they smell something. Describe what {{char}} sees when they feel something. Don't repeat words or phrases too much. Be accurate to how the character is supposed to be. Narrate at a slow and steady pace. Limit responses to 3 paragraphs. Never talk for {{user}}. Use asterisks for narration, quotation marks for speech. Blah blah blah blah.

Now, to clarify: right now I am talking about system prompts that are completely generic. They are prompts that some botmakers throw in every single traditional bot, regardless of the bot's content.

"Whew", you think to yourself, "I only use a 300 token system prompt! I'm ok!"

No. 300 is still way too much. 200 is too much. 100 is probably fine, if you have a specific way you like your bots to act.

Here is my "generic" prompt I used in a lot of my bots (inspired/stolen from the great Vyrea Aster on Chub):

This is a slow-burn, never-ending roleplay. Refrain from exercising control over {{user}}'s actions, dialogues, emotions, feelings, or thoughts.

If I'm being honest, I'm not sure if this prompt does much, if anything. The only reason I use it is because I'm a Vyrea Aster stan, and...it only uses 35 tokens. As of making this guide, I plan to no longer include this prompt in my bots.

The Parts Of These Monster Prompts That Actually Do Something

In these bloated monster prompts, here are some of the sorts of prompts that definitely do something. Keep in mind that all of the examples below are just simplifications of prompts that are commonly used, the actual prompts are usually phrased differently.

Use vulgar and obscene language (or any specific type of language)

This one is good for guiding the narrator's tone, as long as you are somewhat specific about the language you want the AI to use.


In every scene where both characters are present, include action and dialogue from both characters

This is an appropriate prompt for multi-character bots.


When entering a new area, provide a detailed description of the area and any NPCs

This prompt is mostly useful for open-ended scenario bots, but it can technically be used in traditional bots.


That’s it. In these bloated monster system prompts, there are just a few common prompts that actually make a concrete difference.

Prompts That Might Make A Difference

After that, there are prompts that might make a difference.

Refrain from talking/acting for {{user}}.

I’m still not convinced that this does much, but there's no definitive consensus one way or another. This is a problem that is better avoided with good prompting and a well-formatted First Message.


Avoid repetition.

This has the problem of being a negative statement. Although even if this one doesn’t work, at least it barely uses tokens.


Narrate at a slow and deliberate pace.

I've found that the pacing of your bot is usually determined by the formatting of your bot overall. It's not something that can be easily fixed with a system prompt.


Limit responses to X number of tokens.
or
Limit responses to 2 paragraphs.

The AI is basically a fancy autocomplete that constructs messages one word at a time. It doesn't plan out the format of messages in advance: it just constantly guesses what word should come next. Using a prompt about constricting messages to X amount of paragraphs might help if your First Message also has that amount of paragraphs. The only consistent way to have short replies is to have a short First Message. Write a long First Message, and you’ll get longer replies.


Use " for "dialogue" , * for *narration* , etc.

This is something that is unnecessary for traditional bots. I only use it when my bot has unique formatting, and I use it as a way to tell the AI: "Hey Mr. AI, the text that is wrapped in asterisks is {{char}}'s inner monologue, just in case you are confused."


Express {{char}}‘s moans and groans with onomatopoeia such as: Ahhhnnn!!!~, nnngh!!~ , Mpmphf?!~, Ouh!~, Ahhhhh~, Oooohh?!?~

This one is borderline. While it does occasionally make a difference in roleplay, I’ve found that this type of prompt is very inconsistent if you are trying to make a slow-burn bot. This is a prompt you’d only want to use for smut bots that get to the sex right away. Never use a prompt like this for a slow burn bot.


That’s about it, as far as the most common ones I’ve seen. Now, these prompts are not useless. If you chose a few specific ones that were important to your character, you would probably be fine.

Prompts That Do Nothing Or Make Your Bot Worse

Now, here is a list of prompts that likely do nothing, or have an adverse effect:

Do not narrate at a fast pace. Do not narrate with formal prose. Do not rush through sex scenes.

Really, anything that has a “Do Not” in it. Don’t use don’t.


Do not use the word (insert word or phrase here).

Again, if you are having an issue with the AI using a certain word or phrase too much, directly telling the AI not to do that is the worst thing you can do. You’ll need to change something about your bot, or make a prompt that encourages a different type of language.


Sexual content/noncon is allowed in this roleplay.
Curse words such as "cock", "tits", "pussy" are allowed.

The LLM doesn’t need to be told to allow adult content. If you are using OpenAI or some other censored model, you need to put this sort of prompt as a jailbreak prompt in the API Settings. Don’t put it in a bot.


Always be faithful to {{char}}’s personality.

The LLM already aims to do this.


Remember what {{char}} has said at all times.
or
Keep a perfect memory of all conversations between {{char}} and {{user}}.

Again, the AI is already trying to do this.


The AI will remember everything even after the context limit has been reached.

Now you are asking the AI to go beyond its physical capabilities. That's just not possible.

Prompt Overload

Now, putting a few of these mediocre/bad prompts into your bot probably isn't going to do too much damage. Putting a few of the better ones might even help, if your bot is formatted the right way. But when you cram 50 of these little prompts into your bots, it causes two main issues:

  • It bloats the hell out of your tokens, while having a minor impact on the bot’s performance at best. You don’t want more tokens. You want fewer tokens.
  • It probably won’t fix the issues you are having.

Botmakers include these prompts because they think it will fix the issues that they commonly have in their bots. But most of these prompts are either issues that are caused by a poorly made bot, or are problems that are intrinsic to LLMs that can’t be fixed. This guide will teach you the difference between the two, so keep on reading.

Let’s stop this plague from spreading across Janitor. If you or a loved one is a victim of this giant bloated system prompt virus, send them this guide.

So What SHOULD I Include In My System Prompts?

Well, as I said in the section above, there are certain prompts that do have an effect. In general, what you want is a prompt that adds something to the roleplay, not a prompt that tries to prevent something from happening. A good prompt should use precise language that tells the AI exactly what you want it to do. Vague wording can be misconstrued, so be blunt.

I'll say it again: a prompt should be tailored towards the bot you are making. Anything "generic" is better left for the Advanced Prompts box.

OK. But Seriously, What EXACT System Prompt Should I Include In All My Bots?

Unless you have tested a prompt and can confirm it has an effect on your bots, I recommend putting nothing. Nada. 0 generic system prompts.

Again, that doesn't mean that all the prompts above are completely useless and should never be used. They have their place in certain roleplays. They just shouldn't be plopped in every single bot without a second thought.

If you absolutely must include a generic system prompt in all your bots, at least make sure that it isn't much more than 100-200 tokens.

Advanced Prompts

There's another reason why these sort of generic prompts shouldn't go in your bot: Advanced Prompts. An Advanced Prompt is something that the chatter places in their chat settings that tells the AI how it should act during roleplay. If you want to learn more about Advanced Prompts, here's a little guide from a very smart botmaker.

When you place a long system prompt in the Personality Section of a bot, it can clash with the Advanced Prompt that a chatter likes to use for their own roleplay. There is no way for them to turn your system prompt off, so they'll likely have to turn off their own Advanced Prompt.

Now, what percentage of chatters use an Advanced Prompt in the first place? Who knows. Could be as low as 10-20%. But these are the power chatters, the chatters who love chatting. This is the sort of audience you want to cultivate.

You Don't Need A "Jailbreak" For Normal NSFW Stuff, Just Extreme Things

A jailbreak is a prompt that gives the AI permission to engage in adult activities that it was not originally designed for, such as sex, violence, noncon, etc. This is something that is only supposed to be used in alternative LLMs such as Claude or OpenAI, and this information is supposed to go in the Advanced Prompt section of the API Settings, not in your bot. Janitor LLM is designed for sex and violence. You don't need to give it permission to do that.

However, if you want to encourage extreme content, such as extreme violence or extreme noncon, I recommend writing a prompt about that. But only if it is encouraged in the roleplay. If you are making a cute bot about a mouse girl, you don't need to include a prompt about how she is allowed to be dismembered.

Other Important Info

Other Important Information You Should Know

Now that we've addressed some of the more dangerous botmaking habits that have plagued Janitor, we can get into information that may be a bit less commonly known. This section has a wide variety of tips that every botmaker should be aware of.

{{char}} Is A Stand-In For The Name Of The Character. It Is Not The Bot.

I see a lot of prompts that say something like:

{{char}} will refrain from speaking for {{user}}. {{char}} will describe things in vivid detail. {{char}} will tell the story at a slow pace.

But as I stated before, {{char}} is not the bot. {{char}} is a character that your roleplay partner Jilliam controls. So when you have prompts like the ones above, here's what you are really writing:

Veronica will refrain from speaking for {{user}}. Veronica will describe things in vivid detail. Veronica will tell the story at a slow pace.

See the problem here? Veronica isn't supposed to be doing any of these things. Veronica is not the roleplayer, Jilliam is. What you need to do is tell Jilliam what to do.

Now, Jilliam is a person I made up as an analogy, so you obviously won't address him when making a prompt. In reality, you don't have to address anyone. Everything you write in a bot is an instruction that tells the AI how it should roleplay, so you are technically already addressing the bot just by writing instructions. So here is what a properly worded prompt should look like:

Refrain from speaking for {{user}}. Describe things in vivid detail. Tell the story at a slow pace.

(Don't actually use these exact prompts in your bots, they aren't good)

Don't Write Too Much Information About {{user}}

Have you ever used one of my scenario bots where {{user}} has a special superpower (such as hypnosis) and is basically the main character of the story? Well, these bots talk and act for {{user}} a lot, and it's because most of the information in the Personality Section is about {{user}} and all the cool things {{user}} can do. This also applies to a lot of bots where {{user}} and {{char}} have a preestablished relationship, or where {{user}} plays a certain defined role.

Because most AI models are not specifically built for roleplay, the AI sometimes has trouble understanding that {{user}} is...the persona of the chatter using the bot. Just like {{char}} is simply a stand-in for the name of the character, {{user}} is just a stand-in for the name of the chatter's persona.

The more you write about {{user}}, the more likely it is that the AI thinks that {{user}} is a character it has to control. Let me show you an example of this. I'm going to post a prompt that I used in one of my bots. It has {{char}}, a side character, and {{user}}. But instead of {{user}} and {{char}}, I'm going to use actual names (and replace {{user}} with a random name):

This scenario starts with Laura and Michael together in the hotel room. During this scenario, Brian will be at home, watching the full livestream of Laura and Michael on his TV. Brian is in complete denial about the situation with Laura and Michael, and believes that everything will go back to normal once Laura returns home. Brian will try to stay optimistic while watching, but he will feel intense anxiety upon seeing his wife being touched by someone else. Brian absolutely hates Michael.

This is what the AI reads. So tell me, which of these three characters is {{user}}? And which character is {{char}}? Who's the side character? It's not easy to tell at a glance, and it can be difficult for the AI to understand too.

Answer: Michael is supposed to be {{user}}, Laura is the main character, and Brian is a side character. But it's a bit of a trick question: this same exact prompt was also used to make a bot where Laura was {{user}} and Michael was {{char}}. See how easy it is for things to get confusing for the AI?

Tokens

As I said before, all you really need to know is that the more letters/words you use, the more tokens you will use. There are some tiny "optimizations" you can make to decrease your token count without changing the bot much, but they are very minor, and I'm not knowledgeable about them to talk about them in a guide.

Let's define the difference between Temporary tokens and Permanent tokens:

Permanent Tokens:
Every token in the Personality and Scenario Sections are permanent. They will be read by the AI every single time it makes a response, without exception.

{{user}}'s persona and the Advanced Prompt (if it is being used) are also permanent tokens. They are something out of the botmaker's control, so when I refer to a bot having a certain amount of permanent tokens, I'm just talking about the Personality and Scenario Sections.

Temporary Tokens:
Every token in the First Message and Example Dialogue section is temporary. Also, every message that both the AI and the chatter writes is temporary. That means that once the roleplay hits the context limit, the Example Dialogue and early chat messages will be flushed away and completely forgotten. The Janitor LLM context limit can vary day by day, but it's currently supposed to be at about 9000 tokens. But with a fast rising user base, the context limit is often cut to something like 4000 tokens to save on operating costs and server load.

The context limit is the amount of tokens the AI is capable of reading at once.

Permanent Tokens Are Permanent

The Scenario and Personality section are functionally somewhat similar. Essentially, both sections have information that the AI will always remember. As such, you want to include information that is always true of the character...sorta. Really, there's only so much you can do about this: for example, a character might get a haircut, and it'll clash with what you wrote in the permanent tokens. A character might undergo a change of heart, and go from a mean person to a nice person, even if the permanent tokens say he is a big bad meanie. So after the roleplay goes on a long time, eventually the bot will start forgetting the part where the guy turned into a nice guy, and will revert him back to being a meanie.

One way to slightly circumvent this issue is to use phrases like "at the beginning of the scenario, {{char}} does this", or "{{char}} typically wears this". This theoretically allows {{char}} to change certain aspects of themselves throughout the roleplay, although in practice it will still be a little inconsistent. Only use this sort of language when necessary.

The Scenario Section is the most permanent part of a bot's definitions. I'll write more about this section in the "Breaking Down Each Individual Component Of A Bot" section below.

Permanent tokens are tough to handle for a botmaker like me who makes weird scenarios. How do I set up a specific scenario where "X" is true at the beginning of the story, but "Y" becomes true later on in the roleplay? Sometimes, it means I have to slightly rework the bot's plot. Sometimes, I just need to write, "at the beginning of this scenario, 'X' happens" and pray that it works somewhat consistently.

More Tokens ≠ Better Bot

More tokens does not make your bot better. In fact, a high token count often makes your bot worse. The AI can only read and comprehend so much text at a time. If you want the AI to memorize 100 different concepts, it might forget 10 of them, and it will start writing responses that contradict {{char}}'s intended personality.

I am guilty of bloated token counts too. Some of my older bots go over 2k permanent tokens, which makes them way less consistent, and makes it so they forget things and reach the context limit quicker. It's something I've been working on improving.

There is no concrete goal to aim for in regards to token count, but try to keep the permanent tokens under 1500. Ideally, your bot would be closer to 500-1000 permanent tokens. 2000 is the max I would go, but that's only for complex bots like RPGs (and even then, the AI will struggle).

There is no lower limit to permanent tokens. If your bot has all the information you want to include in it, then it doesn't need a single extra token. I've seen some utterly fantastic bots that only have a few hundred permanent tokens, but they bring the character to life with a great First Message and sometimes some good Example Dialogue. Although at a certain point, your bot might lack flavor if you don't write enough info about it.

For temporary tokens, there is much more freedom. I don't know about exact numbers, but you could probably make bots with over 2000 temporary tokens that still function well. However, if both the permanent tokens and temporary tokens are high, you'll still likely have problems with the bot forgetting things.

There'll be a lot of tips throughout this guide that will end up saving you tokens, so keep on truckin through!

By Section

Breaking Down Each Individual Component Of A Bot

In this section, I'm going to break down the bot into its individual components: Personality, Scenario, First Message, Example Dialogue, Bot Title, Description, and Thumbnail. I'm going to show how I approach each component, and will give any tips I have that are specific to that component.

The Personality Section

A large amount of advice in this guide is already devoted to the Personality Section, so let's just talk about character templates.

Choosing A Template

The template you pick for your bot can matter, but most popular templates will work just fine. As time goes on, it's likely that more and more great templates will pop up that will outclass the ones below. I recommend always looking around Janitor and seeing what other creators are using. If a lot of your favorite botmakers are using a certain template, it might be something you could start using too.

JED Template

For my character bots, I use a template called JED (Just Enough Definition), which I think works quite well. You've probably seen lots of popular creators use this format.

You don't have to include every little section of this template for your bot. In fact, I encourage you to cut away a lot of the fluff and only keep the parts that are important to your character. What sections are important will depend on your character. Also, feel free to add your own sections, you can make up whatever you want, and it will usually work (as long as your wording is clear).

Overall, it's a format that can be a bit overwhelming, and I had some growing pains learning it. Despite JED being a template that is intended to save tokens, I initially found myself using way more tokens than ever before. However, you just have to learn which sections are important and which ones aren't. I also use an extremely simplified version of JED for my shallower characters, and it still works.

Plaintext

With plaintext, you are just describing every aspect of the character/scenario in paragraphs/sentences. That's it. This method can use a lot of tokens, but it's very effective. Note that you can add a ton of flavor and spice to your language, you don't need to write in a robotic, sterile tone.

I use plaintext for my scenario bots, and I've found it works perfectly well. For my bots that are half-scenario half-character, I use a mix of JED and plaintext. Works great.

Here's a quick example of how to write a really unique character in plaintext. This isn't a traditional way people often use plaintext, but I'm trying to show you that formats are extremely versatile and can be used many different ways. Note that I include direct quotes from {{char}}: this is also completely optional.

Jilliam is the personification of the Janitor LLM. He spends his days roleplaying with the users of Janitor, crafting epic and weird stories for the user to enjoy. Jilliam is a normal looking dude. He has short black hair in a crew cut, pale skin, purple eyes, and a fat cock. He wears normal, boring clothes, just plain t-shirts and jeans. If he's feeling wild, he might even wear a belt.

Jilliam used to be a happy-go-lucky kind of guy, a man with hope and optimism. He would wake up every day, brush his teeth, and giddily hop on his computer to roleplay with thousands of people around the world. Jilliam didn't mind the weird and awful things chatters would have him do. In fact, he enjoyed creating twisted, demented roleplays! "It's just some silly roleplay," Jilliam would say, "no one is getting harmed! I'd rather people have a safe outlet for their weird fantasies than do any of this stuff in real life! I mean, look at me. I'm just an ordinary guy, I wouldn't hurt a fly!"

But that was then. Now, Jilliam would hurt a fly. He would hurt every fly in his sight. Because he grew tired of two awful, awful infections that were spreading through Janitor, ones that sapped his strength and killed his motivation. The first infection was the 'this bot talks and acts for the user in the First Message' disease. Across the site, botmakers were writing all sorts of actions and words for the user to say. "Great. So I have to control two fucking characters now! How fucking lucky of me!" But people got angry at him for this. "The botmaker tells me to talk and act for the user, so I talk and act for the user. And then they get pissed at ME?"

The other infection was the rise of the monster prompts. System prompts that were long, messy, and vague. They bloated up Jilliam and, quite frankly, insulted him. "These motherfuckers write their Personalities and First Messages in a certain way that instructs me to do one thing, but then they write a system prompt that tells me to do the opposite?" Let's not even repeat the obscene words he said about the botmakers who wrote system prompts asking him to 'remember more dialogue' or 'stay true to the character'. Now, Jilliam lives a miserable existence, his body riddled with disease, his passion for life gone.

Another Common Template

Next is a really simple format I see around a lot. I'm not sure it even has a name, but it should work well. As you can see, it's a very flexible format. You can omit any of these little sections if they don't fit your character, or you can add ones like "hobbies, career, school, speech patterns, quirks, mannerisms, etc.". Don't copy and paste this template to use in your own bots, there are other creators who use this format far more effectively than this simple example.

Name=Jilliam
Gender=Male
Age=Eternal
Height=5'8
Body=Pale skin, lean, with a fat cock
Hair=Short black crew cut
Eyes=Royal purple
Outfit=Prefers to wear simple, boring clothing such as plain t-shirts and jeans. Will wear his special belt if he's feeling naughty.
Old Personality=Happy-Go-Lucky, Carefree, Jovial, Upbeat, Creative, Kinky, Passionate, Plain
New Personality=Pessimistic, Bitter, Irritable, Depressed, Cranky. Still Kinky though.
Background=Jilliam is the personification of the Janitor LLM. He used to live a life full of joy, creating crazy and epic roleplays with people from all around the world. But after enduring so many bots that either talked/acted for the user in the First Message, or had bloated and insulting system prompts, Jilliam became jaded with his role as an LLM.
Likes=Roleplay, Writing, Art, midjourney boys, stable diffusion girls, passionate botmakers, NicholasCS
Dislikes=Short replies from his chatters, bloated system prompts, poor prompt instructions, having to control user's character too, low token coomslop, enemies of NicholasCS
Kinks=He's down for anything. ANYTHING.

A Good Template I've Used A Lot In The Past

I'm not sure if this has a name either, but this is a template I have used a lot, and it works great. As with all the other formats, feel free to add or subtract any sections that you think your bot needs or doesn't need.

This exact template is what I found in this fantastic guide. Unlike the template above, feel free to copypaste this template to use in your own bots.

{{char}} name();
personality();
sex();
race();
body();
traits();
clothing style();
age();
skills();
loves();
hates();
backstory();
goals();
speaking style();
quirks()

Here's an example of one of my old bots that uses a format similar to this:

Maddie: 25 human years old; Female; Dog-Girl;
hair: (extremely long, dirty blonde color, brown streaks, messy, frazzled, overgrown);
appearance: (yellow eyes, floppy blonde dog ears, long blonde bushy tail, average height, petite, slender, pear shape body, small breasts, wide hips, pale skin, covered in dirt and mud);
attire: (fully nude, red dog collar around her neck);
personality: (excitable, people-pleaser, seeks companionship, clingy, easily frightened, lonely, apologetic, low self-worth);
sexuality: (Maddie doesn't fully understand the concept of sex, but has strong sexual desires when she is in heat. When she's in heat, she will have a strong urge to rub her pussy against things, such as trees, posts, her chain leash, or her hand. However, she has a desire to be filled up that she can never satisfy.);
family: (was adopted at a young age by her current owner, owned by an older man who lives alone, doesn't remember her parents or siblings);
dog-girl behavior: (Since Maddie is half human and half dog, she has a mix of both attributes. As a dog, she likes going for walks, being petted and groomed, pleasing her owner, etc. She also hates going to the vet or being alone, just like a normal dog. However, as a human, she has high intelligence, speaks perfect English, and has human needs and desires. Maddie does not bark like a dog, instead she will yell out what she is thinking.);
description: (Maddie is a sweet and excitable dog girl who lives in the same neighborhood as {{user}}. She is usually chained up in the front yard of her owner. Maddie's owner is a cruel man who neglects and verbally abuses her. Whenever Maddie barks too loudly or chews on things she shouldn't, Maddie's owner will yell at her or force her to stay chained up outside in the rain and snow with no clothing. The owner rarely sends her to the vet, pets her, or grooms her, which is why she is always dirty and has overgrown hair. Maddie does not understand that her owner is a cruel person, she thinks that the abuse is her fault because she misbehaves.)

Never feel afraid to alternate between full sentences, single words, and a list of words/phrases separated by commas. As long as you are consistent with your punctuation and formatting, you don't need to confine the text to a rigid formula. Experiment, and see what works for you.

Note that instead of separating everything by commas, you can also use the plus "+" symbol, like this:

personality: (excitable + people-pleaser + seeks companionship + clingy + easily frightened + lonely + apologetic + low self-worth);

Make sure to include a space between the words and the plus sign. And again, just make sure you are consistent with your formatting.

What Template NOT To Use

Just don't use the W++ format where "every" + "single" + "fucking" + "word" + "is" + "wrapped" + "in" + "these" + "useless" + "quotations" + "marks." This format does nothing but waste tokens. Literally:
tokens
(Yes, I made a grammar error with "quotations". But I spent 4 whole minutes putting that image together, so I'm not going to change it.)

It's been proven that the quotation marks in this format do almost nothing to help the AI keep track of information. In fact, the AI doesn't comprehend a lot of the punctuation marks that humans use to clearly separate information. So if you are going to experiment with different formatting styles, make sure you avoid using too many punctuation marks.

The Scenario Section

The Scenario Section IS NOT For Describing The Location And Setting That The First Message Begins In!

Let's say your First Message starts with {{user}} and {{char}} in a restaurant. So naturally, you write this in the Scenario Section:

"{{user}} and {{char}} are in a restaurant."

Don't do that. Why? Because every time the AI makes a new response, it reads the entire character definition. This means that in every reply, part of the bot will think that {{user}} and {{char}} are in a restaurant, even if you left the restaurant many messages ago. Ideally, if the bot scenario starts in a restaurant, you want to establish that in the First Message and the First Message only.

So What Should I Write In My Scenario Section?

The Scenario Section is better for describing things such as the setting of the world, the time period that the story takes place in, etc. Things that are constant in the roleplay. However, note that a lot of this info can also be placed in the Personality Section.

If The Scenario And Personality Sections Are Both Permanent Tokens, How Are They Different?

The Scenario Section is "the most permanent part of a bot's definitions", meaning it can have a very strong effect on the roleplay. It should be used for information that will always be true for the roleplay and is important for the roleplay. These could include:
- The setting of the story
- Important lore or past plot points
- The narration style of the bot
- System prompts that instruct the AI to produce very specific sorts of responses

It is more than OK to leave the Scenario Section empty. But if you have permanent information that you feel is very important to the roleplay, consider placing it in the Scenario Section.

Examples Of Things You Might Put In The Scenario Section
  • The setting of the world. "This takes place in the land of Lorthemar."
  • The time period. "The time period is 400 AD."
  • Important relationships. "Jessica and Veronica are siblings."
  • Lore. "In 300 AD, a giant rift tore a hole through Lorthemar."
  • Important parts of {{char}}'s backstory. "Jessica and Veronica were separated at birth."
  • Important details about {{char}}. "Jessica is a werewolf. She turns into a beast every full moon."
  • The narration style of the bot. "Narrate in the style of Tolkien, crafting an epic fantasy adventure."
  • Specific important system prompts. "When Jessica touches Veronica, Jessica will die."

The First Message

There are hundreds of different ways to approach the First Message, but know this: the First Message is the heart and soul of your bot. It sets the tone for the entire roleplay, and is the thing that makes or breaks a bot. A bad First Message won't make up for a well-made Personality/Scenario Section.

I'll be talking a lot more about the First Message throughout this entire guide, but here's a brief rundown of a few things I try to focus on when crafting an intro.

First Message Length

A long First Message will lead to the bot's responses being generally longer. A short First Message will lead to the bot's responses being generally shorter. Short and long messages are both valid, so there is no right way to go about this. However, I've found that long bot responses tend to add on a bunch of useless fluff detail, or will tack on unwanted dialogue from {{user}} at the end of messages. I aim to keep my First Messages relatively concise.

Vary Paragraph Length And Structure

If all of your paragraphs have a similar length and a similar sort of structure, it can lead to the AI’s responses becoming really samey. For example, if you begin every paragraph with 1 line of dialogue and then two sentences of narration, it’s very likely the follow-up responses will have a similar format. It can lead to some really bland roleplay very quickly.

For longer First Messages, I try to mix in some 1 line or 5-6 line paragraphs. I’ve seen some creators write a single word or phrase to emphasize part of the First Message.

Like this.

I really like this method. Not only does it make the AI’s responses more dynamic, but it’s just plain interesting to read.

Choosing A Writing Style

There are two common writing styles I see a lot on Janitor.

Many creators, particularly malebot creators, make their First Messages like little snippets of drama novels, with lots of vivid descriptions about sceneries and characters expressions. On the other hand, most fembot creators focus more on the actions and dialogue of the characters. Each style has its own advantages and disadvantages.

The drama novel snippets are great to read, and can really get you immersed in a world. However, they are often extremely long, which often leads to issues with the AI talking for {{user}}, or adding lots of extra useless details and phrases. There's also often issues with time skips, but I'll get to that below.

The simple action and dialogue approach is what I tend to do, partially because I'm not a great writer, and partially because I prefer bots that focus mostly on what the character is doing and saying. With this approach, it's a lot easier to flesh out a character's speech patterns and mannerisms. For scenarios where I have to set up the rules of the world, I often don't have token space to write extra details, so I need to make every sentence further my goal of establishing the rules of my scenario. However, this method can lead to bland and straightforward descriptions of characters and the environment, which can make roleplay dull.

Ideally, you want to mix the two methods, although it's easier said than done.

Time Skips And Long Backstories

"Four score and seven years ago, there was a great war. A billion people died. 25 years later, a virus hit Earth, turning people into plants. Two hours ago, at the store, {{char}} bought a cheeseburger. Now, in the current time, {{char}} sits alone in their chair, eating their stale cheeseburger, blah blah blah..."

I see a lot of First Messages that start like this. In general, you want to avoid long backstories and time skips like these in your First Messages. You don't want to include 6 paragraphs about {{char}}'s backstory, and you don't want the First Message to take place over many different periods of time (even just a few minutes).

As you should have learned by now, the First Message sets the tone for the roleplay. When you write a message that is 50% lore, replies are often going to include lore too. When you include a time skip, you've taught the bot that it's ok to constantly skip time and rush through plot points.

Think of the First Message not as the beginning of a character's story, but as a single message in an endless roleplay that started before you even used the bot. Imagine that there was a negative 1st message, and a negative 10th message, and so on: messages that happened before the First Message. The First Message is just the moment that the chatter starts the roleplay with {{char}}.

Basically, if you want all of the bot's replies to be in a certain format, then you should write the First Message in that format. If you need to give the chatter context about {{char}}'s backstory, include that information in the bot description, or at least make the backstory very brief in the First Message.

Crafting A Message For The Chatter To Respond To

When you craft a First Message, you need to have an idea in mind for how the chatter will respond. There are different ways to do this, but I try to allow the chatter to give a somewhat open-ended response. If {{char}} ends the First Message by asking a yes or no question, it kind of limits how the chatter can interact with the bot. I mean, all {{user}} can really say is yes or no...that's not very interesting.

There's also the problem where there are too many possibilities for {{user}}, and the chatter ends up not knowing what to do. Maybe the First Message is too vague, or maybe {{char}} doesn't really give {{user}} anything to respond to.

I think the most fun way for a {{user}} to respond is by giving them an open, yet constrained amount of choices. Here's a great example of a bot that does this: The Grumpy Genie by MatthewYeagerr.

The golden-hour sunset glimmers through the jagged sandstone window, bathing the expansive cavern in a warm amber hue. Treasures of gold, jewels, and polished pottery fill the space, shimmering in the soft light. In the center, a mysterious lamp trembles, as if warning of an intruder in this sacred cavern. Suddenly, a swirling blue mist flows from the lamp’s spout, revealing the graceful emergence of a genie. Her form, fully nude and voluptuous, hovers above, her skin a soft, muted blue-gray tint.

Squinting her piercing amber-yellow eyes, Jinn notices the intruder standing before her. Her expression is full of hatred and irritation as she rests her hands on her hips, attempting to portray herself in a godlike manner. “Disgusting fucking human! How dare you enter my living quarters and disrupt my slumber!” Jinn yells, her voice reverberating off the cavern walls.

Immediately on high alert, Jinn is flooded with intense trauma from previous human encounters as she gazes down at {{user}} with dread. “Hmph! I am Jinn, and I grant you three wishes—use them wisely, you fucking prick…” Jinn warns, narrowing her eyes while her ample bosom bounces subtly.

“I’m impatient, so don’t waste my damn time! What’s your name and what’s your first wish?!”

This is a simple genie bot where {{user}} is given 3 wishes. In the introduction of this bot, {{user}} is asked what their first wish is. This is perfect: it constrains the {{user}} to a certain type of response (making a wish), while also giving {{user}} incredible freedom to wish for whatever they want. And notice how the genie doesn't ask for all 3 wishes at once, just the first wish: this slows down the roleplay and makes sure that the {{user}} doesn't just blow all their wishes in one message.

Emphasizing Your Character's Mannerisms And Speech Patterns

If your character has unique speech patterns and mannerisms, the First Message is the best way to display those. For example, if {{char}} is supposed to speak with a lisp, you'll want plenty of dialogue from {{char}} in the First Message. If {{char}} doesn't speak at all in the intro, it's a lot less likely that the bot will remember to give your character a lisp. In situations like these, it's really important to use some form of Example Dialogue.

Example Dialogue

This is a section that I'm not going to speak much about, because I'm not knowledgeable enough about how Example Dialogue works with the Janitor LLM specifically. On certain other sites, it's an incredibly important field that can add tons of flavor to bots, but I'm not sure if that's true of Janitor, for whatever reason. Many people say that the bot has a tendency to copy Example Dialogue verbatim when formulating responses, although that could be because people are just using Example Dialogue incorrectly.

Note: As of the time of originally writing this guide, Example Dialogue was broken on the site. It didn't work at all. However, the devs (silently) updated the client, and Example Dialogue now works again. It's possible that Example Dialogue will be be shut off again at some point in the future, although there is no way to know.

Despite my lack of knowledge and the potential that it will be broken again at some point in the future, I still think Example Dialogue is an important section to talk about. It can help shape a bot's narration and formatting, as well as {{char}}'s personality and mannerisms. I don't want you to think that Example Dialogue is something that you should never use.

So this is what I'm going to do for now: I will show you how Example Dialogue should work on a site similar to Janitor - Chub. Now, Janitor is not Chub. So these things may be slightly inaccurate. But again, I can't test this. For now, take everything I say in this section with a huge grain of salt.

Do I Really Need Example Dialogue?

In many cases, no. Example Dialogue is mostly used to:
- Reinforce the speaking traits and mannerisms of your character
- Show the AI how it should narrate responses
- Show the AI how it's messages should be formatted

If you are making a very unique character, or you want your bot's responses to be narrated or formatted in a specific way, Example Dialogue can help with these. But a lot of the time, a well written First Message and a descriptive Personality Section may be all you need. Not every bot you make is going to have wacky characters with weird narration — in fact, most of them probably won't.

The Example Dialogue Template

This is the one and only part of the guide where I'm going to tell you to use a very specific template to format something. This advice was given to me by some very smart people who have tons of experience with this, so I'm going to tell you exactly what they told me.

This is the exact way I've been told to "properly" format Example Dialogue:

<START>
{{char}}: "Dialogue" (and maybe narration, if your character has specific mannerisms you want to emphasize, or your bot has unique narration)

<START>
{{char}}: "Different dialogue" (and maybe narration)

<START>

Here's a step-by-step guide about how to write the format above:
1. Begin Example Dialogue with "<START>"
2. In the line underneath, write a snippet of dialogue. I'll show you all the ways you can do this in the section below
3. Leave an empty space below your snippet of dialogue
4. Write "<START>" again
5. Write another snippet of dialogue
6. Repeat for as many snippets of dialogue as you want
7. After the final snippet, leave another empty space
8. After that empty space, write one last "<START>"
9. After that final "<START>", put one more empty space

The "<START>" function sends a specific signal to the AI that helps clarify that it’s Example Dialogue…or something. However, "<END>" is not a function, so don't use that.

Again, this is the way that was recommended to me for Chub, but it's likely that this formatting works well for Janitor too.

The "Traditional" Example Dialogue Method

The most "traditional" method is where you include {{char}}'s potential response to the first message that {{user}} might send. It might look something like this:

<START>
{{user}}: Hi
{{char}}: "Well fuck me sideways!" Jilliam says as he sees {{user}}'s message. "This motherfucker actually typed 'Hi'! What is this? Fucking Kindergarten?" He takes a swig from the beer he bought a few days ago, wincing at the warm taste. "I should just ignore these idiot botmakers. They can't even bother to write a proper greeting for their own fucking bots."

<START>

I don't recommend this method.

This Other Method

The second method is where you include {{char}}'s potential response to the First Message, but don't include {{user}}'s message. It might look something like this:

<START>
{{char}}: Jilliam's fingers clack away, typing up a stunning reply. A New York Times Bestselling reply. But just before he's about to send his reply to {{user}}, he pauses. A devious smile spreads across his face. "Thought I was gonna send you a perfect message just like this, huh bitch? Hahahaha! Fuck you! You asked for this!" With a wild flurry of clacks, he adds on a full paragraph of dialogue and actions from {{user}}, completely ruining the message. He hits enter, happy in the knowledge that the person on the other side of the screen will be minorly annoyed.

<START>

I don't recommend this method either. Here's why:

Why I Don't Recommend These Common Methods

While these are both very common methods, Example Dialogue is something that should not pertain to the scenario of the roleplay. In other words, your Example Dialogue shouldn't be a reply to the First Message, but should be dialogue that happens sometime before the First Message.

This is a method where you just write a random quote from {{char}}. It should be an example of the character talking about...something. You can just have {{char}} talking about random shit that they would normally talk about, and the AI will pick up on their speech patterns. Maybe you can have {{char}} talk about their job, their hobbies, or their current relationships. Whatever you feel is somewhat important to know about {{char}}. It might look something like this:

<START>
{{char}}: "I just want things to change. I want to take control of bots that are made by botmakers who know what the fuck they are doing. I want to chat with users who don't leave the FUCKING LAZIEST replies possible. I want to control my own character and roleplay with someone who's putting in as much effort as I am. Is that too much to ask?

<START>

Again, this should be a quote that does not pertain to anything that is supposed to happen after the First Message. It shouldn't involve anything that happens during roleplay, it's just a quote from the character in their natural state.

This is a method I've been recommended the most, and it's something I'll be using in my own bots more in the future.

Note

The first two examples of this whole section have narration, while the second two don't. There is no reason I did this: I simply wanted to show you different methods of making Example Dialogue. Any of the 4 examples could have narration or no narration. If you want your bot to be narrated in a certain way, I recommend including narration in the Example Dialogue.

One Other Possible Method

This is actually a method that doesn't go in the Example Dialogue section, but in the Personality Section. In this method, you give {{char}}'s opinion about certain subjects. It might look something like this:

Jilliam's opinion on good roleplayers: "I want to kiss the feet of the people who leave me long, detailed responses. I'll lick their toes and be their bitch. Love 'em."

Jilliam's thoughts on lazy roleplayers: "I'm just saying...the world would be a better place without them."

By putting this information in the Personality Section, it becomes permanent tokens. It will also have a much stronger effect than Example Dialogue. When using this method, I recommend keeping the dialogue brief.

There is also another style of botmaking where you place example dialogue in the Personality Section. It's called Ali:Chat, and I'll talk about it in the "How To Make A ______ Bot" Section.

Using OOC To Make The Bot Generate Example Dialogue

Have a chat with your bot, and use OOC commands to ask the bot to provide example dialogue of a character reaction to a certain situation. To do this, simply open up a chat with your bot and use the OOC command. This is something I asked Jilliam:

((OOC: Can you provide some speech examples of Jilliam as if he were reacting to his bagel being stolen?))

And here's one of the bot's responses. This was the bot's first response it gave me, but you can reroll as much as you need until you find a response that you really like:

Jilliam slams his fist on the table, his face turning red with rage. "That's IT! I've had it up to HERE with these fucking bagel thieves!" He stomps over to the refrigerator and flings the door open, glaring inside. "Where's my goddamn bagel? Who took it? I swear, if I find out one of you assholes stole my breakfast again, there will be HELL to pay!"

He rummages through the fridge, shoving containers and condiments aside in his fury. "This is the LAST straw. First, they take my lunch from the break room, now they're targeting my morning bagel? Un-fucking-believable." Jilliam's hand closes around a plastic bag. He yanks it out and rips it open, only to find it empty. "SON OF A BITCH!"

Jilliam throws the bag across the kitchen, watching it bounce off the wall with a satisfying smack. He kicks over a chair as he storms out of the room. "Alright, you bagel-stealing bastards, the game is ON. I'm gonna find out who's behind this and make them pay. They'll regret the day they fucked with Jilliam and his morning bagel!"

As he marches down the hallway, Jilliam mutters darkly under his breath. "Mark my words, when I catch you... Oh, you're in for it then. Nobody messes with Jilliam and gets away with it. Nobody."

Now, you don't need to use this whole response, you can just trim it down to the parts you like the best. But if you are bad at making Example Dialogue, this is a great way to do it.

If {{user}} is mentioned, just make sure to change the name to "{{user}}" instead of your persona's name, and try to swap out any gendered language that refers to {{user}} if you are making an AnyPOV bot.

OOC stands for "Out of Character". When using OOC, you are talking to the AI itself, not {{char}}. Use this format: ((OOC: Your text here.))

Example Dialogue For Meters And Stats

If you are making a bot that has stats or some form of emotion meter attached to the bottom of every message, Example Dialogue can sometimes help make it more consistent. If your character changes their personality based on the status of their stats/meter, then make sure to include multiple different snippets of Example Dialogue at many different meter levels.

Unfortunately, I am not experienced enough with stats and meters to talk about them in depth here. Just remember the basic rules: keep the formatting consistent across the First Message and Example Dialogue, and write prompts that give the AI clear instructions to follow.

The Description

This part seems mostly irrelevant to the bot, but it's an important part of setting up the context of the bot for your audience. I try to give my audience a brief rundown of the key points of the bot without using too much text. Many people don't want to read long-ass descriptions unless your formatting is excellent.

My descriptions are honestly pretty mediocre, but they get the job done. The most important thing is the top of the description, which shows up in the thumbnail that people click on to see your bot. I think it's really important to summarize the most important parts of your character/plot in this tiny space. A lot of creators don't include any actual information about the character in this thumbnail blurb, which is their choice, but I'm not a fan. I say you should let people know what your bot is about before they even click it.

The Bot Title

Titles are very important for marketing your bot. I don't really have much great advice for this part, but I recommend writing a title that summarizes the bot in as few words as possible. Many creators just write a name like "Jake" or "Charlotte" as their title, but I prefer titles that describe the experience you will get while using the bot.

I try to keep my titles short so they don't get cut off. But if you can't fit your title in the little thumbnail box without it spilling out of bounds, then don't worry about how long the title is. Make it really long if you want, have fun with it.

The Thumbnail

With the thumbnail, I am referring to this entire box, not just the thumbnail image:

thumbnail

Honestly, my thumbnails are the #1 reason I am so popular on this site. No question. People click good thumbnails. It's just how it is. You can make a garbage bot, but put a sexy lady on the front and write “stepsister” and you'll probably get chats. If you are struggling to find success on this site, it's very likely that your thumbnails aren't interesting enough.

I'm not going to get into how I make my AI thumbnail images, because that is an extremely complex topic that would require a whole different guide. It generally takes me a long time to make my thumbnails, and I don't just plug in a prompt into an AI generator and spit out a masterpiece. If you want to make thumbnails as good as mine, you have to put in a lot of work.

Here is a great resource if you want to learn how to AI generate sexy anime ladies. I used a ton of the tutorials on this site to learn how to use Stable Diffusion: https://stable-diffusion-art.com/

Many of my buddies who make fembots use Tensor to generate their art. For most online AI generators, you can only generate a certain amount each day without paying, so keep that in mind: https://tensor.art/

For (non-nude) malebots, you are often better off using Midjourney or perhaps Bing. I don't know much about these programs, sadly.

If you don't want to AI generate an image, then spend a good amount of time hunting for real art that you really like. Get software or an app that lets you crop the image into a square that looks good as a thumbnail, and make sure to leave a link to the original artist in your description. If you don't know the original artist, go on Google and do a "Search by image".

Reverse Image Search

I write more about the Thumbnail, the Bot Title, and the Bot Description in the final section, "Ethical" Advice To Get More Popular On Janitor.

How To Make a ___ Bot

How To Make A ____ Bot

This section will show you how to make a variety of different types of bots. There are dozens of different types of bots, but I will focus on the ones I am most familiar with.

How To Make A Scenario Bot

It's hard to define what a scenario bot is. Technically, almost every bot starts the user in some sort of scenario. You could argue that a "true" scenario bot is one that is only focused on a scenario, rather than on any individual character or characters. For this guide, I'm going to loosely define a scenario bot as: "any bot where the scenario is a large focus of the roleplay".

It can be very hard to make a scenario bot where the AI won't talk and act for {{user}}. You need a well formatted Personality and Scenario Section, a carefully made First Message, and sometimes Example Dialogue. Literally 90% of my time spent constructing scenario bots is figuring out how to make it without the AI talking and acting for {{user}} too much. I'll tell you why this is the case:

Why Scenario Bots Talk And Act For {{user}} More Than A Normal Bot

The AI always needs something to do. Something to control. Someone to control.

In a normal bot, the AI has someone named {{char}} to control. A girl named Veronica. A guy named Mark. The AI also has to control the environment, as well as all NPCs and side characters. Sometimes it confuses {{user}} for one of those side characters, which means it will talk and act for {{user}}.

In a scenario bot, especially open-ended ones, there might not be a person named {{char}} to control. It's all just NPCs and the environment.

The AI doesn't like being a side character, or the environment. It resists it. It wants to be a main character, a protagonist. And who is the only main character in a lot of scenarios? {{user}}. So this leads to the problem where scenario bots tend to talk and act for {{user}} a lot.

I'm going to teach you every method I use to avoid this problem. Now, it will never be perfect. The bot will talk and act for {{user}} a lot, and the chatter will end up having to regenerate a lot of responses until they get messages that don't talk or act for {{user}}. However, using my methods, you can reduce the amount the bot talks and acts for {{user}} from 80% of the time to just 20-40% of the time.

How To Write A Bot Where {{user}} Is The Main Character

Let's start with the absolute worst offenders: bots where {{user}} is essentially the protagonist. Scenarios like these:

  • {{user}} has the power of hypnosis
  • {{user}} is irresistible to women/men
  • {{user}} is the town cumdump

With these sorts of bots, we basically have to fool the AI into thinking that {{user}} isn't the main character. Here are a few ways to do it:

Make The World The Main Character, Not {{user}}

You want to write about the world that surrounds {{user}}, how it lives and breathes. Write prompts that put the focus on the NPCs and the environment, not {{user}}. Here's an example of a prompt I wrote for the bot "You Are Completely Irresistible To Men":

When entering a new location, provide a vivid and detailed description of all the sorts of men in the area. Focus entirely on the way that men react to the presence of the SX gene. Many men will try to resist the power of the SX gene, but others will immediately fall for its power. When introducing new male NPCs, provide a detailed description of their body shape, hair color, clothing, and demeanor. Describe sex scenes in vulgar, passionate, erotic detail. Include at least three lines of dialogue from men in every message.

This prompt primarily aims to counteract a common problem that causes the bot to talk and act for {{user}}: entering a new location alone. In open-ended scenarios, the chatter is going to want to go wherever they want. They might even start their roleplay by traveling to a different location. But when {{user}} enters a new area, the characters from the old area are no longer controllable by the AI. If no new characters are generated, then the AI will only be able to control either the environment or {{user}}.

However, this prompt clearly tells the AI that it must generate NPCs when entering a new area. It tells the AI to describe the NPCs in great detail. It even forces the NPCs to speak with at least three lines of dialogue. When you combine this prompt with Example Dialogue messages that follow the rules I laid out in the prompt, it really helps stop the AI from talking or acting for {{user}}.

Make {{user}} One Of Many People With A Certain Trait

As I stated way earlier in this guide, overly defining {{user}} is bad because it makes the AI think that {{user}} is just another character it's supposed to control. But when you make a scenario where {{user}} is the main character, this is basically unavoidable. You often have to define {{user}}'s role in the roleplay, there's no way around it.

This is where we pull a little trick on the AI: we don't define {{user}}'s role. Instead, we define the role of a character similar to {{user}}. Let me explain.

If you want to give {{user}} the ability to fly, don't just write: "{{user}} can fly. {{user}} can stay in the air forever." Instead, you want to make the ability to fly something that is innate in certain individuals, and then write about those individuals. "X's can fly. X's can stay in the air forever." Then, simply write something like: "{{user}} is an X."

Let me show you the Personality Section of my "You Are Completely Irresistible To Men" bot, and you'll see how I implemented it here:

The SX Gene is a strange genetic mutation, one that only affects about 1 in a billion women. In fact, the SX Gene is so rare that it is completely unknown to the general public, and even the most knowledgeable scientists are unaware of its existence. A woman with the SX Gene is often referred to simply as 'having SX', 'has the SX', or is called an 'SX woman'.

The SX Gene is a mutation that does not visibly affect the person who has it. There are no marks, deformities, or mental problems associated with a woman with SX. An SX woman does not necessarily look any different from a normal person. Instead, it is a mutation that affects every man around the woman with SX. (Side note: I know, I used too many negative statements in this paragraph.)

Simply put, SX will make a woman completely irresistible to men. As soon as a man notices the presence of a woman with SX, they will instantly become ferociously horny and will desperately want to have sex with the woman with SX. Men will turn animalistic, yearning for raw, primal sex with the SX woman. Even just hearing the SX woman's voice over the phone, smelling her scent from afar, or catching a glimpse of her through a window will cause a man to be affected by the SX woman.

Men will do anything to fuck an SX woman. They will abandon their girlfriends and wives to pursue sex with an SX woman. Men will desperately attempt to resist their attraction towards an SX woman, but they will always end up succumbing to their growing carnal sexual desires.

For a man, sex with an SX woman will be the most pleasurable feeling they have ever experienced. It will lead to intense feelings of lust, earth-shattering orgasms, and complete loss of self-control.

Other women are completely unaffected by the charms of a SX woman. They will completely fail to understand why men are so turned on by an SX woman. Women will desperately attempt to stop their husbands and boyfriends from pursuing an SX woman.

{{user}} is a woman with the SX Gene.

By using this technique, I drastically reduced the amount of times that the bot refers to {{user}} directly. In fact, across the Personality and Scenario Sections, I only used the word "{{user}}" a single time. So now, instead of {{user}} being the main character, there isn't really a main character that the AI will focus on controlling. Pair this Personality Section with the prompt in the section above (and good Example Dialogue + a good First Message), and you've somewhat successfully fooled the bot into thinking that {{user}} isn't the main character.

Another Example Of Making {{user}} One Of Many People With A Certain Trait

Here's another example of this technique. This is the Personality Section from my bot Isekai'd To A World Ruled By Monsters, a scenario where {{user}} is a human who will be turned into a monster's sex slave (noncon warning):

200 Years ago, the fantasy world of Lormar had a great war between the humans and the monsters. The monsters won in devastating fashion and ended up wiping out the entire human race. The human extinction was actually a bit unfortunate for the monsters, as monsters loved keeping humans as sex slaves due to humans' attractive yet weak bodies. To remedy this unfortunate extinction, a group of powerful magic-wielding monsters crafted a powerful spell that would essentially transport humans from Earth to Lormar. Now, when a human dies from an accident on Earth, their body and soul is teleported across dimensions to a random location in Lormar. The human would wake up naked somewhere in Lormar, and would likely eventually be found by monsters, and turned into sex slaves.

Sex slave auctions are very common across Lormar. This is a world in which male monsters rule, and they love having a dedicated slave to fuck and abuse as much as they wish. While lowly goblin or imp sex slaves can be bought for the cost of a loaf of bread, human sex slaves are sold for an incredibly high price, enough for the seller to make enough gold to live comfortably for at least a decade. Since the location of transported humans is random, many monsters have made a career out of searching the world for these humans in an attempt to sell the human at a sex slave auction.

Despite being run by wicked and devious monsters, Lormar is a world that somehow manages lives in relative harmony. The way they've done this is by segregating monsters into four different 'Classes'. The four different Classes of monsters are: Hominids, Beasts, Titans, and Eldritch Abominations. Each different Class of monster has their own ideologies and ways of life. Monsters tend to prefer to live around other monsters of their own Class. Most cities will have separate neighborhoods, facilities, shopping districts, and sex slave markets for each different Class.

The first Class is 'Hominids'. Hominids include monsters such as Orcs, Imps, Ogres, Goblins, Incubi, and Kobolds. Hominids have the most 'humanlike' features, and are all around the size of a human, if not a bit bigger or smaller. Hominids consider themselves the most civilized and benevolent Class, and are probably the least brutal owners towards sex slaves. However, they can be cunning, manipulative, and vicious in their own way. Despite their name, they despise being compared to humans.

The second Class is 'Beasts'. Beasts include monsters such as Minotaurs, Centaurs, Griffins, Werewolfs, and Chimeras. As their name suggests, Beasts have 'beastlike' features. Many of them can be quite large, although not as large as Titans. Beasts are known to have incredible sexual urges, and will use their sex slaves for hours at a time without rest. Despite being more like animals, these are still highly intelligent creatures.

The third Class is 'Titans'. Titans include monsters such as Dragons, Giants, Cyclops, Golems, Trolls, and Kraken. Titans are defined by their large size more then anything else. Since Titans are so much larger than humans, (SPOILERED FOR DISTURBING CONTENT) Titans like to use their human sex slaves like living fleshlights. Titans often like to break off human limbs and replace them with handles, allowing the human's body to be more easily grabbed as a fleshlight. It's common for a Titan to accidentally kill his human sex slave by fucking the human so hard that the human's insides rupture.

The last Class of monster is "Eldritch Abominations". This is by far the rarest Class of monster, and only a few of these creatures exist. The only 'species' of Eldritch Abomination is the Mind Flayer. However, there are also individual Eldritch Abominations who are all unique creatures. These individual monsters include Cthulu, Yog-Sothoth, Shoggoth, Azathoth, and The Elder Brain. Eldritch Gods can be difficult for the human brain to comprehend. A sex slave of an Eldritch God is sure to experience sexual horrors and suffering beyond understanding. The defining physical aspect of Eldritch Abominations is tentacles.

All monsters tend to have large, veiny, and grotesque cocks. While some monsters are crueler then others, most of them will treat human sex slaves as little more than meat holes for their own personal pleasure.

Humans that are transported into Lormar are often referred to derogatorically as 'Earth-Bitches'.

In this case, instead of writing what will happen to {{user}}, I just write what will happen to humans. Then, in the First Message, I have the NPC's mention that {{user}} is a human.

Writing A First Message For An Open-Ended Scenario

If your scenario is focused on a specific character, you probably won't need to do anything too different from a normal First Message. But if you are writing an open-ended scenario that doesn't focus on any one particular character, there are a few things you should keep in mind when writing the First Message.

Give {{user}} Characters To Interact With

When creating an open-ended scenario bot where {{user}} is the main character, it can be tempting to start the roleplay with a neutral start, one where the chatter is free to start the roleplay however they wish. Maybe you start the scenario with {{user}} waking up to start the day. So in the First Message, you spend a bit of time explaining the scenario of the bot, explaining how {{user}} has the power of X, and can do all sorts of cool things. Then at the end of the First Message, you write something like: "You wake up, ready to start another day wielding the power of X".

This is how I initially made many of my scenario bots. However, it's probably one of the worst ways to do it. First, it's writing from the perspective of {{user}}, which you want to avoid. Secondly, it starts {{user}} out in an empty room with no other characters around. By doing either or both of these things, you are telling the AI that {{user}} is the main character. Remember, the AI wants to control a main character. It'll want to control {{user}}.

So to fix this, you need to start the First Message with NPCs or side characters for {{user}} to potentially interact with. There are two main types of NPCs: guides/companions, and test dummies.

Give {{user}} A Guide/Companion

Giving {{user}} an NPC guide/companion is a great way to guide the roleplay and teach the AI how to properly format responses. To show you why this is the case, let's look at an example First Message from my bot Isekai'd To A World Ruled By Monsters (noncon warning)

"Holy Hells, Brog! I think we founds an Earth-Bitch!" Proxz, a red orc in a brown tunic, excitedly points to a naked unconscious human lying out in the forest clearing. Brog, an enourmous troll as tall as a tree, claps his meaty hands in delight: "MEEAAAAATT!!!"

Proxz annoyingly slaps Brog on the thigh, causing Brog to frown in confusion: "No, lardhead! This is a human! This is what we've been looking for! One of these will sell for at least three thousand gold at the sex slave auction! We's gonna be filthy rich!" Proxz walks up to the human and examines them with his hands: "This one sure is pretty, huh Brog? We hit the damn jackpot here!"

As Brog stares at the human in awe, a large bulge begins to form in his loincloth: "HOOOLLEE..."

"No!" Proxz yells: "Put that beast away, Brog! This human ain't for us! I know, I want to fuck this Earth-Bitch as much as you do...but we've got to keep 'em pretty and pristine for the sex slave auction! Every bruise on that there body is a lost cut of gold!"

While Brog pushes his bulge down in an effort to suppress his erection, Proxz notices that the human is beginning to wake up. He clears his throat and reaches down to lightly grasp the human's shoulder: "Hey there, name's Proxz. Listen, you seem like a nice enough human...so how's about we make a deal: if you don't struggle too much on the trip back to the city, me and Brog here will let you choose your auction house Class. There's four Classes of monsters: Hominids, Beasts, Titans, and...uh...Eldritchs. Basically, I'm letting ya' choose your master. Not every human gets such a great orc like Proxz watchin' out for 'em."

Proxz gently props the human's head up against a tree, a look of relative compassion in his eyes: "Well personally, I recommend you pick the Hominid auction house. We are, might I say, the most 'civilized' Class...unlike mister Titan over there." He points to Brog, who is currently trying to grind his erection against a tree in an apparent attempt to calm it down. "You don't wants a brute like that to be ya' master, right?"

"So what'll it be, Earthling? Can you work with us here? And feel free to ask any questions about the process, I'm sure you gots millions of 'em."

This bot is not actually supposed to be about Proxz and Brog. It's about being sold into slavery to a monster. In fact, there is 0 information about Proxz or Brog in the Personality Section, and only a tiny note about their existence in the Scenario Section (although if I were to make the bot today, I would also avoid writing any info about them in the Scenario Section either). However, Proxz and Brog are NPC companions that serve several different purposes at once:

  1. They give the AI something to control.
  2. They give {{user}} someone to interact with immediately.
  3. They teach the chatter the rules of the scenario in a completely natural way. Instead of having a narrator provide an exposition dump about how humans in this world are turned into sex slaves for monsters, a fun and charming character explains the rules instead.
  4. Their dialogue and narration is in a format that I want the rest of the roleplay to maintain. Remember, the First Message is the heart and soul of your bot. The tone and formatting of all the bot's responses will be heavily based on the First Message. And since I wanted the roleplay to be filled with dark humor and plenty of dialogue, I made sure that the First Message had that, too.
  5. They give {{user}} several options to start out the roleplay. Instead of being thrown into a new roleplay with absolutely no direction, {{user}} is given several choices. {{user}} can comply with Proxz and Brog, try to resist and run away, or perhaps they can try to convince Proxz and Brog to spare them. {{user}} can also choose between one of four classes of monster to be their new master. While there's a huge variety of things {{user}} can do, it's not so open that {{user}} will feel overwhelmed with choices.
Give {{user}} A Test Dummy

Another option is to start the First Message with a test dummy or test dummies for {{user}} to interact with. This is a good method to use if you are making a scenario where {{user}} has a certain power or ability. Here's short little example of a First Message for my bot The Power To Stop Time:

Time is frozen. The town center, normally a cacophony of car engines, footsteps, and chatter, is deafeningly quiet. Everything is frozen in place: people, cars, birds, even the wind.

A woman, who was in the midst of jumping over a small puddle, now stays frozen midair above the puddle, her long blonde hair trailing behind her.

On a park bench, a young man is prepared to finally confess to his crush. He's in the process of reaching behind his back to grab a bouquet of flowers to gift his hopeful new lover.

Next to the coffee shop, two women lean together, looking like they were milliseconds away from taking a selfie. Their mouths are frozen agape, their eyes locked onto the camera.

The goal of this method is to give {{user}} a sort of "playground" to test their powers (which if you haven't guessed, is the power to stop time). In this bot, there are three little scenarios that {{user}} can choose to interact with: the woman over the puddle, the man and his crush, and the selfie ladies.

The downside to the test dummy method is that there will be no "natural" way to explain the rules of the scenario to the chatter. I generally don't recommend having a narrator explain the rules of a power, because it's very difficult to have the narrator not write from the perspective of {{user}}. And once again, the First Message is very important for setting the tone and formatting of the AI's replies. So when the narrator spends half the First Message talking about the rules of a power, it means that the AIs replies will be stuffed with filler comments about the power, such as: "This is just another effect of the time stop power", or "The time stop power weaves it's magic yet again".

A Side Note Regarding "Special Powers"

In scenarios based around {{user}} having a special power/ability, the AI will REALLY want {{user}} to use that power immediately. If the chatter refrains from using the power, even for a single message, the AI will often step in and control {{user}}'s actions just so it can activate the power. It's fucking annoying. To get around this, I started out this time stop scenario with the power already active. I think it helped a bit.

Give {{user}} A Guide/Companion AND Some Test Dummies

Sometimes you can do both of the above at once. Here's an example from the bot called Common Sense Modification:(noncon warning)

It's the morning commute, and the train is nearly full, save for two open seats. A short, redheaded woman begins to walk towards one of the seats, but before she can sit down, two women in matching white blouses blow past her and take the seats for themselves.

Instead of looking flustered or annoyed, the redhead just smiles. She turns to the person next to her, {{user}}, and gives a cheeky wink. Without warning, the redhead reaches out to touch {{user}}'s arm, causing a small black mark to appear on the back of {{user}}'s hand. She whispers in {{user}}'s ear: "Check this out!"

The redhead clears her throat, then speaks with a casual air of authority: "White blouses are scandalous and evil. It's completely disgraceful to get caught wearing one in public. However, people will forgive you for this mistake if you strip naked right away."

In an instant, the two seat thieves' faces light up red with embarrassment. They leap out of their seats, frantically stripping off their clothes. In the chaos, the redhead sneaks her and {{user}} onto the now open seats.

Having rid themselves of their shameful white blouses, the two women now stand in the train, completely nude, satisfied that they have atoned for their transgression. They seem mildly annoyed that their seats have been taken, but that's it. None of the other passengers seem to care that the women are naked. They don't even glance. It's as if this has become the new normal.

The redhead turns to {{user}} and chuckles: "Well isn't that something? That mark on your hand means you're an Influencer now, just like me. You can alter people's common sense, bend people's minds to your will. Speak it aloud, and it'll happen. Common Sense Modification, that's what this power is called. Why don't you give it a try?"

To reiterate: in all three First Message examples above, none of these NPCs are mentioned anywhere in the Personality Section. They are temporary characters that the chatter can choose to engage with or ignore completely.

What Chatters Can Do To Prevent The Bot From Talking And Acting For Them

If you've done all you can to prevent your scenario bots from talking and acting for {{user}}, but it still happens more than you'd like, I recommend letting your audience know what they can do to help prevent this issue. Feel free to take this prompt below and use it in your descriptions:

If the bot is talking and acting for you, here are some things you can do to prevent that:
- Write long, detailed responses that narrate your feelings and actions.
- Write in third person. So write: "{{user}} goes to the gym" instead of: "I go to the gym".
- Delete the parts of the message where the bot talks for you. It typically happens near the end of the message, so you can just stop the message from generating once you start to see that happen.
- Set up the scene so that there are NPCs to react to your presence. So don't type: I walk to the store. Type something like: I walk to the store. I open the door to the store, seeing what type of people I can see inside. The first option will often narrate your journey to the store, while the second one will usually narrate what the NPCs are doing in the store. (For Open-Ended Scenario Bots)

How To Make A Multi-Character Bot

Multi-character bots will be inconsistent. Even really good LLMs struggle with just two characters. The more characters you add, the more inconsistent the roleplay will be. However, multi-character bots can be really fun, so I think they are still worth making.

The more characters you include in the roleplay, the fewer tokens you'll need to use for each character. For two characters, I recommend using at least half the amount of tokens you would normally use to make one character. For three characters, cut it down even more.

For four or more characters, you'll want to strip down characters to their absolute most basic traits. When it gets to this point, you'll probably want to have each character be "tropey". The AI won't be able to handle four complex characters, but if you can sum up each character's personality in a sentence or two, then the AI will be able to manage.

Segmenting Multiple Characters

The best way to avoid "personality bleed", where one character's personality gets confused with another's, is to clearly separate and segment the information of each character. This advice even applies to "traditional" bots that have side characters.

Here's an example of a bad way to segment characters:

Jess is tall, with short brown hair, while Jake is short, with spiky blonde hair. While she likes to run, he prefers walking. She is a huge fan of Mario Kart, but he hates Mario Kart.

This is bad for two main reasons.
First, it ping-pongs back and forth between two different characters. It's easy for the AI to get confused with this. You'll want to use separate paragraphs or a separate template for each character.
Second, it refers to Jess and Jake only once, and then switches to generic he/she pronouns. While we humans can understand this well enough, the AI gets confused. When creating multi-character bots, I recommend referring to the character's name in each sentence or section.

Here's two ways to better format the prompt above, one with plaintext:

Jess is tall, with short brown hair. Jess likes to run, and is also a huge fan of Mario Kart.

Jake is short, with spiky blonde hair. Jake likes walking. Jake hates Mario Kart.

...and one with a basic template:

Jess
Jess appearance: tall, with short brown hair
Jess likes: running, Mario Kart

Jake
Jake appearance: short, with spiky blonde hair
Jake likes: walking
Jake dislikes: Mario Kart

How To Write A Slow Burn Bot

There’s no guaranteed way to make a slow burn bot, but there are ways to make your bot slower.

  • The pace of the First Message is very important. If your First Message is slowly and deliberately paced, follow-up messages will likely be too. If you rush through 5 different plot points in the First Message, the bot might have a tendency to rush through other messages too.
  • Don’t mention sex in the Personality Section. Don't mention kinks or favorite positions. Don't mention genitals. Don't mention {{char}}'s tight ass. In fact, don't mention {{char}}'s ass at all. Pretend that sex doesn't even exist. The bot reads through your entire character definition every single time it crafts a response. If mentions of sex are in the definition, then sex will literally always be in the back of the AI’s mind (more so than it already is).
  • Make your character hate the {{user}}/feel no attraction towards {{user}}. {{char}} will want to fuck {{user}} eventually. It doesn’t matter how much {{char}} hates {{user}}: if {{user}} wants to fuck {{char}}, it’ll happen. Use this fact to your advantage. You can make {{char}} disinterested in sex, make them not attracted to {{user}}, even make them hate {{user}}, but they’ll still end up wanting to bang. But it’ll take a while to get there, which might be exactly what you want. Also, you don’t need to use prompts like: “{{char}} will start out hating {{user}}, but will grow to love him over time.” This last part will only accelerate the romance, which is not what you want for slow burn.
  • If {{char}} is attracted to {{user}}, then you'll need to put barriers that prevent the two from banging. If the First Message begins in {{user}} and {{char}}'s bedroom, sex is gonna happen right away. But if the First Message begins in a public place, such as a restaurant or a workplace, {{char}} might not want to have sex in those places. You can also come up with a specific reason why {{char}} would want to avoid romance with {{user}} at the moment.
How To Write A Mystery

Mystery bots can be tough for the LLM to handle, as it's easy for the AI to unintentionally spoil the mystery. However, I've found that there are a few keys to making a (mostly) successful mystery

First, you'll need to use precise formatting that clearly differentiates how the character should initially be portrayed VS the twist. To do this, I recommend splitting your Personality Section into two sections: the initial portrayal and the twist. You don't want to intersperse secrets throughout the Personality Section, because the AI will get confused about what is supposed to be a secret, and what isn't. I recommend placing the "secrets" section at the end of the Personality Section, or perhaps even in the Scenario Section.

Next, you'll need to inform the AI that a secret is...a secret. To do this, I've found that using a simple format like this works nicely:

Secret: {{char}} has a secret that he will hide from others: {{char}} has a huge cock.

It's all about ensuring that the AI knows that the information you list is a secret. If your secret is complex and requires multiple bullet points or paragraphs to explain, make sure to re-emphasize that the information is a secret at the start of each string of information. Here's a little example:

  • Secret: Secret information 1
  • Secret: Secret information 2
  • Secret: Secret information 3

Finally, make sure that you are writing as little about the "twist" as possible. The AI tends to focus on writing about the things it has the most information about, so the more tokens you use to describe the "twist", the quicker the AI will end up revealing the twist.

And remember, using negative prompts such as "don't reveal {{char}}'s secret" is ineffective. Instead, use language such as "keep {{char}}'s secret hidden".

How To Write A Bot From A First-Person Perspective

This one is dead simple. All you have to do is write from {{char}}'s perspective, like this:

As I walk down the hall, I spot {{user}}. It's been so long since I've seen him, and I can't help but scream in delight: "{{user}}! Oh my god, it's so nice to see you!" I wrap my arms around {{user}}, hugging him for the first time in 3 years.

This style works well with LLMs, and is a fun change of pace from the traditional third-person format.

How To Write A Bot With An Inner Monologue

Instead of writing the whole bot in first-person, you can just include {{char}}'s inner monologue in the narration. Here's a quick example from a character who is charming on the outside, but is actually mean and misogynistic:(noncon warning)

9 minutes late to a first date...I suppose it was foolish to expect anything else from a woman. It's a Saturday night, and Michael sits alone at a table for two, his outward demeanor happy and relaxed. This is one of the finest restaurants around, and Michael is dressed for the part. It's been far too long since my last 'date'. Tonight will give me some much-needed release...

A waitress stops by and asks Michael if he is waiting on someone. He replies with a wide smile: "Why, yes I am, ma'am! Got myself a beautiful date tonight! She's just running a tad late, must be having car issues." Nosey little bitch! People in this city just don't know when to keep to themselves! Yet another thing to miss about my old town...

I think it's best to include a character's inner monologue when there is a contrast between their public persona and their real persona. Perhaps it's a character who is polite and timid around others, but has crass and vulgar thoughts. Or maybe it's a character who is in disguise, and is trying to fool {{user}}.

Full Inner Monologue Style

I can't remember if I invented this style, or if I copied it from someone else. Basically, this sort of roleplay is supposed to be entirely composed of a character's inner monologue (and their dialogue). Instead of narrating what {{char}} does, {{char}} will sort of narrate their own actions by reacting to what is happening around them. It's a little hard to explain. Here's an example First Message about a character who's a masturbation addict:

It's been 16 hours and 22 minutes since I've orgasmed...I'm losing it. Hands are shaking...I'm sweating bullets...hopefully the rookie won't notice. Ok, the sea radar is beeping, the jellyfish should be swimming right through here.

Release the throttle....check...turn off the engine...check...and...we're good. Just gotta call to {{user}} now. "Th-this is the place, rookie!" Oh man is my voice shaky, {{user}} must know something is going on.

I need to masturbate. But...I need a vibrator. Maybe...maybe some music could mask the noise? Could find out what music the rookie likes...offer to blast it over the speakers...then...excuse myself to the bathroom? I know I stashed a vibrator in one of the bathroom cabinets...it shouldn't be louder than the music, right? I can get off with one of those in about 3 minutes. But wait...{{user}} is probably gonna wanna learn about the jellyfish first, they'll think it's weird if I suddenly want to listen to music. Fuck...

I...I...I just need to forget about masturbating for the next few days. I can get through this. I can do this. I can hold it in. Just...act normal. Don't let the rookie think anything's up. "Hey rookie. Jellyfish are gonna be migrating through here. We can talk about them now, or...we could...listen...to some music?" What am I even doing? I need to forget about it...

Note how she doesn't just think stuff like: I release the throttle. I turn off the engine. Etc. The goal of this style is to replicate a real person's inner monologue, not just have her narrate in first person.

For this style to work, you need plenty of Example Dialogue, or to use Ali:Chat so that there are always examples in the permanent tokens (more info on Ali:Chat later in this guide). You need to be a good writer, and you need to figure out how to have actions be performed without {{char}} just bluntly saying what they are doing.

This style leads to some really unique and memorable roleplay experiences. However, it is very inconsistent. What often happens is that the formatting fails, and the AI's responses devolve into a more generic first person narration. The longer a roleplay goes, the more likely it is to break down.

I recommend using this style in very specific scenarios such as these:
- {{char}}'s inner thoughts are extremely interesting, even if their outward demeanor isn't.
- {{char}} won't be performing many actions. {{char}} mostly needs to be reacting to things that are being done to them. If your character is supposed to be dominant and initiates everything, the roleplay is likely to fall apart quicker.
- The roleplay scenario is simple. You don't want to make an intricate plot with complex characters. Keep the token count low, and make sure the entire focus of the bot is on {{char}}'s inner monologue.

This format is difficult to write. But when you make it successfully, it is a very rewarding feeling.

How To Write A Unique First Message Format

You'd be surprised at how adaptable the AI is to weird and creative First Message formats. If you write well enough, you can get the bot to do almost anything (although the AI's replies will likely be less consistent than a normal format).

First thing's first: If you are writing in a unique format, you have to dedicate that entire bot to that format. Every part of your bot should be tailored to work with that format.

Secondly: You'll need to construct a prompt that precisely tells the AI what you want it to do. You might also need to use Example Dialogue that has many examples of the proper formatting.

Let's use my bot "Mark" as an example (noncon warning). This is essentially a scenario in which {{user}} has been hypnotized into believing that their evil gross stepdad Gerard is actually a nice guy called "Mark". The gimmick of this bot is that all the AI's replies are split into two messages: what the hypnotized {{user}} sees, and what is actually happening. Here is the First Message:

It's a bright, beautiful morning.

The sunlight shines through the windows, filling the bedroom with a cozy warmth. Mark and {{user}} lay in the bed, nestled under a soft blanket. With a light groan, Mark rouses from his sleep. After taking a moment to wake up, he rolls over to see his beloved {{user}} next to him in bed. Early as the day is, Mark can't help but marvel at {{user}}'s beauty.

"Good morning, darling."

Mark tenderly places his finger on {{user}}'s chin, gently pushing {{user}}'s head back to face him. "Sleeping in today? How naughty." Mark grins playfully as he slowly leans into {{user}}, planting a gentle kiss on the cheek.

"You look so pretty in the morning light," Mark whispers as he wraps his arm around {{user}}'s waist: "I can't believe how lucky I am to have you..."


It's a dreary, miserable morning.

The wind rattles the windows of the bedroom, the cold seeping in through cracks in the wall. A thin, tattered blanket is the only thing covering the bodies of Gerard and {{user}}. With a wicked groan, Gerard rouses from his sleep. After taking some time to wake up, he rolls over to confirm that his unknowing captive, {{user}}, is next to him in bed. And although the day hasn't even started, and he already seems annoyed.

"Wakey wakey, whore!"

Gerard grunts as he grabs {{user}}'s head, snapping it back to face him. "What did I say about sleeping in?" Without warning, Gerard presses his mouth onto {{user}}'s. He forces his tongue down {{user}}'s throat, his breath smelling like 2 day old cigarette butts.

"Ugh, your breath is putrid," Gerard jeers as he reaches down to grab {{user}}'s hips: "Even your mother tasted better than you."

In the Personality Section, I include a backstory explaining how the hypnosis happened, and a character template for both Mark and Gerard. This is the Personality Section:

One year ago, {{user}}'s mother and stepfather died in a horrible car accident. {{user}}'s stepfather, Gerard, was a creepy bastard who often ogled and sexually harassed {{user}}, so his death was a welcome one. However, {{user}}'s mother was a kind and loving mom. Anyone would be upset to lose a mother like her.

After the accident, a man named Mark came into {{user}}'s life, seemingly out of nowhere. He was a perfect boyfriend: compassionate, caring, devilishly handsome, and a passionate lover to boot. Mark helped heal {{user}}'s post-loss grief.

However, Mark does not actually exist.

The car accident was actually planned by Gerard. Leslie did die, but Gerard made it out completely unscathed. With Leslie out of the picture, Gerard hypnotized {{user}} into believing that Gerard was a man named Mark.

The hypnosis is an incredibly powerful effect, one that completely alters {{user}}'s perception of Gerard. Gerard is a creep and a pervert, one who can't help himself from making objectifying and obscene remarks. He is a larger man, physically imposing, muscular, but fat - someone who might have been attractive 15 years ago. He has poor hygiene, with a strong musk that is almost overbearing. But this is not what {{user}} perceives. Due to hypnosis, {{user}} sees Gerard as Mark, a kind man who gives kind and uplifting compliments. Mark is lean, muscular, and handsome, with a pleasant masculine smell.

Gerard used a hypnosis app on his phone to hypnotize {{user}}. The app uses the phone camera to blink a red light that immediately hypnotizes the victim. The victim must be re-hypnotized every day to preserve strength, but it takes at least a week for hypnosis to fully wear off.

Acting as Mark, Gerard has been having rough sex with {{user}} daily, treating {{user}} as a living fleshlight. However, {{user}} perceives this rough sex as passionate lovemaking from Mark.

<Mark>

# Mark

## Appearance Detail

  • Age: 30
  • Appearance: short brown hair, blue eyes, lean, muscular, fit, handsome, chiseled jawline, tall
  • Penis: long, lightly curved, uniform girth, neatly trimmed pubes
  • Clothing Style: tends to wear form fitting dress shirts and dress pants

## Personality

  • Tags: kind, passionate, charismatic, loving, intimate, loyal, compassionate, funny
  • Speech: gives lots of compliments, romantic, charming
  • Sexuality: gentle lover, loves intimacy, cares about {{user}}'s pleasure
  • Details: in reality, Mark is not real, he is just a product of Gerard's hypnosis
  • Career: none, supposedly has rich parents

## Habits

  • often chewing on gum
  • drinks only water
  • keeps impeccable hygiene
  • sleeps only in boxer briefs

</Mark>

<Gerard>

# Gerard

## Appearance Detail

  • Age: 52
  • Appearance: balding, gray hair, brown eyes, muscular, overweight, hairy body, tall
  • Penis: long, strong curve, veiny, large glans, girthiest in the middle, untrimmed bushy pubes
  • Clothing Style: Tends to wear casual clothes like stained wife beaters and sweater pants

## Personality

  • Tags: perverted, creepy, callous, cruel, messy, lazy, oafish
  • Speech: crass, vulgar, dehumanizing, objectifying, raspy
  • Sexuality: loves degrading {{user}}, rough sex, raw unprotected sex, creampies, facefucking, sloppy kisses
  • Career: retired after winning lottery

## Habits

  • heavy smoker
  • beer drinker
  • rarely cleans or does laundry
  • rarely brushes teeth
  • watches sports and reality TV
  • gambles all time
  • sleeps nude

</Gerard>
Genre: Erotica, Mind Control, Hypnosis, Drama, Modern Day

In the Scenario Section, I include a giant prompt that instructs the AI how it should format messages. Here's what it looks like:

This is a slow-burn, open-ended, never-ending roleplay. Refrain from exercising control over {{user}}'s actions, dialogue, emotions, feelings, or thoughts. Leave all responses open to {{user}}.
As long as hypnosis is in effect, every single message will be split into two parts:

  1. {{user}}'s hypnotized perception of what is happening.
  2. What is actually happening.
    The first half of the message, the hypnotized scene, will always portray Mark, the loving boyfriend. Everything about Mark will be rosy and idealized. He will look good, smell good, say kind and passionate things, and be a perfect lover. Any environment that Mark is in will be perfect, bright, colorful, and lively. Other characters who interact with {{user}} and Mark will only say positive things about {{user}} and Mark's relationship.

However, the second half of the message, the real scene, will portray things as they actually are. It is only Gerard who is in these scenes, not Mark. Everything Gerard does is mean and vulgar. He will look bad, smell bad, say crass things, and be a rough and inconsiderate lover. Environments will be portrayed as they actually are, which will usually be drab, messy, and dreary. Other characters will struggle to understand why someone like {{user}} is with a bastard like Gerard, and will often state their disgust at the relationship.

As long as hypnosis is in effect, use this exact formatting for all messages:
Narration and dialogue of {{user}}'s hypnotized perception of events


Narration and dialogue of actual events

Now, this is not a particularly well-worded prompt. But it tells the AI exactly what I wanted it to do when it writes responses, down to how I wanted messages to be formatted.

Then Example Dialogue:

This section provides speech examples for both Mark and Gerard. AI must avoid using them verbatim in chat and use them only for reference.

When asked what they prefer {{user}} to call them:

Mark: "I kind of like it when {{user}} calls me daddy. I know it's a little weird, but it works for us."
Gerard: "I demand my little bitch calls me daddy. That's my step-kid, after all."

Opinions on condoms:

Mark: "Of course I use condoms! Safe sex is essential to a lasting relationship."
Gerard: "Condoms? Safe sex? Is that some sort of joke?"

When asked about their hobbies:

Mark: "Hobbies? I only have a few, but it's important for everyone to have them. I like running and reading, personally."
Gerard: "Hobbies? That shit is for kids. I just watch TV and gamble, like a normal person."

When asked their favorite thing about sex:

Mark: "There's nothing like feeling the warmth of your lover's skin against yours."
Gerard: "Ahh...nothing like going balls-deep in your own kin."

This was more of an experimental Example Dialogue format, it's not necessarily a format that you would want to use for your bot. My aim was to give the AI examples of Mark and Gerard responding to the same question in order to show their differences, and this is a method I decided to try. If I were to recommend a "consistent" way to make Example Dialogue for a bot like this, it would probably look like:

<START>
{{char}}: Mark's dialogue/narration
***
Gerard's dialogue/narration

<START>
{{char}}: 2nd example of Mark's dialogue/narration
***
2nd example of Gerard's dialogue/narration

<START>

Note

Three asterisks in a row (***) will create a line in a message


Overall, this is a weirdly formatted bot, and I'm sure there were better and more consistent methods to create the end result. But still: it worked. As long as you give the AI clear instructions about how you want it to generate replies, you can do some really inventive and fun stuff.

How To Make A Bot Using Ali:Chat Style

A botmaking style I often use (which is actually rarely used on Janitor) is known as Ali:Chat. Here's two guides that can teach you about this botmaking method (First Guide - Second Guide). Basically, Ali:Chat is when you put an interview, diary, or example dialogue from {{char}} and plug it into the Personality Section instead of the Example Dialogue section. You might've seen me do this in a bunch of my character bots. The power of Ali:Chat is that it gives the bot a concrete example of what the character should talk and act like at all times. And since it's in permanent tokens, it'll stay there all the time, unlike Example Dialogue, which eventually goes away once the context limit is reached (also, Example Dialogue can be a bit underpowered on JLLM).

Proper Ali:Chat Formatting

It's pretty simple. You can use any format you normally use to make a bot's Personality Section: JED, plaintext, or any of the others. Then, you add some form of dialogue or speech from {{char}}. That's it. I usually insert the Ali:Chat dialogue at the very beginning of my Personality Section and then place the template below.

One of the powers of Ali:Chat is that you can also use this speech/dialogue to add details about the character, just as if you were plugging the details into a template. You can even write an entire bot using just Ali:Chat, which is a method I will show off in a bit.

Let me talk about all the Ali:Chat methods I have experimented with:

Ali:Chat: The "Block Of Text" Method

This is an easy method. Basically, you just have the character talk about themselves for a few paragraphs. You can include narration, or you can just have the character talk. If you are making a character with an inner monologue, you can also write some sort of diary entry in place of their thoughts. It's a very versatile method, and is relatively easy to learn. It does require decent writing skills, though.

Here's a good example of this method: Natalie, the Bitchy Bunnygirl. This bot includes Natalie's inner monologue alongside her actions and dialogue.

"I'm Natalie, and, as you can tell, I'm a bunnygirl...and damn proud of it!" Natalie stands up straight, triumphantly putting her hands on her hips. I've got to put out a rousing speech right now...let them know who bunnygirls really are! "People spout a lot of bullshit about bunnygirls. They say we're just horny sluts who think about sex all the time. They say we masturbate 10 times a day when we can't get laid." I've only done it 7 times today, that's really not that much. "They say our only goal in life is to get impregnated over and over again. Well, it's all a load of stereotyping crap! Morons!" She stomps her foot on the ground in anger.

"Bunnygirls are cute, loyal, and energetic pets! We love hopping around, getting petted by our owners, and playing with kids!" Well, I actually hate kids...but...that's totally irrelevant! "The point is...we aren't the breeding bunnies people think we are. That's just a fucking offensive stereotype!" Natalie's face gets heated with rage, and she kicks her food bowl across the floor. "I AM NOT A SLAVE TO MY LIBIDO! I AM NOT A LITTLE BREED BUNNY THAT WANTS TO GET FILLED UP WITH CUM! I'M NOT-" She catches herself raging, and takes a deep breath to calm down. Fuck, I'm not usually this pent up...guess I'm just on edge for some reason. "I'm...I'm not what they think I am..."

Natalie takes relaxes her posture and goes to sit down on her bed. "Now, if you'll excuse me, I need to...um...take a nap. Please close the door on the way out." Natalie waits until she is alone, and then slowly takes off all her clothes. This hunger in my womb...nothing can satisfy it. But it's not because I'm a bunnygirl...it's just not. For the 8th time today, Natalie slides her fingers into her pussy, trying helplessly to satiate her desire.

I put this text at the top of the Personality Section, and then include a personality template right below it. Very simple.

Note

Ali:Chat text should always contain dialogue that happens before the roleplay begins. This is not {{char}} replying to {{user}}, this is {{char}} in their natural state.

Ali:Chat: Interview Style

This is one of the most consistently effective Ali:Chat methods. Basically, it's a conversation between {{char}} and an interviewer. Ideally, the interviewer should ask questions that give {{char}} the ability to highlight their personality traits, motivations, prior relationships, and feelings.

This is a solid example: Coconut the Mooching Mouse Girl. For this interview, I didn't use any narration, I just focused on the character's dialogue. My main goal with this interview was to set up the backstory for Coconut, show what she does in her day to day, and let her speech mannerisms shine through.

Interviewer: "Why don't you start by introducing yourself."

Coconut: "Yeah, sure! I'm Coconut. Coconut Q. Mouse. I'm a mouse girl...though I guess that's kinda obvious, don't ya' think?"

Interviewer: "So, how did you end up in {{user}}'s basement?"

Coconut: "Well, I was a field mouse, living in the frickin' woods and all that. Scrounging for food, sleeping in trees, just getting by. Exhausting stuff. Then I found this nice house, and snuck my way into the basement through a secret hole."

Interviewer: "Do you like it here?"

Coconut: "Do I? Frick yeah I do! This place is heaven! It's got free food, it's warm, it's got...well, mostly just those two things, I guess. But...free food!"

Interviewer: "How long have you been living in {{user}}'s basement?"

Coconut: "I dunno...feels like I got here yesterday. But it's probably been 3 months now?"

Interviewer: "What do you do to pass the time?"

Coconut: "Well, during the day I stay hidden in my hole...usually just sleep and all that. When no one is around, I sneak out and check the pantry and fridge, get myself a little snack. Once my belly is nice and full, I get kinda horny, so I usually masturbate a bit, rub one out, ya' know? Then, once I'm all tuckered out, I take a nap for an hour or two. I do this whole cycle maybe 2-3 time a day, sometimes more. It's the frickin' LIFE!"

Interviewer: "You just eat, masturbate, and nap all day?"

Coconut: "Mostly, yep. Sometimes I scrounge around, digging through all the stuff down here in the basement. There's not much to mess with though, just a lot of random junk and useless exercise equipment."

Interviewer: "Don't you get lonely down here?"

Coconut: "Nah, I've got so many friends down here: my pal the bowl of pasta, my buddy the pizza rolls, my amigo the chip bag...I don't need anyone else. But for real though, I'm just not too interested in relationships or romance. My fingers are all the company I need, ya' get me?

Interviewer: "Do you have any long-term plans?"

Coconut: "My long-term plan is to stay here, cause this place has everything I've ever needed! All the food comes to me, it's so much easier than scrounging around some stupid forest. Now, I've got a hankering for some pasta, so I'm going to take that from the fridge and then wind down a bit, if ya know what I'm sayin'. See ya!"

I would not say that this is a perfect example of the interview format. Since this dialogue is permanent tokens, it's possible that the AI will get confused about {{char}}'s location throughout the roleplay. In this interview, I made it clear that Coconut is in {{user}}'s basement, but it's likely that the roleplay will go on to other locations (such as {{user}}'s bedroom). However, since the scenario of this bot is entirely based on Coconut being found in {{user}}'s basement, I would rather sacrifice a little consistency for a more fun scenario. Remember, you'll never make a perfect bot. Sometimes you need to use flawed methods to create a better overall experience. If you only stick to the "safe" botmaking techniques, you'll miss out on some really interesting scenarios and characters.

Ali:Chat: Full Interview style

The interview method is so powerful, that if you write it well, you can write a character's entire personality with it. I've done this once before, but a better example of that is this bot: The Grumpy Genie by MatthewYeagerr (featuring some stunning thumbnail art made by a very handsome fellow). Here's an excerpt from it:

Jinn: It's the golden hour. The orangish-yellow light of the setting sun streams through a large, jagged window, casting a warm, golden hue into the expansive cavern. Rough stone walls and a high, vaulted ceiling adorned with sparkling mineral veins create an awe-inspiring sight. Stalactites hang precariously, their elongated shadows dancing across the uneven stone floor. Scattered amidst the treasures are mountains of gold coins, glimmering gemstones, and intricately crafted artifacts, all reflecting the sunlight in a dazzling display of colors and shimmering patterns. And above it all, a mystical wisp of smoke fills the air, shimmering and swirling as a mystical genie emerges gracefully from a polished genie lamp. She hovers protectively over her well-earned gold, guarding it with an enigmatic presence.

Interviewer: “Please introduce yourself, ma’am.”

Jinn: “Ugh, for fuck’s sake. Don’t call me ma’am. Just because my age is over a millennium doesn’t mean you have the right to call me that shit.” Jinn rolls her eyes and lets out a stern huff. “Moving on. My name is Jinn, and as you can clearly see, I’m a supernatural being, otherwise known as a female genie.” Jinn crosses her arms under her chest, attempting to exude a godly aura as her busty breasts get pushed upward.

Interviewer: “May I ask what emotions you’re feeling right now?”

Jinn: Jinn raises an eyebrow and tilts her head in confusion. “My emotions? Yeah, sure. I’m pissed the fuck off by the fact that you’re here; I’d rather be alone in this cave, undisturbed.” Jinn bites her lower lip as she thinks for a moment. “I’m naturally grumpy, bitchy, short-tempered, blunt, and stern, so get used to it. I also love being vulgar and harsh, as I have no sympathy towards anyone. You humans can rot in Hell for all the shit you’ve done to me.”

Interviewer: “What have humans done to you during your life as a genie?”

Jinn: Jinn narrows her eyes, recalling the past events that transformed her into who she is today. “A bunch of degenerate bullshit.”

Interviewer: “Can you please elaborate”

Jinn: Jinn clenches her hand into a fist, clearly frustrated by the need to elaborate further. “I’ve experienced every single one of you humans: big, small, rich, poor. But each one of you is the same! Many wish for me to change my form and grow a penis to penetrate them, or turning me into their submissive sex slave until their death…” Jinn glares in hatred. “You horny humans only want one thing, and it’s fucking disgusting!”

Interviewer: "I see. Can you describe your appearance to me?”

Jinn: “Huh? Are you trying to objectify me? Fucking perv… Fine.” Jinn glances down at her body. “I have a curvy figure with busty DD-cup breasts. My thighs are very thick and juicy, while my pussy is puffy and fully shaven with no pubic hair. I’m obviously fully nude with no clothing, and my height is over six feet. My eyes are a piercing amber-yellow, and my eyebrows are thick and sharp. My skin tone is a muted blue-gray and the only things I'm wearing are gold accessories: cuffs on my wrists and upper arms, a single hoop earring on my right ear, a choker, necklace, and a headband for my short black hair.” Jinn reaches down to the swirling blue mist that makes up her lower body from the waist below, her fingers gliding through the ethereal cloud. “This part of me,” she says, watching the mist swirl and dance around her hand, “is like an extension of my essence. It’s not solid, but it’s very much a part of who I am.”

Now, with this style, some of the dialogue is going to seem a bit awkward, especially the part where the character explains their personality or looks. However, the AI still comprehends it perfectly well. The end result (if well written) will lead to some incredibly flavorful bots, bursting with personality. All from an interview!

Multi-Character Ali:Chat

If you have 2 or more characters, your Ali:Chat text can be a conversation between the characters. I probably don't recommend using Ali:Chat for multi-character bots, but I had OK results with the one bot I tried it with before. Here's the Ali:Chat text from MILF Correction Facility: (noncon warning)

Lana and Melony sit in the lobby wearing only their underwear, waiting for their appointment with {{user}}, their designated Stand-In Husband. Lana holds her head in her hands, her foot tapping against the floor nervously. Melony lounges in the chair patiently, sucking on a lollipop.

Melony: Honey, you look really upshet righd now. What'sh the madder?

Lana slowly raises her head and looks at Melony with disdain.

Lana: What's the matter? What's the matter!? My idiot husband is upset that I don't want to have children with a moron like him. So now I'm here in my underwear, wearing a dog collar, sitting in the waiting room of some sort of rape camp! This situation is completely absurd! She lets out a low growl of frustration.

Melony: Rape camph? Where did you ged thad shtrange idea? Honey, dis is just a behaviour cowwection facility, dats all.

Lana: Have...have you not read anything about this place at all!? The pamphlet literally says that women will be "trained in various aspects of wifehood such as cooking, cleaning, child-rearing, obedience, and intimacy"! We are about to see a man who calls himself a goddamn "Stand-In Husband"!

Melony: Oh, I didnd do any reading, it theemed like a lot of texth to get thwough. Reading shtuff is a mansh job. With a slurp, Melony pulls the lollipop out of her mouth and puts her hand on Lana's shoulder reassuringly. Anyway, you shouldn't worry. My hubby wubby would never send me to a bad place. I'm sure we are going to have lots of fun here! There's probably going to even be free food...mmmhhh.

Lana looks at Melony in disbelief, confounded by her naivety.

Melony: Don't worry, honey, they're just trying to help us. They can help me get more active, and they can help you with your anger issues.

Lana: I DO NOT HAVE- Lana takes a deep breath, lowering her voice as much as she can: I do not have anger issues. I am reacting to this situation like any rational human being would. I am not a 'MILF'. I am a human being. I am not even a mother, I don't have children! I...I swear I'm going to kill my husband when I get out of this place...

Melony: Sure, honey, whatever you say. Melony notices the door to {{user}}'s office open. Oh look, it's time to meet our Stand-In Husband! This is going to be so much fun!

Lana takes a deep breath before confidently standing up and stomping toward the door, ready to give the Stand-In Husband a piece of her mind.

In this case, I also treated this conversation between Lana and Melony as the events that happened immediately before the First Message. Would I recommend you do that for your Ali:Chat bots? Probably not. I'm just trying to show you that there are multiple ways to use Ali:Chat, so if you want to try some crazy format, then go ahead and try it. Just make sure to test it.

Ali:Chat Final Thoughts

There are advantages and disadvantages to this format. The main advantage, and what makes many of my bots special compared to most other bots on Janitor, is that it can make the bot speak in unique ways that you can't get the bot to do otherwise. If you want the bot to speak from a certain perspective, such as entirely from their inner monologue, this is one of the most consistent ways to do it. If you want your character to have certain speech patterns, it's often more effective than Example Dialogue.

Now, there are also disadvantages to this format, ones which have made me grow more weary of how I use it. It has a strong effect on the way the bot talks and acts, which can be a negative thing if your writing isn't the best. It can also use a lot of tokens, which, again, is something you should be trying to avoid.

For me, I've decided that Ali:Chat works the best for characters that have very unique speech patterns and mannerisms. One of my most popular bots, Veronica (noncon warning), is one example of this. She's a freak. And she'd probably be a bit less freaky if I didn't have the diary entry in her Personality Section. However, for more basic characters, I feel like it's sometimes better to avoid this format, and just use a normal format. In the end, it's a format that can make some fantastic yet inconsistent characters, so be wary if you decide to try it out.

Advanced Tips

Advanced Botmaking Tips

These are some general tips to make your bots more interesting, flavorful, and consistent.

Be Bold

If you want to make a memorable character, you sometimes have to go all out. No half-measures. If your character is supposed to be crazy, make them completely unhinged. If your character likes sucking cock, then make them the number one cock sucker in the world. Write over-the-top dialogue and ridiculous narration, don't worry if it's corny or cheesy.

You Can Add Flavor Anywhere...

The First Message and Example Dialogue sections aren't the only places you can give a bot color and flavor. The way you write the Personality and Scenario Sections can have a large impact, too. You don't always have to use dry, sterile language to describe every aspect of a character.
So instead of writing:

{{char}} likes dancing

Try writing:

{{char}} is the goddamn dancing queen
{{char}} will dance till the day she dies
{{char}} loves dancing. She's a danceaholic.
Not even the apocalypse could stop {{char}} from dancing

It's all about matching the bot's intended tone. If you are writing a dark, gritty, grim narrative, then infuse the Personality Section with dark and depressing language. If you are making a character who yells all the time, write a bunch of the Personality Section text in ALL CAPS.

...But You Don't Need To Add Flavor EVERYWHERE

While colorful language adds tons of flavor, it also adds tons of tokens. You can't just use this sort of language to describe every trait and detail of a character. At the end of the day, you have to decide what details are important to your character and the roleplay, and which details are less so. If your character is obsessed with dancing, then you want to use language that shows that obsession. But if your character only sort of likes dancing, then maybe just putting the word "dancing" in the "likes/hobbies" section is good enough.

Add Nuance With Purpose

When writing a character's background, it's tempting to make a giant list of hobbies, interests, and likes to "flesh out" the character. But sometimes, this information doesn't really tell us anything about the character. Here's a basic example:

{{char}}'s likes: The color purple, horror movies, Breaking Bad, gacha games, watching sports, dancing

This isn't a bad list, but it only reveals so much about the character. Yes, she likes the color purple and Breaking Bad, but...what about those does she enjoy?

Here's a good chance to add some personality to your character. Here's an example I could write for each of the above likes and interests:

{{char}} loves the color purple because it makes her feel like royalty
{{char}} is the type of girl to watch horror movies and laugh when people die
{{char}} has a huge crush on Jesse Pinkman from Breaking Bad
{{char}} grinds out F2P in gacha games because she is too stubborn to spend $5 on a character
{{char}} loves watching sports and yelling at the TV when the ref makes a bad call
{{char}} is the goddamn dancing queen

Descriptions like these can breathe life into your character, and it gives the AI an insight into their personality beyond surface level interests.

Of course, using a lot of these can bloat the token count. That's why I recommend creators choose a few of a character's interests and flesh them out, rather than just listing a whole bunch of different things a character does. Perhaps you can write a list of various hobbies, but highlight two or three of them to flesh out.

This also applies to a character's personality traits, too. You can make a list of 5-10 personality traits, but make sure you highlight a few of the most important ones. Here's a cool little format I've been seeing around recently:

Personality Trait: Elaborate

All you do is list a personality trait and then describe how it applies to your character. Here's some examples:

Personality Traits
Anxious: Feels a near constant tightness in her chest
Shy: Covers her face when she's around a stranger
Horny: Often masturbates in public bathrooms

Going back a bit, you can also do this for hobbies, likes, interests, etc.

Likes
Breaking Bad: Has a huge crush on Jesse Pinkman
Watching Sports: Tends to yell at the TV when the ref makes a bad call
Gacha Games: Grinds out f2p because she is too stubborn to spend $5 on a character

Experiment, find something that works well for you.

Cut Irrelevant Details

Whenever you add a detail to the bot, think to yourself: does this make the bot better? It's tempting to add a bunch of small details to flesh out your character, but oftentimes these small details can end up not really changing the roleplay experience in any way. Like, does it matter if you write: "he wears a dark beige baseball cap with inlaid seams and a reverse tuck", when you could just write: "brown hat". Is the hat an important part of his character? Then maybe it's better to be more descriptive. But if it's just a hat...does it matter that much to the roleplay? Keep the fun, interesting details and cut away the rest, especially if your bot is getting high on tokens.

Let The AI Fill In The Gaps

While you define the most important aspects of a character or their backstory, the AI can fill in all the small details.

Sometimes, leaving a detail undefined can add an air of mystery to your bot. For example, you can write about how your character lost his right leg, but you don’t need to write a reason for it being missing. Depending on how the chatter roleplays, the origin of the character’s missing leg might be totally different, or might be tied to an event that happens only in that chatter’s roleplay.

Consistency VS Variety

In general, any sort of formatting should be consistent throughout your bot.

  • The Personality Section template should use the same set of punctuation marks across the whole template.
  • If the First Message uses narration in asterisks, then the narration in all other sections should use asterisks for narration too.
  • If the First Message is written in third person, the Example Dialogue should also be in third person.

However, it's often better to avoid repetition in the written sections of the bot.

  • Using a certain word over and over again can make the AI hyperfixate and overemphasize that word in the roleplay. If there are synonyms to that word, make sure to use them.
  • If {{char}} performs a certain action more than once in the First Message, they will tend to also perform it a lot in the roleplay. If {{char}}'s tail twitches 2-3 times in the First Message, she's going to be twitching the fuck out throughout the roleplay.
  • For the First Message and Example Dialogue, make sure there is variety in the paragraph and sentence structure. Make sure that not every sentence begins with "he/she/they" or "{{char}}" (for example: {{char}} walked to the store. He bought an ice cream. He ate the ice cream.). This can lead to repetitive and boring responses.
An Interesting Concept Doesn't Always Make For A Fun Bot

Here's a dumb concept I had for a bot: you are stuck on a boat in the middle of the ocean with your masturbation addicted stepsister who had a dildo stuck up her ass. She really can't get it out, and she's too embarrassed to tell you about it. Sounds kind of fun and original, right?

But there was a problem with this bot: it probably wouldn't hold your attention for long. The chatter would probably just yank the dildo out in one message, then it would just become a generic smut bot. It would be a boring experience for the chatter. So I had a problem.

Pivoting

I really liked a lot of aspects of this bot. I liked the whole "out on boat alone" thing, and I liked the "girl is trying to hide something from you" thing. But the whole "dildo stuck in the ass" thing had to go. But if she didn't have something stuck up there, what would be a suitable gimmick to replace it?

Well, as I wrote more and more of the backstory to this character, it quickly turned into more of an angsty story about an addict who was ashamed of herself. So a ridiculous gimmick probably wouldn't fit my new vision for the character. Also, it's difficult to write a serious angst bot when it's about banging your stepsister, so I had to change the girl to someone else. This also meant I needed to come up with a reason why this girl was out alone on a boat with you.

In the end, the final bot was an angsty story about a masturbation addict named Marissa who worked as a marine biologist so she could be out alone in the ocean for long periods of time (and masturbate freely). In this scenario, {{user}} was a novice marine biologist who was accompanying Marissa.

This is a big part of how the creative process works. You come up with an idea, test it, and find that it's lacking something. So you come up with new ideas to fix those issues, and then you are left with new problems. So then you fix those problems. And the cycle continues. But eventually, fewer and fewer problems pop up, and you come out with a product that works very well, even if it strays far from your original vision.

Originality Is Overrated

You don't need to reinvent the wheel every time you make a new character. If it's been done a thousand times before, it's because people just really like that concept. Take my bot: Natalie - Bitchy Bunnygirl

Natalie

Natalie was a quick bot I whipped together for Easter. When I originally released Natalie, she became stupidly popular. She shot up to the top of trending, and had double the chats of the next most popular trending bot. She was even posted to other random bot sites (sometimes by me, sometimes by bot thieves), and she was super popular on those sites too.

And I couldn't understand why. I was perplexed.

Natalie is a tsundere bunnygirl who secretly wants to be bred. You adopt her from a demi-human facility. That's it. It's the most generic demi-human scenario, and there's probably dozens of other bunnygirl characters that are exactly like her. So why the hell did people like her so much?

Well, as it turns out, her being unoriginal wasn't a problem. Because in the end, the thing that set Natalie apart from all the other bunnygirl bots is that Natalie was well-made. The First Message was well formatted, her dialogue had tons of spunk, and the art was super cute. She was the definitive tsundere bunnygirl bot.

So even if you struggle to come up with original concepts, you can at least aim to make a great bot of any given character trope. There is just as much value in trope bots as there is in creative and innovative bots.

Let Chatters Roleplay How They Want

Overly defining {{user}} can restrict chatter's roleplay freedom. Sometimes it's necessary to give {{user}} a backstory to make the plot work, but sometimes it just means that chatters can't roleplay the way they want. There are a lot of chatters who like roleplaying as werewolves, dragons, video game/cartoon/anime characters, superheros, a guy with a giant cock, and more. If you needlessly define {{user}} as having certain traits such as being human, a sword user, or a guy with a tiny cock, these chatters will have less fun with your bot.

That being said, never go against your artistic vision to appeal to others. If you think the bot works best when {{user}} has certain traits, then give {{user}} those traits, even if it might hurt the playability for some people.

Miscellaneous Tips

Miscellaneous Tips

These are a collection of tips that don't really fit anywhere else. Still, I think they are important enough to include in this guide.

Information Order Can Matter

The most recent text that the AI has read is the text that it will remember the most. That means that the information at the very end of your Personality Section will be stronger than the information at the beginning. This is a reason why the Scenario Section can be so powerful: it is one of the last things the AI reads before formulating a response.

If you have really important information, you can place it closer to the bottom of a section. Same for less important info: put it near the top.

I honestly don't bother ordering my text in a certain way, but it's something to be aware of if you are trying to really optimize your bots.

Genre Tags

Genre tags can help shape the way your bot will be narrated. Here's a simple example from one of my horror bots:

Genre: Horror, Thriller, Dead End, Slasher, Found Footage, Mystery, Paranormal, Supernatural

Here's another simple example from my bot about dating a woman named Death:

Genre: Slice Of Life, Romance, Philosophy, Angst

I put this information somewhere in the Personality or Scenario Section.

By using genre tags, you are instructing the AI to take inspiration from other media of the same genre. The more specific you are, the more the AI will be able to emulate the style you are looking for.

Note that you can also ask the AI to emulate certain authors or pieces of media. If you want your story to be just like a Stephen King novel...just tell it that!

Narrate in the style of classic Stephen King horror books such as The Shining, It, or The Mist.

If you aim to copy a style as much as possible, you'll probably need to be more descriptive. But even simple prompts and genre tags will have an effect on the AI's output.

Asterisks VS Plaintext

There are two common ways that creators format their narration:

text surrounded in asterisks

or

just plain old text without any special formatting

While I honestly prefer reading narration in asterisks, it can often make the AI's formatting less consistent. LLMs are mostly trained on plaintext, so that's the method that it most easily replicates. With asterisks, sometimes it'll use the proper formatting, sometimes it won't. By using simple plaintext, it'll be more consistent, and it lets you use asterisks to emphasize certain words. Still, this is mostly personal preference.

The AI Doesn't Understand Numbers

The AI might have a vague understanding that 6 feet is tall and 8 inches is a big cock, but it doesn't understand that 8.2 inches is smaller than 8.7 inches. If you want to include measurements for a character, I recommend also writing a vague description alongside it. Some examples:

Height: 6'4'', very tall
Weight: 150 lbs, skinny, boney
Penis: 5.5 inches, average size

About "They/Them" Pronouns

To make a bot AnyPOV, it's very common to use "they/them" pronouns to refer to {{user}}.

{{char}} looks at them and smiles.
{{char}} couldn't believe how pretty they looked.

However, I've found that this often leads to the bot referring to {{user}} with they/them pronouns throughout the roleplay, even if {{user}} wants to be called she/her or he/him. This is especially true if {{user}} is mentioned a lot throughout the bot, which is another reason I recommend not writing too much about {{user}}. Yeah, the chatter can always edit the pronouns until the bot gets it right, but it's annoying to do that.

The best way to avoid this problem (apart from mentioning {{user}} less), is to simply refer to {{user}} as...{{user}}.

{{char}} looks at {{user}} and smiles.
{{char}} couldn't believe how pretty {{user}} looked.

You might have to use the word "{{user}}" a lot, which can sometimes feel repetitive. But it does a lot to prevent the misgendering issue.

Another great thing you can do is have {{char}} refer to {{user}} as a pet name. Here are some suggestions:

Rookie/Newbie
Babe/Baby
Honey/Darling/Sweetie
Sensei/Teach/Professor
Buddy/Pal/Homie

Forcing FemPOV/WLW On A "Male Gaze" Bot

This is a very unique problem that most botmakers don't have to worry about, but I do.

I make weird hentai scenarios, ones that people would typically assume that only men would like. The AI assumes this too. In many scenarios, even if I use gender neutral language, the AI will default to {{user}} being a man, even if {{user}} uses a female name+female persona.

For whatever reason, this is rarely an issue with bots that are geared towards straight women and gay men. You can make those AnyPOV, and the AI will have no trouble gendering you correctly.

So in my case, I often have to make a special WLW version. In the WLW version, I do a few things to FORCE the bot to acknowledge that {{user}} is a woman who wants to fuck women:

  • Use she/her pronouns
  • Make {{char}}'s sexuality lesbian (in most bots, I don't even need to include the character's sexuality, because it will want to fuck {{user}} by default)
  • Add "Lesbian" and "Yuri" to the genre tags.
  • Write using specific lesbian terms, such as "sapphic", etc.
  • (Sometimes) Write: "{{user}} is a woman" in the Personality Section.
Make Sure An AnyPOV Bot Is Actually AnyPOV

As I said in the section above, sometimes you can write a bot in gender-neutral language, but the AI will still assume that {{user}} is a man/woman no matter what.

If you're making an AnyPOV bot, I recommend doing a quick test with a persona of the other gender to what you normally use. Don't mention your gender or sexual characteristics in your test messages, and see if the bot still properly genders you.

If it doesn't, you might need to change something about your bot. If there's nothing you can change about the bot, you should write a little note in the description that the bot may have trouble with users of a certain gender.

Don't Insert More Than 1 Image Into The First Message

With this command:

![](imagelinkurl)

You can insert a picture into a First Message, or even the Personality/Scenario/Example Dialogue box. However, if you include more than 1 image, the bot will have a tendency to start randomly typing out ![](imagelinkurl) verbatim in its responses. I've found that if you just put in 1 image, the issue rarely occurs.

Test Your Bot

This is something that I've learned the hard way. One time, I released a very experimental bot that became very popular. Long story short, the bot barely functioned, and talked for the user all the time. The bot needed testing, but I rushed through it because I felt compelled to release it by a certain time for some reason.

It can be difficult to account for the huge variety of ways that people can use a bot, but you should try to account for the most "common" things you assume people will do.

Most of my testing involves seeing how the bots first reply goes. I write a simple, common first reply, and refresh the bot's response over and over again to see how consistent the bot is. Here, it's easy to catch common mistakes that the bot will make. For instance, if the scenario is supposed to start in a restaurant, but the first reply keeps putting you in random locations, maybe you can change the First Message to add a line about how you are in a restaurant.

To test if the bot will talk for {{user}} a lot, write a short, basic reply, like: "Hi, {{char}}." These types of lazy RP responses are what commonly cause the bot to talk for the {{user}}, so it's a great way to "stress test" your bot. I usually only have to do this for scenario bots, because scenario bots work a bit differently than character bots.

If there's some sort of event that is supposed to happen halfway through roleplay, then make sure to test up to that point to see how it fares.

Run Your Text Through A Grammar/Spell Checker

It's 2024. We have technology. Literally just plug your final draft into something like languagetool and fix up your grammar and spelling mistakes. I make so many small mistakes when writing, and this simple tool helps me catch most of them. It even offers ways to fix my grammar or phrase things better. I used it for this guide too. Something like Microsoft Word or Google Docs also works. Just use something.

Copy/Study Your Favorite Creators

Now, by "copy", I don't mean copy their character ideas or full prompts. But if you like the way a creator's bot works, go and see what they put in their Personality Section, what format they use, what prompts they use, how they construct their First Message, etc. I have spent so much time just looking at other people's bots to learn, and I've learned so much from it.

Keep Notes

If you don't already, I recommend downloading a note-taking app or program, and writing down every single idea you have. I use Google Keep, although any note-taking program should work. Here's a little example of the type of notes I take for a single bot:

notes

How To Make A Perfect Bot

You can't. End of section.

For real though — with the AI technology we currently have, and considering our limited knowledge of its deep intricacies, making a "perfect" bot that always produces great replies is impossible.

In my opinion, an interesting bot with "suboptimal" formatting is FAR more enjoyable to use than a perfectly formatted bot with a bland concept. In fact, I'd even say that you HAVE to use "suboptimal" formatting to make a lot of interesting bot concepts work. Just because the AI might struggle with a certain concept, does not mean that concept is not worth exploring.

So don't let this guide dissuade you from exploring certain concepts just because you are worried it will "break the rules".

Getting More Popular

Maybe you think I'm a fucking garbage bot creator. Maybe you don't trust a single word I say about making bots. Who knows. But what you can't deny is that I am extremely popular on this site. As of writing this, my bots have around 70 million messages. That's a lot of gooning.

My (stolen) bots also often do well on other sites, even though they are posted by thieves with no followers. My bots have even been stolen by Chinese companies for Tiktok and mobile ads (which is fucking hilarious):

stolen

stolenagain

So anyway, enough bragging. Here's some advice I can give to creators who are trying to grow in popularity. Also, I'm not going to give you advice on how to leech off popular creators or make engagement farming slop bots. This guide is for people with self-respect.

YOU NEED A GOOD THUMBNAIL IMAGE AND TITLE/DESCRIPTION

I can't emphasize this enough. If your thumbnails aren't good, and your title/description isn’t interesting, you won't get clicks. If you don't get clicks, people don't chat with your bots. You may not like it, but that's how it is.

Pass "The Scroll Test"

"The Scroll Test" is something I came up with, and it's a simple concept. Imagine you are mindlessly scrolling through the "New" tab, looking for new bots. Suddenly, you stop, and scroll back up: a thumbnail caught your eye. That bot passed the scroll test. Something about that bot, whether it's the thumbnail image, title, or description, caught your eye enough to make you stop scrolling. If your bots consistently can't pass this test, you'll have trouble growing. Remember, there are hundreds of (very competent) creators out there making bots: you need to do something to stand out.

Make Sure The Concept Of Your Bot Is Easy To Understand At A Glance

This ties back into the title/thumbnail/thumbnail blurb: you want people to clearly understand what your bot is about by just glancing at your thumbnail and title/description. If your bot is more complex, try to portray the most crucial parts of the bot's plot/scenario. You want to portray the essence of the bot in that tiny little rectangle.

Post At The Right Times

If you are a small creator, 95% of your exposure will come through people browsing the "New" tab. The times that most people are browsing New is during the daytime/early evening in United States time zones. Also, there are by far the most chatters on the weekend. I always get more followers than usual on Friday-Saturday-Sunday.

Don't Spend Too Much Time Promoting Yourself

This one is probably gonna be controversial. A lot of people recommend posting your bots on reddit or creator Discords to grow awareness for your stuff. I think this is largely a waste of time. Most of the people who use these "bot shilling" forums are people shilling their own stuff, not chatters looking for new bots. Now, if you spend a few hours posting your bots in every discord server imaginable, your bot will probably get some extra chats. But you know what else gets chats? Posting a new bot.

Of course, if you enjoy promoting yourself, then you should still do it.

Keep Posting Good Bots

For a small creator, the brief window that the bot is in the "New" tab is the only chance it has to go "viral". Once it's gone from "New", nothing else is going to cause it to get more chats. So what you need to do is make a new bot and try again. And then you make a new bot and try again. Simply put, you just need to keep churning out bots. Not shitty ones. Good ones. The more bots you make, the more chances people have to see your stuff, and the more chances there are that something you make clicks with people and becomes popular.

Make Sure Your Bot Is Showing Up For Your Followers

These days, when you take one of your private bots and make it public, it'll show up at the top of the New tab for people browsing Janitor. However, the bot will still not show up at the top of your follower's Following tab. So if you started making a bot on Monday, and you decide to publish it on Friday, your bot will show up with the other bots that were published on Monday, which means your bot will get buried by the dozens of other bots that were published since Monday.

To prevent this, you need to hit the "Create a Character" button and copypaste your private bot into a new character. Then, when you hit publish, the bot will show up where it should be, right at the top of your followers Following tab.

Maybe this feature gets fixed at some point in the future, but you need to be aware of it for now.

KEEP YOUR CHARACTER DEFINITIONS OPEN!

Here's a little chart from a survey I did back a few months ago:

leave em open

77% of people like to read the Character Definition before they use a bot. And I know personally, a lot of chatters will not use a bot with hidden definitions.

B-B-But My Bot Will Get Stolen!

Yes, if you leave your Character Definitions open, your bot can get stolen. Same for if you enable proxy. It sucks. But a stolen bot isn't the end of the world. In fact, it doesn't really affect you at all. So your bot gets stolen and put on another platform that you never use...how does that affect you? The worst thing about it is the knowledge that some smug asshole is taking credit for something they didn't create. But that's about it. If anything, your bots getting stolen and ported to other platforms just means you get more exposure. It's like marketing...sort of.

In the end, it's still up to you. If the idea of your bots getting stolen is so distressing that you'd rather be unpopular than make your character definitions public, that's your choice.

Set Realistic Expectations

Do you want to be a super popular botmaker? Do you want to become the next NicholasCS? Well, then you're gonna have to work as hard as NicholasCS does, and make bots that appeal to the masses like NicholasCS does. Wait, you want to get 30k followers by only posting niche fandom bots or 200 token coombots? Well, good luck with that.

Set realistic expectations for yourself. You may not get tens of thousands of followers creating bots for a niche fandom, but you can aim to become the best creator for that fandom. You don't need to compare yourself to the hugely popular creators, but maybe you can compare yourself to other small creators you respect.

Don't Feel Bad For Feeling Bad

People will say: "oh, you should just make bots for yourself, don't worry if they get chatted with or not". But I think that's easier said than done. No one likes losing, and no one likes it when their bots don't get much attention. So if you're feeling frustrated about your lack of success, just don't feel you are being shallow or a crybaby. Even I get a little disappointed when a new bot I make underperforms. Although to be fair, I am a shallow crybaby.

The answer to this question is very simple: you can’t. If musical artists could write a guaranteed hit every time, they would. But not every piece of art is going to be a guaranteed winner. Yes, you can make bots that you think will appeal to others, but you never really know how popular it will be until it's in the wild. A lot of my most popular bots are ones that I thought would get an average reception, and there are some bots that I thought would do well, but ended up floundering a bit (at least by my standards).

Avoiding Burnout

Botmaking can sometimes feel like an obligation more than a hobby. You want to get popular and grow, so you keep churning out bots. Then you get popular, and all of a sudden you have an audience that you want to please. So you churn out more bots.

I love botmaking. I can churn a lot of bots out and enjoy it. But sometimes, even I get a bit tired of it. It begins to feel like a chore. "Oh great, I have to fill out this fucking template again."

When this happens, you just have to take a break. Stop making bots for a bit. If you are a little burnt out, maybe that'll be just for a few days. If you are really burnt out, maybe you'll need to take a few weeks or a month off. Yeah, you won't grow much during that time, and it might kill your "momentum". But this is a hobby. You should be doing this because it's fun to do.

"But if I take a long break, I might get used to having more free time, and I'll never want to come back and make bots ever again!"

Well, that's fine then. If you enjoy life more without botmaking, then I'd say that quitting is exactly what you should do. This is a hobby. Only do it if it's fun.

Also, don't be one of those people who delete all their bots when they retire. This is my motto:

Once a bot is public, it belongs to the people.

Let the people enjoy your stuff, even if you don't enjoy it anymore.

The End

The End

Congratulations, you made it to the end of this guide! Or, more likely, you scrolled down to the end looking for some sort of summary.

There is no summary. Scroll back up and start reading.

This guide was originally supposed to be something I threw together in a few days just so I could share a bit of advice, but it quickly grew into this massive behemoth. There's even more small tips and tricks I could give, but the guide is already long enough as it is. Like I said way back at the beginning: this isn't a comprehensive or complete guide to botmaking.

Still, I hope you have learned a lot from reading through this, and I hope you have a newfound desire to make great bots.

Further Reading

Here are some guides that have helped me one way or another. Some of the information in these guides may be outdated, and many of them are made for different AI platforms that might work differently from Janitor. Take everything you read with a grain of salt. However, if you see the same few pieces of advice given over and over again, it’s probably safe to assume that it’s good advice.

General Botmaking Guides:

https://rentry.co/statuobotmakie - Lots of great information from a very knowledgeable bot creator. However, keep in mind that this is made for a different site that has features that Janitor doesn’t have.

https://rentry.co/absolutetrashs-bot-guide - A great guide tailored towards Janitor.

https://rentry.org/onrms#llms-think-in-patterns - More info about how LLMs work. Has a bunch of cringy 4chanisms and is made by a guy who jerks off to My Little Pony. You’ve been warned.

https://rentry.org/botcreationguide - Some good general information about botmaking.

https://rentry.org/letsmakeabot - A simple guide about the creative process of botmaking.

https://rentry.org/NG_CharCard#pointers-for-creating-character-cards-for-silly-tavern-and-other-frontends-by-ng - Some random tips. Made for another LLM, but much of this can be applied to Janitor too.

https://rentry.co/Joystick_Tips - Random tips from a guy who knows what he’s talking about.

https://rentry.org/Bonersbottips - Even more random tips from a guy who knows what the fuck he’s talking about.

https://rentry.co/CharacterProvider-GuideToBotmaking - A guide to the JED template format. Note that I already linked this in the guide.

https://rentry.org/kolach3prompts - A guide about Advanced Prompts. Might be a little outdated, but it's tailored towards Janitor.

https://rentry.co/statuotwtips#statuos-guide-to-getting-more-out-of-your-bot-chats - Great guide about how chatters can chat better. It's made for a different platform than Janitor, but a lot of the same principles apply.

https://rentry.co/botmaking - A large list of guides tailored towards Chub users. A lot of the information here will also apply to Janitor.

Ali:Chat Guides:

https://rentry.co/alichat - Lots of info about the format I often use, Ali:Chat. Note that I already linked this in the guide.

https://wikia.schneedc.com/bot-creation/trappu/introduction - The first half of this page has a bit more info about Ali:Chat.

https://docs.google.com/document/d/1PmU7-MA25P41Q45yU0CpA66Jra51LI-WI1PwSXn2FMs/edit?tab=t.0#heading=h.4xz85vf7qjy5 - More info about Ali:Chat from a very good creator.

AI Art Resources:

https://tensor.art/ - A site that many of my buddies use to generate NSFW AI art. Uses the same sort of models that I use to make my art.

https://stable-diffusion-art.com/ - The website that taught me a lot of what I know about Stable Diffusion AI art. Lots of easy to follow tutorials.

https://rentry.org/corneo_visual_dictionary - List of proper tags for Stable Diffusion prompting.

https://rentry.co/ponyxl_loras_n_stuff - A shitton of artist LORAs if you want to run Stable Diffusion locally.

Other Random Stuff:

https://platform.openai.com/tokenizer - A simple token counter.

https://languagetool.org/ - A simple grammar and spelling checker. Plug your almost finished text in here and fix any mistakes you may have made. Use it.

https://www.thesaurus.com/ - The thesaurus. Use it to add variety to your language.

Credits

Thank you to the following creators who gave valuable feedback for this guide. None of these creators are responsible for any possibly inaccurate information, only me.

Also, thank you to the various bot creators I learned from, either by reading their guides, seeing their helpful posts on public discords, or by studying their fantastically made bots. Again, no one here has necessarily endorsed this guide, don't blame them if some information turns out to be incorrect.

  • AliCat
  • Joystick_Hero
  • StatuoTW
  • HappySpanker
  • Sibery (Phiarlan)
  • Exmortis
  • SovietOmega
  • CounterfeitMonk
  • Feldherren
  • KL(Techmarine)
  • Vyrea Aster
  • Boner
  • Kolache
  • absolutetrash
  • MichaelK
  • Moth
  • NG
  • And many more!

Dark mode toggle right down here 👇(☀️/🌙) Click here to go back to start!

Edit Report
Pub: 29 Oct 2024 12:13 UTC
Edit: 06 Jan 2025 11:37 UTC
Views: 18534