Equipment Levels

● ARCHIVED · READ-ONLY
Started by ATT_Turan 18 posts View original ↗
  1. Equipment Levels 1.1
    ATT_Turan

    Introduction
    This plugin was inspired by a request from @VeeSheeb for items that would level up as they're used in combat.

    Unlike materia and other similar systems, this does not grant any abilities to the actor wearing the item - all abilities are innate and permanently attached to the item. It can be unequipped and given to a different actor and maintain its level.

    This can be used for anything from imitating orbal quartz from The Legend of Heroes series to Personas from the eponymous series.

    This plugin requires Yanfly's Item Core and any weapons/armor must be configured as independent items in order for levels to function.

    I have tested the basic functionality, please let me know if you encounter any errors. I will consider making compatibility patches if the other plugin is free to use (or one I own, such as a Yanfly product) and unobfuscated. Otherwise, other authors are free to modify this code to make it compatible with theirs so long as I am still credited.

    Features
    This plugin provides a system for weapons and armor to gain experience and level up while worn. A variety of benefits can be attached to each level, and those benefits are permanent; the item may be removed and equipped by another actor, functioning identically.

    The user can configure items via notetags to have any number of levels and any number of gained benefits per level.

    Items gain experience whenever their wearer does. A plugin parameter allows this to be changed to interface with Yanfly's Job Points, causing item exp to be based off of gaining JP instead. There is also a parameter to define a ratio for incoming exp - that is, causing 1 actor experience point to count as more or less than 1 item experience point.

    It also adds an item menu command to review all abilities an item will gain as it levels (there are a plugin parameter and notetags to hide and show the info for future levels on a global or individual basis).

    Finally, the plugin includes built-in integration with Yanfly's Victory Aftermath to show items that have leveled up at the end of a battle and what their new abilities are.

    Screenshots
    1716255130402.png
    1716255149764.png
    1716255225063.png

    Notetags
    Item notetags
    Code:
    <hidelevelpreview>
    <showlevelpreview>

    These will cause an individual item to ignore the global Hide Level Preview plugin parameter.

    Level Notetags
    Item levels are defined in the following format, using the Weapon and Armor notetag Item Level:
    Code:
    <Item Level X>
      Exp Y
      LevelDesc <string>
      Bonus ID Value
      Bonus ID Value
      Bonus ID Value
    </Item Level>

    The X in the Item Level tag must be an integer number - e.g. Item Level 3. You must define each level that an item can have, starting from 1.

    There are then many optional entries that can be placed within. The most necessary, if this is not the highest level, is Exp.

    A complete list of entries is defined in the plugin help file, but encompasses:
    - changing any of the item's database properties
    - adding any possible traits
    - defining a "level description" for flavor text to be shown on the item status screen
    - entering JavaScript code to be executed once when the item reaches the defined level

    Terms and Credits
    Free for non-commercial and commercial use. Credit ATT_Turan.
  2. ATT_Turan said:
    This can be used for anything from imitating orbal quartz from The Legend of Heroes series to Personas from the eponymous series.
    Oh. Oh boy. That's  highly interesting.
  3. Ohh~ This might help as a sort of mastery system similar to Berseria.
    Gonna give it a try!
  4. Erif said:
    Ohh~ This might help as a sort of mastery system similar to Berseria.
    That's not really what this is intended for, but you could try that. You'd have to use the eval entry to push a trait onto the actor when the item levels up (and also a dynamic traits plugin).

    And it would only work once, when you removed the item to give to another actor it would retain its level (unless you used something like waynee95's On Equip Eval to reset it, which is getting pretty complicated).

    It sounds like you'd want to use something that's more like Victor Engine's Materia system or Moogle_X's Equipment Learning.

    But hopefully this will be of some use to you, anyway!
  5. ATT_Turan said:
    That's not really what this is intended for, but you could try that. You'd have to use the eval entry to push a trait onto the actor when the item levels up (and also a dynamic traits plugin).

    And it would only work once, when you removed the item to give to another actor it would retain its level (unless you used something like waynee95's On Equip Eval to reset it, which is getting pretty complicated).

    It sounds like you'd want to use something that's more like Victor Engine's Materia system or Moogle_X's Equipment Learning.

    But hopefully this will be of some use to you, anyway!
    It's literally the same! Since it gives levels and only displays "Mastered" once you hit the level cap. The bonus are character-permanent but i don't mind. This just gives me a lot to experiment with~
    The fact that is JS-customizable (i hope i'm right) is the icing on the cake.

    Learning skills is done in other ways, but a seemingly good boost for using equipment you like is more what I'm looking for.
  6. Do I have the okay to tweak this to get it to work with an alternative Independent Items plugin?

    Edit, Nvm just saw this:

    Otherwise, other authors are free to modify this code to make it compatible with theirs so long as I am still credited.
  7. Puppet Knight said:
    Do I have the okay to tweak this to get it to work with an alternative Independent Items plugin?

    ATT_Turan said:
    other authors are free to modify this code to make it compatible with theirs so long as I am still credited
  8. Puppet Knight said:
    Do I have the okay to tweak this to get it to work with an alternative Independent Items plugin?
    I assume you're looking at Dungeonmind's independent items to use it in MZ. Note that I have several window types defined in here, so those are also innately incompatible with MZ (possibly unless you're using FOSSIL, in which case I dunno why you wouldn't just use the Item Core).

    Good luck.
  9. Most likely DMs yes.

    ATT_Turan said:
    (possibly unless you're using FOSSIL, in which case I dunno why you wouldn't just use the Item Core).
    I am on my anti VS arc sir. lol
  10. Puppet Knight said:
    I am on my anti VS arc sir. lol
    You do you, but Yanfly != VisuStella

    I was simply pointing out that you'd need either FOSSIL or a more extensive recoding of my plugin to make it work in MZ, regardless of the independent item generation.

    Again, good luck :stickytongue:
  11. Very cool. I was thinking of a similar plugin idea based around classes.
    Where you could assign an item/equip a class and it would follow those parameters for leveling up and granting the skills the same as classes would do.
  12. Corrected a bug pointed out by @Andreavnn wherein the item scene would crash if you formatted the notetags...the way the instructions demonstrated... :rolleyes:
  13. Am I doing this notetag setup right

    <Item Level 1>

    Exp 50

    LevelDesc Turan's Decimator's blade grows keener and can burn its target

    Param ATK 5

    </Item Level>

    <Item Level 2>

    Exp 100

    LevelDesc Turan's Decimator's blade grows keener and can burn its target

    Param ATK 10

    </Item Level>

    In the weapons notetag section because in game the status is greyed out for me.

    Weapon pic.png
  14. @Beachsidey0 That looks correct to me.

    Do you have Yanfly's Item Core installed, and its Max Weapons plugin parameter is a non-zero value?

    The only reason the Status command should be greyed out is if the item you're looking at doesn't have a level.
  15. ATT_Turan said:
    @Beachsidey0 That looks correct to me.

    Do you have Yanfly's Item Core installed, and its Max Weapons plugin parameter is a non-zero value?

    The only reason the Status command should be greyed out is if the item you're looking at doesn't have a level.
    Yep that's what it was I forgot to set the max weapons. Thanks
  16. Could this apply to ALL copies of that weapon/armor? I.e., if a Basic Sword was level 5, and the player looted a second Basic Sword, could that one also start at Level 5?
  17. drumbilical said:
    Could this apply to ALL copies of that weapon/armor? I.e., if a Basic Sword was level 5, and the player looted a second Basic Sword, could that one also start at Level 5?
    If you don't make weapons be independent items via Yanfly's Item Core, that could be what you end up with. But I also may have put checks in there to prevent that, I don't recall.

    Or you could use the eval level operation in this to increment a variable, then use Yanfly's On Creation Eval to check that variable and level the newly-spawned item up...maybe?