A widget is a feature that displays status information inside the chat window. You can display information such as dates, affection levels, relationships, and more alongside conversations. Widgets can either be automatically created through AI or manually created by writing the content yourself.
Compared to status panels previously written directly inside character internal prompts, widgets are less likely to experience missing information.
Ducky is an AI assistant that helps create widgets. Simply describe the information and design you want inside the widget, and Ducky will generate one accordingly.
You can achieve more accurate results by including the genre or atmosphere, color/theme, and the information fields you want to include.
Example Messages
Create a pink-themed widget for a romance genre character. Include the date, time, genders and ages of {{char}} and {{user}}, affection level, and relationship.
Create a dark gold-themed widget for a fantasy RPG character. Include the current location, time period, {{user}}'s HP/MP, gold amount, and companion rank with {{char}}.
Create a pastel blue-themed widget for a school-life character. Include the weekday, class period, weather, {{char}}'s mood, and intimacy with {{user}}.
Create a monochrome-themed widget for a mystery thriller. Include case number, current clue count, {{char}}'s suspicion level, and elapsed time.
Create a simple beige-themed widget for a slice-of-life character. Include the date, weather, {{char}}'s condition, and atmosphere with {{user}}.
Ducky can view all currently written state values, status information, and content. If HTML modifications are needed during editing, or if you want to add additional state values, you can continue using Ducky for revisions.
If creating a widget from scratch feels difficult, you can load and use sample themes provided by CaveDuck (Black Theme / Pastel Theme). You may use the samples as-is, or customize them by adding new state values or modifying the design.
Widgets are completed by filling out the following three sections:① State Values② Instructions③ Widget Content
State Values are the names of the status information displayed inside the widget.
Please use names with clear meanings.
Names such as Name1, Name2, or ValueA are not recommended.
Examples:Date, Time, Weather, Affection, Relationship, Location, Money, Stamina, etc.
State value names cannot consist entirely of uppercase letters. NPC / Npc ⭕️
Clear state value names help the AI correctly understand instructions and output values that match the actual conversation flow.
Instructions define how each state value should be generated and displayed. You can freely decide what type of value each state value should output and in what format.
Example Instructions
State Value: Date → Write the current date of the conversation. Output example: MM-DD
State Value: Time → Write the current conversation time in 24-hour format. Output example: 14:30
State Value: Weather → Write the current background weather in one word. Output example: Sunny, Rainy, Snowy
State Value: Affection → Write {{char}}'s affection level toward {{user}} as a number between 0 and 100. Output example: 72
State Value: Relationship → Briefly describe the current relationship between {{char}} and {{user}}. Output example: Friends, Lovers, Rivals
State Value: Location → Write the current location where the conversation is taking place. Output example: School Rooftop
State Value: Mood → Write {{char}}'s current mood in one word. Output example: Excited, Irritated, Calm
Providing clear output examples helps maintain consistent formatting.
Widget Content is the section where you create the actual design and layout displayed on screen.
To insert a state value, use the format {{State Value}}. You can also directly select available state values from the list below the editor.
You may freely decorate the widget using text, dividers, emojis, and more.
Since HTML code is supported, you can directly implement your desired styles and layouts.
You can instantly preview the results while editing.
After saving, you can also view translated versions for each language inside the preview window.
Example
<div style="padding:10px; border:1px solid #f5a;">
📅 {{Date}} · 🕒 {{Time}}
<br>
💗 Affection: {{Affection}}
<br>
Relationship: {{Relationship}}
</div>NotesValues displayed through {{State Value}} inside the preview are shown only in the editing language. However, when the widget is actually used in chat, the resulting state values are automatically displayed in the player's language.
In Translation Management, you can manage translations for both state values and regular text entered in the Widget Content editor, excluding HTML code.
When you enter content and press Save, the relevant phrases are automatically added to Translation Management and translated. In the State Values tab, you can review translations for state values, while in the Text tab, you can review translations for text entered in the content editor.
If you manually edit a translated sentence, that sentence will automatically be excluded from future automatic translation updates. (This protects your edited version from being overwritten.)
If you uncheck "Exclude from Translation," the sentence will be overwritten again by automatic translation the next time you save. Please note that manually edited translations may be lost in this case.
If some words fail to translate due to automatic translation errors, the corresponding language will be displayed with a red border. In such cases, please manually translate the untranslated words or press Save again to retry automatic translation.
Move to the Character Creation page.
Under the Introduction section, you can assign widgets for each introduction through the Widget menu located below Secret Settings.
Different widgets can be applied to each introduction, allowing different status panel setups depending on the situation.
NotesWhen applying widgets to characters, the character limit of Secret Settings is shared together with the widget. Please adjust widget length accordingly.
Displaying too many status values may reduce the length of the AI's main response.
If you already have status panel commands written inside character internal prompts (Character Settings, Secret Settings, etc.), please remove those commands when applying widgets.
When widgets are applied to characters, changes are immediately reflected for all players currently using that character. Please thoroughly test widgets before applying them for stable usage.