Sky Dolly - The Black Sheep for Your Flight Recordings
Sky Dolly is an external, stand-alone application that let's you record and replay your flights in Microsoft Flight Simulator (MSFS). It can also simultaneously replay previously recorded aircraft during recording, making it in effect possible to "iteratively record your own formation flights".
Recording supports multiple sample rates, from 1 Hz up to "auto" ("as data becomes available"). In any case the aicraft position data is interpolated (with cubic Hermite splines), resulting in a smooth flight path.
Recording and replay is done by storing so-called simulation variables that represent the aircraft state. Sky Dolly connects with the flight simulator via the SimConnect API, a standard API introduced with FSX back in the days.
A plugin-based architecture makes Sky Dolly extendable with new functionality, while at the same time reducing the memory footprint (RAM) to a minimum. The following plugins - or modules - are currently available:
- Logbook - all your flights are automatically stored in the logbook and can be loaded with a single mouse-click. In fact, the underlying storage is an SQL database (SQLite), making powerful filter queries possible
- Formation - this module let's you control your aircraft in the formation, set relative positions to each other, or simply join interactively an existing formation flight. Recordings with over 30 aircraft didn't slow down the simulation in any noticeable way (*)
- Location - the location module let's you quickly teleport to the selected location. Besides the position you also get control over the engine state (start, shutdown, keep), making it possible to define your own custom take-off points (for instance custom helipads). Sky Dolly comes with 100 system locations, all finetuned and with verified GPS coordinates. You can easily capture or add your own user locations, e.g. paste any GPS coordinate with CTRL + V into the location table
(*) See known "aircraft jitter" issue below
Import & Export Plugins
Various file formats can be imported or exported:
- SDLOG - Sky Dolly logbook
- CSV - import & export, including formats from flightradar24.com and Flight Recorder and a simple "position & attitude" format
- IGC - International Gliding Commission - import & export
- KLM - import for flightaware.com, flightradar24.com and generic KML, Google Earth export
- GPX - import and export of the GPS exchange format
- JSON - GeoJSON export
- CSV - import & export, including Sky Dolly and Little Navmap formats
For instance you can literally import all world update POIs and airports and more from e.g. here: Little Navmap - MSFS POI Database (made available by Rysatko here on flightsim.to).
Note that this is an early pre-release version. While it should run stable and all its present features should work as intended it is far from feature complete.
⚠️⚠️⚠️ IMPORTANT PATCH RELEASE: 0.15.1 ⚠️⚠️⚠️
Previous patch releases ( < 0.15.1) like the 0.13.1 and the previous 0.15.0 would generate a logbook backup each time the application was started (and if the logbook option "Before migration of an older logbook" is enabled, which is the case by default).
This has been fixed with the 0.15.1 patch relase.
How to reclaim storage space:
- In Sky Dolly: File | Logbook Settings... | Show
- In File Explorer: Open the Backups folder
- Delete any logbook backups that are not required anymore (the file names contain the backup date)
Database Backup and Optimisation
Database backups can be automatically scheduled (once per month, once per week, never, ...) and are done after exiting the Sky Dolly application (where they may also be skipped). Before migration an update is also done. All backup options are now in the File | Logbook Settings... dialog.
By default the backup databases will be located in the same folder as the original "logbook", in a "Backups" subfolder, but can be changed when the Backup dialog shows up.
As flights are recorded and deleted the database file may grow considerably. Unused file space will be reclaimed at some point (by SQLite), but in case many flights have been deleted the database file can be optimised, by the "Optimise" command located in the File menu.
In case you want to still use the previous Sky Dolly versions you may download all previous releases from the github release page (the ZIP archives are identical to the one available here).
The source code may be found at:
Additional usage information (README) and a complete CHANGELOG is also available in the github.com source repository. You may want to compute the SHA-256 checksum of your downloaded ZIP archive and compare it against the SHA-256 checksums published on github.com, to verify the file integrity of your downloaded copy.
Problems can be reported here:
A free github.com account is required though. "Small issues" may also be mentioned in the comment section below.
- Unzip the ZIP archive to any location of your choice
- Run SkyDolly.exe
- Optional: you may associate Sky Dolly "logbooks" (files with the extension *.sdlog) with the Sky Dolly application:
- in File Explorer: right-click on the logbook file and choose "Open with..."
- Select the SkyDolly.exe application
- Make sure to enable the "Always open with..." checkbox
- The default logbook is located at: "c:\Users\[Your Username]\Documents\Sky Dolly\"
- One the *.sdlog files are "associated" with Sky Dolly you can double-click on those files and a new Sky Dolly instance will start and open the selected logbook
- Start a flight in Flight Simulator 2020
- In Sky Dolly, press the "Record" (key R) button
- Stop the recording (either hit key R again, or ESC for "stop")
- Press the "Play" button (spacebar)
- Seek the play position (left and right arrow keys, page up/page down keys)
- Adjust recording sample rates in the settings menu (also during recording)
- Show flight information (key F)
- Hint: press the same key F again to close the flight information dialog
- Show the recorded "simulation variables" (key V)
- Same here: press key V again to close the simulation variables dialog
- Minimise the user interface (key M)
- Hint: Before you minimise the user interface you may also want to hide the replay speed group, in the View menu
- As the "minimal UI" as a "fixed layout" the replay speed group currently cannot be shown/hidden once in this "minimal UI" mode
- Switch between the various modules with the function keys (F1, F2, F3, ...).
Load a Flight
- Select the desired flight in the logbook
- Press the "Load" button (or double-click the row)
- Note: double-clicking its "Title" column will edit the title
Add Aircraft to Existing Flight ("Formation Flying")
- Switch to the Formation module (press F2)
- For each aircraft to be recorded press the "Record" button (press R): the plus (+) sign in the button icon indicates that aircraft will be added to the existing flight
- That's it!
Note again that the existing aircraft will be replayed during recording, so you know exactly where to fly ;)
- To start a new flight simply switch back to the Logbook module (press F1) and press the record button
You may optionally load an existing flight in the Logbook module before switching to the Formation module. Once all aircraft have been added start replay, pause and seek in the timeline as usual.
- Aircraft may be deleted from a flight (but which keeps at least one aircraft)
- The last recorded aircraft becomes the "user aircraft" (the one being followed with the camera in MSFS)
- Before adding a new aircraft you may set its position relative to the current "user aircraft"
- You may switch the "user aircraft" at any time - also during replay!
- Want to fly for yourself together with the formation? Simply select the "Take control" option in order to take control of the recorded user aircraft. Or choose the "Fly with Formation" to join the formation with the currently loaded user aircraft (so you can also join "single aircraft formations" in an ad-hoc manner).
- Disable "crash detection" and "engine/stress failure" options in Flight Simulator 2020 for replay
- While the Sky Dolly 0.14 improves support for 3rd-party aircraft there are still known issues, for example:
- Spoiler handle position is not properly reported (during recording) and hence cannot properly replayed
- Some light switches do have "dependencies" between each other, hence single switches cannot easily be toggled alone (or at all)
- Some simulation variables such as the flaps handle position are updated "in real-time" (e.g. PDMG 737) and hence may temporarily get "out of sync" when seeking quickly back and forth - with repeated seek operations - on the timeline; however during replay those handles should settle again at some point (with the next change event)
- The stock helicopters from the "40th anniversary update" are not yet fully supported: while position replay works fine, not all flight controls (handles) are fully recorded. Most importantly, both stock helicopters fail to be created when trying to instantiate them as AI aircraft (server exception 22 = "create object failed"), making them "invisible" in formation flights
- Asobo has confirmed that "helicopter traffic" is not yet supported by MSFS: this implies that helicopter models (as of the "40th anniversary update") cannot be spawned as AI aircraft either
- Aircraft in formation flights - so-called AI aircraft - tend to "jitter" when flying nearby. This also seems to be related to the speed at which the aircraft fly ("the faster the more jittery"). On the other hand the number of aircraft in the formation does not seem to have an impact (the "jitter" effect already appears with 2 aircraft in the formation).
- I do have some ideas how to improve on this, but can only tell once implemented whether my idea will be succesful. In either case I will let you know in which release I succeeded or failed.
- Flights imported from flightaware.com (KML) or flightradar24.com (CSV, KML) often have altitudes not aligned with the MSFS scenery, so aircraft either are below or above the runway when taking off or landing. This is still an open issue and not yet addressed, but it will be addressed together with extended "flight augmentation" in an upcoming release ("still on the roadmap")
- In general while error handling of mal-formed imort files is in place the actual error messages are extremly "generic": "File could not be imported". More detailed error messages may be added in a future update, but for now:
- Make sure that you have selected the proper "flavour" (data source) for a given format
- For instance depending on whether a KML file comes from flightaware.com or flightradar24.com the position data is stored in different "KML elements"
- The generic KML format tries to find a "track" element, but if no such track element is present then the same generic "File could not be imported" error message will be shown (for now)
- In general: if no "position data" (latitude, longitude, optionally altitude) could be found the generic error message will be shown (and also if a "parser error" due to a malformed document is encountered, e.g. an expected number is not in the expected format etc.)