Gw Temp


Tutorial - 'Sephiroth115s Basic CBS' by Sephiroth115

An item about RPGMaker 2000 posted on


Just a little somethin' to help out with a CBS or 2...


Now before I get started you need to remember that a CBS (custom battle system) is one of the most difficult things that you can do on Rm2k. This requires at the very least basic knowledge of every command that is in Rm2k. If you don't understand one of them, I suggest either reading the help file, or testing it out for yourself. The main things that you will need to understand for this tutorial are: cycles, variables, switches, and variables.
This tutorial is going to be in a 6 step process to making the basic CBS. There are a few things that you need to do before we can start this process.

First before anything plot out what you want your battles to look like on paper, decide on the conditions, the elemental aspects of the fights, and how you want your speed system to work. In this tutorial I'm doing a basic turn based system for the speed ratio. Then you'll need to make some names for some variables (I recommend staying very organized with these variables, keeping all of the variables for the characters together.). You can get a few hints on the variables that you'll need from my demo. It's mostly stats stuff, like HP/MP. In this tutorial I'm using all of the stats from the datebase.

STEP 1: Setup
The first step in this process is to make up the basic setup of the battle on the screen. Now to do this you'll need to get your characters on screen, I used simple events for this, then you need to set the placement of the monsters. You can use character sets for this also but I've found though experience that pictures are a lot better (remember a picture can be anything, including monster sets). Remember that you WILL need an event for the monsters placement, so you can display the battle animations. Now after that stuff is done you need to make ALL of the events that will be used to show stats. Meaning any HP/MP or other things that you'll be showing during the battle. I don't mean making the numbers show up yet, it's just where the numbers are going to be placed. Now you'll need to go into common events and make a few common events (refer to the demo for these common events, there is a basic explaination of what they do in the game.)
VICTORY!!! yes I recommend setting up this event right now, so you don't need to worry about it down the line. You'll need to turn off every switch that is used during battle, and set most variables down to zero, refer to the demo, or just think about what is used during your battle to figure out which ones.

STEP 2: Make the starting menu.
Now is the time to make the menu where you can select all of your attacks and what not... Set this up so the player can use anything that, that character has to offer. This way you'll not need to many battle maps. After you make all the menu's in your favorite art program, you'll need to place them, then get the coordinates for the cursor. Then you need to make what happens. I set it up so if you click to attack that characters attack is set to 1. If it's defend then it's 2. And so on, keep a sheet of paper handy so you can record anything that you may want to remember, also make the attacks so any one character can use any of them even if they will never use them, this way you'll remain organized. For magic and items I made seperate events that get called if you select these things. Refer to demo.

STEP 3: Selection
The next thing that you'll want to do is set up the selecting thing. Now you want to set it up so you can target any of the maximum number of monster that may appear. So if you have 4 monsters at the max, program for all 4 of them. What I did is make a bunch of pages for each position (each position because if you click esc, to go back, then it'll go back to the correct place of the battle setup) that are pretty much the same with small differences. I did a little extra work and programmed so you could attack your own characters. So some of these start at the recommend place. Each character/monster is set to be a number in a variable, so if [character 1 selects] is equal to 1, then he selected the 1st monster position to attack. Also I have the selected thing begin to flash if they are being targeted by the cursor, I did this in the event select flash. I have:

Attack (Basic attack, starts at monster)
Skill to monster (Skill that damages, starts at monster)
Skill to character (Skill that heals something, starts at character)
Item to monster (Item that damages, starts at monster)
Item to character (Item that heals something, starts at character)
and then at the end (forgot these til later)
Select all monster (Something that damages, starts at monster, and hits all)
Select all character (Something that heals, starts at character, and hits all)
Phoenix Down (Starts at character and selects guys that are dead)

You'll want to think up any possibility that may come up before you move on to the other positions, again for organization purposes.

STEP 4: Making things move
In this step you setup how things are going to move. First do the speed thingy, what this does is see who's Agility is higher, then adds 1 to the amount of speed tickers that, that character has. This is done in a way so that the max is 5 (can vary depending on the number of things on the battle field). Refer to the event speed thingy, its in the bottom right corner of the map. Then you make the event called nearing completion, what this does is check to see who's speed tickers are the highest, then it calls the event from the next step. Remeber that you need to do this for every thing to be at 5, then 4, then 3, then 2, then 1, then 0. Also you may want to make it check to see if the character is in the party, and if that character is dead. You can refer to the demo again. =D

STEP 5: Setup for attacks
This is probably the most time consuming part of this, it sets up the showing of the attacks and the damage that they do. First part of this is setting up the damage. You can pretty much do the same thing that you did with the selecting thing, make a different page for each type of attack, for each position. I have attack, level 1-4 magic then magic cure. You can have more and I recommend setting up so if you attacka fire demon with a fire spell that it does something different than if you hit an ice demon with the same attack. I didn't do this in this demo but it's pretty much just one more cahnge variable and one more fork condition. What I did for my basic damage equation is:

Damage = Character attack
Damage + Character level (just for more randomness and to make the characters a little more powerful when they are stronger)
Damage + random -5,5
Damage - monster defense

Then of course you can't be doing negative damage, and I don't think you'll be wanting to have it go over 9999 (unless you liked FFX and want a damage break thing (add a fork condition)), so do this right after that:

fork vari [damage] less than 1
change variable [damage]=1
end case
fork vari [damage] greater than 9999
change variable [damage]=9999
end case

Then I made an event that sets up where the numbers are going to be shown... this event is called the "numbers fo' damage" event.... what it does is it changes the (X,Y) coordinates for the damage (damage X, damage Y) according to what number the character/monster has selected. If it's a monster then it calls the common event for monsters, if it's a character then it calls the one for character.

Now you're probably wondering what you do if there is a select all attack, well add 2 numbers on to the maximum number for the select, the first is for the monsters (7 in my case) and the second is for characters (8). Look at the character attack number that is equal to 8 for the character Alex or Carol. These I did seperate from the damage effect event, which you can do for all of them, but it'll make your event a lot bigger.

You'll make the attacks for both the characters and the monsters, yes you need to make the monsters, which brings me to the final step.

STEP 6: Monster Parties
If you haven't noticed by now, I have 1 battle map, and I change the parallel background by which map the player is on. This is a good thing but also a bad thing, you need to make all of the monster parties on that one map... but you won't have a huge game because you don't need to keep copying and pasting the maps all over the place. This also means that you need to setup the attacks for every monster. Now instead of having each monster party be a different number in the random monster variable (refer to start up event "battle stuffs" page 1 it's in the bottom left corner of the map) you can instead have a fork condition check to see what the battle background is and then if it's a cave have your cave monsters appear, if it's a forest have those monsters appear, and so on...

***Note*** This tutorial is property of me, the only sites that it may be displayed at are:

If you find this tutorial else where please inform me by email. This tutorial is for the use with Rpg maker 2000 made by ASCII and if any part of it is used please include this into your credits:

Battle System made with Sephiroth115's Tutorial from

Please go along with these rules, I am just trying to help out some people and I spent my personal time typing this and making the demo.


Other Things:

To make a parallel background with a map, all you need to do is make the map, to look how you want it to, then set your start position to there, and go to the datebase, make the starting characters to none, then start the game at that map. Make it to full screen then take a screen shot, then go to Idraw (or something that you can actually see the pallete I recommend Idraw), and select the chipset that you made the map with. Now make the thing 320x240 pixels, and keep that pallete. Then paste, then save and import as a panorama, then you have a battle background and free use of any chipset that you want to go on top of that.

For any of your coding needs I recommend downloading my demo at my site:

Also look at other games too. Don’t limit yourself to 1 type of system check out as many other as you can and be sure to credit who ever you “barrow” coding from or use things from.