Top

SillyTavern Presets: Why the One You Downloaded Did Nothing (2026)

In SillyTavern, “preset” is not one thing. It names up to five separate saved files, and which of them exist depends on a choice you made before you ever opened the settings: whether you connected a Text Completion API or a Chat Completion one.

That fork explains nearly every preset that was downloaded, imported, and then appeared to do nothing at all.

The two modes use entirely different prompt builders. SillyTavern’s own documentation says so in as many words, on the instruct mode page and again on the Advanced Formatting page: instruct templates and context templates apply to Text Completion APIs and are “not applicable” to Chat Completion ones, which are governed by the Prompt Manager instead. A file built for one side of that line is not a slightly wrong preset for the other side. It is a different kind of object.

So the first question is never “which preset is best”. It is “which half of the application am I in”, and then “which of these files am I actually holding”.

This guide answers both, says where each file sits on disk, and lists the six documented ways a preset quietly stops being the one you selected. If you have not connected an API yet, start with the SillyTavern setup guide; if nothing is generating at all, that is a different problem and lives in SillyTavern not working. Presets also behave differently once several characters share a scene — see SillyTavern group chats.

The Fork That Decides Everything

Everything below depends on which of these you picked in the API Connections panel.

Chat Completion covers OpenAI, Claude, Gemini, DeepSeek, Mistral, xAI, Groq, OpenRouter, NanoGPT, Z.AI and the long tail of OpenAI-compatible services. SillyTavern’s source lists more than two dozen Chat Completion sources. These APIs take a structured list of messages with roles attached, so SillyTavern builds the prompt as a sequence of role-tagged blocks.

Text Completion covers KoboldCpp, text-generation-webui, Ollama, TabbyAPI, Aphrodite, llama.cpp, AI Horde and NovelAI. These take one flat string, so SillyTavern has to assemble that string itself — deciding the wrapping, the separators, the order, and the exact tokens that mark whose turn it is.

That difference is not cosmetic. In Text Completion mode SillyTavern is responsible for formatting that Chat Completion mode hands to the provider. Which is why Text Completion needs four saved files and Chat Completion needs one.

What “Preset” Names in Each Mode

What it is calledModeWhat it actually holds
Chat Completion presetChat CompletionSamplers, every Prompt Manager prompt and its order, utility prompts, reasoning settings — the whole configuration in one file
Settings presetText CompletionSamplers only: temperature, repetition penalty, top-p and friends
Context templateText CompletionThe story string: how character description, personality, scenario, persona and world info are assembled into the preamble
Instruct templateText CompletionThe turn markers the model was trained on — Alpaca, ChatML, Llama 3, Mistral V7 and so on
System promptText CompletionThe general standing instruction, stored separately since it was split out of instruct templates

The row that causes the most confusion is the second one. A Text Completion “settings preset” is only the samplers. It is a much smaller thing than a Chat Completion preset, which is why someone coming from an OpenRouter setup to a local model often feels like the preset they loaded is missing most of its contents. It is. The rest of it is in three other dropdowns.

Two backends sit slightly outside this scheme: KoboldAI Classic and NovelAI keep their own preset files, in their own folders, because their settings do not map cleanly onto the generic text completion ones.

Where They Live on Disk

People search for this constantly, usually to back presets up or move them to a new machine. The folder names come straight from SillyTavern’s source, where the user directory layout is defined as a fixed template.

On a standard single-user install everything sits under data/default-user/:

FolderContents
OpenAI Settings/All Chat Completion presets
TextGen Settings/Text Completion sampler presets
instruct/Instruct templates
context/Context templates
sysprompt/System prompts
KoboldAI Settings/KoboldAI Classic presets
NovelAI Settings/NovelAI presets

The first row is worth pausing on, because the name is actively misleading in 2026. OpenAI Settings holds every Chat Completion preset regardless of provider. Your Claude preset is in there. Your Gemini preset is in there. Your DeepSeek preset is in there. The folder is named after the API shape SillyTavern first supported, not after the company, and nothing has been renamed since. If you went looking for a Claude folder and concluded your preset had not saved, it had.

Everything in those folders is plain JSON. Copying the folders is a complete backup of your presets, and it is a more reliable one than exporting them individually through the interface.

If you are on a multi-user install, default-user becomes the handle of each account, and every account gets its own copy of all of the above.

Importing One Without It Silently Failing

The failure mode is specific: nothing errors, nothing warns, the output just does not change. Three causes account for nearly all of it.

It was built for the other mode. This is the big one. A Chat Completion preset dropped into a KoboldCpp setup has nowhere to go, because the panel it belongs to is not the panel governing your connection. Check the mode first. If the Advanced Formatting panel looks mostly greyed out or irrelevant, you are in Chat Completion mode, and instruct and context templates are not going to do anything for you no matter how good they are.

Only part of it arrived. A Text Completion “preset” shared on Reddit or a rentry page is often three or four files, and people import the samplers, see no change, and stop. If the pack contains a context template and an instruct template, those are the parts doing the visible work. Samplers change the texture of the writing; templates change whether the model understands the request at all.

The instruct template does not match the model. This is the one that produces genuinely broken output rather than merely mediocre output — the model talking as both characters, leaking ### Response: into the reply, or refusing to stop. The documentation is blunt about the requirement: a chosen instruct template “must match the expectations of an actual model that is running on a backend”, and the model card on Hugging Face is usually where that is stated.

You can make that last one automatic. Two mechanisms exist, and both are documented:

  • Activation Regex. An instruct template can carry a regular expression; when the connected model’s name matches it, that template is selected automatically. Only the first match across templates wins, evaluated in alphabetical order, and instruct mode has to be enabled first.
  • Derived templates. On llama.cpp and KoboldCpp only, SillyTavern can hash the chat template declared in the model’s tokenizer_config.json and compare it against its own defaults. If the hash matches a known template — Llama 3, Gemma 2, Mistral V7 and so on — it selects it for you. Turn on the derive templates option in Advanced Formatting. It only covers the shipped defaults, so a template you renamed or deleted will not be found.

If you are running local models, turning on derived templates removes a whole category of self-inflicted problem. It is the single highest-value setting in this article for local model users.

The Samplers, Briefly

Sampler settings are the part everyone tweaks first and the part that matters least for whether a setup works at all. Two of them are not samplers and matter more than all the rest.

Context (tokens) is the maximum SillyTavern will send as the prompt, minus the response length. It covers character information, system prompts and chat history together. SillyTavern draws a dotted line between messages to mark the edge: anything above that line is not being sent. If your character keeps forgetting something, look at the line before you look at the samplers — the mechanism is the same one described in why LLMs forget.

Response (tokens) is the ceiling on the reply. Raising it makes generation slower; leaving it low is the most common reason replies get cut off mid-sentence.

Temperature controls randomness in token selection. Below 1.0 favours the higher-probability tokens and reads as more predictable; above 1.0 gives lower-probability tokens a better chance and reads as more creative, up to the point where it reads as incoherent. Set to 1 for the model’s original probabilities.

Repetition penalty exists to curb repetition, and it is the setting most often blamed for a problem it cannot fix. If a character is repeating itself structurally — same opening beat, same closing question, every turn — that is usually the example dialogue or a card teaching the format, not the sampler. There is a fuller treatment in the roleplay repetition loop.

The honest summary: sampler presets are worth having, and they are not where your problems are. If a setup is producing garbage, the instruct template is a far more likely culprit than the temperature.

In Chat Completion, the Prompt Manager Is the Preset

Chat Completion users have one file, and most of what is in it is the Prompt Manager: a drag-and-drop list of prompt blocks, in send order, top first.

Some of those blocks are permanent. The documentation calls them default or pinned prompts: Main Prompt, World Info before and after, Persona Description, Character Description, Character Personality, Scenario, Enhance Definitions, Auxiliary Prompt, Chat Examples, Chat History and Post-History Instructions. You can toggle any of them off. You cannot delete them.

Each prompt in the list carries four properties that are worth understanding, because they are what a well-built downloaded preset is really using:

Role — whether the block is sent as System, User or AI Assistant.

Position — Relative sends it where it sits in the list. In-Chat ignores the list order entirely and injects it inside the chat history instead.

Depth — only applies to In-Chat. Depth 0 lands after the last message, depth 1 before the last message, depth 2 before the second-to-last, and so on. This is the mechanism behind every “put your instructions at depth 4” tip you have read, and the reason it works: an instruction sitting two messages from the end of a long conversation is far harder for the model to lose than the same instruction sitting thousands of tokens up at the top.

Triggers — which generation types send this prompt. Normal, Continue, Impersonate, Swipe, Regenerate and Quiet are the options, and leaving it empty sends the prompt for all of them. Regenerate is not available in group chats, which use different logic.

The Prompt Manager is also where a preset can quietly change behaviour you did not ask about. Utility prompts in the same panel govern the Group Nudge template used in group chats, the New Chat and New Example Chat separators, the Continue Nudge, and the Character Names Behavior strategy that tells the model which messages belong to whom. A downloaded preset carries all of these. If group chats or Continue started behaving differently after you imported something, that is where to look.

Six Ways a Preset Stops Being the One You Picked

Each of these is documented behaviour, not a bug. Each one looks like a bug the first time.

1. A preset named after a character selects itself. SillyTavern’s documentation states plainly that if a preset shares a name with one of your character cards, it is automatically selected when you start a chat with that character. It is a convenience feature and a reasonable one. It is also the most confusing thing in the entire preset system, because the obvious way to name the preset you built for Marcus is “Marcus”. The documentation’s advice is the right advice: name presets something unique.

2. Changing an instruct template discards unsaved edits. The warning is explicit — changing a template resets the unsaved settings to the last saved state. Save before you switch.

3. Editing a Prompt Manager prompt needs two saves. One Save inside the prompt editor, then a second Save on the preset itself at the top of the AI Response Configuration panel. Miss the second and the change survives until you switch preset, then vanishes. This one burns people repeatedly because the first save gives every appearance of having worked.

4. Connection profiles store selections, not settings. A profile records which preset is chosen, not what is inside it. The documentation is direct: profiles “only save the selection in dropdown fields, without knowing anything about the underlying settings”, so switching profiles loses unsaved changes. Worse, profile settings are written to settings.json without touching the profile’s own save file until you press Update — so configure a profile, switch away without updating, and the configuration is gone.

5. A profile switch could leave the old source connected. This was a real bug, and it is fixed: SillyTavern 1.19.0, released 14 September 2026, lists “fixed connection profile switching leaving the previous Chat Completion source active”. If you are on an older build and have ever switched profiles and been certain the wrong model answered, you were probably right. Update.

6. Presets are per-user. On a multi-user install every account has its own OpenAI Settings and TextGen Settings folders. A preset saved on one account does not exist on another.

Connection Profiles: What People Mean by “Master Preset”

The recurring request is for one saved thing that switches everything at once. That thing exists, it is called a connection profile, and it has shipped as a built-in extension since SillyTavern 1.12.6. It is in the API Connections menu.

A profile stores the API type, model and server URL, the secret key, the settings preset, Start Reply With, custom stopping strings and reasoning formatting. In Text Completion mode it adds the system prompt and its state, the instruct mode state and template, the context template and the tokenizer. In Chat Completion mode it adds prompt post-processing and the proxy preset.

That is the whole switch in one click, and it is the correct answer for anyone running a local model in the evening and a paid API at work, or testing the same character across three providers.

It is also scriptable, which is underused. The slash commands are /profile to switch or report the current one, /profile-create, /profile-list, /profile-get and /profile-update. Anything you can write in STScript can switch your entire connection mid-chat.

The caveat is the one from the list above, and it is worth repeating because it defeats the entire feature: a profile points at presets, it does not contain them. Press Update after you change anything, or the profile is pointing at a version of your settings that no longer exists.

Do You Actually Need a Downloaded Preset?

Often, no — and the honest version of this answer is not what the preset-sharing culture around the tool suggests.

A preset is mostly an accumulation of workarounds for one specific model’s habits. That is genuinely valuable when you are running the model it was built for, and actively harmful otherwise: a preset written to beat DeepSeek’s tendencies applied to Gemini is a stack of instructions solving problems Gemini does not have, occupying context that could hold your world instead.

So the useful order is:

  1. Get the instruct template right if you are in Text Completion mode. Nothing else matters until the model understands the shape of the request. Derive it automatically if your backend supports it.
  2. Set context and response lengths to match what you are paying for, or what your hardware can hold.
  3. Then go looking for a preset, and only one built for your exact model.

A downloaded preset is a shortcut past someone else’s experimentation with a particular model. If you are not running that model, you are importing the experiment without the conditions. The defaults plus a correct instruct template will beat a mismatched preset every time, and they will be far easier to debug when something goes wrong.

The Short Version

  • “Preset” names five different files. Which ones apply depends on Text Completion versus Chat Completion, and the two use entirely different prompt builders.
  • Chat Completion: one preset holds everything, and most of it is the Prompt Manager.
  • Text Completion: samplers, context template, instruct template and system prompt are four separate saves.
  • Presets live in data/default-user/, with every Chat Completion preset in OpenAI Settings regardless of provider.
  • An imported preset that does nothing was almost always built for the other mode.
  • The instruct template matters more than any sampler. Automate it with derived templates on llama.cpp or KoboldCpp.
  • Never name a preset after a character card, or it will select itself.
  • Save twice in the Prompt Manager, and press Update on connection profiles.
  • Connection profiles are the master switch, but they store selections rather than settings.

Frequently Asked Questions

What is a preset in SillyTavern? A preset is a saved bundle of settings, but SillyTavern has several separate ones rather than a single file, and which ones apply depends on the kind of API you connected. In Chat Completion mode, used for OpenAI, Claude, Gemini, DeepSeek, OpenRouter and most paid APIs, one Chat Completion preset holds the samplers and the whole Prompt Manager arrangement together. In Text Completion mode, used for KoboldCpp, Ollama, text-generation-webui, Horde and local models, the same job is split across four separately saved things: a settings preset for the samplers, a context template, an instruct template and a system prompt. Text Completion users have four files to keep in sync; Chat Completion users have one.

Why does my imported SillyTavern preset do nothing? In most cases because it was built for the other API mode. A Chat Completion preset and a Text Completion sampler preset are different files with different contents, and SillyTavern will not apply one to the other. The documentation is explicit that Chat Completion APIs use an entirely different prompt builder, so instruct templates and context templates simply do not apply to them, and the Advanced Formatting panel is mostly inert while you are connected that way. Check which mode your connection is in first, then import the matching file. The second most common cause is importing the samplers but not the instruct and context templates that were meant to travel with them.

Where are SillyTavern presets stored? Under your user data folder, which is data/default-user on a standard single-user install. Chat Completion presets live in OpenAI Settings, and that folder holds every Chat Completion preset regardless of provider, so your Claude and Gemini presets are in there too. Text Completion sampler presets live in TextGen Settings. Instruct templates, context templates and system prompts each have their own folder named instruct, context and sysprompt. KoboldAI Settings and NovelAI Settings hold those two backends’ own presets. All of them are plain JSON, so you can back them up by copying the folders.

What is the best SillyTavern preset for roleplay? There is no best preset, because a preset is mostly a wrapper around one specific model’s quirks. A preset tuned for DeepSeek encodes what DeepSeek needs, and pasting it onto Gemini or a local Mistral produces worse output than the defaults would. Match the preset to the model you are actually running, and for Text Completion models match the instruct template to the prompt format the model was trained on, which the model card on Hugging Face normally states. SillyTavern ships defaults for the well-known formats, and on llama.cpp and KoboldCpp it can select the right one automatically if you turn on the derive templates option.

Why did SillyTavern change my preset by itself? Probably the character name rule. SillyTavern’s documentation states that if a Chat Completion preset shares a name with one of your character cards, it is automatically selected when you start a chat with that character. It is a deliberate feature, but it looks exactly like a bug if you did not know about it, and it is easy to trigger by naming a preset after the character you built it for. Rename the preset to something no card uses. The other cause is switching a connection profile, which changes every dropdown at once and discards anything you had not saved.

Do I lose my settings when I switch presets? Yes, if you did not save them, and this catches almost everyone once. Unsaved changes are ephemeral. Changing an instruct template resets unsaved settings to the last saved state. Connection profiles only store which entries are selected in the dropdowns, not the settings underneath them, so switching profiles without pressing Update loses your edits. Editing a prompt inside the Prompt Manager needs two saves rather than one: the Save in the prompt editor, and then the Save on the preset itself, or the edit is gone the next time you switch preset.

What is the difference between a preset and a connection profile? A preset holds settings. A connection profile holds a list of which presets and templates are chosen. Connection profiles arrived as a built-in extension in SillyTavern 1.12.6 and store the API type, model, server URL, secret key, settings preset, stopping strings and reasoning formatting, plus the Text Completion templates or the Chat Completion post-processing depending on the mode. That makes a profile the closest thing to the “master preset” people ask for. The catch is in the documentation: a profile only saves the selection in a dropdown and knows nothing about the underlying settings, so it can point at a preset you have since edited and not saved.


Field behaviour, panel scope and the connection-profile contents were checked against SillyTavern’s own documentation on 21 September 2026; the user data folder names were read from the project’s source, and the connection-profile fix is quoted from the 1.19.0 release notes of 14 September 2026. SillyTavern is free, open-source software and Arcanum is an independent publication with no affiliation to the project or to any model provider or backend named here; all names are used nominatively.