A premium connection-profile rotation extension for SillyTavern by Hyperion.
Roulette rotates between SillyTavern connection profiles during a chat — sequentially or by weighted random — so you can mix models, parameters, and providers without manually switching. Built around a glassy revolver-cylinder visualisation that turns the rotation into a moment, not a menu.
The longer your chat runs, the more value Roulette adds. Four reasons most users install it:
| Reason | What it solves | Best for |
|---|---|---|
| Beat prose fatigue | Long single-model chats develop visible patterns — same rhythms, same body-language tics. Even one alternate model in the rotation breaks the spell. | Long-running characters, multi-thousand-message arcs. |
| Pace your spend | Schedule a flagship model 1-in-5 alongside a cheap workhorse. Most turns cost pennies; the premium model lands occasionally for variety. | Anyone juggling API budgets. |
| Mitigate refusals | Different models have different rails. When one balks, the next switch hands the keyboard to a model with different boundaries. | Mature scenes, edge cases, anyone tired of re-rolling. |
| Discover models honestly | Drop a candidate into the rotation and let it co-exist with your favourites for a few sessions. Real side-by-side, in your real chat. | Evaluating new providers without rebuilding your setup. |
In SillyTavern: Extensions → Install Extension → Install from URL and paste this repository's URL.
Manual install: clone into data/<user>/extensions/SillyTavern-Roulette/ (per-user) or public/scripts/extensions/third-party/SillyTavern-Roulette/ (global), then enable in the Extensions panel.
Requires at least two connection profiles defined in SillyTavern's Connection Profiles extension.
A 3-model rotation in five steps. Assumes Roulette is installed.
- Define three connection profiles in SillyTavern's Connection Profiles UI. Pick three different models you want in the mix — e.g.
Sonnet 4.5,GLM-4.7,DeepSeek v3. Give them clear names; you'll pick from these names in step 3. - Open the Roulette modal — click the dice icon next to the chat input, or the Open Roulette button in the Extensions drawer.
- Queues tab → New queue. Name it (e.g. Long-fiction blend). Pick Sequential mode, drag in your three profiles, set each slot's count (try
Sonnet=3,GLM=2,DeepSeek=4). - Save. The queue appears as a card with a mini-cylinder preview. Click Simulate 20 picks in the editor first if you want to sanity-check the sequence.
- Chamber tab → Spin (or use the drawer's queue picker + Start). The cylinder loads, and from now on each AI response rotates through the chambers automatically.
The pill in the chat input shows the active queue and how many responses remain in the current slot. Hover for detail; click to reopen the modal.
Four queue configurations that map to common roleplayer goals. Drop into the editor, save, run.
Three frontier models in sequence, biased toward your favourite. Prevents prose fatigue across long arcs.
| Slot | Profile | Count |
|---|---|---|
| 1 | Your favourite (e.g. Sonnet) | 3 |
| 2 | Alternate voice (e.g. GLM or Gemini) | 2 |
| 3 | Tertiary (e.g. DeepSeek) | 4 |
Mode: Sequential · ~9 turns per cycle.
Cheap model handles 80% of turns; flagship steps in occasionally for variety.
| Slot | Profile | Weight |
|---|---|---|
| 1 | Cheap workhorse (free-tier OpenRouter, local Llama, etc.) | 4 |
| 2 | Flagship treat (Sonnet, Gemini Pro, GPT-5) | 1 |
Mode: Weighted-random · run length range 1–3 · no-repeat off.
A character with two distinct internal voices. Each turn alternates — same character, two minds.
| Slot | Profile | Count |
|---|---|---|
| 1 | "Voice A" (warm, verbose) | 1 |
| 2 | "Voice B" (cold, terse) | 1 |
Mode: Sequential with count 1 each. Or Weighted-random with no-repeat-in-row enabled and equal weights for non-rigid alternation.
Most turns are predictable; occasionally something unexpected happens. Genuine narrative randomness.
| Slot | Profile | Weight |
|---|---|---|
| 1 | Reliable narrator | 5 |
| 2 | Reliable narrator (alt) | 3 |
| 3 | Wildcard (a model known to surprise you) | 1 |
Mode: Weighted-random · run length range 1–2.
| Mode | Behaviour |
|---|---|
| Sequential | Walks slots in order, looping back to the start. Each slot runs for either a fixed count or a range (rolled when the slot becomes active). |
| Weighted-random | Picks a slot by weighted random selection on each rotation boundary. Run length is fixed or rolled from a range. Optional don't repeat the same profile twice in a row toggle forces variety. |
Per-chat state — every chat tracks its own rotation independently. Switch chats, and each one keeps its own active queue, slot, and counter.
Manual override — if you switch profiles via SillyTavern's normal selector mid-rotation, Roulette pauses with a Resume affordance until you decide to continue.
Profile-deletion error path — if a slot's profile is deleted, Roulette skips it. Three consecutive failed slots halts the rotation with a toast.
| Tab | What it is |
|---|---|
| Chamber | The live cylinder. Brass collar around glassy chambers; active chamber highlighted with a brass glow + pip ring counting down responses-remaining. Sequential clicks one notch per advance; weighted-random spins with wheel-of-fortune deceleration. |
| Queues | Card grid of saved queues, each with a mini-cylinder preview. Click to edit (drag-to-reorder slots, simulate 20 picks live). Import / export as JSON for sharing. |
| History | Every AI response logged with its profile of origin. Trail strip shows the last twelve, full list newest-first. |
| Settings | Animation speed slider (0.25× to 2×), accent-colour picker (six metal presets + custom), profile-palette display. |
| Command | Effect |
|---|---|
/roulette-start <queueName> |
Activate a queue on the current chat |
/roulette-stop |
Deactivate rotation |
/roulette-status |
Print current state |
/roulette-skip |
Force-advance to the next slot |
| Version | Status | Notes |
|---|---|---|
| v1.0 | Current | Initial public release. Modal redesign, glassy cylinder, drag-to-reorder, simulate-20-picks, queue export/import, history view, animation/accent settings. |
Roulette is one piece of a larger ecosystem. If you want to experience what these tools can really do when paired with handcrafted characters, deep worldbuilding, and a curated community, check out:
Timeless Tavern — a SillyTavern instance hosted by me, Hyperion. Multi-user, multi-world, and running on a prompt architecture that goes well beyond what's published here. Access is through the Discord.
HYPERCODE — my premium roleplay system prompt framework. Drop-in replacement for whatever you're running now; pairs naturally with Roulette. GitHub →
- Discord — Hype Discord — Community, support, and access to Timeless Tavern.
- Ko-fi — ko-fi.com/hype — Support the work. Memberships and commissions available.
- The Hyperium — Substack — Writing, worldbuilding, and studio updates.
- Tumblr — @hyperionblackthorne — AI art and dark aesthetic.
Roulette is released under AGPL-3.0 — the same license as SillyTavern. You're free to use, share, and adapt it; derivative works distributed publicly must remain open under the same terms. See the license file for full terms.
Found a bug? Have a recipe that should be in the README? Open an issue or submit a PR. Community contributions that improve the framework — especially additional recipes for common rotation patterns — are welcome.
If you build something cool with Roulette, I'd love to hear about it. Drop into the Discord and share.
Crafted by Hyperion
