No one can deny that RPG Maker is a fantastic tool, perfect for anyone looking for an entry point into game development, or anyone wanting to make a 2D game with limited resources. However, there are some results that developers cannot achieve organically through the many specific tools of the engine made by Kadokawa.
While it is true that many of those limitations can be overcome with the use of plugins, you can solve some of them with the vanilla version of the software through unusual ways. In this series, I’ll try to show you some of those strange tricks I’ve learned through my experience with the engine. This tutorial is probably more useful to devs that are already familiar with how RPG Maker works, but if you still consider yourself a beginner regarding this engine, I’ll try to be as clear as I can so you don’t feel lost.
Disclaimer: I am using the MV version of RPG Maker, so although the logic is very similar in all versions, I’m not sure if this tutorial will work the same way for VX, VX Ace or XP.
I wanted to start by talking about the vehicle events. If you take a look at the System tab, in the Database menu, you will see, close to the top, the Vehicle Images section. It shows you there are three types of vehicle events that you can place in your game: a Boat, to navigate through shallow waters; a Ship, to navigate through deep waters; and an Airship, to navigate through the air.
So… did you notice something is missing? Exactly. There are no land vehicles in the engine’s system! This is very odd, considering that you can find horse and carriage sprites among the assets that come with it, but if you try to use the horse sprite in the Boat event, for example, the horse will behave like a boat: being only able to move through the water.
How can you make a vehicle that moves on the ground, then? Let’s find out.1 I’ll start by creating an event on the map called “horse”, then change the Priority to “Same as characters” and keep the Trigger as “Action button”. 2 Now, if we want to be able to see our horse, we have to choose a sprite for the event. I’ll just use the standard horse sprite that comes with RPG Maker, which is in the “Nature” file. 3 If you want your horse just to stand in place until you interact with it, you can skip this step. But if you want it to move around on its own, to give a more natural feel to the map, you have three options. The first one is, in the Autonomous Movement section, to select the Type as “Random”, so the event is going to move randomly over the map.
The second option is to select the Type as “Custom”, then click on the “Route…” button and create the specific path you want the horse to make.
Be sure to check the “Repeat Movements” and the “Skip If Cannot Move” boxes. The first one makes the event repeat the sequence of movements over and over again. If there is an obstacle on the map that may prevent the event from moving, the second box makes the event skip through the movements until it gets to the one that leads away from the obstacle.
You can also choose the Speed and Frequency of the movement.
The third option is to select the Type as “Approach” if you want your horse to follow you around the map, since it keeps the event moving towards the player.4 So now it’s the time to make the player be able to ride the horse. As the “horse” event is set up to activate when the player approaches it and presses the action button, we have to “code” what happens once the action button is pressed. First, go in the Contents section, open the Event Commands window, select the “Show Text…” command and write “Ride horse?” in the text box.
Press “OK” to close the box and add another command below it, called “Show Choices…”, which already opens with the options “yes” and “no” filled for you, so if you want to leave it like this and just press “OK”, no problem.5 Now, under the “Yes” choice, open the Event Commands window, go to the third page and select the “Change Actor Images…” command.
Then, select the Actor the player will be controlling and change the sprite in the middle for the vehicle’s sprite, in this case, the horse.6 Under the command you just set up, open the Event Commands window again, on the first page click on the “Control Switches…” command, create a switch called “mounted” under Single, select “ON” and then “OK”. 7 Now, we need to create another page for our “horse” event by clicking on “New Event Page”. Once the second page is created, check the “Switch” box under Conditions, choose the “mounted” switch and make sure the Priority is “Below characters”. 8 Inside the Contents of this new page, open the Event Commands window and select the “Change Actor Images…” command. This time, replace the horse sprite with the character sprite you had before. Under this command, you will paste the command that turns on the “mounted” switch from the first page, but in the second one, we are going to turn the switch off.
After that, click on “Apply” and close the event window, for now.9 Open the Database menu and go to the Common Events tab. Create a common event called “Horse”, select the Trigger as “Parallel” and the Switch as “mounted”. 10 Open the Event Commands window inside Contents and select the “Set Event Location…” command.
Select the “horse” event. Under Location, check “Designation with variables”. Now, we need to create variables that will contain the player’s position. Under X: you will create a variable called “player x”, and under Y: you will create a variable called “player y”. Then press “OK”.11 Now, select the “Control Variables” command.
Under Variable, select Single and the “player x” variable. Then check “Set” under Operation. Under Operand check “Game Data”, where you will select Character and choose the “Player” and “Map X” options.
Once you’ve pressed “OK”, this is what you should see:
Click “OK” again and then repeat the process, but this time you’ll set the “player y” variable with the player’s “Map Y” data. Now, rearrange the commands so the “Horse” common event looks like this:
Press “Apply” and close the Database menu.12 Now test it! The event should be working just fine, and you can replace the horse with a car or any other land vehicle. Take a look:
How exactly is the event working?
When the player interacts with the “horse” event by pressing the action button, the event becomes invisible and the character “becomes” the vehicle, so the player can control its movements. The common event we created forces the “horse” event on the map to always be where the player is, so when the player presses the action button again they can leave the horse, which becomes visible once more.
You may not be very satisfied with this solution yet. After all, the horse is almost the same size as the character, and the character does not even appear on the horse’s back when riding it. Well, I have a cool solution for that too.
First, you can take the “Nature” file I showed you in step 2, copy the horse sprites into another PNG and increase their size up to four times. But when saving the file, you need to name it with a $ before the name, for example: “$horse”. That way, the event box won’t crop the sprite during the game.
This should make the horse bigger and more realistic in terms of scale. But you still want to see the character on its back, right? All you need to do is to copy that expanded sprite sheet of the horse and Photoshop your character on top of it, as I did with this custom character I’ve created:
So, for step 2 you can use the expanded sprite sheet with the horse alone, and for step 5 you can use the expanded sprite sheet with your character mounted on the horse. That’s how these changes should look like:
And that’s it! I hope you found this tutorial useful. Now, just get creative and develop away!