So I’ve been playing a lot of Persona 4 Golden lately. Probably a bit too much. (I might possibly be writing this article at 6:45 AM after not sleeping all night because I need to meet deadlines and I got a bit too distracted).
So when I was looking for a new tutorial, I was drawn to a nice “quality of life” mechanic that P4G had in it: When travelling around in the non-dungeon parts, you can push square to bring up a menu of locations rather than having to manually walk to them.
It sped up moving from place to place, it didn’t make the game easier, it just made the game take less time to do routine stuff.
So I rebuilt that in RPG Maker MV.
I did handle it a bit different in my demo. Here is how my version works:
- If you are outside in the town, pressing PageUp will bring up the travel menu, giving you the option of buildings to travel into.
- If you are inside a building in the town, pressing PageUp takes you right outside that building.
I also want to do this in a way that it is the easiest to implement in each town. This means moving everything I can to Common Events. As with all eventing tutorials, this may or may not be the most efficient way to do this. There are always plenty of alternate ways to do these. But this is the way I did it, and it works.
To do this I’m going to make 3 common events, 1 Parallel Processing event on the town map, and then an alteration to the transfer events going into and out of the buildings.
The first thing I wanted to do was build a single common event that works whenever you are inside to check if you are pressing the PageUp Button. Why a Common Event rather than just putting an Event on the map? This way I don’t need to copy the event to every map. I just need to have the transfer events into the buildings turn on a Switch to turn the Common Event on, and when you leave, to turn it off.
So what is in this Common Event?
… Another Common Event.
Ok, I know that seems weird, but bare with me here. If we set things up where all of that is handled by the Return event, we can also have the ACTUAL exit to the building also just call the Return Common Event.
Literally, this is the entire event for the exit of the buildings. That is it. But what is in that Common Event?
…That is getting ahead of myself. First, if I’m going to do all exits with one common event, that means that I’m going to have to have stored the information on where the exit goes to!
All of my entrances are entered from below the transfer event. So the easy way to do it is to store that information is just to store the Map ID, the Player X, the Player Y into three variables, then add 1 to the Player Y variable. This will place the coordinates to 1 south of where the player is. Adding this in before the player transfers inside will create an easy, repeatable event that will automatically grab the correct spot. We can throw this in another Common Event, and every single entrance event can have it called before transferring in.
It’s that easy. Make a Quick Event Transfer, throw in the Common Event call.
So now, let’s look at the Set Return Point Common Event:
As you can see, I also went ahead and added the Switch to turn on our Button Check Common Event.
And now, we finally have the context to understand the Return Common Event!
This is a combination of 3 things
- A standard Quick Event Transfer using the Variables you stored as the location.
- Turning off the Button Check Switch.
- Zeroing out all your Return Coordinate Variables.
With what we have now, we can now click PageUp and leave any building we enter. Pretty cool huh?
So now, let’s make what I actually intended to make in the first place, the Quick Travel list.
This is what this event needs to do:
- Check if the PageUp button is pressed, a simple conditional branch.
- Give the player the option of all the locations.
- Save the return coordinates.
- Transfer the player into the building they picked.
3 is where we have a problem. There is no easy fast way to do this one, unfortunately, so instead we’ll just have to set it up manually. I figured out the coordinates for each one, and set the coordinates into the variables manually. This is the event I ended up with:
And that is it. It works. As I’ve typed this, I’ve thought of three or four ways to handle small details of this in different ways. But this one, it works, and I can repeat it in other towns fairly easily.
And that is what you should look for: Does this work, and if I’m going to have to do this process again, is it easily repeatable?
Have any questions? Check out the demo! Still have questions, or maybe some advice? Join us in the comments below!