Combat Config

From DragonMineZ Wiki

combat.json controls stamina, blocking and parrying, damage mitigation, knockback, Speed and the passive dodge, ki charging and the Ki Surge, combat flight, ki weapons and the compatibility layer for weapons from other mods. It is a file of its own: none of these values are part of general-server.json.

The file lives at config/dragonminez/combat.json; its schema is defined in CombatConfig.java. For how combat plays out in game, see Combat; for how defense and mitigation are applied step by step, see Stats and Attributes. Technique-specific tuning (cooldowns, cast times, sizes, destruction) lives in techniques.json, documented on Skills Config.

Core combat and status

Key Default What it does
staminaConsumptionRatio 0.083 Stamina cost of a melee attack relative to its damage.
blockStaminaCost 0.25 Stamina cost of a blocked hit, relative to the damage blocked.
knockdownDurationSeconds 30 How long a player stays knocked down when a hit would have killed them but the fight doesn't allow kills (party PvP, Friendly Fist, Shadow Dummy sparring, or a Namekian or Majin preparing an absorption).
baselineFormDrain 80 Baseline value forms scale their energy drain against (see the per-form energyDrain on Custom Forms). Also used to size the ki cost of ki weapons.
killPlayersOnCombatLogout true If a player logs out mid-combat, they die on their next login.
strikeGlobalCooldownTicks 60 Shared cooldown after any strike attack, so owning several strikes doesn't let you chain them (halved when a strike misses).
accurateMobBattlePower true Calculates the Battle Power of non-DMZ mobs from their health, attack, armor, ranged attack and speed. When false, it is simply max health + attack damage × 5.

Blocking, parrying and poise

See also: Combat
Key Default What it does
enableBlocking true Master toggle for blocking.
enableParrying true Master toggle for parrying (requires blocking to be enabled).
parryWindowMs 150 Starting a block this close to the hit (in milliseconds) turns it into a parry: no damage, the attacker is knocked back and staggered, non-player attackers are stunned, ki blasts are deflected and strike attacks are countered.
parryStaminaCostPenalty 2.0 A parried attacker's melee attacks cost this much more stamina for 4 seconds.
blockBreakStunDurationTicks 60 Stun duration after a guard break.
poiseDamageMultiplier 0.25 Fraction of incoming damage converted to poise damage while blocking (×1.5 against non-player attackers). When poise or stamina runs out, your guard breaks.
poiseRegenCooldown 100 Ticks before poise starts regenerating again after taking poise damage.
blockDamageReductionCap 0.65 Maximum damage reduction while blocking.
blockDamageReductionMin 0.05 Minimum damage reduction while blocking.

Damage mitigation

Key Default What it does
baseDamageReductionCap 0.88 Hard cap on the percentage reduction from defense.
enchantmentDamageReductionCap 0.93 Hard cap on defense and Protection enchantments combined.
defenseDecayOnGuardBreak 0.66 Fraction of your defense lost for hits taken while guard-broken.
flatMitigationMaxAbsorbFraction 0.82 Maximum fraction of a hit that flat defense can absorb (clamped to 0.0–1.0).
defenseReductionScale 0.11 Scale of the percentage-reduction curve, relative to the expected maximum defense (clamped to at least 0.01). Lower values make defense reach high reductions sooner.
cancelDamageEventIfMitigationTooHigh true Fully negates hits that are tiny compared to your flat defense.
cancelDamageMitigationThreshold 2.5 A hit is negated when your flat defense is at least this many times the incoming damage (minimum 1.0).
enableAdaptativeDefenseMitigation true Extra reduction for hits that are small compared to your flat defense.
adaptativeMitigationParityRatio 1.0 Hit-to-flat-defense ratio at which the adaptive reduction equals adaptativeMitigationParityValue.
adaptativeMitigationParityValue 0.35 Adaptive reduction at the parity ratio (smaller hits get more, bigger hits less).
adaptativeMitigationZeroRatio 14.0 Hit-to-flat-defense ratio at which the adaptive reduction reaches 0.
adaptativeDefenseMitigationCap 0.65 Maximum adaptive reduction.

Knockback

Key Default What it does
enableDamageScaledKnockback true Scales knockback by how much of a hit got through your defense and how big it was.
knockbackMinMultiplier 0.15 Knockback multiplier for a hit your defense almost fully absorbed.
knockbackHeavyHitHealthFraction 0.15 Hits dealing at least this fraction of your max health count as heavy and knock you back harder.
knockbackHeavyHitGain 3.0 Extra knockback per health fraction above the heavy-hit threshold (multiplier 1 + (fraction − threshold) × gain).
knockbackMaxMultiplier 2.5 Maximum knockback multiplier.

Ki Protection and Ki Infusion

See also: Skills
Key Default What it does
kiProtectionMitigationPerLevel 0.025 Damage reduction per level of the Ki Protection skill.
kiProtectionCostRatio 0.15 Ki spent per point of incoming damage while Ki Protection is active.
kiInfusionDamagePerLevel 0.025 Bonus melee damage per level of Ki Infusion, as a fraction of your max ki.
kiInfusionBaseCostPct 2.5 Ki cost per hit (% of max ki) at Ki Infusion level 1.
kiInfusionMaxCostPct 7.5 Ki cost per hit (% of max ki) at Ki Infusion level 10.

Speed and passive dodge

Speed comes from Resistance. Players with the Meditation skill can automatically dodge basic melee attacks: against players you need to be faster than the attacker, against other enemies you need a higher Battle Power. A dodge costs stamina, and consecutive dodges get less likely.

Key Default What it does
enableSpeedSystem true Master toggle for Speed (movement bonus, step assist and passive dodge).
speedReferenceStat 10000.0 Effective Resistance that adds +1.0 Speed at full Power Release.
transformedSpeedCap 2.0 Extra Speed multiplier while transformed or using a stack form.
speedMovementCap 3.0 Maximum movement-speed multiplier from Speed.
speedStepAssistThreshold 2.0 Speed from which you step up blocks without jumping.
speedStepAssistBonus 0.5 Extra step height given by step assist.
enableSpeedDodge true Toggle for the passive dodge.
speedDodgeRatioAtLevel1 / speedDodgeRatioAtMaxLevel 2.5 / 1.4 How many times faster than an attacking player you must be to dodge, at Meditation level 1 / 10.
speedDodgeFullChanceSpeedRatio 2.0 How far beyond the required speed ratio (as a multiple) you reach the maximum chance.
speedDodgeBpRatioAtLevel1 / speedDodgeBpRatioAtMaxLevel 2.0 / 1.0 How many times higher your Battle Power must be than a non-player attacker's, at Meditation level 1 / 10.
speedDodgeFullChanceBpRatio 10.0 How far beyond the required Battle Power ratio you reach the maximum chance.
nonPlayerAttackerSpeed 1.0 Speed assumed for a non-player attacker that has no Battle Power.
speedDodgeBaseChance 0.10 Dodge chance once you just meet the requirement.
speedDodgeMaxChancePvp / speedDodgeMaxChancePve 0.35 / 0.50 Maximum dodge chance against players / other enemies at Meditation level 10.
speedDodgeMeditationChanceFloor 0.60 At Meditation level 1 the maximum chance is this fraction of the values above.
speedDodgeStreakMultiplier 0.75 Each consecutive dodge multiplies the next chance by this.
speedDodgeStreakResetTicks 60 Ticks without dodging that reset the streak.
speedDodgeCooldownTicks 10 Minimum ticks between two dodges.
speedDodgeStaminaCostPct 0.03 Stamina spent per dodge (fraction of max stamina).

Mobility

Key Default What it does
enablePerfectEvasion true Master toggle for the perfect-evasion timing mechanic.
perfectEvasionWindowMs 200 Timing window (in milliseconds) for a perfect evasion. After a perfect evasion, the next one can't trigger for 1.5 seconds (a dash during that time is a normal dash).
dashCooldownSeconds 4 Cooldown for a single dash (also used by the Instant Transmission tap).
doubleDashCooldownSeconds 12 Cooldown for a double dash.
teleportCooldownSeconds 30 Cooldown after an Instant Transmission warp to a master or a player.

Ki charging and Ki Surge

See also: Combat

Charging ki (default C) to full and keeping on charging fills the Ki Surge bar. When you first reach full ki you release a Ki Burst that pushes back weaker enemies around you. Once the bar is full you enter a Ki Surge: a bigger burst damages and blows back everyone nearby (it can't kill), then for a while your ki attacks hit harder and fly faster, you charge, move, fly and attack faster, and your aura grows; but spending ki costs more and drains the bar. Being stunned ends the surge.

Key Default What it does
kiChargeInterruptOnHit true Taking a hit while charging ki stops the charge (and any surge progress, which starts the surge cooldown).
kiChargeDeflectsProjectiles true While charging ki, non-ki projectiles (arrows and the like) are deflected.
kiChargeInterruptLockTicks 10 Ticks you can't restart charging after being interrupted.
enableKiSurge true Master toggle for the Ki Burst and the Ki Surge.
kiBurstRadius / kiBurstKnockback 8.0 / 1.4 Radius and push of the Ki Burst on reaching full ki (only enemies with lower Battle Power are pushed).
surgeFillSeconds 4.0 Seconds of charging at full ki needed to fill the surge bar.
surgeDurationSeconds 12.0 How long a Ki Surge lasts.
surgeCooldownSeconds 15 Cooldown after a surge ends or is lost.
surgeDrainPerKiFraction 1.5 Spending ki during a surge also drains the bar (spending X% of max ki removes 1.5 × X% of the bar).
surgeBurstDamageRatio 0.25 Surge burst damage as a fraction of your max ki (less with distance; never lethal).
surgeBurstRadius / surgeBurstKnockback 10.0 / 2.2 Radius and push of the surge burst.
surgeKiCostMultiplier 1.25 Ki cost multiplier during a surge.
surgeKiDamageMultiplier 1.15 Ki attack damage multiplier during a surge.
surgeKiSpeedMultiplier 1.25 Ki attack projectile speed multiplier during a surge.
surgeKiChargeSpeedMultiplier 1.20 Technique charging speed multiplier during a surge.
surgeMoveSpeedMultiplier / surgeFlySpeedMultiplier 1.25 / 1.25 Movement / flight speed multiplier during a surge.
surgeAttackSpeedMultiplier 1.40 Attack speed multiplier during a surge.
surgeAuraScaleMultiplier / surgeAuraSpeedMultiplier 1.25 / 1.50 Aura size / animation speed during a surge (visual only).

An Android's Absorption Barrier can also force a Ki Surge when it overflows (see Racial Skills).

Combat flight

See also: Combat, Skills
Key Default What it does
combatFlyAutoSwitchOnDamage true When you take or deal damage while flying in Search Fly, you're switched to Combat Fly.
combatFlyLockSeconds 8 How long you stay locked in Combat Fly after an auto-switch. With Mode Lock on (radial menu), you go back to the flight mode you locked once this ends.
combatFlyBaseSpeed 0.30 Base combat-flight speed.
combatFlySprintSpeed 0.50 Combat-flight speed while sprinting.
combatFlyHoldSpeedMultiplier 1.6 Speed multiplier while holding the movement key.
combatFlyDrainMultiplier 0.5 Ki drain rate multiplier while combat-flying.
combatFlyImpulseKiCostPct 0.05 Ki cost (%) of a flight impulse or boost.
combatFlyImpulseCooldownTicks 25 Cooldown (in ticks) between flight impulses.

Attack pacing

Key Default What it does
upswingMultiplier 0.5 Scales the short attack cooldown applied when you stop breaking a block, relative to your normal attack cooldown (clamped to 0.2–1.0).
allowAttackingMount false Whether players can attack while mounted.
attackIntervalCap 2 Minimum ticks between attacks, however high your attack speed is.

Melee windup. A melee swing lands a moment after you press attack: the windup is the swing animation's length × the attack's upswing value from its weapon attributes × 0.95, between 3 and 7 ticks. The server times the windup (with some tolerance for lag) and checks every target against the real attack hitbox and line of sight before the hit counts. You can't deal melee damage while blocking, and starting to block cancels a swing in progress.

Ki weapons

See also: Skills

kiWeaponsConfig is a map keyed by weapon type (blade, scythe, clawlance): the Ki Blade, Ki Scythe and Ki Claw Lance unlocked by the Ki Manipulation skill. Default value:

"kiWeaponsConfig": {
  "blade": {
    "baseDamage": 0.0,
    "kiScalingDamage": 0.25,
    "baseKiCost": 0.0,
    "kiScalingCost": 0.075,
    "attackSpeed": -2.4,
    "forcedColor": "#FFFFFF",
    "weaponCombo": "dragonminez:sword"
  },
  "scythe": { "baseDamage": 0.0, "kiScalingDamage": 0.45, "baseKiCost": 0.0, "kiScalingCost": 0.105, "attackSpeed": -2.8, "forcedColor": "#FFFFFF", "weaponCombo": "dragonminez:scythe" },
  "clawlance": { "baseDamage": 0.0, "kiScalingDamage": 0.65, "baseKiCost": 0.0, "kiScalingCost": 0.175, "attackSpeed": -2.6, "forcedColor": "#FFFFFF", "weaponCombo": "dragonminez:trident" }
}

Each entry has these fields:

Field What it does
baseDamage Flat bonus damage per hit.
kiScalingDamage Bonus damage = Ki Damage × this × (Ki Manipulation level × 0.1).
baseKiCost Flat ki cost per attack.
kiScalingCost Extra ki cost per attack = baselineFormDrain × this.
attackSpeed Vanilla-style attack-speed attribute modifier (negative is slower).
forcedColor Hex color string used to render the weapon's ki effect.
weaponCombo Moveset the weapon uses (a Weapon Attributes id).

Weapon registry

Key Default What it does
weaponRegistryLogging false Logs weapon-registry resolution for debugging.
weaponRegistryCompression true Compresses the synced weapon registry payload sent to clients.

Player combat relations

Key Default What it does
playerRelations minecraft:player: HOSTILE, minecraft:villager: NEUTRAL, minecraft:iron_golem: NEUTRAL, guardvillagers:guard: NEUTRAL A map of entity id to HOSTILE, NEUTRAL or FRIENDLY: a per-entity override for how combat targeting treats that entity. Party members (unless party PvP is on) are always friendly, and tournament rivals always hostile.
masteryBlacklistEntities minecraft:silverfish, dummmmmmy:target_dummy List of entity ids excluded from mastery and combat-progress gains (for example training dummies).
playerRelationToPassives HOSTILE Default relation (HOSTILE, NEUTRAL or FRIENDLY) toward passive mobs not otherwise listed.
playerRelationToHostiles HOSTILE Default relation toward hostile mobs not otherwise listed.
playerRelationToOther HOSTILE Default relation toward anything else.

Fallback compatibility for third-party weapons

When a weapon has no dedicated Weapon Attributes entry, DMZ matches its item id against a list of regular expressions to infer a sensible weapon category. Only items with an attack-damage modifier are considered.

Key Default What it does
fallbackCompatibilityEnabled true Master toggle for this system.
blacklistItemIdRegex "pickaxe" Item ids matching this regular expression are never treated as a DMZ-style weapon.
fallbackCompatibility 20 default entries (below) Ordered list of { item_id_regex, weapon_attributes } mappings from regular expression to category; the first match wins.

Default mappings (item_id_regex → weapon_attributes category):

Regular expression Category
claymore|great_sword|greatsword dragonminez:claymore
great_hammer|greathammer|war_hammer|warhammer|maul dragonminez:hammer
double_axe|doubleaxe|war_axe|waraxe|great_axe|greataxe dragonminez:double_axe
scythe dragonminez:scythe
halberd|glaive|pike|lance|naginata dragonminez:halberd
spear|trident|pitchfork|javelin dragonminez:spear
battlestaff|staff|quarterstaff|pole dragonminez:battlestaff
katana|uchigatana|nodachi|tachi dragonminez:katana
rapier|foil dragonminez:rapier
dagger|knife|shiv|dirk|kunai|karambit|wakizashi|tanto dragonminez:dagger
sickle|kama dragonminez:sickle
soul_knife dragonminez:soul_knife
claw|katar dragonminez:claw
wand dragonminez:wand
mace|hammer|flail dragonminez:mace
axe dragonminez:axe
coral_blade dragonminez:coral_blade
twin_blade|twinblade dragonminez:twin_blade
cutlass|scimitar|machete dragonminez:cutlass
sword|blade dragonminez:sword (catch-all)
Precise control If you are adding a weapon mod's item and want precise control instead of relying on regular-expression inference, give it a real Weapon Attributes entry. The datapack entry always wins over the fallback guess.

Reload and validate

  1. Edit config/dragonminez/combat.json.
  2. Validate the JSON syntax.
  3. Run /dmzreload config (or /dmzreload).
  4. Test in-game: block and parry timing, ki weapon damage and cost, and (if relevant) a third-party weapon's inferred category.