Indie Dev

Hello Guest!. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, sell your games, upload content, as well as connect with other members through your own private inbox!

FFVIII Style Draw System Tutorial

Lark Monster

Towns Guard
Xy$
0.00
Hello! I thought I would share a quick tutorial on how to make your own Draw System similar to what you see in the game Final Fantasy VIII. In this tutorial we are going to give our Mage a new skilled called Draw. Using this skill, we are going to Draw magic from our enemies. Once our Mage has enough of a certain magic in their inventory, they will then be able to learn how to cast that specific magic.

Please note that this system does not include summons or Guardian Forces, however you could add that in if you really wanted the actual FFVIII style of Draw System. Also note that a lot of the work you need to do is done within the Database, and much of what you do you can alter based on your wants & needs. This is just the basics to give you a general idea of how to do it.


Required Plugins:
The following plugins are necessary for this to work (at least in the way I've done it). This is also the order they should be placed in within the Plugin Manager. Please keep in mind that if you are using Yep.66 - Steal & Snatch for a character that uses Steal, changing any settings will impact that as well.

Let's Begin!
For the purposes of this tutorial I am using a fresh project. It might be a good idea to test yours out in a fresh project as well so you can experiment easier until you get the system working as you'd like.


Step One
First off you need to add your Plugins into the Plugin Manager (in the order as listed above). Before we start working on our Database, let's make sure we check our Plugin settings. Please change the following settings as listed below. Do not change the Bonus Formula setting on YEP_StealSnatch plugin unless you know what you are doing when it comes to formulas.. It honestly works just fine as is.

YEP_SkillLearnSystem
Default Gold Cost: 100

YEP_StealSnatch and change the following settings:
Gold Drop: false
Fail Text: %1 couldn't Draw from %2.
Success Text: %1 Draws %4%3 from %2!
Already Stolen: Drawn
DrawSystem-Plugins.png

What we've done is change the default Gold cost to learn a new skill to only cost 100 Gold, instead of 1,000 Gold (this can be altered later!). We've also set it so that we aren't able to take Gold from the enemy, and changed some of the text that shows up when we attempt to use the Draw Skill that we'll be making shortly.

Step Two
Now we need to add a few new things to our Database. Let's start off with Skills. Change the maximum skills, and create a new skill called 'Draw'. Set the following for this skill to begin with. Make sure to add the < and > tags in the note section.
Skill Type: Magic
Scope: 1 Enemy
Occasion: Battle Screen
Note: <Snatch>
DrawSystem-Skill.png
Putting <Snatch> into our note makes this Skill into our Snatch skill.


Step Three
Now we want our Mage to be able to use the new skill we've just created. In the Classes tab, set Draw as a Skill to Learn for the Mage class. Now any actor that has the class of Mage will be able to use the Draw skill at that set level.
DrawSystem-Class.png

Step Four
Now our Mage will need some items (or for our purpose, magic) to Draw from enemies. Create a new item, and for now call it Ice. Then fill in the following as listed below.
Item Type: Regular
Consumable: Yes
Scope: 1 Enemy
Occasion: Battle Screen
Note: <Snatch Item: 100%>

By adding <Snatch Item: 100%> to the items note, that gives us a 100% chance to be able to Draw that item (magic) from an enemy that has it.
DrawSystem-Items.png


Step Five
Cool! Now we need an enemy to Draw the magic from. Under Enemies, you can create a new enemy or add the following into the enemy note <Steal Item x:y>. X is the ID number of the Item that you just created, and Y is the percentage of that item being Drawn. You can also use the item name, so the note would say: <Steal Fire: 100%>.
Note: <Steal Item 5: 100%>
DrawSystem-Enemy.png

Step Six
Now let's quickly go back to our Draw skill that we created in Step Two, and add a few more notes (you can see them listed in the spoiler for Step Two as well). We need to list the items that we want to be able to be Drawn with our skill. Just like with the Enemy note, you can write either the Item's ID, or the Items name, along with a percentage.
<Snatch Item 5: 100%>
<Snatch Item 6: 25%>
Etc, etc. Remember you can always tweak these numbers later!



Testing Time!
If everything has gone according to plan, your mage should be able to use the new Draw skill located in their Magic menu during battle. When you select Draw and an enemy, you should see the item listed and in white. After you draw the magic, the name will turn grey and say 'Drawn', which means you can't draw anymore of that magic from that enemy. If you are experiencing problems it is probably an easy fix, just go back to step one and check everything over and test it again.

Once everything is working as planned, carry on the last few steps!
DrawSystem-MagicDrawMenu.png

DrawSystem-DrawSelection.png

DrawSystem-MagicDrawn.png


Step Seven
Now we have our mage who is able to use our new skill, and get magic from enemies! How cool is that?

By default with a new project, our mage knows the Fire skill already. But for the purpose of this tutorial, let's head back to the Class tab and remove the Fire skill from the Mage's tab altogether (don't worry, we're adding it back!). Now our Mage doesn't know how to do anything at all, except Draw magic from enemies. This is a bit of a problem!

If you look back on the Skills tab, you'll see that the Fire skill has 9 for it's ID. So, let's add the following note to the Class note for our Mage.
<Learn Skill: 9>

This will make it so that our Mage can learn Skill 9, Fire, from the menu in-game if she meets the requirements (not in battle!).
DrawSystem-LearnSkill.png


Step Seven
Our final step is to set the requirements for our Mage to learn the Fire skill. Back on the Skills tab, let's set up some notes for our already existing Fire skill.
<Learn Cost>
Item 5: 25
</Learn Cost>
DrawMagic-LearnCost.png
This will make it so that to learn this skill, we need 25 of item number 5. If we check our Items, we see that Item 5 is our Fire item that we created to be drawn from enemies. And if you remember from Step One, in YEP_SkillLearnSystem, we set the default gold cost to learn new skills to 100G. So once we have 25 Fire, and 100G, we will be able to go into the Skills menu and Learn the Fire skill.

DrawSystem-LearningYay.png



And that's it!!


I thought of a ton of fun things that you could alter this slightly to do in your game to make it more interesting, here are just a few examples:
  • Have the actor only able to learn a skill once they find a certain item (ex: a special tome, or a magical amulet).
  • An actor that can't cast magic can use the Drawn magic items to cast spells, possibly using TP as a cost instead of MP, or a combination of TP & MP. You can also set it to use more than one of the item in order to work properly!
  • The magic drawn from enemies can be used in adding special properties to weapons, armor, etc. Or perhaps for making potions to ward off certain states. (These would require other plugins but is totally possible)
 
Welp, guess I don't need to make myself a plugin for this now! Thanks for saving me what would most likely have been hours upon hours of work!
 
Nevermind, I actually just figured it out!
You make it so all party members start out with the skills by default. But the trick is the skill doesn't show up until you have the corresponding item.


Example:

Say the main character (Curtis we shall call him) starts out with Ice, Fire, and Thunder.

However, thanks to this, Curtis needs to have drawn each skill's corresponding item AT LEAST ONCE.
<Custom Show Eval>

if ($gameParty.hasItem($dataItems[x], true)) {

visible = true;

} else {

visible = false;

}

</Custom Show Eval>

<Item x Cost: 1>
<After Eval>

if ($gameParty.hasItem($dataArmors[985], false)) {

visible = false;

} else {

visible = true;

}

</After Eval>
After having drawn say, an Ice from some baddie, Curtis will forever have the Ice spell within his arsenal! (He'll still need to spend an Ice to use the skill, though.)
Now the skill will ONLY show when you have the drawn magic, and it'll disappear if you don't--just like in FF8!
 
Last edited:

Isaac The Red

Towns Guard
The Draw system in FF8 was pretty nifty, but the draw mechanic by itself wasn't it's real... draw... so to speak. What really made it so great and unique was the fact that you could 'equip' the drawn magics to different stats to vastly change how your characters performed in battle, Making them fester, stronger, more durable, etc.

We would really need to expand on this, both to make more like the actual draw system, but also to set it apart from FF8. I'd like to be able to instead of using items for this system, use variables. To separate it from FF8 a little, I would make it so instead of drawing the spells themselves, draw elemental aspects from enemies. And use combinations of those aspects as fuel for the spells. That's my own personal twist on it however. I love the fact you've gone this deep into making the system so far.
 

Lark Monster

Towns Guard
Xy$
0.00
Nevermind, I actually just figured it out!
I'm glad you got it! I had a busy few days and didn't see this, but now I don't feel so bad as you've sorted it out on your own.

The Draw system in FF8 was pretty nifty, but the draw mechanic by itself wasn't it's real... draw... so to speak. What really made it so great and unique was the fact that you could 'equip' the drawn magics to different stats to vastly change how your characters performed in battle, Making them fester, stronger, more durable, etc.

We would really need to expand on this, both to make more like the actual draw system, but also to set it apart from FF8. I'd like to be able to instead of using items for this system, use variables. To separate it from FF8 a little, I would make it so instead of drawing the spells themselves, draw elemental aspects from enemies. And use combinations of those aspects as fuel for the spells. That's my own personal twist on it however. I love the fact you've gone this deep into making the system so far.
Thanks for your input on this! I started it as a simple experiment to help me learn some things about RPG Maker MV & how different plugins can interact with each other in ways they weren't originally intended (though this is still fairly basic - my laptop decided it didn't want to run RPG Maker MV at all for a year shortly after I did this so I didn't get to experiment further). While it could be expanded on & improved upon greatly, I have no interest unfortunately...but I still would love to see what other ideas can stem from this simple one, that's really the joy of using RPG Makers!
 
Top