Zelaron Gaming Forum  
Stats Arcade Portal Forum FAQ Members List Social Groups Calendar Search Today's Posts Mark Forums Read
Go Back   Zelaron Gaming Forum > Zelaron Gaming > RPGMaker

Thread Tools Display Modes

RM2k3 + RMXP FAQS - *Please Read before posting!*
Posted 2004-08-01, 01:30 PM
RpgMaker 2003 FAQs

This contains questions that, quite frankly, get asked way too often. If your question isn't answered here, feel free to post a thread asking for help.

You CAN reply to this thread if you see an error or you just want something added or explained better.



Q. What are Switches, and how do you use them?
A. Switches are a value that you can set ON or OFF. Just like a light switch. You use them by checking for the state of the switch (either by a branch, or an event's precondition) and have the event act accordingly. To use the light switch example again, let's say you want a bed event that will let you sleep, and a light switch that you can turn on and off. The events would look like this:

Page 1 - Preconditions (0001:LightSwitch is OFF)
   <>Message:  "Good Night"
Page 2 - Preconditions (0001:LightSwitch is ON)
   <>Message:  "I can't sleep with the light on!"

Page 1 - Preconditions (None)
   <>Switch Operation:0001:LightSwitch Toggle ON/OFF
See how easy that is? You would use the Light Switch event to control whether or not you can sleep in that room or not. This can be used for anything that has a ON/OFF situation, such as a soldier that appears when you beat a boss. Switches are global, which means that they affect the entire game - you can have one "master light switch" that affects every light in the game, for example.

Q. What are Variables, and how do you use them?
A. If you understand Switches, you can understand variables - it's like a switch, but it uses numbers instead of an ON/OFF setting. You can set a variable from anywhere between 0-9,999,999. It's probably easier to think of switches as variables that can only have a 0 or 1 setting. Variables just add more choices in the matter - If we go back to the Light switch idea, a variable can be used as a dimmer of sorts - MANY different possibilities, including using a comparison (LightValue < 10, or something).

The Font Problem

Q. I hate the font that comes with RPG Maker 2003! How do I change this?
A. This seems to be a major issue, so I'll just link to where I answered it before: http://zelaron.com/forum/showthread.php?t=27701


Q. When I die in a random encounter, why does it go back to the field, instead of giving me a Game Over screen?
A. Go to the Database, and the "Battle Layout" tab. Change the "Random Encounter Death Handler" to "Game Over". I'm not sure why it's "Call Common Event" by default, but that's the way it is.

Q. Can I morph in a battle? (I.E. change battle charsets)
A. raven5540 provided this helpful link:

In essence, this simply swaps out a character for another. True morphing abilities don't seem to exist, as you can't swap a battle charset in the middle of a battle.

Q. I made an item, but it won't do what I want! It just does the item animation, then the item sound, but it doesn't do anything.
A. Make sure the character can actually use that item. Go into the "Item" tab in the database and check your item to be sure.

Q. I made a spell, and the character should have it, but I can't see it at all!
A. Make sure your magic type corresponds to the type of magic you're selecting. If you check the "Battle Layout" tab in the database, and click on the "Set" button in the "Default Battle Commands" box, you'll get a window that allows you to change the names and types of commands. If it's Magic, the default setting is "Skill Subset", which means only skills marked as "Magic" show up there. If it's not Magic, it won't be there when you select it! You can change the skill's type in the "Skill" tab in the Database.

Q. I have enough MP to use a skill, but I can't select it.
A. Does it have an Animation for the character using it? That's required! Otherwise, only monsters can use that skill.

Q. I tell my monster to attack with the Blizzard Breath (or some other) skill on every third turn, but it sometimes doesn't do it.
A. Set the Priority to 100 for that skill.

Making Stuff

Q. What are the color specifications for graphics?
A. 256 colors. Always.

Q. What about size requirements?
A. Depends on the graphic. I suggest looking under "Image Specifications" in the Help menu for a more detailed look at the size requirements. This part of the Random Info thread is simply for problems.

Q. I keep getting an "invalid color depth" error when I try to import an image.
A. This can be summed up as the "256 color problem". Convert the image into a 256 color bitmap (In MSPaint, you would go to File..Save As and select 256 color bitmap from the file type dropdown menu.)

Q. When I do make my own BattleCharset, the default weapons won't line up right!
A. You'll have to make a copy of the standard weapons graphic. Shift the weapons around a bit until everything lines up. Save it as a different name, so default characters can use the old graphics. Or you could make your own weapons..

Q. Why are the Battle Charset's frames 48x48, while the Battle Weapons' frames are 64x64 ?
A. An 8 pixel border around the character. This allows for swords that, say, have the point going farther than the maximum character range. Otherwise, the default sword would be about half as long as it is now..

Q. I made a Tileset (aka Charset), but my character can walk anywhere, and the battles are always on Plains!
A. You need to set pass/block options. Go into the "Tileset" tab in the Database, and select your imported tileset. "Lower Layer" tab is selected be default. You'll see:
  • A "123 Terrain" button, which is enabled by default. Click on the "Defined Terrain Types" list on whatever terrain you want to "paint" a tile with, then click on the tile.
  • An "OX Passability" button, which defines where a character can walk. Click on a tile to toggle between the three states: O, for pass; X, for block; and Star, for having the tile be "above" the character (also allows for passing).
  • A "Directional Pass" button, which allows you to set which directions a character can walk onto/off of that tile. Blocking a direction overrides Passing from another tile. Click on the arrows to toggle between pass and block.
On the "Upper Layer" tab, the choices are thusly:
  • "OX Passability". Same as above.
  • "Directional Pass". Same as above.
  • "Counter Flag", which treats the tile as a counter. Any "Key Press" events can be activated directly across this tile. Best used to allow talking across a table, for example.

Q. When I go to use an image, it sometimes has a square around the image I'm using. This border color is the same as the background for the PNG file I'm using.
A. You need to set the transparency. When you import the image, you'll get a preview of how the file looks, with the ability to zoom in and out. At that point, click on the background - when it flashes, that means it's transparent. The border won't appear around the character again. If you don't actually import it through RPGMaker (in other words, you just copy it manually to your project folder) you should really stop doing that - you'll sometimes get lucky with the transparency, but it's generally not worth it.
Profile PM WWW Search
BlueCube enjoys the static noises of ten television sets simultaneously tuned to 412.84 MHzBlueCube enjoys the static noises of ten television sets simultaneously tuned to 412.84 MHz

RM2k3 FAQS - *Please Read before posting!*
Posted 2007-04-01, 09:16 AM in reply to BlueCube's post "RM2k3 + RMXP FAQS - *Please Read before..."
Original Found HERE.

There were links provided, but they were all broken.

It's still a very good tutorial and you can learn a lot from it, even if you are "Experienced".

How do I set the transparency for graphics?

Select Tools | Resource Manager from the main menu. You can also access the Resource Manager by the icon between the Script Editor and the Database. This will open the Resource Manager window. Specify the type of resource you will be importing by selecting the corresponding folder name in the left column. Click the Import button and navigate to the resource you will be setting the transparency for. After double clicking on it, a window will pop-up with the graphic displayed. Notice at the bottom there are two buttons. One is labeled "Transparent Color (Set w/ L-click)" and the other is labled "Translucent Color (Set w/ R-click)." Translucency is when the color is partially transparent, meaning it will appear see-through but visible. Go ahead and set the transparency and translucency by left and right clicking on the colors you wish respectively. Click Ok and you're done.

How many frames are there in a second?

By default, there are 20 frames in a second. However, this number varies noticably from computer to computer.

What are switches? And how to I use them?

If you want to turn the light on to your room, what do you do? Of course, you flip a switch. If the switch is off, nothing happens. If the switch is on, the light turns on. Switches in RMXP use this simple concept and apply it to game development. If you want a character to say something different, use a switch. If you want to make sure you can't get treasure from the same chest twice, use a switch. To gain a better understanding of switches, check out the answer to making a simple chest.

What are variables? And how do I use them?

A variable is a location in memory which stores data within the program. This data can take the form of most values that exist in your game, making variables the most flexible, and useful, element of RMXP. To set the value of a variable through event commands, you must use the Variable Operations command. This will open the Variable Operations window. The window is divided into three sections: Variables, Operator, and Operand.

The Variables section contains two values: Specific Variable and Variable Range. Specific Variable is used to select a single variable to modify. Variable Range is used to specify a series of variables to modify. For example, entering 1 into the first box and 5 into the second, you can modify variables 1-5 simultaneously.

The Operator section contains six values: Set, + (Add), - (Subtract), * (Multiply), / (Divide), and Mod (Modulus). These values are used to modify and assign variable values. Set is the equivalent of "set equal to." The following four are simple math functions. The last is Modulus. This means that it will divide the variable selected in the Variable section by the value you will specify in the Operand section, and returns the remainder as a whole number. If this seems confusing, don't worry. For most people, it is.

The Operand section is used to define the value you wish to set the variable specified in the Variable section to. This section contains eight values: Constant, Variable, Random Number Between, Item, Hero, Monster, Sprite, and Other. This is where the power of variables really comes in. Constant is used to specify a constant number. Variable is used to modify the variable in relation to another variable. Random Number Between will modify the variable in relation to a number between any two numbers you specify. Item will modify the variable in relation to the number of any item you possess. Hero, Monster, Sprite, and Other are beyond the scope of this answer but are relatively easy to figure out through experimentation.

So, what do you think? Do you have a perfect grasp of variables now? Of course you don't! It will take lots of time and practice before you master variables but to help you get started check out this basic tutorial that introduces some practical uses for variables.

What are conditionals? And how do I use them?

A conditional (or conditional branch) is used to execute different event commands depending on a defined condition. The conditonal is the equivalent of the programming "if" statement. Basically, if the specified condition is true, a certain set of event commands are executed. If the condition is not true, and you've checked the "Execute Custom Handler When Condition Not Met" box, a different set of event commands is executed. Some situations in which using a conditional would be appropriate are checking to see if a switch is on, the status of a variable, if a local switch is on, if the player has a certain item... The list goes on. Conditionals are vital to making successful and engaging RPGs. For a more in depth look at conditionals, take a minute and read through this short tutorial.

How do I make a simple treasure chest?

No RPG is complete without obtaining treasure in some way or another. Here's an easy way to make a simple treasure chest. Start off by creating a new event, and opening it to veiw the event editor. Choose the graphic you want to use for the chest, but make sure it is in the closed position. You can leave all the other event settings at their default values and move on to the event commands. Find the Move Event command. Use it to insert the following commands:

1. Face Left
2. Wait: 4 frames
3. Face Right
4. Wait: 4 frames
5. Face Up
6. Wait: 4 frames

Go ahead and compare your progress with this screenshot. Make sure that the Move Event command is set to execute for "This Event." After clicking OK, you should be back at the main event window. Now for the fun part. This could be a sound and message displayed that says something like "You got this item!" Don't forget to add the item you promised to the player! Once you're satisfied with that, turn the local switch A on and compare your progress with this screenshot.

Now create a new page and add local switch A as a precondition. Set the graphic to the same chest used on page one, except this time, use the open position. It should look like this. And that's it!

Is it possible to open other people's games in RMXP?

In most cases, yes. After you've unpacked (or unzipped) the game, simply navigate its location on your hard drive and double-click on the Game.rxproj file. For the sake of organization you might consider copying and pasting the entire game folder into your RMXP projects folder. However, this step is not required and only for personal preference.

There are three scenarios in which you will be unable to open the project in RMXP. The first scenario is if the game creator decides to encrypt their project files when they compile their game. In this situation the game information is encrypted in an RGSS Encoding Archive and is unreadable by RMXP. The second scenario is if the game creator simply removes the Game.rxproj file. Without this file, RMXP is unable to open game projects. The third scenario is when there is a conflict in program versions. Due to the various translations and versions of RMXP on the internet, there are some that are not compatible and will induce an error if opened in the program.

How do I make a simple door?

You can make a simple door just as you would a simple treasure chest. First have a door graphic on the first page and then start a new command. The new command is "Move Event" Click it and look at the top and you will see a dropdown box. In there select the row that says "This Event" Now heres what to do next hit these buttons in the following order:

1. Face Left
2. Wait: 4 Frames
3. Face Right
4. Wait: 4 Frames
5. Face Up
6. Wait: 4 Frames

If your command match with this, click OK. Click on a new command and this time hit the other "Wait" Button found on page 1. Now, all you have to do is use the teleport command to teleport to the correct destination! Here's what the event should look like.

Is it possible to copy the database from one game to another?

Yes. Open up the RMXP editor and navigate to Game | Open Game Folder on the main menu. A window with your games files will now be displayed. Double-click on the Data folder. You should now see a number of files with blue dragon icons. These files are of the type .rxdata, and some represent information from your database. Each is labled appropriately so you can decide which settings from your database you wish to copy. After you've selected the desired files, you can simply copy and paste them into your new game's data folder, replacing the files that share the same names. When you open your new game, you'll notice that the settings in your database have been updated to your old specifications.

Is it possible to make the timer invisible?

Yes, and with relative ease. First open the RGSS editor and navigate to the Sprite_Timer class. Now scroll down to the update method and find the following line:

self.bitmap.draw_text(self.bitmap.rect, text, 1)

And replace it with:

if $game_switches[switch_id] != true
self.bitmap.draw_text(self.bitmap.rect, text, 1)

This will allow the timer to be visible by default. However, with the flick of switch you can make the timer invisible. Replace switch_id with the id of whatever switch you decide to use (i.e. 0001, 0009, 0024, ...).

Is it possible to create a mini-map without RGSS?

Yes. However, the process is of intermediate difficulty and might be quite difficult for a user who is new to the RMXP program. If you feel comfortable with simple math, switches, and variables you should do alright. Here's how it's done.

First of all I've provided a working demo so you can follow along as I explain some of the concepts. The first page of EV001 is simple. All you're doing is turning the switch that triggers the minimap on. The second pageof EV001 is a tad more complicated, but you can handle it. First of all, you'll notice that the second page has the switch we just created as a precondition and that the event is triggered by parrallel process.

Now for the event commands. The first command displays the minimap. All the settings are left at their default values except the x and y locations. They are used to position the map in the bottom right corner. The next command is used to attribute the Hero's X location to the variable "X pos." You can name it whatever you'd like. The third command attributes the Hero's Y location to the variable "Y Pos." The following two commands multiply the variables "X pos" and "Y pos" by 4. This is becuase I'm using a ratio of 4/1, meaning every 4 pixels on my minimap equals 1 tile on the map. You can use whatever ratio you'd like, and for larger maps you probably need to use a smaller ratio in order to fit the minimap unobtrusivly in the corner.

The next two commands are used to make sure that the variables "X pos" and "Y pos" hold values that are on top of the minimap. It's simple addition. That last command displays the hero cursor, the image that represents the player on the minimap. Notice that it is positioned by the two variables we did so much operating on; "X pos" and "Y pos." And that's it.

How do I create icons?

You can create icons with any image editing program, even paint. Some of the nice graphics programs with greater funcationality, include PSP (Paint Shop Pro) and Adobe Photoshop. Make sure your icons are 24x24 pixels. If not, RMXP will not be able to read them correctly. Have fun and be creative!

How do I set up an event to allow a character to join my party?

This question can also be asked as, "How do I make the character disapear after they've joined my party?" The answer is simple. First off create a new event and change the grahpic to the character you wish to have join your party. Insert some sort of message letting the player know that the character is going to join, and then using the Change Party command to add the character desired. Create a switch named "Dorothy Joins!" (replace Dorothy with the name of your character) and turn it on. That's it for page one. It should look similar to this.

Go ahead and create a new page. This page should be completely empty except for one precondition. That precondition should be the Dorothy Joins! switch. Your second page should look like this. That's a wrap.
How can I make a character enter the map from off screen?

To create the effect where it seems as if a character is entering from off-screen, all you'll need is two events. Set an empty event on the edge of the screen where you want the character to appear from. Then make another event anywhere on the map and in the commands select the Move Event command, found on the first column of the second page. When the Move Event command options window pops up, look in the upper left corner for the drop box which by default is set to "Player." Drop it down and select the number of the event you created near the edge of the map. Then select the Change Graphic button. You can figure out what to do with that. Now use the directional buttons (i.e. Move Up, Move Right...) to move the character where you want them. Press OK. Now insert a wait command for about 40 frames to give the character a chance to move before the rest the event continues. I've put a message in my example to demonstrate. Here's what it should look like: Event 1 & Move Event Commands.

What can you tell me about the tint command?

Honestly. There isn't a whole lot to say. The tint command is used to "tint" the screen. By modifying the Red, Green, Blue values you can set the screen to pretty much any color your heart may desire. You can set how long it takes to "tint" by modifying the transtition time. The tint command is often used to create a night time effect, or the pulsing of a raging fire. Experiment with the numbers and see what you get.

How do I download graphical resources from websites?

You can download graphical resources from any site by simply right-clicking on the resource, and selecting "Save as..."

Is there a way to take screenshots of my game?

Yes. The easiest way to take screenshots is to hit the Print Screen button, located next to the F12 button. Then open up any image editing program and either from the main menu select Edit | Paste or simply press CTRL + V. Save your image and you're good to go. An extra tip: If you press ALT + Print Screen, it will only print the window you currently have selected.

Another way to take screenshots, is by downloading a screenshot program. However, this is not necessary and is based only on personal preference.

Where is RMXP's command for face graphics?

For some reason Enterbrain decided NOT to include any faceset graphics or a command to implement them. Do not worry! There are many skilled scripters out there that have scripted new commands to accomplish this task. One of the most popular is Dubealex's Advanced Message Script. However, in order to use any face graphic script, you'll need face graphics. You can either make your own or download some from this site.

Where are the world map graphics for RMXP?

Where, oh where? No where. Again, Enterbrain decided to leave the world map and all related feilds out of RMXP. However, you can download the Spivurnian Pack #1 for a full set of auto-tiles for your world map making pleasure. You can also download the incomplete world map tileset here.

Where are all the missing options for the Key Input Processing command?

The primary function of the Key Input Processing command is now covered by the Conditional Branch command. If you navigate to the fourth page of the Conditional Branch command options, you'll find a radio button for "Key [Select_Key] is Pressed". Use this to get similar results as the old key input processing.

What is an algorithm? And where can I find them in RMXP?

An algorithm is a precise rule (or set of rules) specifying how to solve some problem. In RMXP, some of these problems include how much damage the player inflicts, how much damage the player takes, etc... The default algorithms can be found in the Game_Battler 3 class.

My script editor window is larger than my screen! How can I fix this?

You have two options. Either change your monitor resolution to a setting that will fit the screen, or download Maki's resolution patch.

Is it possible to set different effects for differents terrains?

The following code will give you the frameset for adding your own custom effects for different terrain ids in RMXP. For each case simply add whatever you want to happen wether it be getting an item, taking damage, or even healing. This code belongs in the Game_Map class.

def terrain_effects
case $game_map.terrain_tag($game_player.x, $game_player.y)
when 1
when 2
when 3

Make sure you call this method from within the update method by inserting "terrain_id" directly after the update method header.
How do you set up fogs to move?

They say a picture can say a thousand words so I'm going to let this screen shot do the talking for me. Fogs are pretty basic and simple to understand.

The input number command looks terrible in-game. Is there a way to fix this?

Yes. Pyroman has provided a simple, yet effective, solution for this problem. Navigate to your Window_InputNumber class, and replace this line:

@cursor_width = dummy_bitmap.text_size("0").width + 8

With this line:

@cursor_width = dummy_bitmap.text_size("0").width + 20

That's all there is to it.

How can I change the battle transition for boss battles?

Go ahead and navigate to your Scene_Map class in the call_battle method. Find this line:


And insert this below it:

if $game_switches[n]
$data_system.battle_transition = "012-Random04"
$data_system.battle_transition = "001-Blind01"

Replace n with the id of the switch you decide to use to flag the boss battle. The code directly beneath the if statement is the transition that will be played if the switch is on. If the switch is not on, the code beneath the else will be executed. Have fun!

How do I change the battle start sound effect for boss battles?

This is very similar to changing the battle transition for boss battles, found directly above. In fact, it uses the same code with the modification of two lines. Navigate to your Scene_Map class in the call_battle method and find this line:


This time you'll need to actually replace it with this:

if $game_switches[n]
Audio.se_play("Audio/SE/011-System11", 100, 100)
Audio.se_play("Audio/SE/012-System12", 100, 100)

The syntax for the Audio.se_play is like so:

Audio.se_play("Audio/SE/name_of_file", Volume, Pitch)

You can combine both the battle transition and battle start sound effect like this:

if $game_switches[n]
$data_system.battle_transition = "012-Random04"
Audio.se_play("Audio/SE/011-System11", 100, 100)
$data_system.battle_transition = "001-Blind01"
Audio.se_play("Audio/SE/012-System12", 100, 100)
Profile PM WWW Search
Atnas shows clear signs of ignorance and confidence; the two things needed to succeed in lifeAtnas shows clear signs of ignorance and confidence; the two things needed to succeed in life

Posted 2007-04-01, 12:53 PM in reply to Atnas's post "RM2k3 FAQS - *Please Read before..."
Oh FAQ! I thought it said rmxp fag...
"Ban shampoo, demand real poo"
Profile PM WWW Search
Slyvr enjoys the static noises of ten television sets simultaneously tuned to 412.84 MHzSlyvr enjoys the static noises of ten television sets simultaneously tuned to 412.84 MHz

Posted 2007-04-01, 01:21 PM in reply to Slyvr's post starting "Oh FAQ! I thought it said rmxp fag..."
Should I have this stickied? I'll try and replace the broken links.
Profile PM WWW Search
Atnas shows clear signs of ignorance and confidence; the two things needed to succeed in lifeAtnas shows clear signs of ignorance and confidence; the two things needed to succeed in life

Posted 2007-04-01, 04:06 PM in reply to Atnas's post starting "Should I have this stickied? I'll try..."
It'll be a good idea for this to be stickied.

We had an RM2K3 one stickied some time ago, too, but it seems to have disappeared.
Profile PM WWW Search
Lenny simplifies with no grasp of the basicsLenny simplifies with no grasp of the basicsLenny simplifies with no grasp of the basicsLenny simplifies with no grasp of the basicsLenny simplifies with no grasp of the basicsLenny simplifies with no grasp of the basics

Posted 2007-04-01, 04:10 PM in reply to Lenny's post starting "It'll be a good idea for this to be..."
I'll get to work on adding the missing links.

Hey, maybe even add something myself while I'm at it.

If anyone has any additions, please post them here and I'll update it.
Profile PM WWW Search
Atnas shows clear signs of ignorance and confidence; the two things needed to succeed in lifeAtnas shows clear signs of ignorance and confidence; the two things needed to succeed in life

Posted 2007-04-13, 10:35 AM in reply to BlueCube's post "RM2k3 + RMXP FAQS - *Please Read before..."
I've been saying for ages that we need to Resticky this, and so I have.

If people feel we need more FAQs in here, or has any links to posts in this forum or guides and whatnot on other forums that answer the same questions in a different way or more in depth, then PM me and I'll add them in.
Profile PM WWW Search
Lenny simplifies with no grasp of the basicsLenny simplifies with no grasp of the basicsLenny simplifies with no grasp of the basicsLenny simplifies with no grasp of the basicsLenny simplifies with no grasp of the basicsLenny simplifies with no grasp of the basics

Posted 2007-04-13, 10:41 AM in reply to Atnas's post starting "I'll get to work on adding the missing..."
Same goes for RMXP FAQs - if you have any that you think should be added to this thread, or have links to guides and whatnot on this forums and others, then please PM me and I'll add them in.
Profile PM WWW Search
Lenny simplifies with no grasp of the basicsLenny simplifies with no grasp of the basicsLenny simplifies with no grasp of the basicsLenny simplifies with no grasp of the basicsLenny simplifies with no grasp of the basicsLenny simplifies with no grasp of the basics


« Previous Thread | Next Thread »

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
Thread Tools
Display Modes

Posting Rules [Forum Rules]
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
RMXP Midis Noob101 RPGMaker 2 2007-07-11 06:20 AM
Rmxp Faq - *Please Read before posting!* Atnas RPGMaker 5 2007-04-13 10:41 AM
RM2k3 / RTP and RMXP Download Sites BlueCube RPGMaker 0 2004-08-01 01:34 PM
Rm2k3 Berserk, for all your rm2k3 needs. Lost_Child RPGMaker 1 2003-10-28 03:25 PM

All times are GMT -6. The time now is 04:19 AM.
'Synthesis 2' vBulletin 3.x styles and 'x79' derivative
by WetWired the Unbound and Chruser
Copyright ©2002-2008 zelaron.com
Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
This site is best seen with your eyes open.