Turn LM Studio into your personal game master β a fully local AI game master for narrative role-play (RPG) and interactive fiction, running entirely on your own machine.
You type what your character does. The plugin quietly hands the model a fresh briefing every turn β the world, the characters on stage, what's happened so far, the tone you asked for β and the model narrates the next beat. You never see the briefing; you just get a story that remembers.
Work in progress β but the core loop is playable and tested live in LM Studio.
Source, bugs & ideas β the project is open-source on GitHub: hydropix/RolePlayMasterLMStudio. Hit a bug or want a feature? Open an issue.
LM Studio runs great local models, but a plain chat forgets your world, your cast, and what happened ten messages ago. RolePlay Master adds the missing layer:
Two complete universes ship with the plugin β cast, lore and mechanics included. Pick one in the settings and start:
Or build your own: drop a universe folder in and it appears in the dropdown.
On your first turn you'll get a short Setup check that flags anything missing (e.g. an embedding model for semantic matching) and tells you how to play.
Any chat model works, but role-play rewards models tuned for prose and character. Pick by GPU memory β search the name in LM Studio and grab a GGUF.
Tested against the plugin's real opening prompt (15 runs each): every 16 GB and 24 GB pick below played reliably. At 8 GB, use the Gemma-4-12B β the 12B Mistral-Nemo fine-tunes (Rocinante-X, UnslopNemo) write fine prose but drop the required option menu ~half the time on the full prompt.
Default β Gemma 4 fine-tunes. The widest language coverage (Gemma spans ~140 languages), reliable at following the plugin's turn structure, and a line that fits every tier. These are decensored builds; Gemma is agreeable by default, so keep an eye on whether NPCs still push back:
zaakirio/gemma-4-12b-it-uncensored-GGUF Β· quant IQ4_XSllmfan46/gemma-4-26B-A4B-it-qat-q4_0-uncensored-heretic-GGUF Β· quant Q4_0llmfan46/gemma-4-31B-it-qat-q4_0-uncensored-heretic-GGUF Β· quant Q4_0Alternative β Mistral role-play fine-tunes. Uncensored, and they hold a character's stance a little harder, which suits the will of their own layer. Reliable from 16 GB up β at 8 GB use the Gemma above (skip the 12B Nemo builds, see the note):
TheDrummer/Cydonia-24B-v4.3 Β· quant Q4_K_MTheDrummer/Skyfall-31B-v4.2 Β· quant Q5_K_MLess "AI-slop" (anti-clichΓ©). The StyleTune builds retune only Gemma's output layer (~50% fewer clichΓ©s, instruction-following intact, so NPCs still push back; not decensored). They start at 16 GB; at 8 GB stay on the Gemma-4-12B above:
mradermacher/Gemma-4-26B-A4B-StyleTune-V2-i1-GGUF Β· quant Q4_K_Mmradermacher/Gemma-4-31B-StyleTune-i1-GGUF Β· quant Q5_K_MThe plugin sets the narration sampling itself every turn β temperature
(in the RolePlay Master panel; default 0.8, 0.7β0.85 is the sweet spot, nudge
Gemma toward 1.0), plus a min-p floor and a gentle repeat penalty. So don't
chase those in LM Studio's chat sampler.
What you do set in LM Studio is the model load β when you load the model:
16384 (16k) is plenty: the plugin's memory and recall are
built to live in a fixed window, and overflow is handled gracefully.Want a fresh adventure without losing the current one? Pick οΌ New story in the Story dropdown and type a name. Same world, characters and lore β but its own memory and progress. A new name starts clean; pick an existing save to continue it.
Each story is a single file in the plugin's saves/ folder
(saves/<universe>__<name>.json) β that file is your save. Back it up, or
move a story to another machine, by copying that file; reset a story by
deleting it. The dropdown is read once when the plugin loads, so reload the
plugin after adding or removing save files for the list to catch up.
The in-app panel shows only what a player actually touches: active universe, story (save), a few toggles (numbered choices, game mechanics, status line, rolling memory, long-term recall, semantic matching, setup check, debug) and temperature. A universe carries its own identity (name, setting, narration style); selecting one brings its world with it. Hover the β on any field for the full explanation.
Tip β Semantic matching (lore/characters triggering by meaning) needs an embedding model loaded in LM Studio β a multilingual one like
bge-m3is ideal. Without it, matching falls back to plain keywords.
Rather than just preprocessing your message, RolePlay Master drives the whole
generation cycle. Each turn it pulls the full conversation, selects the relevant
world and characters, assembles a real system prompt, manages its own context
window, and generates with your selected model β so the story stays consistent
without any manual prompt-wrangling on your side.
MIT. Built by hydropix.
2d6+stat dice on risky
choices, loot, enemies with their own health, and a code-enforced game over.saltmereverdanceQ8_0; this is what lets 16k fit on tight
VRAM with no visible quality loss (needs Flash Attention on)./mj:
/mj <instruction> β direct the story from now on (e.g. /mj steer toward horror)/mj! <instruction> β apply it just this once/mj tone <mood> β set the mood/mj clear β wipe your directions/mj restart β erase the current save (memory, sheets, arc, progress) and start over