
[generation]
	# Resets some subbiomes when spawn checks apply there. [Default: false]
	refreshSubbiomes = false
	# Any structure not in structure_subbiomes will apply as ruins, unless something else sets it first (like the structure's spawn settings). [Default: true]
	structs_default_ruins = true
	# Can be used to adjust rate of berries on trees growing, lower values result in faster berry growth. [Default: 75]
	leafBerryTicks = 75
	# Fossil ores will generate in certain biomes. [Default: true]
	generateFossils = true
	# Allows the generic berry item to be added to pokemob drop pools if no other berries are added. [Default: false]
	autoAddNullBerries = false
	# Scaling factor on blast yield of explosive meteors. [Default: 1.0]
	meteorScale = 1.0
	# Attempts to ensure the player spawns inside the spawn building. [Default: true]
	spawnInBuilding = true
	# If true, random explosive meteors will fall, though only one every meteorDistance. [Default: true]
	meteors = true
	# Minimum distance between explosive meteors. [Default: 3000]
	meteorDistance = 3000
	# Auto-generated berries by hungry pokemobs will contain up to this many berries. [Default: 15]
	berryStackScale = 15
	# This is what the value in the structure data block will be replaced with to generate the professor.
	professor_override = "pokecube:mob:spawn_professor"
	# If false, subbiomes will not auto-detect, meaning they need to be placed manually, useful for adventure maps, etc. [Default: true]
	autoDetectSubbiomes = true
	# Attempts to ensure there is a pokecenter at spawn, this can still fail however depending on worldgen specifics. [Default: true]
	doSpawnBuilding = true
	# Maximum radius of effect of damage from explosive meteors. [Default: 64]
	meteorRadius = 64
	# Berry trees/crops will be added to certain biomes, based on datapack settings. [Default: true]
	generateBerries = true

[spawning]
	# the configs for deactivating/disabling monsters and animals will also affect these worlds, not only vanilla worlds.
	deactivateWhitelist = ["pokecube_world:overworld"]
	# Pokemobs will not spawn in the dimensions listed here.
	spawnDimBlacklist = ["compactmachines:compact_world"]
	# Similar to deactivateMonsters, but for vanilla animals. [Default: true]
	deactivateAnimals = true
	# This number, multiplied by mobDensityMultiplier will determine how many pokemobs will spawn within maxSpawnRadius of the player, this occurs at a rate based on spawnRate. [Default: 10]
	mobSpawnNumber = 10
	# Similar to disableVanillaMonsters, but for vanilla animals. [Default: false]
	disableVanillaAnimals = false
	# If true, vanilla monsters are removed entirely, similar to peaceful mode. [Default: false]
	disableVanillaMonsters = false
	# If false, levelCap is ignored. [Default: true]
	shouldCap = true
	# see mobSpawnNumber's description. [Default: 1]
	mobDensityMultiplier = 1.0
	# If false, specific pokemob spawn rates are not affected by location is ignored. [Default: true]
	applySpawnRateMask = true
	# Pokemobs will not spawn in these biomes unless explicitly allowed to.
	softSpawnBiomeBlacklist = ["the_bumblezone:sugar_water_floor", "the_bumblezone:hive_wall", "the_bumblezone:hive_pillar"]
	# Vanilla monsters will not spawn via normal spawning, this does not prevent mob spawners or special spawns. [Default: false]
	deactivateMonsters = false
	# This is an additional function applied to spawn lvl's after dimensionSpawnLevels, here x is the level chosen by dimensionSpawnLevels, and the output is the actual spawn lvl. [Default: "x + ceil(5*rand())"]
	spawnLevelVariance = "x + ceil(5*rand())"
	# If spawnWhitelisted is enabled, pokemobs will only spawn in these dimensions.
	spawnDimWhitelist = []
	# Legendary pokemobs will not spawn naturally below this level. [Default: 1]
	minLegendLevel = 1
	# This is how often the code attempts to spawn pokemobs near a player. [Default: 2]
	spawnRate = 2
	# Enables using spawnDimWhitelist to determine if a dimension is valid for spawn. [Default: false]
	spawnWhitelisted = false
	# Default radius of effect for repels, also applies to dynamax spots. [Default: 16]
	repelRadius = 16
	# These determine what lvl pokemobs spawn based on location. If central is true, then the origin for the function is 0,0, otherwise it is world spawn. if radial is true, then the function takes the variable r, which is horizontal distance from the origin. Otherwise it takes x and y, which are the horizontal coordinates with respect to the origin.
	dimensionSpawnLevels = ["{\"dim\":\"the_nether\",\"func\":\"abs((25)*(sin(x*8*10^-3)^3 + sin(y*8*10^-3)^3))\",\"radial\":false,\"central\":false}", "{\"dim\":\"overworld\",\"func\":\"abs((25)*(sin(x*10^-3)^3 + sin(y*10^-3)^3))\",\"radial\":false,\"central\":false}", "{\"dim\":\"the_end\",\"func\":\"1+r/200\",\"radial\":true,\"central\":true}"]
	# Wild mobs will be capped at this lvl for spawning. [Default: 50]
	levelCap = 50

[genetics]
	# Function to get IVs from EVs when breeding. [Default: "rand()*(((2*v + 256) * 31) / 512)"]
	epigeneticEVFunction = "rand()*(((2*v + 256) * 31) / 512)"
	# Rate of pokeemob mutations.
	mutationRates = ["pokecube:colour 0.25", "pokecube:moves 0.0", "pokecube:species 0.1", "pokecube:size 0.1", "pokecube:evs 0.1", "pokecube:shiny 0.010416667", "pokecube:nature 0.05", "pokecube:ivs 0.1", "pokecube:ability 0.1", "pokecube:gmax 0.001"]

[debug]
	# Debug output for mob ai. [Default: false]
	debug_ai = false
	# Debug output for uncatogorised things. [Default: false]
	debug_misc = false
	# Debug output for chat commands and pokemob orders. [Default: false]
	debug_commands = false
	# Debug output for pokemob spawning. [Default: false]
	debug_spawning = false
	# Debug output for move use. [Default: false]
	debug_moves = false
	# Debug output for datapack loading. [Default: false]
	debug_data = false

[advanced]
	# Moves in here will ignore pokemobsDamageBlocks and never apply their effects.
	damageBlocksBlacklist = []
	# Minimum size of a pokemob, in blocks. [Default: 0.01]
	minMobSize = 0.01
	# Delay for pokemobs released from pokecubes when thrown. [Default: 20]
	pokecubeAutoSendOutDelay = 20
	# Maximum size of a pokemob, in blocks. [Default: 20.0]
	maxMobSize = 20.0
	# Freezes all pokemobs in place. [Default: false]
	pokemobsAreAllFrozen = false
	# Moves in here will ignore pokemobsDamageBlocks, and apply their effects regardless.
	damageBlocksWhitelist = ["flash", "teleport", "dig", "cut", "rocksmash", "secretpower", "naturepower", "hyperspacehole", "nest_dig"]
	# This is how much exp is given for killing a non-pokemob, h is the max health of the mob, and a is the amount of armour it had. [Default: "h*(a+1)^2"]
	nonPokemobExpFunction = "h*(a+1)^2"
	# If true, lakes will be removed from pokecube structure spawns, disable this if that interferes with other mod's worldgen! [Default: true]
	lakeFeatureMixin = true
	# If true, killing non-pokemobs will provide exp to pokemobs. [Default: false]
	nonPokemobExp = false
	# Randomness. Changing not recommended.
	extraVars = ["jc:3.5", "rc:4.5", "eggDpl:2.0", "eggDpm:4.0"]
	# Makes all rare candies bad. [Default: false]
	reputs = false
	# Teleporting via the move teleport will not work in any dimensions listed here.
	blackListedTeleDims = []

[moves]
	# A cap on how much damage a wild pokemob can deal to a player. [Default: 10]
	maxWildPlayerDamage = 10
	# Can be used to scale damage from ranged moves. [Default: 1.0]
	rangedAttackDamageScale = 1.0
	# A Scaling factor on damage when a wild pokemob attempts to hit a player. [Default: 1.0]
	wildPlayerDamageRatio = 1.0
	# Can be used to scale damage from contact moves. [Default: 1.0]
	contactAttackDamageScale = 1.0
	# Enables world effects of electric type moves. [Default: true]
	defaultElectricActions = true
	# If this is false, then when a pokemob replaces a move, the old move will be added to the list of moves it can learn. [Default: false]
	movesForgottenWhenOverriden = false
	# The "range" of contact moves, if not 0, they will apply damage like ranged attacks. [Default: 0]
	contactAttackDistance = 0.0
	# How far ranged attacks will be able to hit from. [Default: 16]
	rangedAttackDistance = 16.0
	# Maximum radius of effect of an explosion type move. [Default: 16]
	blastRadius = 16
	# This is a scaling factor for damage dealt py pokemobs to mobs which are neither pokemobs, players or NPCs. [Default: 1.0]
	pokemobToOtherMobDamageRatio = 1.0
	# Enables world effects of fire type moves, such as: lighting fires, smelting, etc. [Default: true]
	defaultFireActions = true
	# This scales how much damage players can deal to pokemobs. [Default: 1.0]
	playerToPokemobDamageScale = 1.0
	# Enables world effects of water type moves. [Default: true]
	defaultWaterActions = true
	# A cap on how much damage a tamed pokemob can deal to a player. [Default: 10]
	maxOwnedPlayerDamage = 10
	# Scaling factor on explosion type moves' block damage. [Default: 100]
	blastStrength = 100.0
	# A Scaling factor on damage when a tamed pokemob attempts to hit a player. [Default: 1.0]
	ownedPlayerDamageRatio = 1.0
	# This fraction of the damage dealt is also applied as magic damage to the player, this is for wild pokemobs. [Default: 0.1]
	wildPlayerDamageMagic = 0.1
	# Enables world effects of ice type moves. [Default: true]
	defaultIceActions = true
	# This is the hunger cost per item smelted by fire type moves. [Default: 100]
	baseSmeltingHunger = 100
	# If true, only pokemobs can deal damage to pokemobs. [Default: false]
	onlyPokemobsDamagePokemobs = false
	# This is a scaling factor for damage dealt by pokemobs to NPCs. [Default: 1.0]
	pokemobToNPCDamageRatio = 1.0
	# This fraction of the damage dealt is also applied as magic damage to the player, this is for tamed pokemobs. [Default: 0.1]
	ownedPlayerDamageMagic = 0.1

[nests]
	# The number of ant pokemobs that work at one nest. [Default: 10]
	antNestMobNumber = 10
	# Minimum distance between burrows made by wild pokemobs. [Default: 64]
	nestSpacing = 64
	# Wild pokemobs make nests, these result in effective mob spawners where they made them, and will prevent other mobs spawning in the area, unless the nests are cleared out. [Default: true]
	pokemobsMakeNests = true
	# Probability per second of a nest spawning an egg, if it has less than 3 eggs. [Default: 0.25]
	nestEggRate = 0.25
	# The number of pokemobs that work at one nest. [Default: 3]
	nestMobNumber = 3

[permissions]
	# sets permsMoveAction
	permsMoveAction = false
	# sets permsFly
	permsFly = false
	# sets permsSurfSpecific
	permsSurfSpecific = false
	# sets permsCaptureSpecific
	permsCaptureSpecific = false
	# sets permsDiveSpecific
	permsDiveSpecific = false
	# sets permsHatch
	permsHatch = false
	# sets permsSendOut
	permsSendOut = false
	# sets permsSurf
	permsSurf = false
	# sets permsFlySpecific
	permsFlySpecific = false
	# sets permsRide
	permsRide = false
	# sets permsDive
	permsDive = false
	# sets permsRideSpecific
	permsRideSpecific = false
	# sets permsCapture
	permsCapture = false
	# sets permsSendOutSpecific
	permsSendOutSpecific = false
	# sets permsHatchSpecific
	permsHatchSpecific = false

[ai]
	# How far pokemobs look for targets while guarding an area. [Default: 16]
	guardSearchDistance = 16
	# Maximum distance a wild pokemob will try to move while idle wandering. [Default: 16]
	idleMaxPathWild = 16
	# If true, tamed pokemobs will try to gather items. [Default: true]
	tameGather = true
	# Pokemobs can have guard mode enabled, which makes them randomly murder things nearby. [Default: true]
	guardModeEnabled = true
	# Pokemobs will forget their target if they get more than this far away. [Default: 32]
	chaseDistance = 32
	# Maximum distance a tamed pokemob will try to move while idle wandering. [Default: 4]
	idleMaxPathTame = 4
	# If true, hungry lithovores might eat gravel to nothing. [Default: false]
	pokemobsEatGravel = false
	# This is how far away tamed pokemobs will look for items to collect. [Default: 16]
	tameGatherDistance = 16
	# Scales combat dodging speed. [Default: 1]
	dodgeSpeedFactor = 1.0
	# If true, players can surf on valid pokemobs. [Default: true]
	surfEnabled = true
	# How often pokemobs update their nearby blocks list, lower is faster, higher is less server load. [Default: 5]
	nearBlockUpdateRate = 5
	# If true, players can fly on valid pokemobs. [Default: true]
	flyEnabled = true
	# This scales how loud wild pokemob sounds are, lower numbers are lower volumes. [Default: 0.25]
	idleSoundVolume = 0.25
	# Approximate number of ticks between breeding. [Min: 600] [Default: 4000]
	breedingDelay = 4000
	# If true, pokemobs can hurt players. [Default: true]
	pokemobsDamagePlayers = true
	# Scales combat leaping speed. [Default: 1]
	leapSpeedFactor = 1.0
	# This is how often tamed pokemobs look for items to collect, smaller values are faster. [Min: 1] [Default: 20]
	tameGatherDelay = 20
	# If despawn is enabled, when mobs exceed cullDistance, and are within aiDisableDistance, they will vanish after this many ticks if no player get back in range. [Default: 2000]
	despawnTimer = 2000
	# Determines how quickly mobs want to mate again, larger values are faster. [Default: 1]
	mateMultiplier = 1
	# If true, player's pokemobs can hit them with AOE moves and misses. [Default: false]
	pokemobsDamageOwner = false
	# How often pokemobs look for something to hunt when hungry, lower is faster, but more server load. [Default: 5]
	huntUpdateRate = 5
	# Number of ms in a tick to start computing load balancing. [Default: 2]
	loadBalanceThreshold = 2.0
	# Fish-like pokemobs will occasionally look for fishing bobbers in this range. [Default: 16]
	fishHookBaitRange = 16
	# Delay between guard mode ticks, lower is faster. [Default: 20]
	guardTickRate = 20
	# Pokemobs will refuse to enter the pokecube again for this many ticks after a failed capture. [Default: 0]
	captureDelayTicks = 0
	# This is the target distance between two pokemobs during a fight. [Default: 4]
	combatDistance = 4
	# A random sound from here is played when a pokemob leaps in combat.
	leapSounds = ["entity.witch.throw"]
	# If true, there will be a warning in chat if a wild pokemob agros to you. [Default: true]
	pokemobagresswarning = true
	# This is how far away wild pokemobs will look for items to collect. [Default: 8]
	wildGatherDistance = 8
	# Wild pokemobs may agro to the player if they get closer than this distance. This applies to pokemobs tagged as #pokecube:hostile [Default: 5]
	hostileAggroRadius = 5
	# If true, players can dive with valid pokemobs. [Default: true]
	diveEnabled = true
	# This scales the amount of vanilla exp that pokemobs drop on death. [Default: 1.0]
	expFromDeathDropScale = 1.0
	# This is how often wild pokemobs look for items to collect, smaller values are faster. [Min: 1] [Default: 200]
	wildGatherDelay = 200
	# A random sound from here is played when a pokemob dodges in combat.
	dodgeSounds = ["entity.witch.throw"]
	# This is approximately how long a pokemob will live before it takes hunger damage, larger values will require less food to keep alive. [Default: 8000]
	pokemobLifeSpan = 8000
	# If true, wild pokemobs will try to gather items. [Default: false]
	wildGather = false
	# Scaling factor on hunger from pokemob interactions, such as lighting torches, milking, etc. [Default: 1.0]
	interactHungerScale = 1.0
	# If true, pokemobs will need to execute an attack after breaking out of a cube before they can go into another for capture. [Default: true]
	captureDelayTillAttack = true
	# Scaling factor on pokemob swim speed while pathing normally. [Default: 1.25]
	swimPathingSpeedFactor = 1.25
	# If true, a scoreboard team is added for each player automatically, and they are added to it. [Default: true]
	autoCreateScoreboardTeams = true
	# If true, player's in the same team can still battle each other. [Default: true]
	teamsBattleEachOther = true
	# Wild pokemobs may agro to the player if they get closer than this distance. This applies to pokemobs tagged as #pokecube:aggressive [Default: 3]
	aggressiveAggroRadius = 3
	# If true, pokemobs will slowly heal while out of combat. [Default: true]
	outOfCombatHealing = true
	# How long the exit cube animation effects last for. [Default: 40]
	exitCubeDuration = 40
	# Scaling factor on pokemob flight speed while pathing normally. [Default: 1.25]
	flyPathingSpeedFactor = 1.25
	# This number multiplied by mobSpawnNumber is how many mobs can be in an area before pokemobs stop breeding, this is for tamed pokemobs. [Default: 4]
	mateDensityPlayer = 4.0
	# How often the hunger system ticks, larger numbers will result in faster hunger, setting to -1 will disable hunger entirely. [Default: 1]
	hungerTickRate = 1
	# This is how often wild pokemobs make random sounds, higher numbers result in less noise. [Default: 100]
	idleSoundRate = 100
	# How often pokemobs attempt to perform an idle action, such as walking, etc. Larger numbers are better for server performance, but result in less wandering of wild pokemobs. [Default: 200]
	idleTickRate = 200
	# This number multiplied by mobSpawnNumber is how many mobs can be in an area before pokemobs stop breeding, this is for wild pokemobs. [Default: 2]
	mateDensityWild = 2.0
	# Wild pokemobs will check for a player to attack every approximately this many ticks, large values decrease the chance of pokemob aggression. This applies to pokemobs not as #pokecube:friendly [Default: 200]
	aggressiveAgroRate = 200
	# How likely pokemobs are to call for help from nearby mobs when they are attacked. [Default: 0.1]
	hordeRateFactor = 0.1
	# Scaling factor on time delay between pokemob interactions, such as lighting torches, milking, etc. [Default: 1.0]
	interactDelayScale = 1.0
	# Shift-right-clicking a valid pokemob with a stick will place it on your shoulder. [Default: true]
	pokemobsOnShoulder = true
	# If true, hungry herbivores will eat random plants. [Default: true]
	pokemobsEatPlants = true
	# Mobs with these entity IDs or Entity_Type Tags will not be valid aggression targets for pokemobs.
	aggroBlacklist = ["#pokecube:no_agro"]
	# Scaling rate for load balancing. [Default: 1.0]
	loadBalanceScale = 1.0
	# Maximum time for eggs to hatch, the average number is about half this. [Default: 10000]
	eggHatchTime = 10000
	# This is a cooldown between the pokemob deciding to attack a player, and the pokemob actually doing so, this gives some warning when you are about to be attacked. [Default: 100]
	pokemobagressticks = 100
	# If true, idle AI for pokemobs will slow down as server load increases. [Default: false]
	doLoadBalancing = false
	# Wild pokemobs will check for a player to attack every approximately this many ticks, large values decrease the chance of pokemob aggression. This applies to pokemobs tagged as #pokecube:hostile [Default: 20]
	hostileAgroRate = 20
	# If true, hungry lithovores will eat rocks to cobble/gravel. [Default: true]
	pokemobsEatRocks = true

[dynamax]
	# Dynamax duration in ticks. [Default: 250]
	dynamax_duration = 250
	# Scale of dynamaxed pokemobs. [Default: 5.0]
	dynamax_scale = 5.0
	# Dynamax cooldown in ticks. [Default: 6000]
	dynamax_cooldown = 6000
	# Z-Move cooldown in ticks. [Default: 2000]
	z_move_cooldown = 2000

[misc]
	# Mobs marked as "cloned" will drop items on death. [Default: false]
	clonesDrop = false
	# A list of custom sounds to register
	customSounds = []
	# If false, the PC can hold any item. [Default: true]
	pcHoldsOnlyPokecubes = true
	# Defeating a player's pokemobs gives exp. [Default: false]
	pvpExp = false
	# Automatically adds interactions such as water from water types, and lighting torches for fire types. [Default: true]
	defaultInteractions = true
	# The mob's favourite berry can be used to speed up breeding. [Default: true]
	berryBreeding = true
	# Your items which fit in the PC will be sent there when you die. [Default: true]
	pcOnDrop = true
	# A list of NBT tags to remove before saving the pokemob in its pokecube
	persistent_tag_blacklist = []
	# Scaling factor for EXP yield from fighting another player's pokemobs. [Default: 0.5]
	pvpExpMultiplier = 0.5
	# Defeating an NPC's pokemobs gives exp. [Default: true]
	trainerExp = true
	# Legendary pokemobs can breed. [Default: false]
	legendsBreed = false
	# Scales EXP yield from fighting non-player owned pokemobs. [Default: 1.0]
	expScaleFactor = 1.0
	# Using a bed will heal your pokemobs. [Default: true]
	bedsHeal = true
	# additional Mob IDs or Entity_Type tags which are blacklisted from going into snag cubes
	snag_cube_blacklist = ["ender_dragon", "wither"]
	# You will be prompted to choose a pokemob when creating a world, without having to look for a professor. [Default: false]
	guiOnLogin = false
	# You will be prompted to look for a professor if you have not recieved a starter. [Default: false]
	msgAboutProfessor = false

