# 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 = []
	# <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 = false

	# 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 = false
	# 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 = false
	# 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, blue_skies:bluebright_crafting_table, blue_skies:starlit_crafting_table, blue_skies:frostbright_crafting_table, blue_skies:lunar_crafting_table, blue_skies:dusk_crafting_table, blue_skies:maple_crafting_table, blue_skies:cherry_crafting_table, blue_skies:snowcap_oven, blue_skies:horizonite_forge, blue_skies:bluebright_ladder, blue_skies:starlit_ladder, blue_skies:frostbright_ladder, blue_skies:lunar_ladder, blue_skies:dusk_ladder, blue_skies:maple_ladder, blue_skies:cherry_ladder, betterdefaultbiomes:palm_ladder, betterdefaultbiomes:swamp_willow_ladder, eidolon:wooden_brewing_stand, upgrade_aquatic:driftwood_ladder, upgrade_aquatic:river_ladder, endergetic:poise_ladder, byg:aspen_crafting_table, byg:baobab_crafting_table, byg:blue_enchanted_crafting_table, byg:cherry_crafting_table, byg:cika_crafting_table, byg:cypress_crafting_table, byg:ebony_crafting_table, byg:fir_crafting_table, byg:green_enchanted_crafting_table, byg:holly_crafting_table, byg:jacaranda_crafting_table, byg:mahogany_crafting_table, byg:mangrove_crafting_table, byg:maple_crafting_table, byg:pine_crafting_table, byg:rainbow_eucalyptus_crafting_table, byg:redwood_crafting_table, byg:skyris_crafting_table, byg:willow_crafting_table, byg:witch_hazel_crafting_table, byg:zelkova_crafting_table, byg:sythian_crafting_table, byg:embur_crafting_table, byg:palm_crafting_table, byg:lament_crafting_table, byg:bulbis_crafting_table, byg:nightshade_crafting_table, byg:ether_crafting_table, byg:imparius_crafting_table, byg:sythian_scaffolding ]
	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",
		"blue_skies:bluebright_crafting_table",
		"blue_skies:starlit_crafting_table",
		"blue_skies:frostbright_crafting_table",
		"blue_skies:lunar_crafting_table",
		"blue_skies:dusk_crafting_table",
		"blue_skies:maple_crafting_table",
		"blue_skies:cherry_crafting_table",
		"blue_skies:snowcap_oven",
		"blue_skies:horizonite_forge",
		"blue_skies:bluebright_ladder",
		"blue_skies:starlit_ladder",
		"blue_skies:frostbright_ladder",
		"blue_skies:lunar_ladder",
		"blue_skies:dusk_ladder",
		"blue_skies:maple_ladder",
		"blue_skies:cherry_ladder",
		"betterdefaultbiomes:palm_ladder",
		"betterdefaultbiomes:swamp_willow_ladder",
		"eidolon:wooden_brewing_stand",
		"upgrade_aquatic:driftwood_ladder",
		"upgrade_aquatic:river_ladder",
		"endergetic:poise_ladder",
		"byg:aspen_crafting_table",
		"byg:baobab_crafting_table",
		"byg:blue_enchanted_crafting_table",
		"byg:cherry_crafting_table",
		"byg:cika_crafting_table",
		"byg:cypress_crafting_table",
		"byg:ebony_crafting_table",
		"byg:fir_crafting_table",
		"byg:green_enchanted_crafting_table",
		"byg:holly_crafting_table",
		"byg:jacaranda_crafting_table",
		"byg:mahogany_crafting_table",
		"byg:mangrove_crafting_table",
		"byg:maple_crafting_table",
		"byg:pine_crafting_table",
		"byg:rainbow_eucalyptus_crafting_table",
		"byg:redwood_crafting_table",
		"byg:skyris_crafting_table",
		"byg:willow_crafting_table",
		"byg:witch_hazel_crafting_table",
		"byg:zelkova_crafting_table",
		"byg:sythian_crafting_table",
		"byg:embur_crafting_table",
		"byg:palm_crafting_table",
		"byg:lament_crafting_table",
		"byg:bulbis_crafting_table",
		"byg:nightshade_crafting_table",
		"byg:ether_crafting_table",
		"byg:imparius_crafting_table",
		"byg:sythian_scaffolding"
	]
	# 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, blue_skies:bluebright_chest, blue_skies:starlit_chest, blue_skies:frostbright_chest, blue_skies:lunar_chest, blue_skies:dusk_chest, blue_skies:maple_chest, blue_skies:cherry_chest, forestcraft:ancient_chest, iceandfire:ghost_chest, ars_nouveau:archwood_chest, upgrade_aquatic:driftwood_chest, upgrade_aquatic:driftwood_trapped_chest, upgrade_aquatic:river_chest, upgrade_aquatic:river_trapped_chest, endergetic:poise_chest, endergetic:poise_trapped_chest, dannys_expansion:sea_chest, aquaculture:neptunes_bounty ]
	idle_griefing.targets.lootable_list = []
	# <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 = []
	# <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 = false
	# 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 = false
	# 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 = []
	# <Block List> Format: [ "namespace:block_name[properties]", ... ], Default: []
	idle_fiddling.targets.blacklist = []
