Multi-User VPN Configuration and Setup (Experimental)

A short while ago, I released a video explanation of how the multi-user could be configured to work in a remote environment. This guide will be a text version of my video. If you need additional assistance, I am available via this forum, my discord and email, which will all be linked below.

Video Tutorial:

Prerequisites:

  • MUST have source control. You can use multi-user as source control, but I personally have not used it that much. For this tutorial, we will assume that you know how to use source control and configure it with this project. If you need to learn how to use source control, unreal released a webinar which can be found here: https://www.youtube.com/watch?v=faYmvw_Pd-A
  • Latest version of Unreal Engine (At time of writing - 4.26.0)
  • You will need a VPN server and client. We will guide you through how to configure the VPN system softether which we used for this guide. Other options exist so use the tools you are familiar with. Should you want to follow our guide, please download and install both the Server and C****lient tools from https://www.softether-download.com/e…duct=softether

Notes:

  • Your network speeds may be impacted, there are tricks to help solve this but you should expect slower connections while connected to the VPN.
  • It is super important that you are using the latest / same version of the project files when connecting to this VPN. If your files don’t match it will throw errors
  • At the time of writing this tutorial, this method has been tested a few times by users, however Multi-User plugin is still listed as beta and should be considered to be unstable.

Server Configuration
Please install the softether VPN server software before continuing with this

With Softether Server Manager open

  • Click New Setting
  • Choose a name, click “Connect to Localhost” and set a password for your administrative login.

[ATTACH=JSON]{“data-align”:“none”,“data-size”:“custom”,“data-tempid”:“temp_212478_1611935981519_363”,“height”:“316”,“title”:“vpnsmgr_x64_89F0TZY7A3.png”,“width”:“495”}[/ATTACH]
https://forums.unrealengine.com/core/image/gif;base64
​​

SoftEther will launch you into the Easy Setup.

  • Enable Remote Access VPN Server
  • Enable Site-to-site VPN Server or VPN Bridge
  • Select “VPN Server that accepts connections from other sites”

[ATTACH=JSON]{“data-align”:“none”,“data-size”:“custom”,“data-tempid”:“temp_212480_1611936408020_881”,“height”:“360”,“title”:“vpnsmgr_x64_jj0lE8LQuW.png”,“width”:“493”}[/ATTACH]
https://forums.unrealengine.com/core/image/gif;base64
​​

On the next screen. Name the Virtual Hub
On the Dynamic DNS Function screen. Leave everything default
On the next screen named “IPsec Server Settings”. Leave default
On the VPN Azure Service settings screens. Enable VPN Azure

On the VPN Easy Setup Tasks

  • Create some users.
  • Give them a username and a password. (We use 0000 for passwords when testing)

[ATTACH=JSON]{“data-align”:“none”,“data-size”:“custom”,“data-tempid”:“temp_212486_1611937530128_863”,“height”:“345”,“title”:“vpnsmgr_x64_S8OCTXsnfV.png”,“width”:“497”}[/ATTACH]
https://forums.unrealengine.com/core/image/gif;base64

Select the hub, and open the manage virtual hub.
From the menu choose “Virtual Nat and Virtual DHCP Server (SecureNAT)”

  • Enable SecureNAT
    [ATTACH=JSON]{“data-align”:“none”,“data-size”:“custom”,“data-tempid”:“temp_212487_1611937706494_701”,“height”:“400”,“title”:“vpnsmgr_x64_A2SrQ6TcjP.png”,“width”:“496”}[/ATTACH]
    https://forums.unrealengine.com/core/image/gif;base64

You can now exit this application and open the client.

To connect to the unreal VPN you will need to do the following steps
With your VPN client installed.

Click “Add VPN connection”

  • Use the hostname configured earlier.
  • Under User Authentication - username as the username
    • password is: 0000 (or whatever you set it to earlier in the tutorial)

Clicking the advanced settings options

  • Turn on the “No adjustments to routing table” option
    Confirm (Click ok)

[ATTACH=JSON]{“data-align”:“none”,“data-size”:“custom”,“data-tempid”:“temp_212488_1611938516134_732”,“height”:“373”,“title”:“vpncmgr_x64_0syzR0tADg.png”,“width”:“499”}[/ATTACH]
https://forums.unrealengine.com/core/image/gif;base64

From the VPN Client double click or right-click, connect the new npn connection

Configure Unreal
Download the latest project files from source control or create the new project

Enable multi-user editing

  • Within the unreal project, go to the Edit menu > plugins
  • Search for Multi-User Editing
  • Enable & restart unreal

Setup Multi-User Editing

  • Inside the unreal project, go to the Edit menu > Project Settings > Plugins - Multi-User Editing
  • Enable Toolbar button
  • Set Display name (ideally your name)
  • Set avatar colour
  • Click Set as Default
  • Restart Unreal

[ATTACH=JSON]{“data-align”:“none”,“data-size”:“custom”,“data-tempid”:“temp_212489_1611939078657_478”,“height”:“290”,“title”:“UE4Editor_Ayd2AmuWxl.png”,“width”:“527”}[/ATTACH]
https://forums.unrealengine.com/core/image/gif;base64

Using CMD or Powershell

  • Use command ipconfig to get your IPv4 address
  • Copy this into the Unicast endpoint with the port “:0” found within the project settings > UDP Messaging


74371be66325079896a56ebe566392bb0a73baf8.png

Connect to Multi-User Session
Download the latest project files from source control or create the new project

(Host-Only) Launch a server
You must be connected to the VPN

  • Inside unreal, click the browse option (which was set up previously)
  • Click launch a server
  • Click create a new session
  • Give it a name and click the green tick

[ATTACH=JSON]{“data-align”:“none”,“data-size”:“custom”,“data-tempid”:“temp_212490_1611940391260_727”,“height”:“316”,“title”:“UE4Editor_fcdbXJaTYb.png”,“width”:“523”}[/ATTACH]
https://forums.unrealengine.com/core/image/gif;base64

Connect to the session

  • Double Click or click the join the selected session button

Working solo on the project

When working on the project solo, you must upload the projects new version to the source control. In this tutorial, we have used Github, but the same idea carries across all source control options. If you fail to upload something, and someone else starts working on the project without your updates, you are likely to have to redo whatever didn’t get uploaded to source control.

[HR][/HR]

If you need further assistance, I can be found and reachable via the following:

**This forum thread

or **

Email: jonathan {at} videndum.studio
Discord: Discord

Hi Jonathon,

I want to automate some of the Multi User Editor Settings for the users . In order to do that I am planning to write a simple plugin which automate simple tasks listed above .

I want to enable the “Enable Multi-User Toolbar Button” check box thru my plugin code .
Can you guide me how do I acheive that ?

Thx