XPMP2 Remote Client

Synchronizing traffic across a local network, e.g. for External Visuals, and combining TCAS from several plugins

The XPMP2 Remote Client can serve two purposes:

  • Remote Client: Collect distributed traffic sent by XPMP2-based plugins (like LiveTraffic, xPilot) across your local network, so the traffic shows fully synchronized on your External Visuals or in the session of your multiplayer friends; Courtesy of HellG, here is a fantastic video of what this looks like in a professional 4 x 4K dome projection setup!

  • TCAS Concentrator: Collect traffic from multiple sources, also locally, and show all of them combined on your TCAS and to connected 3rd party apps.

Find a list of features below. Be aware that there are limitations, like position accuracy.

XPMP2 Remote Client can only catch traffic sent by XPMP2-based plugins. XPMP2 is an open source library for X-Plane plugins, which display additional aircraft.

Installation

Standard Setup with External Visuals

The typical basic installation is very simple:

  • You run a networked setup via X-Plane's Network configuration, in which one computer is the master, connected to one or more External Visuals. The master also runs the latest version of XPMP2-based plugins (like LiveTraffic, xPilot) just as usual (the senders, because they will send the traffic);

  • On all other computers on the network install the XPMP2 Remote Client as follows:

    • Download the XPMP2-Remote.zip archive, unpack it, and move the included XPMP2-Remote folder with all its content under the <X-Plane>/Resources/plugins folder as with most other plugins.

    • Install the same set of CSL Models, that your senders use, under the XPMP2-Remote/Resources folder. It is not required to rebuild the same folder structure as CSL models are identified by internal names, but all models need to be in reach if you want planes to appear the same way as at your senders. For LiveTraffic, don't forget to copy the ShippedCSL/XCSL_CARS folder as it contains the follow-me car used for ground traffic.

    • Tip: Use network location and symbolic links to avoid copies and to keep your CSL model installations in synch: Use directory symbolic links to point to some central location where you keep all your CSL models, ideally a network folder. Even Windows supports symbolic links for folders by the mklink /D command, Linux and Mac users will know the ln -s command already (or will find help on the net).

That's it! No network configuration required. Fire up your computers, they will talk to each other automatically.

Typical networked setup of a Master with two External Visuals

TCAS Concentrator

  • You have several XPMP2-based plugins (like LiveTraffic, xPilot, referred to as the senders) running in parallel and want to see all their traffic on TCAS (and not only the traffic of the plugin which happens to have TCAS control)

  • Install XPMP2-Remote on the computer running the senders. In this setup you don't even need to add all your CSL models as the Remote Client doesn't actually render planes, but for technical reasons at least one model is required. See installation hints above.

The XPMP2 Remote Client will not display locally transferred planes again, ie. will not duplicate them. But it will collect all their positions and report them to TCAS and to the standard multiplayer dataRefs for access by 3rd party plugins. And it also offers a combined map layer.

TCAS Concentrator on one single machine

Other Installation Options

In fact, the XPMP2 Remote functionality does not care at all where the senders and where the Remote Clients are, as long as they have a network connection, that can forward UDP multicast. You could have several senders on different networked computers and use XPMP2 Remote Client on all of them to collect all traffic, display the missing planes, and forward everything combined to TCAS and 3rd party plugins.

Senders on External Visual
Dsitributed Senders
Senders on External Visual
Networked Setup in which senders are on one External Visual
Dsitributed Senders
Networked Setup, in which senders are distributed and all computers run the Remote Client

Adjusting Network Configuration

The XPMP2 Remote functionality is designed with a "zero config" approach. In all normal situations you should not need to change how XPMP2 Remote uses the network. If you have some very special setup, in which you need to use different multicast addresses, TTL values, ports, in which you want some plugins to serve as senders, but other XPMP2-based plugins not...then there is a chance to influence the setup. I will not go into details here, though. You'd be an expert anyway, so go and have a look at the provided text file XPMP2-Remote/Resources/XPMP2.example.prf. Comments explain how to use it.

External Visuals via other Plugins

If you run a networked setup, in which the External Visuals are not driven by X-Plane's network configuration, but by some other way like special plugins, then XPMP2's network auto detection might not work as that relies on these network configuration entries. You might have to force the sending plugins to actually send their traffic.

  • Maybe, the plugins offer an option to force sending traffic like LiveTraffic has it in Settings > Basics > Cooperation > XPMP2 Remote Client Support.

  • If not, then you can still use the XPMP2.prf configuration file mentioned above: Install it as <X-Plane>/Output/preferences/XPMP2.prf on the master (or more precisely on all computers with sending plugins) and change one line in it to force sending data:

remoteSupport on # default is 'auto'

Features

  • Zero Config: Drop the plugin, add CSL models, and go network-flying.

  • Captures traffic sent by XPMP2-based plugins, both locally and from networked computers, with details on position, attitude, CSL model, configuration (gear, flaps etc.).

  • Display planes for remote senders, based on the same CSL model (if available), synchronized with the senders' positions.

  • Forwards all planes' positions to TCAS and to 3rd party apps reading the so-called multiplayer dataRefs, like many map or camera plugins. (Note that there is a technical limit of 63 TCAS positions and 19 old-style multiplayer slots imposed by X-Plane.)

  • Show all planes in a map layer named "XPMP2 Remote Client".

  • Menu options:

    • Activate / Active: Shows current status and serves as a toggle to (de)activate remote functionality.

    • TCAS Control shows if Remote Client has TCAS Control and serves as a toggle to switch TCAS control on/off.

    • Submenu Senders shows all currently connected sending plugins purely for information.

  • Commands: Menu options Activate and TCAS Control are bound to commands "XPMP2-Remote/Activate" resp. "XPMP2-Remote/TCAS". You can assign keyboard shortcuts to them in X-Plane's settings or trigger them via CMND network message.

The above screenshot shows the menu options, listing 2 remotely connected plugins (those with IP addresses) and one local plugin, and underneath the standard Garmin 1000 and the internal map, both showing all aircraft combined.

Limitations

  • Only works for traffic sent by plugins based on the XPMP2 library. Send/receive functionality is part of the XPMP2 library. Plugins using XPMP2 don't require any additional work to make remote traffic happen. XPMP2 Remote Client itself is based on the XPMP2 library. In fact, it is a build target in that very project.

  • Remote planes appear exactly where they are positioned at the sender side, including altitude. If your scenery setup differs between computers, then remote planes might seem not to roll exactly on the ground.

  • Network Latency: Across a network it is not possible to show models at the exact same location if that location changes with every drawing frame. Even if the position would be broadcasted with every frame (which would be too much of a burden for the flight loop of the master) that broadcast takes time to travel across the network. So the models on the remote machines will inevitably lag a tiny bit behind. We are talking a few millisecond here, so the effect will only be visible when a plane crosses right in front of your windshield.

  • Senders send 5 position updates per second. The Remote Clients extrapolate position information in each drawing frame for which they did not receive current position information. If planes fly curves this linear extrapolation will go wrong and will be corrected 5 times a second, which might be visible as little jumps when seen from up close.

  • The effect might be more visible in a setup where the Remote Client only collects and controls TCAS but does not draw planes received from local senders, e.g. in the above TCAS Concentrator setup: When using camera plugins, or just the built-in "Track next aircraft" command, which build upon the TCAS/multiplayer position information to look at a plane, then this TCAS position is always slightly off compared to the plane. The TCAS position jitters a bit due to the 5 Hz update frequency and the position extrapolation to cover for the time inbetween, while the actual plane, drawn by the original sending plugin, flies smoothly. The effect is a jittering image of the plane, caused by the jittering TCAS position information, which drive the camera. So it is actually a shivering camera ;-)

  • Be aware of the known issue that Aircraft Labels are aligned with the screen's bottom, not the ground. This might look awkward on displays on which a rotational offset is applied and means that labels suddenly flip when a plane moves from one screen to another.