hank you so much, merdouille44 for helping me with getting this system working. You can see the help thread here.
I got this inspiration for this system from Brothers: A Tale of Two Sons. I thought the idea of one player controlling two characters at the same time was interesting, but I also thought it might make a neat multiplayer system too.
The first thing you want to do is make your second character. Create an event and label it Player 2 or, in my case, Brother. Pick the graphic you’d like. Make sure that the event number is the same on every map. I highly recommend you have Event 1 be the second player for every map you make.

Next thing you want to do is create a common event. Set it to a parallel process and label the switch Player 2 or Brother.
Now, we need to make our little brother move. To make it easier, I am keeping the default player with the default arrow keys. This means that we will use the WASD keys to have player 2 move around. However, we also need him to sprint as well. Since we have a bit of a limited keyboard (this can be fixed by using the gamepad extender ), I am just using the SHIFT button to have both characters run.
First, make a conditional branch and if we press the A button.
Place a wait 5 frames. This just makes it look smoother, but not needed.
Then set a conditional branch to the R Button. This will be the W button in gameplay.
Next, set move route where second player moves up. Since we’re in the shift button, change the speed to 5.
You will do the same set up for the rest of the buttons. It will look like this when you’re done:

Note that the words that were cropped above were just comments for me for what controls I will be using.
In the else statement, it will look exactly the same, but the speed will be 4.

Now we are done with our common event! Your second player should now be able to move around the map along with the first player.
This is the part where I got stumped on.
First, create an event and label it NPC (it can be anything you want to interact with. I’m just using an NPC as an easy example). You are going to make the npc exactly like you normally would. This is just when your first player interacts with the NPC.

Now, create another event and set it to parallel process.
The first thing you want to do is create two variables. Second Player x and second player Y. Then set it up to where they are equal to the first event’s map X and Y.
You want to do the same exact thing for the NPC.

Create a conditional branch to where second player x is equal to NPC x. Under that, you will have another conditional branch to where the second player is facing down. Inside that conditional branch, you will create another conditional branch and have it when the second player presses the L button. This will be the Q button in gameplay.
Next, have the variable of second player y and add 1. This is to “trick” the event into thinking that the second player is the same as the NPC’s position.
Now have another conditional branch to where second player y is equal to NPC y. Inside that, you finally put your text or interaction.
You will do the same thing for the facing up position, but change the variable of second player y to subtract 1.

You will do the same exact thing for the right and left position, but invert the second player x and y.

In order to exit the second player’s message window, you have to press the 0 key on the num pad or the Z key.
Now you have your own multiplayer system! Or it can be a system for puzzles. The system can be turned off and on easily as well by turning off the switch we linked to our common event.


NOTE
If you want to have the NPC face the second player, just put in a move route where the NPC turns.
