Download as pdf or txt
Download as pdf or txt
You are on page 1of 254

RPG maker XP Basic Tuts

I did not make these and credit will be given, I just compiled it. I got these form
Crankeye.com

Mapping

Chapter 1. House exteriors

Chapter 2. House Interiors

Chapter 3. Castle Town

Chapter 4. Castle Town house

Chapter 5. Shops and Inns Interior

Chapter 6. Ship

Chapter 7. Basic Outside

Chapter 8. Swamp

Chapter 9. Desert

Chapter 10. Rivers

Credits for the mapping

Using the software

Chapter 11. RpgMaker 101

Chapter 12. Event Commands

Chapter 13. Common Events Tutorial

Chapter 14. Item Requirements for Skill Use

Chapter 15. How to Upload your Game

Chapter 16. Importing Resources

Chapter 17. Rules of mapping

Chapter 18. Using the SDK

Chapter 19. Variables

Chapter 20. Variable Splitting


Chapter 21. Eventing Chapter I - Functions Of Messages

Chapter 22. Percentage Formula

Credits for Using the Software

Game Add-Ons

Chapter 23. Double Tap Dash

Chapter 24. On map HP/SP Visual

Chapter 25. Day/Night System (Events):

Chapter 26. Arrow Over players head

Chapter 27. Make A Bank

Chapter 28. Treasure Chest

Chapter 29. Making a good Door

Chapter 30. Making Ground Spikes

Chapter 31. Making Puzzles

Credits for Game Add-Ons

Ending notes.
Chapter 1. House Exteriors

Ok in this tut you will learn how to make some good looking houses. Most houses I see now a days in
games, the person has just selected the house, and simply dropped it in the map like this:

First of all, if you haven't noticed on the RTP house, there is a shadow line, it is impossible that half your
house will be light and half dark! When I see that in your mapping, I will immediately know how your
mapping skills are.

LETS START!

Layers:

Step 1 Using layer one, lay out grass, and then make the house back/side wall:
(click to show/hide)

Step 2: Still on layer one copy and drag the tileset of the house onto the map and lay it like this:
(click to show/hide)
Step 3: Still on layer one, extend the roof:

(click to show/hide)

Step 4: NOW ON LAYER 2, top the roof off, and overlay the back of the house top like so:
(click to show/hide)
Step 5: switch back to layer 1 and use the grass tool to erase/cover the while top of the roof that you
already overlaid in layer 2 (step 4):
(click to show/hide)

Step 6: (sorta hardest step)On layer 2: Connect the roof to the side roof, use the tile's shown in the
screenshot and work on layer two until it looks like:
(click to show/hide)
Step 7: go back to layer 1 and fix that house shadow!:
(click to show/hide)

Step 8: Still on layer one edit the roof and fix the slices, also add a shadow on the back wall near the
building, and change the design on the front of the house:
(click to show/hide)
And your done! your house is finished, now just add items around it, make it look realistic, using mainly
the second and third layers to make items overlay and such.

after all that we can make a house like this! : (in game screenshot)
(click to show/hide)
Please if you liked it or hated it just leave me some feedback. Thanks and also if you liked it take a look
around I have more tuts!

Chapter 2. House Interiors

Okay, alot of people on this forum dont understand tilesets, and therefore there maps are not made to
100% standard, not being rude in anyway and if your offended, i apologise.

Ive just decided on making a quick tutorial to help people understand the tilsets, and how to make them
look more detailed, and overall, better :twisted:

Understanding Layers

You will find these buttons at the top of the screen, on the toolbar. There are four layers, 3 for mapping
and one for placing events. Incase you didnt guess, the first layer is the one with the orange part at the
bottom. Second layer, orange in middle, and third orange on top etc. The fourth layer is the whole cube.
The First Layer

The first layer is usually used for the floor, roof, and mostly wall tiles.

The Second Layer

This layer is used for putting some detail on your map, like windows, tables, drawers and shelves etc.

The Third Layer

This layer is used for finer details, like cups , plants, books, paintings etc.

The Event Layer

This layer is not for mapping, but for making events like NPCs and animated stuff like fire etc.

Making the first layer!

Okay, first you have to lay your floor. On the tileset, select lighter of the two wooden floor tiles. The
second will be used for shadowed parts of the floor.
Fill the whole map with this, and it should look like so;
The next stage is to add a wall, select this tile from the set;

and go around the edges, but leaving one square blank at the bottom, as that will be our exit >.< Your
map should now look like this;
Okay we are getting somewhere
Next we need to just put the normal wall in. Select the appropiate tiles, (there are on the 4th or 5th row
of the tileset. Make it look like this;
Okay thats the basic template sorted. Next click on the second layer its time to add some windows .

I want you to select the window with the blue curtains, and add them three tiles in like so;
(Its dark cos ur on the second layer lol)
Next step is to select this tile;

Switch back to the first layer and put it under the windows. Youll have to remember where the
windows were, when done, select the event layer and your map should look like this;
OKAY! Next switch back to the first layer and place these tiles,

one tile to the right on the floor so it should look like so;

Next add these this tile twice under the window;

and your map should look like so. Notice now how the room has windows with light in !!!

Adding rooms to your room


The next phase is to add some rooms, to make the house look more realistic. Using the tiles you used
earlier, make the room look like so! Hopefully you can do this !!!

Now your house has 3 rooms, where you can add a dining room, a kitchen and a storage room.

Now you have a good indoor structure, now just add detail using the second flor and third floor and
when you have done, try make your house look like this. You'll agree its detailed, and looks great. This
is a quick and simple room , you can make better ones than this !!!

Chapter 3. Castle Town

Making a Castle Town.


LETS START!
Layers:

Start a new map:


42x34 , Use "Castle Town" defult tileset.

Step 1: Paint out the grass tile on first layer.


(click to show/hide)

Step 2: Make the outline of the top wall. this wall can be used as an entry wall or an exit wall LAYER 1
(click to show/hide)

Step 3:Now, Lay the top of walls using the auto tile shown, and make the sides, bottom of the town
using closed into the walls. Remember to leave an opening at the bottom which can be used as an
entry/exit to the town LAYER 1
(click to show/hide)
STOP HERE IF YOU DON' KNOW HOW TO MAKE A HOUSE
Step 4:
USING THE TILESET.
Go here first: http://rmrk.net/index.php/topic,13553.0.html

If you know how, or just learned continue to make the towns houses. This town will have some places
major towns should have:
-Houses (Green)
-Shops (Red)
-INN (Purple)
- Important place, such as a Mayor's house. (Yellow)
(click to show/hide)
Chapter 4. Castle Town house

In this TUT, I will show how to make a good looking two story house using the Castle town tileset. (RTP
DEFULT)

LETS START!

Layers:
Step 1: Paint out the grass tile on first layer. Next using the center wall tiles under red roof in tleset,
make your bottom floor outline: LAYER 1
(click to show/hide)

Step 2: Make the outline of the roof using the right/left/center tiles of the red roof in the correct spots.
LAYER 1
(click to show/hide)

Step 3: Using the center tiles as you did in the first step, lay out the upper floor. LAYER 1
(click to show/hide)
step 4: redo step 2.
(click to show/hide)

Step 5: Using the tiles on the above the right/left corner tiles, extend the sides of the roof back, and
make sure they are even. LAYER 1
(click to show/hide)
Step 6: Swtich to LAYER 2, and place the coner tiles in teh correct places on the second floor roof.
(click to show/hide)

Step 7: Now lay out the top of the roof using the two tiles inside the red roof top. Place them in the
correct places. LAYER 1
(click to show/hide)
Step 8: Using the correct tiles, connect the roof corners. LAYER 1
(click to show/hide)

Step 9: Go back and fix the walls using the left and right wall tiles. LAYER 1
(click to show/hide)
Step 10: Using layer 2/3 add stuff on the house to make it more alive.
(click to show/hide)

Layer pictures:

Layer1:
(click to show/hide)
Layer2:
(click to show/hide)
layer3:
(click to show/hide)
None, we did not use this layer. =D

House I made:
(click to show/hide)
Hope you enjoyed this tut. Please leave feedback in this topic.

Chapter 5. Shops and Inns Interior

Reading this, I am assuming you know the basics of mapping, if you don't then other tutorials may help
you.

Tutorial One: The Shop


Well, instead of doing a house (there are other tutorials for that) I'm going to show you how to make a
shop.

Step One

Alright, to start lets fill the first layer with a wood flooring.

(click to show/hide)
Step Two

Next, lets use the wall autotile to make the outline of the building.

(click to show/hide)
Step Three

Now, let's make rooms. Let's make half of the shop a weapon shop, and the other half an item shop.

(click to show/hide)
Step Four

Alright, now it's time to add some walls, go to the first layer and add the walls.
Tip: Use layers effectively, if something can go on the first layer, put it on the first layer, this opens a lot
more possibilities for your map

(click to show/hide)
Step Five

Lets now add counters for the shopkeepers to be behind.

(click to show/hide)
Step Six

Okay, now we need to add some objects, let's add a table and a shelf in the item shop, and lets put
some weapons behind the counter of the weapon/armor shop. Let's also put some boxes and other
things in the item shop, and let's plan on making a row of armor in the weapon/armor shop.

(click to show/hide)
Step Seven

Hold on though, we can't make a row of armor, we only have three layers, and only two would work! And
two armors isn't really a row.
Wrong!
To make a row of armor, put half of the armor on the second layer, and the other half on the top layer.
This will allow you to make an row of armor

(click to show/hide)
Step Eight

Tip: Never leave too much empty space on a map


Let's add some things to that wall in the middle of the shop.

(click to show/hide)
Step Nine

Alright, now we need to put some more items in the shop, and we should put items on the table.

(click to show/hide)
Step Ten: The Final Step!

Now that the mapping is done, we need to do one more thing, add shopkeepers and other events!
Tip: The eventing layer is your "fourth" layer. The eventing layer can be used as a fourth layer, in
addition, people are part of the map as much as a table is. Remember, your hero isn't the only one in the
inn or in the shop!

(click to show/hide)
The final product!

A very nice map, would look good in a large forest town

(click to show/hide)
Now, here's a view of all the layers.

(click to show/hide)
Chapter 6. Ship

OK, this is going to be my first tutorial on here. I will attempt to teach people how to make a ship using
the RTP tileset. I've seen Nouman's tutorial and the comments, so I figured I'd give it a shot.

OK, here we go.

Step One:

Start out making a new map, I made mine 40x50. Fill the 1st layer with the water tile.

(click to show/hide)

Step Two:
Next you'll want to make the front of the boat. Switch to the 2nd layer for this.

Quote from: Nouman on December 02, 2006, 11:10:01 AM


(note you will have fool around with the tiles, its not a drag and drop, you have to make it a little wider)

You'll also want to try to remove the shadows on the right side of the boat. you can do that using this
tile.

(click to show/hide)
Step Three:

Then you'll want to put the sides and rear of your boat on. I'm sure you've all noticed how the rear
doesn't line up with the rest of the boat. So my fix to this is this.

(click to show/hide)
Now, you'll notice I switched to the 3rd layer for that one railing.

So far our ship should look something like this.

(click to show/hide)
Step Four:

Switch back to the first layer and fill in the boat floor.
(click to show/hide)

Step Five:
Now we'll start to add some sails. I also want some layers on my ship, just to change it up a bit. To do
this switch to the 2nd layer.

(click to show/hide)
Step Six:
Now we need a place for the captain to steer the ship. Let's add a little place for that. Do this using the
2nd layer for the area, and the 3rd layer for the wheel and stairs.

(click to show/hide)

Step Seven:

Now using the 3rd layer add items around the ship. We're gonna need some lights, cannons, barrels,
jars, maybe a life preserve or two, and some life boats if you wish. Feel free to play around with the rest
of the tiles as well.

(click to show/hide)
Step Eight:

Now add some people, and other events around the ship. Here's the finished ship.
(click to show/hide)

Now I'll show you each layer.

Layer One

(click to show/hide)
Layer Two

(click to show/hide)
Layer Three

(click to show/hide)
Chapter 7. Basic Outside

Good evening lads and lassies, I bring you 1 of many to-come tutorials on anything from Mapping to
Scripting. (Yes I will finally spend the time neccessary to get this completed)
First off, I want to go over a few rules pertaining to nature.

1) Nature is random
2) Plants of the same type grow together
3) There are NEVER repeated patterns in nature
4) There's LIFE in nature

Now we will start off making a campsite. (You can choose the sound effects and bgm)

NOTE: Results may vary (lol)

First thing we need to do, is compile what we will need in this campsite -

• People
• Animals
• Fire
• Tent
• Trees
• Shadows (we are in the woods)
• River

Okay, that's pretty basic, but not bad, now we move on to a new map :

Hmm, it appears we have a lot to do to turn this plain grassland (can we even call it that) into a
convincing campsite.

Now, it's pretty obvious that there's more than just a perfectly proportioned tree and bare tree in forest,
am I right or am I not?

Using a nifty trick (I learned from other sources *cough*ccoa(sp?)*cough*) we will create clumps of
different trees, keeping in mind that plants of the same type usualy grow together.

Using the trees from both the grassland01 tileset and the woods01 tileset, I came up with these clumps.
(sized to fit in 32*32 tiles using a template from a set which I downloaded here => DOWNLOAD

Now we just add them to the existing template and set priority. To save some time, add one to the tileset
array, copy the existing grassland tileset from the list, paste it over the newly created tileset, then choose
the new tileset file, and set passability and prioty for the clumps only. As a tip to save any more time
trying to decide passability and such, just guess about where you think the stump would be, and
anywhere the trees overlap, just set the priority to 5.

There, now that we have our trees, it's time to set up camp! :-D

The first thing we'll do is place a stream, remmember, nature is random. I think we'll have it go from the
top-right to the bottem-left.

Okay, let's mark river off our list.

• People
• Animals
• Fire
• Tent
• Trees
• Shadows (we are in the woods)
• River

I know! Let's work on the tent next, just to move things along. Let's put it on the right bank, since we
usualy want the most important aspects to be closer to us.

There, that's about right.

Let's mark tent off our list.

• People
• Animals
• Fire
• Tent
• Trees
• Shadows (we are in the woods)
• River

Next we'll do the fire. The important part now, which will change how we make this map, is to decide the
time of day. Let's do night first. (We'll do day afterwords to show the difference)

There's some good space out to the left of the tent, so let's put it there.

Let's mark that off our list.

• People
• Animals
• Fire
• Tent
• Trees
• Shadows (we are in the woods)
• River

Wow, this is going along pretty quickly huh?

Let's place those trees we worked so hard on in the map now huh? Remember to keep in mind that same
trees grow together, and don't forget to place a couple of single trees eh? But also remember not to
make the map too crowded.

Not bad! Let's mark trees off our list now, sound alright?

• People
• Animals
• Fire
• Tent
• Trees
• Shadows (we are in the woods)
• River

What's left? :
People
Animals
Shadows

Hmm, let's do animals first shall we?

Now let's make a list of day-time forest dwelling animals.

• Birds
• Rabbits
• Squirrels
• Butterflies
• Frogs (we're near a river/stream)
• Etc.

All of which there are graphics for, woot!

Lets place those now shall we?

Pretty cool, remember that wild animals (except the butterfly of course) are going to try to stay away
from you.

Now let's check that off the list.

• People
• Animals
• Fire
• Tent
• Trees
• Shadows (we are in the woods)
• River

So now it's just people and shadows eh?

Let's work on the people.

That's a rather large tent, so let's have... 3 people.

And I think they should have a dog.

We want

1) Walking with his dog.


1) Standing around (by a tree stump perhaps?)
1) By the fire

Let's do that now.

Keep note, that the characters can also be on the other side of the river, but if they are, they need to be
realisticly strong enough to get there.

Now let's check people off the list.

• People
• Animals
• Fire
• Tent
• Trees
• Shadows (we are in the woods)
• River

Before we move on to the final touches which will make a big improvement, trust me, let's see what it
looks like now.
Keep in mind that I'm making the hero have no character sprite, so you can see the whole map without
any "interuptions".

Hmm... Somethings not quite right. Let's set a fog, and tint the screen and see what happens then.
Much Better! But something's still missing...

...

AHA! Foliage! (plants, flowers, etc.)


And different grass textures.

MUCH MUCH MUCH MUCH BETTER!

Now we're done!

I promise you, with practice, you will easily be able to make much better maps than what I've shown you
here. (trust me, this map is way mediocre compared to some of the other ones out there.)

I hope this tutorial helped, and I look forward to your feedback.

BTW: I'll add the nightime camp part next week. It's midnight now and I need to get some rest.

Chapter 8. Swamp

Well, I have noticed on many forum's everyone is requesting a swamp making tut...so I will take the job.

First thing to remember, always have your own mapping style, something that separates your maps for
everyone else's. Second thing is to not forget nature is RANDOM! please don't make your swamps look
the same on the left side and right, here is an example of BAD:
To some that is actually a GOOD map...no its not even close.

OK we will begin now, first thing is first open a new map, and select MARSH tileset. Then leave the map
size default.

First thing first, lay down the swamp. I like to work with the swamp as the painted bottom instead of
grass. So on layer one paint the swamp!
step two, still on layer one outline three bodies of land, and a small island:
Step three, switch layers to layer 2, and now make the outsides of the land area look not so boxy:
Step four: Already you can see you have a decent map. Now on layer 2 first make a path outline, then
switch too layer three and make bridges, trees, and whatever you need to make the map feel full. Try
and use a variety of the tiles, just don't over do it!
Step 5: Add a little fog maybe, and here is a screenshot of the swamp you just made in game play!:
Well hope you enjoyed this tut! Hopefully more to come from me, also if you haven't already check out
my river tut, and house exterior tut. Enjoy everyone! Please leave some feedback.

Chapter 9. Desert

OK so here is my fourth tut, I had this already made forgot to type it out. SO will show you how to make
a great desert and not even touch layer three! We will be making a oasis

OK start tut:

Step 1: Layer one lay down the tile for sand (notice the red line it is the outline where the hero will
go)You can select two tiles to lay the sand one is darker then the other, I selected the lighter one for this
tut
Step 2: Using layer one AND two make this mountain outline. THe light tiles are placed on layer 2 and
the dark on layer one. THe first mountain at the top will be where the player enters from, and the bottom
two mountains help to show where the player will exit the map
Step three: Using layer one again, make a small body of water..whats an oasis without water, and it will
make the map look more realistic once we add plants
Step four: Big step, now using only the second layer add a tree, rocks, plants, footprints, sand waves.
Adding some green will really making the map come alive, the rocks and stuff should also be used. Try
not placing too much stuff close to one another, spread everything out and try not to leave BIG places
where nothing is there.
(also you can make the ground designs in first layer..the sand movement that is
Step five: YOUR DONE! you still have layer three if you need it! And here is a pic of that same in map in
game play:
Please feedback would be great! and don't forget to check out some of my other tuts on this fourm!

thanks:
Darklord
Lord Dante

Chapter 10. Rivers

Many rivers I see that come from mountains come off large water fall's and look UGLY! you don't need
that big waterfall to make your river start, why not make it look real?

Here is what you don;t want:


(where the hell is teh water for the waterfall comming from?

(most if not all of this is made on layer 1)


First Step: (first lay grass duh!) Make hill's outline
Second Step: Make smaller ridges comming out of mountains
Third step: Make river outline, have first part start from the top of the map and end at the mountin first
drop, then make a second one from base of the bottom of the hill, and end it all the way to the bottom of
the map:
Fourth step, take the waterfall tool, and connect the open spots between the river outline and connect
the fivers:
Fifth step: fool around with the map tools, add trees, bridges, pathways and plants:
here is one in the snow:
Credits for the mapping

Nouman

dwarra

Falcon

Jalkson

Tsunokiette
Using the software

Chapter 11. RpgMaker 101

I made this tut a while back. It's a hit. Figured I'd share it with this community.

My first tutorial.

Update 1: Fixed Window_MapName (location window script)


Update 2: Added rest of pictures in Database

Basically I'm going to make this very very easy for you. RPG Maker XP is a game creating system where
you can do basically anything you want. It uses a scripting language called Ruby which is condensed in
an easier form known as RGSS for the RPG Maker XP program. In other words Ruby is like Japanese, it
has 3 forms of writing, and RGSS is a condensed form known as English derived from Japanese. O.K. that
was a terrible example but you'll understand what I mean. We'll start with the basics.

The Basics
Ruby Scripting Language
Developer:Yukihiro Matsumoto
Website: http://www.rubycentral.com/book/

RPG Maker XP
Developer: Enterbrain
Language: Japanese (Has been translated illegally to English as well)
Scripting Language: RGGS
Website: http://www.enterbrain.co.jp/ (translate it through google)

I am NOT going to tell you where to download the illegal copy as this is well illegal (ner?!). I will however
tell you how to use the program instead. Keep in mind I am not a Master at this program, but I do know
much about the system.

The Program

First and foremost if you do decide you want to download RPG Maker XP (rmxp for short) you probably
have a corrupt file called RGSS.dll. I don't know why. Don't ask. Jap folks I guess. Once you do get the
program however you need to get the uncorrupt file. To get this file click here.

http://www.dubealex.com/index.php?act=Attach&type=post&id=241

Secondly you probably don't have the English Help file. It's translated by a guy named Trihan. Download
that here.

http://dez.musicfreaks.co.uk/rmxp.chm
NOW ON TO USING THE PROGRAM!

Starting a new project


To start a new project open rmxp and click on the white piece of paper. This starts a new blank project.
A screen will come up that looks like this

Name your new game whatever you want. It will save in the RPGXP folder in your My Documents folder.
You can change it if you want.

Now that you have created a new game a new screen will pop up that looks like this.
This is basically your workstation. Everything you need can be found here. I am now going to number
everything and we will go in more depth in them with the same image.

1-New Project Icon


2-Open Project Icon
3-Save Project Icon
4-Cut
5-Copy
6-Paste
7-Delete Section
8-Undo
9-Bottom Layer*
10-Middle Layer*
11-Upper Layer*
12-Event Layer*
13-Pen
14-Rectangle
15-Elipse
16-Flood Fill
17-Selection Tool
18-Maginfy 1/1
19-Magnify 1/2
20-Magnify 1/4
21-Database*
22-Resource Manager*
23-Script Editor*
24-Music*
25-Test Play*
26-Test Map*
27-Tileset*
28-Start Party Position*
29-Map Properties*

* Means we will discuss this on a much deeper basis. The rest you should know.

Note at anytime you decide you want to test play, press esc to see the default menu. You can play
around with it if you want, but I recommend following the tutorial.

Bottom Layer
The bottom is probably the layer where the most errors like " Why is there a white outline around the
tree I put? Will this go away?" The answer is no!

NOTE: Any tileset piece with a white outline around it does not belong on the bottom layer.

This layer is designed for grassy areas, water, etc. This is where your characters will walk. Now try this.
Fill the screen with the white blank tileset piece using the fill icon (#16). Now your screen should look
like this.
Test play your game (#25)

Not cool huh. You saw an orange guy walking in darkness right? (Side note that's how I feel when I'm in
Physics class every day.) The white blank tileset piece is mainly used for panaromas (we will discuss this
later.) Fill the Test Map again with grass but this time add some blotches of water here and there. It
should now look similar to this.
Test play your game (#25)

Can't go in the water huh? Ner. Of course not. Would you like to though? Well in rmxp you can! We'll get
to that later as well. I'm just giving you a feel of the program for right

now.

Now that you know how to create a default map, lets mix it up. I mean come on. Is the guy gonna stay
in a grassy area for the whole game? So let's change the map properties (#29). Right click the word
MAP001 and click Map Properties. A map settings window will pop up and it will look like this.
Let's change the tileset from 001:Plains to say 044: Fire cave. Now let's even tune it up a little bit more.
Let's have a background sound or background music playing while on this map. Click the check mark box
of either one and choose which one you want. You can even change the dimensions of your map by
changing the width and height.

Just be cautious though a really big map may lag a bit (or slow down while playing).

Test play your game.

...

Pretty cool huh? Ok not really but still we're getting there. Now let's fight some monsters. Return back to
the map properties section but this time right click the monsters group section and click edit. The first
thing that pops up is Ghosts*2. Click ok since this is just a demo. Let's say you want to fight that monster
as soon as the hero takes one step. Set your encounter rate to 1. Let's say you want to fight that
monster when you get home from school and he's going around in a circle. Set your encounter rate to
99.

See the difference. Now for the battles!


This screen will pop up. This is your battle area. I'll let you play around with that if you want. When your
done return to the test map.

O.k. you know how to fight, you know how to make a crummy map, but where are the extra things like
barrels or trees? Well that's where the Middle Layer comes in.

Middle Layer

If your still using the fire cave tileset then it's cool. I'd prefer you'd stick with this tutorial for now. Click
on the Middle Layer Icon (#10). The screen should tint a little bit. Now let's put a cliff. Select this section
here. (Side note you can click and drag your mouse for bigger tileset selections for easier situations.)
Drag it onto a section of the lava. Make sure you clicked on the middle layer though. Bam! No white
outline! Remember this if you get confused.

Top Layer
Personally I don't use the top layer much. This is basically anything that you will see over the Middle and
Bottom Layer. Say for instance you want to put a tree on the map and Super Mario Jumping on top of
the tree (?!). That's what that would be used for. Speaking of Super Mario, this jumps me right into the
last layer.

Event Layer
Now you see a grid on the test map. This layer is basically for your people or crystals or doors or
anything of that sort that you could "interact with". Let's create a person who says a message and gives
you a potion. Simple enough ya?

Right click a test map square and make sure it has a bottom layer that he/she/it can actually move on or
your character can move towards. Once you right click it select new event. A menu will pop up.
Click on the graphics box and select a character for your event. It doesn't matter what it is. Under even
commands right click it and select insert. Here's a key for everything in the event window.

I'm not going to number the pages, instead i'm going to name them by page number then column
number then command number (i.e. 1-2-5 = change money and 3-1-4 = change hp).
Now select message and type something like "Hello, here is a potion." Now click change items on the
same page. So when your done it should look like this.
Now test play.
Cool you got an item.

Advanced

WARNING: Anything you do from here on out gets pretty confusing. Be cautious of what your doing! You
are responsible for whatever mess you create!
#===============================================================
=========
Event Commands (This get's pretty tricky if you don't know what your doing)

Page 1:(Map based commands)

1-1-1: Message- This is where you type your messages that an event will say.
1-1-2: Show Choices- This is where you can create a 2 to 4-choice based message. You can even disallow
a choice here. Once you've typed the name of each choice, you will be asked to fill in the handler
(condition if this selection is met). Each choice has it's own handler for the selection the character makes.
For instance if you have an event that says a message like "Will you get me a potion?" and your 2
choices are Yes and no, then you must create a section for each yes and no.
1-1-3: Input Number- This is where you may store your variables. If you click on the Store in Variable
box a new menu will pop up like this

This is where your variables are identified. Each variable has it's unique variable id. You are allowed to
name the variable whatever you want. Then you must give the variable a digit number. This means that
whatever digit you select will be inserted in that variable.
1-1-4: Message Display Options- This is where you can edit the position of your messages on the map.
You can even change it to where it doesn't show the window. It will only show the message itself.
1-1-5: Key Input Processing- This is where the event initiates the Input Number stored in the variable
specified. If you had a variable named Variable 1 and had the max digits set to 5, then and later in the
event you chose to key input process, it would refer back to Variable 1's max digit, which is 5.
1-1-6: Wait: This is how long the event will wait (by frames, not by seconds. Side note: 20 frames = 1
second)
1-1-7: Comment: This is where you can post your comments. Personally I don't use this. But it's there so
what the hey.
1-1-8: Conditional Branch: This is a very tricky command. You shouldn't mess with this until you've
learned about switches, variables, local switches, timer, etc.

1-1-9: Loop- This is where a loop is created. I wouldn't use this command too much as it is literally a
loop. It will keep doing what you put in it.
1-1-10: End Loop- This is where a loop is ended
1-1-11: End Event Processing- This is where your event stops processing whatever it was doing.
1-1-12: Erase Event- This is where your event is erased from the map. Use this at the very end of any
event that would vanish from the map.
1-1-13: Common Event- This is where your common events are called. See Common event under the
Database section.
1-1-14: Label- This is where your able to create a label. A label is sort of like a checkpoint.
1-1-15: Jump to Label- This is where your event jumps back to the label you specified.
1-2-1: Switch Operation: This is basically what it says. This is a trigger command. Let's say for example
an event wants the hero to kill a ghost, and when he does he'll give the hero a potion. He will not give
the hero a potion until the ghost is killed. This is where switches come in handy. The event would go
something like this.

-Create two events. Name one Potion guy and the other Ghost. Make sure they have a graphic or you
won't see the event.
-Create a message in the potion guy event and say something like "Kill a ghost and I'll give you a potion!"
-Use the switch command and create two switches and change the names to whatever you want. Make
sure that the first one is turned on. We will use the second one later.
-Create a new page in the same event (Potion guy) and keep the same graphic. Now look here.

-This is the precondition menu. This means that if any of these boxes are checked, that precondition
has to be met. In other words unless that switch, variable, or local switch has been turned on or that
condition has been met, then that event will not begin.

-Select the first precondition box named Switch and select the second switch you created.
-Create a message with something like "You did it! Here's a potion!"
-Use the event command change items (1-2-6) and give the hero a potion.
-Now go to the event named ghost and choose enemy encounter (3-1-1). Then under the victory handler
turn switch 2 on.
-Try to test play this. Easy as pie. Remember you can also use a range of switches.

1-2-2: Variable Operation: This is where your variables are edited. You can select a specific variable your
a range of variables. Remember that a variable is NOT a number, instead it is a container for a number.

-This is the variable operation menu. The operator is the sign that will be used in this particular
variable. The operand is the amount that will be used with the sign in the variable. You can even have an
operand that is equal to another variable that stores a number. You can have it to where this variable is a
constant, equal to another variable, and a random number, but you can also change it to where an item
is possessed, a hero and his level, etc. Remember the operator will change that characteristic of the
operand using the operator for that variable.
1-2-3: Local Switch Operation: Local switches are the same as switches but that they are only allowed in
the event you specify. There are four local switches (A,B,C,D). You can use the local switch on another
page in the same event, but not in another event in itself.
1-2-4: Timer Operation: This is a timer command. Basically you specify where the timer will start and it
will count down to 0.
1-2-5: Change Money: This is where your allowed to increase and decrease the amount of money your
party has. Simple ya? Remember you can even use variables instead of constants.
1-2-6: Change Items: This is where your allowed to increase and decrease the amount of certain items
your party has. Simple ya? Remember you can even use variables instead of constants.
1-2-7: Change Weapons: This is where your allowed to increase and decrease the amount of certain
weapons your party has. Simple ya? Remember you can even use variables instead of constants.
1-2-8: Change Defense Items: This is where your allowed to change the armor your party has.
Remember you can use variables instead of constants.
1-2-9: Change Party: This is where your allowed to change the members of your party.
1-2-10: Change Windowskin: This is where your allowed to change the windowskin you see.
1-2-11: Change Battle BGM: This is where you can change the battle music you hear when in a battle.
1-2-12: Change Victory ME: This is where you can change the victory sound you hear when you win a
battle.
1-2-13: Allow/Disallow Saving: This is where you can allow or disallow saving. Ner?!
1-2-14: Allow/Disallow Main Menu: This is where you can allow or disallow your main menu when you
press Esc.
1-2-15: Allow/Disallow Encounters: This is where you can allow or disallow enemy encounters.

Page 2:(Character/Map manipulation)


2-1-1: Teleport: This is the command you use when you move a party from one map (or part of a map)
to another map (or another part of the same map). Let's take a peak at this.

Create a new map (29). Right click the folder and select New Map. Fill it with green (or whatever your
character can walk on).
Right click the first map and set party starting position to whatever you want (make sure your character
can walk on it).
Create a new event on the same map with a message like "I'm going to send you to hell!"
Add the command teleport with a coordinate system on the second map. You can click the specific
location box move the party to a particular spot, or give it a direction using variables. Facing means what
way will your party be facing when they are teleported to the coordinates you sepcify. Fading means will
the screen fade out and fade back when the party is on the second map. Try it out if you'd like. Cool.

2-1-2: Change Event Location: This is where your allowed to change an event, other than your party to a
specific location. You can also trade places with another event. It's pretty much the same as teleport.
2-1-3: Scroll Map: If the dimensions of the map the character is on is bigger than the screen (in other
words if you can see all of the map) your allowed to scroll the map in the direction you want. Pretty cool
for intros or something. You can also change the speed if you want.
2-1-4: Change Map Settings: This is where your allowed to change the map settings of the map. You can
change the panorama, create fog, or change the battle background.
-Panorama: This is basically a background that you will see when a part of the map is with white
squares.
-Fog: Ner?!
-Battle Background: Ner?!
2-1-5: Ting Fog: If you've created a fog setting your allowed to tint the fog any way you want with this
command. Transition time means the amount of frames it will take before it goes from regular to the
color you specify, and in between that time it will gradually change.
2-1-6: Change Fog Opacity: Change the opacity of the fog you specified. Opacity means how well you
can see it. Transparent means how well it is hidden.
2-1-7: (I'm so tired right now.) Show Animation: This is where the player, or an event will show an
animation on the screen. You can edit your animations in the database. I'll get to that later.
2-1-8: Change Hero Transparency: Ner?!
2-1-9: Move Event: Great another mini tutorial. Check it out.

This is what first pops up. Let's make this simple. On the first row, the first 8 is the places where your
event (or character depending on what you specify) wll move. Right under that is step foward and step
backward. Depending on where your event is facing is whether it moves up, down, left, or right. But it
will still be facing the same way as before. Jump is when your character will jump. It's an ugly jump but a
jump none the less. Wait you already know. Face is the direction you want that event to face.Turn is the
direction you want them to turn. Weird though since it's the same as facing. You've also got switches
speed frequency and such. You can mess around with stuff if you want. Just remember to put it to the
event you want.
2-1-10: Proceed With Movement- If your in a waiting period you can choose this command to proceed
with whatever movement an event was doing.
2-1-11: Prepare Transition: This prepares for the transition you set.
2-1-12: Execute Transition: Execute the transition you set. Choose whichever one you want.
2-1-13: Tint Screen: Tint the screen like you tint your fog.
2-1-14: Flash Screen: Flash the screen the way you want. You can flash it white, black, blue, etc.
2-1-15: Shake Screen: Shake the screen as if there were an earthquake or rockslide. The higher the
frequency the harder the shake.
2-2-1: Show Picture: Show a picture from your picture's folder.
2-2-2: Move Picture: Move a picture shown on the screen.
2-2-3: Rotate Picture: Rotate a picture shown on the screen.
2-2-4: Tint Picture: Tint the picture like you tint the screen or fog.
2-2-5: Erase Picture: Erase a picture shown on the screen.
2-2-6: Weather Effects: Built in weather effects can be commanded to show here.
2-2-7: Play BGM: Play a background Music. Remember if you choose this command that you musn't have
a BGM in your map properties or both will play.
2-2-8: Fade Out BGM: Fade out background music with fade out time.
2-2-9: Play BGS: Play a background sound. Remember if you choose this command that you mustn't
have a BGS in your map properties or both will play.
2-2-10: Fade Out BGS: Fade out background sound with fade out time.
2-2-11: Memorize BGM/BGS: If you decide to use any of these commands and want to return to them put
this command right after it. That way rmxp will remember the last played BGM/BGS.
2-2-12: Play Memorized BGM/BGS: Plays memorized BGM/BGS.
2-2-13: Play ME: Play music effect.
2-2-14: Play SE: Play sound effect.
2-2-15 Stop SE: Stop a sound effect from playing.

Page 3:(Party/Hero/Monster statistics manipulation)

3-1-1: Enemy Encounter: Basically if you want to fight an enemy group do that here.
3-1-2: Open Shop Window: Open the shop window scene.
3-1-3: Enter Hero Name: Open the Enter Hero name scene.
3-1-4: Change HP: Change HP of either the entire party or a single character.
3-1-5: Change SP: Change SP of either the entire party or a single character.
3-1-6: Change Status: Change the status effect of the entire party or a single character. You can either
inflict it or remove it.
3-1-7: Complete Healing: Completely heal your party or character.
3-1-8: Change Experience Points: Change experience points of entire party or single character.
3-1-9: Change Level: Change level of entire party or single character.
3-1-10: Change Base Statistics: Change the default statistics of a character by either increasing or
decreasing a constant or variable.
3-1-11: Change Skills: Change the skills of a character.
3-1-12: Change Equipped Items: Change equipment for each character.
3-1-13: Change Hero Name: Change the Hero's name. This is not the same as Enter Hero Name. You just
type in the name you want and it automatically changes. Use this RIGHT AFTER Enter Hero Name so
that the name can actually change.
3-1-14: Change Hero Class: Change the class of a character.
3-1-15: Change Hero Graphic: Change the gaphic of a character.
3-2-1: Change Monster HP: Change all or one Monster's HP.
3-2-2: Change Monster SP: Change all or one Monster's SP.
3-2-3: Change Monster Status: Change Monster's status effect.
3-2-4: Completely Heal Monster: Completely heal a monster or all monsters.
3-2-5: Show Hidden Monster: Show a hidden monster on the map.
3-2-6: Transform Monster: Transform say a ghost to a basilisk.
3-2-7: Show Battle Animation: Show a battle animation on the map
3-2-8: Damage Dealing: Deal damage to an enemy or character by either a constant or variable.
3-2-9: End Battle: Ner?!
3-2-10: Open Main Menu: Open the Main Menu. This will bypass Allow/Disallow Main Menu
3-2-11: Open Save Menu: Open the Save Menu. This will bypass Allow/Disallow Save Menu
3-2-12: Game Over: Ner?!
3-2-13: Return to Title Screen: Ner?!
3-2-14: Call Script: Call a script for the script editor (We'll have a separate section for this.)

Basically these are the event commands you can use in an event. Other things you should know about.

Pages: Each event can have up to 99 pages. That means that an event with a girl graphic can be on one
page and once a condition is met a guy could become the graphic on the next page.
Movement Pattern: You can move your event around here. Personally I just use the command Move
event but this is a little easier.
Options: Movement or stopped animation is obvious. Lock facing is obvious. Phasing means is this
graphic using all four graphic icons of the same type you specified. For instance a crystal that is floating
needs the phasing box checked, otherwise it will be still. Always on Top means will this event always be
on top of everything.
Trigger: Action key is if the space bar is used when the hero is next to this event. Hero touch means this
event will begin when the hero stands directly next to it. Collision means this event will begin when the
event and the hero will run into each other.

IMPORTANT:
Auto-Start: This is the bitch of everything. Everyone who uses this is whack. (jk.) Anywayz this means
that this event will happen as soon as the hero is on the same map with the event. You won't be able to
move if you have this on. It will keep repeating (like loop but without ending).

Parallel Process: This is what you should always use if something is starting right away. If you use this
instead of auto-start everything will still update itself, including the event with the parallel process, which
in turn, will allow you to keep playing the game without staying in one spot. Also if you have an event
that does one thing and after that have another event that does something right after that you use
Parallel Process. Parallel Process is used mostly with switches and variables. Remember that!

Database

I'm too lazy to talk about everything here. So I'll make this brief.

Hero- This is where your character's stats come into play. As you can see on the left is your characters
and on the right are their statistics for leveling up. In the bottom right you have starting equipment. You
can change your starting weapons to whatever weapon you've created for the class of that character (i.e.
fighters use bronze swords and mages uses bronze rods.) You must activate that weapon to the class of
your character on the class tab.The bottom left is the total size of all your characters you are able to use.
Again you have the character graphic and you also have the character's battler (what is used when you
battle.) Also you can change your character's initial level, maximum level, and experience curve. If you
double click the color bars (i.e. strength, agility) you change the curve that character can gain on that
statistic.
#=========================================================

Class-This is where the classes of your characters are edited. You can change the name and number and
what not. You can change the position they are when they are in battle. Important! You must check each
weapon and defensive item each class can use before they can use it! Also on the right you have
attribute resistance and status resistance. Click on the C to change it. The better the letter, the stronger
that character is against that element. At the bottom right is skill progression. It gives each class the
skills they're able to use.
#=========================================================
Skill-This is where the skills of the characters are edited. You can change the icon and targets for the skill
itself. So you can even create a skill where you can inflict damage upon yourself and monsters at the
same time.

I'll explain each characteristic

-SP Consumed- the amount of SP used when doing this skill


-Effect Rating- the rate at which the attack will inflict damage (i.e. 500 Effect rating = 500 damage on
ghost).
-Attack Power- the strength of an attack
-Evasion- the rate at which your character is able to dodge an attack
-Strength- The power of an attack according to your character's strength with this.
-Dexterity- How well you handle a weapon
-Agility- The speed at which a character can attack
-Magic- The magical strength of the attack
-Accuracy- Determines if an attack hits or not.
-Phys. Defense- Physical Defense of an attack
-Mag Defense- Magical Defense of an attack
-Variance- The overall variation of an attack's effect rating (i.e. 500 Effect Rating + 15 Variance = 515
damage on ghost).

You can also set an attribute and status effect on the skill on the right.
#=========================================================

Items-Basically where you edit your items.

In general the characteristics of items are:

-Price-Duh?!
-Consumable-Can a character "eat" it.
-Base Statistic- The statistic of a character it effects.
-HP Recover %- % of HP recovered based on total
-HP Recover- Amount of HP recovered at a constant
-SP Recover %- % of SP recovered
-SP Recover- Amount of SP recovered at a constant
Everything else you can fool around with.
#=========================================================

Weapons-What your characters use when they are in battles

Most of everything is covered in this section so we'll skip this part.


#=========================================================
Armor-What your characters defend with when they are in battles

Most of everything is covered in this section so we'll skip this part.


#========================================================
Monster-What your characters fight against when in battle

Some things you should know about:

-Experience- The amount of experience earned per defeat of this


enemy
-Money Dropped- The amount of money obtained after battle of
this enemy.
-Behavior- This is basically an event in itself. This is where you can
edit your monster's attacks. If you double click this area you will get this
window.
Some stuff you should know about behavior:
-Turn- Turn precondition
-HP Below- HP percentage precondition
-Avg Party level above - choose a number for average party level precondtion
-Switch- Will Smith (jk.) Switch percondition

Some stuff you should know about attack:


Basic- Basic attacks
Skill- Skills the monsters can learn (Yes under the skill window you can make skills for monsters. Ner?!)
Rating- The rating of the attack. The higher the rating, the more often that attack will be issued.
#=====================================================
Monster Group- Every Monster you create needs to be in a Mosnter Group. This is where you make
groups. You don't need to necesarrily make a group. You can have a single monster if you wanted. You
can also test battle your monsters here.

Battle Events:
This is cool. This is like a mini event command section for the monster group you created.
#==================================================
Status Effects: I haven't talked about this much because it's in the database. Create your own status
effects here. Unresistable means no monster or hero can resist the attack. Link with HP 0 means this
status effect will happen when a character/monster's HP is 0. Cannot gain exp means no experience will
be earned if this status effect is active. No evasion allowed means evasion will not be allowed if this
status effect is active. Progressive damage means like regen or poison. It will progressively be in effect.
Recovery conditions is at the bottom. If it is a healing status effect then use this. Or if it's a confuse that
lasts 4 turns use this. On the right you have status relations. You can have more than one. A box without
a - means that status relation is used for this status effect. Restriction means what will be disabled when
this status effect is active. The rest is easy to learn.
#===================================================
Animation: This is where you edit the animations you see in a battle. It's pretty cool actually. You start by
making however many frames for the animation and put the sounds and effects under effect timing. I
won't go into great detail about this. This is probably where you can have alot of fun making your game.
#===================================================
Tileset: Remember the walking on water deal? Well here it is. This is where your allowed to edit your
tilesets. If the passability mark is on and if a square has a O, that means that that tile is passable. If it
has an X that means that that tile is not possible. If it has a square it means it is not passable as well.
Truly I don't know how to use the square though. Under Directional pass is where the character is
allowed to pass by direction. You would have a hero walking on the edge of a bridge and push left would
you? This is where this comes in handy. Arrows mean you can pass in that direction. Dots mean you
cannot. Priority is a little tricky. *1 means that the event/hero will go behind the tile but the hair will still
be visible. *2 means that the hero/event will be behind the tile and you will not see any of them. It keeps
going all the way to *5. The more it goes up, the more transparent it will be. *5 is for panoramas.
Obscuring tiles means that this tile will be sort of wavy when a character walks over it. I don't know what
the hell counter flag means. Oh well. Finally terrain is the type of terrain that tile is. Default maps are set
to 0.
#===================================================
Common Event: Think of common event as an event in itself, but is globally used. In other words you
could create a common event triggered by a switch and that common event would activate each time
that switch was created. Say like you had a switch that was activated if you jumped, and once you
jumped a common event would start that said a message like "Stop Jumping idiot!". Every time you jump
that message would display. No matter what map your on or anything. Also a common event can be
called from another event another common event or monster as well. Easy ya? Get it? "Common" event?
Ner?!
#===================================================
System: Your system is basically the central of your game. This is where you change Gold to Zenny, Item
to Bag, etc. But this is also where your able to create your own attributes. Attributes are not really magic,
they're more like constant take backs. What I mean is if you have a skill that has the attribute Fire and it
is at an A grade and you were fighting a Monster with a defensive grade of F guess what's gonna happen
to the monster? It's gonna get hurt almost 5 times than the normal attack. Pretty cool huh? If you want
to have a certain number of starting party members this is where you do it too. Also you get to change
your system graphics/music/etc. Now I'm done for this party. Let's go into the importing section.
#====================================================

Resource Manager:

Basically this is where you import/export your graphics/music for your game. Simple ya? Wrong! Nah jk.
Check it out.
First and foremost rpgmaker takes png and bmp files, but since bmp files are large in size I recommend
you convert your pictures into png or you will have a big sized game.

This is what the resource manager looks like. If you decide to import a graphic make sure of a couple of
things. First make sure that the dimensions of the graphic are correct. To do this export a default graphic
file of the same time and take a look at it's dimension in paint or something. Once you get the
dimensions correct you can import it into your game and it won't look all goofy. When you import the file
you'll get something like this:
Remember transparency? That's where this comes into play. See the ugly outline around paper mario?
We need to get rid of that so it won't show. Left click the outline, then right click the outline. You have a
choice of two transparency colors. We're gonna keep them the same since we only need the outline to be
gone. So once your done it should look like this.
Click ok. Now your graphic has been imported into the folder specified with the correct dimensions and
the right transparency.

You can also import music as well. Check it out.

BGM- takes only .mid, .ogg, .wma, .mp3, .wav audio files
BGS- takes only .ogg, .wma, .mp3, .wav audio files
Audio ME- takes only .mid, .ogg, .wma, .mp3, .wav audio files
Audio SE- takes only .ogg, .wma, .mp3, .wav audio files

Remember this if you can't import a song correctly. Bam! Done with resource manager!
#=========================================================

This is what makes rmxp different from the rest. This is the heart and soul of rmxp. RGSS is encrypted in
rmxp and rmxp uses something known as a script editor to keep the system a certain way. Let's take a
look inside.
"Whoa!" Your saying to yourself. "All that japanese font! Am I gonna have to learn japanese?!" The
answer is YES! If you go to Japan! lol.

Anywayz the real answer is no. Take a good look at the japanese writing. What do all of them have in
common. That's right! A # sign. This is known as a comment sign. This is used for your benefit only.
Rmxp will not read what's after the #. You could write something like #I'm Rick James and the program
would not care about that. Remember to use this when editing/creating your scripts.

"Wait. What are scripts?" Scripts are the "booklets" used in rmxp to make the system work. But let's
mess with the system a bit. Let's tweak it. This will be your first scripting experience and you will be
pleased. First test play a new game and press esc. Mess around with the default menu. Not much fun
right. Now exit and go back to the script editor. On the left column of the script editor scroll to the
bottom. Next right click right before the word "Main" and click insert. Next Click in the bottom left corner
box and type in something like Ring Menu. Now click in the right column and paste this in there, courtesy
of Dubealex and Maki.

[code]# =========================================
#===================================================
# ? Ring Menu - Show Player Location - Release #1 (Edited By Dubealex)
#===================================================
# For more infos and update, visit:
# rmxp.dubealex.com [OR] X-RPG V2 Forum
#
# Original Ring Menu by: ?? (From XRXS)
# Original Edit and Fix by: Maki
# Show Player Location Version by: Dubealex
#
# You can customize this script at line #35 - Have fun !!
# If you want to show more stuff, its easy to do, just ask, and I will release
# new version of this edited script !
#
# alex@dubealex.com
#===================================================

#===================================================
# ? CLASS Scene_Menu Begins
#===================================================

class Scene_Menu
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg ‰

Chapter 12. Event Commands

This tutorial is intended to be a reference for every event command in the game. It is a very long tutorial,
but it is not necessary to read it all in one session. It is separated in to distinct parts, making it easy to
refer to even a single command in the game if you are not certain what it does. I am both attaching it as
a text document and putting it in the spoiler, but I reccomend the download as it has a table of contents
and a colour scheme to make everything look nice. I tried to make many of the sections isolated, so that
reading that should be enough. For those that I did not feel it possible, I put a list of related events you
should take a look at if you still don't understand fully. Also, keep in mind that this is only part 1. I am
still missing about 2/3 of the commands from this tut.

Also, be sure to criticize and tell me what parts you don't understand and why. Feedback is the only way
I can make this tutorial better, and I appreciate it immensely. And, the pics are kind of small, i dislike
image shack. Download the attachment for full-size
(click to show/hide)
INTRODUCTION TO THE EVENT INTERFACE

Okay, this is my (modern algebra's) Event Commands Tutorial for RPG Maker XP. It will be split into three
parts, each dedicated to its respective tab. I know, it is a very innovative approach; nobody would expect
such an unconventional approach, but that’s the way it is. Feel free not to laugh at my jokes – they are
sparse anyway and generally aren’t going to be very funny. In any case, this tutorial is meant to explain
what each command does and thereby allow you to become better at making events do what you want
them to do.
There are three basic types of events: Local Events, Common Events, and Battle Events. You are
probably most familiar with local events as those are the events you make within a map. These can only
be used and referenced in the map they are made in. You can make as many of these as you can
squares and you access them by right-clicking on the map in the event layer and selecting the option to
create or edit an event. Common events are really cool (in the incredibly nerdy sense) as they can be
used in ANY map and so you can use them for all kinds of cool systems, like Day-Night, Crafting, Weather
– anything that might need to be used in more than a single map. You get 500 of them. Battle events are
made in the troops tab of the database and I will talk more about them in Part III, as that is where all
the battle commands are.
Before we go over the commands, I’ll explain to you the local event input interface. Here’s a picture:

These were badly labelled, so I am going to start with 6 and 7 before going on to the rest
6. Name
Pretty simple, this is where you label your event. This is useful if you ever need to reference this event in
another event.
7. Pages
As you can see, you can make new pages, copy pages, paste pages, delete pages and clear pages.
Essentially, a page represents a new event. You can have up to 99 pages in a single event. Remember, if
the conditions are filled for more than one page, it will always run the latest page. So, if you have two
pages in an event with no conditions on either, when you activate that event, page 2 will run.
1. Conditions
This is what determines whether or not the event will run when activated. As you can see, there are 4
possible conditions: Two Switches, a Variable, and a Self-Switch. All of these are discussed in PART I.3,
but a brief summary:
Switches have two positions: ON and OFF. As well, you, the user, define through events when each
switch is ON or OFF(you have 5000, and you can label each individually). If you check the box in the
event interface next to switch, then this event will only run if the switch you specify is ON.
Variables are like switches, except they have more than just the two positions ON and OFF. They have up
to 19999999 positions, each represented by a value from -9999999, …, 9999999. If you check this box,
then you have to specify a number and if the value stored within the specified variable is greater than or
equal to the number you specified, the event will run.
Self-Switch: Like switches, but are only useable within the event and you can only make 4 of them. So, if
a Self-Switch is set to A within an event, then it only affects that event. In other words, for any other
event, nothing has changed.

For example, if you have page 1 set to run only if Switch 1 is ON and page 2 set to run only if Variable 1
is greater than 10, then if Switch 1 is OFF and Variable 1 is less than 10, neither page will run when the
event is activated. If Switch 1 is ON and Variable 1 is less than 10, page 1 will run when the event is
activated. If Variable 1 is greater than 10, page 2 will run when the event is activated REGARDLESS of
whether switch 1 is on or not. And remember, you can stack conditions. So, you can make it so that a
page will only run if both Switch 1 and Switch 2 are ON, and Variable 1 is greater than 10, and Self-
Switch A is ON.
2. Graphic
This allows you to set a graphic for the event. You can set a different graphic for each page. To do so,
merely double-click the box and it will allow you to choose a graphic from the character sets you have
imported, as well as from the map tileset that your event is situated in.
3. Movement
This allows you to set up speed, frequency, and path. The path determines what your event is doing.
There are four options: Fixed, which means the event does not move. Random, which means the event
moves in an arbitrary manner, Approach, which means the event moves towards the hero, and Custom,
which allows you to define how the event moves using the move command interface (which will be
discussed in Part II). Speed defines how quickly the event moves and frequency defines how often the
event moves per second. For each there are six options, Slowest, Slower, Slow, Fast, Faster, Fastest.
4. Options
This is basically how the event interacts with the player. You can have as many of these checked off as
you like. Move Animation means that when the event is moving, it will go through and show animation.
So if it is a person, it will show their legs moving only when they walk somewhere. Stop Animation means
that the program runs through the animations even when the event is not moving. Think Shining Force 2.
This is most useful for some of the support graphics, like fountains or smoke. Direction Fix means that
this event will always be facing one direction. When this is not checked, the event will turn towards the
hero if the player presses the action key. This essentially disables that function. This is useful for treasure
chests and other graphics whose animations shouldn’t change no matter where the player is at the time
of interaction. Through allows the player and other events to occupy the same square as this event. It
also allows the event to ignore impassable terrain, like water or cliffs. Always on Top means that this
event ignores all other layers, or rather, that the event has priority over all other layers. This can be
useful for birds and flying objects, etc…
5. Trigger
This is where you determine what it is that activates the event. You can only select one option. Action
Button means that when someone walks up to the event (or on to it if the event is set to through) and
presses Button C (Enter, Space by default), the event will activate. Player Touch means that the event
will activate if the player occupies the same square (or at least tries to if the event is not on Through). So
if you are standing next to the event and then press the arrow key to move towards the event, it will
activate. Event Touch is similar to Player touch, but where player touch runs only if the player walks into
the event, event touch runs even if it is the event which runs into the player. This is especially useful if
you don’t want your combats to be random and so you want events to represent battles. Autorun means
that the event will run immediately upon entrance into the map (so long as the conditions are fulfilled. If
they aren’t it will run immediately upon their fulfillment). Be careful with these, as an autorun stops all
other events from running. Parallel Process is functionally the same as autorun, but it does not stop other
events from occurring at the same time (hence the name).

That is the interface for a local event. It is slightly different for common events and battle events, but to
unsuccessfully prevent boredom I will cover common events in the Preface to Part II and battle events in
the preface to Part III. Now, on to the main event! (pun soss for the win!)

PART I

Okay, so below is a picture of Tab 1, illuminated with dark, foreboding colours.

Alright, let’s start with 1.

1. The Input Commands

Okay, so I cheated a little in the naming of them, they aren’t all input commands, however I feel it is
justified because about half of them are. You’ll see what I mean.

SHOW TEXT

This is the most important command in all event land. That being said, it is kind of self explanatory and I
am sure that if your interest in RMXP is piqued enough to be reading this, you probably already know
what it does. For the sake of completion however:
This command opens a box into which you can type whatever you want to appear on the screen. There
are a few commands you can use to make it look pretty.
\v[n] Will display the value in variable number n.
\n[n] Will display the name of actor number n.
\c[n] Displays the characters that follow in colour number n. (1 - 7)
\g Displays money window in top right corner.
\\ Will be replaced by the '\' character.

If you want to see what your message will look like in-game, just press F2
If you get an Advanced Messaging Script, you will be able to use more commands, but these are the
basic ones that you can always use.

SHOW CHOICES
This is a very important function which allows the player to input his desires … assuming the entirety of
his desires can be compressed into a few, one line choices. You write whatever you want into the slots. It
then goes to the event commands and you can put whatever you want under each choice and when the
player selects that choice, it will run only what’s underneath that choice and then skip to whatever is
underneath the Show Choices Branch. This is what it looks like:

The reason I show a picture is to draw notice to the “When Cancel” Handler on the right. You’ll want to
change this every time you want more choices than the simple “yes” or “no”, because this determines
which choice is selected if the player presses the cancel key (ESC by default). If it’s on disallow, the
cancel key does nothing; if it’s on any of the choices, that particular choice is selected; and if it’s on
branch, then it will create a handler for when the person presses the cancel key, and you can put
whatever you’d like to happen when they do that, much like you do with the other options.

INPUT NUMBER

This command is heavily based upon variables, so refer to the section on variables if you do not
understand what they are. It basically lets the player input a number (at the bottom of the preceding
message) and it stores this number as a variable. It allows you, the game-maker, to specify a number of
digits, and then the user can choose any number which has that number of digits. For example, if you
allow 3 digits, then the player can choose any number from 0 to 999.
Related Commands: Control Variable; Conditional Branch

CHANGE TEXT OPTIONS

This allows you to change where the text appears on the screen and whether you want it in a box. This is
useful because the effect of a scene can be lost entirely if the text is blocking out all the action.

BUTTON INPUT PROCESSING

This command is also heavily based upon variables, so refer to the section on variables if you do not
understand what they are.. Basically, there are a few buttons which correspond to keys on the keyboard.
You can access this menu by pressing F1 in Test Mode:

Basically, what button input processing does is it allows the player to press a key, and then it stores the
button “number + 10” in a variable. So, what happens if you put it in and the player presses Space?
Basically, Space corresponds to C, which is Button 3, so it will store the number 13 in the variable of your
choice. You can also input the keys DOWN, LEFT, RIGHT, and UP, which are 2, 4, 6, and 8 respectively.
Be sure to identify what is happening to the player as well, because unlike Input Number, no hints are
given to the player that he should input a button. This is probably the least broadly applicable function of
all the event commands, since there already is a function of the conditional branch which responds to
which button is being pressed.
Related Commands: Control Variable; Conditional Branch

WAIT

This one is self explanatory, but you should note that it counts in frames, not seconds. In general, it is
about 20 frames per second in regular mode and approx. 40 frames per second in smooth mode – you
can check by pressing F2 while test playing, and you can shift between regular and smooth by pressing
F1. Also note that it applies only to the event it is called in. Any other events can still run normally.

COMMENT

This is like the Show Text option, but the event skips over it in the game (ie, it doesn’t show up when
playing the game at all). You can use it for complicated events to remind yourself what you are doing at
any given time. Alternatively, if you are making a demo of an event, you can use it to show other people
what you are doing.

2. Let’s call these the “Control” Commands.

If you haven’t realized yet, my naming of these groups is almost entirely arbitrary, as evidenced by the
fact that only 3 of the “Input” Commands actually require input from the user.

CONDITIONAL BRANCH

Very important command necessary for practically any complicated event, and incredibly useful even for
simple ones, this is probably one of the most useful commands in the game. What this does is it checks a
specified condition (a test), and, if true, executes a certain event, and if false, can either execute a
different event or it can be used to bypass an event. For example, if you want someone to say “You will
die in a fire” if the player is pressing the A button, and you want them to say “Nobody loves you” if the
player is not, then the screen looks like this:

And the screen where you set up the tests is composed of four tabs and it looks like this. If you don’t
want anything to happen if the test is not true, then just check off the box in the bottom left corner of
the setup screen, circled in green.

It’s a bit small, but I’ll just briefly go over each possible condition:
Switch – you can specify ON or OFF, and the command will execute if the switch
is on, or off. Refer to I.3.1
Variable – variables store values, and this command will execute dependent on
the relation between that variable and any other number (or other
variable) you specify. The relations allowed are: Equal to, Not Equal to,
Greater than, Greater than or Equal to, Less than, Less than or Equal to.
Self-Switch – same operations as a switch, but only available within the event
which is using the conditional branch. These will be discussed later.
Timer – Assuming you have a timer going, this condition checks what time is left
on it, and you can make something occur if it is greater than or less than
your specified time. For example, if you set the conditional branch to
Timer: 1 min 0 sec or less, then once the timer hits 1 min, the specified
event will occur.
Actor – This option allows you to run events based on what a specific character is
doing, wearing etc: anyway, a list:

In the Party: self-explanatory. It runs the event if the character is in the party. Very useful for games
with optional party members.
Name Applied: Essentially, if you name your hero a certain name, then the event will run. For games
where you enter Char Name, this can be used to enable cheats and stuff. For example, if the player
inputs GOD mode as his char name, you could have an event give him max stats. More practically, it can
be used in conjunction with a dummy hero and the Name Input Processing Command to represent
passwords. In other words you can make a hero in the database with no graphic and no stats, and use
him as the Name Input and the Password test. I’ll go into this further if I ever get to Name Input
Processing, which may never happen as I take 10 lines just to write on a single option within an option of
an event command.
Skill Learned: If the specified hero knows the specified skill, the event will run
Weapon Equipped: If the specified hero has equipped the specified weapon, then the event will run.
Armour Equipped: If the specified hero has the specified armour equipped, then the event will run.
State Inflicted: If the specified (How many more times can I use the word “specified” before people
start to get annoyed?) hero has a specified state inflicted, the event will run. For example, you could use
this to have the option of Cure only available at the temple if your character needs to be cured
Enemy – This is really only useable in combat, and if you use it in the battle section you will see that it
labels each enemy for your convenience. You can have it test one of two things:
Appeared: One of the options for setting an enemy in the troops section of the database is to “Appear
Halfway”. You can have an enemy appear at any time you like through one of the battle events located
on the third tab. This condition tests to see if they are in the battle yet.
State Inflicted: This works the same way as the one for the actor, but instead checks the enemy’s
state
Character – This one checks the direction a specified (sweet! The word “specified” saves the day once
again!) event is facing. You can use any event that is in the map, and you can use the player as well)
Gold – You can specify an amount of gold and have the event run if the player has less or more (you can
choose which) than that amount.
Item in Inventory – This checks if you have the specified item in your inventory and is true when you do
and false when you don’t
Weapon in Inventory - This checks if you have the specified weapon in your inventory and is true when
you do and false when you don’t
Armour in Inventory - This checks if you have the specified armour in your inventory and is true when
you do and false when you don’t
Button Pressed – Remember that picture I showed you in “Button Input Processing”? That screen is
where you set up what key each button corresponds to. The keys that the program recognizes input from
by default are: A, S, D Q, W, Z, X, C, Space, Enter, ESC, Num0, Shift, and of course, the arrow keys. You
can find scripts which allow more keyboard input. So, each of the buttons, labelled A, B, C, X, Y, Z, L, R
corresponds to one or more of these keys (also set up in that screen I showed earlier (called by F1 in
Test Play)). SO if you set Space to A, then Conditional Branch: A is being pressed means that if the
player is pressing Space, the test returns true and the event is executed.
Script – As all script commands are, this can be very useful if you know scripting and entirely useless if
you don’t. In any case, this essentially allows you to test ANY condition, as long as you know the proper
syntax. For example, if you need 3 of some item for a quest, then you could write in as the condition
“$game_party.item_number(<item_ID>) >= 3”, and that would check how many of that item you have
and return true if you have at least 3.

Related Commands: Control Switch; Control Variable; Control Self-Switch; Control Timer

LOOP and BREAK LOOP

These two are intricately related and so they go together. They do exactly what you expect them to do,
Loop makes an event repeat and Break Loop ends the loop. You MUST have something to break the loop
eventually, or else you get stuck in an infinite loop, and those are bad. The best way to break a loop is to
make a conditional branch which returns true once the event has run a sufficient number of times. For
instance, if you wanted the party to have at least 200 gold at a certain point in the game, but you don’t
know how much they have in the first place, you could make a loop which gives them the exact amount
of gold they need if they don’t have enough or nothing if they have more then enough. It would look like
this:

Loop
Conditional Branch: Gold 200 or more
Break Loop
Branch END
Change Gold +1
Repeat Above

Loops can be far more useful than this of course, and are ideal if you need your event to run more than
once.

EXIT EVENT PROCCESSING

This does exactly what it says. If the event runs into this command, then all event commands below it
will not be run. For this reason, this command should only be used inside a conditional branch, i.e. if you
don’t want the latter portion of the event to run unless some condition is fulfilled. For example, the
second text command in the following event will not run unless Aluxes is not normal:

Text: Hello, do you need something?


Conditional Branch: Actor Aluxes is Normal
Exit Event Processing
Branch END
Text: It seems like you have contracted syphilis

This is not a very useful command in my opinion, since it is only useable if nothing else is supposed to
happen if a test is fulfilled, and furthermore, it can just as easily work if you were to put what was
supposed to happen in the else of the Conditional branch.

ERASE EVENT

Another obvious one, this gets rid of the event. In other words, if you put this at the bottom of an event,
than this event will only run once. However, if you leave the map and then come back, you will be able to
once again run the event, so this command does not replace the self-switch.

CALL COMMON EVENT

Another useful one, this allows you to select a common event to run at this point in your event. It
essentially takes whatever is in your common event and places it into your event at the place you call it.
So, if you have, for example, the example I used for loops as a common event, then using this command
will call that event and place it into your event. So, if you have this event:

Text: I’ll give you as much money as you need for the inn.
Call Common Event [Loops Example]
Text: There, that should do ya.

This would execute:

Text: I’ll give you as much money as you need for the inn.
Loop
Conditional Branch: Gold 200 or more
Break Loop
Branch END
Change Gold +1
Repeat Above
Text: There, that should do ya.

LABEL and JUMP TO LABEL

These can be used similarly to loops, but I prefer them because they are more broadly applicable.
Essentially, they work by naming a label and setting it anywhere within your event. Then, you can use
the jump to label command to immediately go to that label. This can be especially useful if, for example,
you can select two options that both lead to the same result. That might be confusing, so I will show you
how it works:

Conditional Branch: Hilda is in Party


Text: Who do you want to play the minigame?
Show Choices: Aluxes, Hilda
When Aluxes
Jump to Label: Aluxes Plays
When Hilda
Text: Hilda: Oh, all right, I’ll do my best

Branch END
Else
Label: Aluxes Plays
Text: Aluxes: All right! I’m gonna rock this thing!
Branch END

All right, so what that event would do would be if you have Hilda in your party, then it would allow a
choice for who gets to play the minigame. Otherwise, Aluxes plays the game by default. Since there are
two ways to get to the same event: i.e. you get the message “Aluxes: All right! I’m gonna rock this
thing!” if Hilda is not on your team or if she is and you select Aluxes, then without labels you’d have to
repeat the same event commands under both possibilities. But, with labels, you are able to write the
event only once. This is not particularly useful when there is only one line to the event and it is easy to
repeat, but for larger events this comes in handy. Note: You can also exit a loop with a Jump to Label
Command as long as the Label you are jumping to is not within the loop.

Hmm… On to 3. I guess they can be called the Control Commands… Damn! I called 2. the control
commands… well whatever, ummm… Change Commands will do!

3. Change Commands

CONTROL SWITCH

Okayyy, a lot of people have trouble understanding switches, but that’s a good thing for me, because
that means that there are already a bunch of tutorials out there for you guys. So, I will try to be brief and
concise, but just in case, here’s a link that might help you if I am not clear enough:
http://www.creationasylum.net/index.php?showtopic=6

Anyway, to put it simply, a switch is like a light switch. If it’s on, the light is on, and if it’s off, the light is
off. The function switches serve in RMXP is similar, but as you saw earlier in my explanation of
conditional branches, they are used to determine when certain events should run. The Control Switch
command is what you use to turn switches on and off. Switches are very important for RMXP as you’ll
need them for every event that you don’t want to always occur. That phrasing is little strange, so I’ll use
an example. If you want a quest in your game to be, say, some old guy wants you to go kill some old
woman and he says he’ll give you a reward. Obviously, you can’t have the old man give you the reward
before you complete the quest, and so this is where switches come in handy. Basically, you’ll have to
make the old man event have two pages – one where he gives you the quest and one where he gives
you the reward. On the page where he gives the reward, condition it on Switch: [Old Hag murdered in
Cold Blood] is ON. Now all you have to do to have it switch to this page is after you’re finished doing the
foul deed, have a Control Switch command activate which turns the switch [Old Hag murdered in Cold
Blood] ON, and you’re done. You have successfully rewarded your heroes for murdering a helpless old
lady. Don’t worry, she’s old anyway. If you don’t know what I mean by pages and conditions, refer back
to the section on the event interface in the Introduction.

Okay, so that works, but why does it work? Basically, whenever you activate an event, the program runs
through and tests every condition that you specify need to be met for that page to be run, and then it
executes the latest event which has all the conditions fulfilled. So when you talk to the old man, it tests
whether or not the Switch [Old Hag murdered in Cold Blood] is ON. The first time, this test will return
false because that switch is not on. In fact, it will return false every time you try to talk to him before
killing the old lady, and so every time page 1 will run. Once you kill the old lady, however, the switch
[Old Hag murdered in Cold Blood] is turned ON, so now whenever you talk to the old man, the conditions
on the second page return true and so the reward page runs. Now, you probably notice that this event is
not complete, as if you have understood all this, you will understand that this second page will run every
time you speak to the old man, and thus, you will get multiple rewards. You can use another switch to fix
this, but in this case, self-switches are ideal, and so we will return to this example when we cover self-
switches.

You’ll notice that in the interface for switches, there is an option for single or batch. Single applies the
operation (ON or OFF) to a single, specified switch. Batch applies the specified operation to ALL switches
within a specified range. For the most part, what you’ll be using is single, but batch sometimes comes in
handy, most often with turning things off after a complicated event which required multiple switches.
Keep in mind when you are using batch that you have to want ALL of the switches within that range to
have the same operation applied to it. You get a total of 9999 switches to use in each project.

Related Commands: Conditional Branch


CONTROL VARIABLE

This is another thing that a lot of people don’t know how to use. They justify this by saying it’s primary
use is as a condition, and since they know how to use switches and conditional branches, they say that it
is only minimally useful at best. I say, WRONG! WRONG! WRONG! Superman is not coming to save you,
and worse still you don’t have a mini Superman to shove pianos at people! Variables are a lot more useful
than switches; variables are more efficient than switches in almost every situation and they can even be
used in a lot of situations where switches fail. This is one of the most important event commands and
even complicated actions can be evented easily through the use of variables. I will try my best to explain
them in detail for this reason, and so this is going to be a long chapter.

Without any further ado, I present to you the Control Variables Interface. Get to know it well, for without
it your eventing can only be, at best, mediocre:

Okay, as you can see, this has the same interaction as do switches. You can either operate on a single
variable or you can operate on a group of variables within a range (with the limitation that you want to
apply the same operation to group of variables which are all bunched together. The difference is the
amount of operations you can apply to variables. Before we get to that, let me try to explain what a
variable is.

A variable stores any value from -9999999 to 9999999. Each one of these numbers is kind of like a
position. So, where a switch has 2 positions (ON and OFF), a variable has 19999999 positions. That’s
exactly 9,999,999.5 times more positions than a switch. A typical example of the use of variables is as a
tool for counting progress in a quest. Let’s go back to the old lady example. Say that the old man doesn’t
want you to kill just one old lady, say he wants you to kill three old ladies. Using switches: one switch so
that he doesn’t repeatedly give you the quest, ie. Once you accept the quest, he does not continue
asking you to do the quest. Then you’d need an additional switch to turn on for each old lady you kill. 3
old ladies = 3 switches. So a total of 4 switches for this quest. With variables, you only need to use one
variable and merely use a Control Variables[Old Lady Murder Spree] +1 for each instance where you
would normally use a switch.

See, already you should be getting the feeling that variables are awesome. Well Addition is only one of
the operations you can use on variables.

The Control Variables Event Command can be split into three distinct parts: Variable, Operations, and
Operand. The variable part is where you choose which variable (or variables) you are going to change
with this command. The operations part is where you choose which operation to perform (the operations
are all listed in the Operations section below). And the operand part is what you are performing the
operation with. Essentially this is the number which you are using to effect changes in your variable
(example: if you are using the operation add, this is the number that you add to the variable). You can
make the operand a number of different things, which I will explain in the Operand section.

Operations

I am going to go over the operations now, and to make things easier, let’s say we are working with a
variable called [Test]. Note, however, that this is an arbitrary name. All operations work the same way on
any variable.

Set: This basically means “gets the value:” and then in the operand section you choose what value it
gets. [<variable>] = [<operand>]So if you choose the constant “3” as your operand, then the variable
[Test] = 3. By default, before any operations are applied to a variable it is set to 0.

Addition: This adds the operand to the value currently stored in the variable. [<variable>] = [<current
value stored in variable>] + [<operand>]. The current value in [Test] is 3, so if we use the addition
operation with constant 2, then [Test] = [Test] + 2, so [Test] = [3] + 2 so [Test] = 5
Subtraction: This subtracts the operand from the value currently stored in the variable. [<variable>] =
[<current value stored in variable>] - [<operand>]. The current value in [Test] is 5, so if we use the
subtraction operation on [Test] with the operand being a constant 3, then [Test] = [5] – [3] = 2. So
[Test] is now storing the value [2].

Multiplication: This operation multiplies the value currently stored in the variable by the operand.
[<variable>] = [<current value stored in variable>]x[<operand>]. Let’s say our operand is 4, then using
this operation on [Test] = [2]x[4] = 8. [Test] is now storing the value [8]. Now, I will state this in a
slightly more complicated way in the hopes that it will help you better understand the next operation,
mod. One thing to note about this operation (about all operations really), is that if the result of the
operation is greater than 9999999, then the value stored in the variable defaults to 9999999. So if you
were to try to multiply [Test] by 2000000, then [Test] = [8]x[2000000] = 16000000, but the variable
[Test] receives the value [9999999].

Division: This operation divides the value currently stored in the variable by the operand, and then
rounds down to the nearest integer. [<variable>] = [<current value stored in variable>] / [<operand>].
So, with our variable [Test]. It’s current value is 8, and say we take operand 4, then [Test] = [8] / [4] =
2. Keep in mind that it will round down, so if we took the operand 5, [Test] = [8] / [5] = 1.75 = 1.

Mod: I suspect that most of you have no idea what this last one is, so I will take my time explaining it.
Mod calculates the remainder after division. Division (a / b) can be written in this form: a = bq + r,
where a is the number you are trying to divide, b is the number that is dividing it, q is an integer such
that bq is less than or equal to a and that b(q+1) is greater than a, and r is the remainder. You’ll
probably benefit more from an example. Let’s say we are trying to divide 8 by 5. [8] = [5]x[1] + [3]. The
number mod is concerned with is the remainder, so you can say 8 mod 5 = 3. Another example: what is
7 mod 3? [7] = [3]x[2] + 1, so 7 mod 3 = 1. Hopefully you understand this, but in any case I can’t spend
any more time on it so I will just give one last example in terms of RMXP variables. The value currently
stored in [Test] is 8. SO, if we apply the operand 6, then [8] % [6] => [8] = [6]x[1] + [2], so
[8]%[6] = 2. The value currently stored in [Test] is now 2. Notice also that q (in this case 1) is the value
you get when you divide 8 by 6 in variable operations.

Operand

Constant: This is just an integer from -9999999 to 9999999. Pretty simple.

Variable: This allows you to select another variable (or the same variable) as the operand. In other
words, if we have two variables, Test 1 and Test 2, and Test 1 = 4; Test 2 = 5, then we could use [Test
1] as the variable we are changing and [Test 2] as the operand. As far as usage goes, [Test 1] =
[current Test 1] + [Test 2] and so [Test 1] = 4 + 5 = 9. Note that it is still only the variable you specify
in the variables section that is changed, [Test 2] (the operand) is still only equal to 5.
Random: This takes a single number from a range that you specify and uses it as the operand. Each
number from within the range is equally likely to be chosen. So, if you specify a range from 1 to 3, then
there is approximately a 33.3 % chance 1 will be chosen, a 33.3% chance 2 will be chosen, and a 33.3%
3 will be chosen. This is useful for anything that has no set outcome. For example, you could use it for
dice or anything that requires some randomness.
Item: This works by specifying an item in your inventory. Then, the operand takes the value of the
number of that item you have in your inventory. For example, if you specify potions, and your party has 2
potions in their inventory, then the operand will take the value of 2. If the party has 3 potions, then the
operand will take the value of 3. etc…

Actor: For this, you have to specify both the player character(people you can have in party) and the
parameter. You can choose any character and then from that you can choose any of the following
parameters which correspond to that character: Level, Exp, current HP, current MP, max HP, max MP,
Strength, Dexterity, Agility, Intelligence, Attack, Physical Defence, Magical Defence, and Evasion. The
operand takes the value of the number corresponding to the parameter. For instance, if Aluxes’ Strength
is 435, then the operand takes the value 435. Note, max HP means max HP for level, and current HP
means max HP – the damage he has received.

Enemy: This is a command meant exclusively for combat. When you are not in combat, it takes the value
0. When you are in combat, it has all the same parameters as actor has, but they correspond to the
enemy you specify.

Character: This can apply to any event on the map and the player, just specify it in the first slot. Then,
you can specify any of six parameters: Map X, Map Y, Direction, Screen X, Screen Y, and Terrain Tag.
Map X is the x-position of the specified event. X goes from left to right, from zero to (map width – 1). Y
goes from top to bottom, from zero to (map length – 1) That’s probably hard to understand so I’ll post a
screenshot: Format: x coordinate, y coordinate. Map width = 4, map length = 4

Screen X and Screen Y are similar to Map X and Map Y but are determined in pixels, not squares. Each
square is 32 pixels x 32 pixels, so basically Screen X = 32x(Map X) and Screen Y = 32x (Map Y).
Direction assigns a number to the direction the event is facing. As I stated earlier, Down = 2, Up = 8,
Left = 4, and Right = 6. So if the event is facing down, the operand takes the value 2, etc…
Terrain Tag refers to the Database. If you look in the database under tilesets, you can set tiles on a map
to have tags from 0 to 7. This command takes the tag from the tile the event is standing on and uses it
as the operand.
Other: These are all pretty self explanatory. Map ID: operand takes the value of the Map ID #. Party
Members: operand gets the number of characters in your party. Gold: operand gets amount of gold party
is currently holding. Steps: operand gets amount of steps party has taken. Play Time: operand gets
number of seconds the game has been played for. Timer: operand gets number of seconds left on timer.
Save Count: Operand gets # of saves.

Some of you may still have doubts. You are looking at this long, boring, mostly incomprehensible section
and thinking to yourself, “sure, it was sort of useful for that quest example, but I still think switches can
do everything that variables can… WRONG!!! To show you some of the uses for variables, I will build
upon my previous example. In reality, if you were an old man who wanted a few old ladies murdered,
would you really ask some random stranger who walked into your house? Probably not. For this reason,
maybe you want an alignment system like in Fable. Maybe you only want the old man to ask you if you
are sufficiently evil that he believes you will do it. This can easily be accomplished through the use of a
single variable. All you have to do is make it so that whenever you do a good action, your alignment
variable increases and whenever you do an evil action, your alignment variable decreases. To
demonstrate how this would work: Let’s say we base the system on a scale from -5000, …, 5000. 5000 is
the maximum good and -5000 is the maximum evil. Killing an old lady is fairly evil, so let’s say that
subtracts -250 each time you do it. You can easily make it so that you are only granted the quest if your
alignment variable is less than -1000 by putting it into the conditions. Maybe also, you don’t want the old
man to say the exact same thing every time you talk to him (you use random for this). So now, our
events look like this:

OLD MAN (for all: Trigger: Action Key; Graphic: OLD MAN)

Page 1:
Conditions: None

Event Commands:
Text: This day is filthy; rotten! I have a hankering to murder some old women! You with me?
Show Choices: Yes, No
When Yes
Text: There be a three old hags in this city that need akilling me hearties. I am a
pirate! Go now and find them. They do be in shacks near the ocean I say! I give
ye a share of the plunder matey!
Control Variable [1. Pointless Killing!] + 1
When No
Text: Useless Landlubber
Branch End

Page 2:
Conditions: Variable [2. Alignment] is -999 or more

Event Commands:
Control Variable [3: random talking]: Random (1,…,3)
Conditional Branch: [Variable [3: random talking] = 1
Text: Ah, the fluttering of the butterflies puts this old, weary heart at rest.
Branch End
Conditional Branch: [Variable [3: random talking] = 2
Text: We are blessed with fine weather this day.
Branch End
Conditional Branch: [Variable [3: random talking] = 3
Text: AH! Were only my wife alive to feel this Spring air.
Branch End

Page 3:
Conditions: Variable [1. Pointless Killing] is 1 or more

Event Commands:
Text: What are ye layin’ aboot here fer. Go kill them ladies by the wharf!

Page 4:
Conditions: Variable [1. Pointless Killing] is 4 or more

Event Commands:
Text: Aye, ye done well fer a useless layabout landlubber!
Change Gold: + 1000
Text: You got a 1000 gold!
Control Variable: [1. Pointless Killing] +1
Page 5:
Conditions: Variable [1. Pointless Killing] is 5 or more
Text: Ye done well laddie. I’ll make use of yea agin some day I reckon.

Each OLD HAG (for all: Trigger: Action Key; Graphic: OLD LADY)

Page 1:
Conditions: None

Event Commands:
Control Variable [3: random talking]: Random (1,…,3)
Conditional Branch: [Variable [3: random talking] = 1
Text: You seem to be a fine young gentleman
Branch End
Conditional Branch: [Variable [3: random talking] = 2
Text: I hear there is a nice old man in central who loves the Spring
Branch End
Conditional Branch: [Variable [3: random talking] = 3
Text: I was once the Queen of Scotland
Branch End

Page 2:
Conditions: Variable [1. Pointless Killing] is 1 or more

Text: Ay, why is your sword drawn?


Battle Processing: Helpless Old Lady
Control Variable [1. Pointless Killing] + 1
Control Variable [2. Alignment] - 250
Control Self Switch: [A] ON

Page 3:
Conditions: Self Switch A is ON
NO GRAPHIC
NO EVENT COMMANDS

That took a lot of space but I thought a prolonged example would help get the point across: variables are
better than switches. There are many, many things which variables can do which I did not include in the
example. Explore them a little and almost every event you can think of will become simpler. In any case,
if you’ve read through all that and still don’t understand how to use variables, then check out these
tutorials:
http://rmrk.net/index.php?topic=14159.0 (for 2k3, but the basics are the same)
http://yamisiterawr.com/variables.php (explains what a variable is really well)

Related Commands: Input Number; Button Input Processing; Conditional Branch; Change Gold; Teleport;
Show Picture

CONTROL SELF-SWITCH

Self-Switches are a lot like switches, except they can only be used within a single event, and you can only
use 4 within each event (labels A, B, C, D). So, they function exactly as switches do except they cannot
affect other events, only themselves. So if you turn ON self-switch A in one event, then Condition: Self-
Switch A is ON will ONLY be fulfilled within that event, and not in any other event. Now, I promised that
we would return to the example we covered to demonstrate switches. In that example, we ended up with
an overly generous old man. He just wouldn’t stop giving your party a reward! In that case we are
looking for a specific kind of switch: we need it to stop this event from recurring, but we do not need it to
affect any other events in the game. Sound familiar? This is the self-switch. All we need to do is place a
self-switch at the end of the second page of that event which turns [A] on. Then, we make a new page
conditioned on this self-switch A and in it we have the old man thank your party for your hard work.
Popular uses for the self-switch are with treasure chests. It is very easy to make the chest give your
party an item and then turn on a self-switch so that the chest no longer gives that item. And all without
wasting one of your precious 9999 switches.

Related Commands: Conditional Branch; Control Switch

CONTROL TIMER

It’s nice when they are self-explanatory. This command starts up a timer which counts down from the
time you specify. You can specify anything from 0 min, 0 sec to 99 min, 59 sec. You can also use this
command to stop the timer at any time of your choosing. To have the current position of the timer
interact with your events, use conditional branches.

Related Commands: Conditional Branch

CHANGE GOLD

You use this command to give your party gold. It’s pretty straightforward. You can either increase (a
reward) or decrease the party’s gold (payment). Furthermore, the number of gold given or taken can
either be set as a constant, or you can change the party’s gold by the value stored in a specified variable.
So, if there is a set reward, say 1000 gold, then you can just specify 1000 gold as a constant. However, if
the amount of gold you get for a quest is a random number between 500 and 650, then you could just
set a variable [Reward] and use Control Variable [Reward] Random (500, 650) and then in the Change
Gold command, just specify the increase by the variable [Reward]. Conditional Branches come in useful
for decreasing gold: you can make sure you have enough gold by conditioning on “greater than or equal
to” the amount of gold you want to take away.

Related Commands: Control Variable; Conditional Branch

CHANGE ITEMS / WEAPONS / ARMOUR

These work the same way Change Gold does, but I just felt I should separate them arbitrarily. In this you
specify three parameters: the item, whether you are increasing or decreasing, and the number of that
item you wish to take or give. Analogously to Change Gold, you can specify the number as either a
constant or a variable. As well, conditional branches can be useful when you are trying to take items
away from the party.
Related Commands: Control Variable; Conditional Branch

CHANGE PARTY MEMBER

This command serves the very important function of allowing you to add / remove characters from your
party. It is very easy to use. Basically, it allows you to select a hero, and then you choose whether to add
him to the party or remove him from the party. One thing that might require explanation is the “initialize”
check box. This only applies to when you are adding a hero to the party, and basically what it does is
that when it adds the hero to your party, it takes all the hero’s information directly from his database
entry (i.e. his initial level, HP, SP, Str, etc…). Basically, you should only have this box checked the very
first time you add a hero (I don’t even think you need to have it checked then either, but it won’t screw
everything up if you do). If this is the second time you are adding that hero to the party (i.e. he was in
your party previously, but then you removed him, and now you want him in your party again), do NOT
check the box initialize, as all the levels he gained in his previous time with you will be rendered null. As a
general policy, just uncheck the box when you add your party members.

4. The System Commands

These commands allow you to change the settings of your game a little bit. Of all the arbitrary names
I’ve randomly assigned so far, I think this is probably the most apt.

CHANGE WINDOW SKIN

The window skin is basically the background for well… windows. It is this:

That may not be very descriptive, but window skins are graphics like this which can be applied to your
game. This shows up everywhere you have text, in your menu, in battle, basically everywhere except on
the maps themselves. This picture is of the one that comes default with RMXP, but if you search around
you will soon find that many avid RPG makers have decided to make their own skins and are sharing
them. You can set the window skin in the systems tab of the database. But, if you ever want to change it
in-game, then this is the command to use.

CHANGE BATTLE BGM / BATTLE END ME

In case you don’t know, BGM stands for background music and ME stands for Musical Effect. The Battle
BGM is the music playing during battle and the End ME is the music that plays at the victorious conclusion
of a battle. Both of these are originally set in the System Tab of the Database, but these commands allow
you to change them in game

Related Commands: the Sound Commands


CHANGE SAVE / MENU ACCESS

Damn, these commands are all boring. Blue is way too cool a colour to waste on these lame commands
… Anyway, what these commands do are either enable or disable their respective options. Disabling
Menu Access means, quite simply, that you are not able to access the menu from the map (you can still
call it though through Call Menu Screen). Disabling Save Access means that when you go into the menu,
the option to save will be greyed out and un-selectable. Just like with disabling menu access, the save
scene can still be called through Call Save Scene. To re-enable either, you use the same command and
just choose enable instead.

Related Commands: Call Menu Screen; Call Save Screen

CHANGE ENCOUNTER
As I am sure you know, you set encounters in the map properties screen each time you make a new
map. Well, this command allows you to disable and enable these encounters. This is perfect for any map
which changes from a place with enemies to a place without them or vice-versa. For example, if zombies
are infesting a town, it is your party’s job to rid the town of them. After you finish the quest, you
obviously do not want zombies to still randomly attack you in the streets, so you use this command to
disable encounters.

COMMON EVENTS

(click to show/hide)
The Common Event Layout

A common event is an event which can apply to any map in the game. They can be found and edited in
the database. They can be triggered in a few ways and can either be static (none), parallel process, or
autorun. I am using the term static in this circumstance to mean that it runs once and only once for
every time it is called. This does not mean it can only be called once: it can be called any number of
times, but when it is called, it will not repeat. This kind of event must be called either from a) a local
event, b) a battle event
c) the use of a skill, d) the use of an item. Here is a look at the layout:
As you can see, I made big useless boxes around the stuff Enterbrain already boxed. Anyway:
Change Maximum: Misleading name. The maximum number of common events is 999 and you cannot
change that. However, you can change how many common events you have stored in your data folder up
to a max. of 999. So, in this file there are only two common events, but you can change how many there
are.

Name: Label your common event with an appropriate name.

Trigger: What it is that causes this event to run. The static (none) option was described above. Paralell
and autorun are the same as in local events and you can refer to that part if you do not know what it is.
If you select either of those, you need to specify a switch which turns them on. It can be any switch you
want.

List of Event Commands: As expected, this is where the event commands are placed.

Because of the way they function, common events can be used in many ways:
1) Anything that you want to run constantly. For example, if you want to build a dynamic Day-Night
System with events, you need the same event to run in every map, and so a common event will work
perfectly.

2) An event which is used often in separate events. You can call a common event within a local event
by using the Call Common Event command. An example would be treasure chests. My treasure chest
common event looks like this:
As you should know what every command in that does, I probably don’t need to tell you, but this event
randomly decides what potion you get with 30% chance you get a single health potion, a 30% chance
you get a single energy potion, a 10% chance you get two health potions, a 10% chance you get two
energy potions, a 10% chance you get an improved health potion and a 10% chance you get an
improved energy potion. Now, for every treasure all I have to do is assign a graphic, put it on direction
fix, and use the Call Common Event command on this event. This is a pretty simple example, but useful.

3) Custom Items. In the items tab of the database, you see an option called Common Event. Just select
a common event from the pull-down menu. Every time the player uses the item, the common event
you’ve chosen will run. Useful for a lot of items. Just as an example: books. Just set up the text of the
book as a common event and have the book select that common event. You can also use this to limit the
use of an item. For items in general, you can use either just once or always. If you wanted an item (for
example, a Ring of Fireballs which is destroyed after using it five times, you have to use a common event
like this:

Control Variable: [001: Count Fireball Ring Usage] + 1


Text: You have used the Ring of Fireballs \v[1] times.
Conditional Branch: Variable [Count Fireball Ring Usage] = 4
Change Items: [Ring of Fireballs] – 1
Text: The Ring of Fireballs is broken.
Control Variable: [001: Count Fireball Ring Usage] = 0
Branch END

4) Custom Skills. Like the Items tab, the Skills tab also allows you to call a common event. This allows
you to make custom skills. For example, if you wanted a skill which could create an item, like potions or
something, you could just make a common event like this:

Change Items: [Potion] + 1

That probably didn’t deserve it’s own line, but you get the idea that youcan do a lot of things with skills
that would be impossible without common events.

Common Events are very important for a lot of event systems. Use them or die!

Chapter 13. Common Events Tutorial

Okay, this is part of my Event Commands Tutorial, but since I won't be able to finish that soon
(studying), I decided I would post this part independently since it is pretty much self contained and it
describes a useful feature of RMXP:

Here it is:

(click to show/hide)
The Common Event Layout

A common event is an event which can apply to any map in the game. They can be found and edited in
the database. They can be triggered in a few ways and can either be static (none), parallel process, or
autorun. I am using the term static in this circumstance to mean that it runs once and only once for
every time it is called. This does not mean it can only be called once: it can be called any number of
times, but when it is called, it will not repeat. This kind of event must be called either from a) a local
event, b) a battle event, c) the use of a skill, d) the use of an item. Here is a look at the layout:

As you can see, I made big useless boxes around the stuff Enterbrain already boxed. Anyway:
Change Maximum: Misleading name. The maximum number of common events is 999 and you cannot
change that. However, you can change how many common events you have stored in your data folder up
to a max. of 999. So, in this file there are only two common events, but you can change how many there
are.
Name: Label your common event with an appropriate name.

Trigger: What it is that causes this event to run. The static (none) option was described above. Paralell
and autorun are the same as in local events and you can refer to that part if you do not know what it is.
If you select either of those, you need to specify a switch which turns them on. It can be any switch you
want.

List of Event Commands: As expected, this is where the event commands are placed.

Because of the way they function, common events can be used in many ways:
1) Anything that you want to run constantly. For example, if you want to build a dynamic Day-Night
System with events, you need the same event to run in every map, and so a common event will work
perfectly.

2) An event which is used often in separate events. You can call a common event within a local event
by using the Call Common Event command. An example would be treasure chests. My treasure chest
common event looks like this:
As you should know what every command in that does, I probably don’t need to tell you, but this event
randomly decides what potion you get with 30% chance you get a single health potion, a 30% chance
you get a single energy potion, a 10% chance you get two health potions, a 10% chance you get two
energy potions, a 10% chance you get an improved health potion and a 10% chance you get an
improved energy potion. Now, for every treasure all I have to do is assign a graphic, put it on direction
fix, and use the Call Common Event command on this event. This is a pretty simple example, but useful.

3) Custom Items. In the items tab of the database, you see an option called Common Event. Just select
a common event from the pull-down menu. Every time the player uses the item, the common event
you’ve chosen will run. Useful for a lot of items. Just as an example: books. Just set up the text of the
book as a common event and have the book select that common event. You can also use this to limit the
use of an item. For items in general, you can use either just once or always. If you wanted an item (for
example, a Ring of Fireballs) which is destroyed after using it five times, you have to use a common
event like this:

Control Variable: [001: Count Fireball Ring Usage] + 1


Text: You have used the Ring of Fireballs \v[1] times.
Conditional Branch: Variable [Count Fireball Ring Usage] = 4
Change Items: [Ring of Fireballs] – 1
Text: The Ring of Fireballs is broken.
Control Variable: [001: Count Fireball Ring Usage] = 0
Branch END

4) Custom Skills. Like the Items tab, the Skills tab also allows you to call a common event. This allows
you to make custom skills. For example, if you wanted a skill which could create an item, like potions or
something, you could just make a common event like this:

Change Items: [Potion] + 1

That probably didn’t deserve it’s own line, but you get the idea that youcan do a lot of things with skills
that would be impossible without common events.

Common Events are very important for a lot of event systems. Use them or die!

As always, tell me what you find unclear so I can improve. Did I forget something? Do you need more
details on a particular thing? Be sure to post your questions so I can make this tutorial as good as
possible.

Chapter 14. Item Requirements for Skill Use

It seems a lot of people have questions about using or requiring specific items in order to cast a spell.
This will descibe the general process. It requires 1 master common event and 1 additional common event
for each skill you want to have this item requirement. Additionally, we will be using at least 2 switches,
which we will call "Initialize Reagent Skills" and "<skill name> learned by <hero name>". You will also
need a dummy skill for each skill you intend to give an item requirement, and you can do that in this
way: merely copy the skill in question and past it into another slot in the skills tab of the Database (DB).
Now, all that you have to do is make it so that this skill can never be used, which means using the pull-
down menu under Occasion and selecting Never in the dummy skill. If you like you can edit the
description to say "you do not have enough <generic item> to cast this spell.

Now, let's set up the master events:


(1) This is pretty simple. First thing we want to do is keep track of when your character obtains the skill
in question (let's say it is Fireball, and Arshes is learning it, and it requires a gold mushroom to cast.).
Since there is not a set point in the game that this skill is learned, we need to make a common event
which is running all the time and testing to see if the character has the skill. All we want this event to do
is notify the event system as to when this skill is first obtained. Let's call this event "Testing". Now, set it
to paralell process, called by the switch "Initialize Reagent Skills". So our design for this part should look
like this:

Conditional Branch: Switch [Fireball learned by Arshes] is OFF


Conditional Branch: [Arshes] is [001: Fireball (original)] learned
Control Switch: [Fireball learned by Arshes] is ON
Branch END
Branch END

Pretty simple eh?

(2) Now, what we want this to also do is replace the real skill Fireball with the dummy skill we made,
because this is equivalent to disabling the skill. Once the skill is disabled in this way though, we need
something which will re-enable it once we have the item, so this event should also perform that function.
Now, let's make our event: We can call it "Skill Disabler", and it will be paralell process and called by the
switch "Initialize Reagent Skills". It ought to look like this:

Conditional Branch: Switch [Fireball learned by Arshes] is ON


Conditional Branch: Item [Gold Mushroom] is in inventory
Change Skills [Arshes], + [001: Fireball (original)]
Change Skills [Arshes] - [002: Fireball (dummy)]
Else
Change Skills [Arshes], + [002: Fireball (dummy)]
Change Skills [Arshes] - [001: Fireball (original)]
Branch END
Branch END

Notice, how this begins with the same condition the first event we wrote does. We can combine the two
functions into one common event merely by writing it like this:

Conditional Branch: Switch [Fireball learned by Arshes] is ON


Conditional Branch: Item [Gold Mushroom] is in inventory
Change Skills [Arshes], + [001: Fireball (original)]
Change Skills [Arshes] - [002: Fireball (dummy)]
Else
Change Skills [Arshes], + [002: Fireball (dummy)]
Change Skills [Arshes] - [001: Fireball (original)]
Branch END
Else
Conditional Branch: [Arshes] is [001: Fireball (original)] learned
Control Switch: [Fireball learned by Arshes] is ON
Branch END
Branch END

(3) That's enough if all you want to do is make it so that the skill can only be used if you have the item.
If you want the item to be consumed upon using the skill you will need one more common event. We will
call this one "Fireball Skill" and you will leave it's Trigger as None. Now, go to your skills database and set
the original fireball skill to call this common event. Now, we need this event to do one thing: reduce the
number of gold mushrooms we have. That's pretty simple, but keep in mind that paralell processes do
not run during battle, so you will need to reproduce a simplified version of the first event within this one.
If we run out, we will need to disable the skill, but we will not need to make allowances for re-enabling
the skill since you will not bee able to replenish your gold mushroom stock until you are out of battle, and
then our second event will do it's job. SO, let's make it:

It ought to look like this:

To set this event-based system into motion, all you need to do is turn on the switch "Initialize Reagent
Skills". You can do that at the very beginning of the game. There, that gives us a perfectly good event
system for reagent-based skills. Now, you might think: what if I want to make more skills like this? Will
each one take two common events? The answer, of course, is no. It will only take one more common
event, since for the skill disabler eveny, all you need to do is put an additional conditional branch
underneath. To show you, I will add another skill to our event. Let's say this one is for Basil, and it is the
skill Heal, which takes a Green Herb.

"Skill Disabler" should look like this:


Conditional Branch: Switch [Fireball learned by Arshes] is ON
Conditional Branch: Item [Gold Mushroom] is in inventory
Change Skills [Arshes], + [001: Fireball (original)]
Change Skills [Arshes] - [002: Fireball (dummy)]
Else
Change Skills [Arshes], + [002: Fireball (dummy)]
Change Skills [Arshes] - [001: Fireball (original)]
Branch END
Else
Conditional Branch: [Arshes] is [001: Fireball (original)] learned
Control Switch: [Fireball learned by Arshes] is ON
Branch END
Branch END
Conditional Branch: Switch [Heal learned by Basil] is ON
Conditional Branch: Item [Green Herb] is in inventory
Change Skills [Basil], + [003: Heal (original)]
Change Skills [Basil], - [004: Heal (dummy)]
Else
Change Skills [Basil], + [004: Heal (dummy)]
Change Skills [Basil], - [003: Heal (original)]
Branch END
Else
Conditional Branch: [Basil] is [001: Heal (original)] learned
Control Switch: [Heal learned by Basil] is ON
Branch END
Branch END

Now, the event Fireball remains the same. All you have to do is make an event which is analagous to
Fireball, but which applies to Heal instead.

Chapter 15. How to Upload your Game

Simple! Follow these steps!

NOTE: Normal RMXP is the same as the free one from the tut.

1. File > Compress Game Data/Make Game Disk


RMXP: The Free One from the Tut to get it for free:
RPG Maker XP Postility Knights
Edition:

2. A new window will pop-up. This indicates the location your file will go to. You'll see in a sec. I like to
put it on my desktop, it's your choice.

RMXP: The Free One from the Tut to get it for


free:
RPG Maker XP Postility Knights
Edition:

Note: Notice Encrypt Data/Create Incripted Archive? If you chose to click on this it just means that when
you distribute your game no other player can look at your project reasources and rip or take your game
and make it their own, this is like when you buy a computer game, you can't look into the games code
and screw it up, this is the same idea.

3. Once you click OK, a new screen will pop-up showing the extracting stage to, in this case, your
desktop, or wherever you directed the file to go. Another screen will pop up saying that it's done.
RMXP: The Free One from the Tut to get it for free:

RPG Maker XP Postility Knights Edition:


4. Now it should be an icon on your desktop looking like this:

Now, this is where we get it onto the internet.

5. Look for an uploading site, theres a list just right here:http://rmrk.net/index.php/topic,14238.0.html

Once you've found it, I'm using Megaupload, get it, press the browse button, and go to your desktop,
once you've found it, click on it. Enter a discription, accept liscense, and you're done! You will get a link
once it's finished uploading, this is the link you post for people to see your game.
================================================================
==============

After you upload I suggest testing the link, click on it, and a download should start, press Save to save it
unto your desktop (or whatever) and then click on your icon, it'll look the same as the other one you
made, now it should start extracting data to a new folder, which will appear whaever you'd like to to
appear, now click on the folder, if you said for it to create an Encrypt Data/Create Incripted Archive you
will only have the option of playing your game, if you didn't check this box you'll be able to see how you
made your game.
And that's it! Hope it helped, any questions post!

Chapter 16. Importing Resources

I've seen this problem pop up a few times, so I thought I'd make a small
tut on how to import reources into RMXP. (just for all you noobs)

1. click the resource manager icon at the top of the screen


2. Click on the category of the file and then click "import"

3. When the resource pops up, LEFT-click on the color you want invisible
and RIGHT-click on the color you want to be "see-through".
4. Click "OK" and you're done!

Chapter 17. Rules of mapping

Have you checked out the PINK Theme? Wheee!

• Home
• Forum
• Help
• Search
• Login
• Register
Welcome, Guest. Please login or register.
Did you miss your activation email?

Forever Login

Login with username, password and session length


Search

Advanced search

238,763 Posts in 14,148 Topics- by 4,336 Members - Latest Member: EternalHaze

November 30, 2007, 04:04:05 PM

Registered/Logged in users can hide advertisements and also have access to additional forums and features. Please Log in
or consider registering.

Rules Of Mapping (last Updated: March 13th)


The Rpg Maker Resource Kit RMRK RPG Maker Tutorials and event systems Tutorial Database
(Moderator: modern algebra)Rules Of Mapping (last Updated: March 13th)
« previous next »

Pages: [1]

Author Topic: Rules Of Mapping (last Updated: March 13th) (Read 1442 times)
0 Members and 1 Sneaky Snooper are viewing this topic.

Irock Rules Of Mapping (last Updated: March 13th)


Irock « on: March 13, 2007, 05:33:06 AM »

View Irock's profile

Give Irock a comment Rules Of Mapping


Find more posts by
Before you begin mapping please read these rules.
Irock
Rule #1
View Irock's statistics
(click to show/hide)
Nature is random, so don't ever make it square.

Avoid this.
Level 57 (75%)
Pokémon #090

Don't do this.
Or this.
As you can see the maker of Legacy Of The Gatekeeper and I(not really) should be ashamed. Make a bad map and I will
want everyone to see your ugly, square, not random maps?

Instead be random and not square with nature, and be creative with the shape of buildings.
Made by me.
Made by Blizzard.
Made by Nouman.
Made by Nouman.

Please view RMRK's fine mapping tutorials and don't ever make anything square.
Rule #2
(click to show/hide)
Don't leave your indoor maps empty.

What we're trying to avoid is this...


As you can see, that's a pretty ugly map. Do you know why? It's too open and boring. Try and make your maps fun and n
like this...
That's a pretty good map compared to most maps I see today. It's filled with all sorts of things like a rea
overdue it.
Rule #3
(click to show/hide)
Draw out your dungeons and puzzles before you make them.
Make an easy to understand layout with paths coordinated by colors. List important switches, chests, and stairs.
lead to easy, boring dungeons. Now you can map your dungeon!
Rule #4
(click to show/hide)
Watch your heights.

If your going to make a bridge linking from one cliff to another, make sure the cliffs are the same height.

Don't do this.
As you can see the cliff to the right is higher than the one on the left.

Instead make sure they are the same elevation!


Rule #5
(click to show/hide)
Make sure your layering is correct.

Don't do something like this.


As you can see a tree that should be behind the others is looking pretty messed up. Why? Because it's on the third layer
second layer! Make sure the ones in front are on the 3rd layer, and the one in the back is on the 2nd layer. The lower the
lower or further it will be.
This is not complete, I will update the thread with new rules frequently.

Chapter 18. Using the SDK

Some people get confused of the SDK. Its not some monster thats trying to eat your scripts, no, its more
like an angel that makes it esier for you to make compatible scripts.

The SDK Module also has some usefull things like Auto-Writing credits, event reading and turning off/on
scripts.

In this tutorial I will try to explain how to use the SDK, how converte scripts and how to custimize the
SDK to your needs. It won't be easy for me to explain since SDK is pretty much self-explonatory so
cirticsm is ok and expected .
What is SDK?
SDK can be broken in to two parts;

• SDK Module - Makes some diffucult commands easy to use.


• SDK Script Overwrite - It rewrites some scripts in the database to increase compability and
performance, if used the right way.

Mostly people have compatiblity issues with the SDK script overwrite. Why?
Like I said before it overwrites some commands in the script database.
Here is a list of commands that are rewritten in the SDK;

Quote
Game_Map - setup
Game_Map - update
Game_Character - update
Game_Event - refresh
Game_Player - update
Sprite_Battler - update
Spriteset_Map - initialize
Spriteset_Map - update
Scene_Tile - main
Scene_Map - main
Scene_Map - update
Scene_Save - write_save_data
Scene_Load - read_save_data
Scene_Menu - initialize
Scene_Menu - main
Scene_Menu - update & command input
Scene_Battle - main
Scene_Battle - update
Scene_Battle - update_phase3_basic_command
Scene_Battle - make_basic_action_result

Before we contuniue, read a tutorial on Alias;


http://anonym.to/?http://www.rmxp.org/forums/showthread.php?t=5698

Thats what the SDK is for


Using the SDK
When you are making a script, you often need to refer to RMXPs default classes. The most refered
default classes are;

Game_Player
Game_Character
Scene_Map

The most overwritten classes are;

Scene_Battle
Scene_Map
Game_Character
Scene_Menu

Every time you overwrite a class, you decrease the chance of compability with other scripts, not only the
SDK .

Thats where SDK comes in to help. SDK Script Overwrite part of the SKD breaks methods(functions or
defs) in to sections and parts. Lets observe Scene_Map for a sec;

This is method main in Scene_Map(non-sdk);


Code:
#--------------------------------------------------------------------------
def main
# Make command window
s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "Status"
s5 = "Save"
s6 = "End Game"
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
@command_window.index = @menu_index
# If number of party members is 0
if $game_party.actors.size == 0
# Disable items, skills, equipment, and status
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
# If save is forbidden
if $game_system.save_disabled
# Disable save
@command_window.disable_item(4)
end
# Make play time window
@playtime_window = Window_PlayTime.new
@playtime_window.x = 0
@playtime_window.y = 224
# Make steps window
@steps_window = Window_Steps.new
@steps_window.x = 0
@steps_window.y = 320
# Make gold window
@gold_window = Window_Gold.new
@gold_window.x = 0
@gold_window.y = 416
# Make status window
@status_window = Window_MenuStatus.new
@status_window.x = 160
@status_window.y = 0
# Execute transition
Graphics.transition
# Main loop
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
# Abort loop if screen is changed
if $scene != self
break
end
end
# Prepare for transition
Graphics.freeze
# Dispose of windows
@command_window.dispose
@playtime_window.dispose
@steps_window.dispose
@gold_window.dispose
@status_window.dispose
end

Do you see that big mess??

Now this is the SDK version;


Code:
def main
main_draw
# Main loop
loop [do
main_loop
break if main_scenechange?
end
main_dispose
main_tiletrigger
end

Now do you see the difference? The SDK just broke it into smaller parts, this increases compability.
Because now you can alias esier. No need to overwrite anything.

Lets say you want to make a hud;

Firs you look at what you need to edit.

A hud is made of a cauple of windows and it appears on the map. So we need to use Scene_Map.

Usually you would need to edit Scene_Map directly. But with the SDK you don't need to. Lets say we
already have the window for the hud called @hud_window.

Usually you want to do 3 things with a window;

Call
Update
Dispose

In the SDK, go to Scene_Map > def main, you see cauple of method calls;

• main_draw - Used to call the windows.


• main_dispose - Used to dipose windows.
Now, still in the SDK, go to Scene_Map > def update, there is one method we can use there;

• update_graphics - updates the windows and sprites

If you know how to alias then you know whats coming next. Now all you need to do is aliase with those
controls. No need to over write anything.

In this lesson we learned to think of what need before we code, and how SDK can help us increase
compability and why and how it does that.

How to Converte Scripts;


To converte scripts we use the same method as before. Converting long scripts can be a pain, so that
why you need notepad to help you make a list.
What list you ask?

As we said before the SDK replaces most methods and thats why it incompatible with other scripts,
because scripts are usuall poor coded(no offense to anyone).

In the script you are looking to converte, see if it refers to any method or classes that is in the SDK and
add it to your list.

After that go to the SDK and see what methods you can use to improve compability and convert the
script.

For example, we are trying to converte an Hud script;

Look at the hud script, and lets say it is overwriting Scene_Map > Main. Now go to the other Default
Scene_Map and compare the 2. By comparing you should be able to tell whats new and whats not.

Cut everything new in the method and paste it to an empty script. Now we look at the code. What does
it have?(in this case, same as the Hud from the previous tutorial)

It calls the window and it disposes it.

What are the methods in the SDK you can aliase with to do this?
Thats right;

• main_draw
• main_dispose
Now just aliase with them in the script you are converting. Its that simple.

I hope that helped.

Thats is. I hope that helped. Can't say i didn't try

Chapter 19. Variables

Okay, I am working on an event commands tutorial which covers every command in detail. I just finished
the Control Variable part of it, but after reading it I feel it might be too long, boring and incomprehensible
for the average person. So, I decided to post this portion of my tutorial to get some feedback on what I
can cut out and what stuff in it isn't clear, etc... Anyway, I have it attached and be sure to criticize
harshly.

EDIT:

I'll put it in a spoiler so there is no unneccesary downloading going on. You won't get the pretty colours
though I want to hear from n00bs especially! Tell me what you don't understand so that I can make
this better!

(click to show/hide)
CONTROL VARIABLE

This is another thing that a lot of people don’t know how to use. They justify this by saying it’s primary
use is as a condition, and since they know how to use switches and conditional branches, they say that it
is only minimally useful at best. I say, WRONG! Superman is not coming to save you, and worse still you
don’t have a mini Superman to shove pianos at people! Variables are a lot more useful than switches;
variables are more efficient than switches in almost every situation and they can even be used in a lot of
situations where switches fail. This is one of the most important event commands and even complicated
actions can be evented easily through the use of variables. I will try my best to explain them in detail for
this reason, and so this is going to be a long chapter.

Without any further ado, I present to you the Control Variables Interface. Get to know it well, for without
it your eventing can only be, at best, mediocre:
Okay, as you can see, this has the same interaction as do switches. You can either operate on a single
variable or you can operate on a group of variables within a range (with the limitation that you want to
apply the same operation to group of variables which are all bunched together. The difference is the
amount of operations you can apply to variables. Before we get to that, let me try to explain what a
variable is.

A variable stores any value from -9999999 to 9999999. Each one of these numbers is kind of like a
position. So, where a switch has 2 positions (ON and OFF), a variable has 19999999 positions. That’s
exactly 9,999,999.5 times more positions than a switch. A typical example of the use of variables is as a
tool for counting progress in a quest. Let’s go back to the old lady example. Say that the old man doesn’t
want you to kill just one old lady, say he wants you to kill three old ladies. Using switches: one switch so
that he doesn’t repeatedly give you the quest, ie. Once you accept the quest, he does not continue
asking you to do the quest. Then you’d need an additional switch to turn on for each old lady you kill. 3
old ladies = 3 switches. So a total of 4 switches for this quest. With variables, you only need to use one
variable and merely use a Control Variables[Old Lady Murder Spree] +1 for each instance where you
would normally use a switch.
See, already you should be getting the feeling that variables are awesome. Well Addition is only one of
the operations you can use on variables.

The Control Variables Event Command can be split into three distinct parts: Variable, Operations, and
Operand. The variable part is where you choose which variable (or variables) you are going to change
with this command. The operations part is where you choose which operation to perform (the operations
are all listed in the Operations section below). And the operand part is what you are performing the
operation with. Essentially this is the number which you are using to effect changes in your variable
(example: if you are using the operation add, this is the number that you add to the variable). You can
make the operand a number of different things, which I will explain in the Operand section.

Operations

I am going to go over the operations now, and to make things easier, let’s say we are working with a
variable called [Test]. Note, however, that this is an arbitrary name. All operations work the same on any
variable.

Set: This basically means “gets the value:” and then in the operand section you choose what value it
gets. [<variable>] = [<operand>]So if you choose the constant “3” as your operand, then the variable
[Test] = 3. By default, before any operations are applied to a variable it is set to 0.

Addition: This adds the operand to the value currently stored in the variable. [<variable>] = [<current
value stored in variable>] + [<operand>]. The current value in [Test] is 3, so if we use the addition
operation with constant 2, then [Test] = [Test] + 2, so [Test] = [3] + 2 so [Test] = 5

Subtraction: This subtracts the operand from the value currently stored in the variable. [<variable>] =
[<current value stored in variable>] - [<operand>]. The current value in [Test] is 5, so if we use the
subtraction operation on [Test] with the operand being a constant 3, then [Test] = [5] – [3] = 2. So
[Test] is now storing the value [2].

Multiplication: This operation multiplies the value currently stored in the variable by the operand.
[<variable>] = [<current value stored in variable>]x[<operand>]. Let’s say our operand is 4, then using
this operation on [Test] = [2]x[4] = 8. [Test] is now storing the value [8]. Now, I will state this in a
slightly more complicated way in the hopes that it will help you better understand the next operation,
mod. One thing to note about this operation (about all operations really), is that if the result of the
operation is greater than 9999999, then the value stored in the variable defaults to 9999999. So if you
were to try to multiply [Test] by 2000000, then [Test] = [8]x[2000000] = 16000000, but the variable
[Test] receives the value [9999999].
Division: This operation divides the value currently stored in the variable by the operand, and then
rounds down to the nearest integer. [<variable>] = [<current value stored in variable>] / [<operand>].
So, with our variable [Test]. It’s current value is 8, and say we take operand 4, then [Test] = [8] / [4] =
2. Keep in mind that it will round down, so if we took the operand 5, [Test] = [8] / [5] = 1.75 = 1.

Mod: I suspect that most of you have no idea what this last one is, so I will take my time explaining it.
Mod calculates the remainder after division. Division (a / b) can be written in this form: a = bq + r,
where a is the number you are trying to divide, b is the number that is dividing it, q is an integer such
that bq is less than or equal to a and that b(q+1) is greater than a, and r is the remainder. You’ll
probably benefit more from an example. Let’s say we are trying to divide 8 by 5. [8] = [5]x[1] + [3]. The
number mod is concerned with is the remainder, so you can say 8 mod 5 = 3. Another example: what is
7 mod 3? [7] = [3]x[2] + 1, so 7 mod 3 = 1. Hopefully you understand this, but in any case I can’t spend
any more time on it so I will just give one last example in terms of RMXP variables. The value currently
stored in [Test] is 8. SO, if we apply the operand 6, then [8] % [6] => [8] = [6]x[1] + [2], so
[8]%[6] = 2. The value currently stored in [Test] is now 2. Notice also that q (in this case 1) is the value
you get when you divide 8 by 6 in variable operations.

Operand

Constant: This is just an integer from -9999999 to 9999999. Pretty simple.

Variable: This allows you to select another variable (or the same variable) as the operand. In other
words, if we have two variables, Test 1 and Test 2, and Test 1 = 4; Test 2 = 5, then we could use [Test
1] as the variable we are changing and [Test 2] as the operand. As far as usage goes, [Test 1] =
[current Test 1] + [Test 2] and so [Test 1] = 4 + 5 = 9. Note that it is still only the variable you are
specifying that is changed, [Test 2] (the operand) is still only equal to 5.
Random: This takes a single number from a range that you specify and uses it as the operand. Each
number from within the range is equally likely to be chosen. So, if you specify a range from 1 to 3, then
there is approximately a 33.3 % chance 1 will be chosen, a 33.3% chance 2 will be chosen, and a 33.3%
3 will be chosen. This is useful for anything that has no set outcome. For example, you could use it for
dice or anything that requires some randomness.

Item: This works by specifying an item in your inventory. Then, the operand takes the value of the
number of that item you have in your inventory. For example, if you specify potions, and your party has 2
potions in their inventory, then the operand will take the value of 2. If the party has 3 potions, then the
operand will take the value of 3. etc…

Actor: For this, you have to specify both the player character(people you can have in party) and the
parameter. You can choose any character and then from that you can choose any of the following
parameters which correspond to that character: Level, Exp, current HP, current MP, max HP, max MP,
Strength, Dexterity, Agility, Intelligence, Attack, Physical Defence, Magical Defence, and Evasion. The
operand takes the value of the number corresponding to the parameter. For instance, if Aluxes’ Strength
is 435, then the operand takes the value 435. Note, max HP means max HP for level, and current HP
means max HP – the damage he has received.

Enemy: This is a command meant exclusively for combat. When you are not in combat, it takes the value
0. When you are in combat, it has all the same parameters as actor has, but they correspond to the
enemy you specify.

Character: This can apply to any event on the map and the player, just specify it in the first slot. Then,
you can specify any of six parameters: Map X, Map Y,
Direction, Screen X, Screen Y, and Terrain Tag. Map X is the x-position of the specified event. X goes
from left to right, from zero to (map width – 1). Y goes from top to bottom, from zero to (map length –
1) That’s probably hard to understand so I’ll post a screenshot: Format: x coordinate, y coordinate. Map
width = 4, map length = 4

Screen X and Screen Y are similar to Map X and Map Y but are determined in pixels, not squares. Each
square is 32 pixels x 32 pixels, so basically Screen X = 32x(Map X) and Screen Y = 32x (Map Y).
Direction assigns a number to the direction the event is facing. As I stated earlier, Down = 2, Up = 8,
Left = 4, and Right = 6. So if the event is facing down, the operand takes the value 2, etc…
Terrain Tag refers to the Database. If you look in the database under tilesets, you can set tiles on a map
to have tags from 0 to 7. This command takes the tag from the tile the event is standing on and uses it
as the operand.
Other: These are all pretty self explanatory. Map ID: operand takes the value of the Map ID #. Party
Members: operand gets the number of characters in your party. Gold: operand gets amount of gold party
is currently holding. Steps: operand gets amount of steps party has taken. Play Time: operand gets
number of seconds the game has been played for. Timer: operand gets number of seconds left on timer.
Save Count: Operand gets # of saves.

Some of you may still have doubts. You are looking at this long, boring, mostly incomprehensible section
and thinking to yourself, “sure, it was sort of useful for that quest example, but I still think switches can
do everything that variables can… WRONG!!! To show you some of the uses for variables, I will build
upon my previous example. In reality, if you were an old man who wanted a few old ladies murdered,
would you really ask some random stranger who walked into your house? Probably not. For this reason,
maybe you want an alignment system like in Fable. Maybe you only want the old man to ask you if you
are sufficiently evil that he believes you will do it. This can easily be accomplished through the use of a
single variable. All you have to do is make it so that whenever you do a good action, your alignment
variable increases and whenever you do an evil action, your alignment variable decreases. To
demonstrate how this would work: Let’s say we base the system on a scale from -5000, …, 5000. 5000 is
the maximum good and -5000 is the maximum evil. Killing an old lady is fairly evil, so let’s say that
subtracts -250 each time you do it. You can easily make it so that you are only granted the quest if your
alignment variable is less than -1000 by putting it into the conditions. Maybe also, you don’t want the old
man to say the exact same thing every time you talk to him (you use random for this). So now, our
events look like this:

OLD MAN (for all: Trigger: Action Key; Graphic: OLD MAN)

Page 1:
Conditions: None

Event Commands:
Text: This day is filthy; rotten! I have a hankering to murder some old women! You with me?
Show Choices: Yes, No
When Yes
Text: There be a three old hags in this city that need akilling me hearties. I am a
pirate! Go now and find them. They do be in shacks near the ocean I say! I give
ye a share of the plunder matey!
Control Variable [1. Pointless Killing!] + 1
When No
Text: Useless Landlubber
Branch End

Page 2:
Conditions: Variable [2. Alignment] is -999 or more

Event Commands:
Control Variable [3: random talking]: Random (1,…,3)
Conditional Branch: [Variable [3: random talking] = 1
Text: Ah, the fluttering of the butterflies puts this old, weary heart at rest.
Branch End
Conditional Branch: [Variable [3: random talking] = 2
Text: We are blessed with fine weather this day.
Branch End
Conditional Branch: [Variable [3: random talking] = 3
Text: AH! Were only my wife alive to feel this Spring air.
Branch End

Page 3:
Conditions: Variable [1. Pointless Killing] is 1 or more

Event Commands:
Text: What are ye layin’ aboot here fer. Go kill them ladies by the wharf?

Page 4:
Conditions: Variable [1. Pointless Killing] is 4 or more

Event Commands:
Text: Aye, ye done well fer a useless layabout landlubber!
Change Gold: + 1000
Text: You got a 1000 gold!
Control Variable: [1. Pointless Killing] +1
Page 5:
Conditions: Variable [1. Pointless Killing] is 5 or more
Text: Ye done well laddie. I’ll make use of yea agin some day I reckon.

Each OLD HAG (for all: Trigger: Action Key; Graphic: OLD LADY)

Page 1:
Conditions: None

Event Commands:
Control Variable [3: random talking]: Random (1,…,3)
Conditional Branch: [Variable [3: random talking] = 1
Text: You seem to be a fine young gentleman
Branch End
Conditional Branch: [Variable [3: random talking] = 2
Text: I hear there is a nice old man in central who loves the Spring
Branch End
Conditional Branch: [Variable [3: random talking] = 3
Text: I was once the Queen of Scotland
Branch End

Page 2:
Conditions: Variable [1. Pointless Killing] is 1 or more

Text: Ay, why is your sword drawn?


Battle Processing: Helpless Old Lady
Control Variable [1. Pointless Killing] + 1
Control Variable [2. Alignment] - 250
Control Self Switch: [A] ON

Page 3:
Conditions: Self Switch A is ON
NO GRAPHIC
NO EVENT COMMANDS

See how useful they are! I did not even use 1/100 of variables’ potential in that example.

Chapter 20. Variable Splitting

Today you will learn how to split variables using the MOD feature. Variable splitting divides a variable's
digits into variables of their own. This is very useful for CMS's and CBS/ABS's.

Example: If I were to MOD the number 1111, I could break that number into 4 variables, each equal to
1. This is very useful for displaying numbers without overloading with fork conditions.

What the MOD feature does is divide the number, but discards everything except for the remainder. The
remainder is the value stored into a separate variable.

Example: If I mod 1234 by 10, the result would be 4. 1234 divided by 10 is 123.4, right? So the ending
result would be the remainder, and the rest of the number is discarded.

Splitting the number from the ONES digit:

Simply take your number and MOD it by 10. Example: The number 436,426 MOD by 10 will produce 6.

Splitting the number from the TENS digit:

MOD your number by 100, then divide by ten. Example: The number 1,234 divided by 100 equals 12.34
which produces a MOD value of 34 (the remainder is all that is being used). When you divide by 34 by 10
you really get 3.4, but RM2K3 throws away any remainder when you regularly divide. The only way to
obtain a remainder is through MOD. The end result is the value 3.

Splitting the number from the HUNDREDS digit:

MOD your number by 1000, then divide by 100. Example: 1234 MOD 100 divides the number into 1.234.
Since we used MOD, the resulting value is 234. Divide by 100 and 2 is your result.

Splitting the number from the THOUSANDS digit:


Mod your number by 10,000 then divide by 1000. Example: this the bnumber1234 into this form .1234,
producing the MOD number 1234, which is divided by 1000 to extract 1.

Now all you need to do is create 4 other digits corresponding to their respective digits:

Example code from my game's ABS:

I put mine into fork branches, so that if the number didn't exceed 1000, it wouldn't try to MOD for the
THOUSANDS place. Then set the variable I was MODing equal to my digit variables, that way I could
extract each digit from the separate variables.

Branch if VAR [001 DAMAGE] is 1000 or more


<> Variable Oper: [002 Damage 1000s] Set, Var [001]'s Value
<> Variable Oper: [003 Damage 100s] Set, Var [001]'s Value
<> Variable Oper: [004 Damage 10s] Set, Var [001]'s Value
<> Variable Oper: [005 Damage 1s] Set, Var [001]'s Value

<>
Else Handler
Branch if VAR [001 DAMAGE] is 100 or more
<> Variable Oper: [003 Damage 100s] Set, Var [001]'s Value
<> Variable Oper: [004 Damage 10s] Set, Var [001]'s Value
<> Variable Oper: [005 Damage 1s] Set, Var [001]'s Value

<>
Else Handler
Branch if VAR [001 DAMAGE] is 10 or more
<> Variable Oper: [004 Damage 10s] Set, Var [001]'s Value
<> Variable Oper: [005 Damage 1s] Set, Var [001]'s Value

<>
Else Handler
Branch if VAR [001 DAMAGE] is 9 or less
<> Variable Oper: [005 Damage 1s] Set, Var [001]'s Value

<>
End
<>
End
<>
End
<>
End
Variable Oper [005 Damage 1s] Mod, 10

Variable Oper [004 Damage 10s] Mod, 100


Variable Oper [004 Damage 10s] / , 10

Variable Oper [003 Damage 100s] Mod, 1000


Variable Oper [003 Damage 100s] / , 100

Variable Oper [002 Damage 1000s] Mod, 10000


Variable Oper [002 Damage 1000s] / , 1000

Variable Oper [001 DAMAGE] Set, 0

After that you create an event in your COMMON EVENTS that shows the corresponding pictures. A
different tutorial on that will be later. It will focus on showing the damage numbers in relation to where
the MONSTER is located on the screen.

Hope this helps!

Chapter 21. Eventing Chapter I - Functions Of Messages

"Message" Command
This command is usually used for character speech, but can be used for other things such as telling the
player that he or she obtained items when he/she opens up a chest. The Message command has special
codes in it which allow you to perform special functions, how to do it and their functions follow.

Code:
\n[x]- Displays a hero name equivalent to the ID number.
\v[x] - Displays a variable value equivalent to the ID number.
\c[x] - Changes the text to the color equivalent to the ID number.
\g - Displays the amount of gold you have in the top-right window.

I’m sure you notice that the first three codes have the x sign, this of course means that a number goes in
place of it. The number for hero name and variable value is it’s ID Number. If you go into the database
(The button to the right of the ¼ Scale button)you should see on a hero tab. If you haven’t edited the
heroes in the tab yet, there should be a highlighted line saying “001: Arshes” The “001” part is his ID
number, take note that you can omit the zeros. The same thing goes for variables, it should have an ID
number next to it, but we’ll explain variables in the later chapters.

So as an example let’s say I typed this in a message box:

Code:
\n[1]:
Hi, my name is \n[1]!
It would show up as:

Quote
Arshes:
Hi, my name is Arshes!

Colors are a little different command wise, the default colors are as follows:

Quote
0 - White
1 - Blue
2 - Red
3 - Green
4 - Teal
5 - Purple
6 - Yellow
7 - Grey

So if you replaced the x with 1 the text following it would appear blue. Don’t forget that if you just want a
word a certain color, that you half to change it’s color back.

________________________________________________________________________________

"Show Choices" Command


This command allows user input by text. Before we start, I want you to know that normal message box
will only allow 4 lines. Think about this if you'd like the message and it's options to be in the same text.
For example:

If I had two sentences and two choices:


Quote
Arshes:
Look here is some candy, what should I do with it?
-Eat it
-I'm not hungry

However, if I had three possible choices it would make another message box like so:
Quote
Arshes:
Look here is some candy, what should I do with it?
Quote
-Eat it
-I'm not hungry
-Throw it at the homeless man

If you've already tried typing a normal message, you might've noticed that it'll stop you after three lines.
However, you are more than capable of adding an extra line by simply adjusting the bottom part of the
window that you type your text in.

Now basically by using this command you can cause the conversation to move in different paths. I'll use
the example above to show you what it looks like in Rpg Maker..

Code:
<>Message: Arshes:
: : Look here is some candy, what should I do with it?
<>Show Choices: Eat it, I'm not hungry
: [Eat it]
<>
: [I'm not hungry]
<>
End
<>

Notice the "<>"? This indicates a empty command line. Let's add a message under "Eat it":
Code:
<>Message: Arshes:
: : Look here is some candy, what should I do with it?
<>Show Choices: Eat it, I'm not hungry
: [Eat it]
<>Message: Yummy!
<>
: [I'm not hungry]
<>
End
<>

Now if you choose the choice "Eat it" another message box will appear and say "Yummy!". Now after the
commands under "Eat it" is complete, the event skips over "I'm not hungry" and reads what's after End.
This is vital to remember.

Ok, almost done with this command. If you notice when you set up the "Show Choices" command there
is blue text to the right that says "Cancel Handler" this means that if you press the Cancel Key (X and
Esc) the game will automatically select this option.
Quote
Disallow - The disables the use of the Cancel Key.
Choice 1 - Selects option 1.
Choice 2 - Selects option 2.
Choice 3 - Selects option 3.
Choice 4 - Selects option 4.
Custom Handler - Executes a different option.

I'll give you an example of the Custom Handler.


Code:
<>Message: Arshes:
: : Look here is some candy, what should I do with it?
<>Show Choices: Eat it, I'm not hungry
: [Eat it]
<>Message: Yummy!
<>
: [I'm not hungry]
<>
: [Cancel Handler]
<>Message: Hey look! It's a babe with cotton candy!
<>
End
<>

If you press the cancel key a message box would appear and say "Hey look! It's a babe with cotton
candy!"

________________________________________________________________________________

"Input Number" Command


Allows the player to input numerical values that's stored in a variable. The second part with this goes
with conditional branchs or you can display it in a message box with the "\v" command. Inputting a
number takes up one line in a message box and you can only input number up to eight digits long.

________________________________________________________________________________

"Message Display Options" Command


Very useful for adding a type of style for message commands, the options to edit a message box position
follows:
Quote
Top
Middle
Bottom

The options to affect the the visibility of the message box follows:
Quote
Show
Don't Show
It's very basic and self explanatory, if you want something similer to FFX when Tidus narrates set the
options to "Bottom" and "Don't Show.

Chapter 22. Percentage Formula

Ever wanted to draw a percentage of your health/Magic, but didn't know how?
Fear not! Good 'ol Arkbennett has got your back.

To draw up the percentage simply do a formula like this.

Code:
<>Variable: [0001: Player HP Current] = [Player#]HP
<>Variable: [0002: Player HP Max] = [Player#]Max HP
<>Variable: [0001: Player HP Current] *= 100
<>Variable: [0001: Player HP Current] /= Variable [0002: Player HP Max]

# = Actor that you want to covert HP/MP to percentages.

Simple eh? Basically you need to variables, one that records the players current HP/MP and his Max
HP/MP. Multiple his current HP/MP by 100, then divide it by his max. Simple equations. But, I do
remember being a young kiddo at the age of 11/12 and not knowing how to do this at all. So this goes
out to the young ones, newbs, or people that didn't pay attention in math.
Btw, variable 1 will display your percentage.

Credits for Using the Software

Constance

modern algebra

keyblade_bearer

Master_of_Time

Irock

Mr.Mo

Amalgamadora
Arkbennett
Game Add-Ons

Chapter 23. Double Tap Dash

Check Tapping
Code:
Common Event: Check Tapping
Trigger: Parallel
Condition Switch: Never Tapped

List of event commands


@>Conditional Branch: Script: Input.trigger?(Input::UP)
@>>Control Variables: [Tap 1] = 2
@>>Control Switches: [Tapped Once] = ON
@>>Control Switches: [Never Tapped] = OFF
@>>Branch End
@>Conditional Branch: Script: Input.trigger?(Input::DOWN)
@>>Control Variables: [Tap 1] = 8
@>>Control Switches: [Tapped Once] = ON
@>>Control Switches: [Never Tapped] = OFF
@>>Branch End
@>Conditional Branch: Script: Input.trigger?(Input::LEFT)
@>>Control Variables: [Tap 1] = 4
@>>Control Switches: [Tapped Once] = ON
@>>Control Switches: [Never Tapped] = OFF
@>>Branch End
@>Conditional Branch: Script: Input.trigger?(Input::RIGHT)
@>>Control Variables: [Tap 1] = 6
@>>Control Switches: [Tapped Once] = ON
@>>Control Switches: [Never Tapped] = OFF
@>>Branch End

Check Tapping Again


Code:
Common Event: Check Tapping Again
Trigger: Parallel
Condition Switch: Tapped Once

List of event commands


@>Conditional Branch: Script: Input.trigger?(Input::UP)
@>>Control Variables: [Tap 2] = 2
@>>Control Switches: [Verification] = ON
@>>Control Switches: [Tapped Once] = OFF
@>>Branch End
@>Conditional Branch: Script: Input.trigger?(Input::DOWN)
@>>Control Variables: [Tap 2] = 8
@>>Control Switches: [Verification] = ON
@>>Control Switches: [Tapped Once] = OFF
@>>Branch End
@>Conditional Branch: Script: Input.trigger?(Input::LEFT)
@>>Control Variables: [Tap 2] = 4
@>>Control Switches: [Verification] = ON
@>>Control Switches: [Tapped Once] = OFF
@>>Branch End
@>Conditional Branch: Script: Input.trigger?(Input::RIGHT)
@>>Control Variables: [Tap 2] = 6
@>>Control Switches: [Verification] = ON
@>>Control Switches: [Tapped Once] = OFF
@>>Branch End

Timer
Code:
Common Event: Timer
Trigger: Parallel
Condition Switch: Tapped Once

@>Wait: 5 Frames
@>Control Variables: [Time] += 1
@>Conditional Branch: Variable: [Time] == 2
@>>Control Variables: [Tap 1] = 0
@>>Control Variables: [Tap 2] = 0
@>>Control Variables: [Time] = 0
@>>Control Switches: [Never Tapped] = ON
@>>Control Switches: [Tapped Once] = OFF

Verify Correct Button


Code:
Common Event: Verify Correct Button
Trigger: Parallel
Condition Switch: Verification
List of Event Commands:
@>Conditional Branch: Variable [Tap 1] == Variable [Tap 2]
@>>Control Switches: [Tapped Twice] = ON
@>>Control Switches: [Tapped Once] = OFF
@>>Control Switches: [Verification] = OFF
@>>Else
@>>Control Switches: [Never Tapped] = ON
@>>Control Switches: [Tapped Once] = OFF
@>>Control Switches: [Verification] = OFF

Dashing (Success)
Code:
Common Event: Dashing (Success)
Trigger: Parallel
Condition Switch: Tapped Twice

@>Conditional Branch: Script: Input.press?(Input::UP) or Input.press?(Input::DOWN) or


Input.press?(Input::LEFT) or Input.press?(Input::RIGHT)
@>>Set Move Route: Player:
$>Change Speed: 5
@>>Else
@>>Set Move Route: Player:
$>Change Speed: 4
@>>Control Variables: [Tap 1] = 0
@>>Control Variables: [Tap 2] = 0
@>>Control Variables: [Time] = 0
@>>Control Switches: [Tapped Twice] = OFF
@>>Control Switches: [Never Tapped] = ON
@>>Branch End

Chapter 24. On map HP/SP Visual

Visual Hp/SP v3.0


What does it do?
-WIth this system you can visually see an aproximate of your current HP and SP in a visual located on the
bottom left of the game.
- Ablility to scroll through hud to view all hp/sp's

Screenshots
Credits:

• Nouman
• Modern Algebra
• Zeriab
• BanisherOfEden

Questions/Comments? Please leave all feedback here.

Update: Now has SP!


- Now ability to see all character's HP/SP's by press S.

Instructions
-Press S to scroll through hero's. walk around and do some battles to test it.

VisualHPsP[1].exe
Click to download

Chapter 25. Day/Night System (Events):

Here's what it has:

- Random Weather (When it's december, it'll probably snow.) NOTE: Not close to realistic.
- Improved time.
- Days of the week. (Monday, Tuesday, Wednesday)
- Names of months (January, February, March)
- Number of days in the month like 1st to 31st.
- Years (No it doesn't have year 2000 and such but has been added for the purpose of february. I'll tell
you a little more)

Screenshots of this version


Day Night System 2 Demo Download Link

Chapter 26. Arrow Over players head

Are you really tired of not seeing your character because (s)he blends in with the map?

3 Common Events
3 Variables
2 Switches

Download this

Create two switches.

Name the 1st "Arrow System"


Name the 2nd "Arrow Display"
Now do the first common event. Name it "coordinates"
Make the trigger parallel process
Condition switch: Arrow System

Do this:

@>Control Variable: [0001: X] = Player's Screen X


@>Control Variable: [0002: Y] = Player's Screen Y
@>Control Variable: [0003: A Variable] = 60
@>Control Variable: [0002: Y] -= Variable [0003: A Variable]

This adjusts the coordinates of the picture.

Next

Make another common event, name it "Button" (Or whatever you want.)
Trigger: Parallel Process
Conditional Switch: Arrow System

@>Conditional Branch: Script: Input.trigger?(Input::L)


@>>Conditional Branch: Switch: [0002: Arrow Display] == OFF
@>>>Control Switches: [0002: Arrow Display] == ON
@>>Else
@>>>Conditional Branch: Switch: [0002: Arrow Display] == ON
@>>>>Control Switches: [0002: Arrow Display] == OFF
@>>>Branch End
@>>Branch End
@>Branch End

Lastly, make a new common event. Name it "Arrow Pictures."


Trigger: Parallel Process
Conditional Branch: Arrow System

@>Conditional Branch: Switch: [Arrow Display] == ON


@>>Show Picture: 1, 'Arrow', Center, Variable [0001][0002]), (100%, 100%)
@>Branch End
@>Conditional Branch: Switch: [Arrow Display] == OFF
@>>Erase Picture: 1
@>Branch End

Screenshots:
The forest!
Where am I?
Oh, there I am...

Any questions, comments about this system?

Chapter 27. Make A Bank

if this doesn't work, tell me and I'll fix it.


EDIT: I fixed the common event, the problems I fixed were-

when depsiting money, it didn't subtract it from your money at all

when withdrawling money, it didn't give you the money, and wouldn't show the actual amount of money
you have

DEMO FOR THIS BANK CAN BE FOUND HERE-


http://www.geocities.com/tsunokiette/limit_break_tester.zip

this will teach you to make a bank for depositing money.

you can replace Gilda in the Variables and common event by whatever you call your currency.

create 4 variables-

[0001]:gilda held
[0002]:deposit
[0003]:bank
[0004]:withdrawl

then make a common event called "Money" with the following-


Code:

<>Variable: [0001:gilda held]= Money


<>Message: Balance: \c[3]\v[3]\c[0] Gilda
: : Gilda on hand: \c[3]\v[1]\c[0]
<>Show Choices: Deposit, Withdrawl, Do Nothing
: [Deposit] Handler
<>Conditional Branch: Variable [0001:gilda held] == 0
<>Message: You don't have any Gilda to deposit.
<>
: Else Handler
<>Show Choices: Fixed Amount, Custom
: [Fixed Amount] Handler
<>Message: Deposit how much of \c[3]\v[1]\c[0] Gilda?
<>Show Choices: 1000, 10000, 100000, All
: [1000] Handler
<>Variable: [0002:deposit] = 1000
<>Conditional Branch: Variable[0002:deposit]>Variable[0001:gilda held]
<>Message: Not enough Gilda on hand.
<>
: Else Handler
<>Message: You deposit \c[3]\v[2]\c[0] Gilda.
<>Variable: [0003:bank] += Variable [0002:deposit]
<>Change Money: - Variable [0002:deposit]
<>Variable: [0002:deposit]-= Variable [0002:deposit]
<>Message: You now have a balance of \c[3]\v[3]\c[0] Gilda.
<>
: End
<>
: [10000] Handler
<>Variable: [0002:deposit] += 10000
<>Conditional Branch: Variable[0002:deposit]>Variable[0001:gilda held]
<>Message: Not enough Gilda on hand.
<>
: Else Handler
<>Message: You deposit \c[3]\v[2]\c[0] Gilda.
<>Variable: [0003:bank] += Variable [0002:deposit]
<>Change Money: - Variable [0002:deposit]
<>Variable: [0002:deposit]-= Variable [0002:deposit]
<>Message: You now have a balance of \c[3]\v[3]\c[0] Gilda.
<>
: End
<>
: [100000] Handler
<>Variable: [0002:deposit] += 100000
<>Conditional Branch: Variable[0002:deposit]>Variable[0001:gilda held]
<>Message: Not enough Gilda on hand.
<>
: Else Handler
<>Message: You deposit \c[3]\v[2]\c[0] Gilda.
<>Variable: [0003:bank] += Variable [0002:deposit]
<>Change Money: - Variable [0002:deposit]
<>Variable: [0002:deposit]-= Variable [0002:deposit]
<>Message: You now have a balance of \c[3]\v[3]\c[0] Gilda.
<>
: End
<>
: [All] Handler
<>Variable: [0002:deposit] += Variable [0001:gilda held]
<>Conditional Branch: Variable[0002:deposit]>Variable[0001:gilda held]
<>Message: Not enough Gilda on hand.
<>
: Else Handler
<>Message: You deposit \c[3]\v[2]\c[0] Gilda.
<>Variable: [0003:bank] += Variable [0002:deposit]
<>Change Money: - Variable [0002:deposit]
<>Variable: [0002:deposit]-= Variable [0002:deposit]
<>Message: You now have a balance of \c[3]\v[3]\c[0] Gilda.
<>
: End
<>
: Cancel Handler
<>
: End
<>
: [Custom] Handler
<>Message: Deposit how much of \c[3]\v[1]\c[0] Gilda?
<>Input Number : [0002:deposit], 6 digits
<>Conditional Branch: Variable[0002:deposit]>Variable[0001:gilda held]
<>Message: Not enough Gilda on hand.
<>
: Else Handler
<>Message: You deposit \c[3]\v[2]\c[0] Gilda.
<>Variable: [0003:bank] += Variable [0002:deposit]
<>Change Money: - Variable [0002:deposit]
<>Variable: [0002:deposit]-= Variable [0002:deposit]
<>Message: You now have a balance of \c[3]\v[3]\c[0] Gilda.
<>
: End
<>
: Cancel Handler
<>
: End
<>
: End
<>
: [Withdrawl] Handler
<>Conditional Branch: Variable [0003:bank] == 0
<>Message: You don't have any Gilda to withdrawl in the bank.
<>
: Else Handler
<>Show Choices: Fixed Amount, Custom
: [Fixed Amount] Handler
<>Message: Withdrawl how much of \c[3]\v[3]\c[0] Gilda?
<>Show Choices: 1000, 10000, 100000, All
: [1000] Handler
<>Variable: [000r:withdrawl] = 1000
<>Conditional Branch: Variable[000r:withdrawl] > Variable[0003:bank]
<>Message: Not enough Gilda in bank.
<>
: Else Handler
<>Message: You withdrawl \c[3]\v[4]\c[0] Gilda.
<>Variable: [0003:bank] -= Variable [0004:withdrawl]
<>Change Money: + Variable [0004:withdrawl]
<>Variable: [0004:withdrawl]-= Variable [000r:withdrawl]
<>Variable: [0001:gilda held]= Money
<>Message: You now have \c[3]\v[1]\c[0] Gilda on hand.
<>
: End
<>
: [10000] Handler
<>Variable: [0004:withdrawl] += 10000
<>Conditional Branch: Variable[000r:withdrawl] > Variable[0003:bank]
<>Message: Not enough Gilda in bank.
<>
: Else Handler
<>Message: You withdrawl \c[3]\v[4]\c[0] Gilda.
<>Variable: [0003:bank] -= Variable [0004:withdrawl]
<>Change Money: + Variable [0004:withdrawl]
<>Variable: [0004:withdrawl]-= Variable [000r:withdrawl]
<>Variable: [0001:gilda held]= Money
<>Message: You now have \c[3]\v[1]\c[0] Gilda on hand.
<>
: End
<>
: [100000] Handler
<>Variable: [0004:deposit] += 100000
<>Conditional Branch: Variable[000r:withdrawl] > Variable[0003:bank]
<>Message: Not enough Gilda in bank.
<>
: Else Handler
<>Message: You withdrawl \c[3]\v[4]\c[0] Gilda.
<>Variable: [0003:bank] -= Variable [0004:withdrawl]
<>Change Money: + Variable [0004:withdrawl]
<>Variable: [0004:withdrawl]-= Variable [000r:withdrawl]
<>Variable: [0001:gilda held]= Money
<>Message: You now have \c[3]\v[1]\c[0] Gilda on hand.
<>
: End
<>
: [All] Handler
<>Variable: [0004:withdrawl] += Variable [0003:bank]
<>Conditional Branch: Variable[000r:withdrawl] > Variable[0003:bank]
<>Message: Not enough Gilda in bank.
<>
: Else Handler
<>Message: You withdrawl \c[3]\v[4]\c[0] Gilda.
<>Variable: [0003:bank] -= Variable [0004:withdrawl]
<>Change Money: + Variable [0004:withdrawl]
<>Variable: [0004:withdrawl]-= Variable [000r:withdrawl]
<>Variable: [0001:gilda held]= Money
<>Message: You now have \c[3]\v[1]\c[0] Gilda on hand.
<>
: End
<>
: Cancel Handler
<>
: End
<>
: [Custom] Handler
<>Message: Withdrawl how much of \c[3]\v[3]\c[0] Gilda?
<>Input Number : [0004:withdrawl], 6 digits
<>Conditional Branch: Variable[000r:withdrawl] > Variable[0003:bank]
<>Message: Not enough Gilda in bank.
<>
: Else Handler
<>Message: You withdrawl \c[3]\v[4]\c[0] Gilda.
<>Variable: [0003:bank] -= Variable [0004:withdrawl]
<>Change Money: + Variable [0004:withdrawl]
<>Variable: [0004:withdrawl]-= Variable [000r:withdrawl]
<>Variable: [0001:gilda held]= Money
<>Message: You now have \c[3]\v[1]\c[0] Gilda on hand.
<>
: End
<>
: Cancel Handler
<>
: End
<>
: End
: [Do Nothing] Handler
<>Message: If you wish.
<>
: End
<>

now just make an event on your map with some graphic, (preferably a person) and give them 2 events

first one, a message with something unnaturaly nice in it. "good evening and welcome to the bank of my
game"

and second one, the common event "Money"

set the trigger for action key and.....done............

Chapter 28. Treasure Chest

In this tut, we will set up a good looking/working Treasure chest that will give the actor +100 gold.

First create a new event where you want the chest to be by right clicking on the map in event layer and
clicking "new event"
Now double click the right where it says "graphic" and find a CLOSED chest picture.
1-Event layer
2-Where I clicked to make the event
3-Event graphic

Next double click on the right open white spot. Then staying on page one, find "Change gold" command
and click on it. Then set it to increase and change it to 100
The X on the image is where to double click

Now again double anywhere in the box under your add gold command, and again on page one click
"control self switch" and set it to turn self switch A - on.

Now go to the top of the event page and click "add new event page" oon the new page, again click on
the grapic box, this time selecting a picture of the OPEN CHEST. also go down to the bottom of the event
page and click "Parallel process" now at the top of the event page above the grapic, select the box for
self switch and make sure its A. Now leave the right side empty and your done!
Chapter 29. Making a good Door

In this tutorial you will learn how to make a door that will send you to another place!

Software
This tutorial will be using RPG Maker XP Postailty Knights Edition Enhanced.
This is one of the many ways to make a door.

What you will need


A version of RPG Maker XP
Basic Knowledge on RPG Maker
Two Maps

Tutorial
Okay. Lets start out on the map the door will be. You should have already made this map.
Select where you want the door to be. Right click the spot and go to "New Event"

Okay. Now you should get a nice screen like this. Lets go to graphic. Double click the little box.
Now select a door. You can use any kind you want. Just make sure it looks right.
Lets insert a new command. On page 2 go to "Move Event"
On the top left hand corner select "This Event" so the door will be the event moving. And put "Play SE
'024-Door01', Face left, wait 1, face right, wait 1, face up.
It should look like...
Now we need to insert a proceed with movment command from page 2.
Next we will need a teleport command. This can also be found on page 2.
Now we must select the location by clicking the box under "Specific Location"
Now select the map you want the door to take you.
Finally select the location you want the door to take you. This should be on a wall.
Your event page should look like this.
Chapter 30. Making Ground Spikes

Here I will try to teach you how to make spikes that will be rejected with button/switch so it will go back
into the ground..

First of all you need to know how switches are used so it will be a bit easier if you dont know how they
work maybe this explains it a bit...
Now using the event layer make a Switch sprite so it will be easy for you to see where the button is
just like in image 1
Also make the spikes that will come out of the ground
Image 1
(click to show/hide)
Now we want it to hurt the player if he/she touches it, not ? do something like this..

Image 2
(click to show/hide)

First, make something like a flash screen so the player notices something like " Omy GAWD ! I CANT
TOUCH THAT ! "
and make it jump away or something.. ( If you dont want that put through ON to OFF so you wont need
the jump, I used it because i liked this more. )

Okay lets continue..


Go back to the switch and we will start making the scene of the spikes that will retreat..
Image 3
(click to show/hide)
As you can see it turns a switch on the name wont matter but its the number it has..
Also use something like a sound to give it some life ..

Now make a new page at the Switch event and put conditions to switch That was turned on at the first
page..
like this.

Image 4
(click to show/hide)
Now we have made the switch to turn everything on

Go back to the spikes event and make a new page here too.
Set the Condition also to the switch that was turned on in image 3.
Now we probably want it to move so it looks very nice wont we ?
So make a move event command that will change graphics and put a pause in-between every one of em
so it wont skip so fast as u can see, also an wait + an SELF SWITCH ! this is important so you wont have
to make the same event over and over but you can just copy paste it.
Image 5
(click to show/hide)
Now we just make an Page 3 and with that put it Through, Condition to If SELF SWITCH A = On, and of
course the sprite
Image 6
(click to show/hide)
Hope this helps you and tell me if I forgot something
Have a nice day .

Chapter 31. Making Puzzles

Hey all, I came up with this idea when thinking of a puzzle to use in my new game just so you know .
I'll be adding different types of puzzles and maze as time goes by so keep checking back!

Just so you know, a number with a star next to it on a map refers to a event, while the same number on
the same map without a star would be the "Destination" area. (I.E. the teleport in 2* would send you to
position 2, hope you understand this.)

Also, the maps are just quickly thrown together so they arn't great; but you can comment on them if you
want

Ok, I'll be putting all the different puzzles and mazes in spoiler bars to reduce the size of the post
(kinda...). It will also help keep the post tidy as you only need to look at the puzzle or map you want! If
you want any of the puzzles (or maps) explained in more detail, just reply saying so and I'll see what I
can do. Same for any errors you notice.

So, let's get started!

(click to show/hide)
Ok, The point of this maze is for a quick but sometimes not so easy maze. There are four different paths
on this map and only one of the paths will lead onto the next one, the others will put you back onto the
first maze map. For this example I will only be creating three of the maps, and I would recommend no
more then ten. I personally used six as this means that even with a mistake the player won't be wasting
too much time.

If you have good knowledge of variables, and would rather use those, click here.

EDIT: Forgot to mention that the swamp tileset is used as an example here and is one of many that can
be used for this type of maze.

First, create a map which should be no bigger then 25x20. Detail it to have 4 paths like so:
You want to make a event one space away from the sides as shown by 1* and 2*. These events you be
player touch, and teleport you to the opposite side two spaces away from the side as shown by 1 and 2.
Note that these teleports should NOT fade. This will create a better effect then having the screen fade
everytime you teleport. So have them teleport to the same map.

An interesting thing I just thought of, If you come in from the top, you should make those events on the
top teleport you back to the map you came from (with fade). Same for any other sides if you came from
that way.

Now you have all the events set up, simply copy the maze map. Then paste it the number of maps you
want. As I said earlier, I do not reccommend more then ten. Keep all map names the same and it should
end up looking like this:

ALL MAPS MUST BE IDENTICAL!

Then, Pick a side on the first map you want the player to go to get to the second map. I'll choose the left
side for ease of this tutorial although you should pick any side you want. You simply change the teleport
destination of the events to the same location on the second map. Still with no fade. Now, when in game
the player goes to the left, they will appear on the right of the next map, without knowing it. Simply
repeat this process with map two and three to get the person from one map to the next. You can pick
any side you want, but picking the same side all the time may get ever so slightly boring.

When you get to the last map, the choosen sides events should link to another map with fade. What you
have after this is for you to decide.

Make sure your player will know the path in some way or another. (Sorry to give away any cheats but...)
You should have an event on the map before the maze starts (or before that) which has some kinda
writing on it. Simply using the first letter of the direction in an order which is the maze directional order.
(So it could say RDR or similar, and on your maze the first direction would be Right, then Down, then
Right to finish it and move on to the next map.)

I hope you all get this simple to design and use puzzle.

(click to show/hide)
The concept of the ball room is simple. Make alot of events that can be pushed around to make paths in
and out of the sea of balls (Or what ever it is you use, balls just seem appropriate). You can have a
switch or chest or just the way out of the map on the other side of the ball room.

Again, any tileset can be used for this as its not really dependant on what you have in the tileset as the
balls are events and you only need them against two walls (if you want).

Start by making a map. I'm making mine using the castle interior tileset as it looks good . After
finishing your map, we need to add the balls!

The balls are simply events. Set them to hero touch and only have one thing in the event "Page". That is
the "Move Event", "Move away from Hero" eventing. Here is a screeny:

So you can see there isn't much to it. However, one... glitch with this method is, if you push against an
event that can't move away due to another event or a impassable tileset peice, if you then move around
the event and move the way you where pushing it the event will move the opposite way to the way you
where pushing it. This shouldn't pose to much of a problem though and can add character to your "Ball
Room".

Now you have one event, one ball. Mine looked like this at this stage:

The trick now is, to copy and paste the "Ball" event into other locations, while making sure it is possible
to make a path through. I'm not really sure how else I can explain this so that will have to do! lol. If
possible, make more then one way through the balls incase another gets blocked and has to move out of
the map and back into the map. Which reminds me, moving to another map and back to the one with the
balls on will reset the balls to their original position!
After messing around my balls looked like this (LOL):

You may notice the are two destinations on my map, one having a chest and the other a switch. You can
make the events all different sprites as this may add more character to the ball room. Other ideas would
be "Fake" balls which dont move if pushed, although this may confuse some of us. (Well, not now I said
it lol).

I wonder... Before you click on this spoiler, try to work out the two paths in the above picture of my
room.
Think you found them? Check on the next spoiler!

And thats about it for making a ball room, Hope you enjoyed this part of the tutorial as much as I did
making it! lol

(click to show/hide)

(click to show/hide)
Here is the requested puzzle tutorial (I hope this is what they wanted... lol)

The bases of the timed switches puzzle is that you have to activate all the switches in a time limit for
something to happen. For example, in my tutorial here I will be having three switches that will open a
door out of the room. So, start by making you desired map. This puzzle will work on ANY tileset.

For this puzzle you will be using two events and one variable.

Now you have your map, you need to create the switches! Make the switches action button (Or Hero
Touch if its a floor switch). You need the switch to move so the first part should just be moving the
switch, use waits of three to five frames in between. I used a sound effect at this point to show that it
had been done. You then want to activate your first switch, which I called "Start_Timer". This will set off
the timer in which you must activate the other switches in. I also added a Variable called "Door_Switch"
which I "+1" to. When all three switches are pressed the variable will be 3 so it will activate another
event that opens the door. If you don't understand variables check out some of the great variable
tutorials in the Tutorial Database!

After doing this my event looked like so:


Now you need to copy this and paste it in other places for how many switches you are going to have.

Next we will do the timer event. Make this event have a precondition of the switch "Timer_Start" and the
first part of this event should be the time (In frames) to wait untill times up. Now, I found 300 frames
good for the size and spread of my three switches. It's down to trail and error on the time you need. I
first tried 150 frames shown in the picture below but I found that to be not nearly enought so I doubled
it. Next you want to create a Condition Branch. The condition being if the switch "Door_Switch" (Not the
variable) was on. If it is, Erase the event as this means the door is already open.
If the condition is not met, then first . Ok, so I found a problem here; you could keep pressing the same Deleted: use the move event
command to change the graphic of all
switch to get the variable to 3 so, at the end of each switch event, select Local Switch A (Different letter the switches back to their original
position and I choose to play another
for each event, if you run out uses switches) to be on. Then create another page on the switches and sound here so the player knows it has
have the precondition as Local switch A (or w/e) on and just set the image to the final one in the chain happened

you move it to. Then, on the timer event if the condition is not met, instead of changing the graphic just
turn off the local switches. This should fix the glitch!

Ok, so after that I then play a sound lol. Then I make the Variable go back to 0 and turn the
"Timer_Start" switch off. This is what it looked like after (Still with the above glitch ; ; ):
Setting the variable back to 0 will mean that all the switches will need to be activated again.

We now want to create the event that will open the door. So, set the precondition as the variable
"Door_Switch" is equal to 3 (Or the number of switches you have) on and have the page activate the
"Door_Switch" switch. This will stop the timer and open the door. I also played a sound here, lol. I put a
message here to say the door has been opened incase you cannot see the door at the time you hit the
last switch. This is what it looked like at the end of this part:

Now, make a event where you want the door (or w/e it is you want to happen). Have the precondition as
switch "Door_Switch" on and the picture from the tileset as the door. The only event line here should be
a teleport one for the door. You will also need to include other parts of the tileset in other events for the
door with the same precondition. At the end of it all it looked something like this:

So that's pretty much it for this puzzle. I tested it out and it works fine! Any further problems just reply
with them to this post!

I'll be adding more as time goes on as I have already said. Any opinions would be greatly appreciated!

Credits for Game Add-Ons


Nouman

Punk

Tsunokiette

Irock

Snailer

Darico

Ending Notes

This is just a copy and paste book for beginners and should not be treated to harshly.

You may distribute this but make no changes.

You might also like