You need to have a separate Citra build with its own user folder. Download a standalone build at the download page then pick “manual download”, extract it. The inside where its citra-qt.exe is create a new folder called user. You can then copy the sdmc folder from %appdata%\Citra and paste it there so you will have the same save files in both builds.
Open both Citra builds, create a room on one and have it as unlisted, on the other Citra use Direct Connect to Room and put 127.0.0.1 as the IP which will connect to yourself.
In order to solve this try direct connect to room option with IP. If you have done rest go to step 3 directly.
Edit: Removing the 2 accounts part as suggested by @tywald .
Then open 2 instances of citra.
Now in one of the instances go to emulation>configure>system and click on regenerate beside console id. This is required as a room cannot have 2 users with same console id.
Go to multiplayer>create room in one off the instances. Create a room and set the password. In the second go to multiplayer>direct connect to room. In IP type localhost and enter password to join. Make sure to change the username in the second instance. Once you are connected you are all set to trade.
Now in Pokemon sun onwards, you cannot use quicklink trade as you need to activate both instances simultaneously. So i recommend you set up festival plaza in both instances. Then once you are in the room press X to open the menu. You will see 1 near the festival plaza button.
Go to festival plaza in both the instances. Then click on trade in the lower menu ONLY IN ONE INSTANCE. Agree to trade from the other instance and wallah! You can trade Now. Then after trading close one instance go out of festival plaza and save the game.
This is not needed, because you can host an “unlisted” room which doesn’t require a token. You can use the “IP” 127.0.0.1 aka localhost instead in the “Direct Connect to Room” on the other Citra.
You should have two separate Citra builds, where you create a user folder in the other so it can have its own settings. It’s not a good idea to launch the same Citra executable twice and just generate a new console ID on the other as that can affect other games that rely on it being the same for like save files.
Thanks a lot! You saved me a lot of time I used that method but this is better. Thanks for help.(Sorry English isn’t my 1st language so sorry if I make a mistake)