Story Schema

Each story is based on a specific schema that QuestBoard and RPGChain can read. You can edit this content directly using the Edit Code button at the top of your story

Below is the full schema description for a story (note that QuestBoard looks at certain meta properties that might not be defined in the schema below)

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Quest",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "system": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "image": {
      "type": "string",
      "description": "Path to the quest image"
    },
    "flags": {
      "type": "array",
      "description": "Flags indicating special conditions in the quest",
      "items": {
        "type": "string"
      }
    },
    "checks": {
      "type": "array",
      "description": "Checks for specific conditions based on flags",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Unique identifier"
          },
          "flag": {
            "type": "string",
            "description": "Flag required for the check to return success"
          },
          "success": {
            "type": "string",
            "description": "Action to take if successful"
          },
          "fail": {
            "type": "string",
            "description": "Action to take if fail"
          }
        },
        "required": ["key", "flag", "success", "fail"]
      }
    },
    "rolls": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Unique identifier"
          },
          "dc": {
            "type": ["string", "number"],
            "description": "Static DC for the roll (optional)"
          },
          "label": {
            "type": "string",
            "description": "Label describing the roll action"
          },
          "success": {
            "type": "string",
            "description": "Action to take if the roll is successful"
          },
          "fail": {
            "type": "string",
            "description": "Action to take if the roll fails"
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "type": ["string", "number", "boolean", "object", "array", "null"]
            }
          }
        },
        "required": ["key", "label", "success", "fail"]
      }
    },
    "pages": {
      "type": "array",
      "description": "List of pages in the quest",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Unique identifier for the page"
          },
          "image": {
            "type": "string",
            "description": "Path to the page's image"
          },
          "bodies": {
            "type": "array",
            "description": "Array of body text strings for the page",
            "items": {
              "type": "string",
              "description": "Content text for the page"
            }
          },
          "options": {
            "type": "array",
            "description": "List of options available on the page",
            "items": {
              "type": "object",
              "properties": {
                "action": {
                  "type": "string",
                  "description": "Action identifier for the option"
                },
                "labels": {
                  "type": "array",
                  "description": "Array of text labels for the option",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": ["action", "labels"]
            }
          },
          "randomizeOptions": {
            "type": "boolean",
            "description": "Randomize the order of the options"
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "type": ["string", "number", "boolean", "object", "array", "null"]
            }
          }
        },
        "required": ["key", "bodies"]
      }
    },
    "meta": {
        "type": "object",
        "additionalProperties": {
        "type": ["string", "number", "boolean", "object", "array", "null"]
      }
    }
  },
  "required": ["name", "description", "image", "pages"],
  "additionalProperties": false
}

Last updated