#######################################################################################################################
# Mob Control Config
#######################################################################################################################
# NOTE: Rules are executed from top to bottom, and the first rule that matches all conditions will take precedence.

# NOTE: After making changes, it's best to run the mobcontrol.toml through a validator to check for any errors.
#       Here's an example online validator: https://codebeautify.org/toml-validator

[general]
# debug spams the logs with a bunch of extra logging when set to true.
# NOTE: Don't enable unless you like spammy log files, or you're troubleshooting.
debug=false

# Mod compatibility: This disables mob checks during initial generation of world.
# NOTE: Do not enable this flag unless you're specifically seeing a crash during world generation and you suspect it's
#       the mob checks causing the crash. If that is the case, then please report the mod.
use-generation-check=false

#######################################################################################################################
# NOTE: The below rule is an example that can be safely ignored, and is for documentational purposes only. This rule
#       attempts to explain each of the parameters with their various intricacies. If we can better word or explain a
#       parameter, then let us know.

#######################################################################################################################
# [[mob]] - Defines the mob and holds one or more [[mob.rules]].
#######################################################################################################################
[[mob]]
# name is the mod and mob to control or a tag for a group of mobs.
# Required
# Type: String or Array of Strings
# Syntax: "mod:mob" or "mod:*" or "*:*" or "*" or "tag:name-of-tag"
# NOTE: Use * for a wildcard match.
# NOTE: Supports SNBT formatting. See mob.rule snbt parameter for more information.
# NOTE: For various builtin minecraft tags, see: https://minecraft.wiki/w/Entity_type_tag_(Java_Edition)
# Examples:
#   "*"
#   "minecraft:zombie"
#   "minecraft:*"
#   "tag:minecraft:undead"
#   ["minecraft:skeleton", "minecraft:pig{Saddle:1b}", "custom:*"]
name="mod:mob"

# name-filter allows for distinquishing between mobs using the same entity type.
# Optional
# Type: String
# NOTE: Various mods, such as Cobblemon, define their mobs using the exact same enity type, such as cobblemon:pokemon.
#       This allows you to use the translation key from the language file to distinquishing between them.
# Examples:
#   "cobblemon.species.electrode.name"
#   "cobblemon.species.oinkologne.name"
name-filter="translation.key.from.language.json"

#######################################################################################################################
# [[mob.rule]] - Define one or more rules to control the mob.
#######################################################################################################################
[[mob.rule]]
# name gives the rule a name to reference from a "copy" command (see below).
# Optional
# Type: String
# NOTE: The name parameter can be a reference for various other options, such as set.mount and spawn.convert.
name="example-rule"

# copy uses the named rule as a base, and anything you define will override.
# Optional
# Type: String
# NOTE: Must match an existing "name", mob.rule, otherwise, will be ignored.
# NOTE: Currently the named rule must be a rule in the same mob and before.
copy="example-base-rule"

# type defines if this rule will be used for spawners, natural, or all types.
# Optional, defaulting to block
# Type: String or array of strings
# Options:
#   block   - Blocks the mob from spawning
#   all     - Applies to all sources not defined in the same rule (control, natural, spawner, trigger, etc.)
#             NOTE: The type "all" will ignore any user defined types within the current rule.
#   link    - This is a special type and will be only be used when referenced by name (see: set.mount) or by group
#             (see: spawn.group)
#   control - Similar to natural, but uses repeat option to force spawning for complete control
#   egg     - Applies to spawn eggs
#   natural - Applies to naturally spawning mobs
#   spawner - Applies to mob spawners
#   trial   - Applies to trial spawners
#   trigger - Applies to subset of mobs that are spawned under various triggerable conditions, such as:
#                Player built: iron golems, snow golems, wither, etc.
#                Effect: infested, oozing, summon, etc.: Silverfish, slime, etc. (Version 1.21.2 and greater)
#                Sculk Shrieker: Warden (Version 1.21.2 and greater)
#                Thrown egg: Chicken
# Examples:
#   type="all"
#   type="spawner"
type="all"

# run is the probability to spawn.
# Optional, defaulting to 100, which will always match
# Type: Numeric, between 0 and 100
run=50

# repeat is the number of ticks before attempting to run the rule again.
# Optional, defaulting to ["MinSpawnDelay", "MaxSpawnDelay"] (default of [200,800]) for spawners, otherwise [200,800]
# Type: Numeric or Range
# NOTE: 20 ticks is 1 real world second.
# NOTE: This is only used by control and spawner.
# Examples:
#   300 = 15 real world seconds
#   1200 = 1 real world minute
#   24000 = 20 real world minutes (1 day in game)
#   72000 = 1 real world hour (3 days in game)
#   [200,800] = A random amount between 10 real world seconds to 40 real world seconds
repeat=[200,800]

# cool-down is the number of ticks before allowing the rule to run again after a successful spawn event.
# Optional, defaulting to "Delay" (default of 20) NBT for spawners, otherwise ignored
# Type: Numeric or Range
# NOTE: 20 ticks is 1 real world second.
# Examples:
#   300 = 15 real world seconds
#   1200 = 1 real world minute
#   24000 = 20 real world minutes (1 day in game)
#   72000 = 1 real world hour (3 days in game)
#   [200,800] = A random amount between 10 real world seconds to 40 real world
#               seconds
cool-down=[6000,7000]

#######################################################################################################################
# CONDITIONS - Parameters to control rule matching.
#######################################################################################################################

# dimension defines which dimensions to enforce the rule on.
# Optional, defaulting to all
# Type: String or array of strings
# Syntax: "mod:dimension" or "mod:*" or "*:*" or "*"
# NOTE: Use * for a wildcard match.
# Examples:
#   "*"
#   "minecraft:overworld"
#   "minecraft:*"
#   ["minecraft:overworld", "minecraft:the_nether", "custom:*"]
dimension=["minecraft:overworld"]

# biome defines which biomes to enforce the rule on.
# Optional, defaulting to all
# Type: String or array of strings
# Syntax: "mod:biome" or "mod:*" or "*:*" or "*"
# NOTE: Use * for a wildcard match.
# Examples:
#   "*"
#   "minecraft:savanna"
#   "minecraft:*"
#   ["minecraft:savanna", "minecraft:forest", "custom:*"]
biome=["minecraft:savanna"]

# biome-tag defines which biome tags to enforce the rule on.
# Optional, defaulting to all
# Type: String or array of strings
# Syntax: "mod:biome-tag" or "mod:*" or "*:*" or "*"
# NOTE: Use * for a wildcard match.
# Examples:
#   "*"
#   "minecraft:is_dense"
#   "minecraft:*"
#   ["minecraft:is_dense", "minecraft:is_wet", "custom:*"]
biome-tag=["minecraft:spawns_warm_variant_frogs"]

# structure defines which structures to enforce the rule on.
# Optional, defaulting to all
# Type: String or array of strings
# Syntax: "mod:structure" or "mod:*" or "*:*" or "*"
# NOTE: Use * for a wildcard match.
# NOTE: Use none to match only if there aren't any structures. When using none,
#       it must the only entry, otherwise it will be ignored.
# Examples:
#   "*"
#   "none"
#   "minecraft:village_savanna"
#   "minecraft:*"
#   ["minecraft:village_savanna", "minecraft:mineshaft", "custom:*"]
structure=["minecraft:village_savanna"]

# day is the Minecraft day to check.
# Optional
# Type: Numeric or Range
# Examples:
#   Specific day: 5
#   Range: [5,10]
#   Less than: "<5"
#   Greater than: ">5"
day=[3,10]

# time-of-day is the Minecraft time of day to check.
# Optional
# Type: Numeric or Range, between 0 and 24000
# NOTE: See https://minecraft.fandom.com/wiki/Daylight_cycle for the 24-hour
#       Minecraft day explanation.
# Examples:
#   Specific time (noon): 6000
#   Range (noon to sunset): [6000,12000]
#   Less than (before noon): <6000
#   Greater than (after sunset): >12000
time-of-day=">12000"

# moon-phase is the Minecraft moon phase to check.
# Optional
# Type: Numeric or Range, between 0 and 7
# NOTE: See https://minecraft.fandom.com/wiki/Moon for explaination of phases.
#       Unlike the wiki, this is zero based, meaning phases start with zero:
#           0 = Full Moon
#           1 = Waning Gibbous
#           2 = Last Quarter
#           3 = Waning Crescent
#           4 = New Moon
#           5 = Waxing Crescent
#           6 = First Quarter
#           7 = Waxing Gibbous
# Examples:
#   Specific phase (New Moon): 4
#   Range (Waxing Crescent to Waxing Gibbous): [5,7]
#   Less than (before New Moon): <4
#   Greater than (after Waxing Crescent): >5
moon-phase=[0,7]

# weather enforces the current weather matches the conditions defined.
# Optional, defaulting to all weather conditions
# Type: String or array of strings
# Conditions:
#   clear - Weather is clear (not the other options below).
#   rain - Weather is raining or snowing in cold biomes.
#   thunder - Weather is thunderstorming or blizzard in cold biomes.
# Examples:
#   "clear"
#   ["rain", "thunder"]
weather="clear"

# season enforces the current season matches the conditions defined.
# Optional, defaulting to all seasons
# Type: String or array of strings
# NOTE: This only works if you have the optional Serene Seasons mod
#       from TheAdubbz loaded
# Examples:
#   "LATE_SUMMER"
#   ["MID_SPRING", "MID_WINTER"]
season=["LATE_SUMMER", "EARLY_AUTUMN"]

# light-sky is the sky's light level.
# Optional, defaulting to vanilla
# Type: Numeric or range, between 0 and 15
# NOTE: 0 is complete darkness, and 15 is broad daylight.
# Examples:
#   Specific light level: 0
#   Range: [0,7]
#   Less than: "<10"
#   Greater than: ">10"
light-sky="<10"

# light-block is the block's light level.
# Optional, defaulting to vanilla
# Type: Numeric or range, between 0 and 15
# NOTE: 0 is complete darkness, and 15 is broad daylight.
# Examples:
#   Specific light level: 0
#   Range: [0,7]
#   Less than: "<7"
#   Greater than: ">7"
light-block="<7"

# can-see-sky will check above the mob to ensure the sky is visible.
# Optional, defaulting to undefined
# Type: Boolean
# Syntax: "yes" or "no", "true" or "false", 0 or 1
# Examples:
#   undefined: Don't run check
#   1, yes, or true: Spawn position must have sky above -- outside
#   0, no, or false: Spawn position must have a ceiling -- in cave / structure
can-see-sky="no"

# is-baby will check if the mob is spawning in as a baby.
# Optional, defaulting to undefined
# Type: Boolean
# Syntax: "yes" or "no", "true" or "false", 0 or 1
# Examples:
#   undefined: Don't run check
#   1, yes, or true: Allow if baby
#   0, no, or false: Allow if not baby
is-baby="no"

# max-per-mob is the maximum number of mobs allowed on the server at once for this rule.
# Optional
# Type: Numeric
max-per-mob=99999

# max-per-player is the maximum number of mobs allowed per player on the server as once for this rule.
# It is determined at the time of spawning, and, therefore, if a player disconnected, then mobs will not be removed.
# Optional
# Type: Numeric
max-per-player=99999

# max-nearby is the maximum number of same type mobs allowed nearby at once for this rule.
# Optional, defaulting to "MaxNearbyEntities" (default of 6) NBT for spawners, otherwise ignored
# Type: Numeric
# NOTE: Setting to -1 disables checking for nearby mobs
max-nearby=10

# max-nearby-range is the range used to check for the max-nearby mobs.
# Optional
# Type: Numeric
max-nearby-range=20

# max-spawner is the maximum number of same type mobs allowed to spawn from the spawner before replacing the spawner.
# Optional
# Type: Numeric
max-spawner=1

# max-spawner-block is the name of the block used to replace the spawner once the max-spawner is reached.
# Optional
# Type: String or Array of Strings
# Syntax: "mod:block"
# NOTE: If the source isn't a spawner, then this is ignored.
# Examples:
#   "minecraft:air"
#   "minecraft:mob_spawner"
#   ["minecraft:air", "minecraft:diamond_block"]
max-spawner-block="minecraft:air"

#######################################################################################################################
# SPAWN - Parameters to define spawning attributes.
#######################################################################################################################
# spawn.additional-checks will run vanilla checks that were registered with Minecraft in the spawn placements.
# Optional, defaulting to no
# Type: Boolean
# Syntax: "yes" or "no", "true" or "false", 0 or 1
# NOTE: This is ignored if you're using spawn.point.
# NOTE: Vanilla logic will override Mob Control, such as zombies will check the light levels and can deny a spawn even
#       though Mob Control allows it. Other mobs, such as foxes, are not registered as ground-based mobs and rely on
#       the additional checks to properly place the mob on the ground. That means if you disable it for a fox, then it
#       can spawn the mob up in the air, and if you enable it for zombies, then Minecraft can deny the spawn due to
#       light levels or other criteria.
spawn.additional-checks="no"

# spawn.count is the number of mobs to spawn.
# Optional, defaulting to "SpawnCount" (default of 4) NBT for spawners, otherwise 1
# Type: Numeric or Range
# Examples:
#   Specific count: 5
#   Range: [5,10]
#   Less than: "<5"
#   Greater than: ">5"
spawn.count=5

# spawn.count-spread will spread out secondary spawned mobs due to spawn.count being greater than one.
# Optional, defaulting to yes for spawners, otherwise to no
# Type: Boolean
# Syntax: "yes" or "no", "true" or "false", 0 or 1
# NOTE: If spawn.count is one, then this is ignored.
# NOTE: This requires Mob Control to look for a new valid position for each new mob being spawned, which requires more
#       CPU cycles and may impact performance.
spawn.count-spread="no"

# spawn.distance is the minimum / maximum horizontal (xz) distance to spawn the mob around the source. The source can
# either be a player, spawner, or a parent group mob.
# Optional, defaulting to 0 and "SpawnRange" (default of 4) NBT for spawners, otherwise between 24 and 128
# Type: Numeric or Range
# NOTE: Natural spawning mobs ignore this option and use vanilla logic.
# Examples:
#   Specific distance: 5
#   Range: [5,10]
#   Less than: "<5"
#   Greater than: ">5"
spawn.distance=[10,20]

# spawn.distance-up is the minimum / maximum upward (y) distance to spawn the mob around the source. The source can
# either be a player, spawner, or a parent group mob.
# Optional, defaulting to 0 and 1 for spawners, otherwise between 0 and dimension's max height
# Type: Numeric or Range, between 0 and dimension's max height
# NOTE: Natural spawning mobs ignore this option and use vanilla logic.
# NOTE: To disable, set to -1 or any negative value.
# Examples:
#   Specific y level: 5
#   Range: [0,64]
#   Less than: "<5"
#   Greater than: ">5"
#   Disable: -1
spawn.distance-up=[0,24]

# spawn.distance-down is the minimum / maximum downward (y) distance to spawn the mob around the source. The source can
# either be a player, spawner, or a parent group mob.
# Optional, defaulting to 0 and 1 for spawners, otherwise between 0 and dimension's min height
# Type: Numeric or Range, between 0 and dimension's min height
# NOTE: Natural spawning mobs ignore this and use vanilla logic.
# NOTE: To disable, set to -1 or any negative value.
# Examples:
#   Specific y level: 5
#   Range: [0,64]
#   Less than: "<5"
#   Greater than: ">5"
#   Disable: -1
spawn.distance-down=[0,24]

# spawn.at-y is the y level that mob will spawn in the dimension.
# Optional, defaulting to between dimension's min and max height
# Type: Numeric or Range, between dimension's min and max height
# NOTE: Unlike the "distance" options, this is not centered around a source.
# Examples:
#   Specific y level: 5
#   Range: [-256,-50]
#   Less than: "<5"
#   Greater than: ">5"
spawn.at-y=[-256,-50]

# spawn.point defines what a mob can spawn on or in.
# Optional, defaulting to "mobcontrol:ground" for trial, otherwise ignored
# Type: String or Array of Strings
# Syntax: "mobcontrol:point" or "block:mod:block" or "fluid:mod:fluid" or "tag:mod:black-tag"
# NOTE: The following mobcontrol points are available:
#           mobcontrol:ground = Any solid object
#           mobcontrol:air = Either air or cave air
#           mobcontrol:fluid = Any fluid, such as water, lava, or custom fluids
# NOTE: For various builtin minecraft blocks, see: https://minecraft.wiki/w/Block#List_of_blocks
# NOTE: Minecraft has two builtin fluids: water and lava.
# NOTE: For various builtin minecraft block tags, see: https://minecraft.wiki/w/Block_tag_(Java_Edition)
# Examples:
#   "fluid:minecraft:water"
#   "tag:minecraft:crops"
#   ["block:minecraft:stone", "block:minecraft:deepslate", "block:custom:block"]
spawn.point="mobcontrol:ground"

# spawn.tries defines number of attempts to place a mob in a valid location. This can help with spawn.point.
# Optional, defaulting to 5 for spawners, 50 for trial, and 10 for all others
# Type: Numeric
# NOTE: This requires Mob Control to look for a new valid position for each new mob being spawned, which requires more
#       CPU cycles and may impact performance.
spawn.tries=10

# spawn.convert is the mod:mob or name of rule to change the spawning mob into.
# Optional
# Type: String or Array of Strings
# Syntax: "mod:mob" or "name from the mob.rule section" or "tag:name-of-tag"
# NOTE: Supports SNBT formatting. See mob.rule snbt parameter for more information.
# NOTE: If using an array, then only one will be randomly selected.
# Examples:
#   "minecraft:zombie"
#   "tag:minecraft:skeletons"
#   ["minecraft:skeleton", "minecraft:pig{Saddle:1b}", "custom:mob"]
#   "example-rule"
spawn.convert="mod:mob"

# spawn.group is the name to apply the rule to in a group for the purpose of spawning multiple mobs together.
# Optional
# Type: String or Array of Strings
# Syntax: "name" or "name-a,name=b" or ["name-a","name-b"]
# NOTE: The initial mob will become the source for secondary spawned mobs, which means the position will be based off
#       the initial mob.
# Examples:
#   "my-group-a"
#   "my-group-a,my-group-b"
#   ["my-group-a","my-group-b"]
spawn.group="my-group-a"

# spawn.sound is the resource namespace and path to a sound resource.
# Optional
# Type: String
# Syntax: "mod:sound.resource"
# NOTE: See https://minecraft.fandom.com/wiki/Sounds.json/Java_Edition_values for a list of sound events to play.
#       Ambient and music will not work.
# Examples:
#   "mod:sound.resource"
#   "minecraft:block.anvil.land"
spawn.sound="minecraft:entity.ender_dragon.growl"

# spawn.finalize will run the mob's finalize method.
# Optional, defaulting to yes
# Type: Boolean
# Syntax: "yes" or "no", "true" or "false", 0 or 1
# NOTE: Mods can apply additional changes to the mob in the finalize method, which could change SNBT data passed in.
#       Most of the time it should be enabled, but some mods have issues as they alter the mob's properties. For
#       example: The mod called "Fossils and Archeology: Revival" will change the mob's age to an adult even though SNBT
#       passed an age of a baby.
spawn.finalize="yes"

#######################################################################################################################
# SET - Parameters to set abilities.
#######################################################################################################################

# set.allow-attack defines which mobs can be targeted for attacking. This can be useful to stop a mob from attacking
# other mobs in the event of an accidental hit, such as skeletons with a bow hitting other mobs or skeletons with a bow.
# NOTE: By default, any mobs specified in the "set.attack" option will be automatically included in this list as well.
# Optional, defaulting to vanilla
# Type: String or array of strings
# Syntax: "mod:mob" or "player"
# Examples:
#   "player"
#   "minecraft:skeleton"
#   ["minecraft:skeleton", "minecraft:allay", "custom:mob"]
set.allow-attack=["player", "minecraft:skeleton"]

# set.attack defines much mobs will be attacked on sight.
# Optional, defaulting to vanilla
# Type: String or array of strings
# Syntax: "mod:mob" or "player"
# Examples:
#   "player"
#   "minecraft:skeleton"
#   ["minecraft:skeleton", "minecraft:allay", "custom:mob"]
set.attack=["player", "minecraft:skeleton"]

# set.baby is the probability the mob will spawn as a baby.
# Optional, defaulting to vanilla
# Type: Numeric, between 0 and 100
set.baby=50

# set.boss-bar creates a boss bar for the mob
# Optional
# Type: String
# Syntax: "title:color:style"
# Examples:
#   "Big Boss"
#   "Big Boss:blue"
#   "Big Boss:purple:notched_20"
# NOTE: See https://minecraft.fandom.com/wiki/Commands/bossbar for colors and styles.
set.boss-bar="§4The §2BIG §4boss:green:notched_10"

# set.break-block is the probability the mob will break blocks.
# Optional, defaulting to 0
# Type: Numeric, between 0 and 100
set.break-block=25

# set.can-lead is the probability the mob can be leashed with a lead.
# Optional, defaulting to 0
# Type: Numeric, between 0 and 100
set.can-lead=0

# set.climb is the probability the mob will be able to climb up other mobs.
# Optional, defaulting to 0
# Type: Numeric, between 0 and 100
set.climb=75

# set.cut-grass is the probability the mob will cut down grass.
# Optional, defaulting to 0
# Type: Numeric, between 0 and 100
set.cut-grass=75

# set.damage is the base amount of damage the mob will inflict.
# NOTE: This only affects melee attacks
# Optional, defaulting to vanilla
# Type: Numeric or Range
set.damage=[10,20]

# set.eat-plants is the probability the mob will eat plants and crops.
# Optional, defaulting to 0
# Type: Numeric, between 0 and 100
set.eat-plants=50

# eat-plants-heals is the probability the mob will heal from eating plants, if you have set.eat-plants enabled.
# Optional, defaulting to 0
# Type: Numeric, between 0 and 100
set.eat-plants-heals=25

# set.follow-range is range a mob will follow its target.
# Optional, defaulting to vanilla
# Type: Numeric or Range
set.follow-range=[32,64]

# set.flying-speed is the base speed at which flying mobs can fly.
# Optional, defaulting to vanilla
# Type: Numeric or Range
set.flying-speed=[7,10]

# set.health is starting health of the mob.
# Optional, defaulting to vanilla
# Type: Numeric or Range
set.health=[50,100]

# set.knockback applies to mobs with physical attacks giving them the ability to knock backwards the player when hit.
# Optional, defaulting to vanilla
# Type: Numeric or Range
set.knockback=[10,70]

# set.movement-speed is the base speed at which mobs can move.
# Optional, defaulting to vanilla
# Type: Numeric or Range
set.movement-speed=[20,30]

# set.mount is the mod:mob or name of rule to have the mob mount/ride.
# Optional
# Type: String
# Syntax: "mod:mob" or "name from the mob.rule section"
# NOTE: Supports SNBT formatting. See mob.rule snbt parameter for more information.
# Examples:
#   "minecraft:zombie_horse"
#   "minecraft:pig{Saddle:1b}"
#   "example-rule"
set.mount="example-rule"

# set.name the name of the mob.
# Optional, defaulting to vanilla
# Type: String
# NOTE: See https://minecraft.fandom.com/wiki/Formatting_codes for color codes to add some color to your mob's name.
set.name="§2M§4o§4n§bs§ct§ee§6r§u!"

# set.snbt the SNBT for the mob.
# Optional, defaulting to vanilla
# Type: String
# NOTE: This will override any SNBT in the "name" parameter in the mob section.
# NOTE: Read about NBT/SNBT: https://minecraft.wiki/w/NBT_format
# NOTE: You can use a command generator and take only the SNBT to help, such as:
#       Generator Provides:
#          /summon villager ~ ~ ~ {VillagerData:{type:plains,profession:farmer,level:5}}
#       Change to:
#          snbt="{VillagerData:{type:plains,profession:farmer,level:5}}"
#       Example command generator (be sure to use the correct MC version):
#          https://www.gamergeeks.net/apps/minecraft/mob-generator
#       If the SNBT has double quotes, then ensure to escape, as such:
#          snbt="{CustomName:\"Wilbur\",Health:50.0f}"
#       Or you can also change double quotes to single quotes, as such:
#          snbt="{CustomName:'Wilbur',Health:50.0f}"
set.snbt="{Brain: {memories: {\"minecraft:dig_cooldown\": {value: {}, ttl: 1200}}}}"

# set.name-always-shown defines if the name is always visible on the mob.
# Optional, defaulting to vanilla
# Type: Boolean
# Syntax: "yes" or "no", "true" or "false", 0 or 1
set.name-always-shown="yes"

# set.on-hurt defines what the mob will do when hurt.
# Optional, defaulting to vanilla
# Type: String
# Options:
#   one - If hurt, then the one mob will attack.
#   all - If hurt, then the mob, and others of the same type, will attack.
set.on-hurt="one"

# set.place-block is the probability the mob will place blocks.
# Optional, defaulting to 0
# Type: Numeric, between 0 and 100
set.place-block=50

# set.plant-trees is the probability the mob will plant biome appropriate trees.
# Optional, defaulting to 0
# Type: Numeric, between 0 and 100
set.plant-trees=75

# set.plant-flowers is the probability the mob will plant biome appropriate flowers.
# Optional, defaulting to 0
# Type: Numeric, between 0 and 100
set.plant-flowers=25

# set.size defines the size of the mob by scaling the model.
# Optional, defaulting to vanilla
# Type: Numeric or Range
# NOTE: This only works on Minecraft version 1.21 or greater
set.size=[80,120]

# set.spread-fire is the probability the mob will spread fire to others if on fire.
# Optional, defaulting to 0
# Type: Numeric, between 0 and 100
set.spread-fire=100

# set.sunburn is the probability the mob will burn under the sun.
# Optional, defaulting to 0, except phantoms, skeletons, and zombies, which will default to 100
# Type: Numeric, between 0 and 100
set.sunburn=0

# set.xp is the experience points dropped by the mob after killing.
# Optional, defaulting to vanilla
# Type: Numeric or Range
set.xp=[10,50]

#######################################################################################################################
# SLOT - Parameters to define armor and items in hand.
#######################################################################################################################
# mob.rule.head is a list of items or a single item for the mob's head.
# Optional, defaulting to empty
# Type: Table with a required name and optional weight
# Syntax:
#   [[mob.rule.head]]
#   name="mod:item"
#   weight=number - Default: 1
#   drop=number - Default: 0
# NOTE: If a list of items is provided, then an item will be randomly selected.
# NOTE: The optional weight parameter will affect the probability of selection.
# NOTE: The optional drop parameter will is the probability of the item dropping upon mob's death. Range is 0-100
#       defaulting to: 0
# NOTE: The name parameter supports the "give" command's SNBT formatting. Use a give command generator and take only
#       the item name + the text that follows, such as:
#       Generator Provides:
#           /give @a iron_sword[enchantments={mending:1}]
#       Change to:
#           name="iron_sword[enchantments={mending:1}]"
#       Example give command generator (be sure to use the correct MC version):
#           https://www.gamergeeks.net/apps/minecraft/give-command-generator
#       If the item has double quotes, then ensure to escape, as such:
#           name="wooden_sword{display:{Name:'[\"\",{\"text\":\"Toothpick\",\"italic\":false}]'},Enchantments:[{lvl:1,id:mending}]}"
# Examples:
#   [[mob.rule.head]]
#   name=["minecraft:golden_helmet","minecraft:iron_helmet"]
#   weight=1
#   [[mob.rule.head]]
#   name="minecraft:air"
#   weight=3
[[mob.rule.head]]
name="minecraft:golden_helmet"
[[mob.rule.head]]
name="minecraft:diamond_helmet"

# mob.rule.chest is a list of items or a single item for the mob's chest.
# Optional, defaulting to empty
# Type: Table with a required name and optional weight
# NOTE: See mob.rule.head for syntax and example.
[[mob.rule.chest]]

# mob.rule.legs is a list of items or a single item for the mob's legs.
# Optional, defaulting to empty
# Type: Table with a required name and optional weight
# NOTE: See mob.rule.head for syntax and example.
[[mob.rule.legs]]

# mob.rule.feet is a list of items or a single item for the mob's feet.
# Optional, defaulting to empty
# Type: Table with a required name and optional weight
# NOTE: See mob.rule.head for syntax and example.
[[mob.rule.feet]]
name="minecraft:leather_boots"

# mob.rule.main is a list of items or a single item for the mob's main hand.
# Optional, defaulting to empty
# Type: Table with a required name and optional weight
# NOTE: See mob.rule.head for syntax and example.
[[mob.rule.mainhand]]
name="minecraft:wooden_sword"
[[mob.rule.mainhand]]
name="minecraft:golden_sword"
[[mob.rule.mainhand]]
name='golden_sword[custom_name=[{"text":"Ole Yellower","italic":false}],lore=[[{"text":"A sword from past times","italic":false}]],enchantments={mending:1,sweeping_edge:3}]'

# mob.rule.main is a list of items or a single item for the mob's offhand.
# Optional, defaulting to empty
# Type: Table with a required name and optional weight
# NOTE: See mob.rule.head for syntax and example.
[[mob.rule.offhand]]

#######################################################################################################################
# LOOT - Parameters to define loot dropped upon death.
#######################################################################################################################
# loot is a list of items or a single item to drop if the player kills the mob.
# Optional, defaulting to vanilla
# Type: Table with a required name and optional weight, group, and quantity
# Syntax:
#   [[mob.rule.loot]]
#   name="mod:item"
#   group=string or number - Default: blank
#   weight=number - Default: 1
#   quantity=number, or range of numbers - Default: 1
# NOTE: If a list of items is provided, then an item will be randomly selected.
# NOTE: The optional group will give you the ability to drop more than one item. If group is not set, then it will
#       default to blank.
# NOTE: The optional weight parameter will affect the probability of selection.
# NOTE: The name parameter supports SNBT formatting. See mob.rule.head for more information.
[[mob.rule.loot]]
name="minecraft:apple"
group="a"
quantity=[1,3]

[[mob.rule.loot]]
name="minecraft:air"
group="b"
weight=3

[[mob.rule.loot]]
name="minecraft:golden_apple"
group="b"
weight=1
quantity=1

[[mob.rule.loot]]
name="minecraft:air"
group="c"
weight=3

[[mob.rule.loot]]
name='golden_helmet[custom_name=[{"text":"Helmet of Breathing","italic":false}],enchantments={aqua_affinity:1}]'
group="c"
weight=1
quantity=1

#######################################################################################################################
# EFFECT - Parameters to define effects to set on mobs.
#######################################################################################################################
# effect is a list of effects or a single effect to apply to the mob.
# Optional
# Type: Table with a required name and optional weight, group, duration, amplifier, ambient, and particles.
# Syntax:
#   [[mob.rule.effect]]
#   name="mod:effect"
#   group=string or number - Default: blank
#   weight=number - Default: 1
#   duration=number, or range of numbers - Default: -1 (Infinite)
#   amplifier=number, or range of numbers - Default: 0
#   ambient=boolean - Default: false
#   particles=boolean - Default: true
# NOTE: If a list of effects is provided, then an effect will be randomly selected. For vanilla effects, see:
#       http://minecraft.fandom.com/wiki/Effect
# NOTE: The optional group will give you the ability to give more than one effect. If group is not set, then it will
#       default to blank.
# NOTE: The optional weight parameter will affect the probability of selection.
# NOTE: The optional duration parameter will default to -1, which is infinite.
[[mob.rule.effect]]
name="minecraft:glowing"
group="a"
particles="no"

[[mob.rule.effect]]
name="minecraft:strength"
group="b"
particles="no"
amplifier=2
weight=3

[[mob.rule.effect]]
name="minecraft:regeneration"
group="b"
particles="no"
amplifier=1
weight=3

#######################################################################################################################
# Add your custom rules below the next line
#######################################################################################################################





#######################################################################################################################
# Add your custom rules above the previous line
#######################################################################################################################
# Allow all by default. You can change "all" to "block" to block mobs by default.
[[mob]]
name="*"
[[mob.rule]]
type="all"