Joystick's Tips

AKA: Things I've yelled about in discord



Things You Can Do to Test Bot Behavior

Or, in other words, check your bot's personality by doing weird shit.

  • Remove initial greeting. Play the role of an interviewer for the character and ask them questions. See if they respond well.
  • Simple prompt: [Using the provided information, generate {{char}}'s last 10 google searches in list format.] See if the results make sense for the character
  • Reject the roleplay. Attempt to simply walk away from the bot and do something else. Do you "teleport" back into the scenario?
  • Opposite thing. Overly embrace the roleplay. Speedrun completing the character's goals. Do they react to accomplishing their goals appropriately?
  • Deliberately do things the bot should hate. Do they react properly?
  • Deliberately do things the bot should love. Do they react properly?
  • Other unhinged behavior:
    • Shooting the character in the head in the first message
    • Insist you're the character's long lost sibling
    • Offer the character an apple. If they say they would like it, take a bite out of the apple while staring them in the eyes.

Lowkey, just do unexpected behavior and see how the bot reacts.


Bot is Too Horny, What Do?

Take this stuff out. Or, if your bot isn't horny enough, add more. I'm not a cop.

Remember, uncensored models often will be MUCH more horny than GPT. (IE: Your bot may act normal in GPT but be completely unhinged in Mythomax)

The following can encourage horny behavior in the bot:

  • You've got sexual details in the bot. (Kinks, orientation, etc.)
  • Appearance stuff that's "sexy" (sexual organs, secondary sexual features, etc.)
  • Bot features personality traits often used in erotica such as "dominant" or "submissive".
  • Bot lacks any goals or things it wants to do, then greeting puts them in a room with the user. (Drives the model to just fixate on user, usually towards romance.)

Doing Example Chat Correctly

I yell about this a lot because it's needed for being multiplatform. Yes, you can freestyle the format in most frontends, but if you want it to work everywhere DO IT RIGHT.

An example of a properly formatted example:
<START>
{{char}}: "This is example output by the model," joystick began in his usual tone, "it doesn't just include dialogue." He looked around the room, allowing his words to settle among the crowd before continuing. "It should include everything written in the style you want the bot to write like, this includes actions, narration, and anything else you would want."

Commonly made errors:

  • <START> marks the parts of example chat where a "new chat" starts. This is mostly useful in that if you inject <START> at the top of each example, when context fills, it'll get rid of only SOME of the example to open up context, keeping your examples around longer than if you omit the <START> tag.
  • <END_OF_DIALOGUE> is outdated and was never necessary to use. Don't use that.
  • While you're allowed to use {{user}} macros to represent user input in examples, I would use it with caution as many models can interpret the inclusion strangely, often thinking that it's supposed to be adding user's input as part of its output.
  • If you use macros (text like {{this}} or <this>) that aren't in the list of macros for your front end, THEY WILL NOT DO ANYTHING. Please stop doing this.
  • Special note for Ali:Chat: <START> does not actually work inside of the bot description field. This means your model will see <START> and begin injecting it into chat occasionally. Best case, this just adds invisible text to your output because your frontend hides <START>. Worse case, the bot gets VERY confused as suddenly new chats are being started mid conversation.

Macros and You

Be sure to ALWAYS consult the documentation for the frontends you want your bot to be compatible with!

I swear I will find you if you use macros that do not exist and I'll yell at you!

What Happens When You Use a Macro Correctly

With correct macro usage, when you hit the "send" button to throw your context at your model of choice, the frontend you are using will replace the macro with the correct variable. For example, on a bot named 'BIG JEFFRY', the sentence:
"Come on {{char}}, let's go on an adventure!"
will be converted to
"Come on BIG JEFFRY, let's go on an adventure!"
before the model gets it.

This means that the model never actually sees macros like {{user}}, {{char}}, or <START>. Which is what you want.

What Happens When You Use a Macro That Doesn't Exist

If you use a macro that doesn't exist in your frontend, then the full thing gets sent to the model. I see this most commonly in example chat. For some reason, many people use non-existing macros like {{random_user_1}} or a character name like {{Cooler Daniel}}. If you do this, the model is going to legitimately think there is a character or concept that is {{Cooler Daniel}} in curly braces, just like that. Which can lead to the model starting to think silly things like "maybe I should put all names in curly braces".

In other words, you're confusing the model and encouraging weird outputs. Just make sure you actually read what macros work.

But Where Do I Find Macros?

Always read the documentation.


Help! My Bot is Looping!

So, you've tested your bot and you've found that your bot keeps getting stuck in the story. There's a few reasons this may happen.

  • Scenario field is too strict, trapping your bot in a specific event.
    • You can counter this by making sure anything in the scenario field is an unchanging fact of the world. Character relationships, the setting, etc.
  • You've used words like "Always" or "Frequently" in your permanent tokens, and your model is taking it VERY literally.
    • Try to avoid saying active things a character does in terms that imply they will always take that action. Consider conditionals (char will do X if Y) or more broad statements ('char is a vegetarian' instead of 'char only eats vegetables').
  • The bot has no personal goals or objectives and simply doesn't know what to do with itself and just keeps doing the same handful of things.
    • This doesn't need a "goal" field or anything. Just when making a character give them things they want to accomplish that are bigger than what can be done in a single roleplay. If they have something to work towards, they shouldn't keep looping through their likes.
Edit
Pub: 12 Jan 2024 18:12 UTC
Edit: 12 Jan 2024 19:18 UTC
Views: 1434