The TM is for Totally Magical.
I am a piano technician and musician by trade. I am a poet, a writer, an artist in my spare time. In my personal philosophy, I delve into the mystical arts. I am 38 and widowed, finding a way to move on.


Across the Universe
Survival and friendship in an impossible situation.



[RM2K3] Row movement when characters join mid-combat

Huh. It looks like the row command is hard coded into the engine. It doesn't look like there's a way to manipulate the row with engine commands. Maybe try defaulting the new comer to the back row in the Battle Screen tab of the database? I don't know! I've never encountered this before.

[RM2K3] Make Ship travel on upper tile?

However many maps you use doesn't matter. Just put a parallel process on each map that follows the same formula and make sure the transfers in each event goes to the relevant map. Process is simple: copy paste and adjust transfer locations.

I need to point out a glitch in my explanation, though. Tinting also has a problem, but you have to hide the screen. Positioning of the command is everything in this instance. Put the tint 100,100,100 in the last page of the event (the one with the Key Input Process: put the tint 100,100,100 command first.) and then it will work right.

And yeah, fadeout/fadein is temperamental on all makers. It works if you use it normally in cutscenes on one map, but once you transfer to another map, you have to use them a certain way or they won't work. The fade out has to go before the transfer, and the fade in has to immediately follow after the transfer. If you try to put a fade in the next map, it absolutely will not work. This problem has absolutely driven RM devs that try to make cutscenes across multiple maps nuts. The usual workaround for multimap processes like this one is to use tints instead, but schools of thought vary on how to handle it.

[RM2K3] Make Ship travel on upper tile?

Okay. I'm going to teach you how to do this.

Go into your database to common events and create a common event called "Character Tracker". In the "Trigger" window, set it to parallel process. Tick the box for "Condition Switch" and make a switch for it. Now, in the "Content" window, create two variables, named Player X and Player Y. For both variables, in "Operands", tick the "Event" circle of both variables. In the first drop down select the Player event. In the second dropdown, for the Player X variable, select X coordinate, and for Player Y, select Y coordinate. Your content screen will now look like this.

@> Control Variables: = Player's X Coordinate
@> Control Variables: = Player's Y Coordinate

At the beginning of your game, create an event with a parallel process that sets this Common Event's Condition Switch to "On" and leave it on.

This tracker is a quality of life feature that you will find indispensable for countless operations involving your playable character.

Sorry, should have included this.

1. Creating Your Maps

In your tileset tab, you want two tilesets: the main tileset you'll be using to create your main map, and your secondary tileset, which should be an exact duplicate of your main tileset. In your main map passability, make sure the player is restricted from walking on anything they would logically be unable to walk on, such as lakes, walls, furniture, etc. For your ship map passability, make sure everything that you want to be passable for the ship is passable for the player, because we are not going to be using RPG Maker's ship function.

Place an event for your ship. This event should have the relevant ship sprite in it that your character can "board". Again, do not use the ship placement tool that you would ordinarily use. Place all events that you want in your map, including transfers to other areas. It's a pain to make maps match AFTER you've duplicated them if you weren't finished with the map to begin with. You won't need the ship sprite event on this version of the map, so you can delete that if you want.

Go ahead and make your main map. Then, in your map tree, right click on your map, copy it and paste it where you want it. I recommend making two branches, one for regular player maps and one for ship maps.

2. Player Teleportation and Ship Boarding/Disembarking.

Go into your ship event. Make sure your player can occupy the same space as the event. Make sure the trigger is set to Action Button. Remember that Character Tracker? You know the switch? Have this event turn it off. What you've done now is set your character's last known location. Create another switch called, Ship Handling, and turn it off as well. We're going to need that in a little bit. Now, you're going to do some stuff that you want to hide from the players. Hide screen in this situation is glitchy so Tint Screen to 0,0,0 instead. And transfer player to your ship map. It doesn't matter where.

On your ship map, create an event set to parallel process set to below players. In this event, select the Set Event Location command, set it to this event, and in Map X, set it to your Player X variable, and in Map Y, set it to Player Y. What this will do is move this event to the coordinates on this map that you were on on the last map. Below this command, create a variable setting Player's Map ID. This is exactly the same as the Player X and Player Y commands, except you're setting Map ID instead of coordinates. Then, create variables for your boat location exactly the same way you created your Character Tracker variables, except, set the event part to This Event, and give your variables names reflecting what you want this event to do. Remember that boat handling switch? Turn it on.

@> Set Event Location: This Event, Variable [0001][0002]
@> Control Variables: [0005:Map ID] = Player's Map ID
@> Control Variables: [0003:Boat Location X] = This Event's X Coordinate
@> Control Variables: [0004:Boat Location y] = This Event's Y Coordinate
@> Control Switches: [0002:Boat Handling] = ON

Create a new page, and set it to trigger on your Boat Handling switch. Set it to Parallel Process also. In this new page, use the command Get Player Location. Set Map ID to your newly created Map ID variable, and of course, set X and Y Coordinates to your Player X and Player Y variables. After this use the Move to Variable Location command using your Map ID variable, and the variables for this event as your handlers. Turn the switch for your Character Tracker back on. And set your tinting back to 100,100,100

@> Get Player Location: Variable [0005][0001][0002]
@> Move to Variable Location: Variable [0005][0003][0004]
@> Tint Screen: (100,100,100,100), @1.0s, Wait
@> Control Switches: [0001:Player] = ON

Create another new page, set it to parallel process (because we're going to be using this for our next operation), and have it triggered with your Character Tracker conditional switch.

Now, this seems really involved, but if you look at the images above, you'll see there's really not a lot to it. By the way, those page by page processes absolutely need to be separated like shown above because if you don't, the system will freeze on a black screen.


What you've done is created a system where you can board anywhere on your map and not have to have designated docking points. But how do you get back to the player map? Well, I'm going to explain that, too.

Remember that we left that last page as a parallel process? Well, that's because we're waiting for player input, now, so create a Key Input Processing command on this page to start. RPG Maker 2003 doesn't have a run toggle, even though you can create one on your own, so if you're not doing that, go ahead and use the shift key (note the number 7 by it. You'll need that for variable handling.) for this because you're not using it for anything else, most likely. In the variable portion of the Key Input Processing window, create a new variable called...why not "Key Input"? Essentially, what you've done is you've told the system that it needs to look for the player pressing a button. Below that, create a Conditional Branch. Tick the variable button and set the variable to Key Input. Make sure the variable condition menu is set to Equal to, and make sure the "Constant" button is ticked. In the box by the constant selection, set the value to 7, the same as the shift key. Untick the Set Handlers when Conditions Apply box, because you don't need it, and click OK.

Now, in the conditional branch, turn your Character Tracker switch off, tint your screen to 0,0,0 again because you're going to have trouble with the process if you try to use the hide screen function. Then transfer your character back to the original map.

@> Key Input Processing: [0006:Key Input], Wait
@> Conditional Branch: Variable [0001:Player X] == 7
@> Control Switches: [0001:Player] = OFF
@> Tint Screen: (0,0,0,100), @1.0s, Wait
@> Transfer Player: [0001:Aremenia (Player)] (017,016), Retain
: Branch End

Create a new page on your ship sprite that sets the event location again to the Player X and Player Y variables. Go through the whole process again. Make sure you change your character sprite back to your correct sprite. When you turn your Character Tracker switch back on, make sure you land on the ship event page that starts the process and waits for the action button trigger.

[RM2K3] Make Ship travel on upper tile?

Make sure the lower tile that you've set the upper tile on is flagged to let the ship pass.

[RM2K3] Make Ship travel on upper tile?

Another possibility is to have all of your upper layer tiles set on the map as events. Have them set as same as character for when you're not using the ship and set a switch to toggle them to below character when using the ship.

Edit: He's suggesting you duplicate the tileset.

[RM2K3] Make Ship travel on upper tile?

If you want to be able to pass over upper layer tiles, they have to be set to O passability or your ship has to be tagged as an airship. If you don't want it to be an airship, your only option is to have duplicate maps:
One for when your character is off the ship and has to interact with with said upper layer tiles and the other for when your character gets on the ship and you don't want them to be able to interact with upper layer tiles anymore.

Edit: Please note, if you set them to STAR passability, everything will pass under them, except the airship, which will pass over them.

[RM2K3] Make Ship travel on upper tile?

In the database, in the Tileset Tab, check your terrain tags. Make sure they're set to the terrain numbers you want.

Go into the Terrain Tab and then go through the terrain tags there. Go through each tag and make sure ship passability is set the way you want. You can do that by clicking on each tag, and then checking the boxes in Vehicle Passage Settings to determine whether boats, ships, and airships can pass, and airships can land.

"This above all; to thine own game be true." ~William Shakespeare

"Gammak is using the same code over and over again, but expecting a different game." ~Rita Mae Brown (famously misattributed to Albert Einstein)

[Poll] [RM2k3] Any interest in a CMS maker?

Here's the thing: if I want a custom system with scripting, I can use VXAce or MV. I can even make it look like 2k/3 if I double/triple graphic sizes. If I want systems unique to 2k/3, scripting will even let me do that. There is absolutely no reason I couldn't make a game any of those systems that looks like a 2k/3 game, and the only reason you'd know is because of the filing system. I can even give them 2k/3 resolution.

The reason I say this is because I have made the majority of my games in 2k3 and what makes it interesting for me is that very limitation of only having the events to make custom systems. It's become something of a game in its own right to see just how much I can cheat it and make it function as unlike 2k3 as possible, and bonus points if I can do it smoothly enough that it looks like 2k3 was designed for it in the first place.

That said, I still voted yes, because it sounds like a fun tool in its own right.

Fear the Deer :: 2021 Gammak Challenge!

So...this year, we're having a stag party, then?

Come on. You know someone had to buck up with the puns.

Think of it as a term of endeerment.

Someone's bound to put out something people will get doe-eyed over.