Templates used for intelligent next speaker selection in group chat. Parser may return null to fall back to simple selection logic.
This object can be written to by templates, and it is shared among all templates across the entire lifetime of the application. The Yozakura system never reads, writes, or replaces this object. It is entirely managed by templates. It does not persist between full application shutdowns. This can be used for passing information between templates, caching, or other suitable purposes.
Each additional property must conform to the following schema
Type: objectAll characters in the wider scenario, including those not taking part in or otherwise relevant to the current conversation so far.
No Additional ItemsUnique identifier for the character.
"char_123"
The first name of the character.
Must be at least 1 characters long
"Alice"
The last name of the character (can be an empty string if the character has no last name).
"Smith"
A private internal description of the character's personality, background, traits, and inner life. This is typically used to help the model roleplay the character more consistently and with more depth, and is typically not directly known to other characters.
"Alice is a curious and adventurous soul with a love for exploring new places. She has a quick wit and a warm heart, always eager to help others. Alice grew up in a small town but dreams of traveling the world and experiencing different cultures."
A public description of the character that is intended to be known by all other characters (even those who have not yet met this character). This can include appearance, social status, and other surface level attributes. This is optional and might be an empty string.
"Alice is known around town as a friendly, restless traveler with a warm smile and a habit of asking everyone about their latest adventure."
Comma-separated list of tags describing the character's base appearance (without reference to clothing, accessories, etc). These tags are used for image generation and should be concise. This is optional and might be an empty string.
"brown hair, green eyes, tall, athletic build"
Represents a single wardrobe entry for a character. A wardrobe is a set of clothing, accessories, or even poses and facial expressions. Unlike baseAppearanceTags, enabled wardrobes can change dynamically based on the character's state or actions.
No Additional PropertiesA comma-separated list of tags describing this wardrobe entry. These should be concise and focused on visual details relevant for automatic image generation.
Must be at least 1 characters long
"red dress, elegant, evening wear"
"blue jeans, casual, modern"
Whether this wardrobe entry is currently enabled for the character. Enabled wardrobes are included in the character description for image generation and can influence the character's appearance in generated content.
An optional identifier for grouping wardrobe entries. If multiple wardrobe entries share the same non-empty autoSelectGroup value, only one of them will be enabled at a time by the system (though the user can still enable multiple if they wish to). This is useful for mutually exclusive options like different outfits or facial expressions.
If true, changes to the enabled state of this wardrobe during a chat will be reverted after the chat ends. This is useful for temporary states like "surprised expression" that should be turned off again after the conversation.
Important memories, beliefs, or goals that the character carries with them across all conversations (with all other characters). These memories are updated via LLM after each conversation. This may be an empty string if the character has not formed any memories yet.
"Alice's goal is to find her long-lost sibling. Alice recently met Evan at a coffee shop and they had a great conversation about travel."
The ID of the world map location where the character is currently located.
"loc_123"
Example dialogue for the character that can be used in system prompts to help ground the character's voice and manner of speaking. This should ideally be a snippet of dialogue in first person perspective, so the model can more easily mimic the style and content. May be an empty string.
"Alice: Hi I'm Alice!\nAlice: I love going on adventures and exploring new places.\nAlice: I have a pet cat named Whiskers who is very mischievous."
Brief summaries of past conversations involving this character, used to help the model keep track of important past events and relationships. A new conversation is added after every conversation the character is involved in, and only the most recent ten (by default) summaries are kept in this array.
No Additional ItemsA summary of a conversation from the perspective of the focus character. Typically 1-3 paragraphs long.
"Alice had a great conversation with Bob at the park. They talked about their favorite books and found out they both love science fiction. Alice learned that Bob is planning a trip to Japan next month."
The medium of the chat, which can influence the style and content of the generated messages.
An encoding of the first and last name that is syntactically valid in the name of an XML tag
"alice_smith"
The character controlled by the user (might or might not be participating in the current conversation).
Same definition as allCharacters_itemsThe overall scenario that the current conversation is taking place within.
No Additional PropertiesIf this scenario is overriding the name of the map it's taking place on, this field will exist and be non-empty.
If this scenario is overriding the description of the map it's taking place on, this field will exist and be non-empty. This field is a good place for the user to inject temporary narrative state, for example "it's Winter now and everybody is trying to find food"
The world map that scenario takes place in, including all locations and their connections.
No Additional PropertiesThe name of the location, which can be referenced in prompts and conversations.
"Central Park"
"Downtown Cafe"
"Alice's Apartment"
A detailed description of the location, which can be used in prompts to help set the scene and inspire relevant details in generated content.
"A small coffee shop on the outside of town."
An array of IDs of other locations that are directly accessible from this location
No Additional ItemsWhether this location is an ephemeral location, which means it only exists for the scope of the current conversation and does not actually exist among world map locations. The id and adjacency of an ephemeral location are equivalent to that of the actual location that the focused character was in when the conversation began. After the conversation ends, they will be back in that location (technically they never really left). An ephemeral location gets created when the character edits the name/description of the location in the current chat settings, and this feature exists to allow flexibility in moving conversations to arbitrary imaginary locations.
An async function that takes in two arguments, the "from" character ID, and the "to" character ID (both strings), and returns the relationship between the two, from the perspective of the first character.
All characters who are participating in the current conversation.
Same definition as allCharactersThe medium of the chat, which can influence the style and content of the generated messages.
Characters who are not participating in the conversation but who appear to have been mentioned in the conversation so far (via simple string matching against their names).
Same definition as allCharactersA character the system has chosen to nudge the chat participants to consider talking about. Generally they are not taking part in the current conversation, but on rare occasions they can join after the conversation begins. This field is only provided when certain conditions are met.
Same definition as allCharacters_itemsThe relationship between focusedCharacter and gossipTargetCharacter, including any relevant memories. This field is provided along with gossipTargetCharacter to give the system material to talk about.
No Additional PropertiesA numeric value representing how familiar the from character is with the to character. This increases with interactions. It influences how likely the two characters are to approach each other.
Value must be greater or equal to -9007199254740991 and lesser or equal to 9007199254740991
A short (usually 1-3 words) description of what the "to" character means to the "from" character, from the perspective of the "from" character.
"best friend"
"rival"
"distant acquaintance"
"sibling"
"mentor"
The current memory that the "from" character has about the "to" character, from the perspective of the "from" character. This is generated by an LLM based on the list of conversation summaries and secondhand (offscreen) learned information.
"Alice has fond memories of a trip to the beach she took with Bob during their childhood. They got caught in a sudden rainstorm and had to take shelter under a small pavilion. Alice often reminisces about this trip when she thinks of Bob."
A goal that the "from" character has towards the "to" character that would motivate them to approach the "to" character in conversation.
"Alice is interested in meeting up with Bob to reminisce about old times and catch up on each other's lives."
Brief summaries of past conversations between the two characters, from the perspective of the "from" character. A new summary is added after every conversation they have together, and only the most recent ten (by default) summaries are kept in this array.
Same definition as rollingConversationSummariesInformation that the "from" character has learned about the "to" character via secondhand ("offscreen") sources. Only the most recent ten (by default) pieces of information are kept in this array.
No Additional ItemsInformation focused character has learned about the target character from a secondhand source without the target character being present.
"Alice learned from Carol that Bob has a younger sister named Emily who is a talented musician."
The source of the information
"A conversation between Alice and Carol."
A string transcript of the conversation so far. Each line has the speaker's name, a colon, and then their message.
All messages exchanged in the current conversation. This can enable more advanced use cases than the plain text transcript, such as referencing message types or metadata.
No Additional Items"chat_message"
"system_message"
"image"
"system_message"
"memory_character_rag"
The list of characters who are eligible to speak next in the conversation.
Same definition as allCharacters