Link to Subclass Selection System Script.
Link to VAEP Gain JP script.
Link to Demo: RPG Maker Tales VX – Episode Subclassia
Link to FAQ page.
Last Updated: 2009.05.16
There’s been a lot of scripts where class changing is possible, but I’ve yet to see anything about a subclass system. Although this script allows changing primary classes, its main focus is the subclass system. There are many rules you may set for your subclass system. You can enable or disable equipment sharing amongst classes. You can choose how subclasses affect your base stats or not at all. You can determine how skills can be learned via subclass, etc.
CLASS SYSTEM
Classes are now split between primary and secondary classes. You can set many different rules for each class here inside the script. Secondary classes will expand the skill pool and equipment pool an actor has. With the class system, actors can also get a change in their base stats depending on which class they have equipped at the time. They can also get different amounts of boosts for their stats upon leveling up. The possibilities are vast.
JP SYSTEM
There is a new stat for each actor called JP. This new stat can be earned through various ways. It can be earned in battle, from items, attacking, using skills and items, and guarding. All of that can be modified. What JP does is allow your actors to learn new skills through a JP purchase system. These skills are unlocked when JP is spent on them and an actor will permanently have the skill at their disposal.
UNLOCK SYSTEM
Classes are unlocked via directly class changing, items, or learning specific skills. Scripted events can also directly unlock classes for actors if that’s what floats your boat. There is no direct tier system implemented with this script since there is too many different ways people would love to have their classes unlock and whatnot.
UPDATES
- 2009.05.16 – Upgrade Pack 2
Primary-Only Classes and Subclass-Only Classes implemented.
Search for PRIMARY_ONLY_CLASSES and SUBCLASS_ONLY_CLASSES
Classes can now have special traits.
Actors can now change graphics when changing their primary class. - 2009.05.12 – Mini-Update
Can now event call the menus using the following:
$scene = Scene_Class_Change.new
$scene = Scene_Learn_Skill.new - 2009.05.10 – Upgrade Pack 1
Even more lag reduction.
Added level requirements and skill requirements.
Added Actor-Specific Common Skills Options
Added Primary-Class Only Skills Options
Added Subclass Only Skills Options
Added percentile growth rates dependent on primary and subclass
Added Actor-Restricted Classes Options
Added Primary/Subclass Stat Rate Percentage Options
Added two states that affect JP gain rate.
Added mechanic: Learning certain skills can unlock classes.
Fixed a few bugs regarding HP/MP during class changing. - 2009.05.07 – Lag reduction. Reduced crashes for users inputting incomplete data.
- 2009.05.05 – Finished demo. Fixed up remaining bugs.
- 2009.04.30 – Finished script and started demo.
- 2009.04.29 – Started on script.
EXPANSIONS TO COME
- Class Tier System
- Class Unique Traits
HOW TO USE THIS SCRIPT
Since this is a big script, I’ve included a number of screenshots to explain everything (hopefully).
———
Since I know not everybody is going to want these options to appear immediately (or some of them to appear at all), I’ve binded four switches to the appearance of these options. Enable them by going into the event editor and turning the switches to true. The options will then be provided for the player.
ALLOW_CHANGE_PRIMARY_SWITCH, ALLOW_CHANGE_SUBCLASS_SWITCH, ENABLE_CLASS_CHANGE_SWITCH, ENABLE_LEARN_SKILLS_SWITCH
Should you like to change the switch ID’s, adjust those four entries there within the module to meet your demands
ALLOW_EQUIP
If true, actors can wear equipment allowed by their subclasses.
———
Let’s start with the Class Change menu. Here, the player can change their primary class (so long as ALLOW_CHANGE_PRIMARY_SWITCH is true) and their subclass (so long as ALLOW_CHANGE_SUBCLASS_SWITCH is true). “Learn” is a shortcut to go to the skill learning menu and “Finish” is as it means, ends the class changing process and goes back to the main menu. On this screen, it displays what the player can change their primary and subclass into, the stat difference after making the change, and each class’s JP totals.
If desired, the string data can be changed in the script’s module through MENU_CLASS_CHANGE_TITLE, PRIM, SUB, LEARN, and DONE. Icons can be swapped out for different ID’s as well. Just modify their ID’s as you see within the ICONS array.
———
You may restrict particular actors to a certain set of classes. No matter what classes the actor unlocks, the actor will not be able to extend the classes it can change to past the set. This can allow you to keep magic-centered characters to stay magic-centered characters. The actors will still have to unlock each and every class inside the hashes.
ACTOR_RESTRICTED_CLASSES
This hash allows you to adjust which actors will have access to which classes and only those classes.
———
This was something that was added a previous update, but I redid this portion so that it’ll reflect properly in the class equip window. Some classes can be designated as either a primary-only class or a subclass-only class. Primary-only classes cannot be equipped as subclasses and vice versa. This, while it limits the player more, can restrict some classes to exist as only branches rather than mains. It’s also recommended that you don’t overlap primary and subclasses only classes since it’ll make neither of them selectable.
PRIMARY_ONLY_CLASSES
Find this array and add class ID’s to it if you want those classes to be primary only.
SUBCLASS_ONLY_CLASSES
Find this array and add class ID’s to it if you want those classes to be subclass only.
You can still change into those classes via forceful means.
———
Considering some class combinations can provide extremely long names that will end up getting smushed when viewed, there is the ability to swap out the combination name into something else. Note that the class combination results aren’t backwards compatible. For instance, a Knight/Magician becomes a “Magic Knight” while a Magician/Knight becomes a “Spell Sword.” You can edit these to however you’d like them and even make up more unique names. Single name classes generally don’t have unique names to accompany them.
———
If an actor is a specific class, they can get additional stat bonuses for leveling up with that class. This can be enabled for both the primary class and subclass within the module. Look for the CLASS_STAT_BONUS_SET and CLASS_STAT_BONUS_RAN to adjust the stat increases for each class. Or you can enable one or the other, or neither at all. The extra bonuses the actors receive can be adjusted within the table above. These stats can be a set increase or a random increase (found on the table below the set increase). Determine what’s suitable and fitting for your classes when leveling up.
———
In addition to setting increases with your classes, you can have your primary class and subclasses affect base stats. They will affect the actor’s base stats by a percentage, which will be determined by whatever you input within the CLASS_STAT_RATE table. You can also enable whether or not you’d like for both primary and subclasses to affect stats, only one of them, or neither of them at all.
———
Classes can now have unique traits when they’re equipped as a primary class or as a subclass. For instance, the Grappler class has the “barehanded” trait which increases attack power when no weapon is equipped. This is demonstrated in the screenshot above when Ralph goes to unequip his weapon. His attack power jumps from 337 to 373.
PRIMARY_TRAITS_HASH
This will designate which traits are available for each class when equipped as primary.
SUBCLASS_TRAITS_HASH
This will designate which traits are available for each class when equipped as a subclass.
If you want traits to appear for both classes whether or not it is equipped as a primary class or subclass, just put the class ID’s in both cases (like in the screenshot above). The traits obviously will not stack if both the primary and subclass has it. Here is a list of traits you may add to each class.
“auto battle” – Actor will automatically attack.
“super guard” – Actor will take even less damage when guarding.
“pharmacology” – Items will have double effect when used by actor.
“fast attack” – Actor will strike quicker when using normals.
“dual attack” – Actor will strike twice when using normals.
“prevent crit” – Critical hits don’t work against actor.
“half mp cost” – Actor spends 50% less MP.
“double exp” – Actor gains double the exp.
“double jp” – Actor gains double the jp.
“barehanded” – Actor gains a boost to attack if no weapons equipped.
“maxhp up” – Actor gains a boost to maxhp outside of class rates.
“maxmp up” – Actor gains a boost to maxmp outside of class rates.
“atk up” – Actor gains a boost to atk outside of class rates.
“def up” – Actor gains a boost to def outside of class rates.
“spi up” – Actor gains a boost to spi outside of class rates.
“agi up” – Actor gains a boost to agi outside of class rates.
“no weapon” – Actor cannot use weapon slot.
“no shield” – Actor cannot use shield slot.
“no helmet” – Actor cannot use helmet slot.
“no armour” – Actor cannot use armour slot.
“no accessory” – Actor cannot use accessory slot.
“no equips” – Actor cannot use any equip slot.
“all weapon” – Actor can use all weapons.
“all shield” – Actor can wear all shields.
“all helmet” – Actor can wear all helmets.
“all armour” – Actor can wear all armours.
“all accessory” – Actor can wear all accessories.
“all equip” – Actor can wear everything.
And that’s it for unique class traits.
———
If you feel artistic or if you want Ralph to grow a beard when he changes classes, there is now an option to alter your actors’ graphics when they class change. Note that these changes only apply when the primary class is changed and not the subclass. When changing graphics, the actor’s field sprite and face art will change. However, only certain actors can class change and those are the actors listed within the CHANGE_ACTOR_GRAPHICS array. Any other character outside of the hash is locked from graphically changing. Actors can change their graphics based on a common pool or an individual pool. If their ID is listed inside the GRAPHIC_HASH, the actor will have his or her own unique set of graphics to change around. If the actor is not listed in that hash, the actor will take on Actor 0’s graphic pool and change according to that.
CHANGE_ACTOR_GRAPHICS
This array determines which actors can change their graphics when they swap primary classes.
GRAPHIC_HASH
This hash displays all of the graphic changing data available. Read the instructions inside the script to better understand how this hash works.
———
Let’s go into the “Learn Skill” menu. Here, actors can spend JP they’ve earned for their respective classes to learn new skills for themselves. Learned skills are never forgotten, but they won’t be available for use unless either the primary class or subclass pertaining to that skill is equipped. This means a Knight/Magician can’t use Grappler skills until the actor switches to the Grappler class for their primary class or subclass.
USE_JP_SYSTEM
If you wish to drop the JP system altogether, set that option in the module to false.
MAX_JP_EARNED
This will determine what’s the maximum JP in a class that an actor can store.
———
To determine what skills each class can use, you must first adjust the CLASS_SKILL_ALLOW arrays. Input the skill ID’s into the respective arrays for each class ID. These skills will become limited to only those classes unless they exist in other classes. However, if you place the skills into class ID 0, those skills will become common skills and usable regardless of what class the actors have equipped
———
Some skills can be applied to being primary-class only or subclass-only. These skills will only become available if the class is equipped as a primary-class or subclass (depending on which skills you allot to the proper hashes). They will be indicated by a different icon instead of the usual card icon.
PRIMARY_ONLY_SKILLS
This hash adjusts which skills will be available to which class if the class is equipped as a primary class.
SUBCLASS_ONLY_SKILLS
This hash adjusts which skills will be available to which class if the class is equipped as a subclass.
PRIMARY_ONLY_ICON
Sets the icon displayed for primary-only skills.
SUBCLASS_ONLY_ICON
Sets the icon displayed for subclass-only skills
———
Also, the before-mentioend arrays determine which skills will appear within the “Learn Skill” menu command so long as those skills have a JP cost. You can set the skill’s required JP cost within the skill’s notebox by using the <jp cost x> tag. If you don’t want a skill to be unlockable through spending JP, just don’t give the skill a JP cost and it won’t appear on the list. However, those un-JP-learnable skills will still count towards the class’s mastery percentage.
———
With the <require skill x> tag in a skill’s notebox, that skill will require skill x to be learned before the skill itself can be learned. This can be used as a tier system to prevent learning higher level spells before learning lower level spells. When a skill requires knowledge of another skill, the JP cost will be replaced with “Requires” followed by the icon of the skill it requires. If you wish for a skill to require multiple spells to be known before it can be learned, just input more <require skill x> tags.
<require skill x> This tag will prevent the skill from being learned until skill x is learned.
REQUIRE_SKILL
This adjusts the string data to replace “Requires”
———
On another note, you can make some skills to require the actor to reach a certain level before a particular skill can be learned. If the actor has not yet reached the required level, the JP cost will be replaced by the level it requires the actor to be. Use the <require level x> tag in the skill’s notebox to designate what level is required for the actor to be before the skill can be unlocked using JP.
<require level x> The actor must be at least level x before it can learn the skill.
REQUIRE_LEVEL
This adjusts the string data to replace “Level x”
———
For those wondering about how actors will earn JP, there’s a number of ways. The actors can perform normal attacks, perform skills, guard, or use items. All of these can be enabled or disabled and each of them can have different amounts of JP adjusted. JP earned in battle will only be applied to the actor’s primary class and the actor’s subclass. However, there is a percentile split between the primary class and subclass JP earnings.
By default, the primary class will earn 100% of the JP earned through battle. This can be adjusted through EARN_JP_MULTIPLIER_PRIMARY.
By default, the subclass will earn only 50% of the JP earned through battle. This can be adjusted through EARN_JP_MULTIPLIER_SUBCLASS.
———
In addition to actions giving JP, you can adjust the rate at which monsters give JP upon defeat by changing ENEMIES_DEFAULT. If you would like certain enemies to give a different amount of JP than the rest, simply put in the <enemy jp x> tag into the respective enemy’s notebox and they’ll provide that amount instead of the default. To make some enemies not give off any JP at all, put in the <enemy jp 0> tag to prevent them from doing so.
———
Those who use Display Victory Aftermath can have an extra page tacked on to display JP earnings. In addition to the extra page, there’s a whole new set of quotes you can let your actors say. You can find that extra page add-on here. Let those creativity juices continue flowing
———
By placing <bonus jp per x> or <bonus jp set x> into your states’ noteboxes, actors under the effects will receive a boost to their JP earnings. <bonus jp per x> will adjust the percentage rate the JP is earned at while <bonus jp set x> will give a direct and static boost to each JP boost.
<bonus jp per x> x is the percentage rate at which JP gain becomes.
<bonus jp set x> x is the set amount added each time JP is gained.
———
And finally, last but not least, if you wish to not give your players access to the class changing menu, but would still like for them to have their primary and subclasses changable, you can do so through the usage of items. There’s five new tags for items and they function as follows:
<set primary x> This will set the target actor’s primary class to class ID x. It will also unlock that class for the actor.
<set subclass x> This will set the target actor’s subclass to the class ID x. It will also unlock that class for the actor.
<unlock class x> This will just plain flat out unlock class ID x for the target actor. Insert multiple of these to have one item unlock more classes.
<lock class x> This will remove a the unlocked class ID x from the target actor. Insert multiple of these to have one item lock multiple classes.
<gain jp x> This will grant the target actor x JP. The same rules apply. JP is given to the primary class and subclass (with their multipliers).
And that’s all there is regarding item effects.
———
CREDITS
- Beta Testing Team: Ruka, Shadow, Kerigis, Jiu, Trance, and Akira.
- Final Fantasy Tactics for the heavy class and JP system and influence.
———
FINAL STATEMENTS
And that’s all~ This script’s been made for several purposes. Main reason was to provide ease with class-switching and the other was to provide more replayability within RPG Maker VX games (something that’s rarely ever in it). The third reason was for people to put more thought into their own game’s mechanics should they use this script. As this script requires a rather huge range of things to be done before it’s adaptable for any RPG Maker game, creators will need to understand their own game even further. This, I believe, is the first step to making an enjoyable game for their players to smile at.
———
IF YOU ARE HAVING PROBLEMS WITH THESE SCRIPTS, REVIEW THE TROUBLESHOOTING PAGE FIRST!






















2009, May 9 at 8:56 am |
That was an excellent demo, and I really had fun with it, finishing it at around two hours.
I actually do hope there will be a sequel, haha.
2009, May 18 at 1:51 pm |
Hello there!
Whoa, this script is incredible! Well, i dont want to use it in my game, my game isn’t class based but i love these systems and your sistem is helpful!
Well, im trying to write a script that will cause a huge noise (maybe only in my country or my community [VilaMakers], i have to admit), but its taking time and patience.
If you can, talk about your experience, difficults, and other things about scripts, ok?
Keep the good job!
Rafael Sol, Brazil.
2009, May 21 at 5:24 pm |
WoW, nice script.
I have one question… In the UNLOCK SYSTEM you said that “scripted events can also directly unlock classes for actors”, but I don’t see the way to do it.
I’m interested in to unlock a subclass in the middle of a conversation without the use of items. Is there any way to unlock a subclass with a script call?
Thanks for this amazing script.
2009, May 21 at 8:10 pm |
$game_actors[1].unlock_class(10)
$game_actors[2].lock_class(11)
$game_actors[3].unlock_all_classes
$game_actors[4].lock_all_classes
2009, May 30 at 7:00 am |
Is there any way to disable the menu command in the main menu and only available in Scene Status ReDux? Thanks!
2009, May 31 at 1:15 am |
You’d have to use KGC’s Custom Menu Commands for that.
http://www.pockethouse.com/rpgvx/scripts/kgc_custommenucommands.txt
2009, May 31 at 9:54 am |
Oh! Thank you very much!
2009, June 2 at 6:39 pm |
Sorry to bother you again, but when I use this script, only the skills already learned by the class appear and I can’t learn any other skills. I’m using the latest version with the needed scripts.
2009, June 2 at 6:42 pm |
Sorry about that, I got it now.
2009, June 13 at 2:38 am |
Suggestions:
Enable the change of class name to complex classes with some actors, a start script to change the class of an actor to a complex class, already have a certain or variable amount of jp, enable the learning of class skills from weapons, enable the sprite change of an actor (generic) when changing classes. I admit the last one is hard….
2009, June 13 at 6:53 am |
This script is great! Is there any way to use this script with the Custom Battle Actions?
So instead of actors having custom battle actions, classes will have custom battle actions?
2009, June 13 at 7:13 am |
O___o; Never mind. I didn’t read the script carefully lol, sorry
But is there a way to make a class like blue mage which could then learn monster skills?
2009, June 13 at 7:25 am |
kaineru: Most of those are already possible. Please read through all of the instructions I’ve had to offer. -.-
Twilight: Check out Custom Skill Effects. You can make classes learn skills upon being hit with them.
2009, June 14 at 2:09 am |
Yep some, but I’m kinda stupid… (Specially on the first suggestion….)….
So there is a way so an actor equipped with a subclass will have a different complex name than the normal one that one has edited?….
Sorry I’m kinda a bit of a prop nut… X_x
2009, June 14 at 2:16 am |
That one you’re better off not even bothering since the process of doing it that way will end up causing more workload for the people using the script.
2009, June 14 at 2:47 am |
I see…. cause I a noob to scripting….
But it’s something nice…. But what convenient if I can have an actor to join later in the game to have insert no. of JP here from a set or variable… I’m kinda stuck on figuring that out…
2009, June 14 at 3:06 pm |
Thanks a lot! Sorry for the newbie-ish questions lol
2009, June 25 at 1:52 pm |
Error with the Gain JP script…
Image:
http://img222.imageshack.us/img222/8981/errorruw.jpg
HELP, plz?
(You have coolish scripts!!)
2009, June 25 at 4:57 pm |
You need Display Victory Aftermath.
2009, June 25 at 5:58 pm |
Ok, ty
2009, June 27 at 1:26 pm |
Hey, ’tis me Oko!
I have a bit of a problem. My actors are by default set to a certain class. However, their base stats are not the ones I specified in the appropriate section of the script. Why is this?
The actor, instead of following the base stats that were in the script, followed the base stats that were in the “actor” page, the parameter curve and whatnot. Is there a way to set the base stats the way I want them?
Note: JP system and Subclass system are turned off. e.g., subclass does not affect base stats, rather it’s set to false. Subclass does not affect level bonuses, rather it’s set to false.
Any help would be much appreciated ^_^ it’s really a wonderful script.
2009, June 27 at 1:42 pm |
The base stats adjusted in the script are a percentage, not a set amount.
2009, June 27 at 2:13 pm |
That explains it–so if I set Attack to 120, that means that Actor A set to Class X will have 120% of his attack stats. Tell me if I’m doing this wrong…XD
This may not be the script I’m looking for, but I’ll keep hunting. Thanks a lot for the other functions your scripts (this one included) will play in my game. See you in #rrr =D
2009, July 7 at 12:54 pm |
I want to combine this script with a script to choose your party members. The thing is, I only want the party members that DON’T participate in battle to get JP. I kind of want to use the Integrated Reserve Party system, but I’m not entirely set in stone on that. If anyone could help me make it so that only non-active party members receive JP, that would be greatly appreciated!
2009, August 5 at 9:25 am |
Hey sorry to bother you about this but I had requested an add on for this script but someone said it was too hard to perform, even so I wanted to ask the author just in case. How difficult would it be to add these two features to the script.
1: A NOSHOW option for classes in the “Learn Skills” menu.
2: Giving rewards upon class mastery (gold or items) the purpose of this was to give the player an item once a class had been mastered which would be used in a synthesis event to create a new class assigning item.
Thanks
2009, August 10 at 9:27 pm |
This new version of the script has a problem with skills being learned on a certain level. Say you needed to be Level 5 to learn Recover. For some reason, it would still say Level 5 until you became Level 6 and THEN you could learn it.
Not to worry though, thanks to Yanfly’s Subclassia Demo that had an older version of the script, I was able to fix the problem and how it seems to work now. I don’t know if it has affected anything else yet.
Within the script, look for the first 3 cases of:
elsif skill.require_level >= @actor.level
And on those 3 first cases, just delete the = sign:
elsif skill.require_level > @actor.level
So far that has seemed to fix that problem. Hope that helps anyone else who has noticed this.
2009, August 19 at 7:10 pm |
I was just getting pissed off at this. Thanks for the help.
2009, August 19 at 7:22 pm |
There is a problem though. It doesnt display the white text anymore when you meet the level requirement.
2009, August 19 at 7:40 pm |
Whoops my bad. I tried checking by pressing Ctrl F and typing that in but it only showed 2.
Here is all three.
Find this —> enabled = false if skill.require_level >= @actor.level
and remove the = after the >
Then find this —> elsif skill.require_level >= @actor.level
and remove the = after the >
There will be two of the ones above and I think only one of the
enabled = false if skill.require_level >= @actor.level
2009, August 25 at 10:37 pm |
Sorry for the late response, I don’t look here much. But there are 3 cases. One makes the letters white, one makes it able to be learnt on said level, and one makes it to change to JP cost to be shown rather than level shown when you hit required level.
The lines should be around… 2676, 3280, 3318. Sorry I guess I should of said to search for
“>= @actor.level”
Then replace “>=” with “>” think that should do it.
2009, August 19 at 7:52 pm |
Sorry for posting again but to make sure…
there are two
elsif skill.require_level >= @actor.level
and only one
enabled = false if skill.require_level >= @actor.level
I hope that’s more clear lol…
2009, August 24 at 1:32 am |
Is there a way so that actors can only learn skills when they have a specific class/subclass combination…
EX.. when actor 1 is a knight as a primary, and a warrior subclass, therefore a gladiator, only then can he learn ultra swing.
2009, August 24 at 2:57 pm |
OH, also, any classes without skills dont show up as a selection on the skill shop menu
2009, September 2 at 7:59 pm |
I’m not sure how to do that. I think if you look at
the code or read what Yanfly put in the script it may help you.
2009, September 22 at 8:53 am |
hi I’ve got problems when I applied subclass selection system script. I tried playtesting and the game starts just like usual until I found that THE ACTOR WON’T MOVE! If I remove the script, the game will be back to normal (the actor can move again). I wonder what’s wrong with the script (or my game), because I just copy-pasted the script directly from the site without changing anything. please help. thanks very much
2009, November 14 at 3:42 pm |
how do I make a variable for how much a certain actor has?
2009, November 20 at 2:25 am |
So, the icons are, in a word, stuck. For some reason, I change them in the module, and they still stay at their defaults when I go to test play.
2009, November 20 at 10:08 am |
No, they’re not.
2009, November 22 at 7:39 am |
How do I unlock a class via scripted event? you say we can, but you never tells us the script command…
I’d like to be able to use a common event to unlock classes for certain actors, so I can ’sell’ them in your Common Event Shop.
2009, November 22 at 12:18 pm |
$game_actors[x].unlock_class(y)
2009, November 22 at 5:44 pm |
Okay, fixed that problem. For some reason, whenever I run to one of those bonus traits (e.g. “agi up”, “pharmacology”, etc.), and try to switch to that class in Class Change (test run), I get an error in the script. It doesn’t happen with traits when I use them in the main class.
2009, December 10 at 11:08 pm |
Is there a script call to unlock one class for all actors (as opposed to unlocking all classes for all actors?)
2009, December 13 at 2:09 am |
Ok, is there a way that you can add “JP” onto the YanFly Custom Menu ReDux in the little box with the time and the steps and map and gold? Please reply soon!