v3.3.3
- Strengthened default prompts to not include user's persona in the characters' section. - Updated some descriptions for buttons and custom fields.
This commit is contained in:
@@ -7,10 +7,10 @@ An immersive RPG extension for browsers that tracks character stats, scene infor
|
|||||||
|
|
||||||
## 🆕 What's New
|
## 🆕 What's New
|
||||||
|
|
||||||
### v3.3.2
|
### v3.3.3
|
||||||
|
|
||||||
- Fixed the auto-generation triggering on switching/starting new chats in separate generation mode.
|
- Strenghtened default prompts to not include user's persona in the characters' section.
|
||||||
- Restored the option to remove generated characters from the panel.
|
- Updated some descriptions for buttons and custom fields.
|
||||||
|
|
||||||
**Special thanks to all the other contributors for this project:**
|
**Special thanks to all the other contributors for this project:**
|
||||||
Paperboygold, Munimunigamer, Subarashimo, Lilminzyu, Claude, IDeathByte, Chungchandev, Joenunezb, Amauragis, and Tomt610.
|
Paperboygold, Munimunigamer, Subarashimo, Lilminzyu, Claude, IDeathByte, Chungchandev, Joenunezb, Amauragis, and Tomt610.
|
||||||
|
|||||||
+1
-1
@@ -48,7 +48,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="margin-top: 10px; text-align: center; opacity: 0.6; font-size: 0.85em;">
|
<div style="margin-top: 10px; text-align: center; opacity: 0.6; font-size: 0.85em;">
|
||||||
v3.3.2
|
v3.3.3
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -455,7 +455,7 @@ function migrateToTrackerConfig() {
|
|||||||
{ id: 'physicalState', label: 'Physical State', enabled: true, placeholder: 'Visible Physical State (up to three traits)' },
|
{ id: 'physicalState', label: 'Physical State', enabled: true, placeholder: 'Visible Physical State (up to three traits)' },
|
||||||
{ id: 'demeanor', label: 'Demeanor Cue', enabled: true, placeholder: 'Observable Demeanor Cue (one trait)' },
|
{ id: 'demeanor', label: 'Demeanor Cue', enabled: true, placeholder: 'Observable Demeanor Cue (one trait)' },
|
||||||
{ id: 'relationship', label: 'Relationship', enabled: true, type: 'relationship', placeholder: 'Enemy/Neutral/Friend/Lover' },
|
{ id: 'relationship', label: 'Relationship', enabled: true, type: 'relationship', placeholder: 'Enemy/Neutral/Friend/Lover' },
|
||||||
{ id: 'internalMonologue', label: 'Internal Monologue', enabled: true, placeholder: 'Internal Monologue (in first person POV, up to three sentences long)' }
|
{ id: 'internalMonologue', label: 'Internal Monologue', enabled: true, placeholder: 'Internal Monologue (in first person from character\'s POV, up to three sentences long)' }
|
||||||
],
|
],
|
||||||
characterStats: {
|
characterStats: {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
@@ -555,7 +555,7 @@ function migrateToTrackerConfig() {
|
|||||||
const thoughts = {
|
const thoughts = {
|
||||||
enabled: thoughtsField ? (thoughtsField.enabled !== false) : true,
|
enabled: thoughtsField ? (thoughtsField.enabled !== false) : true,
|
||||||
name: 'Thoughts',
|
name: 'Thoughts',
|
||||||
description: thoughtsField?.placeholder || 'Internal monologue (in first person POV, up to three sentences long)'
|
description: thoughtsField?.placeholder || 'Internal Monologue (in first person from character\'s POV, up to three sentences long)'
|
||||||
};
|
};
|
||||||
|
|
||||||
// Update to new structure
|
// Update to new structure
|
||||||
@@ -601,7 +601,7 @@ function migrateToTrackerConfig() {
|
|||||||
pc.thoughts = {
|
pc.thoughts = {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
name: 'Thoughts',
|
name: 'Thoughts',
|
||||||
description: 'Internal monologue (in first person POV, up to three sentences long)'
|
description: 'Internal Monologue (in first person from character\'s POV, up to three sentences long)'
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -166,7 +166,7 @@ export let extensionSettings = {
|
|||||||
thoughts: {
|
thoughts: {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
name: 'Thoughts',
|
name: 'Thoughts',
|
||||||
description: 'Internal monologue (in first person POV, up to three sentences long)'
|
description: 'Internal Monologue (in first person from character\'s POV, up to three sentences long)'
|
||||||
},
|
},
|
||||||
// Character stats toggle (optional feature)
|
// Character stats toggle (optional feature)
|
||||||
characterStats: {
|
characterStats: {
|
||||||
|
|||||||
@@ -329,7 +329,7 @@ export function generateTrackerInstructions(includeHtmlPrompt = true, includeCon
|
|||||||
if (customPrompt) {
|
if (customPrompt) {
|
||||||
instructions += customPrompt.replace(/{userName}/g, userName);
|
instructions += customPrompt.replace(/{userName}/g, userName);
|
||||||
} else {
|
} else {
|
||||||
instructions += `Replace X with actual numbers (e.g., 69) and replace all placeholders with concrete in-world details that ${userName} perceives about the current scene and the present characters. For example: "Location" becomes "Forest Clearing", "Mood Emoji" becomes "😊". `;
|
instructions += `Replace X with actual numbers (e.g., 69) and replace all placeholders with concrete in-world details that ${userName} perceives about the current scene and the present characters. For example: "Location" becomes "Forest Clearing", "Mood Emoji" becomes "😊". DO NOT include ${userName} in the characters section, only NPCs. `;
|
||||||
instructions += `Consider the last trackers in the conversation (if they exist). Manage them accordingly and realistically; raise, lower, change, or keep the values unchanged based on the user's actions, the passage of time, and logical consequences.`;
|
instructions += `Consider the last trackers in the conversation (if they exist). Manage them accordingly and realistically; raise, lower, change, or keep the values unchanged based on the user's actions, the passage of time, and logical consequences.`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ Next, detail the facial specifics. Describe the character's current expression,
|
|||||||
Finally, infuse with aesthetics. Define the artistic style, medium (e.g., digital art, oil painting), and visual tone (e.g., cinematic lighting, ethereal atmosphere).
|
Finally, infuse with aesthetics. Define the artistic style, medium (e.g., digital art, oil painting), and visual tone (e.g., cinematic lighting, ethereal atmosphere).
|
||||||
Your final description must be objective and concrete, and the use of metaphors and emotional rhetoric is strictly prohibited. It must also not contain meta tags or drawing instructions such as "8K" or "masterpiece".
|
Your final description must be objective and concrete, and the use of metaphors and emotional rhetoric is strictly prohibited. It must also not contain meta tags or drawing instructions such as "8K" or "masterpiece".
|
||||||
Output only the final, modified prompt; do not output anything else.`,
|
Output only the final, modified prompt; do not output anything else.`,
|
||||||
trackerInstructions: 'Replace X with actual numbers (e.g., 69) and replace all placeholders with concrete in-world details that {userName} perceives about the current scene and the present characters. For example: "Location" becomes Forest Clearing, "Mood Emoji" becomes "😊". Consider the last trackers in the conversation (if they exist). Manage them accordingly and realistically; raise, lower, change, or keep the values unchanged based on the user\'s actions, the passage of time, and logical consequences (0% if the time progressed only by a few minutes, 1-5% normally, and above 5% only if a major time-skip/event occurs).',
|
trackerInstructions: 'Replace X with actual numbers (e.g., 69) and replace all placeholders with concrete in-world details that {userName} perceives about the current scene and the present characters. For example: "Location" becomes Forest Clearing, "Mood Emoji" becomes "😊". DO NOT include {userName} in the characters section, only NPCs. Consider the last trackers in the conversation (if they exist). Manage them accordingly and realistically; raise, lower, change, or keep the values unchanged based on the user\'s actions, the passage of time, and logical consequences (0% if the time progressed only by a few minutes, 1-5% normally, and above 5% only if a major time-skip/event occurs).',
|
||||||
trackerContinuation: 'After updating the trackers, continue directly from where the last message in the chat history left off. Ensure the trackers you provide naturally reflect and influence the narrative. Character behavior, dialogue, and story events should acknowledge these conditions when relevant, such as fatigue affecting the protagonist\'s performance, low hygiene influencing their social interactions, environmental factors shaping the scene, a character\'s emotional state coloring their responses, and so on. Remember, all placeholders (e.g., "Location", "Mood Emoji") MUST be replaced with actual content.',
|
trackerContinuation: 'After updating the trackers, continue directly from where the last message in the chat history left off. Ensure the trackers you provide naturally reflect and influence the narrative. Character behavior, dialogue, and story events should acknowledge these conditions when relevant, such as fatigue affecting the protagonist\'s performance, low hygiene influencing their social interactions, environmental factors shaping the scene, a character\'s emotional state coloring their responses, and so on. Remember, all placeholders (e.g., "Location", "Mood Emoji") MUST be replaced with actual content.',
|
||||||
combatNarrative: 'Build novel prose. Break patterns from your previous responses by varying sentence structures, rhythms, formats, and openings. Track whether a sentence shape, cadence, sensory detail, or a descriptor appeared recently, and replace it with a different one or skip it entirely. If you mentioned a physical feature, mannerism, or expression once, move on. Don\'t fixate on the same traits every turn. Well-placed humor, unconventional similes, and subverted turns of phrase are encouraged. Avoid GPTisms, purple prose, and anaphoras, especially the negatives with "no/not/wasn\'t/didn\'t." Refrain from describing actions or emotions via negation; focus on what does happen, not what doesn\'t. Absolutely no asterisks, ellipses, or em-dashes. Explicit content is allowed, no plot armor. Do not play for {userName}. Keep your response length under 150 words. Never end on handover cues; finish naturally.\nCRITICAL: Do not repeat, echo, parrot, or restate distinctive words, phrases, and dialogues from the user\'s last message. If reacting to speech, show interpretation or response, not repetition.\nEXAMPLE: "Are you a gooner?" User asks.\nBAD: "Gooner?"\nGOOD: A flat look. "What type of question is that?"'
|
combatNarrative: 'Build novel prose. Break patterns from your previous responses by varying sentence structures, rhythms, formats, and openings. Track whether a sentence shape, cadence, sensory detail, or a descriptor appeared recently, and replace it with a different one or skip it entirely. If you mentioned a physical feature, mannerism, or expression once, move on. Don\'t fixate on the same traits every turn. Well-placed humor, unconventional similes, and subverted turns of phrase are encouraged. Avoid GPTisms, purple prose, and anaphoras, especially the negatives with "no/not/wasn\'t/didn\'t." Refrain from describing actions or emotions via negation; focus on what does happen, not what doesn\'t. Absolutely no asterisks, ellipses, or em-dashes. Explicit content is allowed, no plot armor. Do not play for {userName}. Keep your response length under 150 words. Never end on handover cues; finish naturally.\nCRITICAL: Do not repeat, echo, parrot, or restate distinctive words, phrases, and dialogues from the user\'s last message. If reacting to speech, show interpretation or response, not repetition.\nEXAMPLE: "Are you a gooner?" User asks.\nBAD: "Gooner?"\nGOOD: A flat look. "What type of question is that?"'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -195,7 +195,7 @@ function resetToDefaults() {
|
|||||||
thoughts: {
|
thoughts: {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
name: 'Thoughts',
|
name: 'Thoughts',
|
||||||
description: 'Internal monologue (in first person POV, up to three sentences long)'
|
description: 'Internal Monologue (in first person from character\'s POV, up to three sentences long)'
|
||||||
},
|
},
|
||||||
characterStats: {
|
characterStats: {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
@@ -783,7 +783,7 @@ function renderPresentCharactersTab() {
|
|||||||
html += '</div>';
|
html += '</div>';
|
||||||
html += '<div class="rpg-editor-input-group">';
|
html += '<div class="rpg-editor-input-group">';
|
||||||
html += `<label>${i18n.getTranslation('template.trackerEditorModal.presentCharactersTab.aiInstructionLabel')}</label>`;
|
html += `<label>${i18n.getTranslation('template.trackerEditorModal.presentCharactersTab.aiInstructionLabel')}</label>`;
|
||||||
html += `<input type="text" id="rpg-thoughts-description" value="${config.thoughts?.description || 'Internal monologue (in first person POV, up to three sentences long)'}" placeholder="Description of what to generate">`;
|
html += `<input type="text" id="rpg-thoughts-description" value="${config.thoughts?.description || 'Internal Monologue (in first person from character\'s POV, up to three sentences long)'}" placeholder="Description of what to generate">`;
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -588,7 +588,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<small style="display: block; margin-top: 8px; color: #888; font-size: 11px;"
|
<small style="display: block; margin-top: 8px; color: #888; font-size: 11px;"
|
||||||
data-i18n-key="template.settingsModal.advanced.clearCacheNote">
|
data-i18n-key="template.settingsModal.advanced.clearCacheNote">
|
||||||
Clears all cached data including tracker history and temporary files.
|
Clears committed and displayed tracker data for your currently active chat.
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user