Custom Status PropertiesLast Update: 2009.04.28By: YanflyTHIS SCRIPT IS NOT COMPATIBLE WITH TANKENTAI!!! IntroductionStatus effects are by far the most underlooked and undervalued component in many RPG's, both commercial and RPG Maker project. And for that reason, they're also the most underused component in any RPG, too. However, this is not to fault towards the RPG's themselves, but rather, the people creating the status effects. Status effects are often boring, don't do nearly enough for what they're worth, and in RPG Maker projects, there's very little control you have over them. This script grants you that control, improves flexibility, and allows you to do things normally not capable before. And if you're even willing to script a little bit, there's a plethora of potential status effects you can create so long as you have the imagination and scripting experience.
Update History- 2009.04.29 - Added state stacking. <max stack x>
- 2009.04.19 - Upgrade pack 1.
Added shorter way to use atk/def/spi/agi_f rates.
Added a state-type hash for the module. Optional usage.
Included Add/Sub set values for atk/def/spi/agi.
Included Per/Add/Sub for Hit/Eva/Cri/Odds.
Included Undead HP/MP. Added Absorb HP/MP.
Included Death Upon HP/MP Damage/Healing.
Included HP/MP Pain/Healing Rates. - 2009.04.15 - Finished script and publicized.
- 2009.04.13 - Started on script.
Screenshots
ScriptClick here to view it. InstructionsSince this is a big script, I’ve included a number of screenshots to explain everything (hopefully).
---------

The first addition to the script is the ability to change MaxHP and MaxMP via status effects. You can change it through percentage or through a set value. Your HP and MP bars will reflect the new maximum values and whatnot. If current HP and current MP exceed MaxHP and MaxMP, they obviously readjust to the proper values (although, I noticed KGC's version did not do this).
<maxhp per x> x is the value which MaxHP retrieves as a percentile increase.
<maxhp add x> x is the value which MaxHP is added to.
<maxhp sub x> x is the value which MaxHP is subtracted by.
<maxmp per x> x is the value which MaxHP retrieves as a percentile increase.
<maxmp add x> x is the value which MaxHP is added to.
<maxmp sub x> x is the value which MaxHP is subtracted by.
---------

I've always been bothered by the fact that the status editor limited us to 200% at most. These tags allow you to go past the usual limit (to whatever numeric value you type in) and all that limits you is the game limits themselves. However, should you use KGC's Limit Breaker, you can exceed 999 pretty easily. This script's adjusted to be compatible with KGC's Limit Breaker if you have it. It goes to 999 max otherwise.
<new atk rate x> x is the percentile you wish to increase ATK by.
<new def rate x> x is the percentile you wish to increase DEF by.
<new spi rate x> x is the percentile you wish to increase SPI by.
<new agi rate x> x is the percentile you wish to increase AGI by.
To raise the ADSA stats by a set value, you can use the following tags with your status effects to produce the desired effect.
<atk add x> x is the value which attack is added to.
<def add x> x is the value which defense is added to.
<spi add x> x is the value which spirit is added to.
<agi add x> x is the value which agility is added to.
<atk sub x> x is the value which attack is subtracted by.
<def sub x> x is the value which defense is subtracted by.
<spi sub x> x is the value which spirit is subtracted by.
<agi sub x> x is the value which agility is subtracted by.
For the minor stats (Hit Rate, Evasion Rate, Critical Rate, and Odds rate), you can do similar and raise those via a percentage or a set value.
<hit per x><hit add x><hit sub x>
<eva per x><eva add x><eva sub x>
<cri per x><cri add x><cri sub x>
<odds per x><odds add x><odds sub x>
I think by now, I don't need to explain further on how x modifies those attributes.
---------

One of the removed features from RPG Maker XP was HP/MP regeneration and degeneration. All that remains in VX was HP degeneration at an uncontrollable 20%. Well, now you can do more with HP/MP degen and regen by adding them into your status window's notebox. You can increase/decrease those values via a percentile or a set amount. Control is at hand here.
<hp degen per x> x is the percentile of MaxHP that HP drops by.
<hp degen set x> x is the set value which HP drops by.
<hp regen per x> x is the percentile of MaxHP that HP heals by.
<hp regen set x> x is the set value which HP heals by.
<mp degen per x> x is the percentile of MaxMP that MP drops by.
<mp degen set x> x is the set value which MP drops by.
<mp regen per x> x is the percentile of MaxMP that MP heals by.
<mp regen set x> x is the set value which MP heals by.
---------

Some state effects can also stack. By setting <max stack x>, you can set the number of times a state can stack. By default, everything has a maximum stack of of 1. Stacking a state more than once will increase its effect. For states that increase by a percentile, the stack effect will increase its effect after a difference with 100. This means that if a state with 110% attack rate gets stacked, the 10% gets multipled instead of the full 110%. Stacking it twice will get 120%. Thrice nets 130%. Set changes will stack completely. +50ATK will stack as +100, then +150, and so on. Max stack will set the maximum amount of times the state can stack.
<max stack x> x is the value the state can stack.
---------

Now onto the more unusual stuff. The immortality tag grants the battler immortality so long as the status effect remains. What does that mean? The battler is unable to die, as per the definition of immortality. This means that the battler can reach 0 HP but can still perform actions and just, well, be immortal. However, remove that status effect (and if there are no other immortality status effects on), that battler goes plop onto the floor.
<immortality> Grants the battler immortality. Unable to die even if HP reaches 0.
---------

Here's another unusual effect. You can make some battlers vanish from battle. Vanished characters cannot be damaged, perform actions, be the target of things, etc. Even if you can somehow target that battler through a game mechanic, the targeting will be automatically redirected. Once the battler vanishes, all status effects with durations on them are removed and all unique effects that would normally occur are temporarily disabled. If an enemy is vanished from battle and it's the only one left, it's considered a victory for the player. If a player's character is vanished from the party as the only member left, it's considered a loss. In a way, it's a temporary death effect that allows the battler to return after the status effect wears off on its own.
<vanish> Causes the battler to vanish until the status effect wears off.
---------

Those who are tired of berserk only using normal attack can now tack on this tag instead. This makes the battler function like auto battle was checked. Of course, this means nothing if it's on an enemy character, but for actors, it can vouch for some interesting battle experiences. For those that don't know how auto battle works, it runs off pre-made AI and allows the characters to use skills in addition to regular attacks.
<auto battle> Causes the battler to perform as if auto battle was checked in the actor's tab.
---------

Now you can have your status effects reduce damage, split damage, or just completely nullify it between HP and MP. Those curious as to how this works, it first calculates the general HP damage, then throws it past Super Armour and Invincible HP, any remaining amount of HP damage will have a portion of it converted to MP damage. MP Damage then goes through a similar process with Super Barrier and Invincible MP. Any remaining amount of MP damage will have a portion of it go back to HP damage. The process doesn't loop. Note that not every status effect will go through all of these factors. Which process it goes through will depend on which tags you have on your status effects.
<super armour> Reduces HP damage by a common percentile and set value in the module.
<invincible hp> Prevents any HP damage dealt at all. Does not prevent HP costs, manual HP adjustments, or editor-based HP adjustments.
<hpdmg to mpdmg x> x is the percentage of HP damage that is transferred over to MP damage.
<super barrier> Reduces MP damage by a common percentile and set value in the module.
<invincible mp> Prevents any MP damage dealt at all. Does not prevent MP costs, manual MP adjustments, or editor-based MP adjustments.
<mpdmg to hpdmg x> x is the percentage of MP damage that is transferred over to HP damage.
When doing the HP <-> MP conversions, if there isn't enough HP or MP, the damage will spill back into its original pool. This means if you take 100 damage by a 50% split and you only have 20 MP, you'll take 80 HP damage instead of 50. It's mostly stuff that should work under common sense.
In addition to reacting to damage and reducing it, you can inflate or deflate the damage or healing received with these following tags. They can cause damage to be higher, lower, or even kill instantly upon receiving.
<hp pain rate x>, <hp heal rate x>
This raises or lowers the amount of HP damage or healing the battler will take in. This is calculated above the rest of the HP modifying attributes.
<mp pain rate x>, <mp heal rate x>
This raises or lowers the amount of MP damage or healing the battler will take in. This is calculated above the rest of the MP modifying attributes.
<death on hp dmg>, <death on mp dmg>
If dealt any HP or MP damage (for the respective tags, the affected battler will die instantly (or if the battler is immortal, HP dropped to 0).
<death on hp heal>, <death on mp heal>
Similar to the above, if healed for HP or MP, the affected battler will die instantly (or if the battler is immortal, HP will be dropped to 0).
Here are some things you can edit in the module.
YE::BATTLE::SUPER_ARMOUR_PER, SUPER_BARRIER_PER
- Sets the percentile of reduction for HP and MP damage respectively.
YE::BATTLE::SUPER_ARMOUR_SUB, SUPER_BARRIER_SUB
- Sets the subtractive value of HP and MP damage respectively.
YE::BATTLE::SUPER_ARMOUR_MIN, SUPER_BARRIER_MIN
- Sets the minimum possible value damage can be reduced to for HP and MP damage respectively.
---------

The absorb tags allow the attacker to absorb damage from foes. You can selectively choose for it to be for HP or MP. If you'd like for a status effect to have both, just add both tags! Easy as that. Absorb damage will trigger for both attacks and skills.
<absorb hp>
If the attacker produces HP damage, the damage will be absorbed.
<absorb mp>
If the attacker produces MP damage, the damage will be absorbed.
---------

The undead state prevents the battler from receiving healing. Instead, it'll convert it to damage based on the percentage rate you set for them. For example, if you use <undead hp 80> and Healing Signet would heal for 100 health, it'll deal 80 damage instead. The remaining healing is then discarded. You can create some pretty tricky status effects such as <undead hp 200> to make enemies take double damage from healing. Ultimately, this is to allow the user control over the healing to damage conversion rate.
<undead hp x>
When the battler receives HP healing, it's converted to HP damage through x percentage rate.
<undead mp x>
When the battler receives MP healing, it's converted to MP damage through x percentage rate.
---------

These tags are all properties you've seen elsewhere in the database except for status effects. They each produce different effects but the effects are identical and enable their respective properties. You can expect them to do what they have to do. The only new effect on that list is <anti state>.
<super guard>
This causes the battler to take 25% damage instead of 50% damage when guarding.
<pharmacology>
If you can spell it right, it'll allow the battler to produce 200% item effectiveness.
<fast attack>
If a battler attacks, the battler will strike much earlier than other characters.
<prevent critical>
This status effect will protect the battler from receiving any critical hits.
<double exp gain>
This status effect will double the experience gain for the battler at the end of battle.
<half mp cost>
This reduces MP cost by one half, exactly the same as what you'd see from the equip properties.
<anti state>
This prevents any new states from being added to the battler regardless of their resistances or helpfulness.
---------

Like any important part of a custom Yanfly Engine ReDux script, here's the part for the Lunatics. Similar to Custom Damage Formula and Custom Skill Effects, Custom Status Properties has tags that leave you a plethora of potential if you're willing to get down and dirty with the scripting (hey, scripting's fun). While Custom Damage Formula only had one custom tag and Custom Skill Effects has three, Custom Status Properties actually has five of them! There's five ways to trigger these effects and I'll explain them thoroughly instead of leaving you to understand them on your own like for the other two scripts.
<apply effect x>
Apply effects occur whenever that status effect is applied to a battler. The effect is triggered through normal status applying means, scripting, event editor, and just about anything that tacks on a status effect. This will not trigger if the battler has vanished.
<while effect x>
While effects occur every turn the status effect is in place. They occur after the battler's turn is over even if the battler did not act. In other words, they'll keep functioning so long as they're on the battler. This will not trigger if the battler has vanished.
<react effect x>
React effects occur whenever the battler is affected by an attack or skill. React effects can also be triggered by other react effects (if you allow for it to happen). In other words, you can think of it essentially as a counterattack status effect property. This will not trigger if the battler has vanished.
<leave effect x>
Leave effects occur when the state heals itself naturally, even if the state fails the remove chance. This effect does not trigger if manually if the status effect is removed via scripting, the event editor, or by in-game directions. In the event that the state fails the remove chance, the leave effect will trigger again the next time this state can naturally remove itself. This will not trigger if the battler has vanished.
<erase effect x>
Erase effects will occur whenever the status effect is removed. Like the apply effects, this will trigger through normal in-game status removing means, scripting means, event editor, and just about anything that would remove a status effect. This will not trigger if the battler has vanished.
---------
And for those who are unsatisfied with the default state probability rates, you can manually adjust them in the module.
YE::BATTLE::STATE_A, STATE_B, STATE_C, STATE_D, STATE_E, STATE_F
- These values set the success rate of their respective letters.
Notes <Solamarle> ... it looks like Jiu has glasses.
<Solamarle> ... and Konami hit points.
Compatibility - Works with KGC Limit Breaker
Please report any compatibility issues and I'll try my best to fix them.
Terms and ConditionsJust give credit where due.
Credits and Thanks- Fabulousness
Originally Found Here: Here
This post has been edited by Yanfly: Jun 14 2009, 08:15 PM