Skip to main content

Weapons and Mobs

Perfect Parries supports modded weapons and entities. This page covers how to configure custom stats and animations for your custom weapons and entities.

info

As of now, only animations can be completely set on your end. For custom entity/weapoon parry stats to be officially implemented, please contact me via discord to let me know what stats you would like for your weapon/entity heavy weapon. In the future, I aim to create a way to automatically read information from your mod.

Weapons

Custom Parry Animations

Add a PP_Parry entry to your weapon's JSON file. This tells Perfect Parries which animation to play when a parry occurs with this weapon.

"PP_Parry": {
"ThirdPerson": "Characters/Animations/Main_Handed/{Weapon_Name}/Attacks/Perfect_Parries/Parry.blockyanim",
"ThirdPersonMoving": "Characters/Animations/Main_Handed/{Weapon_Name}/Attacks/Perfect_Parries/Parry_Moving.blockyanim",
"FirstPerson": "Characters/Animations/Main_Handed/{Weapon_Name}/Attacks/Perfect_Parries/Parry_FPS.blockyanim",
"BlendingDuration": 0.1,
"KeepPreviousFirstPersonAnimation": true
}

Place your .blockyanim files at the paths specified above, adjusting {Weapon_Name} to match your weapon. {Weapon_Name} is the exact string you see when you hover over your weapon in your creative inventory.

Custom Parry Stats

You can override parry behavior for your weapons by adding entries to weapon_parry_settings.json in mods/Perfect_Parries/. Each entry is keyed by the weapon's item ID and can override any combination of the following properties:

PropertyTypeDescription
parryWindowMsLongthe timing window in milliseconds
reflectDamagePercentFloatpercentage of damage reflected to attacker
knockbackXFloathorizontal knockback force on attacker
knockbackYFloatvertical knockback force on attacker
counterattackDamageMultiplierFloatdamage multiplier for counterattacks
counterattackWindowMsLongwindow for landing a counterattack (ms)
stunnedDamageMultiplierFloatdamage multiplier against stunned targets
parryStaminaDrainMultiplierFloatstamina drain multiplier on perfect parry
signature_energy_gainFloatsignature energy granted per parry
flatBonusStaggerChanceFloatflat addition to the entity's stagger chance
percentageBonusStaggerChanceFloatpercentage increase to the entity's stagger chance
parrySfxIdStringcustom SFX ID for the parry sound
counterattackSfxIdStringcustom SFX ID for the counterattack hit sound

Any property you don't specify will use the global defaults from parry_config.json.

Wildcards and Material Groups

You can use * as a wildcard to match multiple weapons at once. Two built-in material groups are also available:

  • {METAL} — matches common metal materials (iron, cobalt, mithril, etc.)
  • {NON_METAL} — matches non-metal materials (stone, wood, trork, etc.)

Example

{
"Weapon_Narwhals_Karambit": {
"signature_energy_gain": 10.0,
"parryWindowMs": 150,
"reflectDamagePercent": 0.05,
"knockbackX": 2.5,
"knockbackY": 2.5,
"counterattackDamageMultiplier": 2.0,
"stunnedDamageMultiplier": 3.0,
"parryStaminaDrainMultiplier": 0.0,
"counterattackWindowMs": 300,
"flatBonusStaggerChance": 0,
"percentageBonusStaggerChance": 0
},
"Weapon_Mjolnir_Starky": {
"signature_energy_gain": 35.0
}
}

Mobs

Custom Stun Animations

Add a ParriedStun entry to your entity's animation JSON file. This tells Perfect Parries which animation to play when the entity is fully stunned.

"ParriedStun": {
"Animations": [
{
"Animation": "NPC/{Entity_Name}/Animations/Damage/Default/PP_Parry_Stunned.blockyanim"
}
]
}

Place your .blockyanim file at the path specified above, adjusting {Entity_Name} to match your entity. {Entity_Name} is the exact string you type to spawn the NPC.

Custom Entity Stamina Stats

You can configure stamina and stun behavior for your modded entities by adding entries to entity_stamina.json in mods/Perfect_Parries/. Each entry is keyed by the entity type ID and has the following properties:

PropertyDescription
max_staminamaximum stamina pool for this entity type
stamina_regen_timerdelay in milliseconds before stamina starts regenerating after being drained
stamina_regen_ratehow fast stamina regenerates per tick
damaged_stamina_multiplierhow much normal (non-parry) damage drains stamina
parried_stamina_changeflat stamina drained when this entity is parried
stagger_chanceprobability of a stagger on each parry (0.0 to 1.0)

When an entity's stamina reaches 0, it enters a full stun for the duration configured in parry_config.json (default 5 seconds).

Example

{
"KF_Fire_Queen": {
"max_stamina": 350.0,
"stamina_regen_timer": 5000,
"stamina_regen_rate": 25.0,
"damaged_stamina_multiplier": 0.75,
"parried_stamina_change": 35.0,
"stagger_chance": 0.1
},
"Sentinel_Golem": {
"max_stamina": 250.0,
"stamina_regen_timer": 3000,
"stamina_regen_rate": 25.0,
"damaged_stamina_multiplier": 0.5,
"parried_stamina_change": 35.0,
"stagger_chance": 0
}
}
info

Bosses typically have higher max_stamina and lower stagger_chance to not trivialize bosses while keeping parrying rewarding.