MMO RPG Kit - Unreal + MongoDB + Node.JS

Warning :slight_smile: My english is terrible and i don’t know if my ideas can help with this problem.

One idea is:
pvp (teams 8vs8)
1.Group leader 1 press join game(8vs8).
2.Check that group 1 has ==8 player.
3.Group 1 goes to the queue(8vs8).
4.Group leader 2 press join game(8vs8).
5.Check that group 2 has ==8 player.
6.Server match group 1 and 2.
6.1 Check if the are too much servers running. if yes wait until one ends)
7.Server starts new pvp server(with random map) FPlatformProcess::CreateProc(windows) or FGenericPlatformProcess(for other).
8.New server sends his port to the main server.
9.Teleport Group 1 and 2 to the new server and group 1 to playerstart1 and group 2 to player start 2.
10.Play game.
11.Safe all achievements in database.
12.Teleport players back to the main server.
13.End new server.

Dungeons/Raids:
1 . Group goes through portal.
1.1 Check if the are too much servers running. if yes wait until one ends)
2. Server starts new instance server. FPlatformProcess::CreateProc(windows) or FGenericPlatformProcess(for other)
2.1 Check for old status for this raid(how many bosses are killed etc.).
2.2 Eventualy load old status.
3. New server sends his port to the main server.
4. Teleport Group to new server.
5. Safe all achievements in database.
6. When no player left in the instance for a number of time save and end the server.

Battlegrounds(random 10vs10)
1.Player 1 clicks join (random bg).
2.Player 1 goes to the queue(random bg).
3.Server check if there 20 players in the queue.
4.Player 2 clicks join (random bg).
5.Player 2 goes to the queue(random bg).
6.Server check if there 20 players in the queue.
7.This goes until queue has 20 players in it.
7.1 Check if the are too much servers running. if yes wait until one ends)
8.Server starts new pvp server(with random map) FPlatformProcess::CreateProc(windows) or FGenericPlatformProcess(for other).
9.New server sends his port to the main server.
10.Teleport Group 1 and 2 to the new server and group 1 to playerstart1 and group 2 to player start 2.
11.Play game.
12.Safe all achievements in database.
13.Teleport players back to the main server.
13.End new server.

idea 2:
Its nearly the same except that all instance servers permanently running and only starts new game after on game ends and switch old teams for new teams.

idea 3:
All Raids/Bgs/Dungeons are on the same map and server.
For example there are 20 same arenas on one map and every time 2 groups match,
the server checks which of the arenas are empty (every time 1 coordinates are yoused set a variable to 1)and port the players to this coordinates.
After the game ends port the players back and set the variable to 0.
One problem is that i dont now how you can separate thos arenas that the games dont affect the others.