
#Server configuration settings
[server]

	#Indirect Sources independent of the attacker's attack speed
	[server.damageFrames]
		#Default value replacing vanilla's iFrame after being hurt.
		#Range: > 0
		hurtResistantTime = 0
		#Default value replacing vanilla's iFrame after armor damage.
		## Used mainly to prevent armor from wearing down too fast
		## If the next attack deals more than the previous the difference is applied
		#Range: > 0
		armorResistantTime = 5
		#Default value replacing vanilla's iFrame after shield damage.
		## Used mainly to prevent shield from wearing down too fast
		## If the next attack deals more than the previous the difference is applied
		#Range: > 0
		shieldResistantTime = 5
		#Damage sources that need a specific iFrame.
		#
		#Format: [*Damage Source name (Regex)]:[*Should damage stack between iFrames]:[*iFrame time]
		#* Damage Source name -> Used to identify the type of damage you're receiving.
		#* Should damage stack between iFrames -> 'true' or 'false', when set to 'true' damage will always stack regardless of the iFrame, but it will only apply the damage every iFrame.
		#* iFrame time -> How often you can receive damage from this damage source.
		#
		#
		#Examples:
		#- inFire:false:10 -> Source 'inFire' does not stack and only allows hits every 10 game ticks.
		#- inFire|lava:false:10 -> Sources 'inFire' or 'lava' do not stack and only allows hits every 10 game ticks (lava and fire will share the same iFrame).
		#- arrow:true:10 - > Source 'arrow' does stack and hits the accumulated damage every 10 game ticks.
		#
		## If the next attack deals more than the previous the difference is applied
		#
		damageSources = ["^inFire$:10", "^onFire:10", "^lightningBolt$:10", "^lava$:10", "^hotFloor$:10", "^inWall$:10", "^cramming$:10", "^cactus$:10", "^fall$:0", "^flyIntoWall$:0", "^outOfWorld$:10", "^generic$:5", "^magic$:10", "^wither$:10", "^anvil$:10", "^fallingBlock$:10", "^dragonBreath$:10", "^indirectMagic$:10", "^thorns$:5", "^explosion\\.player$:5", "^mob$:5"]
		#How much more damage the next attack must have to be accepted within the i-Frame
		#Range: 4.9E-324 ~ 1.7976931348623157E308
		nextAttackDamageDifference = 0.5
		#If false damage difference won't be reduced
		nextAttackDamageDifferenceApply = true

	#Direct Sources dependent on the attacker's attack speed and the vanilla iFrame time of the entity
	[server.attackFrames]

		[server.attackFrames.attackThreshold]
			#Attack reload speed before the attack is canceled (Players only).
			#Range: 0.0 ~ 1.0
			player = 0.5
			#Default attack speed before the attack is canceled (Mobs only).
			#Range: 0.0 ~ 1.0
			mob = 1.0
			#Mobs that need a specific attack threshold.
			#
			#Format: [*mod:entity]:[*Attack threshold]
			#* mod:entity -> Id of the entity in-game.
			#* Attack threshold -> Attack reload speed before the attack is canceled.
			#
			#
			#Example:
			#- minecraft:slime:1 -> 'Slime' from mod 'Minecraft' will only be able to attack when its attack reload time is 100%.
			#
			customs = ["minecraft:slime:1", "tconstruct:blueslime:1", "thaumcraft:thaumslime:1", "dummmmmmy:target_dummy:1"]

	#Knockback Sources filter
	[server.knockbackFrames]
		#Damage Sources will not apply knockback when on this list.
		exemptSources = ["indirectSkill"]

	#Compatability mode
	[server.compatability]
		#Mixins will not apply when this is true.
		turnOffMixins = false

