Introduction

Welcome to the SSC-Tracker help page. Here you'll find all the information you need to get started with SSC-Tracker.

SSC-Tracker.org is a community and hobby project created by flight sim enthusiasts, and it is a work in progress. The service is free to use, but I cannot guarantee the permanent functionality of these services. In the event of misuse, ssc-tracker.org reserves the right to limit or completely discontinue the services.

SSC-Tracker is an add-on for tracking multiplayer group flights with Microsoft Flight Simulator 2020 and 2024. You simply download the SSC-Tracker client from this site, connect it to MSFS, and it will transmit your aircraft data to ssc-tracker.org using your ID. Any member of your group can see your aircraft on a map along with your flight data.

To display the aircraft on a map, you can use commonly available tools such as Little Navmap, B21 Taskplanner, or ssc-tracker.org itself. These tools support the Whazzup data format v1 or the SSC-Tracker JSON format.

SSC-Tracker works with all types of aircraft but is optimized and includes specific features for glider task flights. It also has deep integration and compatibility with the B21 Task Planner.

Credits: The idea of SSC-Tracker is based on the virtualflight.online tool by Jonathan Beckett but has been completely rewritten.
Much of the work is also based on B21s Soaring Task Engine and tools, with help from the SSC Glider Community.

Quick Start

Get up and running quickly with these simple steps.

Connect from moving maps and setup

Connect Options

SSC-Tracker has a built-in web server with various options to retrieve flight data for the tools of your choice. You can find all connection options in different formats on the setup page of the SSC-Tracker app.

For your information or copy and paste:



www.ssc-tracker.org

If you open www.ssc-tracker.org on your local PC, it will automatically connect to the running SSC-Tracker app on the same PC.

If you would like to display the map on a second PC or tablet, open www.ssc-tracker.org and enter your group name to view the flight group.

You have many options to show or hide the group data and adjust the screen layout. To center or follow an aircraft, simply click on the Pilot ID. To uncenter it, click on the map.

(Scale UI+-, Docking left or top, show/hide aircraft data)

Click on the gear to show/unshow available data fields



Little Nav Map

Instructions for integrating SSC-Tracker with Little Nav Map.

LNM supports the Whazzup v1 format, and SSC-Tracker delivers it on localhost:55055 or from the LAN using the IP address of the PC where the SSC-Tracker app is running.

SSC-Tracker also writes a Whazzup file that LNM supports if you encounter issues connecting via HTTP. Simply copy and paste the URL or path of your choice from the SSC-Tracker setup page.

Note that LNM does not support the /json formats.

B21 Task Planner

Using SSC-Tracker with B21 Task Planner.

Click on Settings and type in your Pilot ID and url from SSC-Tracker.org

For all options, please refer to the help section in the B21 Task Planner.

Task / Flightplan Flights

How to manage tasks and flightplans with SSC-Tracker.

SSC-Tracker has a feature to distribute task/flightplan (.pln) and/or weather presets (.wpr) data for every group. If a task is available for the group, it will be automatically downloaded and saved to the app’s task folder.

Pre Flight - for tasksetters

For this feature the tasksetter need to create a group with a secret first(8). Click on this icon:

Upload .pln(9) and optional .wpr(10) files and a short info/Url (11)with icon (5) for your group

For all options and instructions on how to create B21 task files, please refer to the help section in the B21 Task Planner.

Tasksetters can reset(7) the task progress or delete(6) the task for the group on the upload page.

In Flight - for the pilots

Click on the reload icon (1) if you want to force a task download. Otherwise, SSC-Tracker will automatically check every minute for new shared group flightplans/task data and download it to the app folder (3). If you check “Copy Task Files” on the setup page, .WPR and .PLN files will also be copied to the MSFS default folders for weather presets (4) and flight plans.

Click on SSC-Tracker.org to open the map with flightplan or click on “Task” to open the current task alternativly in the B21 Task Planner.

If no group task exists, SSC-Tracker will try to load the .pln from MSFS. Alternatively, you can manually upload (2) a .pln to SSC-Tracker for a single flight.

SSC-Tracker will automatically track the task progress for the entire group and display it on ssc-tracker.org like a live scoreboard. The task progress is only available on the ssc-tracker.org map.

If you need to reset your task progress in case of restart, click on (1) to reset your task progress.

MSFS in-game SSC-Tracker-Panel

The SSC-Tracker app includes the SSC-Tracker-Panel.zip. If you would like to display the ssc-tracker.org map in-game, install the panel to your MSFS community folder on the SSC-Tracker app setup page and restart MSFS.

Currently, the panel is optimized for use in VR and will automatically connect to the running SSC-Tracker app to show the aircraft and task, if available.

Specification / API

Understanding the data format and API used by SSC-Tracker.

To retrieve data from a third-party app or webpage, you need a running SSC-Tracker client app. SSC-Tracker acts as a proxy to ensure that the ssc-tracker.org server does not experience overload. You can access Tracker data on the default port 55055 on localhost. Additionally, you can access it from a device on your LAN. In this case, you must run the app as an administrator to allow access via http://your-pc:55055. Currently, only HTTP is implemented.

How to retrieve live aircraft data

Using http://localhost:55055/json or http://[your-pc-name]:55055/json you receive the following json data format with all aircraft data from every pilot in your group.
This live data values will be updated every second. TSK* values only, if a task/flightplan is loaded.

                        Description:

                        GN:         Groupname
                        TASK:       Current taskname (if a shared task uploaded to the group)
                        WEATHER:    Current weather preset name (if a shared task uploaded to the group)
                        ID:         Pilot ID of the user
                        CONFIG:     No data, for future purposes
                        ITEMS:      Aircrafts data list 
                           CMD:     No data
                           SECRET:  No data 
                           GN:      Aircraft groupname
                           ID:      Aircraft pilot ID
                           NAME:    Aircraft pilot Name
                           AC:      Aircraft name
                           MODEL:   Aircrfat model
                           TH:      Aircraft true heading
                           LON:     Aircraft longitude [decimal]
                           LAT:     Aircraft latitude [decimal]
                           IAS:     Aircraft indicated airspeed [kn] 
                           TAS:     Aircraft true airspeed [kn] 
                           GS:      Aircraft groundspeed [kn]
                           LV:      Aircraft (last) landing velocity [kn] 
                           VS:      Aircraft vertical speed [kn] 
                           WD:      Aircraft wind direction [°] 
                           WV:      Aircraft wind velocity [kn] 
                           MSL:     Aircraft altitude above MSL [ft] 
                           AGL:     Aircraft altitude above ground [ft]
                           TSK_TIME:        Task time from start line [seconds] 
                           TSK_AVG:         Task average speed from start line [kn] 
                           TSK_AVG_PATH:    Task average speed from start line (flown flightpath) [kn] 
                           TSK_NEXT:        Next task waypoint name
                           TSK_DIS:         Distance to finish line [nm] 
                           TSK_DIS_PATH:    Flown flightpath distance [nm] 
                           TSK_DIS_ALL:     Flown task distance [nm] 
                           TSK_DIS_WP:      Distance to next waypoint [nm] 
                           TSK_ONGROUND:    1 = aircraft on ground in task
                           TSK_SLEWT:       1 = aircraft slewt in task
                           TSK_ENG:         1 = glider aircraft engine on in task
                           DIS:             Distance from user aircraft to this aircraft
                           FLAPS:           Flaps pos is available
                           MC:              No data, for future purposes
                           TW:              Aircraft total weight [lbs] 
                           VER:             Tracker and MSFS version
                           ONLINE:          No data, for future purposes


                        Sample:
                        
                        {
                            "GN": "ssc2",                               
                            "TASK": "Bolzano Dolomiti SE",
                            "WEATHER": "SSC2 08 Clear Sky SE 15kt",
                            "ID": "FELTE",
                            "CONFIG": 0,
                            "ITEMS": [{
                                    "CMD": "",
                                    "SECRET": "",
                                    "GN": "ssc2",
                                    "ID": "FELTE",
                                    "NAME": "Felte",
                                    "AC": "AS-33me",
                                    "MODEL": "AS-33me",
                                    "TH": 0.8,
                                    "LON": 0.013974836799020448,
                                    "LAT": 0.0004074412919623835,
                                    "IAS": 0.0,
                                    "TAS": 0.0,
                                    "GS": 0.0,
                                    "LV": 0.0,
                                    "VS": 0.0,
                                    "WD": 270.0,
                                    "WV": 12.5,
                                    "MSL": 1.0,
                                    "AGL": 1.0,
                                    "TSK_TIME": 0.0,
                                    "TSK_AVG": 0.0,
                                    "TSK_AVG_PATH": 0.0,
                                    "TSK_NEXT": "Start",
                                    "TSK_DIS": 93.9,
                                    "TSK_DIS_PATH": 0.0,
                                    "TSK_DIS_ALL": 0.0,
                                    "TSK_DIS_WP": 2852.5,
                                    "TSK_ONGROUND": 0,
                                    "TSK_SLEWT": 0,
                                    "TSK_ENG": 0,
                                    "DIS": 0.0,
                                    "FLAPS": "1",
                                    "MC": 0.0,
                                    "TW": 1208.0,
                                    "VER": "0.5.4.0|MSFS2020",
                                    "ONLINE": 0.0
                                }
                            ]
                        }
                      



                    

How to retrieve current flightplan .pln data

If a flightplan/task is active you get it in MSFS xml format using http://localhost:55055/activetaskpln or http://[your-pc-name]:55055/activetaskpln.

How to retrieve current parsed B21 flightplan in json format

If a flightplan/task is active you can get it in JSON format using http://localhost:55055/activetask or http://[your-pc-name]:55055/activetask.
This format includes the ready to use parsed task data, which can be planned in the B21 Task Planner
This task data values will be updated in a running task every second.

Sample:



                {
                    "DefaultWaypointRadius": 500,
                    "DefaultSimbriefWaypointRadius": 2000,
                    "Name": "Bolzano Dolomiti Airport",
                    "GN": "ssc2",
                    "DepartureID": "LIPB",
                    "DepartureName": "Bolzano Dolomiti Airport",
                    "DeparturePosition": "1",
                    "DestinationID": "LIPB",
                    "DestinationName": "Bolzano Dolomiti Airport",
                    "NextWPIndex": 1,
                    "StartWPIndex": 1,
                    "FinishWPIndex": 4,
                    "StartTime": "0001-01-01T00:00:00",
                    "TimeMin": 0,
                    "DistanceAll": 0.0,
                    "DistanceReal": 0.0,
                    "DistanceAATMin": 0.0,
                    "DistanceAATMax": 0.0,
                    "TimeFinished": 0.0,
                    "Distance": 173906.5768361785,
                    "IsEmpty": false,
                    "IsStarted": false,
                    "IsFinished": false,
                    "IsAATTask": false,
                    "IsSlewt": false,
                    "IsEngine": false,
                    "IsOnGround": false,
                    "Version": "0.5.4.0|MSFS2020",
                    "Waypoints": [
                        {
                            "Name": "Bolzano Dolomiti Airport",
                            "Type": "User",
                            "ICAO": "LIPB",
                            "Runway": "1",
                            "Location": {
                                "Latitude": 46.46011388888889,
                                "Longitude": 11.326402777777778,
                                "Altitude": 0.0
                            },
                            "LocationMin": {
                                "Latitude": 46.46011388888889,
                                "Longitude": 11.326402777777778,
                                "Altitude": 0.0
                            },
                            "LocationMax": {
                                "Latitude": 46.46011388888889,
                                "Longitude": 11.326402777777778,
                                "Altitude": 0.0
                            },
                            "LocationReal": {
                                "Latitude": 46.46011388888889,
                                "Longitude": 11.326402777777778,
                                "Altitude": 0.0
                            },
                            "Elevation": 237.74399239219225,
                            "Radius": 0.0,
                            "MinAlt": 0.0,
                            "MaxAlt": 0.0,
                            "IsStart": false,
                            "IsFinish": false,
                            "IsAATWP": false,
                            "IsInAATRadius": false,
                            "IsDone": false,
                            "DistanceTo": 0.0,
                            "BearingTo": 0.0
                        },
                        {
                            "Name": "Start",
                            "Type": "User",
                            "ICAO": "S0LZ0P08",
                            "Runway": "",
                            "Location": {
                                "Latitude": 46.51068333333333,
                                "Longitude": 11.240388888888888,
                                "Altitude": 0.0
                            },
                            "LocationMin": {
                                "Latitude": 46.51068333333333,
                                "Longitude": 11.240388888888888,
                                "Altitude": 0.0
                            },
                            "LocationMax": {
                                "Latitude": 46.51068333333333,
                                "Longitude": 11.240388888888888,
                                "Altitude": 0.0
                            },
                            "LocationReal": {
                                "Latitude": 46.51068333333333,
                                "Longitude": 11.240388888888888,
                                "Altitude": 0.0
                            },
                            "Elevation": 241.09679228490266,
                            "Radius": 2500.0,
                            "MinAlt": 0.0,
                            "MaxAlt": 1219.1999609856014,
                            "IsStart": true,
                            "IsFinish": false,
                            "IsAATWP": false,
                            "IsInAATRadius": false,
                            "IsDone": false,
                            "DistanceTo": 8653.636913006078,
                            "BearingTo": 310.52413927258899
                        },
                        {
                            "Name": "WP 1",
                            "Type": "User",
                            "ICAO": "C7TP0A00",
                            "Runway": "",
                            "Location": {
                                "Latitude": 46.57042777777778,
                                "Longitude": 10.288333333333334,
                                "Altitude": 0.0
                            },
                            "LocationMin": {
                                "Latitude": 46.57042777777778,
                                "Longitude": 10.288333333333334,
                                "Altitude": 0.0
                            },
                            "LocationMax": {
                                "Latitude": 46.57042777777778,
                                "Longitude": 10.288333333333334,
                                "Altitude": 0.0
                            },
                            "LocationReal": {
                                "Latitude": 46.57042777777778,
                                "Longitude": 10.288333333333334,
                                "Altitude": 0.0
                            },
                            "Elevation": 3090.976701088746,
                            "Radius": 1000.0,
                            "MinAlt": 0.0,
                            "MaxAlt": 0.0,
                            "IsStart": false,
                            "IsFinish": false,
                            "IsAATWP": false,
                            "IsInAATRadius": false,
                            "IsDone": false,
                            "DistanceTo": 73070.14425006564,
                            "BearingTo": 275.55819259250998
                        },
                        {
                            "Name": "WP 2",
                            "Type": "User",
                            "ICAO": "D4QS0K00",
                            "Runway": "",
                            "Location": {
                                "Latitude": 46.264355555555557,
                                "Longitude": 10.599063888888889,
                                "Altitude": 0.0
                            },
                            "LocationMin": {
                                "Latitude": 46.264355555555557,
                                "Longitude": 10.599063888888889,
                                "Altitude": 0.0
                            },
                            "LocationMax": {
                                "Latitude": 46.264355555555557,
                                "Longitude": 10.599063888888889,
                                "Altitude": 0.0
                            },
                            "LocationReal": {
                                "Latitude": 46.264355555555557,
                                "Longitude": 10.599063888888889,
                                "Altitude": 0.0
                            },
                            "Elevation": 1873.910340034869,
                            "Radius": 2000.0,
                            "MinAlt": 0.0,
                            "MaxAlt": 0.0,
                            "IsStart": false,
                            "IsFinish": false,
                            "IsAATWP": false,
                            "IsInAATRadius": false,
                            "IsDone": false,
                            "DistanceTo": 41513.24303334908,
                            "BearingTo": 144.89948444622599
                        },
                        {
                            "Name": "Finish",
                            "Type": "User",
                            "ICAO": "F0KZ0K00",
                            "Runway": "",
                            "Location": {
                                "Latitude": 46.451838888888897,
                                "Longitude": 11.32335,
                                "Altitude": 0.0
                            },
                            "LocationMin": {
                                "Latitude": 46.451838888888897,
                                "Longitude": 11.32335,
                                "Altitude": 0.0
                            },
                            "LocationMax": {
                                "Latitude": 46.451838888888897,
                                "Longitude": 11.32335,
                                "Altitude": 0.0
                            },
                            "LocationReal": {
                                "Latitude": 46.451838888888897,
                                "Longitude": 11.32335,
                                "Altitude": 0.0
                            },
                            "Elevation": 230.12399263603224,
                            "Radius": 2000.0,
                            "MinAlt": 0.0,
                            "MaxAlt": 0.0,
                            "IsStart": false,
                            "IsFinish": true,
                            "IsAATWP": false,
                            "IsInAATRadius": false,
                            "IsDone": false,
                            "DistanceTo": 59323.18955276376,
                            "BearingTo": 69.17874051420199
                        },
                        {
                            "Name": "Bolzano Dolomiti Airport",
                            "Type": "User",
                            "ICAO": "LIPB",
                            "Runway": "",
                            "Location": {
                                "Latitude": 46.46011388888889,
                                "Longitude": 11.326402777777778,
                                "Altitude": 0.0
                            },
                            "LocationMin": {
                                "Latitude": 46.46011388888889,
                                "Longitude": 11.326402777777778,
                                "Altitude": 0.0
                            },
                            "LocationMax": {
                                "Latitude": 46.46011388888889,
                                "Longitude": 11.326402777777778,
                                "Altitude": 0.0
                            },
                            "LocationReal": {
                                "Latitude": 46.46011388888889,
                                "Longitude": 11.326402777777778,
                                "Altitude": 0.0
                            },
                            "Elevation": 237.74399239219225,
                            "Radius": 0.0,
                            "MinAlt": 0.0,
                            "MaxAlt": 0.0,
                            "IsStart": false,
                            "IsFinish": false,
                            "IsAATWP": false,
                            "IsInAATRadius": false,
                            "IsDone": false,
                            "DistanceTo": 948.7507281392525,
                            "BearingTo": 14.258728612977962
                        }
                    ]
                }
            

How to set a group shared flightplan/task from a third-party app

Send a POST request with following JSON data format to http://localhost:55055/settask or http://[your-pc-name]:55055/settask to upload and share a task/flightplan to a group.
It is required to set a group secret in the Tracker app beforehand.

(CMD, GN, SECRET, TASK, TASKDATA is mandatory, other values are optional)


                   {
                    "CMD": "UPLOAD",
                    "GN": "[GROUPNAME]",                    
                    "SECRET": "[GROUP SECRET]",
                    "TASK": "[TASK NAME]",
                    "TASKDATA": "[.PLN XML CONTENT]",
                    "TASKINFO": "[URL]",
                    "WEATHER": "[WEATHER PRESET NAME]",
                    "WEATHERDATA": "[.WPR XML CONTENT]"
                    }
                

How to set a user flightplan/task from a third-party app

Send a POST request with following JSON data format to http://localhost:55055/settask or http://[your-pc-name]:55055/settask to upload and share a task/flightplan to a group.

(CMD, TASK, TASKDATA is mandatory, other values are optional)


                   {
                    "CMD": "SET",
                    "GN": "[GROUPNAME]",                    
                    "TASK": "[TASK NAME]",
                    "TASKDATA": "[.PLN XML CONTENT]",
                    "TASKINFO": "[URL]",
                    "WEATHER": "[WEATHER PRESET NAME]",
                    "WEATHERDATA": "[.WPR XML CONTENT]"
                    }