Microsoft Flight Simulator 2020 - Mod Updater

This is an application to make it easy to download or update mods for msfs2020.

Hoster

Hoster Download Updates Login needed?
Static link (check for hash change) no
github.com no
flightsim.to yes

✔️ = Done ⌛ = Work in Progress ❌ = Not implemented

Contribution

Requirements

Because MSFS2020 was developed by Microsoft and is playable only on windows, this application is only built for windows. So you need the following tools for windows. Install the tools and execute the commands in an admin powershell.

In general, you need to setup tauri, so please take a look there to get everything up. Here we will show only some tools with some useful commands you need for a ready-to-go setup.

nvm install lts
nvm use lts
npm install -g yarn

Install also the c++ buildtools (should be top left of the icons)

Project setup

yarn install

Compiles and hot-reloads for development

yarn tauri:serve

Compiles and minifies for production

yarn tauri:build

Lints and fixes files

yarn lint

Customize configuration

See Configuration Reference.

Concepts

Implementations must use 256 and HMAC for signing.

Repositories

The msfs2020 mod community is splitted on different platforms (separate websites, github releases, flightsim.to, etc...), so we need an implementation to support all of this distribution ways. Luckily, this is a common problem for linux OS's, so we can implement a very similar way like they did.

So we will provide a single file as an entry point with a list of all supported repositories for different mod providers, we work with. But the user can add own repositories on their own risk. We will need to support json and yaml format for the repositories.

repositories.yaml

fieldname description required
sign The signature of this file to verify the content. The installer holds the public_key and the private_key will be used within the ci/cd pipeline. ✔️
created_at The datetime this file was created at. Format: rfc2822 ✔️
providers A list of providers. (Fields of a provider will be shown later.) ✔️

Fields of a provider

fieldname description required
name A descriptive name for this repository and will be used to show a name for this entry ✔️
key Must be unique in this file of repositories. Will be used for identify entries. ✔️
notice A description which can be used to describe the content of the repository. Defaults to empty string. Supports multiline strings.
repository The url for the repository. The filecontent needs to be yaml or json. No checks against filenaming. ✔️
public_key The public_key to validate the sign value, which will be shown in the linked repository file. Key will be generated by the mod providers.

Example

sign: AXZZZZZZZZAAAAAXXXXCCZZZZAAAXXXXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCCZZZZZZZZZZZZZZZ
created_at: 2021-11-19 08:47:57.762365458 UTC
providers:
  - name: Working Title
    key: working-title
    notice: |
      Long long text

      Very long
    repository: https://www.workingtitle.aero/packages/mod-repository.yaml
    public_key: BXZZZZZZZZAAAAAXXXXCCZZZZAAAXXXXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCCZZZZZZZZZZZZZZZ

mod-repository.yaml

fieldname description required
sign The signature of this file to verify the content. Recommended for security.
created_at The datetime this file was created at. Format: rfc2822 ✔️
modifications A list of modifications. (Fields of a modification will be shown later.) ✔️

Fields of a modification

fieldname description required
name A descriptive name for this modification and will be used to show a name for this entry ✔️
key Must be unique in this file of repositories. Will be used for identify entries. ✔️
notice A description which can be used to describe the modifcation. Defaults to empty string. Supports multiline strings.
download_url The url for the modification to download from. The filecontent needs to be zip, rar or 7zip. No checks against filenaming. ✔️
extras If this modification needs extra steps to work, you can specify them here. Defaults to empty list. Extras is so special, we will describe it later.
sign The hash value of the corresponding file for security reasons. Recommended to set for security.

Example

sign: CXZZZZZZZZAAAAAXXXXCCZZZZAAAXXXXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCCZZZZZZZZZZZZZZZ
created_at: 2021-11-19 08:50:57.762365458 UTC
modifications:
    - name: Working Title G3000
      key: g3000
      version: v0.7.6
      sign: ASDDXCYAAAAA
      download_url: https://github.com/Working-Title-MSFS-Mods/fspackages/releases/download/g3000-v0.7.6/workingtitle-g3000-v0.7.6.zip
    - name: Working Title CJ4
      key: cj4
      sign: ASDDXCYAAAAA
      version: v0.12.9
      notice: |
        Working Title CJ4 v0.12.9
        Welcome to the Working Title CJ4 v0.12.9. This version brings compatibility for MSFS Sim Update 7, as well as a number of other enhancements and small fixes.

        Thanks to everyone, as always, for your contributions! We really love working with you all.

        Note about Liveries
        To accommodate for future work on the CJ4 there have been model changes made to the plane in SU7. This means that all liveries that still fully override panel.cfg with their own version (which they really shouldn't) won't work anymore.
        You will notice a bad livery or other mods interferring by having all white screens in the cockpit.

        Liveries should use the method as described in our Repainter's Guide.
        Many liveries already use that method and should work alright after the update.

        READ THE GUIDE
        Please, please, please read the operators guide for instructions on using features. A lot of hard work went into writing the guide and the Discord channels are clogged with questions that are readily answered in the guide.

        GUIDES: https://www.workingtitle.aero/packages/cj4/guides/

        Installation
        Installation is easy, simply copy the workingtitle-aircraft-cj4 folder inside the zip file to your MSFS Community folder.

        Important: We recommend that you fully delete the previous workingtitle-aircraft-cj4 folder before copying this release.

        General Changes
        SU7 Compatibility
        Adjustments to default screen brightness. (Thanks @charles-vomacka)
        Improved stroke fix for some cyan text displays on the PFD to make them more readable. (Thanks @charles-vomacka)
        Fix COM switch buttons on the audio panel.
        FMS now also accepts input from Co-Pilot keypad.
        ⚠️ Known Issues
        Wing Light Button does not light up.
        The Lower CCP LONG Press does not work for reselecting charts - we will look further at this.
        B/C button throws an error in the FMC - do not use B/C for now.
        Some "lettered" or non-runway-specific approaches now appear as something like RNAV A - 00 and do not allow the selection of a landing runway, preventing using the Approach Refs page - this is something we will be working to address in the future.
        Some external applications that use the GPS/Flight plan SimVars may not function correctly or as expected when FP Sync is off.
        Loading and saving flights can have bad results.
        Custom liveries can render FADEC inoperative if they ship with a panel.cfg. Painters should reference our new Repainter's Guide for solutions.
        Autopilot modes cannot be triggered via key bindings or controllers and must currently be triggered in the cockpit with the mouse. External binding applications are adding support for LVars and HEvents. Used SimVars are documented in our Guide on SimVars.
        Sometimes a heading to altitude instruction on takeoff will display further than the first RNAV fix on an RNAV departure procedure; in these cases the workaround is to cross-check the DP chart and remove the erroneous waypoint either by deleting the heading to altitude fix or dropping the first RNAV fix onto the magenta line in the LEGS page.
        Due to sim autopilot bank rate limitations, the aircraft may overshoot on certain RNP approaches with tight turns. If you encounter this, we recommend hand flying the approach with the given lateral and vertical guidance.
      download_url: https://github.com/Working-Title-MSFS-Mods/fspackages/releases/download/cj4-v0.12.9/workingtitle-cj4-v0.12.9.zip

Extras Field

If your modification needs extra steps to work, you can specify them here. This is a curated list of values. If a value comes up in the extras field, you need to specify this field as a standalone field. The following example shows this. Every value can behave differently. Here in the example it is the dependencies field.

Example

sign: CXZZZZZZZZAAAAAXXXXCCZZZZAAAXXXXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCCZZZZZZZZZZZZZZZ
created_at: 2021-11-19 08:50:57.762365458 UTC
modifications:
    - name: Working Title G3000
      key: g3000
      version: v0.7.6
      download_url: https://github.com/Working-Title-MSFS-Mods/fspackages/releases/download/g3000-v0.7.6/workingtitle-g3000-v0.7.6.zip
      sign: ASDDXCYAAAAA
      extras:
        - dependencies
      dependencies:
        - name: cj4
          version: ">= v0.12.9"
          # version: "== v0.12.9"
          # version: "*"
    - name: Working Title CJ4
      key: cj4
      version: v0.12.9
      sign: ASDDXCYAAAAA
      download_url: https://github.com/Working-Title-MSFS-Mods/fspackages/releases/download/cj4-v0.12.9/workingtitle-cj4-v0.12.9.zip

Available fields

  • dependencies
  • manual_config
dependencies

This is a simple dependency graph, so we can implement complex implementation steps.

Important: The dependency will only be resolved within the same repository. Maybe later you can depend on other repositories.

field description required
name The referred key value to depend on ✔️
version If you need a specific version, you can define it here. Defaults to *, so we search to any version.

If the version cannot be fulfilled within this repository, we will abort an installation process. Because of this, we will check for dependency loops before any installation steps.

manual_steps

If you need to make manual steps to use, use this value. This extra specifies, that the user needs to make some manual inputs, for example open a config file or move a file to another place.

Important: The concept of this field is not completed.

field description required
title A title for this step. ✔️
notice A description about this step. Will be shown to the user, so you can say what they need to do. ✔️

This mod will support some placeholders.

name description
installation_path The folder where the downloaded file will be installed / unpacked.
download_path The file where the downloaded file will be placed.

Example

sign: CXZZZZZZZZAAAAAXXXXCCZZZZAAAXXXXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCCZZZZZZZZZZZZZZZ
created_at: 2021-11-19 08:50:57.762365458 UTC
modifications:
    - name: Working Title G3000
      key: g3000
      version: v0.7.6
      download_url: https://github.com/Working-Title-MSFS-Mods/fspackages/releases/download/g3000-v0.7.6/workingtitle-g3000-v0.7.6.zip
      extras:
        - manual_steps
      manual_steps:
        - title: Configuration
          notice: |
Please open the following folder {installation_path} and edit the config page.