Writing GM Instructions
Here’s how your Game Master reads your instructions, and how to write ones it follows.
Key Concepts
Before we jump into writing instructions, here are a few key concepts about how LLMs use context and follow instructions. Understanding them will help you write better instructions.
Context rot: As the input gets longer, model accuracy degrades, even on simple tasks and even when the relevant information is clearly there. More text spreads the GM’s attention thinner, and distractions get harder to ignore. There’s more in Context Rot.
Instruction dilution: The more rules you give an AI at once, the more likely it is to forget or ignore some of them. It’s easy to follow a few clear instructions, but hard to follow a hundred at the same time.
Primacy/recency bias: Models pay the most attention to the very beginning and very end of what they read, and the least to the middle. Craft is built around this:
- Always on instructions go at the very beginning, in the system prompt (primacy).
- Situational instructions are added at the very end, right next to the player’s latest message, and only on turns where they apply (recency).
- Procedures aren’t in the prompt at all. The GM sees a list of their titles and reads a whole procedure when its moment comes, so its steps arrive just as the GM needs them.
- Everything in between, like the conversation so far and the files the GM looks up, is the middle.
So a situational instruction often works better than the same rule left always on. When it fires, it lands where the GM pays the most attention, at the moment it matters.
Your instructions are only half of it
The other half is the LLM you’re using. Different LLMs have different intelligence levels (as you can see here), and they score differently on different kinds of tasks. Even the strongest models aren’t perfect. Cost effective models have come a long way, but it’s unrealistic to expect them to follow every instruction perfectly today. We can expect them to get better over time. Different LLMs also act differently on the same instructions, so expect some variety.
When the GM isn’t following an instruction, here’s how to tell whether the problem is the instruction or the model:
- Retry the turn a couple of times on the same model. LLMs don’t answer the same way twice, so one bad turn might be bad luck.
- If it keeps failing, switch to a stronger model and retry.
- If the stronger model gets it right, your instruction is fine and the model is the problem.
- If the stronger model gets it wrong too, the instruction probably needs rewriting.
Always on: keep it minimal
Always on instructions are designed around primacy and instruction dilution. Craft puts them in the GM’s system prompt, at the very beginning of everything the GM reads, so they’re as strong as they can be. But each one you add makes the others a little weaker. That’s why Craft limits always on instructions to 10,000 characters. The limit forces you to decide which instructions matter most. Only put something here if the GM should follow it ALL THE TIME.
-
It should apply to 90%+ of turns. Good always on
instructions are the premise of your world, the GM’s voice and tone, your
core game system context, and the few rules no turn may break. For example:
- Premise of the world: “A high fantasy 5e world called Ashfall: a drowned coast where smugglers rule the night and the Watch is for sale.”
- Voice and tone: “Grim and wry. Danger is real; cruelty isn’t the point. Short, vivid sentences.”
- Core Game System Context: “5e rules: roll a d20 plus the modifier against a DC. 10 is easy, 15 is hard, 20 is heroic.”
- Anytime you can move an instruction into situational, do it. “When a player barters with a shopkeeper…” doesn’t belong in always on, even if bartering happens often.
- Split out the one-moment parts. If an always on rule has a part that’s only for one moment (how NPCs talk, what happens at 0 HP), move that part into its own situational instruction.
- Read Craft’s defaults first. Craft already gives the GM instructions like Player agency, A good turn, and When to roll, and player options for response length, story pacing and long-distance travel. They have a small Craft hammer on them. Don’t repeat them. If you want something different, edit Craft’s version instead of adding a second instruction that argues with it.
Situational: write triggers the GM can spot
Before every player turn, a quick check reads the player’s move, the GM’s last reply, and a short note about the scene. Then it asks, for each situational instruction, whether its trigger is happening right now. Up to 5 that match, likeliest first, are given to the GM for that turn.
-
Describe a moment you can see in the story. The check can’t
see character sheets, trackers, or hidden numbers.
- Works: “When the player tries to lie to or persuade someone”
- Unreliable: “When the player’s Heat is above 5”
- Don’t make triggers too broad. “When anything happens in combat” fires all the time and takes one of the 5 spots from a more useful instruction.
- Test your triggers in the Instruction tester. Type a player’s move and it shows which instructions would fire.
- Split by mutually exclusive, merge by overlap. A few specific instructions usually work better than one broad one, so split “When someone attacks” into separate melee, ranged, and spell attack instructions. But if one moment would set off several instructions at once, merge them. “A feat is used,” “A character uses a Mana Feat,” and “A feat needs a saving throw” can all fire together, so make them one “When someone uses a feat.”
Procedures: a clear title and when to use it
A procedure holds the steps for running a longer moment, like a fight’s rounds, a negotiation or a heist’s phases. It can be up to 10,000 characters, far more than a situational instruction. No check picks a procedure: the GM chooses one from its list by its title and “Use it when…”, so those two lines do all the work.
- Name it for its moment. “Ship combat”, used “When the ship fights another ship”, tells the GM exactly when to read it. A vague title like “Rules 2” gives it nothing to go on.
- Write the steps in order. Say first what the procedure runs, then each step. Leave out rules that already have their own situational instruction.
- Keep it for a fight, let it go after a single turn. Set Pruned to On compaction for a procedure that runs over several turns, so the GM doesn’t have to read it again every turn. Leave it on After use for one a single turn covers.
- Keep the list short. A game can have up to 25 procedures of your own beside Craft's four (Travel, Running a fight, Trackers and Hidden things), and fewer is better, since the GM picks from the list by title. Merge procedures that run alike, turn short ones into situational instructions, and don't repeat what Craft's already say.
Player options: small picks, big changes
A player option looks like a small lobby setting, but only the picked choice’s instructions go to the GM, and they shape every turn. To build your own, see Player Options.
Why they matter so much
- A pick weighs as much as your own rules. Its always on text goes in the system prompt right after your instructions, and its situational ones use the same triggers as yours.
- Craft’s options run in every game. Unless you change them, every game plays on Varied response length, Driven story pacing and Up to the GM travel.
- Story pacing reaches the GM twice. The picked pace’s last paragraph, on how a reply ends, also goes right beside a player’s message after each scene change or memory chapter, and again when the pace changes. Your own rule about how replies end competes with it in both places.
- Long-distance travel changes the game, not just the prose. Fast travel arrives in the same reply, and Journey plays the road out over several. Craft’s travel system follows the pick, so it decides where the party ends up on the map.
- Every choice counts toward your budget. The 10,000 character always on budget assumes the largest game a player could set up, so a long choice takes room even if nobody picks it.
- Players can switch mid-game. The change applies from the next turn, so your instructions must work with every choice.
Don’t let your instructions argue with the pick
When your always on instructions and the picked choice disagree, the GM has to guess, and the player’s pick can lose to a rule they can’t see:
- “Keep replies short and punchy,” and a player who picks Long.
- “Every scene should have danger,” and a player who picks Slice of life.
- “Always end by asking the player what they do,” which every pace forbids.
Put anything that should vary with a setting into that setting’s choices. For short replies, make Short the default instead of writing a length rule. For your own pacing, rewrite Story pacing’s choices.
Customizing Craft’s player options
In the Game Master place (the crowned die on the left rail), go to Player options. Craft’s options carry the Craft hammer, and you can edit them like your own:
- Change the default. Open a choice and turn on Picked by default. A cozy world might start on Slice of life, a horror one-shot on Short.
- Rewrite a choice. Open it and click its instruction. Journey could travel by caravan and river barge, or Driven could name your world’s threats.
- Reword what players see. Click the option’s name or question to edit it. A choice’s name and description are in its drawer.
- Add or remove choices. Use Add choice, then Add instruction, for something Craft doesn’t offer, like a Breakneck pace. Remove a choice from its drawer.
- Remove the whole option. Remove from this world, in its ⋯ menu, hides it from players, drops its instructions and frees one of a game’s 9 player option places. Restore, in the toolbar, brings it back.
- Reorder. Drag its grip, or use Move up and Move down in its ⋯ menu.
Once you change one of Craft’s options, it’s your world’s own copy:
- Any change counts, even only the default, but reordering doesn’t. Craft’s updates stop reaching it, and the hammer turns amber when Craft improves its version.
- Use Craft’s version, in the ⋯ menu, swaps your changes for Craft’s current version.
- New games start with your version. Running games get it when their owner syncs (see Game and Project Sync).
- Game owners can still customize their own game’s copy (see Customizing a game’s options).
Let GM Harness 2 do its job
- Don’t make the GM read and research more than it needs. We’ve seen instructions like “Every single turn, read every lore page and make sure your turn is accurate to the world lore. When you’re done, audit every file in the game and make sure all of the state matches perfectly.” Instructions like this cause context rot. The GM spends its attention calling tools to read and update files instead of writing good narration.
- Strip back your bookkeeping instructions. GM Harness 2 now handles a lot more bookkeeping on its own than the old GM did. That includes remembering the story over a long game, tracking who’s in a scene and where, running turn order in fights, and creating files for new characters. Instructions written for the old GM often repeat this work. That wastes your budget and can fight with what GM Harness 2 already does. Take your bookkeeping instructions out, play test, then add back only what the GM doesn’t handle on its own.
- Might players want a rule to work differently? Make it a player option. Tone, difficulty, lethality, and house rules are good examples. Only the choice the player picks goes to the GM, so three versions of a rule cost no more than one.
How to word an instruction
- Tell the GM what you want, not only what you don’t. A “don’t” rule leaves the GM to guess what to do instead. Swap “Don’t be wordy” for “Keep replies to two short paragraphs,” or “Don’t railroad the player” for “Let the player drive the story, you should improvise and continue from the direction the player is going in.”
- Be careful with examples. LLMs copy examples closely. Write one sample of how an NPC talks and every NPC may start talking that way. Give two or three different examples, or describe the pattern instead.
- Remove contradictions. That includes contradictions with your own rule files and with Craft’s defaults. When two rules disagree, the GM has to guess which one you meant.
- Use the exact field names from your sheets. If the sheet says “Defense,” don’t call it AC in one instruction and Armor in another.
- Watch for over-correction. A rule added to fix one bad turn can make the GM overdo it everywhere. “Don’t let the player win easily” can turn into a GM that punishes everything.
Testing a change
- Test in a fresh game. The GM tends to copy its own recent replies, so an old habit can carry on for a few turns after you fix the instruction.
- Open the System prompt page to see exactly what the GM gets every turn.
- Check every choice, not only the default. On the System prompt page, use Change player options to see what the GM gets with each choice (in a world it’s only a preview). Compare choices, in an option’s ⋯ menu, marks the words that differ.
- Play a game on each choice you changed. The Instruction tester covers every choice’s situational instructions, but only play shows how an always on choice feels.
Write by hand, audit with Claude Code
Write your instructions by hand, not with AI. AI-written instructions tend to be long, repetitive, and full of emphasis, which is everything this guide warns against. And you know what you want from your world better than any AI does.
Once you’ve written them, use Claude Code and the Craft CLI to check them against this guide:
- Set up Claude Code with the Craft CLI (see Use With Coding Agents).
-
Give Claude this prompt, with this guide pasted at the end:
Use the Craft CLI to clone my project [your project link]. Read my GM instructions (the game options in project.json) and audit them against the guide below. For each problem, tell me which instruction it's in, what part of the guide it goes against, and a suggested fix. Don't change or push anything. [paste this guide here] - Go through the list and make the changes you agree with yourself, in the app.
Quick checklist
- Every always on instruction applies to 90%+ of turns
- Nothing repeats or argues with Craft’s defaults
- Every trigger describes a moment you can see in the story
- One moment per situational instruction, with no duplicates
- Long step-by-step rules are procedures, each with a clear title and when to use it
- No instructions to read files every turn
- Bookkeeping instructions stripped back to what GM Harness 2 doesn’t already handle
- Rules players might want differently are player options
- Craft’s player options fit your world, and no instruction argues with any choice
- No shouting, no contradictions, and the same names as your sheets
- Tested in a fresh game, retried more than once, and on a stronger model if needed