# specialai:general.toml
# This config contains options for several miscellaneous features in the mod, such as:
# animals, reactions, jockeys, and door breaking.

	# 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: animals
# Options to customize mobs that are typically passive.

	# List of passive mobs (by entity type registry id) that are made 'neutral' like wolves.
	# 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:chicken 1.0", "minecraft:cow 1.0", "minecraft:pig 1.0", "minecraft:sheep 1.0", "minecraft:rabbit 1.0", "minecraft:strider 1.0", "minecraft:squid 1.0", "minecraft:cod 1.0", "minecraft:salmon 1.0", "minecraft:tropical_fish 1.0" ]
	#    Range for Values: 0.0 ~ 1.0
	animals.depacify_entities.whitelist = []
	# <Entity List> Format: [ "namespace:entity_type", ... ], Default: []
	animals.depacify_entities.blacklist = []

	# List of neutral (including depacified) mobs that are made 'aggressive' like monsters.
	# 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:cow 0.04", "minecraft:rabbit 0.02", "minecraft:strider 0.02", "minecraft:squid 1.0", "minecraft:cod 0.02", "minecraft:salmon 0.04" ]
	#    Range for Values: 0.0 ~ 1.0
	animals.aggressive_entities.whitelist = []
	# <Entity List> Format: [ "namespace:entity_type", ... ], Default: []
	animals.aggressive_entities.blacklist = []

	# If true, passive mobs will seek out and eat the items used to breed them laying on the floor.
	# <Boolean> Valid Values: { true, false }, Default: true
	animals.eat_breeding_items = true
	# If true, when mobs eat breeding items off the floor, they will regain health (like wolves).
	# The option "eat_breeding_items" needs to be enabled for this to have any effect.
	# <Boolean> Valid Values: { true, false }, Default: true
	animals.eating_heals = true


# Category: reaction_ai
# Options to customize reactive behaviors.

	# List of mobs that will try to avoid TNT and creepers that are about to explode.
	# Additional value after the entity type is their movement speed multiplier while fleeing.
	# <Entity List> Format: [ "namespace:entity_type value", ... ], Default: [ "default 1.4" ]
	#    Range for Values: ≥ 0.0
	reaction_ai.avoid_explosions.whitelist = [
		"default 1.4"
	]
	# <Entity List> Format: [ "namespace:entity_type", ... ], Default: []
	reaction_ai.avoid_explosions.blacklist = []

	# List of mobs that will call for help from nearby mobs of the same type when struck.
	# This does not trigger from killing blows (see below).
	# 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: [ "default 1.0" ]
	#    Range for Values: 0.0 ~ 1.0
	reaction_ai.call_for_help.whitelist = [
		"default 1.0"
	]
	# <Entity List> Format: [ "namespace:entity_type", ... ], Default: []
	reaction_ai.call_for_help.blacklist = []
	# List of mobs that will call for help when dealt a killing blow and the chance for it to occur.
	# <Entity List> Format: [ "namespace:entity_type value", ... ], Default: [ "default 0.1" ]
	#    Range for Values: 0.0 ~ 1.0
	reaction_ai.call_for_help_on_death.whitelist = [
		"default 0.1"
	]
	# <Entity List> Format: [ "namespace:entity_type", ... ], Default: []
	reaction_ai.call_for_help_on_death.blacklist = []

	# List of mobs that will try to sidestep an arrow fired in their direction.
	# Additional values after the entity type are the chance (0.0 to 1.0) for entities of that type to spawn with the AI,
	# followed by the chance for entities of that type with the AI to attempt to dodge (rolled for each arrow).
	# <Entity List> Format: [ "namespace:entity_type value1 value2", ... ], Default: [ "default 0.2 0.5", "minecraft:skeleton 1.0 0.5", "minecraft:stray 1.0 0.5", "minecraft:wither_skeleton 1.0 0.5" ]
	#    Range for Values: 0.0 ~ 1.0
	reaction_ai.dodge_arrows.whitelist = [
		"default 0.2 0.5",
		"minecraft:skeleton 1.0 0.5",
		"minecraft:stray 1.0 0.5",
		"minecraft:wither_skeleton 1.0 0.5",
		"dungeons_mobs:mossy_skeleton 1.0 0.5",
		"dungeons_mobs:armored_skeleton 1.0 0.5",
		"dungeons_mobs:armored_sunken_skeleton 1.0 0.5"
	]
	# <Entity List> Format: [ "namespace:entity_type", ... ], Default: []
	reaction_ai.dodge_arrows.blacklist = []


# Category: jockeys
# Options relating to which mobs should act as riders or mounts.

	# List of mobs that can be ridden on by normal-sized riders (not all entities can be controlled by their rider).
	# <Entity List> Format: [ "namespace:entity_type", ... ], Default: [ "minecraft:spider", "minecraft:slime", "minecraft:skeleton_horse", "minecraft:zombie_horse", "minecraft:pig", "minecraft:sheep", "minecraft:cow", "minecraft:polar_bear", "minecraft:horse", "minecraft:donkey", "minecraft:mule", "~minecraft:llama", "minecraft:strider", "minecraft:hoglin", "minecraft:zoglin" ]
	jockeys.mount_entities.whitelist = [
		"minecraft:spider",
		"minecraft:slime",
		"minecraft:skeleton_horse",
		"minecraft:zombie_horse",
		"eanimod:enhanced_pig",
		"eanimod:enhanced_sheep",
		"eanimod:enhanced_cow",
		"minecraft:polar_bear",
		"minecraft:donkey",
		"minecraft:mule",
		"eanimod:enhanced_llama",
		"minecraft:strider",
		"minecraft:hoglin",
		"minecraft:zoglin",
		"minecraft:magma_cube",
		"minecraft:phantom",
		"minecraft:ravager",
		"tconstruct:terracube",
		"tconstruct:sky_slime",
		"tconstruct:ender_slime",
		"dungeons_mobs:redstone_cube",
		"instrumentalmobs:maraca_spider",
		"betteranimalsplus:feralwolf",
		"quark:toretoise",
		"environmental:yak",
		"betteranimalsplus:blackbear",
		"betteranimalsplus:boar",
		"betteranimalsplus:brownbear",
		"betteranimalsplus:coyote",
		"betteranimalsplus:goat",
		"betteranimalsplus:moose",
		"betteranimalsplus:reindeer",
		"betteranimalsplus:tarantula",
		"betteranimalsplus:walrus",
		"outer_end:stalker"
	]
	# List of mobs that can be ridden on by small riders or normal-sized riders that are babies
	# (not all entities can be controlled by their rider).
	# <Entity List> Format: [ "namespace:entity_type", ... ], Default: [ "minecraft:chicken", "minecraft:rabbit", "minecraft:cave_spider" ]
	jockeys.mount_entities.small_list = [
		"eanimod:enhanced_chicken",
		"eanimod:enhanced_rabbit",
		"minecraft:cave_spider",
		"neapolitan:plantain_spider"
	]
	# <Entity List> Format: [ "namespace:entity_type", ... ], Default: []
	jockeys.mount_entities.blacklist = []

	# List of mobs that can ride normal-sized mounts and the chance for them to gain the rider AI.
	# Note that the entity must have task-based AI enabled.
	# <Entity List> Format: [ "namespace:entity_type value", ... ], Default: [ "minecraft:skeleton 0.1", "minecraft:stray 0.1", "minecraft:wither_skeleton 0.1", "minecraft:zombie 0.05", "minecraft:creeper 0.05", "minecraft:witch 0.05", "minecraft:piglin 0.1", "minecraft:piglin_brute 0.1" ]
	#    Range for Values: 0.0 ~ 1.0
	jockeys.rider_entities.whitelist = [
		"minecraft:skeleton 0.1",
		"minecraft:stray 0.1",
		"minecraft:wither_skeleton 0.1",
		"minecraft:zombie 0.05",
		"minecraft:creeper 0.05",
		"minecraft:witch 0.05",
		"minecraft:piglin 0.1",
		"minecraft:piglin_brute 0.1",
		"dungeons_mobs:mossy_skeleton 0.1",
		"dungeons_mobs:frozen_zombie 0.05",
		"dungeons_mobs:jungle_zombie 0.05",
		"dungeons_mobs:geomancer 0.05",
		"dungeons_mobs:iceologer 0.05",
		"dungeons_mobs:illusioner 0.05",
		"dungeons_mobs:drowned_necromancer 0.05",
		"dungeons_mobs:fungus_thrower 0.05",
		"dungeons_mobs:armored_skeleton 0.1",
		"dungeons_mobs:armored_sunken_skeleton 0.1",
		"dungeons_mobs:armored_drowned 0.05",
		"dungeons_mobs:armored_mountaineer 0.05",
		"dungeons_mobs:armored_piglin 0.1",
		"dungeons_mobs:armored_pillager 0.05",
		"dungeons_mobs:armored_vindicator 0.05",
		"dungeons_mobs:armored_zombie 0.05"
	]
	# List of mobs that can only ride small mounts or normal-sized mounts that are babies and the
	# chance for them to gain the rider AI. Note that the entity must have task-based AI enabled.
	# <Entity List> Format: [ "namespace:entity_type value", ... ], Default: []
	#    Range for Values: 0.0 ~ 1.0
	jockeys.rider_entities.small_list = []
	# <Entity List> Format: [ "namespace:entity_type", ... ], Default: []
	jockeys.rider_entities.blacklist = []


# Category: door_breaking
# Options to customize door-breaking behaviors.

	# List of mobs that can gain door breaking 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
	door_breaking.entities.whitelist = []
	# <Entity List> Format: [ "namespace:entity_type", ... ], Default: []
	door_breaking.entities.blacklist = []

	# If true, mobs will only break doors while they are chasing an attack target.
	# Disabling this typically leads to mobs smashing into your house to get to blocks they are targeting
	# as part of an idle griefing or fiddling behavior, such as torches or chests.
	# <Boolean> Valid Values: { true, false }, Default: true
	door_breaking.require_target = true
	# If true, mobs will only break doors they have the tools to harvest.
	# For example, they will only break iron doors if they have a pickaxe.
	# <Boolean> Valid Values: { true, false }, Default: true
	door_breaking.require_tools = true

	# If true, doors broken by mobs will leave item drops.
	# <Boolean> Valid Values: { true, false }, Default: true
	door_breaking.leave_drops = true

	# The block breaking speed multiplier for mobs breaking doors, relative to the player's block breaking speed.
	# <Number> Range: ≥ 0.0, Default: 0.33
	door_breaking.break_speed = 0.33
	# If true, creepers will resort to what they know best when they meet a door blocking their path.
	# <Boolean> Valid Values: { true, false }, Default: true
	door_breaking.mad_creepers = false

	# If true, door breaking AI will automatically target all blocks that derive from the
	# vanilla doors, fence gates, and trapdoors.
	# <Boolean> Valid Values: { true, false }, Default: true
	door_breaking.targets.auto_target_doors = true
	# List of blocks that that can be broken by the door breaking AI.
	# <Block List> Format: [ "namespace:block_name[properties]", ... ], Default: []
	door_breaking.targets.whitelist = []
	# <Block List> Format: [ "namespace:block_name[properties]", ... ], Default: []
	door_breaking.targets.blacklist = []
