Gw Temp


Tutorial - 'CMS Tutorial, Part 4' by Rast

An item about RPGMaker 2000 posted on


Part 4 of a very long tutorial by Rast, detailing how to design and make your custom menu systems.


1) Overall design, getting to/from your menu, and cycle-based submenu design
2) Basic cursor loops and static menus
3) Distributed control and chara displays
4) Manual dereferencing, picture displays, and composite displays (you are here)
5) Showing lists, dynamic menus, and scrollable cursor loops

Welcome! This is part 4 of my big CMS tutorial. Like part 3, this is just about all theory, but it will prepare you for the final topics coming up in the next installment.

Manual Dereferencing

We touched on manual dereferencing in the last tutorial with the chara displays. Basically, manaul dereferencing is when you take a value and run it through a bunch of forks to see what you need to display based on it.

The big thing you need to remember when manually dereferencing something is speed. The more values you need to check, the slower your event will be. You can combat this by splitting your list into progressively smaller halves using the "Else" option of the Fork Conditions event command. This will minimize the amount of forks RPGMaker has to go through in order to find what it needs to do.

Why are we even going over this? Because you need to be able to manually dereference values in order to really get the most out of your picture displays, which we'll go over next.

Picture Displays

A picture display is similar to a chara display in that it displays something based on a variable, but it uses a picture instead of a chara. This is useful when you need to show things that are too large to be easily done with chara, such as item and skill list entries. Picture displays take a while to set up, so make sure you're not going anywhere for a while before you get started.

Step 1 - Figure out exactly what you need your display to be able to do

Your display needs to be able to display a given display item in a given picture slot in a given position. You may also want to add in the abililty to show an enabled/disabled version based on a certian criteria variable that is passed in (for example, you may want an item list to only show the enabled versions of items based on what kind of a list you're showing, sellable items for a shop list, useable items for a non-battle item list, battle-useable items for a battle list, etc).

Step 2 - Design and create your display

Write down in a text file or on a piece of paper everything that your display needs to be able to show, and the values of each.

Now plan out and create your actual display events. You'll need several events for this.

The first event is the controller event that gets called when you need to show a picture in your display. The purpose of this event is to look at the picture slot variable and then call the appropriate picture handler.

The remainder of the events you'll need are all picture handlers. For the first one, fork through all the possible values that you'll need to dereference, using the method described in the previous section. Load the appropriate picture, and then show it at the position designated in the position variables.

For each sucessive handler, just copy the first one and change all the picture numbers. Yes, it sucks and takes a long time, but there's no way around it. Don't pile all your different picture handlers into one event - RPGMaker will choke on it and will lag horribly.

When you're done, you can now easily create your display by setting the parameter variables and calling the controller event. If you're going to have the same display in multiple places, I suggest you make all the events for your display common events, that way you can create a new display anywhere.

Composite Displays

And for the final topic of this tutorial are composite displays. A composite display is a picture display combined with a chara display. You can use these to show item lists with quantities, prices, or skill lists with MP costs, as examples. Not a whole lot to say about these, but most of your picture displays in your CMS will actually be part of composite displays.

It is worth noting, however, than when updating a composite display, the pictures will normally refresh faster than the charas. This may cause some odd-looking behavior when the menu is being rapidly refreshed (such as during a scroll), but goes away as soon as the refreshing stops. You can fix this by adding a wait 0.0 to the end of your refresh event, but this may lag your menu. Experiment and see what works best for you.

In Conclusion...

Nothing really hard in this tutorial - but now everything is in place to finally go over the last few and most advanced topics of this series. Next up is the conclusion: lists, dynamic menus, and scrollable cursor loops.