How to send only two players to a different map and back in multiplayer?

I’ve got a question about multiplayer travel. I’m working on an strategy game, I have several players competing in a world map where they conquer terrain and manage their resources. My problem is that eventually two of them can meet and battle, when this happens I need to send them to a different combat map.

If it were a single player game I’d just open the new map and keep the persistent information using the GameInstance and when the combat is finished I’d go back to the world map, but I’m don’t know how should I do it in Multiplayer.
Ideally the two maps would have different GameMode classes, but the server has to manage the combat between these two players and keep somehow the other players who are not in the battle in the world map.

After reading this I guess I should use APlayerController::ClientTravel but I’m still not sure how to do it right.

So my question is: what is the best way to send this two players to a combat map while keeping the rest connected to the world map?

Thanks.

Build the combat map inside the main level. Just have it off to the side and teleport the players there.

Is it really the best solution? I’m afraid it doesn’t work in my case.

In my game the mechanics of the battle are too different from the world map, and the scenarios are totally different. Having both maps loaded would be a mess, I’m afraid.

As an example, even though my gameplay is different it would be something like this transition in Total War. There you can see how they perform an attack in the main map and then the game loads the battle map where the combat is solved.