{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "JSON Recipe Edit Schema", "description": "the schema definition for EzTerry's JSON Recipe Edit", "type": "array", "items": { "anyOf": [ { "description": "comment", "type": "string" }, { "description": "commands", "type": "object", "oneOf": [ { "title": "Import JSON Script", "$ref": "#/definitions/import script" }, { "title": "Delete Recipe", "$ref": "#/definitions/deleteRecipe" }, { "title": "Shaped Recipe", "$ref": "#/definitions/shapedRecipe" }, { "title": "Shapeless Recipe", "$ref": "#/definitions/shapelessRecipe" }, { "title": "Register Ore", "$ref": "#/definitions/registerOre" }, { "title": "Delete Furnace", "$ref": "#/definitions/deleteFurnace" }, { "title": "Add Furnace", "$ref": "#/definitions/addFurnace" }, { "title": "Virtual Command Chain", "$ref": "#/definitions/virtualCommandChain" }, { "title": "Block Drops", "$ref": "#/definitions/blockdrops" }, { "title": "Hide in JEI", "$ref": "#/definitions/hideInJEI" }, { "title": "Add item as Fuel", "$ref": "#/definitions/addfuelitem" }, { "title": "Edit Block", "$ref": "#/definitions/editblock" }, { "title": "Edit Item", "$ref": "#/definitions/edititem" }, { "title": "Batch Update", "$ref": "#/definitions/batchupdate" }, { "title": "Anvil Crafting", "$ref": "#/definitions/anvilcraft" }, { "title": "Tool Crafting", "$ref": "#/definitions/toolCraftingRecipe" }, { "title": "TConstruct Remove Drying", "$ref": "#/definitions/ticRemoveDrying" }, { "title": "TConstruct Add Drying", "$ref": "#/definitions/ticAddDrying" }, { "title": "TConstruct Remove Melting", "$ref": "#/definitions/ticRemoveMelting" }, { "title": "TConstruct Add Melting", "$ref": "#/definitions/ticAddMelting" }, { "title": "TConstruct Remove Table Casting", "$ref": "#/definitions/ticRemoveTableCasting" }, { "title": "TConstruct Add Table Casting", "$ref": "#/definitions/ticAddTableCasting" }, { "title": "TConstruct Remove Basin Casting", "$ref": "#/definitions/ticRemoveBasinCasting" }, { "title": "TConstruct Add Basin Casting", "$ref": "#/definitions/ticAddBasinCasting" }, { "title": "TConstruct Remove Alloy", "$ref": "#/definitions/ticRemoveAlloy" }, { "title": "TConstruct Add Alloy", "$ref": "#/definitions/ticAddAlloy" }, { "title": "Actually Additions Remove Crusher Recipe", "$ref": "#/definitions/aaRemoveCrusher" }, { "title": "Actually Additions Add Crusher Recipe", "$ref": "#/definitions/aaAddCrusher" }, { "title": "Actually Additions Remove Ball of Fur item", "$ref": "#/definitions/aaRemoveBallOfFur" }, { "title": "Actually Additions Add Ball of Fur item", "$ref": "#/definitions/aaAddBallOfFur" }, { "title": "Actually Additions Remove Treasure Chest item", "$ref": "#/definitions/aaRemoveTreasureChest" }, { "title": "Actually Additions Add Treasure Chest item", "$ref": "#/definitions/aaAddTreasureChest" }, { "title": "Actually Additions Remove Atomic Reconstructor recipe", "$ref": "#/definitions/aaRemoveAtomicReconstructor" }, { "title": "Actually Additions Add Atomic Reconstructor recipe", "$ref": "#/definitions/aaAddAtomicReconstructor" }, { "title": "Actually Additions Remove Empowerer recipe", "$ref": "#/definitions/aaRemoveEmpowerer" }, { "title": "Actually Additions Add Empowerer recipe", "$ref": "#/definitions/aaAddEmpowerer" } ] } ] }, "definitions": { "import script": { "properties": { "command": { "enum": [ "include" ] }, "file": { "description":"The file to load as a JSON Script", "type":"string" } }, "required": [ "command", "file" ], "additionalProperties": false }, "deleteRecipe": { "properties": { "command": { "enum": [ "delete recipe" ] }, "item":{ "description": "Item entry", "$ref": "#/definitions/item array" }, "count":{ "description": "if not set to -1 (default) only remove recipes that return a stack of this many items per craft", "type": "integer" } }, "required": [ "command", "item" ], "additionalProperties": false }, "shapedRecipe": { "properties": { "command": { "enum": [ "shaped recipe" ] }, "ingredients": { "description": "shapeless recipe", "type": "object", "$ref": "#/definitions/recipe ingredients" }, "template": { "description": "recipe template", "type": "array", "items": { "oneOf": [ { "type": "string", "pattern": "^[a-z ]{1,3}$" } ] }, "minItems": 1, "maxItems": 3 }, "count": { "description": "size of the item stack to return [default = 1]", "type": "integer" }, "result": { "description": "Item to craft", "$ref": "#/definitions/item array" }, "mirrored": { "type": "boolean", "description": "Can the recipe be mirrored (default = true)" } }, "required": [ "command", "ingredients", "template", "result" ], "additionalProperties": false }, "shapelessRecipe": { "properties": { "command": { "enum": [ "shapeless recipe" ] }, "ingredients": { "description": "shapeless recipe", "type": "object", "$ref": "#/definitions/recipe ingredients" }, "count": { "description": "size of the item stack to return [default = 1]", "type": "integer" }, "result": { "description": "Item to craft", "$ref": "#/definitions/item array" } }, "required": [ "command", "ingredients", "result" ], "additionalProperties": false }, "registerOre": { "properties": { "command": { "enum": [ "register ore" ] }, "name": { "description": "Name of the ore dictionary entry", "type": "string" }, "items": { "description": "List of items to add to this ore dictionary entry", "type": "array", "items": { "description": "Item entry", "$ref": "#/definitions/item array" } } }, "required": [ "command", "name", "items" ], "additionalProperties": false }, "deleteFurnace": { "properties": { "command": { "enum": [ "delete furnace" ] }, "item":{ "description": "Item entry", "$ref": "#/definitions/item array" } }, "required": [ "command", "item" ], "additionalProperties": false }, "addFurnace": { "properties": { "command": { "enum": [ "add furnace" ] }, "count": { "type": "integer", "description": "Number of items that smelt per craft" }, "output": { "description": "Crafted Item", "$ref": "#/definitions/item array" }, "input": { "description": "Crafted Item", "$ref": "#/definitions/item array" }, "xp": { "type": "number", "description": "amount of XP to give 0.1 by default." } }, "required": [ "input", "output", "command" ], "additionalProperties": false }, "hideInJEI": { "properties": { "command": { "enum": [ "hide in jei" ] }, "item": { "description": "Item to hide", "$ref": "#/definitions/item array" } }, "required": [ "item", "command" ], "additionalProperties": false }, "virtualCommandChain": { "properties": { "command": { "enum": [ "virtual command chain" ] }, "trigger": { "type": "string", "pattern": "^(Always|PlayerJoin|ServerStart|OnSet:\\ .*|OnClear:\\ .*|Run:\\ .*)$", "description": "The trigger when this command chain is to be ran" }, "dim": { "description": "The dimention to run on, use \"*\" to run on all/any loaded dimention, default \"*\"", "oneOf": [ { "type": "integer" }, { "type": "string", "pattern": "^(-[0-9]+|[0-9]+|\\*)$" } ] }, "filter": { "description": "Filter criteria (see docs) default \"\"", "type": "string" }, "log": { "type": "boolean", "description": "if we log output or not, useful for debugging but otherwise spams the log, default: false" }, "name": { "type": "string", "description": "name of the command chain (displayed in server/log messages from the commands, default \"VCommandChain\"" }, "chain":{ "type": "array", "items": { "oneOf": [ { "type": "string", "description": "the system (command block) command to run" } ] }, "minItems": 1 } }, "required": [ "trigger", "command", "chain" ], "additionalProperties": false }, "blockdrops": { "properties": { "command": { "enum": [ "block drops" ] }, "droporiginal": { "type": "boolean", "description": "To keep the original drops for the block or not default=true" }, "dropone": { "type": "boolean", "description": "Drop one item from the weighted list, (otherwise odds of each item are separate) default=false" }, "silkdropone": { "type": "boolean", "description": "Drop one item from the weighted list when silk touching, (otherwise odds of each item are separate) default=" }, "fortunemultiplier": { "type": "number", "description": "if dropone=false, multiply each entry by this number for each level of fortune default 1.10" }, "dropchance":{ "type": "number", "description": "chance of collected items are dropped 1.0 = 100%, default = blocks default rate" }, "drops":{ "type": "array", "items": { "oneOf": [ { "type": "object", "properties": { "count":{ "type": "integer", "description": "size of the item stack default=1" }, "item":{ "description": "Item entry", "$ref": "#/definitions/item array" }, "weight":{ "type":"number", "description":"Weight of the item, if dropone=false: 1.0 = 100% drop, else is used as a weight with all other entries" } }, "required": [ "item", "weight" ], "additionalProperties": false } ] }, "description": "list of possible drops and odds" }, "silktouch":{ "type": "array", "items": { "oneOf": [ { "type": "object", "properties": { "count":{ "type": "integer", "description": "size of the item stack default=1" }, "item":{ "description": "Item entry", "$ref": "#/definitions/item array" }, "weight":{ "type":"number", "description":"Weight of the item, if dropone=false: 1.0 = 100% drop, else is used as a weight with all other entries" } }, "required": [ "item", "weight" ], "additionalProperties": false } ] }, "description": "list of drops when using silk touch (same as drops if omitted entirely)" }, "block":{ "type": "string", "description": "block that was broken :" }, "exp":{ "type": "integer", "description": "amount of exp to drop when not silk touched (default -1, the original amount)" }, "meta":{ "type": "string", "description": "blockstate of the block being broken default: \"\"" } }, "required": [ "command", "block", "drops" ], "additionalProperties": false }, "addfuelitem":{ "properties": { "command": { "enum": [ "add fuel item" ] }, "item":{ "description": "Item entry", "$ref": "#/definitions/item array" }, "burntime":{ "description": "burn time", "type": "integer" } }, "required": [ "command", "item", "burntime" ], "additionalProperties": false }, "editblock":{ "properties": { "command": { "enum": [ "edit block" ] }, "block":{ "description": "Item entry", "type": "string" }, "hardness":{ "description": "The block hardness default: current value", "type": "number" }, "resistance":{ "description": "The block resistance default: current value", "type": "number" }, "unbreakable":{ "description": "if true make unbreakable, else current state, to make breakable set hardness", "type": "boolean" }, "harvestlevel":{ "description": "The blocks harvest tool/level: default: current value", "type": "array", "items": [ { "type": "string", "description": "tool name" }, { "type": "integer", "description": "tool level" } ], "minItems": 2, "maxItems": 2 }, "unlocalizedname":{ "description": "The untranslated name of the block default: current value", "type": "string" }, "lightlevel":{ "description": "The light level of the block default: current value", "type": "number" }, "lightopacity":{ "description": "The light level of the block default: current value", "type": "integer" }, "slipperiness":{ "description": "The slipperiness of the block default: current value", "type": "number" } }, "required": [ "command", "block" ], "additionalProperties": false }, "edititem":{ "properties": { "command": { "enum": [ "edit item" ] }, "itemname": { "description": "Item name", "type": "string" }, "harvestlevel": { "description": "The blocks harvest tool/level: default: current value", "type": "array", "items": [ { "type": "string", "description": "tool name" }, { "type": "integer", "description": "tool level" } ], "minItems": 2, "maxItems": 2 }, "unlocalizedname": { "description": "The untranslated name of the block default: current value", "type": "string" }, "maxdamage": { "description": "the maximum damage a tool can have default: current value", "type": "integer" }, "norepair":{ "description": "if true prevent the item from being repaired false/omitted keep current value", "type": "boolean" }, "maxstack": { "description": "the maximum stack size of this item default: current value", "type": "integer" } }, "required": [ "command", "itemname" ], "additionalProperties": false }, "batchupdate":{ "properties": { "command": { "enum": [ "batch update" ] }, "type": { "description": "The batch operation to perform", "enum": [ "stack size", "tool damage" ] }, "to":{ "description": "The new value to set the items to", "type": "integer" }, "from": { "description": "The original value to change (default: -1 to change make 'to' the new maximum)", "type": "integer" } }, "required": [ "command", "type", "to" ], "additionalProperties": false }, "anvilcraft":{ "properties": { "command": { "enum": [ "anvil craft recipe" ] }, "original": { "description": "Starting item (left slot)", "$ref": "#/definitions/item array" }, "modifier": { "description": "Item to modify/repair with (right slot)", "$ref": "#/definitions/item array" }, "modifiercount": { "description": "Number of modifier items to consume per craft", "type": "integer" }, "result": { "description": "Item to be returned (output)", "$ref": "#/definitions/item array" }, "count": { "description": "Number of items to return per craft", "type": "integer" }, "levels": { "description": "Cost in levels of the craft", "type": "integer" } }, "required": [ "command", "original", "modifier", "result", "levels" ], "additionalProperties": false }, "toolCraftingRecipe": { "properties": { "command": { "enum": [ "tool crafting" ] }, "ingredients": { "description": "shapeless tool crafting recipe", "type": "object", "$ref": "#/definitions/recipe ingredients" }, "count": { "description": "size of the item stack to return [default = 1]", "type": "integer" }, "result": { "description": "Item to craft", "$ref": "#/definitions/item array" }, "tool": { "description": "Tool to craft the item with", "$ref": "#/definitions/item array" } }, "required": [ "command", "ingredients", "result", "tool" ], "additionalProperties": false }, "ticRemoveDrying": { "properties": { "command": { "enum": [ "tic remove drying" ] }, "item":{ "description": "Result Item entry to remove", "$ref": "#/definitions/item array" } }, "required": [ "command", "item" ], "additionalProperties": false }, "ticAddDrying": { "properties": { "command": { "enum": [ "tic add drying" ] }, "input":{ "oneOf": [ { "description": "Ore dictionary entry for source item", "type": "string" }, { "description": "Item entry for source item", "$ref": "#/definitions/item array" } ] }, "output":{ "description": "Result Item entry to remove", "$ref": "#/definitions/item array" }, "time":{ "description": "dry time in ticks (default = 20 * 60 * 5)", "type": "integer" } }, "required": [ "command", "input", "output" ], "additionalProperties": false }, "ticRemoveMelting": { "properties": { "command": { "enum": [ "tic remove melting" ] }, "fluid":{ "description": "The result fluid of melting recipes to remove (matches both metal and amount)", "$ref": "#/definitions/fluid array" } }, "required": [ "command", "fluid" ], "additionalProperties": false }, "ticAddMelting": { "properties": { "command": { "enum": [ "tic add melting" ] }, "input":{ "oneOf": [ { "description": "Ore dictionary entry of item to melt", "type": "string" }, { "description": "Item stack entry for source of item to melt", "$ref": "#/definitions/item array" } ] }, "output":{ "description": "The resulting fluid stack including amount", "$ref": "#/definitions/fluid array" } }, "required": [ "command", "input", "output" ], "additionalProperties": false }, "ticRemoveTableCasting": { "properties": { "command": { "enum": [ "tic remove table casting" ] }, "fluid":{ "description": "The fluid input of the recipe to be removed (amount ignored)", "$ref": "#/definitions/fluid array" }, "cast":{ "oneOf": [ { "description": "Remove the recipe without a cast item", "type": "null" }, { "description": "Item used as the cast for the recipe to be removed.", "$ref": "#/definitions/item array" } ] } }, "required": [ "command", "fluid", "cast" ], "additionalProperties": false }, "ticAddTableCasting": { "properties": { "command": { "enum": [ "tic add table casting" ] }, "fluid":{ "description": "The fluid (and amount) to pour onto the cast", "$ref": "#/definitions/fluid array" }, "cast":{ "oneOf": [ { "description": "Pour directly into the table (no cast/item)", "type": "null" }, { "description": "Ore dictionary of the items to use as the cast", "type": "string" }, { "description": "Item to pour onto/into as a cast", "$ref": "#/definitions/item array" } ] }, "output":{ "description": "Result Item", "$ref": "#/definitions/item array" }, "consumecast":{ "description": "If the cast item is delete at the end of the craft (default true, ignored if cast is null)", "type": "boolean" }, "switchoutput":{ "description": "If item becomes a cast (default false, ignored if cast is null)", "type": "boolean" } }, "required": [ "command", "fluid", "cast", "output" ], "additionalProperties": false }, "ticRemoveBasinCasting": { "properties": { "command": { "enum": [ "tic remove basin casting" ] }, "fluid":{ "description": "The fluid input of the recipe to be removed (amount ignored)", "$ref": "#/definitions/fluid array" }, "cast":{ "oneOf": [ { "description": "Remove the recipe without a cast item", "type": "null" }, { "description": "Item used as the cast for the recipe to be removed.", "$ref": "#/definitions/item array" } ] } }, "required": [ "command", "fluid", "cast" ], "additionalProperties": false }, "ticAddBasinCasting": { "properties": { "command": { "enum": [ "tic add basin casting" ] }, "fluid":{ "description": "The fluid (and amount) to pour onto the cast", "$ref": "#/definitions/fluid array" }, "cast":{ "oneOf": [ { "description": "Pour directly into the table (no cast/item)", "type": "null" }, { "description": "Ore dictionary of the items to use as the cast", "type": "string" }, { "description": "Item to pour onto/into as a cast", "$ref": "#/definitions/item array" } ] }, "output":{ "description": "Result Item", "$ref": "#/definitions/item array" }, "consumecast":{ "description": "If the cast item is delete at the end of the craft (default true, ignored if cast is null)", "type": "boolean" }, "switchoutput":{ "description": "If item becomes a cast (default false, ignored if cast is null)", "type": "boolean" } }, "required": [ "command", "fluid", "cast", "output" ], "additionalProperties": false }, "ticRemoveAlloy": { "properties": { "command": { "enum": [ "tic remove alloy" ] }, "fluid":{ "description": "The fluid of the alloy to remove", "$ref": "#/definitions/fluid array" } }, "required": [ "command", "fluid" ], "additionalProperties": false }, "ticAddAlloy": { "properties": { "command": { "enum": [ "tic add alloy" ] }, "output":{ "description": "The alloy to form", "$ref": "#/definitions/fluid array" }, "components":{ "type": "array", "items": { "description": "A component ration and the amount per combining unit", "$ref": "#/definitions/fluid array" }, "minItems": 1 } }, "required": [ "command", "output", "components" ], "additionalProperties": false }, "aaRemoveCrusher": { "properties": { "command": { "enum": [ "aa remove crusher" ] }, "input":{ "description": "The input item of the recipe aa crusher recipe to remove", "$ref": "#/definitions/item array" } }, "required": [ "command", "input" ], "additionalProperties": false }, "aaAddCrusher": { "properties": { "command": { "enum": [ "aa add crusher" ] }, "input":{ "description": "The input item of the recipe aa crusher recipe to remove", "$ref": "#/definitions/item array" }, "outputone":{ "description": "The input item of the recipe aa crusher recipe to remove", "$ref": "#/definitions/item array" }, "outputonecount":{ "description": "The stack size of the input count (default 1)", "type": "integer" }, "outputtwo":{ "description": "The input item of the recipe aa crusher recipe to remove (default empty stack)", "$ref": "#/definitions/item array" }, "outputtwocount":{ "description": "The stack size of the input count (default 1)", "type": "integer" }, "chance":{ "description": "The chance (0-never to 100-always) to return the secondary output (default=5)", "type": "integer", "minimum": 0, "maximum": 100 } }, "required": [ "command", "input", "outputone" ], "additionalProperties": false }, "aaRemoveBallOfFur": { "properties": { "command": { "enum": [ "aa remove ball of fur" ] }, "item":{ "description": "The item to remove from the ball of fur return list", "$ref": "#/definitions/item array" } }, "required": [ "command", "item" ], "additionalProperties": false }, "aaAddBallOfFur": { "properties": { "command": { "enum": [ "aa add ball of fur" ] }, "item":{ "description": "The item to add to the ball of fur return list", "$ref": "#/definitions/item array" }, "count":{ "description": "the stack size to return if returned (default = 1)", "type": "integer" }, "chance":{ "description": "the chance/weight of returning this item.", "type": "integer" } }, "required": [ "command", "item", "chance" ], "additionalProperties": false }, "aaRemoveTreasureChest": { "properties": { "command": { "enum": [ "aa remove treasure loot" ] }, "item":{ "description": "The item to remove from the treasure chest loot", "$ref": "#/definitions/item array" } }, "required": [ "command", "item" ], "additionalProperties": false }, "aaAddTreasureChest": { "properties": { "command": { "enum": [ "aa add treasure loot" ] }, "item":{ "description": "The item to add to the treasure chest loot", "$ref": "#/definitions/item array" }, "chance":{ "description": "the chance/weight of returning this item.", "type": "integer" }, "min":{ "description": "Minimum number of the item in a stack (default=1)", "type": "integer", "minimum": 0 }, "max":{ "description": "Maximum number of the item in a stack (default=1)", "type": "integer", "minimum": 0 } }, "required": [ "command", "item", "chance" ], "additionalProperties": false }, "aaRemoveAtomicReconstructor": { "properties": { "command": { "enum": [ "aa remove atomic reconstructor" ] }, "item":{ "description": "The item (recipe result) to remove from the reconstructor list", "$ref": "#/definitions/item array" } }, "required": [ "command", "item" ], "additionalProperties": false }, "aaAddAtomicReconstructor": { "properties": { "command": { "enum": [ "aa add atomic reconstructor" ] }, "input":{ "description": "The source item to be reconstructed", "$ref": "#/definitions/item array" }, "output":{ "description": "The item to the transformed into", "$ref": "#/definitions/item array" }, "energy":{ "description": "the energy cost of the transformation", "type": "integer" } }, "required": [ "command", "input", "output", "energy" ], "additionalProperties": false }, "aaRemoveEmpowerer": { "properties": { "command": { "enum": [ "aa remove empowerer" ] }, "item":{ "description": "The item (recipe result) to remove from the empowerer list", "$ref": "#/definitions/item array" } }, "required": [ "command", "item" ], "additionalProperties": false }, "aaAddEmpowerer": { "properties": { "command": { "enum": [ "aa add empowerer" ] }, "input":{ "description": "The item to be empowerered", "$ref": "#/definitions/item array" }, "output":{ "description": "The resulting item", "$ref": "#/definitions/item array" }, "modifiers":{ "type": "array", "description":"array of the 4 modifies", "items": { "description": "The modifier items (in item holders)", "$ref": "#/definitions/item array" }, "minItems": 4, "maxItems": 4 }, "color":{ "type": "array", "description": "The RGB particle color (default= [255,105,180])", "items": { "description": "color value between 0-255 inclusive", "type": "integer", "minimum": 0, "maximum": 255 }, "minItems": 3, "maxItems": 3 }, "time":{ "description": "the time for the transformation", "type": "integer" }, "energy":{ "description": "the energy cost per items stand", "type": "integer" } }, "required": [ "command", "input", "output", "energy", "time", "modifiers" ], "additionalProperties": false }, "recipe ingredients": { "patternProperties": { "^[a-z]$": { "oneOf": [ { "description": "Ore dictionary entry", "type": "string" }, { "description": "Item entry", "$ref": "#/definitions/item array" } ] } }, "additionalProperties": false }, "item array": { "type": "array", "items": [ { "type": "string", "description": "item (modid:name)" }, { "oneOf": [ { "type": "integer" }, { "enum": [ "*" ] } ], "description": "input meta (default=0)" }, { "type": "string", "description": "nbt data" } ], "minItems": 1, "maxItems": 3 }, "fluid array": { "type": "array", "items":[ { "type": "string", "description": "fluid name (example: iron)" }, { "type": "integer", "description": "ammount in mb of the item stack, default 1000" } ], "minItems": 1, "maxItems": 2 } } }