SpecialAttack
Special attacks for every weapon type: swords, axes, clubs, sledges, atgeirs, spears, knives, fists, bows, crossbows. Plus Dash, Guard Cancel, Quickstep, tranquilizer bolts, crossbow reload upgrades, arrow embedding/recovery, cooldown HUD.SpecialAttack
Adds unique special attacks to every weapon category in Valheim — swords, axes, clubs, sledgehammers, atgeirs, spears, knives, bare fists/fist weapons, bows, and crossbows — each with cooldown tracking, configurable damage multipliers, visual/audio feedback, and an optional custom activation key (see the table below for the full weapon-by-weapon list). On top of that, several weapon-independent extras: a configurable dodge-roll replacement (Quickstep), a standalone dedicated-key dash (Dash) that works regardless of equipped weapon, and the ability to cancel an in-progress melee swing into a normal block (Guard Cancel). Crossbows and bows get extra depth beyond their own special attack — reload improvements and skill XP tuning for crossbows, and arrow embedding/recovery/gravity tuning for bows. All cooldowns are shown on a configurable on-screen HUD, and every value in the mod is configurable via the BepInEx config file.
Special Attacks by Weapon
| Weapon | Special Attack | Description |
|---|---|---|
| 1H Sword | Sword Chain | Secondary attack starts a chain — hold to keep chaining up to 3 hits, each with its own damage multiplier. Extra hits unlock at higher Swords skill levels. |
| 2H Sword (Claymore / THSwordKrom / Gold / Slayer variants) | Quad Slash | Secondary attack replaces the vanilla swing with a 4-hit slash combo — each hit has its own animation speed and damage multiplier. Extra hits unlock at higher Swords skill levels. |
| Bastard Sword (Warfare weapon) | Crescent Wave | The weapon's own secondary attack plays normally; at the hit-trigger moment a piercing crescent slash is additionally fired forward — at higher Swords skill, more crescents fire in quick succession from that same single swing. |
| Spear | Spear Pin | Throws the spear into an enemy — it stays embedded, slowing the target and dealing bonus damage. Walk up and pull it out to get your spear back; the bonus damage and reticle stay for the pin duration while the slow wears off gradually. |
| Battleaxe (2H Axe) | Impact Burst | Throws the axe with a spinning visual; it explodes in an AoE burst on impact. |
| 1H Axe | Hatchet Hook | Secondary attack is replaced entirely by a throw — the axe embeds in the target (slowing it) instead of swinging. Walk up and pull it out to get your axe back (or it drops at your feet if your inventory is full); pulling it out starts a bleed DoT on the target. |
| 1H Club/Mace | Concussion Blow | The weapon's own swing/damage is untouched; every monster actually hit by the swing gets a forced stagger + brief movement/attack lockout (small/large monster tiers gated by Clubs skill level; bosses are excluded). |
| Sledgehammer / 2H Mace | Aftershock | The weapon's own ground-slam swing plays normally; immediately after, a series of shockwaves ripples out from the impact point, growing in size and damage over 1–5 waves depending on Clubs skill level. |
| Battle Hammer (Clubs + Two-Handed, excluding Sledgehammers) | Spinning Sweep | Hold secondary attack to spin continuously, hitting all nearby enemies for the duration. |
| Polearm / Atgeir | Spiral Thrust | The weapon's own secondary attack plays normally (motion/hit detection/multi-hit untouched); only this swing's attack instance is switched to a horizontal spin thrust, and every monster hit takes extra follow-up hits over time (1–5 depending on Polearms skill level). |
| Knife / Dagger | Smoke Vanish | Throws a smoke bomb that resets nearby aggro and suppresses re-detection for a short duration — lets you reposition or vanish mid-fight. |
| All weapons (per-category toggle) | Quickstep | Replaces the vanilla roll with a short, fast dash — lower stamina cost, shorter cooldown, brief i-frames. Ported from sighsorry's SecondaryAttacks with the author's permission — see Credits. |
| Any weapon (or none) — dedicated key | Dash | A short straight-line dash on a dedicated key (default V), completely independent of the equipped weapon and of the special attacks above — see the [Dash] section below. |
| Melee weapons (Unarmed/Knives/Swords/Axes/Clubs/Polearms/Spears) — vanilla block key | Guard Cancel | Press the vanilla block key while mid-swing to instantly cancel the attack and drop into a normal vanilla block/parry instead of finishing the swing — see the [GuardCancel] section below. |
| Crossbow | Tranquilizer Bolt | Secondary attack is a toggle — reloads (full vanilla reload) into a tranquilizer bolt, or back to a normal one if one's already loaded. The bolt itself deals zero damage/knockback, but a non-boss hit (on creatures that have a corpse) puts the target to sleep after a short delay (stacks on repeat tranquilizer hits instead of waking it), with any other damage dealt while asleep always landing as a backstab — see the [TranquilizerBolt] section below. Crossbows also get reload improvements (keep-loaded-through-holster, move/jump/dodge not interrupting reload, 2-point skill-scaled reload time) and Crossbows skill XP tuning — see [Crossbow] below. |
| Bow | Hunter's Volley | A toggle, bound only to the dedicated SpecialAttackKey (never the vanilla secondary-attack key) so it never interferes with drawing/firing — press it to arm (shows an icon near the crosshair), press again to cancel. Works even mid-draw. Your next shot then fires a horizontal fan of extra arrows (count scales with Bows skill level) at a reduced per-arrow damage, instead of a single arrow — see the [HuntersVolley] section below. Bow arrows also get embedding/recovery — see [ArrowEmbed] below. |
| Unarmed (bare fists) and Fist/Claw weapons | Doom Fist | Secondary attack borrows the Knife's secondary-attack motion instead of your own punch/weapon swing, and that swing's own melee hit is disabled — all the damage instead comes from a single ground-impact AoE burst (Aftershock's shockwave visual/sound, resized) a short distance in front of you the instant the swing lands. Cooldown is spent the moment the swing starts, win or miss — see the [DoomFist] section below. |
Weapon detection is done by vanilla skill type + item type (and, for Bastard Sword/Crescent Wave, by prefab name) — no specific mod required for most weapons. Bastard Sword itself only exists if you have the Warfare mod installed (see "Optional integrations" below).
How It Works
- Secondary attack key triggers specials by default — each has its own cooldown
- Optionally bind a custom key (
SpecialAttackKey) to separate specials from vanilla secondary attacks- Custom key pressed → special attack only (no secondary swing)
- Custom key pressed while on cooldown → nothing happens
- Secondary attack key → always vanilla secondary attack
- Cooldown icons appear on your HUD
- All values are fully configurable via the BepInEx config file
Optional integrations (not required dependencies)
SpecialAttack does not require any other mod to function. If the following mods are installed, a couple of features use them automatically — with no integration installed, the affected feature simply falls back to its vanilla equivalent:
- Warfare (Therzie) — recommended, but entirely optional. If installed:
- Crescent Wave can trigger on the Bastard Sword (a Warfare weapon; without Warfare this weapon doesn't exist, so Crescent Wave never fires).
- Spiral Thrust will play Warfare's Warpike secondary-attack motion (
SpiralThrust.MotionName, defaultWarpikeSecondary_TW) for the spin thrust. Without Warfare (or if the motion can't be found), it plays the Atgeir's own secondary attack motion instead — the hit detection and extra-hit logic work identically either way. - Without Warfare installed, every other weapon category and special attack in this mod works exactly the same — Warfare only adds the Bastard Sword itself and the alternate Spiral Thrust motion.
Configuration
Edit BepInEx/config/com.specialattack.plugin.cfg after first launch.
[General]
| Key | Default | Description |
|---|---|---|
SpecialAttackKey |
Mouse4 |
Custom activation key (Unity KeyCode). When set, secondary key = vanilla only. Example: Mouse4, Mouse2, F |
[Hud]
| Key | Default | Description |
|---|---|---|
HudX |
0.5 |
Cooldown HUD X position (0 = left, 1 = right) |
HudY |
0.15 |
Cooldown HUD Y position (0 = bottom, 1 = top) |
[SwordChain] — 1H Sword
| Key | Default | Description |
|---|---|---|
Enable |
true |
Toggle on/off |
Cooldown |
20 |
Cooldown in seconds |
ChainWindow |
0.8 |
Time window to trigger next chain hit (seconds) |
AnimSpeed |
1.4 |
Chain hit animation speed multiplier |
Damage1 |
1.2 |
1st hit (special attack) damage multiplier |
Damage2 |
1.4 |
2nd hit damage multiplier |
Damage3 |
2.0 |
3rd hit (finisher) damage multiplier |
MinSkillLevel |
0 |
Minimum Swords skill level required (0 = no limit) |
HitLevel2 |
20 |
Min Swords level for the 2nd hit (1st hit only needs MinSkillLevel) |
HitLevel3 |
30 |
Min Swords level for the 3rd hit (finisher) |
ChainPushMult |
0.1 |
Knockback multiplier for chain hits (0 = none, 1.0 = full weapon knockback) |
[QuadSlash] — 2H Sword (Claymore / THSwordKrom / Gold & Slayer variants)
| Key | Default | Description |
|---|---|---|
Enable |
true |
Toggle on/off |
Cooldown |
22 |
Cooldown in seconds |
AnimSpeed1 / AnimSpeed2 / AnimSpeed3 |
1.3 / 1.2 / 1.5 |
Animation speed for hits 1–3 |
AnimSpeed4 |
2.0 |
Animation speed for finisher (hit 4) |
Damage1–3 |
1.0 |
Damage multiplier for hits 1–3 |
Damage4 |
1.5 |
Damage multiplier for finisher |
MinSkillLevel |
0 |
Minimum Swords skill level required |
HitLevel2 |
10 |
Min Swords level for the 2nd hit |
HitLevel3 |
30 |
Min Swords level for the 3rd hit |
HitLevel4 |
50 |
Min Swords level for the finisher |
[CrescentWave] — Bastard Sword (Warfare weapon)
At higher Swords skill, the same swing fires more than one crescent. The
weapon's own secondary-attack swing still only plays once — the first
crescent fires immediately (exactly as before), and any additional ones from
the skill bracket below are fired in sequence afterward, ChainInterval
seconds apart, all reusing the exact position/direction/damage/size/speed/
range/effects/sound captured at the moment the first one fired (not
recalculated per extra shot). Each crescent still does its own independent
hit detection, so the same monster can be hit by more than one of them (hit
tracking to prevent a single crescent re-hitting the same target is
unchanged). Cooldown is still spent only once per swing, at the same point
as before (when the first crescent is confirmed to fire). If the player
dies, staggers, switches weapons, teleports, or guard-cancels the swing
while later crescents are still pending, those remaining ones are skipped.
| Key | Default | Description |
|---|---|---|
Enable |
true |
Toggle on/off |
HitHeight |
2 |
Hit detection height (meters) |
DamageMult |
0.8 |
Crescent damage multiplier — weapon damage (quality/skill applied, all types summed then converted to Slash) × this value |
Cooldown |
40 |
Cooldown in seconds — while on cooldown, only the vanilla secondary attack plays |
MinSkillLevel |
0 |
Minimum Swords skill level required to trigger a crescent at all |
HitSlashEnable |
true |
Show a small slash-mark effect at the hit point |
CrescentFullness |
0.25 |
Crescent thickness ratio (closer to 1 = thicker) |
ChainInterval |
0.15 |
Seconds between each extra crescent in a multi-shot burst |
Lv1 / Count1 |
20 / 1 |
Below this Swords level, 1 crescent (unchanged); at/above it, Count1 |
Lv2 / Count2 |
40 / 2 |
At/above this level, Count2 |
Lv3 / Count3 |
60 / 3 |
At/above this level, Count3 |
Lv4 / Count4 |
80 / 4 |
At/above this level, Count4 |
[SpearPin] — Spear
| Key | Default | Description |
|---|---|---|
Enable |
true |
Toggle on/off |
Cooldown |
60 |
Cooldown in seconds |
SpeedFactor |
0.8 |
Movement speed multiplier while pinned (0.1–1.0) |
PinDuration |
10 |
Duration of the pin effect (seconds) — spear drops as an item on expiry |
PullRange |
3 |
Distance to retrieve the pinned spear (meters) |
PullRestoreTime |
5 |
Time for movement speed to recover after the spear is pulled (seconds) |
MinSkillLevel |
30 |
Minimum Spears skill level required |
BonusDamageRatio |
0.2 |
Extra hit dealt while pinned, as a ratio of the pin hit (0 = disabled) |
BossMinSkillLevel |
50 |
Minimum Spears level required for the pin (slow) effect to apply to bosses — below this, bosses still get pinned and take bonus damage but aren't slowed |
ReticleEnable |
true |
Show a reticle above pinned targets |
ReticleSize |
1.5 |
Reticle size (meters) |
DropMarkerLevel |
20 |
Minimum Spears skill level (thrower's) to show a map marker where a dropped spear lands — own map only |
[ImpactBurst] — Battleaxe (2H Axe)
| Key | Default | Description |
|---|---|---|
Enable |
true |
Toggle on/off |
Cooldown |
30 |
Cooldown in seconds |
DamageFactor |
3 |
AoE damage multiplier |
PushFactor |
4.0 |
AoE knockback multiplier |
Radius |
4.0 |
AoE radius (meters) |
ThrowSpeed |
30 |
Throw velocity (m/s) |
SpinSpeed |
2.5 |
Thrown axe spin rate (rotations/second); 0 = no spin |
VisualPitch / VisualYaw / VisualRoll |
0 |
Visual orientation correction (degrees) — only needed if a modded axe's throw pose looks off |
MinSkillLevel |
40 |
Minimum Axes skill level required |
[HatchetHook] — 1H Axe
Secondary attack is fully replaced by a throw (no vanilla melee swing happens at all) — the axe embeds in whatever it hits instead of exploding like Impact Burst. Throw damage is the weapon's own damage (quality + skill applied); the embedded axe has no time limit and stays until the target dies or you pull it out.
| Key | Default | Description |
|---|---|---|
Enable |
true |
Toggle on/off |
Cooldown |
30 |
Cooldown in seconds — only consumed when the throw actually goes out |
MinSkillLevel |
10 |
Minimum Axes skill level required |
BossMinSkillLevel |
50 |
Minimum Axes level required for the embed to slow bosses — below this, bosses still get hit/embedded/bled normally but aren't slowed |
BleedDuration |
5 |
Bleed duration after pulling the axe out (seconds) |
BleedInterval |
0.1 |
Seconds between bleed ticks |
BleedTickMult |
0.05 |
Bleed tick damage = weapon damage (quality/skill applied) × this value |
EmbedDepth |
0.35 |
How far past the hit surface the axe is pushed in along the throw direction (meters) |
EmbedTiltAngle |
30 |
Tilt angle (degrees) so the blade edge digs in at an angle instead of head-on |
DropMarkerLevel |
20 |
Minimum Axes skill level (thrower's) to show a map marker where a dropped/embedded axe lands — own map only |
TrackMarkerLevel |
40 |
Minimum Axes skill level (thrower's) to show a map marker that follows the monster while the axe is embedded — own map only |
[ConcussionBlow] — 1H Club/Mace
The weapon's own motion/damage/multi-hit is completely untouched — this only adds a forced stagger + brief lockout on top, gated by target size and Clubs skill level. Bosses are always excluded.
| Key | Default | Description |
|---|---|---|
Enable |
true |
Toggle on/off |
Cooldown |
16 |
Cooldown in seconds — only consumed if at least one monster was actually staggered this swing |
MinSkillLevel |
0 |
Minimum Clubs skill level for the skill itself (separate from the per-size gates below) |
SmallLevel |
0 |
Minimum Clubs level to force-stagger small monsters |
LargeLevel |
40 |
Minimum Clubs level to force-stagger large monsters (see LargeMonsters) |
ExtraBosses |
(empty) | Comma-separated prefab names to additionally treat as bosses (excluded from this skill) |
LargeMonsters |
Troll,Abomination,StoneGolem,Gjall,SeekerBrute,GoblinBrute |
Comma-separated prefab names treated as "large" |
ExportCreatureList |
false |
If true, dumps every Character-bearing prefab to BepInEx/config/SpecialAttack_CreatureList.txt once per game start — turn on only when you need this reference list, leave off otherwise so it doesn't write a file every launch |
StunDuration |
3 |
How long (seconds) a staggered target is locked out of movement/attacks. Re-triggering refreshes (doesn't stack) this duration |
[Aftershock] — Sledgehammer / 2H Mace
The weapon's own ground-slam swing is untouched; the shockwaves are a purely additive follow-up from the same impact point.
| Key | Default | Description |
|---|---|---|
Enable |
true |
Toggle on/off |
Cooldown |
60 |
Cooldown in seconds |
MinSkillLevel |
30 |
Minimum Clubs skill level — meeting this always grants at least 1 shockwave |
Radius |
4 |
Base shockwave radius (meters) — actual radius is this × the per-wave size multiplier below |
ImpactOffset |
2 |
Forward distance to the fixed impact point (meters) |
ShockInterval |
1 |
Seconds between shockwaves — the first fires immediately on impact |
ShockLevel2–5 |
20/40/60/80 |
Minimum Clubs level for 2/3/4/5 total shockwaves |
ScaleFirst / ScaleLast |
1.1 / 2 |
Size multiplier for wave 1 / wave 5 (linearly interpolated in between; the table stays fixed even if fewer waves occur) |
DamageFirst / DamageLast |
1 / 3 |
Damage multiplier for wave 1 / wave 5 |
[SpinningSweep] — Battle Hammer (Clubs + Two-Handed, excluding Sledgehammers)
| Key | Default | Description |
|---|---|---|
EnableBattleHammer |
true |
Toggle on/off |
Cooldown |
30 |
Cooldown in seconds |
LoopStart / LoopEnd |
0.4 / 0.6 |
Normalized animation time window that loops while held |
AnimationSpeed |
1.0 |
Animation playback speed |
BattleHammerMoveSpeedFactor |
0.3 |
Movement speed multiplier while spinning |
SkillRaiseFactor |
0.25 |
Skill XP multiplier per loop |
MinSkillLevel |
40 |
Minimum skill level required |
StaminaMult |
0.5 |
Stamina cost per loop, relative to the weapon's own secondary attack stamina cost (1.0 = full) — applied exactly once per loop (first spin and every repeat alike), and only on swings that actually start or continue Spinning Sweep (vanilla secondary attacks blocked by cooldown/skill level keep their full vanilla stamina cost) |
PushMult |
0.1 |
Knockback multiplier (0 = none, 1.0 = full weapon knockback) |
StaggerMult |
1.0 |
Stagger multiplier (1.0 = full weapon stagger) |
DamageMult |
0.7 |
Damage multiplier (1.0 = full weapon damage) |
[SpiralThrust] — Polearm / Atgeir
Does not intercept the secondary attack — the weapon's own motion, hit detection, and multi-hit are untouched. Only this swing's attack instance has its AttackType switched to a horizontal spin, and every monster actually hit receives extra follow-up hits over time.
| Key | Default | Description |
|---|---|---|
Enable |
true |
Toggle on/off |
Cooldown |
16 |
Cooldown in seconds |
MinSkillLevel |
0 |
Minimum Polearms skill level required — meeting this always grants at least 1 extra hit |
HitLevel2–5 |
20/40/60/80 |
Minimum Polearms level for 2/3/4/5 total extra hits |
TickInterval |
0.2 |
Seconds between extra hits |
TickDamageMult |
0.3 |
Damage multiplier per extra hit (applied to weapon damage) |
MotionName |
WarpikeSecondary_TW |
Motion name invoked via ZSyncAnimation.SetTrigger when Warfare is installed (see "Optional integrations"). Not an Animator parameter — it's the name Warfare's own animation-replacement system listens for. Falls back to the Atgeir's own secondary attack motion if Warfare isn't installed or the motion can't be played |
[SmokeVanish] — Knife / Dagger
| Key | Default | Description |
|---|---|---|
Enable |
true |
Toggle on/off |
Cooldown |
120 |
Cooldown in seconds |
MinSkillLevel |
20 |
Minimum Knives skill level required |
Duration |
10 |
Seconds nearby monsters can't newly detect/re-target you after activation. Not invincibility — attacking or getting hit ends it immediately |
AggroResetRadius |
20 |
Radius (meters) for the immediate aggro reset and the ongoing re-detection suppression |
PreCastHitGrace |
0.5 |
Grace period (seconds) after activation during which an incoming hit doesn't count as "ending" the effect — covers monster attacks already in motion before you activated |
[Quickstep] — dodge roll replacement (all weapons, per-category toggle below)
Ported from sighsorry's SecondaryAttacks with the author's permission — see Credits. Default values match the original mod's fixed constants.
| Key | Default | Description |
|---|---|---|
Enable |
true |
Use a short fast dash instead of the vanilla roll when conditions are met; falls back to the vanilla roll otherwise |
DashAcceleration |
200 |
Dash acceleration |
DashDuration |
0.25 |
Dash duration (seconds) |
StaminaFactor |
0.6 |
Stamina cost = this fraction of the vanilla roll's cost |
Cooldown |
0.5 |
Cooldown (seconds) |
ShieldInvincibleDuration |
0.15 |
I-frame duration (seconds) while a shield is equipped — without a shield, the whole dash is invincible |
AnimSpeedStart |
3.0 |
Animation speed multiplier at dash start |
AnimSpeedEnd |
1.5 |
Animation speed multiplier during the rest of the dash |
[Quickstep - Weapons] — per weapon-category toggle
| Key | Default | Description |
|---|---|---|
Knives_1H / Knives_2H |
true / true |
Knives (1H / 2H) |
Unarmed_1H / Unarmed_2H |
true / true |
Unarmed / fist weapons (1H / 2H) |
Swords_1H / Swords_2H |
true / true |
Swords (1H / 2H) |
Axes_1H / Axes_2H |
true / true |
Axes (1H / 2H) |
Clubs_1H / Clubs_2H |
true / true |
Clubs (1H / 2H) |
Polearms_1H / Polearms_2H |
true / true |
Polearms (1H / 2H — vanilla has no 1H polearm; covers modded weapons) |
Spears_1H / Spears_2H |
true / true |
Spears (1H / 2H — vanilla has no 2H spear; covers modded weapons) |
Pickaxes_1H / Pickaxes_2H |
true / true |
Pickaxes (1H — modded only / 2H — all vanilla pickaxes) |
OtherSkills_1H / OtherSkills_2H |
true / true |
Any skill type not listed above (e.g. from other mods) |
Bows / Crossbows |
true / true |
Bows / Crossbows |
ElementalMagic / BloodMagic |
true / true |
Elemental / Blood magic staves |
BareHands |
true |
Completely unequipped (no unarmed weapon item) |
ExtraPrefabs |
(empty) | Comma-separated weapon drop-prefab names always allowed regardless of the checkboxes above |
[Dash] — dedicated-key dash (independent of equipped weapon and of the special attacks above)
A short straight-line dash on its own dedicated key. If you're holding a movement key (WASD etc.), it dashes in that world-facing direction (same movement-direction value vanilla itself uses); otherwise it dashes in the direction the camera is looking — either way the character turns to face the dash direction first, like a roll. On ground, it hugs the terrain (re-sampled every frame within a tight window just above/below your current foot height, so it can never latch onto a ceiling, roof, or the floor above in a dungeon) instead of flying off ramps or stopping short on slopes; while swimming it stays at a fixed height (horizontal only). Only usable while grounded or swimming — pressing the key while airborne (jumping/falling) does nothing (no stamina/cooldown spent, chain dashes included). If you get teleported (e.g. entering/leaving a dungeon) or otherwise moved by something else mid-dash, the dash stops immediately without fighting that movement, and is also ignored for a short grace period right after a teleport. Works with any weapon equipped (or none) and doesn't block attacks or other special attacks — you can swing or trigger a special attack while dashing and the dash keeps going. Plays the same activation effect as the other special attacks once per dash (including chain dashes). Does nothing (no screen message) while on cooldown, without enough stamina, or below the configured skill level. Ignored while a UI is open (chat/console/inventory/ map/etc.), while dead, or while attached to something (ship helm, chair, saddle).
| Key | Default | Description |
|---|---|---|
Enable |
true |
Toggle on/off |
DashKey |
V |
Dash activation key |
Distance |
3 |
Dash distance (meters, measured horizontally) — shortened automatically if it would hit an obstacle |
Speed |
20 |
Dash travel speed (m/s, horizontal) |
StaminaCost |
10 |
Stamina cost for the first dash |
Cooldown |
10 |
Cooldown in seconds — refreshed from the moment of the most recently used dash (including chain dashes) |
MaxSlope |
50 |
Ground dash only — an uphill slope steeper than this angle (degrees) is treated as a wall and stops the dash in place |
CliffDrop |
2 |
Ground dash only — if the ground ahead suddenly drops by at least this much (meters), the dash stops at the edge instead of following it down |
StepUp |
1 |
Ground dash only — how far above your current foot height the ground search is allowed to look (and no further) — keeps it from ever detecting a ceiling/roof/the floor above as "ground" |
ChainExtra |
1 |
Extra dash uses allowed within the chain window after the first dash (0 = no chaining) |
ChainWindow |
3 |
Time window (seconds) during which chain dashes can be used |
ChainStaminaCost |
15 |
Stamina cost per chain dash |
RunLevel |
30 |
Minimum Run skill level required for a ground dash (0 = no requirement) |
JumpLevel |
30 |
Minimum Jump skill level required for a ground dash (0 = no requirement) |
SwimLevel |
40 |
Minimum Swim skill level required for a swim dash (0 = no requirement) |
[GuardCancel] — cancel an in-progress melee swing into a block (independent of weapon/special attacks above)
Normally you can't block while mid-swing — vanilla only lets you block once the swing animation finishes. With this enabled, pressing the vanilla block key (including gamepad) while attacking with a melee weapon (Unarmed, Knives, Swords, Axes, Clubs, Polearms, Spears — bows, crossbows, staves, pickaxes and tools are excluded) immediately cancels the swing — no damage is dealt, no ammo/durability/resources are consumed for that swing, and any of this mod's own ongoing combo (QuadSlash/SwordChain/Spinning Sweep) is stopped cleanly — and drops you into a completely normal vanilla block using your equipped shield's own block animation, with full vanilla blocking/parry timing, block-stamina cost, and block+jump dodge. Hold the key to keep blocking, release it to drop block, exactly like vanilla. Does nothing while you're not mid-swing (vanilla block behaves exactly as usual), while the weapon isn't a melee weapon, or below the configured Blocking skill level.
| Key | Default | Description |
|---|---|---|
Enable |
true |
Toggle on/off |
BlockLevel |
20 |
Minimum Blocking skill level required to cancel a swing into a block (0 = no requirement) |
[TranquilizerBolt] — Crossbow-only special attack (tranquilizer bolt)
Triggered the same way as any other special attack (dedicated special-attack
key, or the vanilla secondary-attack key if no dedicated key is set) while a
crossbow is equipped — it's a toggle: if a tranquilizer bolt isn't
currently loaded, pressing it reloads (full vanilla reload animation/timing,
see [Crossbow] below) into a tranquilizer bolt, subject to cooldown/ammo/skill
conditions; if one is currently loaded, pressing it reloads back to a normal
bolt instead, with no condition and no cooldown. Either direction can be
interrupted exactly like any other reload (see [Crossbow]), which cancels
the swap. Ammo consumption and the shot's own flight are 100% vanilla once
fired — nothing about ammo or trajectory is changed. On a non-boss hit against
a creature that normally leaves a corpse behind (most creatures; corpse-less
ones like Blobs/Skeletons are automatically excluded), the bolt itself deals
zero physical/elemental damage, knockback, and stagger — after a short delay
the target falls asleep: its AI stops, it becomes invisible, and a physics-
driven ragdoll stand-in (the creature's own death-ragdoll prefab, falling over
naturally — falls back to a simpler static stand-in if that isn't available)
appears in its place; hits on that stand-in (melee or ranged) are forwarded to
the real, hidden creature, which also gets moved to match where the stand-in
settles so its own original hitbox lines up with what you see, and it doesn't
block or get pushed by players/other creatures. While asleep, any other hit
always gets a backstab/sneak damage bonus (using that weapon/ammo's own
vanilla bonus value). Hitting an already-sleeping (or about-to-sleep) target
with another tranquilizer bolt does not wake it or deal damage — instead
it adds another full SleepDuration to the remaining time (capped at
MaxSleepDuration), with the countdown shown as a number floating above the
target (shown as a screen-space number, local-only). The target wakes up when
the timer runs out or, if enabled, the instant it takes real damage (bonus
applied first) — a tranquilizer bolt's own hit never wakes it, whether it
lands on the stand-in or (via the safety-net check) on the real creature's
own hitbox. If the target falls asleep mid-swing, its in-progress attack is
safely cancelled so it can't land a hit on anything as it drops off; a
sleeping creature's own attacks are also ignored by the hit-forwarding logic
as an extra safety net. Death while asleep proceeds exactly like any other
vanilla kill. Swapping back to a normal bolt always works immediately, even
while the swap-to-tranquilizer cooldown is still running (the cooldown only
gates the tranquilizer direction). With two crossbows, each keeps its own
loaded-bolt-type correctly when you switch between them. Local-only visuals
(stand-in, timer, crosshair indicator below) aren't seen by other players in
multiplayer, but the sleep/backstab/hit-forwarding/position logic itself is
handled correctly on whichever client owns that creature. While a
tranquilizer bolt is loaded, a small tinted icon shows near the crosshair.
| Key | Default | Description |
|---|---|---|
Enable |
true |
Toggle on/off |
MinSkillLevel |
10 |
Minimum Crossbows skill level required to swap to a tranquilizer bolt (0 = no requirement) |
Cooldown |
60 |
Cooldown (seconds), consumed when the swap to tranquilizer actually completes (not when the swap-back reload is merely interrupted) |
SleepDelay |
3 |
Seconds after a hit before the target falls asleep |
SleepDuration |
60 |
How long each sleep application lasts (seconds); also how much a repeat hit adds |
MaxSleepDuration |
600 |
Cap on how long the sleep timer can be stacked up to |
WakeOnDamage |
true |
Wake up immediately on taking other damage while asleep (after applying the backstab bonus) |
ShowTimer |
true |
Show the floating remaining-sleep-time number above the target (local-only) |
RevertEffectColor |
pink | Color of the activation effect played when swapping back to a normal bolt (same effect as other special attacks, tinted for this instance only) |
IndicatorEnable |
true |
Show a small icon near the crosshair while a tranquilizer bolt is loaded |
IndicatorColor |
red | Color of that icon |
[Crossbow] — reload improvements + skill XP (applies to crossbows only)
Reload-related improvements, each gated by its own Crossbows skill level, plus
Crossbows skill XP tuning. KeepLoadedLevel keeps a loaded (unfired) normal
bolt loaded through holstering, inventory swaps, and relogging — below the
required level it's lost exactly like vanilla; a loaded tranquilizer bolt is
always kept regardless of this level. MoveReloadLevel/DodgeReloadLevel
stop running/jumping or dodge-rolling (Quickstep included) from interrupting
an in-progress reload (normal or tranquilizer-swap alike) — vanilla normally
cancels the reload outright the instant any of those happen. ReloadOverride
replaces vanilla's own Crossbows-skill reload-time scaling with a straight
line between ReloadTimeLv1 (skill 1) and ReloadTimeLv100 (skill 100) —
e.g. 6s/2s means skill 50 reloads in about 4s; set ReloadOverride to false
to leave vanilla's own scaling alone. SkillXpMultiplier multiplies all
Crossbows skill XP gains (vanilla on-hit XP included) by this amount; the
three Xp* entries below are additional XP sources (only while a crossbow is
equipped), each using the same unit vanilla itself uses for a single hit's
worth of XP (which defaults to 1.0) — these also get multiplied by
SkillXpMultiplier.
| Key | Default | Description |
|---|---|---|
KeepLoadedLevel |
20 |
Minimum Crossbows skill level to keep a loaded normal bolt through holster/relog (0 = no requirement) — a loaded tranquilizer bolt ignores this and is always kept |
MoveReloadLevel |
40 |
Minimum Crossbows skill level for running/jumping to not interrupt a reload in progress (0 = no requirement) |
DodgeReloadLevel |
60 |
Minimum Crossbows skill level for dodge-rolling to not interrupt a reload in progress (0 = no requirement) |
ReloadOverride |
true |
If false, reload time is left at vanilla's own value (ignores the two settings below) |
ReloadTimeLv1 |
8 |
Reload time (seconds) at Crossbows skill level 1 |
ReloadTimeLv100 |
2 |
Reload time (seconds) at Crossbows skill level 100 — levels in between scale smoothly between the two |
SkillXpMultiplier |
2 |
Multiplier applied to all Crossbows skill XP gains, vanilla on-hit XP included |
XpReload |
1 |
Extra Crossbows XP on completing any reload while a crossbow is equipped (before SkillXpMultiplier) |
XpSwap |
1 |
Extra Crossbows XP on completing a tranquilizer-bolt swap (either direction), on top of XpReload |
XpOnDamaged |
0 |
Extra Crossbows XP when you take damage while a crossbow is equipped (once per hit) |
[HuntersVolley] — Bow-only special attack (multi-arrow volley)
A ready/cancel toggle, bound only to the dedicated SpecialAttackKey
(set one in [General] to use this — it never binds to the vanilla
secondary-attack key, and never triggers a secondary attack or interrupts an
in-progress bow draw). Press the key while a bow is equipped to arm it
(plays the activation effect and shows an icon near the crosshair); press it
again to cancel (plays the same effect tinted with CancelEffectColor, no
cooldown or ammo cost either way). Switching to a different bow keeps the
armed state; switching to any non-bow weapon (or unequipping) cancels it
silently, with no effect played. Arming requires Enable, your Bows skill
level ≥ MinSkillLevel, the special attack not being on cooldown, and at
least 2 arrows on hand — cancelling is always allowed regardless.
Once armed, your very next bow shot (whatever draw-based speed/damage that
shot would normally have) fires a horizontal fan of arrows instead of one —
the arrow count is read from your current Bows skill level against the
Lv0..Lv4 / Count0..Count4 bracket pairs below, each additional arrow
offset from the previous by SpreadAngle degrees. Every arrow in the volley
(including the one vanilla itself fired) gets its damage multiplied by
DamagePerArrow. If you don't have enough arrows for the full bracket
count, it fires as many as you actually have; if that comes out to only 1
arrow, it's treated as a plain normal shot — no extra cooldown, no damage
change. If a dev/cheat "no resource cost" setting is active and vanilla
itself didn't actually spend an arrow for this shot, the full bracket count
fires regardless of how many arrows you're carrying, and no arrows are spent
for the extra shots either (detected by checking whether vanilla's own ammo
consumption actually reduced your arrow count, not by reading the cheat flag
itself — this keeps it compatible with any mod that disables ammo cost).
Each arrow of the volley gets its own independent copy of the shot's
owner/weapon/ammo/damage/blockable/dodgeable/status-effect data (re-run
through vanilla's own Projectile.Setup, the same call vanilla itself uses)
so embedding, hit tracking, and recovery (see [ArrowEmbed] below) all see
every arrow, not just the first one. The armed state is cleared and
Cooldown starts the instant the volley (or the single-arrow fallback)
fires.
| Key | Default | Description |
|---|---|---|
Enable |
true |
Toggle on/off |
MinSkillLevel |
0 |
Minimum Bows skill level required to arm (0 = no requirement) |
Cooldown |
45 |
Cooldown (seconds), started the instant a volley actually fires |
CancelEffectColor |
sky blue | Color of the activation effect played when cancelling |
IndicatorEnable |
true |
Show a small icon near the crosshair while armed (same position as the Tranquilizer Bolt icon — the two weapon types never overlap, so they're never shown at once) |
SpreadAngle |
1.6 |
Degrees between adjacent arrows in the fan |
DamagePerArrow |
0.7 |
Damage multiplier applied to every arrow in the volley |
Lv0 / Count0 |
0 / 2 |
Bracket 1 — Bows skill level / arrow count |
Lv1 / Count1 |
20 / 3 |
Bracket 2 |
Lv2 / Count2 |
40 / 4 |
Bracket 3 |
Lv3 / Count3 |
60 / 5 |
Bracket 4 |
Lv4 / Count4 |
80 / 6 |
Bracket 5 |
[ArrowEmbed] — arrow embedding + recovery + gravity (all bow shots, Hunter's Volley included)
Any arrow fired from a bow (normal shots and every arrow from a Hunter's
Volley) that hits a monster sticks into it at the hit point — using the
flying arrow's own visual and its exact in-flight orientation (not the
ground-pickup item's model), so it embeds nose-first instead of backwards —
attached to the nearest bone so it follows the monster's own animation/
movement; this is a local-only visual, not seen by other players. Up to
EmbedMax arrows per monster are shown at once; past that, the oldest one is
removed to make room for the newest. All embedded arrows on a monster are
cleaned up when it dies or despawns. How many arrows you personally landed on
a monster is always tracked regardless of whether Enable is on (it only
controls the visual). When the monster dies, each landed arrow independently
rolls a chance to drop that same arrow type at the death location — the
chance scales linearly with your Bows skill level between
RecoverChancePercentLv0 and RecoverChancePercentLv100 (both in percent,
0–100).
Arrows that miss and hit terrain, trees, or buildings instead (not water)
also get a chance to turn into a pickup-able item right where they landed
instead of just staying stuck as vanilla's own embedded-arrow visual — this
scales the same way, between MissRecoverChancePercentLv0 and
MissRecoverChancePercentLv100. Only applies to arrows you fired; there's
no "pull arrows back out while they're still stuck" interaction either way.
Separately, arrow gravity itself can be reduced at higher Bows skill (flatter,
longer-ranged shots) — GravityOverride multiplies vanilla's own per-arrow
gravity value by a factor that scales between GravityLv1 (skill level 1)
and GravityLv100 (skill level 100). Applies to every bow arrow (normal
shots and all Hunter's Volley arrows alike); crossbow bolts are unaffected.
| Key | Default | Description |
|---|---|---|
Enable |
true |
Show monsters' arrows stuck in them, locally (hit tracking for recovery always runs regardless) |
EmbedDepth |
0.12 |
How deep (meters) the arrow visual sinks in — deeper than vanilla's own tree-embed depth (roughly 0.05–0.08) |
EmbedMax |
100 |
Max simultaneous embedded arrows shown per monster — oldest removed first past this |
RecoverChancePercentLv0 |
0 |
Per-arrow recovery chance (%) on monster death, at Bows skill level 0 |
RecoverChancePercentLv100 |
100 |
Per-arrow recovery chance (%) on monster death, at Bows skill level 100 — levels in between interpolate linearly |
MissRecoverChancePercentLv0 |
0 |
Recovery chance (%) for an arrow that missed and hit terrain/trees/buildings, at Bows skill level 0 |
MissRecoverChancePercentLv100 |
100 |
Same, at Bows skill level 100 — levels in between interpolate linearly |
GravityOverride |
true |
Toggle the Bows-skill-based gravity multiplier on/off |
GravityLv1 |
1.0 |
Gravity multiplier at Bows skill level 1 |
GravityLv100 |
0.5 |
Gravity multiplier at Bows skill level 100 — levels in between interpolate linearly |
Older builds stored recovery chance as a
0–1fraction underRecoverChanceLv0/RecoverChanceLv100— those keys are no longer read: if your config file still has them, they're harmless leftovers, and the newRecoverChancePercentLv0/RecoverChancePercentLv100keys (percent, 0–100) start over at their defaults.
[DoomFist] — Unarmed (bare fists) and Fist/Claw weapons
Triggered the same way as any other special attack (dedicated special-attack
key, or the vanilla secondary-attack key if no dedicated key is set) while
unarmed or wielding a fist/claw-type weapon. The swing's own secondary-attack
animation is replaced with the Knife's secondary-attack motion (the Knife
weapon itself, and its own special attack Smoke Vanish, are completely
unaffected by this — it only borrows the animation trigger), and that swing's
melee hit detection is turned off entirely. Cooldown is spent the instant the
swing starts (win or miss, matching Spiral Thrust's timing rather than
Hatchet Hook's) — scales from CooldownLv1 down to CooldownLv100 across
Unarmed skill level 1–100 (same two-point geometric interpolation as the
Crossbow reload-time scaling). Stamina cost is untouched — whatever the
equipped weapon's (or bare fists') own secondary attack normally costs.
The instant the swing's hit-trigger point is reached, a single area attack
fires at a point ImpactDistance in front of you (snapped to ground height)
— everyone within Radius gets hit once, using the same target rules as a
vanilla melee swing (no self-hit, no hitting tamed/friendly creatures or
other players unless PvP is enabled, enemies and aggravated tames always
get hit). Damage is the equipped weapon's own damage (quality/skill applied
— bare fists use the vanilla Fists damage) × DamageMult; knockback is that
weapon's own push force × KnockbackMult, directed outward from the impact
point — bosses take the damage but no knockback. Unarmed skill XP is granted
once per swing if at least one target was hit, same as a normal vanilla
melee swing. The impact plays Aftershock's own shockwave effect/sound
(resized to match Radius) once; Aftershock itself is untouched.
| Key | Default | Description |
|---|---|---|
Enable |
true |
Toggle on/off |
MinSkillLevel |
0 |
Minimum Unarmed skill level required (0 = no requirement) |
CooldownLv1 |
10 |
Cooldown (seconds) at Unarmed skill level 1 |
CooldownLv100 |
4 |
Cooldown (seconds) at Unarmed skill level 100 — levels in between scale geometrically |
ImpactDistance |
2 |
How far in front of you the impact point is (meters) |
Radius |
3 |
Area attack radius (meters) — the impact effect's visual size scales proportionally with this |
DamageMult |
2.7 |
Damage multiplier applied to the weapon's (or bare fists') own damage |
KnockbackMult |
4 |
Knockback multiplier applied to the weapon's own push force (5–10 recommended) |
AnimationSpeed |
1.0 |
Fixed Animator playback speed used for the swing's motion (the Knife's knife_secondary clip), overriding whatever speed the equipped weapon would otherwise play it at (1.0 = the Knife's own secondary-attack speed) — restored to normal the instant the swing ends |
Requirements
No other mod is required. See "Optional integrations" above for what changes if Warfare is also installed.
Credits
- Some special attacks in this mod were inspired by, or adapted from, sighsorry's SecondaryAttacks, used and modified with the author's permission. Many thanks to sighsorry.
- Quickstep is ported from SecondaryAttacks (
QuickstepSystem.cs, originally licensed under GPL-3.0). Core dash physics/stamina/animation-transition/invincibility logic follows the original; see the attribution comment at the top ofQuickstep.csfor the changes made when porting it into this project. - Hunter's Volley's fixed-fan multi-arrow spread pattern is based on the barrage-firing approach in SecondaryAttacks (
SecondaryAttackManager.ProjectileRuntime.cs,FireBarrage/SpawnBarrageShot), used with the author's permission; see the attribution comment at the top ofHuntersVolley.cs. - Dash is an original feature designed and implemented for this mod.
Changelog
1.2.3
- Added Dash — a short straight-line dash on its own dedicated key, independent of the equipped weapon and of the special attacks below; see [Dash]
- Added GuardCancel — pressing the vanilla block key while mid-swing with a melee weapon now cancels the swing (no damage/resource cost for that swing) and drops you straight into a normal vanilla block; see [GuardCancel]
- Added TranquilizerBolt for Crossbows — a toggleable tranquilizer bolt special attack that puts non-boss targets to sleep (with backstab bonuses on other hits) instead of dealing damage, plus Crossbow reload improvements (keep a loaded bolt through holster/relog, move/dodge no longer interrupt an in-progress reload, straight-line reload-time scaling) and Crossbows skill XP tuning; see [TranquilizerBolt] and [Crossbow]
- Added Hunter's Volley for Bows — a dedicated-key-only ready/cancel toggle that turns your next shot into a skill-scaled fan of extra arrows at reduced per-arrow damage; see [HuntersVolley]
- Added arrow embedding + recovery + gravity for all bow arrows (normal shots and Hunter's Volley alike) — arrows stick into monsters nose-first and follow them, can drop back at the kill location or (for misses) right where they landed, both chance-scaling with Bows skill, plus a Bows-skill-scaled arrow gravity reduction; see [ArrowEmbed]
- Added Crescent Wave multi-shot — at higher Swords skill, the same single swing fires an additional crescent (or several) in quick succession after the first, instead of just one; see [CrescentWave]
- Added Doom Fist for Unarmed (bare fists) and Fist/Claw weapons — a single ground-impact area attack on a skill-scaled cooldown, using the Knife's secondary-attack motion and Aftershock's shockwave effect without touching either; also added an
AnimationSpeedconfig so the swing's motion always plays at a fixed speed regardless of the equipped weapon's own speed settings (some fist weapons were playing noticeably slower than others), restored to normal the instant the swing ends; see [DoomFist] - Fixed SpinningSweep's
StaminaMult: it wasn't actually reducing stamina cost on the first spin or on the internal repeat-restart (vanilla consumed the weapon's own full secondary-attack stamina before the multiplier was ever applied), and the continuous-loop stamina deduction was reading the weapon's raw, unmultiplied value too — all three paths now consume exactly the weapon's secondary-attack stamina ×StaminaMult, once per spin. A follow-up fix also narrowed exactly when that multiplier applies: it was being applied to every vanilla secondary attack swing with a battle-hammer-type weapon equipped, even swings that end up not starting Spinning Sweep at all (on cooldown, skill level too low) — those now keep the weapon's full, unmultiplied vanilla stamina cost - TranquilizerBolt fixes: swapping back to a normal bolt now always works even while the swap-to-tranquilizer cooldown is running; each crossbow now correctly keeps its own loaded-bolt-type when switching between two crossbows; repeat tranquilizer hits on an already-sleeping target (including hits that land on the stand-in) no longer wake it without applying the stacked sleep time, and no longer sometimes land as real damage and wake it instead; the remaining-sleep-time number now actually renders on screen (an anchor/coordinate-space mismatch in the first screen-space attempt kept it positioned off-screen); a target that falls asleep mid-swing has its in-progress attack safely cancelled instead of landing a damage-free hit as it drops off; elemental/explosive bolts can no longer deal splash damage or apply status effects through their own secondary effects while tranquilized
- Hunter's Volley fixes: extra arrows now carry their own owner/weapon/ammo/damage data correctly (previously lost on some clones, which meant they weren't being counted for embedding/recovery), respect dev/cheat no-ammo-cost settings instead of always consuming arrows directly, and no longer fire backwards when they embed
- All special attacks' default config values updated to match this project's current tuning baseline (see each section below for the new numbers)
- Diagnostic-only logging (
[SS-DIAG]/[CW-DIAG]/[DF-DIAG]/[TB-DIAG]/[XB-DIAG]/[HV-DIAG]/[AR-DIAG]) removed now that the features they were added to verify are confirmed working; warnings/errors are unaffected
1.2.2
- Polearm / Atgeir: Triple Thrust → Spiral Thrust. The old version blocked the vanilla secondary attack and replayed the primary attack 3 times. The new version leaves the weapon's own secondary attack, motion, and multi-hit completely alone — it only switches this swing's attack instance to a horizontal spin, and adds scaling follow-up hits (1–5, by Polearms skill level) to whatever it hits
- 1H Club/Mace: Launch Slam → Concussion Blow. Airborne launch removed; replaced with a forced stagger + brief lockout on hit, gated by monster size and Clubs skill level (bosses excluded)
- Knife/Dagger: Sneak Ambush → Smoke Vanish. Charge-and-backstab removed; replaced with a smoke bomb that resets and suppresses aggro for a short duration
- Bastard Sword: Charge Slash → Crescent Wave. Hold-to-charge slash removed; replaced with a piercing crescent projectile fired alongside the weapon's normal (unmodified) secondary attack
- Aftershock redesigned: now a fixed-point, growing shockwave series immediately following the sledgehammer's own ground slam (previously a forward-advancing, shrinking wave pattern); wave count now scales with Clubs skill level (1–5)
- Added Quickstep: dodge-roll replacement ported from sighsorry's SecondaryAttacks (used with the author's permission), with per-weapon-category toggles
- SwordChain / QuadSlash: extra combo hits now gated by skill level (
HitLevel2/3/4) instead of always available - ImpactBurst: thrown axe now has a configurable spin animation and orientation correction for modded axes
- SpinningSweep / SpearPin: various tuning and stability fixes
- Removed the Unarmed (Knockback Chain) and Warfare Fist/Claw (Spinkick) special attacks — not present in this build
- Added stamina/eitr pre-checks so specials that don't have a normal secondary-attack animation don't fire (or consume cooldown) without enough resources
- Various weapon-detection fixes for modded weapon variants (Gold, Slayer, and other Deep North weapon lines)
1.2.1
- Fixed: mod not working after the Valheim 1.0 update (Unity 6)
- The game changed the signature of
MessageHud.ShowMessage, which caused aMissingMethodExceptionevery frame and stopped the special attacks from running - The mod was rebuilt against the current game assemblies
- The game changed the signature of
- Fixed the plugin version being logged as
1.0.0in the BepInEx log — it now matches the package version - No gameplay or config changes
1.2.0
- Counter Upper removed → replaced with Spinkick for Warfare Fist/Claw weapons (later removed in 1.2.2)
- Aftershock: VFX replaced with
vfx_sledge_iron_hit(sledgehammer swing shockwave ring) - Aftershock: Added
[Aftershock VFX]config section — individual toggles for each particle (Waves, Cloud, Splosh, TrollRock)
1.1.0
- Added Counter Upper for Warfare mod Fist weapons (later removed)
- Added Quad Slash for Claymore / THSwordKrom (4-hit combo, per-hit damage and speed config)
- Added Triple Thrust for Polearm / Atgeir (later replaced by Spiral Thrust in 1.2.2)
- Added Spear Pin for all Spear weapons (replaces Spear Rain) — pins enemy, slows movement
- Spinning Sweep now supports Polearms via
EnablePolearmsconfig option (later removed)
1.0.1
- Fixed Charge Slash Mouse4 hold charge bug
1.0.0
- Initial release
- 10 weapon categories with unique special attacks
- Configurable custom activation key — separate specials from vanilla secondary attack
- Per-weapon minimum skill level requirement
- Cooldown HUD with radial icons
- Charge bar HUD for Sneak Ambush and Charge Slash
- Fully configurable via BepInEx config
