Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

[YERD] Subclass Selection System

Subclass Selection System
Last Update: 2009.05.05
By: Yanfly Engine ReDux

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

Update History
  • 2009.05.05 - Finished demo. Fix up remaining bugs.
  • 2009.04.30 - Finished script. Started on demo.
  • 2009.04.29 - Started script.

Screenshots
sss_title.jpg


Script
Click here to view the main script.
Click here to view the Victory Aftermath Expansion Page.
Click here to view FAQ.

Demo
There is a demo available to see how this script runs.

Title.jpg

Click here to grab the demo.

Instructions
Since this is a big script, I’ve included a number of screenshots to explain everything (hopefully).

---------

sss_howto1.jpg


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.

---------

sss_howto2.jpg


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.

---------

sss_howto3.jpg


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.

---------

sss_howto4.jpg


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.

---------

sss_howto5.jpg


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.

---------

sss_howto6.jpg


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.

---------

sss_howto7.jpg


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.

---------

sss_howto8.jpg


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.

---------

sss_howto9.jpg


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.

---------

sss_howto10.jpg


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.

---------

sss_howto11.jpg


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

---------

sss_howto12.jpg


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.

---------

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 have questions, read the FAQ first before asking them.

Compatibility
- Works with KGC Help Extension, Equip Extension, Custom Menu Command
- Works with Yanfly Victory Aftermath
- Does NOT work with KGC Skill CP System
Please report any compatibility issues and I'll try my best to fix them.

Terms and Conditions
Just give credit where due.

Credits and Thanks
- My Beta Testers: Ruka, Jiu, Shadow, Trance, Akira, Kerigis
- Final Fantasy Tactics for influence.

Originally Found Here: Here
 

Gimnis

Member

woow, this is an awesome script!
i will be definitely using that!
only that my game is in RMXP... is there a chance you'll make a version of it for XP?
 
Gimnis":2jq3tr6h said:
woow, this is an awesome script!
i will be definitely using that!
only that my game is in RMXP... is there a chance you'll make a version of it for XP?
Unfortunately, I don't have RPG Maker XP so most likely not. =/
However, if anyone's up to the task of converting this to XP, by all means, do it. You have my preemptive permission. =]
 
Like others said its awesome! thanks for the script ive been using VX so i am glad to have this kind of script that I can add to my game. :biggrin:
 
Upgrade Pack 1 is here!

---------

sss_howto13.jpg


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

---------

sss_howto14.jpg


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.

---------

sss_howto15.jpg


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.

---------

sss_howto16.jpg


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.

---------

sss_howto17.jpg


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.

---------

http://www.pockethouse.com/rpgvx/script ... system.txt
 
This is an awesome script and I'm defenently going to play with it, but before I start looking at the script is there a way to make it so a class requires a certain % Master of another class to obtain it? If not then I'll have to look into it.

New Question, is there any script calls for this one? Like maybe if I want to unlock a class with a script call.

Lol forget all of my questions I've figured it out. :smile:
 
Does this script of pure awesomeness support vlad's sbabs v.4 =P?

P.S What does JP stand for :O? And is it possible to change the name of it and maybe perhaps the amount of JP's earned in battles and such?
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top