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!

Did you enjoy this article? Then consider buying me a coffee! Your support will help me cover site expenses and pay writers to create new blog content.



Lizzy · November 15, 2020 at 1:56 am

Hello, this is a very interesting tutorial. However, I was trying to do something with a wagon. It seems
if I am in the world map, and go into a town, and come back out, the vehicle reets to where it was. How do I keep it where I left it? Also, how do I “enter the wagon” just as you would enter airships in old school final fatasy games? Thanks! keep up the interesting material!

    Mayara Albuquerque

    Mayara Albuquerque · December 14, 2020 at 8:10 pm

    Thank you, I’m glad you found it useful!

    In regards to your question, I’ve never been able to make it work myself. RPG Maker can be kinda limited, especially MV, so it’s possible that you can’t make it work in a clear way. I guess you could try to do the following workaround: create one wagon outside every town and if you’re using one of them, make the others invisible. It’s not a very clean solution, but it might work. I will look into it further, though, to try to find a solution with variables and maybe common events. If I do find it, I’ll be sure to let you know via Twitter DMs. Send me a DM at @BotoAlienGD and I’ll answer you when I know the solution.


    Gabe · January 23, 2021 at 11:21 pm

    Vehicle Resets: You would need an event on each map that you could leave the wagon on. This event should run above or parallel to player, and should take the XY values from the horse/wagon event and update the event position. Essentially another event that does the same thing as the horse/wagon but runs once on opening the map. The XY should be saved from the previous time the horse/wagon was used, and it should update the wagon.

    Entering the wagon: That should just be a new map. Perhaps the wagon event should be changed to include “Ride Wagon” and “Enter Wagon” options. You should do the same thing as the wagon and save the player’s current map and XY in variables, and have the “Inside” wagon map’s exit return the player to that map and those XY coords.

    I know that all sounds like a lot, but it’s probably the best way to implement it.

Comments are closed.

By continuing to browse this Website, you consent to the use of cookies. More information

This Website uses:

By continuing to browse this Website without changing the cookies settings of your browser or by clicking "Accept" below, you consent to the use of cookies.