### Define an Object Set Source: https://github.com/apollounknowndev/lithostitched/wiki/Terms-To-Know Examples of defining an object set as a single entry, a list of entries, or a tag reference. ```json "minecraft:stone" ``` ```json [ "minecraft:stone", "minecraft:deepslate", "minecraft:blackstone" ] ``` ```json "#minecraft:stone_crafting_materials" ``` -------------------------------- ### Wrap Noise Router Modifier Example Source: https://github.com/apollounknowndev/lithostitched/wiki/Technical-Changelog Example of a worldgen modifier that multiplies the temperature density function by 2 using the wrapped_marker. ```json { "type": "lithostitched:wrap_noise_router", "target": "temperature", "wrapper_function": { "type": "minecraft:mul", "argument1": 2, "argument2": { "type": "lithostitched:wrapped_marker" } } } ``` -------------------------------- ### Example Region File Configuration Source: https://github.com/apollounknowndev/lithostitched/wiki/Regions Defines a region for biome injection, specifying the target dimension, biome set, and injection weight. Ensure the 'biomes' field references a valid biome set. ```json { "dimension": "minecraft:overworld", "biomes": "#minecraft:is_overworld", "weight": 100 } ``` -------------------------------- ### Replace Partially Biome Injector Example Source: https://github.com/apollounknowndev/lithostitched/wiki/Intro-To-Biome-Injectors Use this injector to replace parts of existing biomes based on specific criteria. It's useful for gradual biome transitions or targeted modifications. ```json { "type": "lithostitched:replace_partially", "dimension": "minecraft:overworld", "priority": 1500, "targets": "minecraft:river", "replacement": "terralith:warm_river", "parameters": { "temperature": { "min_inclusive": 0.55 } } } ``` -------------------------------- ### Weighted Block State Provider Source: https://github.com/apollounknowndev/lithostitched/wiki/Processor-Types The set_block processor uses state providers to determine block placement. This example uses a weighted provider for cobblestone slabs and mossy cobblestone slabs. ```json { "processor_type": "lithostitched:set_block", "state_provider": { "type": "minecraft:weighted_state_provider", "entries": [ { "weight": 3, "data": { "Name": "minecraft:cobblestone_slab" } }, { "weight": 1, "data": { "Name": "minecraft:mossy_cobblestone_slab" } } ] }, "preserve_state": true, "random_mode": "per_block", "block_entity_modifier": { "type": "minecraft:passthrough" } } ``` -------------------------------- ### Delegating Structure Type with Spawn Condition Source: https://github.com/apollounknowndev/lithostitched/wiki/Structure-Types Apply extra features to existing structures using the delegating type. This example uses a sample density spawn condition and delegates to a jungle temple. ```json { "type": "lithostitched:delegating", "delegate": { "type": "minecraft:jungle_temple", "biomes": "#minecraft:has_structure/jungle_temple", "step": "surface_structures", "spawn_overrides": {} }, "spawn_condition": { "type": "lithostitched:sample_density", "density_function": "minecraft:overworld/erosion", "min_inclusive": 0.225, "max_inclusive": 0.425 } } ``` -------------------------------- ### Direct Block Swapping Source: https://github.com/apollounknowndev/lithostitched/wiki/Processor-Types The block_swap processor directly replaces specified blocks with others, preserving block states. This example swaps stone brick variants for their deepslate equivalents. ```json { "processor_type": "lithostitched:block_swap", "blocks": { "minecraft:stone_bricks": "minecraft:deepslate_bricks", "minecraft:stone_brick_slab": "minecraft:deepslate_brick_slab", "minecraft:stone_brick_stairs": "minecraft:deepslate_brick_stairs", "minecraft:stone_brick_wall": "minecraft:deepslate_brick_wall" } } ``` -------------------------------- ### Conditional Block Setting Source: https://github.com/apollounknowndev/lithostitched/wiki/Processor-Types Use the condition processor to apply other processors based on specific criteria. This example sets a block to blackstone if the input block is stone and a random chance passes. ```json { "processor_type": "lithostitched:condition", "random_mode": { "mode": "per_block", "name": "example:blackstone" }, "if_true": [ { "type": "lithostitched:matching_blocks", "blocks": "minecraft:stone", "match_type": "input" }, { "type": "lithostitched:random_chance", "chance": 0.5 } ], "then": { "processor_type": "lithostitched:set_block", "state_provider": { "type": "minecraft:simple_state_provider", "state": { "Name": "minecraft:blackstone" } } } } ``` -------------------------------- ### Cellular Fast Noise Config Example Source: https://github.com/apollounknowndev/lithostitched/wiki/Fast-Noise-Configs This JSON object defines a cellular fast noise configuration. It specifies the noise type, frequency, salt, distance function, return type, and jitter amount. Ensure all required fields are present and values are within accepted ranges. ```json { "type": "lithostitched:cellular", "frequency": 0.002, "salt": 304658814, "distance_function": "euclidean", "return_type": "cell_value", "jitter": 1 } ``` -------------------------------- ### Set Structure Spawn Condition Source: https://github.com/apollounknowndev/lithostitched/wiki/Worldgen-Modifier-Types Applies a spawn condition to a structure, controlling where and how it can generate. This example uses a height filter to restrict generation to a specific altitude range. ```json { "type": "lithostitched:set_structure_spawn_condition", "structures": "minecraft:pillager_outpost", "spawn_condition": { "type": "lithostitched:height_filter", "range_type": "absolute", "heightmap": "WORLD_SURFACE_WG", "permitted_range": { "min_inclusive": 90, "max_inclusive": 200 } }, "append": true } ``` -------------------------------- ### Cross-Platform Load Conditions for Modifiers Source: https://github.com/apollounknowndev/lithostitched/wiki/Load-Conditions This modifier includes load conditions for both Fabric and Neoforge, ensuring it only loads if the 'terralith' mod is present. This prevents errors when Terralith is not installed. ```json { "fabric:load_conditions": { "condition": "fabric:all_mods_loaded", "values": [ "terralith" ] }, "neoforge:conditions": [ { "type": "neoforge:mod_loaded", "modid": "terralith" } ], "type": "lithostitched:add_features", "biomes": "terralith:forested_highlands", "features": "my_mod:rock", "step": "vegetal_decoration" } ``` -------------------------------- ### Add Features Modifier (Without Predicate) Source: https://github.com/apollounknowndev/lithostitched/wiki/Load-Predicates This is an example of a worldgen modifier that adds a 'rock' feature to the 'forested_highlands' biome. Without a load predicate, this modifier will cause an error if the 'terralith' mod is not installed. ```json { "type": "lithostitched:add_features", "biomes": "terralith:forested_highlands", "features": "my_mod:rock", "step": "vegetal_decoration" } ``` -------------------------------- ### Load Vanilla Trial Spawner Structures Source: https://github.com/apollounknowndev/lithostitched/wiki/Custom-Trial-Chamber-Mobs Commands to load specific trial spawner categories into a creative world using structure blocks. ```text minecraft:trial_chambers/spawner/ranged/skeleton ``` ```text minecraft:trial_chambers/spawner/melee/zombie ``` ```text minecraft:trial_chambers/spawner/small_melee/cave_spider ``` -------------------------------- ### Add Features Modifier Source: https://github.com/apollounknowndev/lithostitched/wiki/Load-Conditions A basic Lithostitched modifier to add features to a biome. This will error if the specified biome's mod is not installed. ```json { "type": "lithostitched:add_features", "biomes": "terralith:forested_highlands", "features": "my_mod:rock", "step": "vegetal_decoration" } ``` -------------------------------- ### Example Worldgen Modifier: Remove Features Source: https://github.com/apollounknowndev/lithostitched/wiki/Intro-to-Worldgen-Modifiers This JSON defines a worldgen modifier of type `lithostitched:remove_features`. It specifies biomes, a list of features to remove, and the generation step. ```json { "type": "lithostitched:remove_features", "biomes": "#minecraft:is_overworld", "features": [ "minecraft:disk_sand", "minecraft:disk_gravel", "minecraft:disk_clay" ], "step": "underground_ores" } ``` -------------------------------- ### Configure weighted state provider Source: https://github.com/apollounknowndev/lithostitched/wiki/Block-State-Provider-Types Uses a weighted list to select between different block state providers. ```json { "type": "lithostitched:weighted", "entries": [ { "data": { "type": "minecraft:simple_state_provider", "state": { "Name": "minecraft:stone" } }, "weight": 1 }, { "data": { "type": "lithostitched:random_block", "blocks": "#minecraft:logs" }, "weight": 1 } ] } ``` -------------------------------- ### Add Features Modifier (With Mod Loaded Predicate) Source: https://github.com/apollounknowndev/lithostitched/wiki/Load-Predicates This worldgen modifier includes a 'mod_loaded' predicate, ensuring it only loads if the 'terralith' mod is present. This prevents errors when Terralith is not installed. ```json { "predicate": { "type": "lithostitched:mod_loaded", "mod_id": "terralith" }, "type": "lithostitched:add_features", "biomes": "terralith:forested_highlands", "features": "my_mod:rock", "step": "vegetal_decoration" } ``` -------------------------------- ### Dispatch Alternate Layout Source: https://github.com/apollounknowndev/lithostitched/wiki/Biome-Injector-Types Redirects to an alternative biome layout parameter list if the provided parameters match. This is useful for creating conditional biome generation paths. ```json { "type": "lithostitched:dispatch_alternate_layout", "dimension": "minecraft:overworld", "parameters": {}, "region": "my_mod:region_primary", "points": [ // this would go on for awhile ] } ``` -------------------------------- ### Configure Slow Ranged Spawners Source: https://github.com/apollounknowndev/lithostitched/wiki/Custom-Trial-Chamber-Mobs Alternative structure path for ranged spawners that require a slower attack interval. ```text minecraft:trial_chambers/spawner/slow_ranged/skeleton ``` -------------------------------- ### Referencing External Processor Lists Source: https://github.com/apollounknowndev/lithostitched/wiki/Processor-Types The reference processor allows applying processor lists defined in other files. This is useful for modularity and reusing processor logic. ```json { "processor_type": "lithostitched:reference", "processor_lists": [ "example:some_other_processor_a", "example:some_other_processor_b" ] } ``` -------------------------------- ### Vines Feature Configuration Source: https://github.com/apollounknowndev/lithostitched/wiki/Configured-Feature-Types Configures a vines feature with a weighted list of vine blocks and custom placement conditions. Use this to generate varied vine growth. ```json { "type": "lithostitched:vines", "config": { "state": [ { "data": "minecraft:vine", "weight": 1 }, { "data": "example:flowering_vine", "weight": 1 } ], "can_place_on": "#minecraft:logs", "max_length": { "type": "minecraft:uniform", "min_inclusive": 2, "max_inclusive": 3 } } } ``` -------------------------------- ### Dungeon Feature Configuration Source: https://github.com/apollounknowndev/lithostitched/wiki/Configured-Feature-Types Defines a configurable dungeon feature with custom spawner entities, block providers, and loot tables. Use this to create unique dungeon structures. ```json { "type": "lithostitched:dungeon", "config": { "min_openings": 0, "max_openings": 8, "radius": { "type": "minecraft:uniform", "min_inclusive": 2, "max_inclusive": 4 }, "max_chests": 3, "spawner_entity": [ { "data": "minecraft:creeper", "weight": 3 }, { "data": "minecraft:cave_spider", "weight": 1 } ], "floor_provider": { "type": "minecraft:simple_state_provider", "state": { "Name": "minecraft:mossy_cobblestone" } }, "wall_provider": { "type": "minecraft:simple_state_provider", "state": { "Name": "minecraft:cobblestone" } }, "dungeon_invalid_blocks": "#minecraft:features_cannot_replace", "loot_table": "minecraft:chests/abandoned_mineshaft" } } ``` -------------------------------- ### Configure Delegating Pool Element Source: https://github.com/apollounknowndev/lithostitched/wiki/Adding-Entries-to-Template-Pools Wraps a standard template pool element in a delegating element to enable forced or capped generation counts. ```json { "type": "lithostitched:add_template_pool_elements", "template_pools": "", "elements": [ { "weight": 1, "element": { "element_type": "lithostitched:delegating", "delegate": { "element_type": "minecraft:single_pool_element", "projection": "rigid", "location": "", "processors": "minecraft:empty" }, "forced_count": 1 } } ] } ``` -------------------------------- ### Configurable Jigsaw Structure Type Source: https://github.com/apollounknowndev/lithostitched/wiki/Structure-Types Use this for custom jigsaw structures with advanced placement and size options. It supports int providers for size and specific projection strategies like 'ceiling' or 'floor'. ```json { "type": "lithostitched:jigsaw", "biomes": "#minecraft:is_overworld", "step": "underground_structures", "spawn_overrides": {}, "terrain_adaptation": "bury", "start_pool": "example:custom_dungeon/start", "size": { "type": "minecraft:uniform", "value": { "min_inclusive": 8, "max_inclusive": 12 } }, "start_height": { "absolute": 50 }, "start_projection": "floor", "max_distance_from_center": 116, "use_expansion_hack": false } ``` -------------------------------- ### Registering Shipwreck Palette Processor List Source: https://github.com/apollounknowndev/lithostitched/wiki/Custom-Shipwreck-Wood-Types Registers your custom processor list for use as a shipwreck palette. Replace '' with the actual ID of your processor list file (e.g., 'your_datapack_namespace:your_processor_list_name'). ```json { "values": [ "" ] } ``` -------------------------------- ### Well Feature Configuration Source: https://github.com/apollounknowndev/lithostitched/wiki/Configured-Feature-Types Configure a well feature with custom block providers for different parts of the structure. This type offers more control than the vanilla desert_well, allowing customization of standard blocks, slabs, fluid, ground, and suspicious blocks. ```json { "type": "lithostitched:well", "config": { "standard_provider": { "type": "minecraft:simple_state_provider", "state": { "Name": "minecraft:red_sandstone" } }, "slab_provider": { "type": "minecraft:simple_state_provider", "state": { "Name": "minecraft:red_sandstone_slab" } }, "fluid_provider": { "type": "minecraft:simple_state_provider", "state": { "Name": "minecraft:water" } }, "ground_provider": { "type": "minecraft:simple_state_provider", "state": { "Name": "minecraft:gravel" } }, "suspicious_provider": { "type": "minecraft:simple_state_provider", "state": { "Name": "minecraft:suspicious_gravel" } }, "suspicious_block_placements": 1, "suspicious_loot_table": "minecraft:archaeology/trail_ruins_rare" } } ``` -------------------------------- ### Force Biome Placement Source: https://github.com/apollounknowndev/lithostitched/wiki/Biome-Injector-Types Forces a biome to be placed if specific parameter conditions are met. Requires a parameter map to check against. ```json { "type": "lithostitched:force_placement", "dimension": "minecraft:overworld", "parameters": { "my_mod:infection_noise": { "min_inclusive": 0.5 } }, "biome": "my_mod:infection" } ``` -------------------------------- ### Custom Block Swap Processor List for Shipwrecks Source: https://github.com/apollounknowndev/lithostitched/wiki/Custom-Shipwreck-Wood-Types Defines a processor list that swaps specific wood types for custom ones. Use this to set primary and secondary wood types for shipwrecks. Ensure 'minecraft:primary' and 'minecraft:secondary' are replaced with your desired wood types. ```json { "processors": [ { "processor_type": "lithostitched:block_swap", "blocks": { "minecraft:oak_log": "minecraft:primary_log", "minecraft:oak_planks": "minecraft:primary_planks", "minecraft:oak_stairs": "minecraft:primary_stairs", "minecraft:oak_slab": "minecraft:primary_slab", "minecraft:oak_fence": "minecraft:primary_fence", "minecraft:oak_door": "minecraft:primary_door", "minecraft:oak_trapdoor": "minecraft:primary_trapdoor", "minecraft:spruce_planks": "minecraft:secondary_planks", "minecraft:spruce_stairs": "minecraft:secondary_stairs", "minecraft:spruce_slab": "minecraft:secondary_slab", "minecraft:spruce_fence": "minecraft:secondary_fence" } } ] } ``` -------------------------------- ### Configure random_block state provider Source: https://github.com/apollounknowndev/lithostitched/wiki/Block-State-Provider-Types Selects a random block from a specified block, list of blocks, or tag. ```json { "type": "lithostitched:random_block", "blocks": "#minecraft:logs" } ``` -------------------------------- ### Fast Noise Density Function Source: https://github.com/apollounknowndev/lithostitched/wiki/Density-Function-Types Samples a Fast Noise configuration to generate procedural noise. Allows for complex terrain and texture generation. ```json { "type": "lithostitched:fast_noise", "config": "lithostitched:region/overworld", "xz_scale": 1, "y_scale": 0, "shift_x": "lithostitched:region/shift_x", "shift_z": "lithostitched:region/shift_z" } ``` -------------------------------- ### Placed Feature Type Source: https://github.com/apollounknowndev/lithostitched/wiki/Configured-Feature-Types Use the `lithostitched:placed` type to place a single configured feature. The `config` can be an inlined or referenced placed feature. ```json { "type": "lithostitched:placed", "config": "my_mod:patch_flowers" } ``` -------------------------------- ### Register Template Pool for Trial Spawners Source: https://github.com/apollounknowndev/lithostitched/wiki/Custom-Trial-Chamber-Mobs This JSON file registers your custom template pool ID with Lithostitched for use in Trial Chambers. The filename depends on the mob category (ranged, melee, etc.). ```json { "values": [ "" ] } ``` -------------------------------- ### lithostitched:offset Source: https://github.com/apollounknowndev/lithostitched/wiki/Placement-Modifier-Types Applies configurable offsets to feature placement, supporting int providers. ```APIDOC ## lithostitched:offset ### Description The offset placement modifier is a more configurable version of vanilla's random_offset placement modifier. All offset fields are optional int providers and will default to 0. ### Parameters - **x_offset** (int provider) - Optional - Offset on the x-axis. - **y_offset** (int provider) - Optional - Offset on the y-axis. - **z_offset** (int provider) - Optional - Offset on the z-axis. ### Request Example { "type": "lithostitched:offset", "x_offset": 0, "y_offset": { "type": "minecraft:uniform", "min_inclusive": 2, "max_inclusive": 4 }, "z_offset": 2 } ``` -------------------------------- ### Random Processor List Application Source: https://github.com/apollounknowndev/lithostitched/wiki/Processor-Types The apply_random processor selects one processor list from a weighted list to apply. This is useful for adding variety to structures. ```json { "processor_type": "lithostitched:apply_random", "mode": "per_block", "processor_lists": [ { "weight": 3, "data": "example:some_other_processor_a" }, { "weight": 5, "data": "example:some_other_processor_b" } ] } ``` -------------------------------- ### Add Points to Biome Layout Source: https://github.com/apollounknowndev/lithostitched/wiki/Biome-Injector-Types Appends parameter points to the base biome layout. This injector requires the target biome source to be a MultiNoiseBiomeSource; otherwise, it will fail silently. ```json { "type": "lithostitched:add_points", "dimension": "minecraft:overworld", "points": [ { "biome": "my_mod:spider_caves", "parameters": { "temperature": [-1, 1], "humidity": [-1, -0.8], "continentalness": [-1, 1], "erosion": [-1, 1], "weirdness": [-1, 1], "depth": [-1, 1], "offset": 0 } } ] } ``` -------------------------------- ### Select Feature Type with Predicates Source: https://github.com/apollounknowndev/lithostitched/wiki/Configured-Feature-Types Use the `lithostitched:select` type to choose a feature based on block predicates. This allows conditional feature placement. ```json { "type": "lithostitched:select", "config": { "features": [ { "predicate": { "type": "minecraft:matching_blocks", "blocks": "minecraft:sand" }, "feature": "example:dead_tree" }, { "predicate": { "type": "minecraft:matching_blocks", "blocks": "minecraft:grass_block" }, "feature": "example:tree" } ] } } ``` -------------------------------- ### Guaranteed Pool Element Configuration Source: https://github.com/apollounknowndev/lithostitched/wiki/Template-Pool-Element-Types Force a specific number of a pool element to generate using the guaranteed element. It requires a delegate, count, and optionally a minimum depth. ```json { "element_type": "lithostitched:guaranteed", "delegate": { "element_type": "minecraft:single_pool_element", "projection": "rigid", "location": "example:dungeon/boss_room", "processors": "minecraft:empty" }, "count": 1, "min_depth": 4 } ``` -------------------------------- ### Define a Template Pool for Structures Source: https://github.com/apollounknowndev/lithostitched/wiki/Custom-Trial-Chamber-Mobs Use this JSON structure to define a template pool that references structure NBT files. Ensure the 'location' field correctly points to your structure's NBT file path. ```json { "elements": [ { "element": { "element_type": "minecraft:single_pool_element", "location": "", "processors": "minecraft:empty", "projection": "rigid" }, "weight": 1 } ], "fallback": "minecraft:empty" } ``` -------------------------------- ### Replace Biome Climate Source: https://github.com/apollounknowndev/lithostitched/wiki/Worldgen-Modifier-Types Replaces the climate settings (temperature, downfall, precipitation) for specified biomes. ```json { "type": "lithostitched:replace_climate", "biomes": [ "minecraft:savanna", "minecraft:savanna_plateau" ], "climate": { "temperature": 2.0, "downfall": 0.25, "has_precipitation": true } } ``` -------------------------------- ### Large Dripstone Feature Configuration Source: https://github.com/apollounknowndev/lithostitched/wiki/Configured-Feature-Types Configures a large dripstone feature with a custom block state provider and replaceable blocks. Useful for generating unique dripstone formations. ```json { "type": "lithostitched:large_dripstone", "config": { "state_provider": { "type": "minecraft:simple_state_provider", "state": { "Name": "minecraft:packed_ice" } }, "replaceable_blocks": "#minecraft:dripstone_replaceable_blocks", "floor_to_ceiling_search_range": 30, ... } } ``` -------------------------------- ### matching_blocks Condition Source: https://github.com/apollounknowndev/lithostitched/wiki/Processor-Conditions Checks if the current blocks in the template or world match specified conditions. ```APIDOC ## `matching_blocks` ### Description Checks if the current blocks either in the template or in the world match given conditions. ### Parameters #### Request Body - **blocks** (string | list) - Required - A block, list of blocks, or tag of blocks to check against. - **properties** (object) - Optional - An optional list of block properties to check. Defaults to not checking any states. - **match_type** (string) - Optional - The type of matching to do. `input` checks against the block in the structure template, `location` checks against the block in the world getting replaced. Defaults to `input`. ``` -------------------------------- ### Fully Replace Biomes Source: https://github.com/apollounknowndev/lithostitched/wiki/Biome-Injector-Types Completely replaces target biomes with a specified replacement biome. Accepts a set of target biomes. ```json { "type": "lithostitched:replace_fully", "dimension": "minecraft:overworld", "targets": [ "minecraft:sparse_jungle", "minecraft:bamboo_jungle" ], "replacement": "minecraft:jungle" } ``` -------------------------------- ### Feature Pool Element Configuration Source: https://github.com/apollounknowndev/lithostitched/wiki/Template-Pool-Element-Types Configure a feature pool element with custom jigsaw name and target name. This provides more control than the vanilla version. ```json { "element_type": "minecraft:feature_pool_element", "feature": "minecraft:sculk_patch_ancient_city", "projection": "rigid", "jigsaw_name": "minecraft:decoration", "target_name": "minecraft:decoration" } ``` -------------------------------- ### Add Structure Set Entries Source: https://github.com/apollounknowndev/lithostitched/wiki/Worldgen-Modifier-Types Adds new structure entries to an existing structure set. This allows for custom structures to be included in predefined sets, with specified weights. ```json { "type": "lithostitched:add_structure_set_entries", "structure_sets": "minecraft:nether_complexes", "entries": [ { "structure": "example:village_nether", "weight": 3 } ] } ``` -------------------------------- ### Add Biome Spawns Source: https://github.com/apollounknowndev/lithostitched/wiki/Worldgen-Modifier-Types Adds mob spawns to biome entries. Specify the biome set and the spawner data. ```json { "type": "lithostitched:add_biome_spawns", "biomes": "#c:swamp", "spawners": { "type": "minecraft:witch", "weight": 450, "minCount": 3, "maxCount": 3 } } ``` -------------------------------- ### Mathematical Density Functions Source: https://github.com/apollounknowndev/lithostitched/wiki/Density-Function-Types Applies standard mathematical operations like sine, cosine, floor, ceiling, and square root to an input density function. ```json { "type": "lithostitched:sin", "argument": 5 } ``` -------------------------------- ### Add Lithostitched as a Gradle Dependency Source: https://github.com/apollounknowndev/lithostitched/wiki/How-to-Use Add the Modrinth maven repository and Lithostitched as a dependency in your build.gradle(.kts) file. This method allows for custom structure condition and worldgen modifier types. ```groovy // Add the Modrinth maven to your build.gradle(.kts)'s `repositories` block repositories { maven { url = "https://api.modrinth.com/maven" } } // Add the mod as a dependency in the `dependencies` block // Note that I've dropped the `1.` in `1.21.1` dependencies { modImplementation "maven.modrinth:lithostitched:1.7.9-fabric-21.1" } ``` -------------------------------- ### Check Block State Source: https://github.com/apollounknowndev/lithostitched/wiki/Block-Predicate-Types Use this predicate to verify specific block states of a given block. Requires a JSON object with a 'properties' field containing key-value pairs of block states. ```json { "type": "lithostitched:block_state", "properties": { "half": "upper" } } ``` -------------------------------- ### Matching Blocks Condition Source: https://github.com/apollounknowndev/lithostitched/wiki/Processor-Conditions Validates block types and properties against template or world data. ```json { "type": "lithostitched:matching_blocks", "blocks": "#example:stone_stairs", "properties": { "waterlogged": "false" }, "match_type": "input" } ``` -------------------------------- ### Add Biome Features Source: https://github.com/apollounknowndev/lithostitched/wiki/Worldgen-Modifier-Types Adds placed features to biome entries within a specified generation step. Requires biome set, feature set, and generation step. ```json { "type": "lithostitched:add_features", "biomes": "#minecraft:is_overworld", "features": "example:ore_ancient_debris", "step": "underground_ores" } ``` -------------------------------- ### lithostitched:noise_slope Source: https://github.com/apollounknowndev/lithostitched/wiki/Placement-Modifier-Types Calculates placement count based on noise output using a slope and offset formula. ```APIDOC ## lithostitched:noise_slope ### Description The noise_slope placement modifier is a more configurable version of the noise_based_count placement modifier. The number of placements is defined as ceil(noise output * slope) + offset. ### Parameters - **noise** (string) - The noise key, referencing a file in the worldgen/noise folder. - **slope** (number) - The number to multiply the noise by. - **offset** (number) - The number to offset the sloped number by. - **xz_scale** (number) - The scale of the noise on the x and z axes. - **y_scale** (number) - The scale of the noise on the y axis. ### Request Example { "type": "lithostitched:noise_slope", "noise": "minecraft:surface", "slope": 5, "offset": 2, "xz_scale": 0.5, "y_scale": 0 } ``` -------------------------------- ### Structure Template Feature Type Source: https://github.com/apollounknowndev/lithostitched/wiki/Configured-Feature-Types The `lithostitched:structure_template` type enables placing structure `.nbt` files. It supports processors, rotation, and liquid settings. ```json { "type": "lithostitched:structure_template", "config": { "template": "example:shrine", "processors": "minecraft:empty", "rotation": "clockwise_90", "liquid_settings": "ignore_waterlogging", "start_jigsaw_name": "minecraft:anchor" } } ``` -------------------------------- ### Set Biome Attributes Source: https://github.com/apollounknowndev/lithostitched/wiki/Worldgen-Modifier-Types Sets environment attributes on biome entries. Requires biome(s) and a map of attributes. Available in 1.21.11+. ```json { "type": "lithostitched:set_biome_attributes", "biomes": "minecraft:pale_garden", "attributes": { "visual/fog_start_distance": 0, "visual/fog_end_distance": 16 } } ``` -------------------------------- ### Limited Pool Element Configuration Source: https://github.com/apollounknowndev/lithostitched/wiki/Template-Pool-Element-Types Use the limited element to restrict the number of times a specific pool element can be placed. It requires a delegate and a limit value. ```json { "element_type": "lithostitched:limited", "delegate": { "element_type": "minecraft:single_pool_element", "projection": "rigid", "location": "example:dungeon/rare_room", "processors": "minecraft:empty" }, "limit": 2 } ``` -------------------------------- ### all_of Condition Source: https://github.com/apollounknowndev/lithostitched/wiki/Processor-Conditions Checks if all conditions in a list pass. If all conditions are met, this condition passes. ```APIDOC ## `all_of` ### Description Checks a list of processor conditions. If all pass, this passes. ### Parameters #### Request Body - **conditions** (list) - Required - The list of conditions to check. ``` -------------------------------- ### Ore Feature Configuration Source: https://github.com/apollounknowndev/lithostitched/wiki/Configured-Feature-Types Defines a flexible ore feature with custom size and targets for block replacement. Use this to generate ores with specific placement rules. ```json { "type": "lithostitched:ore", "config": { "size": 100, "targets": [ { "predicate": { "type": "minecraft:matching_blocks", "blocks": "minecraft:granite" }, "state_provider": { "type": "minecraft:simple_state_provider", "state": { "Name": "example:granite_copper_ore" } } } ] } } ``` -------------------------------- ### Update Worldgen Modifier Syntax Source: https://github.com/apollounknowndev/lithostitched/wiki/Migrating-to-1.4 Comparison of the old single-field syntax versus the new pluralized syntax for worldgen modifiers. ```json { "type": "lithostitched:add_template_pool_elements", "template_pool": "minecraft:trial_chambers/decor", "elements": [] } ``` ```json { "type": "lithostitched:add_template_pool_elements", "template_pools": [ // This can still be a single element, the list is an example "minecraft:trial_chambers/decor" "example:some_other_pool" ], "elements": [] } ``` -------------------------------- ### Lithostitched All Of Condition Source: https://github.com/apollounknowndev/lithostitched/wiki/Placement-Conditions Use this condition to check if all sub-conditions in a list pass. It requires a list of conditions to evaluate. ```json { "type": "lithostitched:all_of", "conditions": [ { "type": "lithostitched:true" } ] } ``` -------------------------------- ### Define an offset placement modifier Source: https://github.com/apollounknowndev/lithostitched/wiki/Placement-Modifier-Types Provides configurable offsets for feature placement using int providers. All offset fields are optional and default to 0. ```json { "type": "lithostitched:offset", "x_offset": 0, "y_offset": { "type": "minecraft:uniform", "min_inclusive": 2, "max_inclusive": 4 }, "z_offset": 2 } ``` -------------------------------- ### Modify Trial Spawner Entity Data Source: https://github.com/apollounknowndev/lithostitched/wiki/Custom-Trial-Chamber-Mobs Commands to update the spawn configuration of a trial spawner to use a custom entity ID and remove existing spawn data. ```mcfunction /data modify block normal_config.spawn_potentials[0].data.entity.id set value "" ``` ```mcfunction /data modify block ominous_config.spawn_potentials[0].data.entity.id set value "" ``` ```mcfunction /data remove block spawn_data ``` -------------------------------- ### Update Worldgen Modifier Syntax Source: https://github.com/apollounknowndev/lithostitched/wiki/Technical-Changelog Illustrates the new plural syntax for worldgen modifier fields, which now accept lists or tags. The old syntax is supported until v1.4. ```json { "type": "lithostitched:add_template_pool_elements", "template_pool": "minecraft:trial_chambers/decor", "elements": [] } ``` ```json { "type": "lithostitched:add_template_pool_elements", "template_pools": [ "minecraft:trial_chambers/decor" "example:some_other_pool" ], "elements": [] } ``` -------------------------------- ### Delegating Pool Element Configuration Source: https://github.com/apollounknowndev/lithostitched/wiki/Template-Pool-Element-Types Use the delegating element to hold custom pool element functionality. It requires a delegate field specifying the actual pool element to be placed. ```json { "element_type": "lithostitched:delegating", "delegate": { "element_type": "minecraft:single_pool_element", "projection": "rigid", "location": "example:dungeon/rare_room", "processors": "minecraft:empty" }, "allowed_depth": [2, 20], "max_count": 3, "override_terrain_adaption": "bury" } ``` -------------------------------- ### Apply all modifiers sequentially Source: https://github.com/apollounknowndev/lithostitched/wiki/Block-Entity-Modifier-Types Uses the apply_all modifier to execute a list of block entity modifiers in the specified order. ```json { "type": "lithostitched:apply_all", "modifiers": [ { "type": "minecraft:append_loot", "loot_table": "minecraft:archaeology/desert_pyramid" }, { "type": "minecraft:passthrough" } ] } ``` -------------------------------- ### Select Density Function Source: https://github.com/apollounknowndev/lithostitched/wiki/Density-Function-Types Chooses a density function to compute based on whether the input value falls within specified ranges. Provides conditional logic for density. ```json { "type": "lithostitched:select", "input": "minecraft:overworld/depth", "fallback": 0, "selections": [ { "range": [ -2, -1 ], "function": "my_mod:high_skies" }, { "range": [ 1, 2 ], "function": "my_mod:deep_depths" } ] } ``` -------------------------------- ### any_of Condition Source: https://github.com/apollounknowndev/lithostitched/wiki/Processor-Conditions Checks if any condition in a list passes. If at least one condition is met, this condition passes. ```APIDOC ## `any_of` ### Description Checks a list of processor conditions. If any pass, this passes. ### Parameters #### Request Body - **conditions** (list) - Required - The list of conditions to check. ``` -------------------------------- ### Add Template Pool Elements Source: https://github.com/apollounknowndev/lithostitched/wiki/Worldgen-Modifier-Types Adds new elements to a template pool, allowing for custom structures or variations to be included in procedurally generated builds. Elements can be assigned weights. ```json { "type": "lithostitched:add_template_pool_elements", "template_pools": "minecraft:village/plains/houses", "elements": [ { "weight": 2, "element": { "element_type": "minecraft:legacy_single_pool_element", "projection": "rigid', "location": "minecraft:village/desert/houses/desert_small_house_1", "processors": "minecraft:empty" } } ] } ``` -------------------------------- ### lithostitched:condition Source: https://github.com/apollounknowndev/lithostitched/wiki/Placement-Modifier-Types Tests a placement condition to determine if a feature should be placed at the current position. ```APIDOC ## lithostitched:condition ### Description The condition placement modifier tests a placement condition to see if the placed feature should be placed at its current position. ### Request Example { "type": "lithostitched:condition", "condition": { "type": "lithostitched:sample_density", "density_function": "minecraft:overworld/ridges", "min_inclusive": -0.3, "max_inclusive": 0.3 } } ``` -------------------------------- ### Partially Replace Biomes Conditionally Source: https://github.com/apollounknowndev/lithostitched/wiki/Biome-Injector-Types Replaces target biomes with a replacement biome only if certain parameter conditions are met. This injector can target a single biome or a set of biomes. ```json { "type": "lithostitched:replace_partially", "dimension": "minecraft:overworld", "targets": "minecraft:dark_forest", "replacement": "minecraft:pale_garden", "parameters": { "erosion": { "max_inclusive": -0.3 } } } ``` -------------------------------- ### weighted State Provider Source: https://github.com/apollounknowndev/lithostitched/wiki/Block-State-Provider-Types The weighted state provider type uses a weighted list to choose a random block state provider. ```APIDOC ## weighted ### Description The `weighted` state provider type uses a weighted list to choose a random block state provider to use. ### Parameters - **type** (string) - Required - Must be "lithostitched:weighted" - **entries** (list) - Required - A weighted list of block state providers. ### Request Example { "type": "lithostitched:weighted", "entries": [ { "data": { "type": "minecraft:simple_state_provider", "state": { "Name": "minecraft:stone" } }, "weight": 1 }, { "data": { "type": "lithostitched:random_block", "blocks": "#minecraft:logs" }, "weight": 1 } ] } ``` -------------------------------- ### add_biome_spawns Source: https://github.com/apollounknowndev/lithostitched/wiki/Worldgen-Modifier-Types The `add_biome_spawns` modifier adds mob spawns to biome entries. ```APIDOC ## add_biome_spawns ### Description The `add_biome_spawns` modifier adds mob spawns to biome entries. ### Method POST ### Endpoint /worldgen/modifier/add_biome_spawns ### Request Body - **type** (string) - Required - Must be "lithostitched:add_biome_spawns" - **biomes** (string) - Required - A biome set. - **spawners** (object|array) - Required - Either a single entry or a list of entries of spawner data. Identical format to spawner data entries in biome files, but mob categories are assigned automatically. - **type** (string) - Required - The type of mob. - **weight** (number) - Required - The weight of the spawn. - **minCount** (number) - Required - The minimum number of mobs to spawn. - **maxCount** (number) - Required - The maximum number of mobs to spawn. ### Request Example ```json { "type": "lithostitched:add_biome_spawns", "biomes": "#c:swamp", "spawners": { "type": "minecraft:witch", "weight": 450, "minCount": 3, "maxCount": 3 } } ``` ### Response #### Success Response (200) - **message** (string) - Confirmation message. #### Response Example ```json { "message": "Biome spawns added successfully." } ``` ``` -------------------------------- ### Define a Lithostitched Worldgen Modifier Source: https://github.com/apollounknowndev/lithostitched/wiki/Adding-Entries-to-Template-Pools Use this JSON structure to register new elements into a template pool. Ensure the file is placed in the 'data//lithostitched/worldgen_modifier' directory. ```json { "type": "lithostitched:add_template_pool_elements", "template_pools": "", "elements": [ { "weight": 1, "element": { "element_type": "minecraft:single_pool_element", "projection": "rigid", "location": "", "processors": "minecraft:empty" } } ] } ``` -------------------------------- ### true Condition Source: https://github.com/apollounknowndev/lithostitched/wiki/Processor-Conditions A condition that always passes. ```APIDOC ## `true` ### Description Always passes. No further fields. ``` -------------------------------- ### Position Condition Source: https://github.com/apollounknowndev/lithostitched/wiki/Processor-Conditions Evaluates a position rule test based on a specified anchor. ```json { "type": "lithostitched:position", "predicate": { "predicate_type": "minecraft:linear_pos", "max_chance": 0.3, "max_dist": 10, "min_chance": 0.1, "min_dist": 0 }, "anchor": "piece" }, ``` -------------------------------- ### Composite Feature Type Source: https://github.com/apollounknowndev/lithostitched/wiki/Configured-Feature-Types The `lithostitched:composite` type allows stacking multiple placed features in one location. It supports different placement strategies like `cancel_on_failure`. ```json { "type": "lithostitched:composite", "config": { "features": [ "example:cherry_tree", "example:pink_petals" ], "placement_type": "cancel_on_failure" } } ``` -------------------------------- ### Lithostitched Sample Density Condition Source: https://github.com/apollounknowndev/lithostitched/wiki/Placement-Conditions Evaluates a density function at the current position and checks if the result falls within a specified range. It requires a density function and min/max inclusive values. ```json { "type": "lithostitched:sample_density", "density_function": "minecraft:overworld/erosion", "min_inclusive": -0.2, "max_inclusive": 0.3 } ``` -------------------------------- ### position Condition Source: https://github.com/apollounknowndev/lithostitched/wiki/Processor-Conditions Checks a position rule test against a specified anchor. ```APIDOC ## `position` ### Description Checks a position rule test. ### Parameters #### Request Body - **predicate** (object) - Required - The position rule test to check. - **anchor** (string) - Required - The positional anchor to base the check on. Possible fields are `structure_start` for current/vanilla behavior and `piece` for piece-relative position checks. ``` -------------------------------- ### Lithostitched Any Of Condition Source: https://github.com/apollounknowndev/lithostitched/wiki/Placement-Conditions Use this condition to check if at least one sub-condition in a list passes. It requires a list of conditions to evaluate. ```json { "type": "lithostitched:any_of", "conditions": [ { "type": "lithostitched:true" } ] } ``` -------------------------------- ### Replace Biome Effects Source: https://github.com/apollounknowndev/lithostitched/wiki/Worldgen-Modifier-Types Replaces the visual effects (sky color, fog color, water color) for specified biomes. All fields within 'effects' are optional. ```json { "type": "lithostitched:replace_effects", "biomes": [ "minecraft:lush_caves", "minecraft:dripstone_caves", "minecraft:deep_dark" ], "effects": { "sky_color": 0, "fog_color": 0, "water_color": 0, "water_fog_color": 0 } } ``` -------------------------------- ### Mix Density Function Source: https://github.com/apollounknowndev/lithostitched/wiki/Density-Function-Types Smoothly interpolates between two density functions based on an input value. Use when a gradual transition is needed. ```json { "type": "lithostitched:mix", "input": "minecraft:overworld/depth", "argument1": "something:on_the_surface", "argument2": "something:deep_underground" } ``` -------------------------------- ### Lithostitched In Biome Condition Source: https://github.com/apollounknowndev/lithostitched/wiki/Placement-Conditions Checks if the current position is located within specified biomes. It requires a biome or biome set identifier. ```json { "type": "lithostitched:in_biome", "biomes": "#minecraft:is_beach" } ```