Felskis Skilltree Plugin

Discussion in 'JS Plugin Releases (RMMV)' started by Felski, Sep 26, 2018.

  1. Felski

    Felski Veteran Veteran

    Messages:
    74
    Likes Received:
    61
    First Language:
    german
    Primarily Uses:
    RMMV
    Introduction
    This plugin is a complex skill tree plugin. It allows you to create multiple skill trees for actors and classes.
    To unlock nodes the party has to spend currency or items. You also need to unlock the nodes in order.
    Not only learns the actor skills when activating a node of the skill tree, you can also change switches or run common events.
    It's highly customizeable with sizes, margins and fonts for tree nodes. You can also define background images and animations.
    With animations, you can not only play the animation effect, but also flash the screen or play sound effects.
    There is also a editor for the skill trees!

    See the plugin and the demo for more infos.

    How to use
    You need to provide a Techtrees.json file. Check the demo for a working techtree.
    I've also added a JSON Schema and a JSON Editor thanks to https://github.com/json-editor/json-editor.
    Additionally you need to add a tree to an actor by adding the uids of the trees via notetags:
    <techtree>
    HOLY
    HEALER
    </techtree>

    You can alter the system look by changing the files in /img/system/techtree.

    Requirements
    This plugin is developed and tested in RPG Maker MV v1.6.1.

    Video


    Demo and plugin files
    https://felski.itch.io/felski-skilltree

    Lastest Update
    v1.3.0
    Minor Changes:
    • added a new plugin parameter to make the skill tree scene in the menu display only.
    • added plugins commands to prepare the TECHTREE command.
      • TECHTREE DISPLAYONLY
        • opens the tree in display only mode, similar to the new plugin parameter
      • TECHTREE PRESELECT [tree uid]
        • preselects a specific tree for the actor. If the tree isnt found, the default selection is used.
      • TECHTREE SINGLE
        • prevents the user from changing trees
    • these two changes can be used to make the plugin work with skill trainers
      • Example:
        • Enable the plugin parameter so the skill tree is only for display in the menu and then add skill trainers all over the world (use the plugin command
        • TECHTREE to open the trees in change mode).
    • added a new plugin parameter "Update Skill Trees". With this enabled, the skill trees of saved games will update when you change the Techtrees.json file.
      • actors will properly unlearn skills that you have removed and learn skills you've added. Stat changes will also apply properly. Switches will change accordingly and Evals will run again.
      • Common Events will NOT run again.
      • this feature is experimental. Any feedback is much appreciated!
    • added level requirements to the skill trees. Added the corresponding field to the Tree Builder App. Actors can only unlock the node when they reached the required level.
    Tree Builder App:
    • updated the Tree Builder App, so you can now more easy load and save the JSON
    v1.2.2
    Bugfixes:
    • fixed a bug with nodes that use more than one of a item/weapon/armor to unlock. These nodes can now be unlocked properly.
    • fixed an error with cost info window that happend when an actor didn't have a tree assigned. This now works properly.

    v1.2.1
    Bugfixes:
    • fixed a bug that would prevent the plugin from working when classes have not existing trees assigned. A warning is shown instead.

    v1.2.0
    Bugfixes:
    • fixed an autowrap bug in the tree description in the tree selecting window.
    • fixed a bug with autowrap. Autowrap now uses the fontsize for the lineheight so it properly scales different fontsizes.
    • fixed a bug where the plugin would break when a not existing parent node was referenced. A console warning is shown now instead.
    Major Changes:
    • added the feature to increase/decrease stats (max HP, max MP, Attack, Defense, Magic Attack, Magic Defense, Agility and Luck) on node activation.
      • added plugin parameters for stat changes handling for class changes.
      • added corresponding options to the techtree builder app.
    • added the feature to run custom javascript code on node activation and deactivation.
      • added plugin parameters for custom javascript code handling for class changes.
      • added corresponding options to the techtree builder app.
    • added a header window that shows the current amount of currency (like gold or JP).
      • you can define up to 5 currencys that are shown here per tree.
      • added the corresponding option to the techtree builder app for gold, jp and specific items.
      • added a font plugin parameters for the currency window. See Header Settings.
    Minor Changes:
    • added a new parameter "Node Border Width" in the Node Visual Settings.
      • this parameter is used for the graphical border of a node. That way overlapping text can be prevented.
    • added the feature to use icons in all descriptions of the plugin. This feature also works for skill descriptions.
      • to add icons to the skill tree descriptions you need to use \\i[iconIndex] within the description.
      • to add icons to the skill description use \i[iconIndex] within the description of the skill in the RPG Maker MV database. This only affects the skill tree windows.
    • added the option to show an icon for learned nodes instead of the costs.
      • you can activate this by setting the "Node Show Learned Icon" plugin parameter to true.
      • you can change the icon shown by changing the "Node Show Learned Icon ID" plugin parameter.
    • added a new parameter "Hide Node Cost" in the Node Options.
      • with this parameter you can hide the costs in the tree overview for all nodes.
      • the costs still appear in the confirmation window.
    • added the plugin command ACTIVATENODE [actorId] [tree uid] [node uid].
      • it can be used to unlock a specific node in a tree for an actor.
    • added the plugin command DEACTIVATENODE [actorId] [tree uid] [node uid].
      • it can be used to reset a specific node in a tree for an actor.
      • all skill will be forgotton
      • all stats removed
      • all switches toggled
      • onDeactivate evals will be run
      • common events will not run again
      • this affects deactivating nodes using plugin commands
    • changed the plugin command RESETTECHTREES [actorId] [refund].
      • it now has the option to refund the costs for the actor.
      • you cannot use this plugin command together with class changes.
    • changed the plugin command RESETTECHTREE [actorId] [tree uid] [refund].
      • it now has the option to refund the costs for the actor.
    Tree Builder App Changes:
    • added Main Cost Items to the techtree builder.
      • you can define item ids here that will be shown as currency for the tree. This is a visual thing only and doesn't affect any mechanics.
    • added "Don't show gold currency for this tree?" option to the techtree builder.
      • you can decide wheter you want to show gold for this tree or not.
    • added "Don't show Jobpoints (JP) currency for this tree?" option to the techtree builder.
      • you can decide wheter you want to show gold for this tree or not.
    • added "Stat Changes" to the On Activate part of a node in the techtree builder.
      • you can define stat increases for a node here.
    • removed some cluttering options from the tree editor. To reactivate them see options.
    v1.1.1
    Bugfixes:
    • fixed an issue with the automatic autowrap in the node confirm window.
    Changes:
    • added a parameter to change the text of a hidden node.
    • added a parameter to show/hide skill names in the node activation window.
    • added a parameter to show/hide skill descriptions in the node activation window.
    • added a parameter to show/hide skill icons in the node activation window.
    • added the option to play an animation when activating a node
    • added a parameter to set a default animation when activating any node
    • added a field in the techtree editor to set a default animation when activating any node in a specific tree
    • added a field in the techtree editor to set a animation when activating a specific node
    • added to offset parameters for the postion of animations.
    v1.1.0
    Bugfixes:
    • increased performance for the techtree windows.
    • changed how images are loaded, so they should load more consitently and without errors.
    Minor Changes:
    • split up the tree window into 3 windows. An info window, a header window and a window for the tree itself.
    • you can now select another tree using the header window.
    • added a parameter to toggle preloading of the tree when selecting it in the header window.
    • added font and other parameters for the header window.
    • added a parameter to change the message that is shown when an actor has no trees available.
    • added a step by step guide to the help
    Major Changes:
    • you can now bind skilltrees to classes.
    • an actor can have skilltrees from himself and from his class.
    • skilltrees bound to the actor will always be available.
    • skilltrees bound to the class will only be available when the actor has the class.
    • on class change, the actor will forget all skills he learnt from the old skill tree(s). This can be changed with a plugin parameter.
    • on class change, the actor will relearn all skills from the new skill tree(s), if there are already active nodes in the tree. So switching back to a class will relearn the skills.
    • on class change, all switches that have been set on or off will be set off or on. This happend for the old and the new skill tree(s).
    • activated nodes in a skill tree will remain on class change. So when the player changes back, the nodes are still active. This can be changed with a plugin parameter.
    • on class change, the common events will not be triggered again.
    • added the above mentioned plugin parameters.
    Changelog V1.0.2
    • fixed an error that the plugin wouldn't work, when a not existing tech tree was referenced in notetags.
    • added a warning when a tree is referenced in the notetags that isn't in the Techtree.json.
    • added the ability to set custom background for trees and single nodes. This is done via the Techtree.json.
    • added a folder for techtree backgrounds at ../img/system/techtree/bgimg/. All background images need to go there.
    • updated the json schema for the techtree editor for custom backgrounds.
    • added a plugin command to add a techtree to an actor.
    Changelog V1.0.1
    • added a parameter to change the visibility of the skill tree menu in the main menu
    • added a plugin command to reset all skill trees for an actor
    • added a plugin command to reset a specific skill tree for an actor
    • fixed a bug where two actors having the same tech tree would unlock the node in both trees
    • added a plugin command to save the amount of active nodes for a skill tree in a variable

    Terms
    See plugin file
     
    Last edited: Oct 10, 2019
    #1
    Kike, Black Mamba, atoms and 16 others like this.
  2. eXalted

    eXalted Villager Member

    Messages:
    29
    Likes Received:
    12
    First Language:
    English
    Primarily Uses:
    RMMV
    This looks incredible! Great work!
     
    #2
  3. JamesRyan

    JamesRyan Game Designer Veteran

    Messages:
    589
    Likes Received:
    186
    Location:
    Vietnam
    First Language:
    Vietnamese
    Primarily Uses:
    RMMV
    This plugin looks awesome. I really want to use it in my project. However, is this Skill Tree always available in Menu? My design is to force my actors to talk to certain NPC to learn skills, so it is great if you implement a script call to call this Skill Tree Scene for each individual actor, and also an option to show/hide Skill Tree in Menu (should be compatible with Yanfly's Main Menu Manager, as many people are using it) :)

    Another feature i want to suggest is Skill Tree Reset. Players will make mistake during the game, and they will obviously want to reset their skills. So it would be a great help if you can think about this and upon talking to certain NPCs, they can remove all learned skills and also reset the Skill Tree with some fees based on how many gold or JP they have spent :)
     
    #3
  4. Felski

    Felski Veteran Veteran

    Messages:
    74
    Likes Received:
    61
    First Language:
    german
    Primarily Uses:
    RMMV
    Thanks for the feedback and kind word.

    You can already open specific skilltrees for an actor using plugin calls. Sadly I forgot to mention that in the help part of the plugin. I've included it into the demo tho. So you can check it there. I'm gonna update the help once I'm at home.

    The option to show/hide Skill Tree in menu is a good idea. I'm gonna add it. I'm also look into Yanfly's Main Menu Manager plugin for compatiblity. But I guess it should work out of the box.

    I'm gonna look into Skill Tree Resets. I really like that idea. Should be no problem to add a metric for devs to determine a price for resetting.

    Cheers,
    Felski
     
    #4
    JamesRyan likes this.
  5. JamesRyan

    JamesRyan Game Designer Veteran

    Messages:
    589
    Likes Received:
    186
    Location:
    Vietnam
    First Language:
    Vietnamese
    Primarily Uses:
    RMMV
    I'm gonna check the demo to see how things work. And i'm really looking forward to the new features. Thank you so much for your work!
     
    #5
  6. SwiftIllusion

    SwiftIllusion Veteran Veteran

    Messages:
    107
    Likes Received:
    180
    First Language:
    English
    Really interested in checking this out, regrettably though the current demo/js has a bug.

    On playing the demo I get "Uncaught SyntaxError: Unexpected token =>"
    That's in regards to "words.forEach((word) => {"
    I don't really understand javascript so couldn't workout what the issue may be, I tried changing it like https://stackoverflow.com/questions/36843574/node-js-readline-unexpected-token but that resulted in https://i.gyazo.com/7b466107d5249643e2fca10b7f2d7fc9.png

    Whatever the case, hope you're able to fix that soon as this looks really cool, especially with the super appreciated node/skill tree editors.
     
    #6
  7. Aloe Guvner

    Aloe Guvner Walrus Veteran

    Messages:
    1,600
    Likes Received:
    1,005
    Location:
    USA
    First Language:
    English
    Primarily Uses:
    RMMV
    @SwiftIllusion That means that you're using an old version of MV that doesn't support the 2015 standards of Javascript, so I (personally) wouldn't call it a "bug".

    You can upgrade your version of MV, or, if you want to use old Javascript, you'll have to change it to a format that can be understood by old Javascript engines. Here's that line in particular:
    Code:
    words.forEach((word) => {
    // Change it to
    words.forEach( function(word) {
    
    You'll also have to change all instances of "let" and "const" to "var" (these are variable declaration keywords, let and const were standardized in 2015 and var is older).
     
    #7
    SwiftIllusion likes this.
  8. SwiftIllusion

    SwiftIllusion Veteran Veteran

    Messages:
    107
    Likes Received:
    180
    First Language:
    English
    @Aloe Guvner Ahh I'm really sorry about that. It hadn't mentioned anywhere requiring the latest RPG Maker MV version so I hadn't even considered that. Thanks for letting me know, I'll have to keep that in mind if this happens again elsewhere.
    Thanks especially for informing me on how I might have this work with an older version :) .
     
    #8
    Aloe Guvner likes this.
  9. JamesRyan

    JamesRyan Game Designer Veteran

    Messages:
    589
    Likes Received:
    186
    Location:
    Vietnam
    First Language:
    Vietnamese
    Primarily Uses:
    RMMV
    One more thing i have noticed after trying the demo: Mouse can be clicked to upgrade skill, but cannot swipe in Skill Tree Window.
    I have been using mouse more than keyboards in MV, and i have also been playing with this Swipe Input plugin (http://sumrndm.site/swipe-input/), so i think it is better to implement it and let players use their mice to swipe up/down/left/right in Skill Tree window for more convenient. I hope you can think of this too :D
     
    #9
  10. Jrrkein

    Jrrkein Veteran Veteran

    Messages:
    116
    Likes Received:
    7
    First Language:
    Indonesia
    I wonder if it can scroll
     

    Attached Files:

    Last edited: Sep 28, 2018
    #10
  11. Felski

    Felski Veteran Veteran

    Messages:
    74
    Likes Received:
    61
    First Language:
    german
    Primarily Uses:
    RMMV
    Seems like the Techtree.json is broken. If you post a pastebin with the content I can check it out.

    @JamesRyan I'm gonna look into it.

    @Aloe Guvner Thanks for the help here :)
     
    #11
    JamesRyan likes this.
  12. Jrrkein

    Jrrkein Veteran Veteran

    Messages:
    116
    Likes Received:
    7
    First Language:
    Indonesia
  13. Felski

    Felski Veteran Veteran

    Messages:
    74
    Likes Received:
    61
    First Language:
    german
    Primarily Uses:
    RMMV
    @Jrrkein
    Your error occurs when the note for the actors doesn't match the techtree uid. The notetag for an actors should look like this:
    <techtree>
    WIZ
    </techtree>
     
    #13
  14. forteller

    forteller Veteran Veteran

    Messages:
    105
    Likes Received:
    17
    First Language:
    English
    So just as an idea anyway we could have the option to bind skill tree to classes, like actors can have 2 classes and each one has there own tree? or is there a command to add a skilltree to an actor like in game?
     
    #14
  15. masato94

    masato94 Villager Member

    Messages:
    17
    Likes Received:
    0
    Thank you for your amazing plugin !
    May i ask if that would be possible to snap a picture as a SkillTree background, that hide the overworld but still be masked at parts by the windowskin, even if the windowskin has a low opacity ?
     
    #15
  16. Felski

    Felski Veteran Veteran

    Messages:
    74
    Likes Received:
    61
    First Language:
    german
    Primarily Uses:
    RMMV
    So like a background picture below the skilltree window?
     
    #16
  17. masato94

    masato94 Villager Member

    Messages:
    17
    Likes Received:
    0
    Yup, i'm sorry since English isn't my main language i kinda struggled to describe what i wanted to say haha, thank you sir that is exactly what i'd like to know =D
     
    #17
  18. Felski

    Felski Veteran Veteran

    Messages:
    74
    Likes Received:
    61
    First Language:
    german
    Primarily Uses:
    RMMV
    Thanks for the feedback. I just updated the plugin and added a plugin command to add a techtree mid game to an actor.
    The syntax for the command is: ADDTECHTREE [actorId] [tree uid]

    I had multiple requests for background images and I just pushed an update that allows you to use custom background images for the tree and single nodes. Here is the changelog together with some images:
    https://felski.itch.io/felski-skilltree/devlog/50160/backgrounds-and-bug-fixes
     
    #18
    Low and Sissel Cabanela like this.
  19. masato94

    masato94 Villager Member

    Messages:
    17
    Likes Received:
    0
    Thank you so much !!! I can't wait to set everythings up *.*
     
    #19
  20. boikish

    boikish Always trying to help :) Veteran

    Messages:
    118
    Likes Received:
    36
    First Language:
    English
    Primarily Uses:
    N/A
    @Felski great work on this plugin, seriously.

    I have a few questions.

    1.) Would it be possible at any point to replace the textboxes with Images? I'd rather use icons to represent the nodes if possible.

    2.) The terms state not to edit the plugin, however, I had issues with the system/techtree/file name nomenclature. When I moved everything up to system and edited the plugin to reflect the correct directory, it worked fine.

    The error I was getting was saying the file cannot be found, it replaced the "/" with the URL encoding for it "%2F"

    3.) Also regarding the editing the plugin, I didn't like the way the text "Name" and "L" looked. Is it okay to remove or edit those?

    Thanks again for this amazing plugin.

    Edit is because I literally tagged you and didn't type a message, whoops.
     
    #20

Share This Page