Introduction
This script recreates the License Board from Final Fantasy XII. Because of the Complexity of the Script there is a demo please if you are not an experienced scripter please use it.
What is the License Board?
From the FF Wiki page on the License Board
“The License Board is the ability system in Final Fantasy XII. It consists of a tiled board with hundreds of squares, each square representing an ability, spell, equipment piece or augment. By defeating enemies in battle, characters earn License Points, abbreviated LP. Characters must spend their LP to activate squares on the License Board, granting them access to new abilities and allowing them to equip stronger weapons and armor.”
Actor Notetags
<mini face: string> Sets the mini face used in the Licence Board
<quickening: x, y> Sets the skills designated as quickening for the actor
<squares unlocked: x, y> Sets what squares the actor has unlocked by default
<lp: x> Sets the actor’s starting LP
Enemy Notetags
<lp: x> Sets the enemy to give x LP when defeated
Script Calls
gain_lp(actor_id, amount) Increase the specified actor’s LP by the amount specified
Script Download, Demo, and Requirements
Required: Crystal Engine – Basic Module
Updated to Version 1.01
Updated to 1.02
Hi CrystalNoel!
Thanks for that script, I totallt amazed for that! But I would like you could tell me how the “augments” wokrs, because I saw the demo and the script but I don’t understand at all how “pharmacology” increases the effects of the objects: what’s that, a state, an event, a feature of a character?
If you look in Eric’s notebox you will see that there are traits being added three being ones that raise his Pharmacology Rate (PHA) the condition is if they have unlocked a certain augment.
OOOH! Using victor’s script, nice! I have another “question” : I know that your script isn’t able to but could be possible to have one license table for each character? I know that would be hard configurating each table alone but if you think it’s possible I would love to try it! ^^
There is one way that it is slightly possible. You could make a bunch of disconnected sections and have each character start in a different one. The script does not at all say you can’t have multiples of a license. What is cool about this method is that you could opt to have characters allowed in each other’s section by the switch license option by opening squares later on that connects the sections.
any way you might make a gambit system to
Probably. Once I complete Pokémon for Ace, I will add a requests page to the blog. How would it work with Ace? Autobattle AI? Change action by conditions? Add a menu option to let your Gambits pick your action? The issue is FF12 was in real time and RMVXAce is turn based.
Yeah i know im working on a project that takes place dureing the Ivalice alliance, kinda a FF12 3rd sequal, i know victors map battle script would kinda work for my game but im making the game to where there are no random encounters the player see the enemies but its event bases,
and if the enemy touches the actor it transits into a battle like normal.
anyways yeah to basicly where like you would go into your menu and like ff12 where you start with 1 slot but get extras but getting the liecence, and you would choose what you want the other actors to do if your not controlling them and have them, but be sorta like yanflys autobattle but where you choose what you want them to do.
Hey how do u set up the quickenings
how do you set up quickenings with the note tags
IF your there Im running in to a problem with the Liecence boad I cant figure out how to set up quickens
he will reply give him time right now tho i am having a problem with equips not working right due to the basic modual
did you try the quickens i cant figure out how to set the square up on cuz i get an error each time
do you have a plugin that adds them?
I didnt know there was one what script is it
apparently there is none so i do not know how to set them up but what i do know is that they are meant to be like limit brakes from the final fantasy games specifically FF7 i think but heres a script that dose that. http://www.rpgmakervxace.net/topic/6140-ve-command-replace/
well from scanning the LB script he has it to where you can set quickens up by tags, the prob is from what i read in other forums that he posted is that the quickens arent tested yet, so i dont know what the tag format for the quickens are or how you would set that square up, but since your haveing probs with the equip have you tryed setting the option on the script to false… where its says equipment_normal_condition, cuz thats set to where the actor has to have his/her trait set to equip the equip type if true.
A script that works alot better is yanflys battlecommand script
it’s only the base module nothing else is running you should look at the to find my problem
Did you place all others scripts that change the display above it
The problem is fixed now. It was an issue with the Licence Board way back and I used the equip issue to fix it and it is done.
ok thanks so i just need alil help with it what are the tags for the quickens, and how do you set up the quicken square
Don’t worry about the contests of what it unlocks as the script will ignores those. The script tells about the rest.
Ok got you, so the actor tag would say something like:
right
sorry for the doub post but i ment say (quickening: skiil 4 for example)
Like quickening: 127, 128, 129. With the things around it. I can’t post them.
When i test it, it crashes with an error saying Line 2275 Nomeathod error,
undefined method “type” for nilClass
What does this line say and what did you put for the square in the module
if square.type == :quick && !square.active[actor_id]
1 => {
:name => “Mist”
:type => :quick
:cost => 50,
:level => 1,
:file_name => “eva”,
:erase => false,
:switch => 0,
The file I just copied from augments and put it in the Quickenings folder I made cuz the icon suited it.
Fixed. Told the script to skip the square if it is nil.
Heres the line it says it has a problem with:
unless actor.skill_learn?($data_skills[i])
there error says can not convert RPG:Skill Into interger
And I fixed it download the script again.
I put the tag down like you said but when i try to get the liecence it says can not convert RPG:Skill into interger
Fixed. Set it so it knows what is there is a skill not a number.
thanks alot that did it, oh btw i found i gambit script if your interested all that need to be done is translateing it, the author made it to where the upgrades and targets are items
Translating to English from another language (what language) or from RGSS or RGSS2?
Japanesse… it works like a charm you set conditions via tag on the items, and when you turn it works basicly like we talked bout Autobattle AI,and nice work on haveing the augments use eval scipts to work off, not many scripts use evals.
What are the terms of use? Or is that is Japanese too. Anyways send me the script.
The terms just say that it was orignaly a rgss2 converted to rgss3 and that its free to use thats it although there might be more in the script but whats your email so i can send it
crystalnoel42@gmail.com
alright its sent enjoy and keep up the good work, oh 1 last thing now the LB works both ways with the pairing and with out or do you need them both.
What are the notetags? I don’t know how to use them. Also how do you advise I post it to avoid getting in trouble with the original Creator?
Sent an email to for setting conditions up and another 1 for the upgrades
Got a bug it says:
Line 1892 Type Error cant convert nil into a string
What is the line. Because of how the board is set up I don’t know what line it is.
file += folder
What is the square?
73
Give me the hash not just the id.
the orignal grid you had i kinda changed around and it worked until i started puting the licences in them i got to 73 which was gona be an augment i used victors script like u did and set the the tag then i tested it and got the error.
73 => [16,7],
The data, not the coordinates.
:name => “Training”,
:type => :augment,
:cost => 10,
:level => 1,
:unlocks => 6,
:file_name => “spi”,
:erase => false,
:switch => 0,
:description => “Gain an additional attack”
},
Set it with victs Script to give an extra attack,
Find the line that says: bmp = Cache.licence_file(CRYSTAL::LICENCE::SUBFOLDERS[square.type], square.graphic(@actor.id))
if 2 come up it’s the first one. Right above that line type p square.type.
Then press OK and exit the script list. At the top of the editor go to Game and make sure that Show Console is checked and Launch game in full screen is not. When the error is thrown tell me what it says at the last line in the console.
fixed it it was my typo that caused it,sorry for the inconvienance
The demo is no longer encrypted
Hi, I loved the idea of this script, so I tried it out. But whenever I try editing the board (putting my own skills and paths in place of the pre-made board), I continuously run into an error. After I purchase skills, they are simply not being added to the actors skill list! I did make custom tags for my skills (your code included :magic, :ability, etc. I added ones like :frost, :fire, etc), Could this be the issue? For some bizarre reason, a fair few problems I’m running into seem to have something to do with the augments, but as I’m new to Ruby scripting, I really don’t know. 😦
You have to also know the skill. It has to be learned. Final Fantasy 12 did it just like that.
Oh man, such a simple solution! Thanks very much for the speedy response! It’s working perfectly now. I can’t believe I didn’t think of that. XD
the only problem that I see even your scrpt is that LB is not modifiable once the game started.
if I was sloppy in LB. in testing I see that I’m wrong, I have no choice but to fix it.
The following error happens when attempting to access an actor’s licence board. Basic module 1.06, Licence board 1.04, copied straight from demo and added actors 11 and 12 to the BOARD_ACTORS hash, no effect.
Licence Board:3012:in `on_personal_ok’: wrong number of arguments (2 for 1) (ArgumentError)
from Window_Selectable:212:in `call’
from Window_Selectable:212:in `call_handler’
from Window_Selectable:331:in `call_ok_handler’
from Window_Selectable:322:in `process_ok’
from Window_MenuStatus:67:in `process_ok’
from Window_Selectable:297:in `process_handling’
from Window_Selectable:276:in `update’
from Scene_Base:95:in `block in update_all_windows’
from Scene_Base:93:in `each’
from Scene_Base:93:in `update_all_windows’
from Scene_Base:49:in `update_basic’
from Scene_Base:41:in `update’
from YEA Debug menu:417:in `update’
from Scene_Base:14:in `main’
from SceneManager:23:in `run’
from Main:9:in `block in ‘
It seems that the engine doesn’t register that the basic module lines 90-94 have arguments as optional.
That is compatibility issues. What other scripts are you using?
Found the problem: Moghunter’s Transition_EX script overwrote the SceneManager’s call function. Thanks for pointing out compatibility, it didn’t show up anywhere on the debug log so I didn’t think of it. Altered the transition script, now calling the LB scene works fine.
I had that issue with Pokémon for Ace before and did the exact same thing.
Hello! There isn’t the opcion to save the “starting place” of each character? To begin in differents places because each one would “need” some improvements faster than others ones. It would be great =)
I need a bit more detail of what you mean.
So first of all — thank you!!! This script might actually change my life. At least in regard to RPGMVXA. But here’s my problem: customizing from the demo works fine; I have no problems with the Traits script in and of itself; yet when I try to customize within my own project, I get this message referring to the Traits script: “line 367: NoMethodError occurred. undefined method ‘[]’ for nil:NilClass”. Obviously there is something missing somewhere, but I literally have only changed the license board, and the traits/augments in my players. I just don’t know where to look to find the missing link, and I don’t want to just blast off my scripts and ask someone to find the source of the error. Has this particular stop happened to anyone else, and if so, how did you find the mistake and fix it? I am barely proficient at scripting obviously, so straying off the path usually gets me into the weeds, but in the past finding the mistake has been easier. Any feedback you might have to share would be great. Thank you in advance for your help!
How many augments have you made?
Thanks for your reply! After a bunch of testing everything seems fine until I add player notetags. So for example:
augment?(9);
augment?(11);
augment?(12);
augment?(13);
augment?(14);
and
augment?(8);
augment?(10);
augment?(9);
Thoughts? Am I just an idiot?
Oops: trying that again:
”
augment?(8);
augment?(10);
augment?(9);”
and
”
augment?(4);
augment?(5);
augment?(8);
augment?(10);
augment?(6);
“
"
augment?(4);
augment?(5);
augment?(8);
augment?(10);
augment?(6);
"
and
"
augment?(8);
augment?(10);
augment?(9);"
Very sorry about that! To answer your question, I have made 14 augments in total. Examples of player tags:
<trait hp lower 20%: special param, 6, 50>
augment?(8);
<trait hp equal 100%: basic param, 2, 120>
augment?(10);
<trait hp lower 20%: basic param, 5, 150<
augment?(9);
and
<trait custom: extra param, 1, 102<
augment?(1);
</trait custom<
<trait custom: extra param, 1, 107<
augment?(2);
</trait custom<
<trait hp lower 20%: basic param, 2, 150<
augment?(7);
<trait hp lower 20%: special param, 6, 50<
augment?(8);
<trait hp equal 100%: basic param, 2, 120<
augment?(10);
<trait custom: extra param, 1, 112<
augment?(3);
</trait custom<
Strange nothing looks put of the ordinary
If it helps, here are the exact lines in the trait control script that seem to be originating the problem. Obviously this is not your script, but hey, I figure you know it pretty well to write yours!
366 get_all_notes.scan(regexp) do |type, id, value, cond|
367 next unless eval(“#{cond.gsub(/\r\n/i, “;”)}”)
368 add_condition_trait(type, id.to_i, value2.to_i ? value2.to_i / 100.0 : 0)
As soon as I remove the augment notetags, poof, no problems! So weird.
Is it possible that you saved the game and then added more augments to the board?
Hmm. Don’t know if this makes a difference, but I removed the traits that were dependent on HP levels (I will utilize these another way) — this brought the total number of augments down to 9 — now everything works perfectly again. Is there some built-in limit to single-digit augment numbers? Bah, regardless, it works!
*Of course the lt and gt are correct in the notetags, I just screwed them up pasting them in here…*
No, I know that is often a problem but have been playtesting without creating a save thus far. Finished troubleshooting and everything works perfectly in playtest until I add the augment notetags, but if they look ok to you i have no idea. I even re-installed the VE basic and trait scripts fresh, and your basic crystal engine and license scripts fresh as well (changing only the squares again). I’m baffled but don’t want to give up on your great augment system…
dear crystal, your LB script is very powerful. we like it very much.
but current LB connects directly with a Actor, not with a Career.
So how could a actor chooses a career freely?could you create a new script
Are you looking for something akin to the Inernational Zodiac Job System?
Thanks for your previous comments, I was able to figure out the problem and make everything work! What an awesome script — you really deserve a round of applause. If I may offer a suggestion to jackmanj, this is essentially what I was working to create, but the only way I could really link the license board to a job was to create one big LB with the jobs’ squares not crossing into one another, then create multiple versions of each character, each in every possible job. Then, as they join the party, the player selects which job to assign which character, and this links them to a starting square on the LB. Multiple characters can all have the same job this way, but unless they unlock “bridges” between certain jobs later in the game, they cannot “switch” jobs later in the conventional sense. There may be an easier (and less painful) way to do this, but it works perfectly in my game. Suggestions readily accepted!
Hey is it possible to use your GF system with this Instead of Yamis Guardain System
I’m making a game with the Final Fantasy IX Script Pack.
The scripts are compatible?
How can I make the Licence Board appear in the FFIX menu screen?
Hey there crystal,
I was using this script when I realized you can’t actually have a tile that unlocks different types. For example, a tile unlocks the use of the Flamebrand weapon, the Scorching Rend skill and the Dragonseye Bracelet accessory. Is there any way this is achievable?
No, this was not possible in FF12 either.
Thanks again, totally forgot to reply and say thank you.
I know this wasn’t doable in FF XII but is there an easier way to include say tiles that have “Attack +2” then with making like two hundred traits? I’m trying to get a blend between the License Board and Sphere Grid. I much prefer the LB visuals and unlocks but want the stat progression to not be level based, like on the Sphere Grid.
Still getting a cant convert Skill to interger when I unlock the Quickenings
Hey Im getting the same errors as bebore basicly do you have the fixed script at hand
don’t know why but i’ve got this error:
There were tiles that allowed you to raise the HP of a character, obviously in relation to FF12 that’s irrelevant but in VXACE I’m fairly sure HP functions like the other stats do. My point being, if it can be done for HP, logically it should be able to be done for other stat.
tl;dr Is there a way to allow tiles to add an amount to an actors stats?
hi, was just wondering if anyone could help me?, I was using the demo and after I acquire belias and unlock him on someones LB I cant access the LB with another actor.
It comes up with
Script ‘license board’ line 2669: NoMethodError occurred,
undefined method ‘name’ for #
Help would be much appreciated as ive spent days trying to work it out myself, Thanks MAZIO
Updated to version 1.06. I added support for my GF System. The constat ESPER_LICENCE_FOR_PAIR now also can restrict your ability to junction to another actor.
This script is really cool, CrystalNoel42. I got hung up for a few days scratching my head about how to use the augments, but now I have it figured out and am having a lot of fun designing a custom board for my project. Thank you so much for making this script and sharing it with the rpgmaker community.
Okay, I set up several test augments, and I don’t seem to see them alter my attributes in any way.
I did a test on your demo as well, the actor’s atk doesn’t seem to be impacted after learning the battle lore augment there as well.
Is there a script I am missing that makes these augments work?
Can it work with Luna Engine? I’m triying but…i simply can’t! Maybe im a little dumb…can your help me?