Eval Collection: Request Page

On this page you can request Eval Collection code snippets.

Please note:

  • Be as specific as you can be about your request. Act like you’re trying to explain it to someone who has no idea.
  • Don’t expect me to know every game/mechanic out there. It’s not enough to say “The skill, that x uses in the game y”.
  • Please try to limit your requests to 1 or 2 at a time.

118 thoughts on “Eval Collection: Request Page

  1. Eval Request: A channeled skill that builds up power with either how many other states are on you or just certain states. Like if you use a skill that puts the state Aiming and the state Ready on you it does more damage than without those two states. Or even just a channeled skill that builds up power the longer you channel it. Wait, even just a channeled skill in general.

    Like

      1. Hey alistair, i was wondering if you could help me figure something out? I cane across you helping someone out in a youtube comment. I looked for help pretty much everywhere but no one was able to solve it. I’m making a tanking character for my game and have given her a skill called hexdrinker from yanfly tips and tricks. The skill gives the user a shield if their health falls below 30%

        I was looking for a way to have the shield be given to the rest of the party instead of the user. I know you’re probably busy but this will help me out so much

        The code to the state is below

        // Default the Hexdrinker’s cooldown to 0.
        user._hexdrinkerCooldown = user._hexdrinkerCooldown || 0;
        // If the Hexdrinker’s cooldown is greater than 0…
        if (user._hexdrinkerCooldown > 0) {
        // Then decrease its cooldown.
        user._hexdrinkerCooldown -= 1;
        }

        // Default the Hexdrinker’s cooldown to 0.
        target._hexdrinkerCooldown = target._hexdrinkerCooldown || 0;
        // Check if the action dealt magical HP damage and if the target’s current HP rate is under 30%. Also check if there is no cooldown on the Hexdrinker.
        if (this.isMagical() && target.result().hpDamage > 0 && target.hpRate() = 0 && target._hexdrinkerCooldown <= 0) {
        // The amount of points for the absorption barrier.
        var barrier = 250;
        // How many turns the barrier will last.
        var turns = 3;
        // Make the target gain barrier points for those turns.
        target.gainBarrier(barrier, turns);
        // Set the cooldown for the Hexdrinker.
        target._hexdrinkerCooldown = 5;
        // Play an animation on the target.
        target.startAnimation(53);
        }

        Like

  2. How about a skill that deals more damage for each negative status ailment the enemy is inflicted with? Like “Skill X” deals +10% more damage if the enemy is poisoned, and +20% if the enemy is poisoned and blinded, and so on.

    Like

    1. The engine by itself doesn’t know if a state is “positive” or “negative”. You can however use Yanfly’s Damage Core to achieve that effect.

      You can see a sample notetag in this picture: http://fs5.directupload.net/images/160203/wk57trbz.png

      For each state that you want to check, you’ll need another
      if (target.isStateAffected(x)) {
      value *= 1.1
      }
      where x is the state’s ID.

      value *= 1.1 will raise the damage to 110%, so basically it’s +10%.

      Like

  3. Eval request: A skill that applies a state to the caster if they hit an enemy with its weakness. For example Hero casts Fire on Slime, Slime is weak to fire so the Hero gains x state. Is that feasible?

    Like

    1. Use this in the skill’s notebox:

      <Post-Damage Eval>
      if (target.elementRate(x) > 1) {
      user.addState(y);
      }
      </Post-Damage Eval>
      

      Set x to be the Element ID of your skill. Set y to be the ID of the State to apply.

      Like

  4. Not sure if this is feasible with just evals. I’d recommend using action sequences for that. Make a condition whether the user has the desired state first and then check if Math.random() < x where x is your percentage (e.g. 0.2 = 20% or 0.66 = 66%). If the skill passes both checks just add another action animation and action effect.

    Like

    1. Could you make a screenshot or a pasterbin about that example ? I’m interested but I’m a noob with action sequence stuff.

      Like

  5. I have two I thought might be fun to have.

    1. Similar to the Wedding Band you currently have. A couple of items that are paired and worn by two members of the party grant a small boost to certain stats. If one of the wearers should die the other will gain a 100% boost to all their stats for 3 turns, before taking massive damage [no more than 80% of their CURRENT HP, not MAX]. “Berserk” effect is removed should the other wearer be revived.

    2. Final Fantasy 11 had an interesting mechanic where each job had two unique skills that they learned as they leveled. The Red Mages of the game were masters of the MP Manipulation. Their first skill was to “Chain Spell”, the ability to cast one spell one right after the other without having any wait or cooldown times until their MP was depleted. This was their desperation move for it took two hours to regenerate. But if it was paired with their second skill, “Convert”, the Red Mage was a force to recon with. “Convert” filled the MP bar using their HP, however much MP needed to replenish the bar was taken from the HP bar without killing the user. Used wrongly the user can be left very vulnerable. When used with Chainspell the RM could unleash a devastating amount of magic in a short amount of time and then replenish their MP at will using Convert, since it has a much shorter regen rate.
    Would there be a way to make Chain Spell and Convert type skills?
    Convert can be used for both healing the user as well as replenishing the MP bar.
    Chainspell can be used for a set number of turns where the user can cast spells for no MP consumtion, maybe?

    Like

    1. For Chainspell you can just set the MP Costs to 0% for a few turns in the editor.

      As far as I understood Convert swaps HP and MP values with each other. This damage formula should work:

      <damage formula>
      var storage = [a.hp, a.mp];
      a.setHp(storage[1]);
      a.setMp(storage[0]);
      value = 0;
      </damage formula>
      

      Your first request sounds tricky. I’m trying to figure that one out.

      Like

  6. Lava Lash is a shaman skill from World of Warcraft that deals damage with your off-hand weapon.
    Let’s say a character in MV has dual wield trait and two weapons. The main weapon gives 50 atk and the off-hand weapon gives 40 atk. The damage of Lava Lash would be 40, not 90.

    It would be so nice if you could tell me, at least, how to get the off-hand weapon atk value.
    Thanks in advance!

    Like

    1. Try this in the damage formula:

      $dataWeapons[a._equips[1]._itemId].params[x]
      

      Replace x with the number that refers to the param that you need.
      0 = HP;
      1 = MP;
      2 = ATK;
      3 = DEF;
      4 = MAT;
      5 = MDF;
      6 = AGI;
      7 = LUK;

      Liked by 1 person

  7. I don’t know if it could be done or not with Yanfly plugin Row formation with Javascript so I will ask you if it’s possible : “if all the battlers in the front row collapse, then the battlers in the middle row go to the front row, and the battlers in the back row go to the middle row.” Sorry for the noob question.

    Link to the plugin : http://yanfly.moe/2016/01/02/yep-54-row-formation/

    Like

      1. Allright, thank you for taking your time to reply to me and consider my request.
        At least now, I won’t have to bang my head to know if it’s possible or not anymore to do.

        Like

  8. Hello I have been having a hard time recreating Trick Room from Pokemon in my RPG Maker. The effects of Trick Room is area of effect and it reverses the move order within each priority bracket so that Characters with a lower Speed stat attack first, whilst those with a higher Speed stat will attack last. Thanks in advance to taking the time to reading my request and hope to hear from you soon.

    Like

    1. I have an idea but I’m not sure if it completely works. I’m assuming that you use one of Yanfly’s Battle Systems. I’m using CTB so I’ll explain with it in mind. Change the “Per Tick” value to this:

      $gameSwitches.value(x) === true ? BattleManager.highestBaseAgi() - user.agi : user.agi
      

      Replace x with a switch ID. You will just have to make sure that your Trick Room skill turns that switch on. While it is on, the speed of the battlers with higher AGI values will be very low, while those with low AGI values will have almost no penalty and thus will be very fast.

      This should work in theory. Feel free to chat with me if you can’t get it to work.

      Like

    1. Use this code in your state’s notebox. Remember to change the MP restoration. In my case it restores 35 + 15% MAT.

      <Custom Conclude Effect>
      // Only go on if the attack missed or the target evaded it
      if (target.result().missed || target.result().evaded) {
      // The amount of MP restored
      var mpRestore = Math.floor(35 + origin.mat * 0.15);
      // Restore MP
      origin.gainMp(mpRestore);
      };
      </Custom Conclude Effect>
      

      Edit: For the chance of missing an attack just decrease Hit Rate.

      Like

      1. Apply a state to whom? Attacker or target?

        <Custom Conclude Effect>
        // Only go on if the attack missed or the target evaded it
        if (target.result().missed || target.result().evaded) {
        // The probability of adding the state
        var chance = 0.5
        // The state to be added
        var id = 1
        // Add State
        if (Math.random() < chance) {
        user.addState(id);
        };
        };
        </Custom Conclude Effect>
        

        Make sure to alter the probability (1 = 100%, 0.5 = 50%, 0.25 = 25%, …) and the ID of the state.
        If you want the origin to have the state added replace user.addState(id) with origin.addState(id).

        Like

  9. Echo is a mesmer enchantment spell from Guild Wars. This skill becomes a replica of the next spell you use, and changes back to echo after 30 seconds (echo cannot copy itself).
    It’s really useful if copies powerful spells with long cooldown.

    http://wiki.guildwars.com/wiki/Echo

    It would be really nice having this in MV. Thanks in advance!

    Like

  10. So I would activate Echo first, use a strong spell in the next turn, and then I’d use Echo again to copy that skill?

    Or is Echo active all the time and I don’t have to use it first?

    It does sound tricky but I’ll definitely look into it. Sounds like an interesting ability.

    Like

    1. Here is a video of Guild Wars. The mesmer loses the skill Arcane echo (similar to Echo but can only copy spells) and gains a replica of his most powerful skill, the elite hex spell

      Arcane echo is the mesmer fifth skill and, after using the elite hex spell, he has a replica for a short time in his skillbar.

      Like

      1. This one is huge. At least it was whilst trying to create it.

        Follow these steps thoroughly!

        1. Create your Echo spell. This will be the spell that will replicate other skills.
        2. Create another Echo spell. This will be used as a backup only. You can place it somewhere in the depths of the Skill tab. You won’t need it. We only need its original information.
        > In the following, when I refer to Echo I mean the real one. Not the backup one. <
        3. Create a passive skill with Yanfly's Passive State plugin. Use

        <Passive State: x>

        in the Echo skill's notebox.
        4. Create that passive state. Use this notetag in its notebox:

        <Custom Conclude Effect>
        // This is the id of your echo spell in the database
        var echoId = 8
        if (this.isSkill() && this.item().id !== echoId && this.item().id !== 1 && this.item().id !== 2) {
        user._lastSkill = this.item().id;
        // Change the echo spell to the last user skill
        $dataSkills[echoId].animationId = $dataSkills[user._lastSkill].animationId;
        $dataSkills[echoId].message1 = $dataSkills[user._lastSkill].message1;
        $dataSkills[echoId].message2 = $dataSkills[user._lastSkill].message2;
        $dataSkills[echoId].name = "Echo-" + $dataSkills[user._lastSkill].name;
        $dataSkills[echoId].effects = $dataSkills[user._lastSkill].effects
        $dataSkills[echoId].scope = $dataSkills[user._lastSkill].scope
        $dataSkills[echoId].iconIndex = $dataSkills[user._lastSkill].iconIndex
        $dataSkills[echoId].damage = $dataSkills[user._lastSkill].damage
        };
        
        if (user._echoUsed && user._echoUsed === 1) {
        var echoId = 8;
        var echoBackup = 10;
        user._lastSkill = null;
        $dataSkills[echoId].name = $dataSkills[echoBackup].name;
        $dataSkills[echoId].animationId = $dataSkills[echoBackup].animationId;
        $dataSkills[echoId].message1 = $dataSkills[echoBackup].message1;
        $dataSkills[echoId].message2 = $dataSkills[echoBackup].message2;
        $dataSkills[echoId].effects = $dataSkills[echoBackup].effects;
        $dataSkills[echoId].scope = $dataSkills[echoBackup].scope;
        $dataSkills[echoId].iconIndex = $dataSkills[echoBackup].iconIndex;
        $dataSkills[echoId].damage = $dataSkills[echoBackup].damage;
        user._echoUsed = 0;
        };
        </Custom Conclude Effect>
        

        In Line 3 and Line 17 change the ID to the one from your Echo spell. Change the ID in Line 18 to the one of the Echo Backup skill.

        These notetags will make the echo skill transform each time a new skill is used.
        The echo skill will copy the following properties of the previously used skill (and only those):
        – Animation ID
        – Messages when using the skill
        – The name. It will display the name as "Echo-" + Skill Name. If you want something else than that, change it in Line 10.
        – The skill effects. Meaning Buffs / Debuffs / States to be added.
        – The skill's scope.
        – The skill's icon.
        – The skill’s damage.

        Echo will neither copy the MP/TP Costs of the mimicked skill nor its cooldowns.

        Now…
        Go to your Echo spell and use this little notetag in its notebox:

        <Before Eval>
        if (a._lastSkill) {
        var action = new Game_Action(user, false);
        user._actions.unshift(action);
        user.currentAction().setSkill(a._lastSkill);
        user._echoUsed = 1;
        };
        </Before Eval>
        

        This basically tells echo to mimick the last spell.

        ——————

        And that's it. Should be working! Hope you find it useful!

        Liked by 1 person

  11. I get this error when trying to use echo after it has copied a skill.

    I’ve followed the steps but maybe I did something wrong.
    I’ve made an Echo skill (id 6) and a second one (id 7).
    First Echo has and the before eval.
    State 11 has the custom conclude effect with lines 3, 17 and 18 modified.

    Like

  12. Does this happen outside of battle?

    If not, I’m kinda at a loss here to be honest. I’ll see if I can find something.

    Using the very same eval works for me which is why this is so weird right now:

    First cast:

    Echo cast:

    Can you list me the settings of your Echo spell? Like original scope and all the stuff on the
    skill tab.

    Like

  13. Sorry about that. It’s really hard to get this right when it’s working for me because I cannot even chase a bug.

    Thank you for all the visual material you provided for me, makes it a lot easier.
    From the video it looks like the actor has 2 actions queued up whenever you use Echo.
    I’m not sure if it will solve the problem but until I come up with something else try placing this command in the Before Eval right above the line with var action = new Game_Action(user, false):

    user.clearActions();

    Like

    1. I tried but it seems that nothing changed. I’m using the default battle system as you’ve seen but,
      if I change it to atb or ctb, the echoed curaja works as intended.

      Liked by 1 person

  14. I didn’t realize you were using the default battle system. Changing the battle system essentially changes the way every action is handled.
    CTB is so normal to me that I didn’t even notice I was using it all the time, lol.

    Now that I changed my battle system to DTB, I could reproduce your very first error as well.

    To fix the double casting go to the Before Eval and delete this line:
    user.currentAction().setSkill(a._lastSkill);

    Liked by 1 person

    1. I really appreciate your hard work. I have some skills with before and after evals, but I suppose the notebox can’t be copied. However, Echo is a very useful skill! Thank you so much!

      Liked by 1 person

      1. In fact, it is possible to copy those as well. I just noticed the lines in my first post are messed up by 1 so I’ll tell you where to go by code not by lines.

        Go to your state’s notebox and beneath this code:
        $dataSkills[echoId].damage = $dataSkills[user._lastSkill].damage

        insert this:
        $dataSkills[echoId].customBeforeEval = $dataSkills[user._lastSkill].customBeforeEval
        $dataSkills[echoId].customPreDamageEval = $dataSkills[user._lastSkill].customPreDamageEval
        $dataSkills[echoId].customPostDamageEval = $dataSkills[user._lastSkill].customPostDamageEval
        $dataSkills[echoId].customAfterEval = $dataSkills[user._lastSkill].customAfterEval

        then move on and beneath this code:
        $dataSkills[echoId].damage = $dataSkills[echoBackup].damage;

        insert this:

        $dataSkills[echoId].customBeforeEval = $dataSkills[echoBackup].customBeforeEval ;
        $dataSkills[echoId].customPreDamageEval = $dataSkills[echoBackup].customPreDamageEval;
        $dataSkills[echoId].customPostDamageEval = $dataSkills[echoBackup].customPostDamageEval;
        $dataSkills[echoId].customAfterEval = $dataSkills[echoBackup].customAfterEval;

        This will make Echo copy all Before, Pre-Damage, Post-Damage and After Evals of the mimicked skill!

        Liked by 1 person

  15. I’m so grateful! You’ve been so patient that I don’t know how to thank you.
    You could share this with the others by posting it like your other evals (pain to gold, love tap…),
    so nobody misses this magnificent skill.

    Liked by 1 person

  16. Warp from Final Fantasy XII/Kingdom Hearts: Birth by Sleep

    An area spell that banishes all enemies within range, effectively killing them, but the banished enemies do not give EXP, gold, or item drops.

    Like

    1. This is rather hard to do. If you want to alter an enemy’s EXP, Gold or Drops you need to change the database entry. The result of this is that each enemy from that database entry that you encounter later on will yield the same 0 EXP, Gold and Items.

      There may yet be another way to do it, though. You will need my Gold/Item Rate plugin. Make your Warp skill add an invisible state to all of your actors with the database feature Exp Rate 0%. For gold and item rates you will have to use my plugin. Use the notetags and in the notebox. Make the state wear off after battle.

      Sure this is just a workaround but unfortunately this is all I can suggest you to do at this point. I may create a plugin later on to make this easier.

      Like

  17. After the Ability distribution plugin arrived, I started to recreate my favourite Guild Wars skills.
    Vow of Silence is an enchantment that, for the duration, prevents you from being the target of spells; however, you may not cast spells while affected.

    Is there a way to recreate this without adding a target eval to each magical skill?
    https://wiki.guildwars.com/wiki/Vow_of_Silence

    Like

  18. For not being able to cast spells use the Seal Skill Type Feature in the Traits Tab.
    Yanfly’s Selection Control Plugin offers a notetag called Cannot Select: SType x.
    Use this in your Vow of Silence state and replace x with the skill type you don’t want the actor to get hit with.

    Edit: Whoops. Notetag disappeared 😀

    Liked by 1 person

    1. Oh, I totally ignored that plugin. The notetag didn’t display in your comment but I guess it was SType.
      Thanks! I’m really enjoying your Ability distribution plugin.

      I don’t know if I’m allowed, but I would like to ask for help with a little modification to the rpg_windows that I made: http://pastebin.com/khSuU9Wx.
      This is a large comment, so I’ll apologize now for my not so nice English.

      Let’s say you have a skill that heals 20 + 700% of your “healing prayers” ability level,
      wich is 15, causing the healing to be 125. To show that value, I use “\X[x]” (line 294).
      Each argument belongs to a skill to show its damage, duration, healing…
      The only problem is that I have to modify the script each time that I want to add new argument values; it would be nice if I could add new ones through script parameters.

      Like

      1. Where exactly are the results of this displayed? In a message box? Or is this supposed to be shown in the help window?

        There are some plugins out there to make showing an evaluation within text boxes or help windows possible. It may be easier to just use one of those.

        So instead of tinkering with the default scripts you could just type your evaluation into the help window and it would get evaluated and correctly shown in game. 🙂

        Like

  19. Actually, I modified the rpg_windows because I could’t find any plugin that allowed that.
    May I ask where can I find those plugins? I’ve tried to find them, but no luck yet.

    Like

  20. Hi, can you help me with these two skills that im thinking?
    first, a skill that damages and gets stronger the more allies are dead.
    second,a passive buff that makes you stronger the more allies are dead.
    Im using most of yanfly’s plugins.
    thank you very much in advance mr. Alistair.

    Like

    1. Hi :),

      here’s an example damage formula that deals more damage for each dead member:
      “100 + a.atk * 0.5 + ($gameParty.deadMembers().length * 50)”

      This basically means:
      The skill has a base damage of 100 + 50% ATK.
      For each dead member the skill gains flat 50 damage (that’s the part in the brackets).
      So if you want to check how many members are dead, use $gameParty.deadMembers().length

      For your second request, I need more information. By making you stronger, what do you mean exactly?
      More ATK/MAT or more percental damage?

      Like

      1. First of all,thank you very much for the quick reply mr alistair.
        wow, so that was all it took, changing “alive” to “dead” hahaha where are you getting those codes????

        1st problem solved. thank you very much.

        onto the 2nd problem, im thinking of a passive that gets stronger as more ally dies. i have come up with 3 skills: 1st problem + 2nd problem + yanfly sacrificial bolt.
        +10% DEF and MDF per dead ally should do for now.

        Like

  21. You can find the codes in the rpg_objects.js file in your game’s folder.

    Paste this into your passive state’s notebox:

    <Custom Turn Start Effect>
    user._bonusMDF = user._bonusMDF || 0;
    user._bonusDEF = user._bonusDEF || 0;
    user.minusDef(user._bonusDEF);
    user.minusMdf(user._bonusMDF);
    
    // The modification amount. Default is amount of dead members.
    var mod = $gameParty.deadMembers().length;
    // The bonus amount. 0.1 equals +10%.
    var bonus = 0.1;
    
    var finalMod = bonus * mod;
    user._bonusDEF = user.def * finalMod;
    user._bonusMDF = user.mdf * finalMod;
    
    user.addDef(user._bonusDEF);
    user.addMdf(user._bonusMDF);
    </Custom Turn Start Effect>
    

    Note that you need YEP_BaseParamControl or this code won’t work.

    Like

  22. Sorry to bother you all the time! I was thinking about how to create attribute runes, from Guild Wars (being attributes the abilities from your Ability Distribution plugin). Let’s say I have a rune of major Healing prayers that, while equipped, would raise my Healing prayers level by 3.

    $gameActors.actor(1).addAbility(“Healing prayers”, 0, 20, 1, 1, 1, 9);
    If my Healing prayers ability level was 18, the rune would raise it by 2 (as 20 is the limit).

    https://i.redditmedia.com/1ZkNuVKsmVXMRRlqiRB9sktC–qyDH2cRZjivfvryn8.jpg?w=432&s=7c480c1ca9b5bc9d435a088db5cad7f6

    Like

  23. Is there anyway to make it where on Stat & Ability Distribution plugins instead of using the default points, JP from Yanfly’s Job Point Plugin are used?

    Like

  24. Hi,

    I’m trying to change the faceset in battle with Moghunter battle HUD plugin depending of a state: http://pastebin.com/FeFN6LQU

    I know it’s possible because Yanfly did that in a tip and trick (transformation) but unfortunaly it wasn’t compatible with Yanfly in the end like you can see here: http://forums.rpgmakerweb.com/index.php?/topic/65496-yanfly-actor-transformation-change-battle-hud-face-moghunter/#comment-697016

    So I wonder if it’s possible to still do it: force the update of the portrait with Moghunter plugon or not by calling the right line of codes with Eval ? That’s a totaly newbie question, so I’m sorry if I’m wrong and it’s not possible.

    Like

    1. Hi!

      I wish I could help you with this but I do not use Moghunter’s plugin so I have no knowledge about the way it operates and I don’t have the free time right now to dive into it!
      I’m sorry!

      Like

  25. Could you do one on Galeforce from fire emblem? when the owner of the skill Defeats an enemy, they are granted one extra turn. The extra turns can’t stack tho.

    Like

      1. The thing is that with Rpg Maker’s DTB this mechanic won’t work the way that you want it to. At least not with only Evals.

        The ATB and CTB plugins handle the battle flow differently and these systems are much more favorable for creating a skill like Galeforce.

        So if you want I can help you out with one of those Battle systems but not DTB. Sorry about that!

        Like

    1. <Post-Damage Eval>
      user._currentTurn = user._currentTurn || 0;
      if (user._currentTurn !== $gameTroop.turnCount()) {
      if (target.isDead() || target.hp <= 0) {
      $dataSkills[x].afterCTBRate = 1;
      user._currentTurn = $gameTroop.turnCount();
      };
      } else {
      $dataSkills[x].afterCTBRate = 0;
      };
      </Post-Damage Eval>
      

      This should hopefully work. Replace x with the skill ID.

      Like

  26. Hey Alistair, thanks for all the useful stuff on the site.

    My request would be a skill that randomly shuffles around all states between all alive units, the only rules being that the state turns have to be carried over and that a unit cannot receive a state it had prior to the shuffle.

    Also, how did you get your skills to calculate the damage in the skill description window?

    Cheers

    Like

  27. Reversal- A skill that has an effect similar to confusion. When affected by the state, the scope of the battlers actions is flipped, meaning abilities targeting allies will target enemies, vice versa. Is it plausible?

    Like

    1. This is unfortunately rather hard to do with just an eval. Target selection etc. happens in unfavourable moments and controlling it is easier with a plugin.
      If I find time for it, I might create that plugin.

      Like

  28. Loved your Liandry’s torment! I was trying to recreate the Arcane Larceny skill from Guild Wars.
    It disables (puts on cooldown) one random spell (skill tagged as magical). After that, you forget Arcane Larceny for a brief time (but you also gain access to the disabled spell).

    I wrote this little code, but I was not capable of recreating the whole effect of Arcane Larceny 😦

    var skills = target.skills();
    if (skills.length > 0) {
    for (var i = 0; i 0) {
    skills.splice(skills.indexOf(skill), 1); } }

    if (skills.length > 0) {
    var skill = skills[Math.floor(Math.random() * skills.length)];
    if (skill) {
    target.useItem(skill);
    #How to give access to a skill for a short time? } } }

    Like

      1. I assume you use this on an enemy and you gain one of their skills?
        After using you “forget” Arcane Larceny and “learn” the enemy’s skill for a short time. After a few turns the new skill disappears and you regain access to Arcane Larceny?

        Liked by 1 person

      2. Exactly. Let’s say we disabled Fira using Arcane Larceny: the enemy is unable to use Fira because it’s now on cooldown, and we lose Arcane Larceny and gain Fira (let’s say for 5 turns). After that period of time, Arcane Larceny is back and Fira is no longer within our skill pool.

        Like

      3. The stolen spell is disabled, but the enemy may recharge it (by using a skill, item…)
        The disable effect is like a cooldown: let’s say whe use something like target.setCooldown(skill.id, 6), where skill is the randomly selected spell. Our enemy uses Potion of recall, and now all his skills are recharged. Nevertheless, we keep the stolen spell within our skill pool for the rest of the duration.

        Actor A casts Arcane Larceny on Enemy B.
        Fire whas randomly chosen, and is now on cooldown. Now, we may use Fire but not Arcane Larceny for a short time.
        Arcane Larceny is over, and we lose Fire; this is where Arcane Larceny is back.

        Here you can find all about Arcane Larceny:
        https://wiki.guildwars.com/wiki/Arcane_Larceny

        Liked by 1 person

    1. Request done! I hope it is what you wanted 🙂 If not please let me know.

      By the way: I appreciate that you tried to write your own code. That’s very commendable.
      The teacher inside me just wanted to tell you this 🙂 .

      Liked by 1 person

  29. Could make an EC that mimics the Psionic skills in Persona 5?
    If a target is inflicted with a certain state(or states) More damage is dealt(Maybe 2X as much damage).

    Like

    1. This should work. Put it into your skill’s notebox:

      <damage formula>
      // The normal damage formula.
      value = x
      // Array of states to check.
      var states = [10, 11, 12]
      // If the target is affected by any of these states, increase damage
      for (var i = 0; i < states.length; i++) {
      var state = states[i];
      if (b.isStateAffected(state)) {
      // Multiplicator is applied.
      value *= 2.0;
      };
      };
      </damage formula>
      

      Don’t forget to change the x in line 3, the states you want to check in line 5 and the multiplicator in line 11.

      Like

  30. Hello,

    Is it possible that when an enemy is weak to an element the next attack (of same element) will make double damage with an eval code?

    Like

  31. Hello again mr Alistair, I don’t know if this is the right place to ask but still I’ll give it a try.
    In Yanfly’s Row Formation, is there a way to limit the number of battlers in a given row? like 4 battlers per row. Cos in my game, I have like 8 battlers that can participate in a fight. I don’t want them to be cramped all in just one row.
    Been trying to do this from time to time and still to no avail. Can’t find anything on the net either.
    Thank you in advance sir.

    Like

    1. Hi!

      I’m afraid that’s a condition that has to be placed into the actual plugin.
      This means that Yanfly would probably be the best person to ask.
      Sorry! 😦

      Like

  32. Hi, I would like to know if it’s possible to: an ally who has a debuff would be randomly debuffed by another ally ? (ref: Persona)

    Like

      1. 1. During battle when an an enemy cast it
        2. Yes
        3. Sleep or stun

        In Persona 5 it’s a passive trait that give a chance to an ally to remove a debuff that an another ally has.

        Like

  33. Hi sir,

    Haven’t really thought much about this but is it possible to give a bonus to statA per points of statB?
    ex: gain +2 ATK for every 1% of EVA. So, an EVA of 10% will give 20 ATK.

    thank you very much in advance.

    Like

    1. You could do this with Yanfly’s Base Param Control plugin.

      Go to where it says “ATK Formula” and add “+ (2 * a.eva * 100)” to the end of the formula.

      Like

  34. Hello there, I just came across this amazing page.=) I have been trying to learn how to do something I was told is doable with evals but my knowledge there is very limited. I was hoping you could help out with this issue. I need a fix for the confusion state, specifically Attack Anyone. I have a battle that is a sort of free for all among all enemies and allies. I use the confusion state to achieve this but they attack themselves which I am trying to remove.

    I was told I could use an eval to do something like if enemy is the class that it is they won’t attack themselves. As the battle has only 1 of each class type this would work but I am at a total loss on how to achieve it. I would still want them to attack me if I am the class however. I also was told that a better way may be to make a different state for each enemy that uses evals to restrict the attacking of the user.

    Anyways I really hope you can help with this I have been wracking my brain for many days now trying to fix the issue and feel no closer.=) Thanks for taking a look and this wonderful service you provide here.

    Like

    1. After further thought, the having the enemy blocked from attacking its own class type wouldn’t work. I would have to have an eval I could apply to 8 different states to keep the enemy affected by each state from being able to attack it’s own state. Sorry for all the unneeded text above.

      Like

      1. So you only want the enemies to not attack themselves but everyone else, right?
        I’m not sure if it’s really that doable with just evals but let me fiddle with it a bit.

        Like

  35. Would there be any way to create a skill that’s like the Pulse of Life limit break from FFXIV, fully restoring the HP/MP of all members in battle while also simultaneously reviving dead ones? Great evals by the way, very very useful stuff.

    Like

    1. Nevermind, I seemed to have figured out a solution to my own question by taking the code from your “Heal all allies” eval and altering it a bit.

      for (var i = 0; i < $gameParty.battleMembers().length; i++) {
      var actor = $gameParty.battleMembers()[i];
      actor.gainHp(actor.mhp);
      actor.gainMp(actor.mmp);
      if (actor !== user) {
      actor.startDamagePopup();
      }
      }

      The scope was set to “User” to prevent multiple heal popups from showing up, and also because you can’t target both alive and dead members at the same time abyway.

      Like

  36. Hi Alistair, I’m kinda new to RPGMakerMV with some knowledge of the coding.
    I’m trying to make a state that causes the user to cast a skill when they’re attacked (skill aimed at the attacker). Also the state disappears when it happens. Is there any way to code that in?

    I’m hoping to use it for a kind of “Trap Skill” where you can put a trap on an ally so anyone that damages them gets attacked back.

    Like

    1. Alistair is really busy, so maybe I can help you with this request.
      Requires Yanfly BuffStatesCore.

      <Custom Deselect Effect>
      // Skill triggered, replace x whit database id
      var id = x;
      // Only trigger if attack / skill didn't miss (you may remove this)
      if (!target.result().missed && !target.result().evaded) {
      // Actor uses skill triggered
      BattleManager.queueForceAction(target, id, -1);
      target.removeState(stateId); }
      </Custom Deselect Effect>
      

      Liked by 1 person

  37. In Mobius Final Fantasy, there is a series of ability cards with a passive called Reckoning. Reckoning directly increases the damage modifier of the ability according to the amount of damage the player has received in the past 2 turns. Can you think of a way to add this into a skill’s damage in MV?

    Like

  38. Hello, I’m not sure if this is the right place to ask. But regarding your AP_Blocking plugin for rpg maker MV… is there a way to add a total block rate cap? For example, My game is going to be littered with a lot of gear that adds block %, but I want the cap to effectively be 80% thanks. Your code limits to 100 but I can’t figure out which part of it to change, thanks.

    Like

  39. Hi, there! Thank you so much for creating this page, it’s been a huge help! 🙂

    I was wondering if you knew of an eval that would allow me to show a different skill animation depending on what actor used it? (In my brain it’s like; if “Heal” is used by a white mage, the animation is epic/holy, but if it’s used by a Dark Mage, it’s more devilish?) This would save me from having to make 328472 copies of each skill for unique flair haha. I’m using Yanfly’s battle engine core, as well as his Standard Turn Battle plugins.

    Like

Write a comment