Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

[YERD] Custom Status Properties

Custom Status Properties
Last Update: 2009.04.15
By: Yanfly

Introduction
Status 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.15 - Finished script and publicized.
  • 2009.04.13 - Started on script.

Screenshots
csp_title.jpg


Script
Click here to view it.

Instructions
Since this is a big script, I’ve included a number of screenshots to explain everything (hopefully).

---------

csp_howto1.jpg


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.

---------

csp_howto2.jpg


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.

---------

csp_howto3.jpg


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.

---------

csp_howto4.jpg


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.

---------

csp_howto5.jpg


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.

---------

csp_howto6.jpg


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.

---------

csp_howto7.jpg


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.

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.

---------

csp_howto8.jpg


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 Conditions
Just give credit where due.

Credits and Thanks
- Fabulousness

Originally Found Here: Here
 

bukai

Member

dude l love your scripts.

one suggestion

please add something like <stack x>
that means the state can be multiple (x) times on the target and the effect stacks.
 
Very good script.

One question, there is a cri, eva, hit and odds.

What this odds is and what it does?

# <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>
# These raise and lower the HECO stats by a percentile value if using "per" or
# a static value if using "add" or "sub" tags. Value changed is equal to x.
# <<STACKABLE>>
 
I would be interested of that because it is easy to create a hidden parameters what I need like a skill=hit, eva=luck, cri=violence...

I wonder what this odds means. I have tested it when battle but I can't make it clear...
 

Taylor

Sponsor

St-st-st- STACKABLE STATS SFAHSASDFD

i think i love you <3

Erhem. Anyway. I noticed a small bug with this. When I applied a stackable stat to a character from the menu via a skill, the stat did stack - but the buzzer SE played as if the skill was unusable. Kind of misleading, but not a particular issue as I don't think most people will have stackable stats apply-able outside of battle.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top