The official VisuStella notetag help thread

● ARCHIVED · READ-ONLY
Started by Trihan 1458 posts Page 63 of 73 View original ↗
  1. Good day.... I use most Visustella script, kinda need help in my game.

    1. Visustella ATB (Wait):
    Is there any way to make a skill 100% instant cast? I already use <ATB After Gauge: 100%> Notetag, but there is still a slight delay that make other battler and enemy ATB advanced a bit.

    2. Making Bomb skill:
    I want to make some Bomb skill that the battler plant it on the ground (not a state) that will explode after 3 turns.
    Specific character's stats like MAT is recorded into variable first, then after 3 turns, all alive enemies on the battlefield will take indirect damage. Is there a way to efficiently in RPG Maker MZ?

    Thanks, really appreciate for the help
  2. Pretos said:
    Good day.... I use most Visustella script, kinda need help in my game.

    1. Visustella ATB (Wait):
    Is there any way to make a skill 100% instant cast? I already use <ATB After Gauge: 100%> Notetag, but there is still a slight delay that make other battler and enemy ATB advanced a bit.

    2. Making Bomb skill:
    I want to make some Bomb skill that the battler plant it on the ground (not a state) that will explode after 3 turns.
    Specific character's stats like MAT is recorded into variable first, then after 3 turns, all alive enemies on the battlefield will take indirect damage. Is there a way to efficiently in RPG Maker MZ?

    Thanks, really appreciate for the help

    1. Try asking VisuStella if that's a bug or just something you should live with? Maybe you could also check if in the plugin settings that deal with how it calculates the speeds etc, you could put that if a battler is affected by a state then it doesn't gain more gauge. And then make your instant cast skill give that (empty) state to all other battlers. And then your all other skills (including attack + guard + item use) remove that state from all battlers when used. LOL.

    2. Hmmm, make an action sequence where the battler leaves the bomb as a picture (and put the MAT in a variable) + turn a switch on. Then you have a VisuStella common troop event that has a page with turn start that checks every turn if the bomb switch is on and adds to a countdown variable. When the countdown reaches what you want, then you have a conditional that shows an animation, removes pic and deals damage to all enemies with your variable value (+ turns off bomb switch and resets countdown variable to 0 // you also need to do the resets at the start/end of battle in case battle ended before bomb explodes). If you want to be able to leave more than one bomb, you need a more complicated event.
  3. @Pretos
    1. There's no instant cast with the ATB system. The best you can do is set the skill's Speed to something like 200. The notetag <ATB After Gauge: x%> isn't for instant casting, it's for resting the gauge after you use a skill/item:
    Screenshot 2025-01-08 172505.png

    2. Do it this effectively, it will have to be a state. Use an action sequence to place a picture of the bomb on the field, and give the bomb state to all foes. (To keep the state hidden, use the notetags: <Bypass Combat Log> <Hide State Popup>)
    Make the state last 3 turns, and in the state's notes put something like:
    Code:
    <JS On Expire State>
    var damage = origin.mat;
    $gameTemp.requestAnimation([target], x);
    $onceParallel(y);
    target.requestMotion('damage');
    target.gainHp(-damage);
    target.startDamagePopup();
    </JS On Expire State>

    Replace 'x' with the animation id of the explosion, and replace 'y' with the common event id that removes the bomb picture.
  4. @CrocPirate What do you mean with that? If your skill speed is at 0, it will jump straight to the end of the cast gauge when you select a skill. It only takes time to go through the cast gauge if you've set a negative speed. And after the action that notetag sets the user's charge gauge back to 100%, giving them a new turn.

    EDIT:

    Spoiler
    With TPB, skills and items with negative speed values will cause the battler to enter a "casting" state, meaning they have to wait extra time before the action takes off. With this delayed action execution, one might assume that if there is a positive speed value, the battler would require less time for their next turn.

    However, this isn't the case with RPG Maker MZ's TPB. By changing it to ATB, skills and items with positive speed values will have an impact on how full their ATB Gauges will be in the following turn. A value of 2000 will put the gauge at 50% full, 1000 will put the gauge at 25% full, 500 will put it at 12.5% full, and so on. Notetags can also be used to influence this.

    The dude's problem was that with the notetag other battlers seem to (somewhat) randomly nudge a bit forward before it registers that the current battler is back at 100% charge and gives a new turn to stop everything.

    EDIT2:

    And just to be clear, I am aware that it's not a true instant cast :D But it serves a similar purpose.
  5. rpgLord69 said:
    What do you mean with that? If your skill speed is at 0, it will jump straight to the end of the cast gauge when you select a skill
    @rpgLord69 Yeah, I was thinking about that last night. Now I wondering what did Pretos meant by instant cast in the ATB system.
  6. Sorry for being not clear. This what I mean by ATB slight delay:

    As you can see, the enemies bar is still moving slightly even with instant cast

    Spoiler
    Screenshot (187).png
  7. No I understood what you meant, but like I said earlier, I think your only options (unless you can deobfuscate and edit the code) are to ask VisuStella or try and see if you can get rid of that by changing the mechanics settings in the ATB plugin.

    I quickly tried making it so that it returns 0 for their speed/acceleration/whatever if a switch is ON, then made the "instant cast" turn that switch ON and then in the BattleCore settings made a global action effect to turn that switch OFF. It got rid of that slight movement, but then it would no longer advance after selecting the next skill after the instant cast :D But maybe someone else knows how to make it work there.
    (edit: now that I think about it, the pre-action effect wasn't probably launching, because it would launch only after getting to the end of the cast gauge, which wasn't happening since it was still registering the speed as 0, but it might work if you can turn the switch OFF at command selection)
  8. Ok @Pretos, I think I found the solution to your problem. It's a little involved, but it works.

    1. First thing, first: for all the skills you want the user to act right after without anyone else moving, use the <ATB After Gauge: 100%> notetag (you don't have to alter the skill's speed, so you can leave it to 0). But each of these skills will have an action sequence. And in the action sequence you must add a state to all alive opponents/all friends but user. It will look like this:
    Screenshot 2025-01-10 085322.png

    2. The actual state is nothing special. Make sure you set the Restriction to: Cannot Move, Removal Conditions to: Remove after battle, and Auto-Removal Timing to: Action End 1 turn.
    Then in the state's notes, add this:
    Code:
    <Hide State Popup>
    <Bypass Combat Log>
    <Max Turns: 1>
    The whole thing should look like this:
    Screenshot 2025-01-10 085749.png

    3. Finally, in the notes section of all the classes that use these skills (And the notes section of enemies that use these skills) add this block of code:
    Code:
    <JS Pre-Apply as User>
    if ([a, b, c, d].indexOf(this.item().id) <= -1) {
        $gameTroop.aliveMembers().forEach(enemy => enemy.removeState(x));
        $gameParty.members().forEach(party => party.removeState(x));
    }
    </JS Pre-Apply as User>
    Replace 'x' with the state id.
    Replace 'a', 'b', etc with the id of all the skills that have this "instant cast" property. You can add as many or as little you want.

    And here's proof that it works:
  9. Isn't the problem with that that (unless you disable the stun option) it slams the battlers to zero charge gauge when a state with the restriction is applied? That's why I thought that it would need to be done through the mechanics settings. But if that's not a problem, then cool! :thumbsup-left:
  10. Hi! I'm using the Visual Novel Busts plugin and I was just wondering if there was a way to make a bust "jump" in place? I've tried the movement plugin commands but none seem to work. If anyone has any idea on how to do this, that would be much appreciated!
  11. Christoffer said:
    Hi! I'm using the Visual Novel Busts plugin and I was just wondering if there was a way to make a bust "jump" in place? I've tried the movement plugin commands but none seem to work. If anyone has any idea on how to do this, that would be much appreciated!

    Well, a jump effect is created by moving up while decelerating and then moving down when accelerating, I think. The busts are just pictures, so you can also control them with the event commands and scripts. Does it look bad if you just use move picture up with slow end and then move picture down with slow start? You can also try making some kind of loop with scripts. Also, VisuStella has picture effects plugin that has a premade jump effect.
  12. Aah! I didn't realise they had a picture effects plugin and that totally worked, thank you!
  13. Hello! I'm trying to make a state that stores damage dealt throughout the turns it is active, and when the effect expires, it releases the stored damage all at once in a burst.

    I have a feeling I need to use the <JS On Expire State> to trigger the burst damage at the end, but my only issue is setting up a variable to store the damage and have it repeatedly update over the turns.
  14. EXPitaya said:
    only issue is setting up a variable to store the damage and have it repeatedly update over the turns.
    in that case you'd want to a notetag that runs as the battler is targeted for a skill and either use the script call to increase a game variable baded on the damage dealt or make a property on the battler to hold the value.

    I dont see it in the Visustella battle core help document, but the </JS Post-Damage as Target> should have a "value" variable provided that you can access to get the damage done by the triggering skill
  15. @EXPitaya
    Put this in your state's notes:
    Code:
    <JS On Add State>
    target._trackDmg = 0;
    </JS On Add State>
    
    <JS Pre-Damage as Target>
    if (this.isHpEffect() && value > 0 && !this.isRecover()) {
       target._trackDmg += value;
       value = 0;
    }
    </JS Pre-Damage as Target>
    
    <JS On Erase State>
    if (target._trackDmg > 0) {
       $gameTemp.requestAnimation([target], x);
       target.requestMotion('damage');
       target.gainHP(-target._trackDmg);
       target.startDamagePopup();
       delete target._trackDmg;
    }
    </JS On Erase State>

    Replace 'x' with the animation id you want to play when the target takes damage.
  16. Thanks for the advice! Yeah I didnt notice the Post Damage as Target note tag before this haha
    Must have glazed it over
    Robro33 said:
    in that case you'd want to a notetag that runs as the battler is targeted for a skill and either use the script call to increase a game variable baded on the damage dealt or make a property on the battler to hold the value.

    I dont see it in the Visustella battle core help document, but the </JS Post-Damage as Target> should have a "value" variable provided that you can access to get the damage done by the triggering skill

    Thanks a million!
    CrocPirate said:
    @EXPitaya
    Put this in your state's notes:
    Code:
    <JS On Add State>
    target._trackDmg = 0;
    </JS On Add State>
    
    <JS Pre-Damage as Target>
    if (this.isHpEffect() && value > 0 && !this.isRecover()) {
       target._trackDmg += value;
       value = 0;
    }
    </JS Pre-Damage as Target>
    
    <JS On Erase State>
    if (target._trackDmg > 0) {
       $gameTemp.requestAnimation([target], x);
       target.requestMotion('damage');
       target.gainHP(-target._trackDmg);
       target.startDamagePopup();
       delete target._trackDmg;
    }
    </JS On Erase State>

    Replace 'x' with the animation id you want to play when the target takes damage.
  17. Does anyone here have the VS Icon Balloons plugin??

    I’m using custom character sprites, and the balloons are too high. I saw that this plugin has an ‘Icon Balloons Offset’ parameter, and I was wondering if this changes the xy of the actual balloon, or only the icon that goes over it.
  18. LuxInterior said:
    Does anyone here have the VS Icon Balloons plugin??

    I’m using custom character sprites, and the balloons are too high. I saw that this plugin has an ‘Icon Balloons Offset’ parameter, and I was wondering if this changes the xy of the actual balloon, or only the icon that goes over it.
    IT would be faster to just change the Y coordinate up or down a hundred pixels and find out. I have this plugin but have not yet used it. Sorry.
  19. ZimXero said:
    IT would be faster to just change the Y coordinate up or down a hundred pixels and find out. I have this plugin but have not yet used it. Sorry.

    Ah yeah, should’ve clarified - I don’t own that plugin, was hoping to see if it can move the balloons before I purchase it.
  20. Hello fellow RPG Makers, I come to you because i am a code noob and need help making sure I can program a potential skill right. First, let me set the stage for the skill.

    I would like to create an elemental skill that has a chance to apply a status effect ONLY if the target is weak to the element in question. I know that you can add a state on a chance base in general but i want this to ONLY apply if the target's element rate is over 100%.

    I assume using the Battle Core it's possible using one of the many "pre-apply" "pre-damage" etc notetags but im not sure at which one I'd need and then expanding on that what code i'd even need to do that, if possible.

    EX: You cast Fire on the enemy. Enemy's element rate to Fire is 105%. The skill now has a 20% chance to inflict Burn on the enemy. But only because that enemy is weak to fire. (I am sorry if I am terrible at explaining it)

    This is based off of the Shin Megami Tensei series, specifically SMT V, in which you gain access to skills like "Hama" which do Light element damage but have a chance to insta-kill the enemy but ONLY if the enemy is weak to light.

    Any help would be appreciated.