Jump to content

Better Addon Management


Recommended Posts

This is a series of suggestions with the idea of having better support for addons. The end goals are:

  • Allow addons to be enabled or disabled per-save
  • Allow addon configuration to be per-save and solve the "multiple installs required for multiple addon setups" dilemma
  • See metadata of all installed addons (whether enabled or disabled) at-a-glance (author, license, version, etc)
  • Allow addons to declare dependencies/optional dependencies on other addons

Some of it is loosely based on the addon support in WoW (mainly the concept of addons having a manifest of sorts and an interface for selecting/deselecting them for load). Also it's probably a fairly significant overhaul, but I'm crossing my fingers for it someday (distant future?) anyways ;), even if a stripped-down version.

Part 1: Addon Manifest File

This is a small per-addon file that lives in its root directory (e.g. Gamedata/Addon/manifest.cfg) that provides the following information:

  • Name of the add-on (required)
  • Short description
  • Author
  • License (required)
  • URL
  • Addon version
  • Supported KSP version (required)
  • Required dependencies (must be loaded before this addon loads), optional dependencies (load before this addon loads if they are available), and Incompatible With (advisory "Hey, these two addons don't work together" option).
  • Optional metadata

This manifest file enables an at-a-glance view of all installed addons, their versions, and whether they're compatible with the current version of KSP. It also opens up the possibility of an addon updater -- either official or third-party. The "Optional metadata" section is intended primarily for future third-party use -- e.g. perhaps in conjunction with one of said addon updaters.

Requiring the "License" field helps maintain the current forum requirements of no downloads without a license. It might simply be "GPLv3" or "CC-BY-SA" or can be as complicated as "See included license.txt file"

Part 2: The glue that makes it all work

Skip loading all addon information (DLLs, part configs, etc) when starting KSP, except for manifests.

The list of enabled addons is saved per game.

When starting a new game, have a new "Addons" button which opens a list of all installed addons and allows them to be enabled/disabled individually for that game. Clicking on an addon shows the author/title/description/license/URL. Clicking the URL opens that website (probably Kerbal Space Port or a forum thread here) in the default browser. If the addon has a 'license.txt' file in the root, clicking on the license displays it. Addons that are out-of-date (wrong KSP version in manifest), are missing a license, or are missing a required dependency can all be denoted here. (If there's a minor bugfix update to KSP, it can still consider addons prior to the bugfix update as "current"). If two addons are both enabled and either lists the other as incompatible, this should also be indicated. Users should still be able to try to enable any addon that fails any of these requirements ("So this part pack hasn't been updated in 6 months but still works fine and I want to use it"). Addons lacking a manifest file entirely (e.g. any addon prior to this system being introduced) are also considered out-of-date.

At the "Resume Saved" screen, have the option to view/adjust the list of addons that game is using. If any addons it uses are not available or out-of-date, warn the user before starting the game.

When actually starting the game, load all enabled addons, etc., and such. This means that the normal loading time when starting KSP is mostly offloaded to when loading a game. Since addons are per-game, actions like quickload, revert, etc. shouldn't require a full loading phase and should take roughly the same amount of time as they do now.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...