CHIM
Configuration Depth
AI/LLM Connectors: openrouterjson,openaijson,koboldcppjson |

TTS: pockettts STT: whisper ITT: openrouter
Biography Management

This is automatically set from your game character. The player name is retrieved from Skyrim when you load a save or start a new game. This field cannot be manually edited.

AUTOMATIC_DATABASE_BACKUPS
Automatically create database backups every time the server starts up. Keeps a maximum of 5 backups, automatically deleting the oldest when the limit is reached.

LOCK_PROFILE
When enabled, this profile will be skipped when using 'Copy to All Profiles' functionality. It will also not be deleted when you Delete All Character Profiles. Can not be toggled for the default profile.

AUTO_LOCK_PROFILE
When enabled, saving an NPC profile in CHIM NPC page automatically locks it to prevent history updates from overwriting manual edits.

AUTOFILL_CUSTOM_PROFILES
When enabled, imported custom NPCs with blank AI profile fields will be marked for automatic AI profile backfill once they have enough usable dialogue history.

Integer: Number of usable AI profile events required before a blank custom NPC is auto-filled. Range: 10-100.

NPC Name. MUST MATCH their Skyrim in-game NPC name!
If you are in the default profile YOU MUST leave it as The Narrator!
You can change profiles by clicking the blue button in the top left.

PROMPT_HEAD_MARKDOWN_ENABLED
Use Markdown headings instead of XML tags for all prompt sections.

Instructions for how the player character speaks and communicates. This will be used as context when rewriting player dialogue.

PROMPT_TIMESTAMP
Add rough timestamp subdividers to event context (e.g., 'Moments Ago', 'A while ago') to help the AI NPCs understand when events happend.

PROMPT_TIMESTAMP_EXACT
Date the event context with the exact in-game date and time instead of rough categories, e.g. '--- Loredas, 3:40 PM, 21st of Last Seed, 4E 201 (yesterday) ---'. A new divider appears when the in-game day changes or after an in-game hour. Works on its own; when Timestamp is also on, the exact dates win. Beta: not yet widely tested.

COMPACT_CHAT_ENABLED
Use compact text instead of separate messages for conversation history. Does not affect the Narrator.

Controls which XML-like prompt context sections are included in the final system prompt sent to the LLM. Managed from Global Settings.

use_emotions_expression
Emotions expression support.

Basic Summary of the NPC. [help/doc]

NPC Background.
Detailed history, origins, and past experiences that shaped this character.
[help/doc]

NPC Personality Traits.
Detailed character traits, behavioral patterns, and psychological characteristics.
[help/doc]

NPC Physical Appearance.
Detailed description of physical features. Do not include clothing or equipment.
[help/doc]

NPC Occupation & Role.
Current job, profession, duties, and position in society or organizations.
[help/doc]

NPC Skills & Abilities.
Special talents, combat abilities, magical knowledge, and areas of expertise.
[help/doc]

NPC Speech Style.
How this character speaks, including vocabulary, accent, mannerisms, and communication patterns.
[help/doc]

NPC Goals & Aspirations.
Long-term objectives, personal ambitions, and life goals that drive this character.
[help/doc]

DYNAMIC_PROFILE
Will automatically update selected profile fields from the timer set in the MCM menu. Can adjust the prompts used by editing individual DYNAMIC_PROMPT fields. Requires CONNECTOR_DIARY to be configured.

personality
occupation
skills
speechstyle
goals
Only recommend selecting 1-3 fields! Select which extended profile fields should be dynamically updated from ingame Dynamic Profile Timer.

Cooldown period in seconds between diary entries to prevent spam. Each NPC has their own independent cooldown timer.

AUTO_DIARY_ENABLED
Automatically generate diary entries when NPCs are nearby during sleep events. NPCs using this profile will have auto diary enabled by default.

AUTO_DIARY_WAIT_ENABLED
When Auto Diary is enabled, this controls whether diary entries are created during wait events. If disabled, auto diary will only trigger on sleep events.

OGHMA_INFINIUM
Ground relevant Skyrim lore from the active Oghma catalog and add the permitted articles to the prompt.

OGHMA_EXTRACTOR_FALLBACK
After deterministic retrieval abstains on an explicit lore request, allow one bounded Oghma connector call. Suggestions must still resolve unambiguously to the active catalog.

OGHMA_MULTILINGUAL_ROUTING
Route unmatched dialogue and check weak name matches in any language. Uses the Oghma connector instead of Extractor Fallback. Ordinary dialogue can also add a call up to Extractor Timeout. NPC knowledge restrictions still apply.

Integer: Maximum wait in milliseconds for Oghma Extractor Fallback or Multilingual Oghma Routing. Range: 250-3000.

RACIAL_OGHMA
Always inject matching Oghma lore for the races of NPCs currently present in the scene. Existing Oghma knowledge permissions still apply.

LOCATION_OGHMA
Always inject matching Oghma lore for the current location, its region, and hold. Existing Oghma knowledge permissions still apply.

Comma-separated specialist knowledge classes assigned to the NPC. Public basic Oghma articles need no NPC tag. Knowall explicitly grants advanced access to every article. [help/doc]

Number of Oghma articles to extract for each response. More article extraction can increase response time.

Maximum Oghma articles included in one prompt after race, location, and conversational topics are combined.

Roleplay Management

Rechat Rounds. Higher values will increase the amount of times AI NPC's will go back-and-forth during a conversation.
1 = 1 Round | 2 = 2 Rounds | 3 = 3 Rounds etc

Rechat Probability. Chance that an AI NPC will continue an ongoing conversation.
0 = Never | 50 = 50% | 100 = Always

RECHAT_ALLOW_ACTIONS
Allow AI NPCs to trigger actions between eachother during Rechat. This can cause some chaos...

Controls how server-side rechat picks the next responder. Tight = listener-only, Conversational = prefers the current partner, Group = lets nearby NPCs rotate into the exchange, Random = picks one of the other modes at the start of each rechat chain.

ENFORCE_STRICT_RECHAT_RESPONSE
If enabled, the NPC chosen for a rechat turn must respond directly to the previous speaker and set the listener to that speaker.

OPEN_RECHAT
When enabled, rechat picks the next responder from nearby scene participants instead of relying only on the selected listener. Direct dialogue still stays addressed to the original listener.

Integer: Seconds an NPC is ineligible for AI dialogue if they wish to stop talking. Default: 60

RANDOM_NARATION
Enable random Narrator interjections. The Narrator will occasionally add visual scene descriptions during conversations.

Integer: Probability (1-100) that the Narrator will interject with a scene description. Default: 15%

Integer: Minimum number of conversation rounds between Narrator interjections. Prevents narration spam. Range: 0-10, Default: 2

Bored Event Probability. Chance of an AI NPC starting a random conversation every couple of minutes.
0 = Never | 50 = 50% | 100 = Always

Amount of context history (dialogue and events) that will be sent to LLM. Improves short term memory.
Higher Context = more tokens used and slower response time.
We recommend you do not go over 100

Amount of context history (dialogue and events) that will be sent to LLM specifically for diary entries.
If set to 0, will use the regular CONTEXT_HISTORY value instead.

Amount of context history (dialogue and events) that will be sent to LLM specifically for dynamic profile updates.
If set to 0, will use the regular CONTEXT_HISTORY value instead.

ALIVE_MESSAGE
Whether the I am alive.. response will trigger whenever you activate an AI NPC.

BOOK_EVENT_ALWAYS_NARRATOR
The Narrator will be the only one to summarize books.

NARRATOR_TALKS
Enable the Narrator.

NARRATOR_WELCOME
The Narrator will give you a quick recap of what happened previously after you have loaded a save game. Has a 10 minute IRL cooldown so its not annoying.

HIDE_NARRATOR_DIALOGUE
Hide Narrator-spoken dialogue lines from NPC context.

QUEST_COMMENT
Allow nearby NPCs using this profile to comment on displayed, completed or failed quest objectives. One NPC is selected per update. Narrator comments are configured separately in Narrator Management.

CHIM_AI_QUEST_PROGRESSION
Enable CHIM AI quest progression. Allows you to progress regular Skyrim quests with AI dialogue. Most vanilla non radiant quests are supported. Open the AI Quest Manager in Immersion for more info.

CHIM_PLAYER_ONLY_QUEST_ADVANCEMENT
When enabled, only direct player dialogue can fire CHIM AI quest beats and queue quest stage actions. Disable to let NPC responses and game interaction events advance or start quest beats.

Chance for the selected NPC to comment. If no NPC comment is selected, Narrator settings are checked. The shared cooldown in Narrator Management still applies.

Integer: Minimum time in minutes between quest comments. Default: 3 minutes

CURRENT_TASK
Include the current Dynamic AI Objective to the AI NPC's prompt. Disable this if the AI NPC becomes fixated on the task.

levelup
learn_shout
learn_word
absorb_soul
bleedout
combat_end
lockpick
sleep
keepmechecked
Pick which comments you want a chance to trigger when one of these ingame events happens.

DETECT_MAGIC_EVENT
Enable detection and logging of spellcasting events. When disabled, spellcast events will not be logged to the context log.

Comma-separated list of magic event names to exclude from logging (e.g. 'Administer Mixture, [BFCO-AttackSwingFX] 0.5/1.5, Healing').

Comma-separated list of location names to exclude from Points of Interest context (e.g. 'Dark Brotherhood Sanctuary, Twilight Sepulcher').

Comma-separated list of item/armor names to exclude from dynamic context (e.g. 'Iron Sword, Leather Armor, Health Potion').

SHORTER_NEARBY_ITEM_LIST
Group duplicate nearby ground items into one counted entry. When enabled, context shows one line per unique nearby item plus a single representative RefID in the item descriptions block.

Comma-separated list of event types to exclude from context generation (e.g. 'death, itemfound, spellcast').

Integer: Minimum total item value for player pickups to be detected in context.

GROUND_ITEMS_DESCRIPTIONS_ONLY
Only show nearby ground items in context that have descriptions in the description manager.

INVENTORY_ITEMS_DESCRIPTIONS_ONLY
Only show inventory items in context that have descriptions in the description manager.

HIDE_AMBIENT_COMBAT
Hide ambient NPC-to-NPC combat deaths from context during requests. Only player and companion kills will be shown. This is useful for hiding the violent nature of Skyrim's nature from being detected.

DISABLE_REANIMATION_TRACKING
Disable reanimation tracking. When enabled, NPCs marked as reanimated will not have zombie status text injected into their prompts.

TRANSFORMATION_DETECTION
Include werewolf and vampire lord transformation state in prompt context when detected.

AUTOMATIC_ACTOR_VOICE_EFFECTS
Automatically adjust NPC voices for transformation, combat and sneaking without changing the saved voice filter.

Advanced Configuration

HERIKA_ANIMATIONS
Will issue animations for the NPC to play [help/doc]

Integer: Attempt to enforce a word limit for AI's responses. Leave as 0 to have no limit.

Controls who voices inline *narration* blocks. disabled = no special routing, narrator = The Narrator voices the asterisked section, npc = the NPC keeps the whole line, text_only = narration stays visible but only dialogue is spoken. [help/doc]

REMOVE_ASTERISKS_FROM_PLAYER_INPUT
Filter *asterisked* player input from player TTS only. The in-game player subtitle echo keeps the visible *text*. [help/doc]

REMOVE_ASTERISKS_FROM_NPC_OUTPUT
Filter *asterisked* NPC narration/emotes from NPC speech and subtitles. Text Only always keeps leading narration visible. [help/doc]

ENFORCE_ACTIONS_PROMPT
Adds a prompt to enforce use of actions [help/doc]

Legacy instructions for updating HERIKA_DYNAMIC. You can adjust max tokens by changing MAX_TOKENS_MEMORY for the SUMMARY connector you are using.

Instructions for updating NPC personality traits based on recent events and interactions.

Instructions for updating NPC occupation and role based on story progression and events.

Instructions for updating NPC skills and abilities based on experiences and training.

Instructions for updating NPC speech patterns and communication style based on interactions.

Instructions for updating NPC goals and aspirations based on story developments and achievements.

Instructions for generating diary entries. You can adjust max tokens by changing MAX_TOKENS_MEMORY for the DIARY connector you are using.

AI/LLM Connectors Selection

openaijson
google_openaijson
web_connector
koboldcppjson
openrouterjson
player2json
AI Service(s) to be used for most AI features.
Select the service(s) you have configured for AI/LLM Connectors below.
Non JSON connectors are legacy and no longer supported. We can not debug or fix any issues you have with them!

Make sure to click the Current AI Service button at the top of the page if you change connectors!

Connector used for diary-related generation (manual diary, auto-diary, and dynamic profile updates).

This is separate from long-term memory recall and memory summary compaction.

Deprecated. Use the new fields listed above instead.

Creates quest ideas, briefings and outlines.

CORE_CONNECTOR_QUEST_CREATION_ENABLED
Make Quest Creation Connector available. Turning this off keeps its connector selection.

Plans quest steps and generates quest code. Use a capable reasoning and coding model.

CORE_CONNECTOR_QUEST_ENGINE_ENABLED
Make Quest Engine Connector available. Turning this off keeps its connector selection.

Connector used for Director mode. Recommend to use a 💪Powerful LLM.

CORE_CONNECTOR_DIRECTOR_ENABLED
Make the Director Mode connector available. When off, Director Mode tasks are skipped and the connector assignment above is kept for later.

Connector used for player re-speech. Recommend to use a very 🏃‍♀️‍➡️Fast LLM.

Connector used for generating and compacting memory summaries that power long-term memory recall. Recommend using a smaller LLM.

CORE_CONNECTOR_SUMMARY_ENABLED
Make the Summaries connector available. When off, memory summary generation and compaction are skipped and the connector assignment above is kept for later.

Connector used to generate longer memories summaries after every 10 memory summaries. Can be enabled in CHIM NPC page. Recommend to user a smaller LLM.

CORE_CONNECTOR_MEDIUMTERM_ENABLED
Make the Background & Memory Tasks connector available. When off, those tasks are skipped and the connector assignment above is kept for later.

OpenRouter decision model, such as Jev, that picks the scene genre for ambient cues and, with STT Targeting on, which nearby NPC answers your voice input. Decision models only answer fixed choices and cannot write dialogue.

CORE_CONNECTOR_DECISION_ENABLED
Use the Decision Connector for scene genre and, when STT Targeting is on, for choosing who answers your voice input. When on, Scene Classifier (Legacy) is not used. Turning this off keeps its connector selection.

STT Targeting

STT_TARGETING_ENABLED
When several NPCs could answer your voice input and none is in your crosshair, ask the Decision Connector which one you meant. Your crosshair target still takes priority. If the decision fails, is slow or is unsure, the normal nearest-NPC choice is used. Needs the Decision Connector to be available. Does not change scene genre, recording or speech recognition.

Scene Classifier

DECISION_SCENE_CLASSIFIER_ENABLED
Let the Decision Connector pick the scene genre for ambient cues. When off, no scene genre is chosen and Scene Classifier (Legacy) is not used instead. Needs the Decision Connector to be available.

Quest Dialogue Intent

DECISION_QUEST_INTENT_ENABLED
Let the Decision Connector interpret your dialogue for Traditional Quest steps. If it is unsure, slow or unavailable, the quest stays unchanged. Needs the Decision Connector to be available.

Used when Decision Connector is disabled. A fast chat model that classifies recent scene tone/genre for ambient cues.

Connector used for Background Life. Recommend using a not expensive LLM. (gemini-3-flash, gtp-oss-120)

CORE_CONNECTOR_BGL_ENABLED
Make the Background Life connector available. When off, Background Life tasks are skipped and the connector assignment above is kept for later.

Scene Classifier (Legacy)

SCENE_CLASSIFIER_ENABLED
Enable Scene Classifier (Legacy). Used when Decision Connector is disabled: CHIM runs a small post-request genre/tone classification pass for ambient scene cues. Requires CORE_CONNECTOR_SCENECLASSIFIER or a valid fallback connector.

Short-Term Memory in Compact Chat

SHORT_TERM_MEMORY_IN_COMPACT_CHAT
Keep injecting short-term memory summaries while Compact Chat is active.
Turn this off if you use Compact Chat specifically to keep the prompt small.
Has no effect on profiles that do not have Short Term Memory enabled.

Connector used to update CHIM NPC Dynamic Profiles. Recommend to use a 🕹️Standard LLM.

CORE_CONNECTOR_PROFILES_ENABLED
Make the Profile Tasks connector available. When off, profile tasks are skipped and the connector assignment above is kept for later.

Connector used by Oghma Extractor Fallback and Multilingual Oghma Routing. Choose a fast chat-completions-compatible model; multilingual routing needs a model that understands your language.

Relationship System

RELATIONSHIP_SYSTEM_ENABLED
Enable the Relationship Management System. When enabled, NPCs will dynamically form and update relationships based on conversations and events. Requires RELLLM_CONNECTOR to be configured.

Never Clear Relationship Data

NEVER_CLEAR_RELATIONSHIP_DATA
Keep current NPC relationship data when loading any save, including older saves. This disables relationship timeline rollback and time-paradox cleanup, so NPCs may remember relationships from a later save.

Connector used for Relationship Management system. Analyzes and updates NPC relationships. Recommend to use a 🏃‍♀️‍➡️Fast LLM with ❄️low temperature (0.1-0.3) for consistent evaluations.

Relationship Update Chance

Integer: Percent chance (0-100) that an NPC's relationship with you updates automatically after they respond. Set 0 to turn automatic updates off; saved relationships are still used in prompts. Set 100 to update after every eligible response. Default: 50.

Power Awareness System

POWER_AWARENESS_ENABLED
NPCs will be aware of relative power levels (based on character level) and react appropriately to threats.

Decimal: Number of in-game hours between Background Life events. NPCs will generate thoughts and take actions based on this interval. Default: 24 hours. Range: 1-720 hours.

BGL_AUTO_ENROLL_ENABLED
Automatically add an NPC to Background Life after they reply to you and have enough recorded events. Removing an NPC by hand keeps them out. Actions, letters and combat stay off.

Integer: Number of recorded events an NPC must take part in before automatic Background Life enrollment. Default: 200. Range: 1-5000.

Integer: Minutes before an unlocked visual scene description expires from prompt context. Locked records do not expire.

The in-game date and time when your game started, not today's in-game date. CHIM adds elapsed game time to this date. Change it only if an alternate start mod begins your game on a different date. Use YYYY-MM-DD HH:MM:SS with the Fourth Era year as four digits. Default: 0201-08-17 00:00:00 (17th of Last Seed, 4E 201, midnight).

AI/LLM ConnectorsOpenRouter API (JSON)

OpenRouter API endpoint url. [help/doc]

Must be JSON/Instruct type of Model!
FREE MODELS ARE NOT RECOMMENDED!
[help/doc]

Integer: Maximum tokens to generate. [help/doc]

Temperature [0-2] [help/doc]

CONNECTOR openrouterjson ENFORCE_JSON
Will attempt to enforce dumb LLM's to stay in JSON format. Leave as default (TRUE), only works with specific models. [help/doc]

OpenRouter key

OpenRouter API (SUMMARY)

OpenRouter API endpoint url. [help/doc]

Model to use.
FREE MODELS ARE NOT RECOMMENDED!
[help/doc]

Integer: Maximum tokens to generate for regular responses, NOT SUMMARIES. [help/doc]

Temperature [0-2] [help/doc]

OpenRouter key

Integer: Maximum tokens to generate when summarizing, diary entries, and dynamic profile updates.

OpenAI/ChatGPT API (JSON)

OpenAI API endpoint

Model to use [help/doc]

CONNECTOR openaijson reasoning_model
Select True if this is a reasoning model and you want to remove CoT. [help/doc]

Integer: Maximum tokens to generate

Temperature [0-2] [help/doc]

OpenAI API key [help/doc]

CONNECTOR openaijson json_schema
Enable OpenAI Json schema. Does not work with all OpenAI's models [help/doc]

OpenAI/ChatGPT API (SUMMARY)

OpenAI API endpoint

Model to use [help/doc]

CONNECTOR openai reasoning_model
Select True if this is a reasoning model and you want to remove CoT. [help/doc]

Integer: Maximum tokens to generate for regular responses, NOT SUMMARIES.

Temperature [0-2] [help/doc]

OpenAI API key [help/doc]

Integer: Maximum tokens to generate when summarizing, diary entries, and dynamic profile updates.

Google OpenAI API (JSON/SUMMARY)

Google OpenAI API endpoint

Model to use [help/doc]

Integer: Maximum tokens to generate

Temperature [0-2] [help/doc]

Google API key [help/doc]

Integer: Maximum tokens to generate when summarizing, diary entries, and dynamic profile updates.

CONNECTOR google_openaijson json_schema
Enable OpenAI Json schema. [help/doc]

KoboldCPP API (JSON)

Kobold should be running on the same machine as DwemerDistro!
Must use your computers, not the DwemerDistro, IP Address.
Can be found by running the command 'ipconfig' in your CMD prompt.
Example: http://your-local-ip:8008 [help/doc]

Integer: Maximum tokens to generate

Temperature [0-2]

Repetition Penalty [0-2]

CONNECTOR koboldcppjson PREFILL_JSON
Will prefill JSON, which is useful for some AI models, and destroy others.

CONNECTOR koboldcppjson newline_as_stopseq
A new line in the output that will be considered a stop sequence. Recommended to leave as default.

CONNECTOR koboldcppjson use_default_badwordsids
Unban End of Sentence (EOS) tokens. If set to false the LLM will stop generating when it detects an EOS token.

EOS token LLM uses. Only works if use_default_badwordsids is enabled.

Prompt Format. Specified in the HuggingFace model card

CONNECTOR koboldcppjson grammar
Enforces use of JSON grammar. True to enforce (generation speed loss, but json format guaranteed). if false, the generation speed will be better but will depend on the model to produce valid JSON output.

KoboldCPP API (SUMMARY)

Kobold should be running on the same machine as DwemerDistro!
Must use your computers, not the DwemerDistro, IP Address.
Can be found by running the command 'ipconfig' in your CMD prompt.
Example: http://your-local-ip:8008 [help/doc]

Integer: Maximum tokens to generate for regular responses, NOT SUMMARIES.

Temperature [0-2]

Integer: Maximum tokens to generate when summarizing, diary entries, and dynamic profile updates.

CONNECTOR koboldcpp newline_as_stopseq
A new line in the output that will be considered a stop sequence. Recommended to leave as default.

CONNECTOR koboldcpp use_default_badwordsids
Unban End of Sentence (EOS) tokens. If set to false the LLM will stop generating when it detects an EOS token.

EOS token LLM uses. Only works if use_default_badwordsids is enabled.

Prompt Format. Specified in the HuggingFace model card

Player2 API (JSON)

Player2 should be running on the same machine as DwemerDistro! Will connect automatically so do not change the URL. Does not currently support Chat Assist/Creation. [help/doc]

Text-to-Speech Service

Text-to-Speech service options. Used to generate AI NPC voice.

Text-to-Speech ServiceCHIM XTTS

Leave as is if using CHIM XTTS. If you want to use Mantella XTTS then click[HOST PC IP]. [WSL IP] will set it back to point to CHIM XTTS. [help/doc]

Language to use.

Generated voice file name. Click the help link to go to XTTS management. [help/doc]

Default profile only. Logic used for generating [TTS XTTSFASTAPI voiceid]
voicetype = NPC voicetype ID (femalenord)
name = NPC name (mjoll_the_lioness)

TTS XTTSFASTAPI PARALINGUISTIC_TAGS_ENABLED
Enable paralinguistic tags like [laugh], [sigh] for expressive TTS output.

Prompt snippet instructing the LLM to use paralinguistic tags. Added to system prompt when enabled.

Comma-separated list of supported paralinguistic tags (e.g., [laugh],[sigh],[gasp]). Tags are case-insensitive.

Chatterbox

Chatterbox endpoint. DwemerDistro uses dedicated port 8023. Click[HOST PC IP] or [WSL IP] to configure. [help/doc]

Language to use.

Generated voice file name. Click the help link to go to voice management. [help/doc]

Default profile only. Logic used for generating [TTS CHATTERBOX voiceid]
voicetype = NPC voicetype ID (femalenord)
name = NPC name (mjoll_the_lioness)

TTS CHATTERBOX PARALINGUISTIC_TAGS_ENABLED
Enable paralinguistic tags like [laugh], [sigh] for expressive TTS output.

Prompt snippet instructing the LLM to use paralinguistic tags. Added to system prompt when enabled.

Comma-separated list of supported paralinguistic tags (e.g., [laugh],[sigh],[gasp]). Tags are case-insensitive.

Higgs TTS 3

Higgs service address. DwemerDistro uses port 8025.

Model ID exposed by the Higgs service. Default: higgs-v3.

Reference voice name.

Select the NPC voice type or name.

OmniVoice

OmniVoice endpoint. DwemerDistro default is 8021. Click[HOST PC IP] or [WSL IP] to configure. [help/doc]

Active OmniVoice language profile.

Generated voice file name. Use a VoiceID from the installed OmniVoice language library.

Default profile only. Logic used for generating [TTS OMNIVOICE voiceid]
voicetype = NPC voicetype ID (femalenord)
name = NPC name (mjoll_the_lioness)

PocketTTS

PocketTTS endpoint. DwemerDistro audio.cpp PocketTTS uses port 8086; Python PocketTTS uses dedicated port 8024. The connector detects the API automatically from the endpoint. [help/doc]

audio.cpp model id. Default: pocket-tts.

Language to use.

Generated voice file name. Click the help link to go to voice management. [help/doc]

Default profile only. Logic used for generating [TTS POCKETTTS voiceid]
voicetype = NPC voicetype ID (femalenord)
name = NPC name (mjoll_the_lioness)

xVASynth

Click [Host PC IP] to set the URL to point to xVASynth. Should be running on the same machine as DwemerDistro! [help/doc]

Base language

Model Type

xVASynth version (e.g. 3.0 is default. Older models are 1.0 or 2.0)

xVASynth gameID (e.g. skyrim)

xVASynth voiceID (e.g. sk_femaleeventoned)

Decimal: Pace

Wave Glow Path (relative)

Vocoder

Leave as default!

Piper-TTS

Piper-TTS endpoint URL. The IP address of the machine where Piper-TTS is installed.

MUST DOWNLOAD VOICES MANUALLY! CLICK HELP LINK FOR INSTRUCTIONS! Voice ID code. Model voices are stored in 'models' folder in .onnx files. Voice ID is the file name without extension. [help/doc]

Zonos TTS

Manual for Zonos can be found here. Endpoint URL. Can be ran on : Vast.ai

Language [help/doc]

Default profile only. Model to use.

TTS ZONOS_GRADIO dynamic_tones
Default profile only. Enhance emotional quality by requesting values from the LLM. If false, emotions will be determined by the LLM-selected mood.

Generated voice file name. Works the same as CHIM-XTTS voiceid and uses its voicelogic setting. Will only work with voices in your Voice Cache.

Decimal: Pitch standard deviation [0-300]

Decimal: Speaking rate. Higher is faster. [5-30]

Decimal: CFG scale. Controls how closely the audio matches the sample voice. Higher numbers will be a closer match. [1.1 - 5]

Path to the sample audio stored in zonos. Leave as default; it is set automatically.

Azure Text-To-Speech

Force mood (voice style) [help/doc]

Region location of your API key

Voice [help/doc]

Integer: Volume [help/doc]

Azure TTS API KEY

OpenAI TTS

Endpoint URL [help/doc]

API KEY

Voice ID [help/doc]

Model [help/doc]

Control the voice of your generated audio with additional instructions. Does not work with tts-1 or tts-1-hd. [help/doc]

Deepgram TTS

API KEY

Voice ID [help/doc]

ElevenLabs Text-To-Speech

ElevenLabs voice ID to speak with. [help/doc]

Reduces response delay at some cost to quality and text handling. Use 0 for default behavior; higher values favor speed more aggressively. [help/doc]

ElevenLabs model to use for this connector. Use eleven_v3 if you want V3 enhancers or audio tags. [help/doc]

Decimal: Adds extra stylization and exaggeration to the delivery. Higher values can sound more dramatic, but may increase latency.

Decimal: Adjusts the speaking rate of the generated audio. 1.0 is normal speed.

TTS ELEVEN_LABS use_speaker_boost
Boosts resemblance to the original voice at a small latency cost. Ignored by eleven_v3.

Controls whether numbers, dates, abbreviations, and similar text are rewritten before speech. Auto lets ElevenLabs decide, on always normalizes, and off keeps the raw text.

TTS ELEVEN_LABS apply_language_text_normalization
Enables extra language-specific cleanup before synthesis. This is mainly useful for languages that need special text handling, such as Japanese.

Optional Eleven v3 prompt tags added before the text, such as [whispers] or [curious]. Only used when model_id is eleven_v3.

Legacy ElevenLabs API key setting. Prefer assigning an ElevenLabs API Badge to the connector instead.

Google Cloud Platform Text-To-Speech

Google Cloud Platform auth file. Should be placed in the data folder. [help/doc]

Voice [help/doc]

Language code [help/doc]

Decimal: Rate

Pitch

CONVAI TTS

Endpoint URL [help/doc]

API KEY

Language [help/doc]

Voice id (check compatability with language) [help/doc]

KOKORO 82M

Endpoint URL [help/doc]

Voice id (check compatability with language) [help/doc]

Decimal: Speed

KoboldCPP TTS

Endpoint URL

Voice to use

Cartesia TTS

Cartesia API key.

Voice file name. Works the same as CHIM-XTTS voiceid. Will only work with voices in your Voice Cache. Voice will be automatically cloned to Cartesia when first used. [help/doc]

Language to use for TTS generation. Available languages depend on the selected model.

Choose Sonic 3.5 or 3.6, or a dated snapshot to pin a release. Existing connectors keep their selected model. [help/doc]

Optional, Sonic 3.6 only. For multilingual voices, enter an accent ID supported by the selected voice, such as general-american or standard-hindi. Leave blank for the voice default. [help/doc]

Speaking speed for the voice

Inworld TTS

Inworld workspace ID (required for voice cloning). Format: workspaces/{workspace} or just the workspace ID. [help/doc]

Voice file name. Works the same as CHIM-XTTS voiceid. Will only work with voices in your Voice Cache. Voice will be automatically cloned to Inworld when first used. [help/doc]

Language to use for TTS generation. Uses BCP-47 regional language codes.

Inworld model to use. inworld-tts-2 prioritizes quality; inworld-tts-2-flash prioritizes speed. [help/doc]

Sampling temperature (0-2). Higher values make output more random. Default: 1.0

Decimal: Speaking rate/speed (0.5-1.5). Default: 1.0

TTS INWORLD PARALINGUISTIC_TAGS_ENABLED
Let the LLM write delivery and sound tags for Inworld, e.g. [smug] Nice swing. [laugh]. With inworld-tts-2 the LLM may also write its own short directions such as [mad as hell]. Tags are removed from subtitles and history. Edit tags

Player TTS

Text-to-Speech service options. Used to generate your voice.

VoiceID to use for the player character.

Overrides the TTS language for the player character.

Translation Service

Translate subtitles and/or audio into a different language.

Translation ServiceTranslation Settings

TRANSLATION settings translate_audio
This NPC's audio will be translated to the target language.

TRANSLATION settings translate_text
This NPC's subtitles will be translated to the target language.

TRANSLATION settings save_translated_text
Replaces the NPC's speech in the context history with the translation. Only used if translate_audio or translate_text is true.

TRANSLATION settings translate_player_audio
When speaking to this NPC, Player TTS audio will be translated to the player target language.

TRANSLATION settings save_translated_player_text
Replaces the player's input in the context history with the translation. Only used if translate_player_audio is true.
Note: player subtitles are always displayed in their original language.

DeepL

This NPC's source language to be translated from. This should be the language that the LLM responds with.
May be left blank for auto-detection. [help/doc]

This NPC's target language to be translated into. Required. [help/doc]

DeepL endpoint url. Default profile only.
Free: https://api-free.deepl.com/v2/translate
Pro: https://api.deepl.com/v2/translate

Player's source language to be translated from. This should be the language you speak with STT or input by text.
May be left blank for auto-detection. [help/doc]

Player's target language to be translated into. [help/doc]

DeepL api key. Default profile only.
Required even when using the free version.

PLAYER_RESPEECH
Make the Player Respeech connector available. When off, player speech is never rewritten and the connector assignment is kept for later.

Speech-to-Text Service

Speech-to-Text service options. Translates your voice to text.

Speech-to-Text ServiceOpenAI's Whisper

Language to detect for STT.

STT WHISPER TRANSLATE
Will try to translate to english.

OpenAI API key.

Azure Speech-to-Text

Language to detect for STT.

Specifies how to handle profanity in recognition results. Accepted values are:
MASKED, which replaces profanity with asterisks.
REMOVED, which removes all profanity from the result.
RAW, which includes profanity in the result. [help/doc]

Azure API key.

Local Whisper (Installed in DwemerDistro)

Local whisper endpoint. Leave as is if you installed localwhisper through the Distro. [help/doc]

Form field name for audio file. Sometimes needed to change to file to use another shiper implementations

Deepgram's Whisper Speech-to-Text

Deepgram API key.

Language

Model to use

Google Gemini STT + Emotion Detection

Google AI API key (from aistudio.google.com).

Language (e.g., en, es, ja)

Gemini model. 2.5 Flash recommended for best speed and quality.

parakeet-api-server

Language to detect for STT.

Inworld STT

Inworld API key. Can also be managed from API Badge under Inworld.

Model identifier in provider/model format, e.g. groq/whisper-large-v3.

Language code in BCP-47 format, e.g. en-US. Leave blank for auto-detect.

Soulgaze (ITT)

Image recognition aka Soulgaze spell. OpenAI also works as a connector to OpenRouter!

Must be configured in default profile!

Custom OpenAI-Compatible Service

Endpoint for a custom OpenAI-compatible vision/chat completions service.

Model to use for image analysis.

Integer: Maximum tokens to generate

Low or high fidelity image understanding

Optional API key for the custom service

Prompt to send to the custom vision model.

Prompt for the AI NPC to follow when describing the scene.

OpenAI/OpenRouter

OpenAI API or OpenRouter endpoint. Use this for OpenRouter (https://openrouter.ai/api/v1/chat/completions)

Model to use [help/doc]

Integer: Maximum tokens to generate

Low or high fidelity image understanding [help/doc]

OpenAI API key [help/doc]

Prompt to send to the OpenAI vision model.

Prompt for the AI NPC to follow when describing the scene.

Google OpenAI API

Google OpenAI API.

Model to use [help/doc]

Integer: Maximum tokens to generate

Low or high fidelity image understanding [help/doc]

OpenAI API key [help/doc]

Prompt to send to the OpenAI vision model.

Prompt for the AI NPC to follow when describing the scene.

LLama Server (Installed in DwemerDistro)

URL of the llama.cpp server [help/doc]

Prompt to send to the llama vision model.

Prompt for the AI NPC to follow when describing the scene.

OpenRouter API

OpenRouter API endpoint

Model to use

Integer: Maximum tokens to generate

Low or high fidelity image understanding

OpenRouter API key

Prompt to send to the vision model.

Prompt for the AI NPC to follow when describing the scene.

Memory ConfigurationMemory Settings

FEATURES MEMORY_EMBEDDING ENABLED
Enable long-term memory recall. The system injects relevant memory summaries into AI context for responses.

MiniMe/TXT2VEC service base URL. Use http://127.0.0.1:8082 for the local DwemerDistro service, or set the reachable URL of a remote service.

FEATURES MEMORY_EMBEDDING USE_TEXT2VEC
Use TXT2VEC to create embeddings for memories. These are more accurate than keywords.

Integer: Time in minutes to delay before using a memory in a prompt. Used to avoid pushing recent dialogues as memories.

Integer: The amount of the most relevant memory records that will be injected into the prompt.

FEATURES MEMORY_EMBEDDING AUTO_CREATE_SUMMARYS
Will combine individual memory logs into larger ones. Is more accurate for memory recollection but will use up more tokens. If using koboldcpp, use the multiuser mode to avoid locking.

Integer: Time frame used to pack summary data. Each point is about 0.24 in-game hours. Examples: 5 = 1.2 in-game hours | 10 = 2.4 in-game hours | 50 = 12 in-game hours

Integer: Minimum number of events required in a packed time bucket before creating a global memory summary. Default: 5

Integer: How many global memory summaries involving an NPC are required before creating one NPC-scoped individual memory summary. Default: 3

Decimal: From 0 (never) to 100 (always). Minimal distance to offer memory.

Decimal: From 0 (never) to 100 (always). Minimal distance to offer and endorse memory.

Experimental Options (Use at your own risk!)
Quick Access for default
THIS MENU IS NO LONGER USED FOR CONFIGURATION OF CHIM. YOU CAN JUST USE THIS MENU TO HELP SEE PREVIOUS SETTINGS FOR MIGRATION.'
conf.php