{ "$schema": "http://json-schema.org/draft-07/schema", "$id": "blockception.minecraft.behavior.loot_tables", "additionalProperties": false, "description": "A minecraft loot table", "title": "Loot Table", "examples": [ { "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:spawn_egg", "weight": 1, "functions": [{ "function": "set_count", "count": { "min": 1, "max": 1 } }, { "function": "set_actor_id" }] } ] } ] } ], "definitions": { "pools_spec": { "title": "Pools", "description": "TODO description", "type": "array", "additionalProperties": false, "items": { "additionalProperties": false, "title": "A Single Pool", "type": "object", "properties": { "rolls": { "title": "Rolls", "oneOf": [ { "type": "integer", "minimum": 0 }, { "type": "object", "required": ["min", "max"], "properties": { "min": { "title": "Minimum", "type": "number", "minimum": 0 }, "max": { "title": "Minimum", "type": "number", "minimum": 1 } } } ] }, "type": { "title": "Type", "type": "string", "description": "", "enum": ["loot_table", "item", "empty"] }, "conditions": { "title": "Conditions", "description": "TODO", "type": "array", "items": { "$ref": "#/definitions/A" } }, "entries": { "title": "Entries", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": ["type"], "title": "Entry", "properties": { "type": { "title": "Type", "type": "string", "enum": ["item", "empty", "loot_table"] }, "count": { "type": "integer", "title": "Count", "description": "The amount of the item" }, "name": { "title": "Name", "type": "string", "description": "An item or loottable", "pattern": "^([\\w]+:|loot_tables/)" }, "weight": { "title": "Weight", "type": "integer", "minimum": 1 }, "functions": { "title": "Functions", "type": "array", "items": { "type": "object", "required": ["function"], "title": "Function", "$ref": "#/definitions/J" } }, "pools": { "$ref": "#/definitions/pools_spec" }, "quality": { "title": "Quality", "description": "UNDOCUMANTED", "type": "integer" } } } }, "tiers": { "title": "Tiers", "description": "TODO description", "type": "object", "additionalProperties": false, "properties": { "bonus_chance": { "title": "Bonus Chance", "description": "TODO description", "type": "number" }, "bonus_rolls": { "title": "Bonus Rolls", "description": "TODO description", "type": "integer" }, "initial_range": { "title": "Initial Range", "description": "TODO description", "type": "integer" } } } } } }, "B": { "type": "object", "additionalProperties": false, "description": "Returns true if the actor properties defined were executed.", "title": "Entity Properties", "properties": { "condition": { "type": "string", "title": "Condition", "description": "TODO" }, "entity": { "type": "string", "default": "this", "description": "The entity to test. The value must be only \"this\".", "title": "Entity" }, "properties": { "type": "object", "default": {}, "description": "The entity's properties. \"on_fire\", \"on_ground\" is used for now.", "title": "Properties", "additionalProperties": false, "properties": { "on_fire": { "title": "On Fire", "description": "TODO", "type": "boolean" }, "on_ground": { "title": "On Fire", "description": "TODO", "type": "boolean" } } } } }, "C": { "type": "object", "additionalProperties": false, "description": "Returns the condition true if the actor's mark variant is matched to the value.", "title": "Has Mark Variant", "properties": { "condition": { "type": "string", "title": "Condition", "description": "TODO" }, "value": { "type": "integer", "default": "0", "description": "Tests for the actor's mark variant (if it has one)", "title": "Value" } } }, "D": { "type": "object", "additionalProperties": false, "description": "Returns the condition true if the actor of the loot table is killed by player or entities that has owner.", "title": "Killed By Player", "properties": { "condition": { "type": "string", "title": "Condition", "description": "TODO" } } }, "E": { "type": "object", "additionalProperties": false, "description": "Returns the condition true if the actor of the loot table is killed by player or entities that has owner.", "title": "Killed By Player Or Pets Or Pets", "properties": { "condition": { "type": "string", "title": "Condition", "description": "TODO" } } }, "F": { "type": "object", "additionalProperties": false, "description": "Sets a random chance of the specified value.", "title": "Random Chance", "properties": { "condition": { "type": "string", "title": "Condition", "description": "TODO" }, "chance": { "type": "number", "default": 0, "description": "TODO", "title": "Chance" }, "max_chance": { "type": "number", "default": 0, "description": "The maximum random chance value allowed.", "title": "Max Chance" } } }, "G": { "type": "object", "additionalProperties": false, "description": "Sets a random chance of the specified value. Looting enchantment increase the random chance multiplier.", "title": "Random Chance With Looting", "properties": { "condition": { "type": "string", "title": "Condition", "description": "TODO" }, "chance": { "type": "number", "default": 0, "description": "The random chance of the value.", "title": "Chance" }, "looting_multiplier": { "type": "number", "default": 0, "description": "The multiplier for the chance if the target entity has the looting enchant that affects the actor.", "title": "Looting Multiplier" } } }, "H": { "type": "object", "additionalProperties": false, "description": "Sets a random chance of the specified value based on the level difficulty.", "title": "Random Difficulty Chance", "properties": { "condition": { "type": "string", "title": "Condition", "description": "TODO" }, "default_chance": { "type": "number", "default": 0, "description": "The default random chance if the level difficulty is not assigned.", "title": "Default Chance" }, "easy": { "type": "number", "default": 0, "description": "The default random chance if the level difficulty is in easy. Omitting this field will set the value to \"default_chance\" field.", "title": "Easy" }, "hard": { "type": "number", "default": 0, "description": "The default random chance if the level difficulty is in hard. Omitting this field will set the value to \"default_chance\" field.", "title": "Hard" }, "normal": { "type": "number", "default": 0, "description": "The default random chance if the level difficulty is in normal. Omitting this field will set the value to \"default_chance\" field.", "title": "Normal" }, "peaceful": { "type": "number", "default": 0, "description": "The default random chance if the level difficulty is in peaceful. Omitting this field will set the value to \"default_chance\" field.", "title": "Peaceful" } } }, "I": { "type": "object", "additionalProperties": false, "description": "Sets a max regional difficulty random chance of the specified value.", "title": "Random Regional Difficulty Chance", "properties": { "condition": { "type": "string", "title": "Condition", "description": "TODO" }, "default_chance": { "type": "number", "default": 0, "description": "The default random chance if the level difficulty is not assigned.", "title": "Default Chance" }, "max_chance": { "title": "Max Chance", "type": "number", "description": "UNDOCUMENATED" }, "easy": { "type": "number", "default": 0, "description": "The default random chance if the level difficulty is in easy. Omitting this field will set the value to \"default_chance\" field.", "title": "Easy" }, "hard": { "type": "number", "default": 0, "description": "The default random chance if the level difficulty is in hard. Omitting this field will set the value to \"default_chance\" field.", "title": "Hard" }, "normal": { "type": "number", "default": 0, "description": "The default random chance if the level difficulty is in normal. Omitting this field will set the value to \"default_chance\" field.", "title": "Normal" }, "peaceful": { "type": "number", "default": 0, "description": "The default random chance if the level difficulty is in peaceful. Omitting this field will set the value to \"default_chance\" field.", "title": "Peaceful" } } }, "A": { "description": "A minecraft loot table condition", "title": "Condition", "allOf": [ { "if": { "properties": { "condition": { "type": "string", "const": "entity_properties" } } }, "then": { "$ref": "#/definitions/B" } }, { "if": { "properties": { "condition": { "type": "string", "const": "has_mark_variant" } } }, "then": { "$ref": "#/definitions/C" } }, { "if": { "properties": { "condition": { "type": "string", "const": "killed_by_player" } } }, "then": { "$ref": "#/definitions/D" } }, { "if": { "properties": { "condition": { "type": "string", "const": "killed_by_player_or_pets" } } }, "then": { "$ref": "#/definitions/E" } }, { "if": { "properties": { "condition": { "type": "string", "const": "random_chance" } } }, "then": { "$ref": "#/definitions/F" } }, { "if": { "properties": { "condition": { "type": "string", "const": "random_chance_with_looting" } } }, "then": { "$ref": "#/definitions/G" } }, { "if": { "properties": { "condition": { "type": "string", "const": "random_difficulty_chance" } } }, "then": { "$ref": "#/definitions/H" } }, { "if": { "properties": { "condition": { "type": "string", "const": "random_regional_difficulty_chance" } } }, "then": { "$ref": "#/definitions/I" } } ] }, "BA": { "additionalProperties": false, "description": "The function enchant_random_gear", "title": "Enchant Random Gear", "properties": { "function": { "type": "string", "const": "enchant_random_gear", "title": "Function", "description": "TODO description" }, "chance": { "type": "number", "description": "Takes a chance modifier to manipulate the algorithm. Note that a chance modifier of 1.0 doesn't mean a 100% chance that gear will become enchanted.", "title": "Chance" } } }, "BB": { "additionalProperties": false, "description": "The function enchant_book_for_trading", "title": "Enchant Book For Trading", "required": ["function", "base_cost", "base_random_cost", "per_level_random_cost", "per_level_cost"], "properties": { "function": { "type": "string", "const": "enchant_book_for_trading", "title": "Function", "description": "TODO description" }, "base_cost": { "type": "integer", "title": "Base Cost", "description": "TODO description" }, "base_random_cost": { "type": "integer", "title": "Base Cost", "description": "TODO description" }, "per_level_random_cost": { "type": "integer", "title": "Base Cost", "description": "TODO description" }, "per_level_cost": { "type": "integer", "title": "Base Cost", "description": "TODO description" } } }, "BC": { "additionalProperties": false, "description": "The function enchant_randomly", "title": "Enchant Randomly", "properties": { "function": { "type": "string", "const": "enchant_randomly", "title": "Function", "description": "TODO description" }, "treasure": { "type": "boolean", "description": "Supports the optional treasure boolean (true/false) to allow treasure enchantments to be toggled on and off.", "title": "Treasure" } } }, "BD": { "additionalProperties": false, "description": "The function enchant_with_levels", "title": "Enchant With Levels", "properties": { "function": { "type": "string", "const": "enchant_with_levels", "description": "TODO description", "title": "TODO Title" }, "levels": { "title": "Levels", "oneOf": [ { "type": "integer" }, { "type": "object", "additionalProperties": false, "required": ["min", "max"], "properties": { "min": { "type": "integer", "title": "Minimum" }, "max": { "type": "integer", "title": "Maximum" } } } ], "description": "TODO description" }, "treasure": { "type": "boolean", "title": "Treasure", "description": "TODO description" } } }, "BE": { "additionalProperties": false, "description": "The function exploration_map", "title": "Exploration Map", "properties": { "function": { "type": "string", "const": "exploration_map", "description": "TODO description", "title": "TODO Title" }, "destination": { "type": "string", "description": "The destination value defines what type of treasure map they receive.", "enum": ["endcity", "fortress", "mineshaft", "monument", "ruins", "stronghold", "temple", "village", "mansion", "shipwreck", "buriedtreasure", "pillageroutpost"], "title": "TODO Title" } } }, "BF": { "additionalProperties": false, "description": "The function fill_container", "title": "Fill Container", "properties": { "function": { "type": "string", "const": "fill_container", "title": "Function", "description": "TODO description" }, "loot_table": { "type": "string", "title": "Loot Table", "pattern": "^loot_tables/.*\\.json$", "description": "TODO description" } } }, "BG": { "additionalProperties": false, "description": "The function furnace_smelt", "title": "Furnace Smelt", "properties": { "function": { "type": "string", "const": "furnace_smelt", "description": "TODO description", "title": "TODO Title" }, "conditions": { "title": "Conditions", "description": "TODO", "type": "array", "items": { "$ref": "#/definitions/A" } } } }, "BH": { "additionalProperties": false, "description": "The function looting_enchant", "title": "Looting Enchant", "properties": { "function": { "type": "string", "const": "looting_enchant", "description": "TODO description", "title": "TODO Title" }, "count": { "type": "object", "properties": { "min": { "type": "integer" }, "max": { "type": "integer" } }, "description": "TODO description", "title": "TODO Title", "additionalProperties": false } } }, "BI": { "additionalProperties": false, "description": "The function random_aux_value", "title": "Random Aux Value", "properties": { "function": { "type": "string", "const": "random_aux_value", "description": "TODO description", "title": "TODO Title" }, "values": { "type": "object", "properties": { "min": { "type": "integer" }, "max": { "type": "integer" } }, "description": "TODO description", "title": "TODO Title", "additionalProperties": false } } }, "BJ": { "additionalProperties": false, "description": "The function random_block_state", "title": "Random Block State", "properties": { "function": { "type": "string", "const": "random_block_state", "description": "TODO description", "title": "TODO Title" }, "block_state": { "type": "string", "description": "TODO description", "title": "TODO Title" }, "values": { "type": "object", "properties": { "min": { "title": "Min", "type": "integer" }, "max": { "title": "Max", "type": "integer" } }, "description": "TODO description", "title": "TODO Title", "additionalProperties": false } } }, "CA": { "additionalProperties": false, "description": "The function set_actor_id", "title": "Set Actor Id", "properties": { "function": { "type": "string", "const": "set_actor_id", "description": "TODO description", "title": "TODO Title" }, "id": { "type": "string", "description": "TODO description", "title": "TODO Title" } } }, "CB": { "additionalProperties": false, "description": "The function set_banner_details", "title": "Set Banner Details", "properties": { "function": { "type": "string", "const": "set_banner_details", "description": "TODO description", "title": "TODO Title" }, "type": { "type": "integer", "description": "TODO description", "title": "TODO Title" } } }, "CC": { "additionalProperties": false, "description": "The function set_book_contents", "title": "Set Book Contents", "required": ["function", "author", "title", "pages"], "properties": { "function": { "type": "string", "const": "set_book_contents", "description": "TODO description", "title": "TODO Title" }, "author": { "type": "string", "description": "TODO description", "title": "TODO Title" }, "title": { "type": "string", "description": "TODO description", "title": "TODO Title" }, "pages": { "type": "array", "items": { "type": "string", "examples": ["Some text", "{\"rawtext\":[ {\"translate\":\"some.text\"}]}"] }, "description": "TODO description", "title": "TODO Title" } } }, "CD": { "additionalProperties": false, "description": "The function set_count", "title": "Set Count", "properties": { "function": { "type": "string", "const": "set_count", "title": "Function", "description": "TODO description" }, "count": { "title": "Count", "oneOf": [ { "type": "integer" }, { "type": "object", "properties": { "min": { "type": "integer", "title": "Minimum" }, "max": { "type": "integer", "title": "Maximum" } } } ], "description": "TODO description" } } }, "CE": { "additionalProperties": false, "description": "The function set_damage", "title": "Set Damage", "properties": { "function": { "type": "string", "const": "set_damage", "description": "TODO description", "title": "TODO Title" }, "damage": { "oneOf": [ { "type": "integer" }, { "type": "object", "properties": { "min": { "type": "integer" }, "max": { "type": "integer" } } }, { "type": "object", "properties": { "min": { "type": "number" }, "max": { "type": "number" } } } ], "description": "TODO description", "title": "TODO Title" } } }, "CF": { "additionalProperties": false, "description": "The function set_data", "title": "Set Data", "properties": { "function": { "type": "string", "const": "set_data", "description": "TODO description", "title": "TODO Title" }, "data": { "title": "Data", "oneOf": [ { "type": "integer" }, { "type": "object", "properties": { "min": { "type": "integer", "title": "Minimum" }, "max": { "type": "integer", "title": "Maximum" } } } ], "description": "TODO description" } } }, "CG": { "additionalProperties": false, "description": "The function set_data_from_color_index", "title": "Set Data From Color Index", "properties": { "function": { "type": "string", "const": "set_data_from_color_index", "description": "TODO description", "title": "TODO Title" } } }, "CH": { "additionalProperties": false, "description": "The function trader_material_type", "title": "Trader Material Type", "properties": { "function": { "type": "string", "const": "trader_material_type", "description": "TODO description", "title": "TODO Title" } } }, "CI": { "additionalProperties": false, "description": "The function random_dye", "title": "Trader Material Type", "properties": { "function": { "type": "string", "const": "random_dye", "description": "TODO description", "title": "TODO Title" } } }, "CJ": { "additionalProperties": false, "description": "The function set_lore", "title": "Set Lore", "properties": { "function": { "type": "string", "const": "set_lore", "description": "TODO description", "title": "TODO Title" }, "lore": { "type": "array", "items": { "type": "string" }, "description": "TODO description", "title": "TODO Title" } } }, "DA": { "additionalProperties": false, "description": "The function set_name", "title": "Set Name", "properties": { "function": { "type": "string", "const": "set_name", "description": "TODO description", "title": "TODO Title" }, "name": { "type": "string", "description": "TODO description", "title": "TODO Title" } } }, "DB_IDEnchant": { "type": "string", "title": "ID Enchantment", "enum": [ "aqua_affinity", "bane_of_arthropods", "blast_protection", "channeling", "curse_of_binding", "curse_of_vanishing", "depth_strider", "efficiency", "feather_falling", "fire_aspect", "fire_protection", "flame", "fortune", "frost_walker", "impaling", "infinity", "knockback", "looting", "loyalty", "luck_of_the_sea", "lure", "mending", "multishot", "piercing", "projectile_protection", "protection", "punch", "quick_charge", "respiration", "riptide", "sharpness", "silk_touch", "smite", "soul_speed", "thorns", "unbreaking" ] }, "DB_Enchant": { "type": "object", "title": "Enchantment", "additionalProperties": false, "properties": { "id": { "$ref": "#/definitions/DB_IDEnchant" }, "level": { "title": "Level", "oneOf": [ { "type": "integer", "title": "Level" }, { "type": "array", "items": [ { "type": "integer", "title": "Min" }, { "type": "integer", "title": "Max" } ] } ] } } }, "DB": { "additionalProperties": false, "description": "The function specific_enchants", "title": "Specific Enchants", "properties": { "function": { "type": "string", "const": "specific_enchants", "description": "Specific enchants", "title": "Specific Enchants" }, "enchants": { "title": "Enchants", "description": "A enchanting specification", "oneOf": [ { "type": "string", "$ref": "#/definitions/DB_IDEnchant" }, { "type": "object", "$ref": "#/definitions/DB_Enchant" }, { "type": "array", "items": { "$ref": "#/definitions/DB_Enchant" } } ] } } }, "J": { "description": "A minecraft loot table condition", "title": "Functions", "allOf": [ { "if": { "properties": { "function": { "type": "string", "const": "enchant_random_gear" } } }, "then": { "$ref": "#/definitions/BA" } }, { "if": { "properties": { "function": { "type": "string", "const": "enchant_book_for_trading" } } }, "then": { "$ref": "#/definitions/BB" } }, { "if": { "properties": { "function": { "type": "string", "const": "enchant_randomly" } } }, "then": { "$ref": "#/definitions/BC" } }, { "if": { "properties": { "function": { "type": "string", "const": "enchant_with_levels" } } }, "then": { "$ref": "#/definitions/BD" } }, { "if": { "properties": { "function": { "type": "string", "const": "exploration_map" } } }, "then": { "$ref": "#/definitions/BE" } }, { "if": { "properties": { "function": { "type": "string", "const": "fill_container" } } }, "then": { "$ref": "#/definitions/BF" } }, { "if": { "properties": { "function": { "type": "string", "const": "furnace_smelt" } } }, "then": { "$ref": "#/definitions/BG" } }, { "if": { "properties": { "function": { "type": "string", "const": "looting_enchant" } } }, "then": { "$ref": "#/definitions/BH" } }, { "if": { "properties": { "function": { "type": "string", "const": "random_aux_value" } } }, "then": { "$ref": "#/definitions/BI" } }, { "if": { "properties": { "function": { "type": "string", "const": "random_block_state" } } }, "then": { "$ref": "#/definitions/BJ" } }, { "if": { "properties": { "function": { "type": "string", "const": "set_actor_id" } } }, "then": { "$ref": "#/definitions/CA" } }, { "if": { "properties": { "function": { "type": "string", "const": "set_banner_details" } } }, "then": { "$ref": "#/definitions/CB" } }, { "if": { "properties": { "function": { "type": "string", "const": "set_book_contents" } } }, "then": { "$ref": "#/definitions/CC" } }, { "if": { "properties": { "function": { "type": "string", "const": "set_count" } } }, "then": { "$ref": "#/definitions/CD" } }, { "if": { "properties": { "function": { "type": "string", "const": "set_damage" } } }, "then": { "$ref": "#/definitions/CE" } }, { "if": { "properties": { "function": { "type": "string", "const": "set_data" } } }, "then": { "$ref": "#/definitions/CF" } }, { "if": { "properties": { "function": { "type": "string", "const": "set_data_from_color_index" } } }, "then": { "$ref": "#/definitions/CG" } }, { "if": { "properties": { "function": { "type": "string", "const": "trader_material_type" } } }, "then": { "$ref": "#/definitions/CH" } }, { "if": { "properties": { "function": { "type": "string", "const": "random_dye" } } }, "then": { "$ref": "#/definitions/CI" } }, { "if": { "properties": { "function": { "type": "string", "const": "set_lore" } } }, "then": { "$ref": "#/definitions/CJ" } }, { "if": { "properties": { "function": { "type": "string", "const": "set_name" } } }, "then": { "$ref": "#/definitions/DA" } }, { "if": { "properties": { "function": { "type": "string", "const": "specific_enchants" } } }, "then": { "$ref": "#/definitions/DB" } } ] } }, "properties": { "pools": { "$ref": "#/definitions/pools_spec", "description": "TODO description", "title": "TODO Title" }, "type": { "title": "Type", "type": "string", "description": "TODO description", "enum": ["minecraft:chest"] } } }