Sky Dolly - The Black Sheep for your Flight Recordings
Sky Dolly records and replays simulation variables such as the aircraft position and attitute and basic flight controls such as rudder, ailerons, elevators, flaps and gear position. The record frequency can be specified (and even changed during recording), in order to minimise the amount of recorded data. An "auto" sample rate records values as they become available (for each "simulated frame" event). The replay speed ("slow motion", "timelapse") can also be adjusted.
This external application connects with the flight simulator via the SimConnect API, a standard API introduced with FSX back in the days.
Note that thanks to an interpolation algorithm even low sampling rates such as 1 Hz result in smooth replay, especially for airliners. For "acrobatic flying" the "auto" sample rate is recommended, in order to accurately capture every flight maneuver.
Sky Dolly can replay flights with multiple aircraft ("formation"). The number of aircraft is technically unlimited, but possibly limited by CPU, RAM and especially your patience. But flights with 30+ aircraft do not seem to slow down the system.
During recording the previously recorded aircraft are replayed - so you know exactly where your aircraft is in relation to the formation flight.
"Multiplayer formation flights" are supported by adding the imported CSV aircraft data to an existing flight. Each aircraft can then manually synchronised (depending on when each pilot hit the "Record" button) with the other aircraft, by adding or subtracting a time offset.
Import & Export Plugins
Various file formats can be imported or exported:
- 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)
Note that this is an early pre-release version 0.12. While it should run stable and all its present features should work as intended it is far from feature complete. Release 0.12 provides a new module plugin architecture and a new Location module that allows to capture and teleport to locations. Coordinates can also be copy & pasted (with CTRL + V) into the Location module table.
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 (e.g. 0.10 or 0.11) 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
- 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 by the most recent v0.12.0 release, 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.)