Settings - add-ons/best-practices GitHub Wiki

In general it is better to make good default choices, rather than add options for every choice. However, there are situations where people tend to have different situations (i.e. performance-wise) or use-cases that require settings to differentiate.

  • Create distinct categories for your add-on settings, and move "expert" settings to its own category (i.e. Troubleshooting). Typically these would be:

    • Credentials - User credentials and anything that relates to logging in (i.e. default profile etc)
    • Interface - Influences the user interface (i.e. listings, fanart, colouring, items per page)
    • Playback - Influencing content playback (i.e. DRM, subtitles, etc.)
    • Integration - Affecting integration with other add-ons (i.e. IA, YouTube, Up Next, IPTV Manager)
    • Troubleshooting - Affecting internals and logging (i.e. InputStream Helper info, clearing tokens or caches, log level)
  • Make use of line separators (lsep) to subdivide categories

    • The Playback section could be subdivided in a Subtitles and a Streaming subsection
    • The Troubleshooting section could be subdivided in a Streaming, Cache and Log level subsection
  • Use brackets and gray colour for additional information related to the setting

  • In case add-on settings override global settings (i.e. inputstream.adaptive.max_bandwidth) indicate this in gray color or in the help text

    • Maximum bandwidth in kbps (overrides Kodi and IA settings)

  • If your setting opens another dialog, or closes the settings after activating, indicate this with an ellipsis (…)

    • Note that his is a single unicode character, not three dots