Tips & Tricks – Stagger – RPG Maker MV

Yanfly Engine Plugins is a plugin library made for RPG Maker MV, a wonderful piece of software to help you make that role playing game of your dreams. You can find out more about RPG Maker MV here.

Stagger is a passive effect in the World of WarCraft that delays received damage across a few turns as a damage over time. While the character will still receive the same damage in the long run, the character will still be tankier by receiving less in the moment. Here’s how to recreate the effect in RPG Maker MV.

You can grab the copy/paste code here: 

Place this inside of your Damage Stagger passive’s notebox. Change the values in red to match your game’s settings.

<Custom React Effect>
// Check if the action dealt physical damage.
if (this.isPhysical() && this.isHpEffect() && value > 0) {
  // Default the target's staggered damage to 0.
  target._staggerDmg = target._staggerDmg || 0;
  // Calculate the amount of damage to reduce.
  var reduce = Math.ceil(value * 0.35);
  // Reduce that amount of damage from the actual damage.
  value -= reduce;
  // Add the Staggered Damage state.
  target.addState(162);
  // Increase the target's staggered damage amount by the amount reduced.
  target._staggerDmg += reduce;
}
</Custom React Effect>

Place this inside of the Staggered Damage DoT state’s notebox. Change the value in red to fit your game’s settings.

<Custom Regenerate Effect>
// Default the user's staggered damage to 0.
user._staggerDmg = user._staggerDmg || 0;
// Check if the user is alive and has staggered damage left.
if (user.isAlive() && user._staggerDmg > 0) {
  // Calculate the number of turns remaining for staggered damage.
  var turns = Math.max(1, user.stateTurns(stateId));
  // Calculate the amount of damage to deal this turn.
  var dmg = Math.ceil(user._staggerDmg / turns);
  // Reduce the user's staggered damage by that amount.
  user._staggerDmg -= dmg;
  // Reduce the user's HP by that amount.
  user.gainHp(-dmg);
  // Show an animation.
  user.startAnimation(2);
  // Display the damage popup.
  user.startDamagePopup();
  // Clear the user's results.
  user.clearResult();
  // Check if the user is dead.
  if (user.isDead()) {
    // If so, then collapse the user.
    user.performCollapse();
  }
}
</Custom Regenerate Effect>

<Custom Remove Effect>
// Reset the staggered damage to 0.
user._staggerDmg = 0;
</Custom Remove Effect>

Happy staggering!

Please wait while you are redirected...or Click Here if you do not want to wait.