Felskis Skilltree Plugin

Felski

Veteran
Veteran
Joined
Jan 5, 2018
Messages
113
Reaction score
95
First Language
german
Primarily Uses
Other
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

Video Tutorials
How to install

How to create a simple tree

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

Lastest Update
v1.3.7
  • fixed a bug when using the class change core by Yanfly together with no actor based skill tree.
  • fixed a bug visual in the node confirm window that prevented the window from updating the cursor properly.
  • fixed a bug when switching from a tree with a background image to a tree with no background image. The old background image will now disappear properly.
  • fixed multiple bugs with the preloading of background images. All background images should now display when first selecting a tree.

v1.3.6
  • fixed a clipping error with the description of skills in the node confirmation window
v1.3.5
  • added a plugin parameter Compact Texts which fixes makes texts use line heights based on their fontsize. This makes texts look more compact and actually adds a use to different font sizes. It is enabled by default.
  • changed the node confirmation window to properly draw all content. Be warned. Many content will still break the window.
  • fixed a bug that would cut of skill descriptions on word wrap.
  • added an option to draw a bigger window for a node. Added an option for this in the Tree Builder App. You can find it in each node.
  • fixed a bug regarding the background image in the node confirmation window. It should now display directly.
  • added the plugin command HASACTORNODEACTIVE [actorId] [tree uid] [node uid] [switch id].
    • it checks if and actor has a specific node in a tree active or not.
  • added a warning popup on start when you have a faulty node. Currently this only alerts you of skills that dont exists.
  • you can now open trees of actors that are not in the party using the TECHTREE [actorId] plugin command
v1.3.4
  • fixed a bug that made the tree look weird in certain cases
v1.3.3
  • added the plugin command ACTIVENODESGOLDCOST [actorId] [tree uid] [variable id].
    • it saves the gold cost of all active nodes for an actor and a specific tree.
  • added the plugin command ACTIVENODESJPCOST [actorId] [tree uid] [variable id].
    • it saves the JP cost of all active nodes for an actor and a specific tree.
  • added the plugin command ACTIVENODESITEMCOST [actorId] [tree uid] [item id] [variable id].
    • it saves the item cost of a specific item of all active nodes for an actor and a specific tree.
  • added the plugin command ACTIVENODESWEAPONCOST [actorId] [tree uid] [weapon id] [variable id].
    • it saves the weapon cost of a specific item of all active nodes for an actor and a specific tree.
  • added the plugin command ACTIVENODESARMORCOST [actorId] [tree uid] [armor id] [variable id].
    • it saves the armor cost of a specific item of all active nodes for an actor and a specific tree.

v1.3.2
  • added support for SumRndmDde's SwipeInput Plugin. This was only tested on Windows, but should work on mobile, too. See http://sumrndm.site/swipe-input/
  • added message replace features for descriptions: \V[x] \N[x] \P[x] \G \C[x] \I[x]. They should behave similar to the RPG Maker standard feature.

v1.3.1
  • fixed the RESETTECHTREE and RESETTECHTREES refund bug. It should refund or not refund accordingly.
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:

eXalted

Veteran
Veteran
Joined
Oct 29, 2017
Messages
30
Reaction score
14
First Language
English
Primarily Uses
RMMV
This looks incredible! Great work!
 

JamesRyan

Game Designer
Veteran
Joined
Sep 13, 2014
Messages
696
Reaction score
214
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 :)
 

Felski

Veteran
Veteran
Joined
Jan 5, 2018
Messages
113
Reaction score
95
First Language
german
Primarily Uses
Other
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
 

JamesRyan

Game Designer
Veteran
Joined
Sep 13, 2014
Messages
696
Reaction score
214
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!
 

SwiftIllusion

Veteran
Veteran
Joined
Jan 8, 2016
Messages
103
Reaction score
168
First Language
English
Primarily Uses
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.
 

Aloe Guvner

Walrus
Veteran
Joined
Sep 28, 2017
Messages
1,628
Reaction score
1,115
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).
 

SwiftIllusion

Veteran
Veteran
Joined
Jan 8, 2016
Messages
103
Reaction score
168
First Language
English
Primarily Uses
@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 :) .
 

JamesRyan

Game Designer
Veteran
Joined
Sep 13, 2014
Messages
696
Reaction score
214
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
 

Felski

Veteran
Veteran
Joined
Jan 5, 2018
Messages
113
Reaction score
95
First Language
german
Primarily Uses
Other
@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>
 

forteller

Veteran
Veteran
Joined
Dec 2, 2013
Messages
105
Reaction score
19
First Language
English
Primarily Uses
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?
 

masato94

Villager
Member
Joined
Oct 11, 2013
Messages
17
Reaction score
0
Primarily Uses
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 ?
 

Felski

Veteran
Veteran
Joined
Jan 5, 2018
Messages
113
Reaction score
95
First Language
german
Primarily Uses
Other
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 ?
So like a background picture below the skilltree window?
 

masato94

Villager
Member
Joined
Oct 11, 2013
Messages
17
Reaction score
0
Primarily Uses
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
 

Felski

Veteran
Veteran
Joined
Jan 5, 2018
Messages
113
Reaction score
95
First Language
german
Primarily Uses
Other
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?
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]

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
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
 

masato94

Villager
Member
Joined
Oct 11, 2013
Messages
17
Reaction score
0
Primarily Uses
Thank you so much !!! I can't wait to set everythings up *.*
 

boikish

Always trying to help :)
Veteran
Joined
Sep 8, 2016
Messages
154
Reaction score
49
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.
 

Users Who Are Viewing This Thread (Users: 0, Guests: 2)

Latest Threads

Latest Posts

Latest Profile Posts

Well, the local collections agency is hiring... bleh. I'm not rude enough for them to hire me. Even the people they collect FOR don't like dealing with them. >.>
EA: "Kids are buying currency, not using money to gamble. It shouldn't be illegal!"
Me: "So... kids should be allowed into casinos to buy poker chips and not spend them at the blackjack table? Pretty sure, even buying currency used to gamble is illegal for children."
Been hard at work in photoshop working with MOG scripts for main menu & victory result screens, might do all my maps and Npc chatter this week too!
rux
The most words I have ever written in an entire document is in my game's script, jeez i have a lot of characters that ramble on
Yes! I finally did something! This is a picture I drew of what I wish I looked like; I hope that you guys like it!

Forum statistics

Threads
105,494
Messages
1,014,167
Members
137,149
Latest member
Pytt37
Top