Summary

Description
An Item from the games, like “Poké Ball” or “Bicycle”.
Data path
resources/data/item/
Schema
https://poketools.gamestuff.info/data/schema/item.json

Filename

Item identifier

A machine-usable name for the entity. This is usually a munged version of the entity name. An identifier must consist only of lowercase ASCII characters, 0-9, and/or a hyphen.

i.e. anything unique to the entity matching the regular expression ^[a-z0-9\-]+$ (Test it here)

type
string
pattern
^[a-z0-9\-]+$ (Test)

Top-level keys

Version group identifier

A machine-usable name for the entity. This is usually a munged version of the entity name. An identifier must consist only of lowercase ASCII characters, 0-9, and/or a hyphen.

i.e. anything unique to the entity matching the regular expression ^[a-z0-9\-]+$ (Test it here)

type
string
pattern
^[a-z0-9\-]+$ (Test)

Fields

name

The entity’s user-facing name. All of UTF-8 is valid here, so use “é” where appropriate.

type

string

required

category

Item Category identifier. A machine-usable name for the entity. This is usually a munged version of the entity name. An identifier must consist only of lowercase ASCII characters, 0-9, and/or a hyphen.

i.e. anything unique to the entity matching the regular expression ^[a-z0-9\-]+$ (Test it here)

type

string

pattern

^[a-z0-9\-]+$ (Test)

required

pocket

Item Pocket identifier. A machine-usable name for the entity. This is usually a munged version of the entity name. An identifier must consist only of lowercase ASCII characters, 0-9, and/or a hyphen.

i.e. anything unique to the entity matching the regular expression ^[a-z0-9\-]+$ (Test it here)

type
string
pattern
^[a-z0-9\-]+$ (Test)

buy

Item purchase price. Omit if this item cannot be purchased.

type
integer
minimum
1

sell

Item sell price, usually half the purchase price. Omit if this item cannot be sold.

type
integer
minimum
1

flags

A list of Item Flag identifiers. Flags are special attributes that affect how the game treats this item.

type
list[string]

fling_effect

Fling effect identifier; i.e. the effect the move Fling has when used by a Pokémon holding this item.

A machine-usable name for the entity. This is usually a munged version of the entity name. An identifier must consist only of lowercase ASCII characters, 0-9, and/or a hyphen.

i.e. anything unique to the entity matching the regular expression ^[a-z0-9\-]+$ (Test it here)

type
string
pattern
^[a-z0-9\-]+$ (Test)

fling_power

The power the move Fling has when used by a Pokémon holding this item.

type
integer
minimum
0

machine

TM/HM data; omit if this item is not a machine.

type
mapping

type

The type of machine

type
string
values
  • TM
  • HM
required

number

Machine number

type
integer
minimum
1
required

move

Identifier for the Move this machine teaches.

A machine-usable name for the entity. This is usually a munged version of the entity name. An identifier must consist only of lowercase ASCII characters, 0-9, and/or a hyphen.

i.e. anything unique to the entity matching the regular expression ^[a-z0-9\-]+$ (Test it here)

type

string

pattern

^[a-z0-9\-]+$ (Test)

required

berry

Berry data; omit if this item is not a berry.

type
mapping

number

Berry number, used for flavor.

type
integer
minimum
1

firmness

Berry Firmness identifier. A machine-usable name for the entity. This is usually a munged version of the entity name. An identifier must consist only of lowercase ASCII characters, 0-9, and/or a hyphen.

i.e. anything unique to the entity matching the regular expression ^[a-z0-9\-]+$ (Test it here)

type
string
pattern
^[a-z0-9\-]+$ (Test)

natural_gift_type

Identifier for the Type the move Natural Gift has when used by a Pokémon holding this item. A machine-usable name for the entity. This is usually a munged version of the entity name. An identifier must consist only of lowercase ASCII characters, 0-9, and/or a hyphen.

i.e. anything unique to the entity matching the regular expression ^[a-z0-9\-]+$ (Test it here)

type
string
pattern
^[a-z0-9\-]+$ (Test)

natural_gift_power

The power the move Natural Gift has when used by a Pokémon holding this item.

type
integer
minimum
0

size

Berry size, in millimeters.

type
integer
minimum
1

growth_time

The length of one growth stage, in hours. Berries go through several of these growth stages before they can be picked, although the number of stages varies by generation.

type
integer
minimum
1

water

The speed at which this Berry dries out the soil as it grows. A higher rate means the soil dries more quickly. This is an arbitrary scale.

type
integer
minimum
1

smoothness

The smoothness of this Berry, used in making Pokéblocks or Poffins. This is an arbitrary scale

type
integer
minimum
1

flavors

A mapping of Berry flavor intensity. The keys are Berry flavor identifiers, the values are flavor levels.

type
mapping[string: integer]
values
minimum
1

harvest

The number of berries that can grow on one tree.

A range is either a single integer or two integers separated by a hyphen, e.g. 5 or 1-10.

minimum
1

flavor_text

The game displays this on the “tag”.

How this entity is described in-game. Include line breaks where appropriate.

type
string

decoration

Decoration data; omit if this item is not a decoration

width

How many tiles wide this decoration is.

type
integer
minimum
1

height

How many tiles high this decoration is.

type
integer
minimum
1

short_description

A short version of the description, usually used in lists.

Textual content formatted with Markdown. See the CommonMark Spec for details.

type
string

description

A full description of the entity, usually used on entity pages.

Textual content formatted with Markdown. See the CommonMark Spec for details.

type
string

flavor_text

How this entity is described in-game. Include line breaks where appropriate.

type
string

icon

The path to the asset, relative to the entity type’s asset directory.

type
string

JSON Schema

View raw

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://poketools.gamestuff.info/data/schema/item.json",
  "title": "Item",
  "description": "An Item from the games, like “Poké Ball” or “Bicycle”.",
  "type": "object",
  "propertyNames": {
    "title": "Version Group identifier",
    "allOf": [
      {
        "$ref": "types/identifier.json"
      },
      {
        "type": "string",
        "$filters": "versionGroupIdentifier"
      }
    ]
  },
  "minProperties": 1,
  "additionalProperties": {
    "type": "object",
    "properties": {
      "name": {
        "$ref": "types/name.json"
      },
      "category": {
        "title": "Category",
        "description": "Identifier for the ItemCategory this item belongs to.",
        "allOf": [
          {
            "$ref": "types/identifier.json"
          },
          {
            "type": "string",
            "$filters": "categoryIdentifier"
          }
        ]
      },
      "pocket": {
        "title": "Pocket",
        "description": "Identifier for the ItemPocket this item appears in.",
        "allOf": [
          {
            "$ref": "types/identifier.json"
          },
          {
            "type": "string",
            "$filters": [
              "pocketIdentifier",
              {
                "$func": "pocketInVersionGroup",
                "$vars": {
                  "versionGroup": {
                    "$ref": "1#"
                  }
                }
              }
            ]
          }
        ]
      },
      "buy": {
        "title": "Item purchase price",
        "description": "Omit if this item cannot be purchased.",
        "oneOf": [
          {
            "type": "integer",
            "minimum": 1
          },
          {
            "type": "null"
          }
        ]
      },
      "sell": {
        "title": "Item sell price",
        "description": "Usually half the purchase price.  Omit if this item cannot be sold.",
        "oneOf": [
          {
            "type": "integer",
            "minimum": 1
          },
          {
            "type": "null"
          }
        ]
      },
      "flags": {
        "title": "Flags",
        "description": "Special attributes that affect how the game treats this item.",
        "type": "array",
        "items": {
          "allOf": [
            {
              "$ref": "types/identifier.json"
            },
            {
              "type": "string",
              "$filters": "flagIdentifier"
            }
          ]
        }
      },
      "fling_effect": {
        "title": "Fling effect",
        "description": "The identifier of the effect the move *Fling* has when used by a Pokemon holding this item.",
        "allOf": [
          {
            "$ref": "types/identifier.json"
          },
          {
            "type": "string",
            "$filters": "flingEffectIdentifier"
          }
        ]
      },
      "fling_power": {
        "title": "Fling power",
        "description": "The power the move *Fling* has when used by a Pokemon holding this item.",
        "type": "integer",
        "minimum": 0
      },
      "machine": {
        "title": "TM/HM data",
        "description": "Omit if this item is not a machine.",
        "type": "object",
        "properties": {
          "type": {
            "title": "Machine type",
            "type": "string",
            "enum": [
              "TM",
              "HM"
            ]
          },
          "number": {
            "title": "Machine number",
            "type": "integer",
            "minimum": 1
          },
          "move": {
            "title": "Move taught",
            "description": "The identifier for the move taught",
            "allOf": [
              {
                "$ref": "types/identifier.json"
              },
              {
                "type": "string",
                "$filters": [
                  "moveIdentifier",
                  {
                    "$func": "moveInVersionGroup",
                    "$vars": {
                      "versionGroup": {
                        "$ref": "2#"
                      }
                    }
                  }
                ]
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "type",
          "number",
          "move"
        ]
      },
      "berry": {
        "title": "Berry data",
        "description": "Omit if this item is not a berry",
        "type": "object",
        "properties": {
          "number": {
            "title": "Number",
            "type": "integer",
            "minimum": 1
          },
          "firmness": {
            "title": "Firmness",
            "allOf": [
              {
                "$ref": "types/identifier.json"
              },
              {
                "type": "string",
                "$filters": "berryFirmnessIdentifier"
              }
            ]
          },
          "natural_gift_type": {
            "title": "Natural Gift move type",
            "description": "The type the move *Natural Gift* has when used by a Pokemon holding this item.",
            "allOf": [
              {
                "$ref": "types/identifier.json"
              },
              {
                "type": "string",
                "$filters": [
                  "typeIdentifier",
                  {
                    "$func": "typeInVersionGroup",
                    "$vars": {
                      "versionGroup": {
                        "$ref": "2#"
                      }
                    }
                  }
                ]
              }
            ]
          },
          "natural_gift_power": {
            "title": "Natural Gift move power",
            "description": "The power the move *Natural Gift* has when used by a Pokemon holding this item.",
            "type": "integer",
            "minimum": 0
          },
          "size": {
            "title": "Size (mm)",
            "type": "integer",
            "minimum": 1
          },
          "growth_time": {
            "title": "Growth time (hours)",
            "description": "The length of one growth stage.  Berries go through several of these growth stages before they can be picked.",
            "type": "integer",
            "minimum": 1
          },
          "water": {
            "title": "Water usage",
            "description": "The speed at which this Berry dries out the soil as it grows. A higher rate means the soil dries more quickly.",
            "type": "integer",
            "minimum": 0
          },
          "smoothness": {
            "title": "Smoothness",
            "description": "The smoothness of this Berry, used in making Pokéblocks or Poffins.",
            "type": "integer",
            "minimum": 1
          },
          "flavors": {
            "title": "Berry flavors",
            "type": "object",
            "propertyNames": {
              "title": "BerryFlavor identifier",
              "allOf": [
                {
                  "$ref": "types/identifier.json"
                },
                {
                  "type": "string",
                  "$filters": "berryFlavorIdentifier"
                }
              ]
            },
            "additionalProperties": {
              "type": "integer",
              "minimum": 0
            }
          },
          "harvest": {
            "title": "The number of berries that can grow on one tree",
            "allOf": [
              {
                "$ref": "types/range.json"
              },
              {
                "type": "string",
                "$filters": {
                  "$func": "range",
                  "$vars": {
                    "min": 1
                  }
                }
              }
            ]
          },
          "flavor_text": {
            "$ref": "types/flavor_text.json"
          }
        },
        "additionalProperties": false
      },
      "decoration": {
        "title": "Decoration",
        "description": "Omit if this item is not a Decoration",
        "type": "object",
        "properties": {
          "width": {
            "title": "Width",
            "type": "number",
            "minimum": 1
          },
          "height": {
            "title": "Height",
            "type": "number",
            "minimum": 1
          }
        },
        "required": [
          "width",
          "height"
        ]
      },
      "short_description": {
        "title": "Short description",
        "$ref": "types/markdown.json"
      },
      "description": {
        "title": "Description",
        "$ref": "types/markdown.json"
      },
      "flavor_text": {
        "$ref": "types/flavor_text.json"
      },
      "icon": {
        "title": "Icon",
        "$ref": "types/asset_path.json"
      }
    },
    "additionalProperties": false,
    "required": [
      "name",
      "category",
      "pocket",
      "short_description",
      "description"
    ]
  }
}