Configuration
The easiest way to configure Perfect Parries is with the /parrymodsettings command in-game. It opens an interactive admin UI where you can view and change all settings live.
For reference, all settings are stored as JSON files in mods/Perfect_Parries/ (auto-generated on first run). You can also edit these files directly, but a server restart will be required.
Config Files Overview
| File | Purpose |
|---|---|
parry_config.json | core parry settings, stamina system, effects |
pvp_config.json | PvP-specific parry settings |
entity_stamina.json | per-entity stamina stats |
weapon_parry_settings.json | per-weapon parry settings |
npc_parry_config.json | NPC parry behavior and attack warnings |
mod_dependencies.json | toggles for optional mod integrations |
parry_config.json
The main configuration file covering central parry settings.
Parry Timing & Feedback
| Option | Default | Description |
|---|---|---|
parryWindowMs | 200 | timing window in milliseconds from block start |
enableParryReticle | true | show parry window reticle on HUD |
enableCounterReticle | true | show counterattack reticle on HUD after a successful parry |
requireBlocking | true | player must be actively blocking to parry |
blockSpamCooldownMs | 500 | cooldown between block attempts to prevent spam |
Changing parryWindowMs requires a server restart for the parry reticle timing to stay in sync.
Damage & Knockback
| Option | Default | Description |
|---|---|---|
reflectDamagePercent | 0.15 | percentage of incoming damage reflected to attacker |
knockbackX | 5 | horizontal knockback force on attacker |
knockbackY | 5 | vertical knockback force on attacker |
parryStaminaDrainMultiplier | 0.0 | stamina drain multiplier on a perfect parry relative to a block |
parryDurabilityLoss | false | whether parrying consumes durability on the blocking item |
reflectRangedAttacks | true | whether ranged attacks (arrows, projectiles) can be parried and reflected back at the attacker |
Counterattack
| Option | Default | Description |
|---|---|---|
counterattackWindowMs | 450 | window after parry to land a counterattack (ms) |
counterattackDamageMultiplier | 1.25 | damage multiplier for counterattacks |
Signature Energy
| Option | Default | Description |
|---|---|---|
parriesToFullSignatureEnergy | 5 | number of parries to fully charge a weapon's signature attack |
Entity Stamina & Stuns
| Option | Default | Description |
|---|---|---|
enableEntityStamina | true | enable the stamina/stun system for mobs and NPCs |
staggerDurationSeconds | 1.25 | how long a stagger lasts |
stunDurationSeconds | 5.0 | how long a full stun lasts |
stunnedDamageMultiplier | 2.5 | critical damage multiplier when hitting a stunned entity |
enableStaminaDisplay | false | show stamina values above entities as a nameplate |
entityWakeUpByStatusEffects | false | whether status effect damage (poison, fire) wakes stunned entities |
Parry Effects (PvE)
| Option | Default | Description |
|---|---|---|
enableParryEffects | true | enable bonus effects from consecutive parries |
parryEffectThreshold | 3 | number of consecutive parries to trigger an effect |
parryEffectResetWindowMs | 5000 | time before the parry counter resets (ms) |
Sound Effects
Override the default sound effects for parries, stuns, and counterattacks with any valid SFX ID. Leave empty to use the built-in defaults.
| Option | Default | Description |
|---|---|---|
parrySfxId | "" | custom SFX ID for the parry sound |
stunSfxId | "" | custom SFX ID for the guard break/stun sound |
counterattackSfxId | "" | custom SFX ID for the counterattack hit sound |
If you want to use a custom sound that is not native, add it to your world first and put the id of your sound effect here!
pvp_config.json
Settings specific to player-vs-player parrying. See PvP Parrying for gameplay details.
| Option | Default | Description |
|---|---|---|
enablePvPParrySystem | true | enable PvP parry mechanics |
parriedStaminaDamage | 2 | flat stamina damage dealt to the parried player |
parriedStaminaRegenCooldownSeconds | 1.5 | delay before parried player's stamina regenerates |
enableSuperKnockback | false | enable massive knockback on PvP parry |
usePercentageStamina | false | use percentage-based stamina damage instead of flat |
percentStaminaDamage | 25 | percentage of stamina to drain (when percentage mode is on) |
enablePvpParryEffects | true | enable parry effects in PvP |
pvpParryEffectThreshold | 2 | consecutive parries needed to trigger a PvP effect |
pvpParryEffectResetWindowMs | 5000 | PvP counter reset window (ms) |
npc_parry_config.json
Settings for NPC parry behavior and incoming attack indicators.
| Option | Default | Description |
|---|---|---|
enableNpcParry | true | enable NPCs to perform perfect parries when blocking |
npcParryWindowMs | 750 | timing window for NPC parries (ms) |
npcParryStaminaDamage | 2.5 | flat stamina damage dealt to the attacker on NPC parry |
npcUsePercentageStamina | false | use percentage-based stamina damage instead of flat |
npcPercentStaminaDamage | 10 | percentage of stamina to drain (when percentage mode is on) |
npcParryDamageMode | 1 | damage mode: 1 = % health, 2 = flat, 3 = reflect |
npcParryPercentHealthDamage | 15 | percentage of attacker's max health dealt as damage (mode 1) |
npcParryFlatDamage | 10 | flat damage dealt to attacker (mode 2) |
npcParryReflectPercent | 25 | percentage of incoming damage reflected (mode 3) |
npcBlockWindowBufferMs | 150 | minimum time NPC must be blocking before parry activates (ms) |
npcBlockCooldownMs | 1500 | cooldown before NPC can block again after a parry (ms) |
enableAttackWarningParticle | false | show a red ! VFX above NPCs when they start an attack (BETA) |
enableAttackWarningSfx | false | play a warning sound when NPCs start an attack (BETA) |
entity_stamina.json
Contains per-entity stamina configurations for 413 entity types by default. Each entity entry has the following properties:
| Property | Description |
|---|---|
max_stamina | maximum stamina pool for this entity type |
stamina_regen_timer | delay in milliseconds before stamina starts regenerating |
stamina_regen_rate | how fast stamina regenerates per tick |
damaged_stamina_multiplier | how much normal damage drains stamina |
parried_stamina_change | flat stamina drained when this entity is parried |
stagger_chance | probability of a stagger on each parry (0.0 to 1.0) |
Modded entities have custom settings in a separate config file to prevent confusion and make adding custom mob stamina systems easier.
weapon_parry_settings.json
Per-weapon overrides for parry behavior. This file allows you to fine-tune how specific weapons or groups of weapons behave when parrying. It supports exact item IDs, wildcards (*), and special material groups.
Available Overrides
The following properties can be overridden for any weapon entry:
| Property | Type | Description |
|---|---|---|
signature_energy_gain | Float | signature energy granted per parry |
parryWindowMs | Long | the timing window in milliseconds |
reflectDamagePercent | Float | percentage of damage reflected |
knockbackX | Float | horizontal knockback force |
knockbackY | Float | vertical knockback force |
counterattackDamageMultiplier | Float | damage multiplier for counterattacks |
stunnedDamageMultiplier | Float | damage multiplier against stunned targets |
parryStaminaDrainMultiplier | Float | stamina drain multiplier on perfect parry |
parrySfxId | String | custom SFX ID for the parry sound |
counterattackSfxId | String | custom SFX ID for the counterattack hit sound |
counterattackWindowMs | Long | window for landing a counterattack (ms) |
flatBonusStaggerChance | Float | flat addition to the entity's stagger chance |
percentageBonusStaggerChance | Float | percentage increase to the entity's stagger chance |
Wildcards & Groups
You can use the * wildcard to match multiple items. Additionally, you can use the following built-in groups:
{METAL}: matches common metal materials (iron, cobalt, mithril, etc.){NON_METAL}: matches non-metal materials (stone, wood, trork, etc.)
Example configuration:
{
"Weapon_Mjolnir_Starky": {
"signature_energy_gain": 35.0
},
"Weapon_Narwhals_Karambit": {
"signature_energy_gain": 10.0,
"parryWindowMs": 150,
"reflectDamagePercent": 0.05,
"counterattackDamageMultiplier": 2.0,
"stunnedDamageMultiplier": 3.0
},
"Weapon_*_{NON_METAL}": {
"parrySfxId": "SFX_PP_Perfect_Parry_Non_Metal"
},
"Weapon_Shield_*": {
"parrySfxId": "SFX_Shield_T2_Impact"
}
}
This system provides granular control over combat balance, allowing people to decide each weapons parry stats based on their vision of each weapon.
mod_dependencies.json
Toggles for optional integrations with other mods.
| Option | Default | Description |
|---|---|---|
enableMmoSkillTree | true | enable MMO Skill Tree integration for parry bonuses |
Mod integrations only take effect if the corresponding mod is also installed. Enabling an integration for a mod that isn't present has no effect.
Live Editing
Use /parrymodsettings to open the interactive settings UI and change any of the options listed above without restarting the server. See Commands for details.