MOVING ONE EVENT FROM ONE MAP TO ANOTHER (EVENTING)

A semi-complex way on how to make an event, for example a boulder, go from one map to another.

Alright, ever played a game where the player has to push an object from one room to another and wondered how they did it? Well, here's a way on how to do it in VX Ace!

This tutorial expects basic knowledge and familiarity of VX Ace eventing, variables and switches, but should nevertheless not be too hard to follow I hope.

First thing you're going to need is two seperate maps, these are the two I made for this example:



For simplicity's sake, I named both of these maps "Map A" and "Map B".
Now then, we'll make a transfer event from Map A to Map B and we'll make sure to tick the "Through" checkbox on the lower left, this is important, don't forget it!


Alright, next thing we need to make is the event we want to move from one map to the other one. We'll work first on just moving this event from Map A to Map B and thereafter we'll focus on moving it from Map B to Map A.

Create and event in Map A and give it whatever graphic you like, I used this black boulder graphic for this tutorial.


Make sure its Priority is set to "Same as Characters"
For the Trigger you can either set it to "Player Touch" or "Action Button", this is up to your preference.

Next, we'll make an event command that moves the boulder in whatever direction the player is looking at. Make a new "Set Move Route" command


This is how you should set up your Set Move Route command:


Make sure it is set to "This Event" and to tick the "Skip if cannot move" checkbox, otherwise you'll softlock the game every time you try to move this boulder into a wall. Click on ok and the Set Move Route command should be done.

This is what your boulder event should look like right now:


Hit the ok button, save your game and playtest it a little, you now have a boulder you can move around the map!


Alright now that you have a boulder that you can move around the map, congratulations. Now onto the more complicated stuff. Next thing we'll get into some variables and switches. Next thing you need to add to Map A is an event that checks the boulder's location and whether or not the player has pushed it into the doorway that leads to Map B.

Create a new event on Map A named something like "Boulder_Position" and put it somewhere in a corner of the map that the player can't reach. Make sure to make it a Parallel Process event.


Now, make a "Control Variables" command and make a variable named Boulder_X



Next, make sure to tick the "Set" box and the "Game Data" box in the variable window.


Next, make sure to clik on the three dots and in the new window, tick the "Character" box and from the drop down menu select your boulder event. On the drop down menu on the right make sure to select "Map X". Press the ok button.


This is what the "Boulder_X" variable should look like by the end of this. Press the ok button.


Now, make a new "Control Variables" command and repeat the exact same process, but this time make a variable named Boulder_Y and make sure that it uses Map Y instead of Map X.




Your "Boulder_Position" event should look something like this now.


Alright, next we'll work on making the boulder disappear from Map A once the player moves it over to the passage that leads over to Map B.


First things first, hover over the tile where your passage to Map B is, and then look on the lower right for the X,Y coordinates of that tile.


Now in my case the coordinates are 008,003, which means the X,Y coordinates of the tile are 8 and 3 respectively. Now go to your "Boulder_Position" event and make add a "Conditional Branch" event command. From here, select the "Variable" box and select your "Boulder_X" from the drop down menu and then make sure to set it to "Equal to" and set it to whatever number your X coordinate is, in my case it's 8. Also make sure to untick "Set handling when conditions do not apply" as we won't need this.



Now, within the first conditional branch insert another conditional branch and repeat the same steps but this time for Boulder_Y and for the Y coordinate of the tile, which in my case is 3.



Now then, we just created an event that checks for the boulder's XY coordinates and then checks if the Boulder is at the tile that leads to Map B. Now all we need to do is add some switches to make the Boulder disappear from Map A when it is moved into the passage that leads to Map B. Within the innermost conditional branch, add a "Control Switches" command. THen make a switch named something like "Boulder_MapB" and set it to be turned to On. Make another switch called "Boulder_MapB_Triggered" and also set it to on, this switch will come in handy later.




This is what your "Boulder Position" event should look like right now.


Now, add a new event page to your "Boulder_Position" event and in the conditions add "Boulder_MapB switch is on" as the only condition and make it an otherwise completely empty event page.



This is our Boulder_Position event done now! Congrats, now save the game and lets get back into the Boulder event itself. Double click your Boulder event and add a new emtpy event page to this one as well and also give it the "Boulder_MapB switch is on" as the only condition.


Save the game and playtest it as well. Now, when you move the boulder towards the door that leads to Map B, the boulder will disappear!

Now, let us head on over to Map B
Here on Map B, the first thing you want to do is to make a transfer over to Map A and make sure that is has the "Through" option ticked. Afterwards, copy and paste the Boulder event into Map B. Make sure to put it one tile above where the player is trasnfered to! In my case, the player is transferred to the marked tile, so I put the boulder one tile above that tile.


Alright, now it's time to double click the Boulder even in Map B as we are going to make some changes. First of all, delete the second event page as it is not needed on Map B. Aftwards, set the condition of the first event page to "Boulder_MapB switch is on". That's all you have to do for this boulder event. Press ok and save your game.



When you playtest your game and once you move the boulder from Map A over to the door it will disappear, and if you go to Map B, you'll find that the boulder is now in here as well! Now, we'll add one final tidbit which allows the player to move the boulder from Map B back to Map A.
First of all, copy the "Boulder_Position" event from Map A and paste it anywhere on Map B, preferrably a corner where the player will not be able to reach it.

Before you start editing this event, we'll need to look for the coordinates of the passage to Map A, so look again on the lower right corner while hovering over said tile.


In my case, the XY coordinates are 008,010. So that's X = 8 and Y = 10. Now open the "Boulder_Position" event you copied over and make sure that the "Control Variable" commands are taking the Map X and Map Y of the Boulder event. Afterwards, make adjustment to the conditions to be the appropriate X and Y coordinates of where your passage to Map A is, which in my case would be 8 and 10.




Afterwards, make sure you turn the "Boulder_MapB" switch off.


We do not need to touch the "Boulder_Map_Triggered" switch, so just delete that event command.

Next, you will want to delete the second event page of this event and then set the condition of page 1 to "Boulder_MapB switch is on", this will make sure the game only checks for the Boulder's position when the Boulder actually is inside of Map B.


Now then, we can move the Boulder into Map B and back into Map A, however, we've run into a small problem.


When we move the boulder back into Map A, it is not directly at the doorway. This is where the "Boulder_MapB_Triggered" comes into play. Create a new event named something like "Boulder_Back" inside of Map A, somewhere out of the reach of the player and make it a parallel process with the "Boulder_MapB_Triggered switch is on".


Add a "Set Event location" event command and make sure to select the boulder. Afterwards, designate where you want to put the boulder, in my case I moved it to be the tile directly under which one the player appears when entering Map A.




After this add an "Erase event" command and you then the "Boulder_Back" event is done and this is what it should look like!



Now you can save your game and playtest it and you'll find that you can move the boulder from one map to another. I coupled a DEMO project right here so that you can analyze the events I made up close. I hope this tutorial was helpful, it is my very first tutorial on the site and any feedback on how to make it better is greatly appreciated. Have a nice day!

Here's the Project!