{ "$id": "blockception.minecraft.behavior.feature_rules.minecraft.feature_rules", "type": "object", "title": "Feature Rules", "additionalProperties": false, "definitions": { "coord_dist": { "title": "", "description": "UNDOCUMENTED.", "$comment": "UNDOCUMENTED", "oneOf": [ { "$ref": "../../../molang/number.json", "description": "Expression for the coordinate (evaluated each iteration). Mutually exclusive with random distribution object below." }, { "type": "object", "description": "Distribution for the coordinate (evaluated each iteration). Mutually exclusive with Molang expression above.", "additionalProperties": false, "examples": [ { "numerator": 1, "denominator": 1 } ], "properties": { "numerator": { "title": "Numerator", "description": "UNDOCUMENTED.", "$comment": "UNDOCUMENTED", "type": "number", "minimum": 1 }, "denominator": { "title": "Denominator", "description": "UNDOCUMENTED.", "$comment": "UNDOCUMENTED", "type": "number", "minimum": 1 } } }, { "type": "object", "additionalProperties": false, "properties": { "distribution": { "title": "Distribution", "description": "Distribution type", "type": "string", "enum": ["uniform", "fixed_grid", "jittered_grid", "gaussian", "inverse_gaussian", "triangle"] }, "extent": { "title": "Extent", "description": "Represents the range of values on which that distribution operates, from minimum to maximum.", "type": "array", "minItems": 2, "maxItems": 2, "items": { "type": "number" } } } } ] } }, "properties": { "description": { "title": "Description", "description": "The description of this feature rule.", "type": "object", "additionalProperties": false, "required": [ "identifier", "places_feature" ], "properties": { "identifier": { "title": "Identifier", "description": "The name of this feature in the form `namespace_name:feature_name`. `feature_name` must match the filename.", "type": "string", "$ref": "../../../general/feature/identifier.json" }, "places_feature": { "title": "Places Feature", "description": "Named reference to the feature controlled by this rule.", "type": "string" } } }, "conditions": { "title": "Conditions", "description": "Parameters to control where and when the feature will be placed.", "type": "object", "additionalProperties": false, "required": [ "placement_pass" ], "properties": { "placement_pass": { "title": "Placement Pass", "description": "When the feature should be placed relative to others. Earlier passes in the list are guaranteed to occur before later passes. Order is not guaranteed within each pass.", "type": "string", "enum": [ "pregeneration_pass", "first_pass", "before_underground_pass", "underground_pass", "after_underground_pass", "before_surface_pass", "surface_pass", "after_surface_pass", "before_sky_pass", "sky_pass", "after_sky_pass", "final_pass" ] }, "minecraft:biome_filter": { "title": "Biome Filter", "description": "List of filter tests to determine which biomes this rule will attach to.", "$ref": "../../entities/filters/filters.json" } } }, "distribution": { "title": "Distribution", "description": "Parameters controlling the initial scatter of the feature.", "type": "object", "additionalProperties": false, "required": [ "iterations" ], "properties": { "coordinate_eval_order": { "title": "Coordinate Eval Order", "description": "The order in which coordinates will be evaluated. Should be used when a coordinate depends on another. If omitted, defaults to `xzy`.", "type": "string", "enum": [ "xyz", "xzy", "yxz", "yzx", "zxy", "zyx" ] }, "iterations": { "title": "Iterations", "description": "Number of scattered positions to generate.", "$ref": "../../../molang/number.json" }, "scatter_chance": { "title": "Scatter Chance", "oneOf": [ { "$ref": "../../../molang/number.json", "description": "Probability (0-100] that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will." }, { "type": "object", "description": "Probability numerator / denominator that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will.", "additionalProperties": false, "properties": { "numerator": { "title": "Numerator", "description": "UNDOCUMENTED.", "$comment": "UNDOCUMENTED", "type": "number", "minimum": 1 }, "denominator": { "title": "Denominator", "description": "UNDOCUMENTED.", "$comment": "UNDOCUMENTED", "type": "number", "minimum": 1 } } } ] }, "x": { "title": "X", "$ref": "#/definitions/coord_dist" }, "z": { "title": "Y", "$ref": "#/definitions/coord_dist" }, "y": { "title": "Z", "$ref": "#/definitions/coord_dist" } } } } }