Skip to content

Instantly share code, notes, and snippets.

@belathus
Created December 22, 2021 12:57
Show Gist options
  • Save belathus/9a74c73e8e3132bdfc57cf25e71853f2 to your computer and use it in GitHub Desktop.
Save belathus/9a74c73e8e3132bdfc57cf25e71853f2 to your computer and use it in GitHub Desktop.
# specialai:idle_ai.toml
# This config contains options for idle behaviors - actions taken by mobs when they are bored.
# Entity List fields: General format = [ "namespace:entity_type value1 value2 ...", ... ]
# Entity lists are arrays of entity types. Some entity lists specify a number of values linked to each entity type.
# Entity types are defined by their key in the entity registry, usually following the pattern 'namespace:entity_name'.
# 'default' can be used instead of an entity type registry key to provide default values for all entities.
# An asterisk '*' can be used to match multiple entity types. For example, 'minecraft:*' will match all vanilla entities.
# List entries by default match any entity type derived from (i.e. based on) their entity type. For example, '~minecraft:zombie'.
# There is no steadfast rule about extending, even in vanilla, but the hope is that mod-added mobs will extend their base mob.
# Block List fields: General format = [ "namespace:block_name[property1=value1,...]", ... ]
# Block lists are arrays of blocks and partial block states.
# Blocks are defined by their key in the block registry, usually following the pattern 'namespace:block_name'.
# An asterisk '*' can be used to match multiple blocks. For example, 'minecraft:*' will match all vanilla blocks.
# List entries by default match any block state. The block states to match can be narrowed down by specifying properties.
# The syntax for block state properties is the same as for commands. Any properties not specified will match any value.
# For example, 'minecraft:beehive[honey_level=5]' will match any full beehives, regardless of the direction they face.
# Category: idle_general
# Options that affect all idle behaviors for monsters (griefing and fiddling).
# Mobs' reach (from eye height) when targeting blocks. Player reach is about 4.5.
# <Number> Range: ≥ 0.0, Default: 3.5
idle_general.reach = 3.5
# The range at which mobs will search for blocks to target horizontally (xz-plane) and vertically (y-axis).
# <Integer> Range: ≥ 1, Default: 12
idle_general.scan_range.horizontal = 12
# <Integer> Range: ≥ 1, Default: 6
idle_general.scan_range.vertical = 6
# The number of ticks between each block scan.
# <Integer> Range: ≥ 1, Default: 2
idle_general.scan_delay = 2
# The number of blocks each mob randomly searches to grief/fiddle with every "scan_delay" ticks.
# <Integer> Range: ≥ 1, Default: 32
idle_general.scan_count = 32
# The maximum number of blocks that can be searched in any given tick by all mobs. 0 is no limit.
# <Integer> Range: ≥ 0, Default: 3000
idle_general.global_scan_count = 3000
# Category: idle_griefing
# Options to customize monsters' idle block breaking behavior.
# List of mobs that can gain passive griefing AI (note that the entity must have task-based AI enabled).
# Additional value after the entity type is the chance (0.0 to 1.0) for entities of that type to spawn with the AI.
# <Entity List> Format: [ "namespace:entity_type value", ... ], Default: [ "minecraft:zombie 1.0", "minecraft:creeper 1.0" ]
# Range for Values: 0.0 ~ 1.0
idle_griefing.entities.whitelist = [
"minecraft:zombie 1.0",
"minecraft:creeper 1.0"
]
# <Entity List> Format: [ "namespace:entity_type", ... ], Default: []
idle_griefing.entities.blacklist = []
# If true, mobs will only grief blocks they have the tools to harvest.
# For example, they will only break furnaces if they have a pickaxe.
# <Boolean> Valid Values: { true, false }, Default: true
idle_griefing.requires_tools = true
# If true, blocks griefed by mobs will leave item drops.
# <Boolean> Valid Values: { true, false }, Default: true
idle_griefing.leaves_drops = true
# If true, a loud snapping sound (the vanilla door break sound) will be played when a block
# is broken, which is audible regardless of distance.
# <Boolean> Valid Values: { true, false }, Default: false
idle_griefing.break_sound = false
# The block breaking speed multiplier for mobs griefing blocks, relative to the player's block breaking speed.
# <Number> Range: ≥ 0.0, Default: 0.5
idle_griefing.break_speed = 0.5
# If true, creepers will be upset about not having arms to grief blocks with and resort to what they know best.
# <Boolean> Valid Values: { true, false }, Default: true
idle_griefing.mad_creepers = true
# If true, idle griefing AI will automatically target all light sources (light value > 1).
# This will do its best to avoid natural sources such as fire and redstone ore.
# <Boolean> Valid Values: { true, false }, Default: true
idle_griefing.targets.auto_target_lights = true
# If true, idle griefing AI will automatically target all blocks that derive from the vanilla beds.
# <Boolean> Valid Values: { true, false }, Default: true
idle_griefing.targets.auto_target_beds = true
# List of blocks that can be broken by the idle griefing AI.
# <Block List> Format: [ "namespace:block_name[properties]", ... ], Default: [ minecraft:farmland, minecraft:beehive, minecraft:crafting_table, minecraft:furnace, minecraft:ladder, minecraft:enchanting_table, minecraft:brewing_stand, minecraft:anvil, minecraft:chipped_anvil, minecraft:damaged_anvil, minecraft:scaffolding, minecraft:loom, minecraft:smoker, minecraft:blast_furnace, minecraft:cartography_table, minecraft:fletching_table, minecraft:grindstone, minecraft:smithing_table, minecraft:stonecutter, tropicraft:bamboo_ladder, twilightforest:iron_ladder, futurepack:ironladder, gaiadimension:gaia_stone_furnace, atum:kiln, atum:glassblower_furnace, atum:bone_ladder, atum:limestone_furnace, atum:palm_ladder, atum:deadwood_ladder, atum:palm_scaffolding, atum:deadwood_scaffolding, mana-and-artifice:spectral_crafting_table, immersiveengineering:metal_ladder_none, immersiveengineering:metal_ladder_alu, immersiveengineering:metal_ladder_steel, quark:matrix_enchanter, quark:spruce_ladder, quark:birch_ladder, quark:jungle_ladder, quark:acacia_ladder, quark:dark_oak_ladder, quark:crimson_ladder, quark:warped_ladder, quark:iron_ladder, engineersdecor:metal_rung_ladder, engineersdecor:metal_rung_steps, engineersdecor:treated_wood_ladder ]
idle_griefing.targets.whitelist = [
"minecraft:farmland",
"minecraft:beehive",
"minecraft:crafting_table",
"minecraft:furnace",
"minecraft:ladder",
"minecraft:enchanting_table",
"minecraft:brewing_stand",
"minecraft:anvil",
"minecraft:chipped_anvil",
"minecraft:damaged_anvil",
"minecraft:scaffolding",
"minecraft:loom",
"minecraft:smoker",
"minecraft:blast_furnace",
"minecraft:cartography_table",
"minecraft:fletching_table",
"minecraft:grindstone",
"minecraft:smithing_table",
"minecraft:stonecutter",
"tropicraft:bamboo_ladder",
"twilightforest:iron_ladder",
"gaiadimension:gaia_stone_furnace",
"atum:kiln",
"atum:glassblower_furnace",
"atum:bone_ladder",
"atum:limestone_furnace",
"atum:palm_ladder",
"atum:deadwood_ladder",
"atum:palm_scaffolding",
"atum:deadwood_scaffolding",
"mana-and-artifice:spectral_crafting_table",
"immersiveengineering:metal_ladder_none",
"immersiveengineering:metal_ladder_alu",
"immersiveengineering:metal_ladder_steel",
"quark:spruce_ladder",
"quark:birch_ladder",
"quark:jungle_ladder",
"quark:acacia_ladder",
"quark:dark_oak_ladder",
"quark:crimson_ladder",
"quark:warped_ladder",
"quark:iron_ladder",
"quark:matrix_enchanter",
"engineersdecor:metal_rung_ladder",
"engineersdecor:metal_rung_steps",
"engineersdecor:treated_wood_ladder"
]
# Like "grief_targets.whitelist", but these blocks will not be targeted if they have a loot table tag.
# For example, unopened dungeon chests will not be targeted.
# <Block List> Format: [ "namespace:block_name[properties]", ... ], Default: [ minecraft:chest, minecraft:ender_chest, minecraft:trapped_chest, minecraft:barrel, tropicraft:bamboo_chest, futurepack:composite_chest, metalbarrels:copper_barrel, metalbarrels:iron_barrel, metalbarrels:silver_barrel, metalbarrels:gold_barrel, metalbarrels:diamond_barrel, metalbarrels:obsidian_barrel, metalbarrels:netherite_barrel, metalbarrels:crystal_barrel, ars_nouveau:archwood_chest, atum:sarcophagus, atum:limestone_chest, quark:oak_chest, quark:spruce_chest, quark:birch_chest, quark:jungle_chest, quark:acacia_chest, quark:dark_oak_chest, quark:crimson_chest, quark:warped_chest, quark:nether_brick_chest, quark:purpur_chest, quark:prismarine_chest, quark:mushroom_chest, quark:oak_trapped_chest, quark:spruce_trapped_chest, quark:birch_trapped_chest, quark:jungle_trapped_chest, quark:acacia_trapped_chest, quark:dark_oak_trapped_chest, quark:crimson_trapped_chest, quark:warped_trapped_chest, quark:nether_brick_trapped_chest, quark:purpur_trapped_chest, quark:prismarine_trapped_chest, quark:mushroom_trapped_chest, lootr:lootr_barrel, lootr:lootr_chest, lootr:lootr_trapped_chest, lootr:lootr_inventory ]
idle_griefing.targets.lootable_list = [
"minecraft:chest",
"minecraft:ender_chest",
"minecraft:trapped_chest",
"minecraft:barrel",
"tropicraft:bamboo_chest",
"metalbarrels:copper_barrel",
"metalbarrels:iron_barrel",
"metalbarrels:silver_barrel",
"metalbarrels:gold_barrel",
"metalbarrels:diamond_barrel",
"metalbarrels:crystal_barrel",
"ars_nouveau:archwood_chest",
"atum:sarcophagus",
"atum:limestone_chest",
"quark:oak_chest",
"quark:spruce_chest",
"quark:birch_chest",
"quark:jungle_chest",
"quark:acacia_chest",
"quark:dark_oak_chest",
"quark:crimson_chest",
"quark:warped_chest",
"quark:nether_brick_chest",
"quark:purpur_chest",
"quark:prismarine_chest",
"quark:mushroom_chest",
"quark:oak_trapped_chest",
"quark:spruce_trapped_chest",
"quark:birch_trapped_chest",
"quark:jungle_trapped_chest",
"quark:acacia_trapped_chest",
"quark:dark_oak_trapped_chest",
"quark:crimson_trapped_chest",
"quark:warped_trapped_chest",
"quark:nether_brick_trapped_chest",
"quark:purpur_trapped_chest",
"quark:prismarine_trapped_chest",
"quark:mushroom_trapped_chest"
]
# <Block List> Format: [ "namespace:block_name[properties]", ... ], Default: []
idle_griefing.targets.blacklist = []
# Category: idle_fiddling
# Options to customize monsters' idle fiddling behavior (block interaction).
# List of mobs that can gain passive fiddling AI (note that the entity must have task-based AI enabled).
# Additional value after the entity type is the chance (0.0 to 1.0) for entities of that type to spawn with the AI.
# <Entity List> Format: [ "namespace:entity_type value", ... ], Default: [ "minecraft:skeleton 1.0", "minecraft:stray 1.0", "minecraft:wither_skeleton 1.0", "minecraft:zombified_piglin 1.0", "minecraft:piglin 1.0" ]
# Range for Values: 0.0 ~ 1.0
idle_fiddling.entities.whitelist = [
"minecraft:skeleton 1.0",
"minecraft:stray 1.0",
"minecraft:wither_skeleton 1.0",
"minecraft:zombified_piglin 1.0",
"minecraft:piglin 1.0"
]
# <Entity List> Format: [ "namespace:entity_type", ... ], Default: []
idle_fiddling.entities.blacklist = []
# If true, idle fiddling AI will automatically target all blocks that derive from
# the vanilla levers and buttons.
# <Boolean> Valid Values: { true, false }, Default: true
idle_fiddling.targets.auto_target_switches = true
# If true, idle fiddling AI will automatically target all non-metal blocks that derive
# from the vanilla doors, fence gates, and trapdoors.
# <Boolean> Valid Values: { true, false }, Default: true
idle_fiddling.targets.auto_target_doors = true
# List of blocks that can be interacted with by the idle fiddling AI.
# <Block List> Format: [ "namespace:block_name[properties]", ... ], Default: [ minecraft:repeater, minecraft:comparator, minecraft:tnt, minecraft:cake ]
idle_fiddling.targets.whitelist = [
"minecraft:repeater",
"minecraft:comparator",
"minecraft:tnt",
"minecraft:cake"
]
# <Block List> Format: [ "namespace:block_name[properties]", ... ], Default: []
idle_fiddling.targets.blacklist = []
.targets.whitelist = [
"minecraft:repeater",
"minecraft:comparator",
"minecraft:tnt",
"minecraft:cake"
]
# <Block List> Format: [ "namespace:block_name[properties]", ... ], Default: []
idle_fiddling.targets.blacklist = []
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment