You can write your own murder mystery for Damning Details and share it with other players. You don't need to know how to program. A case is one text file that holds your story, its people, places and clues. Aftermath stories, pictures and music are optional extras.
This guide shows you how to plan a case, walks through a complete example you can copy, and explains every part of the file. If an AI assistant helps you, give it this guide too.
mission.en.json and, if you like, pictures and music.When a player imports your case, the game checks it. If anything is wrong, the case is refused with a single message that doesn't say why, so use the checklist below before you share.
Write down what really happened before you write a single clue. A good mystery is a true story that the player uncovers piece by piece.
Keep your first case small: two or three suspects, one or two witnesses, and eight to twelve clues.
The player collects clues in three ways:
Clues can depend on each other:
Every clue has a role in the solution:
Curtain Call at the Quillfield Playhouse is a short case you can copy and change. This section spoils it.
Victor Hale, a theatre director, is found dead on the stage after a dress rehearsal. Three people are in the building:
Here is how its clues connect:
MEANS prop trunk โ Bloodstained Stage Weight
MOTIVE Victor's body โ Desk Key
Desk Key opens the desk drawer โ Understudy's Contract
OPPORTUNITY Question Ada โ Ada's Account
Show Ada the Bloodstained Stage Weight and Ada's Account โ Ada's Sighting
Question Iris โ Iris's Account
Deduce from Iris's Account and Ada's Sighting โ Iris's Alibi Contradiction
RED HERRING cash box โ Box Office Takings Book
Show Simon the Box Office Takings Book โ Simon's Explanation
| Clue | Type | Role | Proves |
|---|---|---|---|
| Desk Key | Physical, on the body | Prerequisite | Nothing; it opens the drawer |
| Bloodstained Stage Weight | Physical | Critical | Iris's means |
| Understudy's Contract | Physical, locked | Critical | Iris's motive |
| Ada's Account | Testimony | Prerequisite | The time of the blow |
| Ada's Sighting | Testimony, after showing clues | Prerequisite | Leads to the deduction |
| Iris's Account | Testimony | Prerequisite | Iris's claim that she last saw Victor at 22:00 and stayed in her Dressing Room until 22:20 |
| Iris's Alibi Contradiction | Deduction | Critical | Iris's opportunity |
| Box Office Takings Book | Physical | Misleading | Simon's apparent motive |
| Simon's Explanation | Testimony, after showing a clue | Misleading | Simon's side of the story |
The quickest solve takes ten turns. The example also has optional aftermath stories, some of which depend on what the player found. It has no pictures or music, which are optional too.
To play it, download quillfield-playhouse.zip and import it. To read its file, open mission.en.json.
To start your own case from it, unzip it, rename the folder, change the ID to the new folder name, and edit mission.en.json. On Windows, Extract All puts the case inside a second folder of the same name: use the inner one, the folder that holds mission.en.json.
"NAME": "Victor Hale".{ } holds named parts, and [ ] holds a list.true and false answer yes-or-no questions, and null means "none".\" for a double quote and \n\n to start a new paragraph.**double stars** to show them in bold. The example uses bold for people and for things worth examining.{player} becomes the detective's name. It doesn't work in the opening brief or in short fields such as BIO and DESCRIPTION. Don't use curly brackets for anything else.The file has two parts, as in the example: the opening brief, NARRATIVE, at the top, and GAME_BIBLE, which holds everything else. Every part is required unless it's marked optional. You can leave an optional part out, or set it to null.
| Field | What it's for |
|---|---|
NARRATIVE (at the top) | The opening brief the player reads before the investigation begins. Name the victim and everyone the player can question, say where to find them, and explain why the killer must be one of them. |
ID | Your case's unique name. It must match the folder name exactly. |
DIFFICULTY | "easy" or "hard", shown on the case card. |
STORY_CONTEXT | The one-sentence description on the case card. Set the scene without naming the victim, anyone's role or where anyone is, because the briefing puzzle may ask the player to work these out. |
CRIME_SCENE โ NAME | The case's title. |
START_PLAYER_LOCATION | The place where the investigation starts. Its picture also appears on the case card. |
BRIEFING_PUZZLE_TYPE | Optional. Before the brief, the player can solve a puzzle about the cast: "victim" (find the victim) or "location" (place everyone). Leave it out and the game picks one. |
CRIME_SCENE โ LOCATIONS lists the places. Each place has two texts in NARRATIVE: first, for the first visit, and again, for later visits. Mention the people waiting there and the things worth examining.
LOCATION_OBJECTS lists ordinary things to examine in each place, with first and again texts. They hold no clues, but they add atmosphere and can unlock an aftermath story. They're required: every place needs one to three of them. Things that hold clues, such as the prop trunk, aren't listed here: naming one as a clue's CONTAINER is enough.
Name places and things so they read well after "the": "Go to the Stage", "Examine the prop trunk". Avoid names like "Room 4" or "Simon's Room".
SUSPECTS and WITNESSES list the people the player can question.
| Field | What it's for |
|---|---|
NAME, ROLE | Who they are, such as "Ada Finch", "Usher". |
LOCATION | Where the player finds them. People stay in one place. |
BIO | A short, public introduction, shown when the player opens a conversation. |
NARRATIVE โ question | Their answer to "What can you tell me?". |
NARRATIVE โ ask_alibi | Suspects only: their answer to "Where were you at the time?". |
PROPOSED_ALIBI | Suspects only: a one-line summary of that answer, shown in the case files once the player asks. |
SECRET | Suspects only: your note of what they're hiding. Players don't see it, but it's required. |
IS_KILLER | Suspects only: true for exactly one suspect, false for the rest. |
The answer to "Where were you at the time?" isn't a clue, so the player can't show it to anyone or use it in a deduction. Put a claim the player must break in a testimony clue instead, like Iris's Account in the example.
The VICTIM has NAME, ROLE, LOCATION and BIO, plus:
METHOD_OF_DEATH: how they died. Players see it once they've found every means clue, so don't name the killer here.NARRATIVE โ first and again: what the player sees when examining the body.Write the victim's BIO in the present tense, as if they were alive, because the briefing puzzle shows it among the others.
EVIDENCE_AVAILABLE lists every clue. Each clue starts with a short key of your choice, such as "desk_key", which other parts of the file use to refer to it.
| Field | What it's for |
|---|---|
NAME | The clue's name, as the player sees it. Keep it neutral: "Iris's Account", not "Iris's Lie". |
TYPE | "physical", "testimony" or "deduction". |
LOCATION | The place where it's found. |
CONTAINER | Where in that place: the thing to examine, such as "prop trunk"; the victim's name, in the victim's place, for something found on the body; or a person's name for something they say or hand over. |
NARRATIVE | What the player reads on finding it. |
DESCRIPTION | A short, plain summary for the player's case files. |
RELEVANCE | "critical", "misleading" or "prerequisite", as explained above. |
CATEGORY | What the clue is about: "means" for means, "secret" for motive or "alibi" for opportunity. |
POINTS_TO | The suspect the clue is about. |
REQUIRES | Optional. The keys of the clues the player needs first. |
NARRATIVE_LOCKED | Optional. For a locked container: what the player reads when trying it before finding the opener. Without it, the container stays hidden until it can be opened. |
Some fields depend on the clue's type:
CONTAINER is the person's name, and LOCATION is where they wait. Without REQUIRES, the player gets it by asking them "What can you tell me?". With REQUIRES, the player gets it by showing that person exactly those clues.LOCATION and CONTAINER are null, REQUIRES lists at least two clues, and NARRATIVE explains the reasoning.CATEGORY and POINTS_TO can be null when the clue is about nobody in particular, like the key.KILLER_LOGIC holds your notes on the killer's MOTIVE, MEANS and OPPORTUNITY, which players don't see, and the NARRATIVE the player reads after a correct accusation: the detective's explanation and the killer's confession. All four are required.
CHRONOLOGY is your timeline of what really happened. Players don't see it, but it's required: it keeps your story straight, and it helps anyone, including an AI assistant, who works on your case.
After the case is solved, the player can read what became of everyone. Without AFTERMATH, the case ends after the confession. AFTERMATH holds groups of stories, each under a short name of your choice, such as "simon". From each group, the player reads the first story whose REQUIRES they've met. The example has three kinds of group:
REQUIRES, so every player reads it.REQUIRES for everyone else. Put the fallback last.REQUIRES can list clue keys, an ordinary object the player examined, written as ["Director's Office", "framed poster"], or a conversation the player had, written as ["Simon Pratt", "question"] or ["Simon Pratt", "ask_alibi"].
Each story needs a TITLE, unique within the case, and its NARRATIVE. REQUIRES is optional, and so is PORTRAITS, which lists the people whose pictures, or initials, appear above the title. A fallback must not mention a secret the player may have missed.
A case plays fine without any. To add them, put the files in the case folder and name them in the file:
"IMAGE" on a place, person, ordinary object, physical clue, deduction or aftermath story, such as "IMAGE": "location-stage.jpg". The official cases use 800ร450 JPEG files for scenes and 160ร160 PNG files for portraits."CONTAINER_IMAGE" on a locked clue: the picture of its locked container.MUSIC: an INVESTIGATION list of songs for the investigation, an AFTERMATH list for the aftermath, or both. Each song has an INTRO and a LOOP file, and optionally an OUTRO. A song with an outro plays its intro, its loop four times and its outro, then moves on to the next song. A song without one repeats its loop. Without MUSIC, the game's own music plays."MUSIC": {
"INVESTIGATION": [
{"INTRO": "music-backstage-intro.mp3", "LOOP": "music-backstage-loop.mp3", "OUTRO": "music-backstage-outro.mp3"}
],
"AFTERMATH": [
{"INTRO": "music-encore-intro.mp3", "LOOP": "music-encore-loop.mp3"}
]
}
Use only the file name, spelled exactly as in the folder. Share only pictures and music you have the right to share.
REQUIRES.again texts must still be true after the player has found everything.DESCRIPTION short and factual, and attribute claims: "Iris says she last saw Victor at 22:00", not "Iris last saw Victor at 22:00".The game checks all of this when your case is imported.
The folder and file
People and places
Clues
Text
Aftermath and music, if you add them
An AI assistant can turn your story notes into a case file, or check one you wrote. To get good results: