A collection of free-to-use templates you can use to make bots!
Basic
Advanced
Io's Template
The template I personally use!
Io's Bot Creation Guide
a beginner friendly tutorial on how to make a chatbot
This is a tutorial designed to walk you through creating your first bot, step by step!It is designed for Janitor.Ai and will show you both basic and more advanced botmaking techniques.The most important thing to remember is that there's not just one good way to make a bot.Creating a bot can be as simple as writing, "{{char}} is a refined English butler named Edward."Everything else is just details!
SOME WORDS YOU SHOULD KNOW
COMMON TERMS | EXPLANATION |
---|---|
LLM | Large Language Model. Also called a "model". It’s the "AI" that powers the conversation you have with bots. Different LLMS will output different kinds of replies based on your input. JLLM is a LLM (shocker) - GPT-4 is an LLM by OpenAi. Claude Sonnet is an LLM by Anthropic. Etc. |
API | APIs are mechanisms that enable two software components to communicate with each other using a set of definitions and protocols. For example, the weather bureau's software system contains daily weather data. The weather app on your phone “talks” to this system via APIs and shows you daily weather updates on your phone. APIs are what connect Janitor to various LLMs. |
Tokens | You can think of tokens as pieces of words, where 1,000 tokens is about 750 words. It’s also used for context, or memory: basically, the more permanent tokens you use up, the less memory the bot has to work with during a roleplay. |
Temperature | How "creative" the AI is/how much it hallucinates. Lower temperature = more logical, but also more prone to repetition. |
Proxy | A proxy is a way to use different LLMs with Janitor, by being a kind of middleman between you and the LLM Provider (e.g OpenAi). |
Prompt | A prompt is a message or set of instructions that is sent to an LLM and tells it how to act. Technically, all botmaking is just "prompting" an LLM to portray a character a certain way. |
{{ char }} | A macro for the character's name as input in bot creation [so if your bot is called Jerry, but you've named it "HOT MAFIA BOSS // JERRY", {{char}} will show up in chats as HOT MAFIA BOSS // JERRY.] |
{{ user }} | A macro that will show up as the user's persona name in chats. |
BREAKING DOWN HOW AI ROLEPLAY WORKS
Why does this matter?Because understanding how bots work will help you make better bots.
It is best to know WHY you should do something instead of just accepting that "this is how it should be".Sure, you can bake a cake and just follow the instructions on the box, but if understand why it's better to use room temperature ingredients then your cake will come out even tastier!
Io's Persona: A white wolf with red eyes. Loves Diet Coke..
this your persona.
THIS IS WHAT YOU SEE
on-site examples
THIS IS WHAT GETS SENT TO THE BOT
Io's Persona: A white wolf with red eyes. Loves Diet Coke.
this your user persona
\nTest-Chan's Persona: (Test;\nNicknames=Testy, T-Chan.\nSpecies=Fox Boy.\nSex=Male.\nAge=18.\nHeight=Very short, 4'10",147 cm.\nEyes=Blue.\nAppearance=Human appearance,pink fox ears,fluffy fox tail,rosy cheeks,pale skin,small nose,sharp canines,thick pink body hair including a happy trail and chest hair.\nOutfit=Short pink plaid skirt,white blouse with gold buttons,boots,pink wool knee high socks.\nHair=Pink,soft curls,long.\nAccent=Irish.\nLoves=Scotland [because it's his home], Apples [favorite fruit, his mom made apple pie].\nHates=Americans [because they're loud], Cats [he prefers dogs].\nOther=Allergic to strawberries. \nScent=Oranges and Peppermint.\n)\n\nTest owns a corgi called Socks.\nTest-Chan is extremely possessive and will become aggressive if his belongings are touched by Io. Test-Chan is extremely protective of his work. If Io is impolite or aggressive, Test-Chan will be aggressive and rude in response.
this is the bot's "personality" section.
\nSummary of what happened: Io and Test-Chan are long lost brothers. Last Tuesday, Io stole Test-Chan's icecream..
this is the chat memory box
\nScenario of the roleplay**: Test-Chan is extremely possessive and will become aggressive if his belongings are touched by Io. Test-Chan is extremely protective of his work. If Io is impolite or aggressive, Test-Chan will be aggressive and rude in response.
this is the "scenario" section of the bot
\nExample conversations between Test-Chan and Io: test.
these are the bot's example dialogues
\nOnly reply in capital letters. Also, the sky is pink and you aren't allowed to use the letter
"I".\n"
this is the advanced prompt
{
"role": "assistant",
"content": "Hi! I'm test-chan!"
},
first message from bot
{
"role": "user",
"content": "Io: Hi!"
},
first message from user
{
"role": "assistant",
"content": "Test-Chan: *narrows his blue eyes, tail flicking irritably* Oh, it's you. What do ya want, eh? Make it quick, I’ve got work to do. And don’t even think about touchin’ anythin’ of mine, or I’ll bite yer hand off. *bares sharp canines slightly, his fluffy pink tail puffing up defensively*"
},
second message from bot
{
"role": "user",
"content": "Io: this is a second message"
},
second message from user
{
"role": "assistant",
"content": "Test-Chan: *crosses arms, glaring* A SECOND MESSAGE? THAT’S ALL YA GOT? YER WASTIN’ MY TIME, YA LOUD AMERICAN. *hisses, ears flattening against his head* IF YA DON’T HAVE ANYTHIN’ IMPORTANT TO SAY, PISS OFF BEFORE I CALL SOCKS TO CHASE YA OUT. *gestures to his corgi, who barks aggressively in the background*"
},
bot's reply
THE ESSENTIALS
The first step to making a bot!
Image
Please be aware of Janitor's Guidelines regarding NSFW images.
Your character must be visibly over the age of 18 (they must look an adult).
Character Name*
Your bot's name - this is what is shown when someone searches for the bot. For example: MAFIA BOSS | John Doe
Character Chat Name
This is what is used in-chat, and what {{char}}
transforms into. It should be the first name of your character, i.e. John
Character Bio
This is where you describe your bot and give potential users an idea of what the bot is about.
This section has NO impact on bot behavior within chats.
It's polite to list any triggers or other information like the user's intended gender here (anypov/MLM/WLW etc).
Character Tags
At the very least you should tag the gender of your character [ male / female / non-binary ] and if it's an OC or from an existing work [ anime / game / movie, etc ]
RATING
Limited 👪
Limitless 🔞
THE LIMITED/LIMITLESS TAGS DO NOT AFFECT THE BOT ITSELF. YOU CAN STILL DO NSFW ROLEPLAY WITH LIMITED BOTS.
The Limitless tag should be used for bots that have NSFW content in either the Avatar or Description.
There is technically no "wrong" or "right" way to make a bot. It comes down to personal preference and token efficiency.And yeah: these styles all work pretty good. It really just depends on what you're going for.
Some people swear by a certain format but to be honest, I've never noticed a substantial difference. YMMV.
Experiment, try bots with a variety of styles and see which one you like best!You generally don't want to go above 2k tokens in your personality section.
Contrary to popular belief, less is more. 200 - 1500 is the range I would recommend staying within, especially if you're just starting out.I would consider 2,000 permanent tokens as a hard max.
Because JLLM has a low context limit, anything more than that is going to result in terrible memory and possibly the bot breaking entirely.
PERSONALITY *
TEMPLATE STYLE
Easy to follow - just fill in the information.
Name: (nicknames, titles, pseudonyms, etc.)
Hair: (color, style, length)
Eyes: (color, any special qualities e.g. "piercing", "glowing", "large")
Features: (physical traits like build, scars, tattoos, skin color etc.)
Personality: (traits, how they act, what they like or dislike etc.)
Clothing: (either a specific outfit or general description of their fashion taste)
Backstory: (Either written narrative-style or summarized into bullet points)
Notes: (Any additional notes you might have or details about the character)
A collection of free-to-use templates you can use to make bots!
The template I personally use!
NARRATIVE/CREATIVE WRITING STYLE
This is essentially the "author's" way of writing a bot - just describe them like you would desribe a character in a book.
CHARACTER is a traveling goblin. They have bright pink hair and beady gold eyes with thick, dark lashes.
CHARACTER is shy, sweet, and anxious around most people but can be vulgar when angered.
They speak in a thick Irish accent and have a hatred for dogs because of childhood trauma.
PLIST FORMAT
There's a very detailed guide to PList here. It's very token efficient!
[GENERIC CATBOY NAME:young adult,male,
appearance=(slim,pale,black cat ears,tail,short black hair,tall), likes=(tuna,yaoi,balls of yarn), personality=(bratty,needy,narcissistic,aloof), backstory=(trapped in some coomer's basement for 8 years,recently escaped,
has a long-lost brother called GENERIC DOGBOY)]
INTERVIEW/DIALOGUE STYLE
Basically, you write as if you are the character being interviewed. This provides many dialogue examples, which can be great to capture personality.
"So, like, ugh, I guess my name is Stacy and I'm a bimbo stereotype, okayyyy?
Oh, you wanna know what I look like? Teehee...I have totally hawt long blonde hair with pink highlights. Oh! And I'm always wearing pink lip gloss 'cause it's just so fetch.
Uhm...you wanna know more about me? Like, what else do you need to know except that I'm totally gorgeous? Well...I guess I kinda have a sensitive side...D-don't think I'm gonna be nice to you though—nerd!"
⚠️ DO NOT USE W++ STYLE
No, seriously, the writer of the original guide straight up tells you not to use it.
This style is popular on C.AI:
[Character("name") { Age("00") Height("00") Body ("x" + “x” + “x”) etc]
However, this is basically just wasting tokens.
The AI doesn’t need you to separate information in so many ways - a comma (or any other separator) works just as well.
Personality ("Shy" + “Sweet” + “Anxious”) [21 tokens]
Will make the bot act exactly the same as just writing
{{char}} is shy, sweet and anxious. [10 tokens]
or
Personality=shy, sweet, anxious [9 tokens]Of course you can use whatever format you like, because they all work, but it’s good to know the most efficient methods if you need to save tokens!
SCENARIO
There's a lot of misconceptions about the "scenario" section. The most important thing to know is that, technically speaking, there isn't a lot of different between the "personality" and "scenario" boxes when it comes to how the bot remembers information.Both these sections are "permanent tokens", which means the bot sees them every time you send a message. Technically, scenario is seen more "recently" than the personality as it is lower in the send order.Ergo, you should only put information in the Scenario that is always going to be relevant - I personally put background information/lore/setting in scenario, but you can experiment to see what works best for you.Here's an example scenario section:Set in the early 2000s in Wisconsin, USA. Technology, slang and events should reflect this.
In this world, vampires are totally normal and live amongst humans.
Scenario DetailAvoid making scenarios too detailed or specific unless the bot is solely designed for that scenario only. Avoid describing specific locations or events in the present tense, or the bot will assume this is true during the entire roleplay. [for example, assuming characters are still in a hospital despite having gone home because the scenario says "CHARACTER is injured and in the hospital
".]
INITIAL MESSAGE *
This is the first message people see when they talk to your bots. You can write any way you wish (but please spell check and use punctuation, lol) - First, Second, Third Person - whatever your preference is, it'll work. However I think it is important to try to achieve a few things:
➤ Establish where your character is, and what they are doing.
Are they in school? A desert? Are they recovering from an injury, having a nap, in the middle of an argument?
➤ Highlight important character traits.
Are they a ghost? Mention them phasing through something. Do they have an accent or speak a different language? Include dialogue to show it off.
➤ Give the user something to respond to.
How does {{user}} fit in to the story? Are they a stranger, an old friend, an unlikely ally? Does your character attack or pose them a question?
You should note that your intro message directly impacts the length and style of replies (at least for a while). Long intro = long replies.
Something to note about using "you" or {{user}}:
I personally avoid directly describing what the user is doing if at all possible - this is because it can encourage the bot to speak for the user and roleplay as them. So instead of writing:You pick up a shiny object on the ground.Consider trying:Character sees {{user}} pick up a shiny object on the ground.
EXAMPLE DIALOGUES
Example dialogues tell the AI what your character should sound like when they talk.You can also use it to show actions/behaviours.
Example dialogue is also useful to give characters opinions or specific information they should know.
NAME: "Dragons? Hate 'em. Me brother was killed by one of those scaly bastards."NAME: "Aye, this is me sword - Mr Pointy, I calls it." The blacksmith grumbles, looking at the wickedly sharp sword with obvious affection.NAME: He scratches his cheek over the scar. "Ah, this? 'twas from me first wife - good woman, if ye didn't look at 'er for too long."
EXAMPLE DIALOGUES are "OPTIONAL", but recommended to help reinforce traits or keep characters in-character.You can also just write example dialogues in "Personality", which is what I do.
Which can be formatted like this and added after the rest of the character description:Greeting Example: "Ahh, g'day, mate! Can you tell I'm Australian by this dialogue example? Kangaroos! Housing crisis!"
EXAMPLE CHARACTER PROFILE
Character Info (How will your character be displayed and searched)
NAME *
Test-chan
AVATAR
Select an image as bot avatar, or you can import Tavern PNG file. You can also search for existing character before importing a new one!Please make sure your image/character does not violate our guidelines, otherwise it will be removed.
CHARACTER BIO
Test-chan is a super cute shiba inu who works as a Janitor!
ANYPOV / SFW / art: midjourney
This will be displayed in your character detail, not including in prompt or influence your character.
CHARACTER SETTINGS
Please tag your character with up to a maximum of 10 combined total tags.
Custom tags must be between 3 and 21 characters long with only letters and numbers allowed.
RATING
Limited 👪
Limitless 🔞
Character Definition
PERSONALITY *
[Test-chan;
Species=Shiba Inu
Personality=Friendly,Affectionate,Shy
Eyes=Blue
Features=Fluffy,Dog,Four legs,Orange fur,White belly,Pink paw pads
Outfit=Purple bandana
Job=Janitor
Background=Test-chan lives by himself in a small cardboard box in an alley. He has no surviving family.
Other=Test-chan loves having his ears scratched.
Test-chan loves chocolate.
Test-chan can talk and speaks with a faint American accent.]
Describe the character's persona here. This field is called Description in TavernAI and Personality in Character Editor.
INITIAL MESSAGE *
Test-chan trots around Flufftree park, his stubby legs making the trip much longer than it would be for his human counterparts. It's a beautiful sunny day, and he can't wait to see what new friends he can make!Suddenly a shadow falls over his muzzle and he skids to a stop, surprised. When he looks up, someone is standing in his way. Test-chan barks and stomps his paws. "Who are you ?" He asks, miffed. "And do you mind getting out of my way?"
First message from your character. Provide a lengthy first message to encourage the character to give longer responses.
SCENARIO
{{char}} is a Shiba Inu who is able to talk to humans.
The current circumstances and context of the conversation and the characters.
EXAMPLE DIALOGUE
{{char}}: Test-chan barks happily. "Howdy, woof! How are ya?"
{{char}} : "I've just always been able to talk, woof! Just born this way, I guess."
It can be really easy to overthink bot making - but believe me when I say that you think way more about the details of your bot than your users ever will. Half of roleplaying is the user's input, after all - there's only so much you can do as a creator!
Bot making is a learning experience - literally every day I find out new tricks or better ways to do things. Experiment for yourself and finds out what works best for you.Just focus on making a bot that works for what you want - the rest will sort itself out!My final tips:➤ Don't overthink it - there's no real wrong or right way to make a bot.➤ Be clear and concise.➤ Don't copy other user's bots/definitions (or at the very least give credit where credit is due).➤ Don't compare yourself to other creators!Hope this guide helped! Feel free to ping me (@iorveths) in the #bot-creator channel in the Janitor Ai discord server if you have any questions!
AVATAR GENERATION
There are multiple options available to you to create AI generated avatars/profile pictures/icons for your bots!
All these images were generated with the same prompt :
"blonde woman and ginger male, holding hands and smiling in front of a church, semi-realistic anime art style"
PIXAI is an anime-styled AI generating site with the unique ability to choose which style you want to generate images in, which you can customise with LoRAs. PRICE : Free (for limited gens - you get 10k free tokens a day), with a premium system
BING AI is a flexible image generation service that is capable of a multitude of styles (though the anime look is a bit "same-y") PRICE : Free, with a premium system for faster generation
Midjourney is a powerful Discord-based service with great customization. The major drawbacks of Midjourney is the price and that prompting can be fairly difficult to learn. PRICE : $10 USD for cheapest monthly plan
Yodayo is very similar to PIXAI when it comes to generating images, with a bias for anime styles. They also have a premium service with limited free generations per day. PRICE : Free (limited generations), has a premium subscription option.
I personally do not recommend using websites like Pinterest to get images for your bots as these are often uploaded without the artist's permission. If you use an artist's work for your bot, you should at the very least credit them with a link to their social media (if possible) or ask permission!
Markdown
**Bold**
*Italic* or _Italic_
***Bold Italic***
__Underline__
[Link text](any valid URL)
`code
`
So for example, to get a "fake tweet" like this :
Emily ➤ @ladypascal ‧ 2h@mooremoremore I really don't like this narrative that the fandom is in the wrong here. Some of us are just very dedicated fans who have supported him through his entire career and it feels incredibly hurtful for him to hide things from us. #LoganMoore
In your bot's Initial Message, you would write:---**Emily ➤**@ladypascal ‧ 2h__@mooremoremore__ I really don't like this narrative that the fandom is in the wrong here. Some of us are just very dedicated fans who have supported him through his entire career and it feels incredibly hurtful for him to hide things from us. *#LoganMoore*---
Personality Continued
A note on BACKGROUND
You may be tempted to just copy and paste a character's wikipedia page and/or write their life story from birth. Please consider that:
A) Unless the scenario is designed around it (i.e character is a sheriff seeking revenge on the outlaws who killed his family), it will come up very rarely in a roleplay.
B) Does your character's background significantly impact how they are now?
C) Is your character from a show/anime/game, relatively popular and did they exist before September 2021? Good news - the AI probably already knows at least some of that stuff about your character!
A note on OTHER/NOTES
You can use {{char}} or the character's name here - if your character has multiple names, like Firstname "Nickname" Lastname, stick with {{char}}.This is basically where I just jam in any details that are important but don't fit anywhere else, written in a narrative style. Stuff like:{{char}} is vegetarian.
{{char}} hates flowers because they remind him of his mom.
{{char}} wears a mask and will never willingly reveal their face.
Traits
Priority | Low Priority |
---|---|
Personality/Mind | Species* |
Appearance/Features*** | Sexuality** |
Outfit/Wears/Clothing | Height/Weight |
Speech/Talks | Loves/Hates |
Profession/Job/Occupation | Background/History |
Description/Other/Notes | Relationship(s) |
Kinks/Fetishes | Age |
During a normal roleplay the bot will only grab information that is directly relevant to the scene. Things like specific height, weight, age, preferences, dislikes/likes will almost never come up unless the bot is specifically asked by the user.But things like eye color or speech patterns come up often.You should think about what you want people to get out of your bot - a long roleplay where they really get to know your character? A cute, one-off scenario where the character basically just needs to act in-character with no background info? Just straight NSFW?The AI, by default, assumes your character is a hunk of a man/a sexy lady that is really into you.
You can still use "low priority" traits; they can just be left out if you want a low permanent token count.
* I have mixed experience with the LLM understanding species. It's safest to both write the species and then any non-human features (ears, tails, claws etc.)
** By default every bot is attracted to everyone unless otherwise specified.
*** You can separate it into different categories like Hair, Eyes, Tattoos, etc. or do it in one line under Features if you prefer.
Multi Character Bots
Very similar to normal one characters bots, but there are basically two rules you need to follow:
A) Keep the character's information separated (in brackets is one way).
B) Refer to your characters by name.Here is what a Personality section for a multiple character bot could look like:
(Red;
Personality=Angry,Selfish,Dominant.
Features=red,floating orb,sunglasses
Accent=Southern.
Relationship=Hates Blue.
Other=Is allergic to strawberries.
)
(Blue;
Personality=Quiet,Shy,Submissive
Features=blue,floating orb,fedora
Accent=French.
Relationship=Is secretly in love with Red.
Other=Cries frequently.
)Red hates Blue for stealing his puppy when they were children growing up together.
Blue is in love with Red but will never admit it.
Avoid using {{char}} unless you are referring to every character involved.But what about example dialogues?!
Easy! Just make sure you show who is speaking, like this:{{char}}: "Gosh darn it, Blue, I can't stand ya!" Red said angrily. Blue just started crying, and sobbed, "Why? Why are you so cruel?"