JoinFS Manual

System Requirements

YouTube Tutorial Series


Quick Start

Contents

Connection Buttons

Activity Indicators

Indicator Colours

Some JoinFS windows use colours to indicate current activity.

These indicator colours can be configured from the menu 'File|Settings'.

Addresses

JoinFS uses a unique address to allow people to connect directly to each other or join existing sessions. The 'Join' box on the main window will accept either a JoinFS address, an IP address or a domain name, where a JoinFS session is running.

JoinFS Unique Address

This is a proprietary address consisting of two five digit number, for example '12345 12345'. This is a useful format because it hides your actual internet IP address and provides a level of security when publicising your address, for example, in screenshots and on public forums. Your own unique address is shown in the 'Me' box on the main window. Other people can always join you at your address regardless of whether you are the creator of the session or not.

IP Address

This is the standard IP internet address in the format 'x.x.x.x' where x is a number 0-255. If you know the IP address of another JoinFS instance you can join it by specifying this address.

Domain Name Address

This is the standard internet domain name that uses readable text, for example, 'myserver.net'. If someone has set up a domain name for their JoinFS instance or a hub you can join it by specifying this address.

Example Addresses

All of the following examples are valid address formats. Some are using port 7000 and the others default to 6112.

32242 02397
32242 02397 7000
myserver.net
myserver.net:7000
127.0.0.1
127.0.0.1:7000

X-Plane Users

The following requirements are necessary for X-Plane users.

To remove the plugin, use Windows File Explorer and navigate to the X-Plane installation folder. Inside 'Resources/plugins', delete the JoinFS folder.

Creating A Session

Creating A Session

Unlike FSX multiplayer, JoinFS has no concept of a host. JoinFS uses a peer to peer network architecture. The original creator of any session can leave at any time and the session will continue as normal with the remaining pilots. Users can join a session by specifying the address of any user in the session. There are two ways to create a session:

Joining A Session

You can join a JoinFS session by connecting to any of the participants in that session (it does not have to be the original creator). You may also join a special type of JoinFS instance called a hub. These are advertised and shown in the hub list, see 'View|Public Hubs'. There are three ways to join a session:

JoinFS will always remember your previous connection so when launching JoinFS you can just click 'Join' to immediately connect to that session.

Information About The Session

Hubs And Servers

JoinFS uses a peer-to-peer network topology. So by design there is no server or central controlling software. A single build of JoinFS can run anywhere on a private or public network such as the internet. JoinFS nodes communicate with each other as a group to form a session. However, you can configure your JoinFS node to be a special type of node called a hub. A hub is public and can be viewed by anyone by opening the hubs window from the menu 'View|Public Hubs'. It is a convenient way to find new groups to fly with and provide common meeting places for established online flying clubs.

JoinFS Hub Network

All hubs stay in contact with each other and maintain a distributed hub list. This hub list is automatically propagated between hubs and is updated for every JoinFS node. You can configure your own hub with a chosen name, information about the hub, details of an accessible voice server and some extra details about when group flights and events are likely to take place.

JoinFS uses minimal hardware and bandwidth resources so a hub can easily be run on any server or smaller device as required. Up to four hubs can be launched on the same machine and up to four hubs can be running behind the same router and internet IP address.

Creating A Hub

In the JoinFS menu, select 'File|Settings'. Tick the option to 'Enable Hub Mode' and specify a hub name. The other hub information is optional. Click OK. The JoinFS client will now be in hub mode and after a few minutes should appear in other people's hub list.

Port Forwarding

Similar to creating a normal session you will likely need to configure your internet router to allow port forwarding on the desired port (default 6112), UDP-only, to your local machine with a static IP address. Click for more details on port forwarding.

Model Matching And Substitution

JoinFS allows you to substitute any aircraft model in the simulator for a different one. This has a number of advantages.

If you have not already done so, select 'File|Scan For Models' from the menu to build an internal list of available aircraft in your simulator. Further scans will be required when you install or remove add-on aircraft. If you use Tacpack from VRS Simulations, be sure to include the 'Misc' folder in the scan. This can be automated, every time JoinFS is launched, from the menu 'File|Settings' and the 'Scan models at start' option. A model can be changed at any time from the aircraft list, see menu 'View|Aircraft'. Click on the aircraft then right-click and choose Substitute. You will be presented with the following form.

Substitute Model

This form shows the model that is to be replaced at the top and the substituted model at the bottom. Use the two drop down list boxes in the middle to choose the type and variation of the replacement model. When confirmed by clicking the OK button, the models will be updated instantly in the simulator. JoinFS will remember all of your substitutions and at any time you can view and modify substitutions from the menu, 'File|Model Matching'. You will be presented with the following form.

Edit Model Matching

Default Substitutions

In the model matching window notice that there are a set of default substitutions for each aircraft typerole. For example, single propellor, twin propellor etc. You can change these defaults as required. The default models are used according to the following rules.

Substitution Rules

Every time an aircraft is injected into the simulator the following rules are followed, in this order, to decide which model is used to represent the aircraft.

Variables

In addition to updating the aircraft positional information JoinFS also synchronizes aircraft data between different simulators. In Microsoft simulators these are known as 'SimVars' and the information can be found in various places such as the Asobo website. In X-Plane they are called 'DataRefs', these are published on the X-Plane website.

JoinFS allows you to synchronize any of these variables as long as you carefully observe the details as published in the above links. All JoinFS sychronized variables are organized into lists and configured within text files inside the folder '[User]\Documents\JoinFS\Variables'. Each text file contains a list of variable information with each variable on a separate line and specified using the format described below.

To make this synchronization as flexible as possible these variable list files can be assigned to any aircraft model in any of the supported simulators. This means that if you have a particular add-on aircraft with specialized features you can synchronize its data with other aircraft in the same JoinFS session, or you may wish to synchronize any parts of the aircraft that are not currently synchronized by default. The default variables are listed in auto-generated files that JoinFS uses for every aircraft.

To use your own variable lists you need to create new text files in '[User]\Documents\JoinFS\Variables' and update the model's current assignments using the 'Assign Variables' option available in the aircraft window and main menu.

Variable File Format

Each line in a variable text file needs to be formatted with each part separated by the pipe character '|' as follows:

TYPE|DATAREF NAME|SIMCONNECT NAME|SIMCONNECT UNITS|SIMCONNECT EVENT|OPTION1|OPTION2...

TYPE is either 'INTEGER' or 'FLOAT'
DATAREF NAME is the X-Plane DataRef, for example, 'sim/cockpit/electrical/battery_on'
SIMCONNECT NAME is the SimConnect variable, for example, 'ELECTRICAL MASTER BATTERY'
SIMCONNECT UNITS is the SimConnect variable unit, for example, 'bool'
SIMCONNECT EVENT is an SimConnect event name, for example, 'TOGGLE_MASTER_BATTERY'
OPTION1/2 are extra JoinFS options to modify the variable behaviour.

An example line to sync the master battery switch is:

INTEGER|sim/cockpit/electrical/battery_on|ELECTRICAL MASTER BATTERY|bool|TOGGLE_MASTER_BATTERY

The type tells JoinFS how the value is stored and passed around internally and is usually determined by the simulator data type. Integers are whole numbers, for example, 1, 5, 1000. Floats are real numbers, for example, 0.3, 5.25, 1234.333.

DataRef values can be found at the X-Plane website, or found using this online resource.

SimConnect variable names can be found at the Asobo website or the Prepar3D website.

Each SimConnect variable can be obtained in different units. The links above show the units necessary for each variable. However you can also specify alternative units as long as the measurements are compatible. For example, something listed as inches could be obtained in metres instead.

The SimConnect event is optional and can be omitted from the line if necessary. When JoinFS reads and writes SimConnect variables to the simulator, some variables are read-only, in which case it may be possible to set them using an event instead. If possible, try to use the event to change a variable even if the variable is specified as writable. This seems to work more effectively.

The only current extra options is 'PILOT'. In shared cockpit mode this will force only the pilot's variables to be effective. Changes made on the non-pilot side will be ignored. Without the PILOT option, the default JoinFS behaviour is that all users in the same cockpit can modify the variable and all the others will see the change.

Recommendations For Modifying Variables

Inspect the default variable files listed above and they should give you a good idea how lots of different types of data can be synchronized.

In the monitor window, enable the 'Variables' option. This will track all variable changes in the monitor window.

Try to change or add one variable at a time. Test the changes and check the monitor window looking out for errors, particularly SimConnect exceptions. These can be somewhat cryptic and it might need some experimentation to fix a problem or get a variable working.

As you can see from the file format, variables can be synced across different simulators by defining a variable on one line. If you want to synchronize only on one platform simply omit the DataRef name or the SimConnect name. For example the following two lines will mean that the master battery will be synchronized between two users using Microsoft simulator or two users using X-Plane, but it will not synchronize between those platforms. Notice the two pipe characters '||' indicating an omitted value.

INTEGER||ELECTRICAL MASTER BATTERY|bool|TOGGLE_MASTER_BATTERY
INTEGER|sim/cockpit/electrical/battery_on||

Address Book

The address book 'File|Address Book' is where you can manage your saved addresses. This is ideal when you connect to another client or hub on a regular basis. For example, flying with a club or frequently with friends then adding an address allows you to quickly join up at any time. You can join a session, edit, remove or add an address using the right-click menu.

Bookmarks
ColumnDescription
NameThe name of this entry. For example a hub or friend's name.
AddressThe address for connecting to the session. Can be any of the addresses supported by JoinFS.
StatusShows which addresses are actively online. A green 'Online' or 'Online Hub' means the remote client is active. Orange means they are not online or you are unable to connect.

Click the small down arrow on the right of the 'Join' box on the main window to show all of the entries in the address book.

Bookmarks

Recorder

JoinFS is able to record the aircraft positions and flight data for any aircraft in the simulator or in the current session. The Recorder menu has the following options:

You may choose which aircraft you wish to record by opening 'View|Aircraft' and ticking the 'Record' box on the aircraft you wish to record. Your own aircraft and network aircraft are enabled to record by default.

Play back a recording over the network

As well as playing back the aircraft in your own simulator you can choose to broadcast them over the network to other people in the session. This allows you, as a group, to fly in formation with previously recorded flights. To choose which aircraft are sent over the network, go to 'View|Aircraft' and tick the Broadcast box on the aircraft that you wish to broadcast over the network. By default, recorded aircraft are automatically enabled for broadcast.

Building your own formation

An interesting feature of the recorder is overdub button. This allows you to incrementally add aircraft to the recording. Start by making a new recording with one aircraft, and then use the overdub button to start adding more aircraft onto the formation.

Save a recording to disk

Once you are happy with your recording you can save it to disk at any time from the menu, 'File|Save Recording'. To load a previous recording choose 'File|Open Recording'.

Windows

There are several windows in JoinFS that provide useful information about what is currently happening on the JoinFS network. They can be opened from the 'View' menu on the main JoinFS window.

Public Hubs Window

Shows the list of known public hubs that other people are running, usually on a permanent server. The list includes information about the hub, how many clients are connected, how many aircraft and other objects are in the session. Click on a hub in the list and further details are shown in the box below the list. To join the hub, click the Join button below the details.

ColumnDescription
NameName of the hub.
StatusOnline status of the hub. A green cell with 'Online' means that the hub is active and can be joined. Orange means the hub is offline or cannot be contacted.
UsersNumber of JoinFS clients connected to the session.
AircraftThe total number of aircraft in the session.
ATCIf ATC is available the main airport code is shown.
SaveClick this box to add or remove this hub from the address book.
IgnoreClick this box if you do not wish to see this hub appear in the list.
VersionThe version of JoinFS this hub is running.
AboutA short description about activities at this hub.
Voice ServerDetails of where to connect for voice communications.
Next EventDetails of the next group flight or even.

Session Window

The session window shows details about all users in the current session. There is also an option at the bottom right of the window to show all users flying on the public hub network. It usually takes a minute or two for those public users to be updated. Users in your current session are updated more frequently and will show extra details.

ColumnDescription
NicknameThe chosen nickname of the user.
CallsignThe callsign of the user's aircraft.
AircraftThe total number of aircraft that the user is broadcasting in the session.
ObjectsThe total number of carriers and other objects that the user is broadcasting in the session.
PermissionsShows the current permissions that have been granted by you to this user. 'C' - allow cockpit entry, 'F' - they have flight control of your aircraft, 'E' - engine controls, 'O' - other controls.
IgnoreClick this cell if you do not wish to see any aircraft/objects from this owner in future. Objects from ignored people will not show in the list or in the simulator.
PortShows the remote network port that user is using.
IDA unique number to identify the user.
RouteShows the routing status. 'Direct' - there is a direct connection to the user, otherwise the ID of a user where the connection is being rerouted.
ConnectedIs there an active connection to the user?
LatencyThe total round trip time between your client and the user's client.

To edit the permissions for a user, click the Permissions button below the list.

Aircraft Window

The aircraft window shows details about all aircraft in the current session. There is also an option at the bottom right of the window to show all aircraft flying on the public hub network. It usually takes a minute or two for those public aircraft to be updated. Aircraft in your current session are updated more frequently and will show extra details.

ColumnDescription
CallsignAircraft callsign.
OwnerThe nickname/callsign of the owner of the aircraft. A JoinFS client can broadcast multiple aircraft over the network. Suffix: '(R)' for recorded aircraft, '(A)' for AI aircraft.
ModelThe title name of the model used to represent the aircraft in the simulator. This can be changed at any time using the Substitute button below the list. Substitution suffix: '(S)' for custom, '(A)' for automatic, '(D)' for default role-type.
DistanceDistance from your aircraft in the simulator.
WeatherClick on the cell to get regular weather updates from that aircraft.
BroadcastClick on the cell for your own aircraft to enable/disable sending that aircraft across the network. If disabled then others will not see your aircraft.
RecordClick on these cells to determine which aircraft will be recorded when you start a recording/overdub.
SquawkTransponder code.
Com 1Com 1 radio frequency.
Com 2Com 2 radio frequency.
RulesFlight rules: IFR or VFR.
FromDeparture airport code.
ToArrival airport code.
BearingWhere the aircraft is in relation to your aircraft.
HeadingAircraft heading.
AltitudeAircraft altitude.
GSGround speed of the aircraft.
WindCurrent wind strength and direction affecting the aircraft. In METAR format.
IgnoreClick this cell if you do not wish to see any aircraft/objects from this owner in future. Aircraft from ignored people will not show in the list or in the simulator.

Objects Window

The objects window shows details about all other non-aircraft simulator objects available in the current session. From this window you can choose to broadcast objects across the network, for example, aircraft carriers or service vehicles. You can also see the objects that other people in the network are broadcasting.

ColumnDescription
OwnerThe nickname/callsign of the owner of the object. A JoinFS client can broadcast multiple objects over the network.
ModelThe title name of the model used to represent the object in the simulator. This can be changed at any time using the Substitute button below the list. Substitution suffix: '(S)' for custom, '(A)' for automatic, '(D)' for default role-type.
CountIf the objects are grouped by model type using the box at the bottom right then this column shows the total number of objects of that model type.
BearingWhere the object is in relation to your aircraft.
DistanceDistance from your aircraft in the simulator.
BroadcastClick on the cell for your own objects to enable/disable sending that object or model type across the network. If disabled then others will not see your object.
Ignore OwnerClick this cell if you do not wish to see any aircraft/objects from this owner in future. Objects from ignored people will not show in the list or in the simulator.
Ignore ModelClick this cell if you do not wish to see any objects of this model type. Objects of this model type will not show in the list or in the simulator.

Sometimes the size of the object list can become overwhelming, so you can group them by clicking the option at the bottom right of the window.

Monitor Window

The monitor window is for diagnostics and debugging of JoinFS. It shows warnings and error messages and also information about operational events from JoinFS, such and connections being established and so on. There is an option below the output box that allows you to save the output to a file. Click the View Logs button to view the current and previous log files.

Shared Cockpit

JoinFS includes its own method of sharing cockpits with other pilots. There is no restriction on which aircraft type you need to select when joining another cockpit. However, if your aircraft is significantly different then you are likely to experience some odd aircraft behavior. The advantage is that you can choose a similar type or aircraft by a different publisher and still be able to share the cockpit.

To enter the cockpit of another aircraft you must have permission from the owner of that aircraft. The exception is if you are entering a recorded aircraft that you own. The aircraft owner can allow you permission to enter the cockpit and can also hand over different sets of controls to different co-pilots. Controls are divided into three separate groups: 'flight', 'engine' and 'other'. You can decide to hand over any or all of these groups.

JoinFS supports an unlimited number of co-pilots/passengers in one aircraft.

Procedure For Sharing The Cockpit

Permissions

Pilot A wants to enter the aircraft of pilot B.

Map Support And Exporting Live Data To A 'whazzup.txt' File

Aircraft position information can be accessed in real time by enabling the whazzup option in the JoinFS Settings. Using the standard whazzup.txt file format this data can then be read by other applications and used to generate online maps or any number of other interesting uses. The file is written to the Windows user folder AppData/Local/JoinFS/whazzup.txt.

An additional option allow the inclusion of AI aircraft and also all aircraft listed on public Hubs. However, the latter aircraft will only be updated once a minute or so.

Command Line Options

The following options can be used when launching from a command line, which provides a way to automate certain features. For example, to create a desktop shortcut that always connects to a favorite server, copy and paste the installed JoinFS shortcut, right-click the shortcut and select properties; in the target box, append the required options, such as 'C:\Program Files (x86)\JoinFS (TEST)\JoinFS.exe -nickname "Bob" -join myhub.com'.

Options

Troubleshooting

If you have any problems connecting or seeing other objects, try the following checks:

Quick Reconnect

Sometimes a connection issue can be fixed using this quick re-connection procedure. Click the simulator button twice and then the network button twice. If a problem still persists then see the JoinFS forum.

Public Wifi Connections

If connecting from a public wifi point and you are experiencing problems connecting with JoinFS then you may need to use VPN software such as Windscribe on your device before using JoinFS.