<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://kodi.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ThumbOne</id>
	<title>Official Kodi Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://kodi.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ThumbOne"/>
	<link rel="alternate" type="text/html" href="https://kodi.wiki/view/Special:Contributions/ThumbOne"/>
	<updated>2026-06-15T14:34:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://kodi.wiki/index.php?title=Language_support&amp;diff=215241</id>
		<title>Language support</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Language_support&amp;diff=215241"/>
		<updated>2020-07-10T08:03:13Z</updated>

		<summary type="html">&lt;p&gt;ThumbOne: /* What is strings.po */ Adding clarifications from https://forum.kodi.tv/showthread.php?tid=355578  (a first cut for now)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]{{l2|[[Add-on development]]}}}}&lt;br /&gt;
&lt;br /&gt;
{{cleanup}}&lt;br /&gt;
The following page explains exactly how to add a new language translation to Kodi, and how to maintain/update an existing language file in Kodi. English (United Kingdom) is the default language of Kodi so it is the English language in the Git repository that is always up-to-date, please always base your translations of the latest English language file from Git. The latest language files for Kodi can be found and downloaded [https://github.com/xbmc/xbmc/tree/master/language here (link)].&lt;br /&gt;
&lt;br /&gt;
=== Language add-ons ===&lt;br /&gt;
By default Kodi only includes one language which is English (united Kingdom). All other languages have been moved to individual language add-ons which are available form our Kodi repository for download and install. They are auto update by Team Kodi once in a while and pushed to our repository from which you will receive these updates depending on what language(s) you have installed.&lt;br /&gt;
&lt;br /&gt;
=== What is langinfo.xml ===&lt;br /&gt;
The langinfo.xml file contains language and region specific localization settings used internally by Kodi. Basically it is the default [http://en.wikipedia.org/wiki/Code_page code page] Kodi uses for this language file.&lt;br /&gt;
&lt;br /&gt;
==== Layout of a langinfo.xml file ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;language&amp;gt;&lt;br /&gt;
    &amp;lt;charsets&amp;gt;&lt;br /&gt;
      &amp;lt;gui&amp;gt;GB2312&amp;lt;/gui&amp;gt;&lt;br /&gt;
      &amp;lt;subtitle&amp;gt;GB2312&amp;lt;/subtitle&amp;gt;&lt;br /&gt;
    &amp;lt;/charsets&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;dvd&amp;gt;&lt;br /&gt;
      &amp;lt;menu&amp;gt;cn&amp;lt;/menu&amp;gt;&lt;br /&gt;
      &amp;lt;audio&amp;gt;cn&amp;lt;/audio&amp;gt;&lt;br /&gt;
      &amp;lt;subtitle&amp;gt;cn&amp;lt;/subtitle&amp;gt;&lt;br /&gt;
    &amp;lt;/dvd&amp;gt;&lt;br /&gt;
  &amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;charset&amp;gt; section:&lt;br /&gt;
&amp;lt;gui&amp;gt;: Specifies the character encoding of everything within Kodi that is not unicode. E.g. id3 tags with none unicode encoding.&lt;br /&gt;
&amp;lt;subtitle&amp;gt;: Default character encoding of subtitles when using a TTF (True-Type-Font).&lt;br /&gt;
Choose one encoding for each in the list below. The values may differ if you like.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The &amp;lt;dvd&amp;gt; section:&lt;br /&gt;
Defines the default languages for DVD-Video menu, audio and subtitle language for the [[DVDPlayer]]. Choose one for each entry out of the list of ISO-639 language abbreviations. If the DVD-Video you are playing does not support the language that you specified then it will default to English.&lt;br /&gt;
&lt;br /&gt;
=== What is strings.po ===&lt;br /&gt;
This files contains all strings displayed in the user interface of Kodi.&lt;br /&gt;
&lt;br /&gt;
==== Layout of the strings.po file ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
# Kodi Media Center language file&lt;br /&gt;
# Addon Name: Skin Widgets&lt;br /&gt;
# Addon id: service.skin.widgets&lt;br /&gt;
# Addon Provider: Martijn, phil65&lt;br /&gt;
msgid &amp;quot;&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;quot;Project-Id-Version: Kodi Addons\n&amp;quot;&lt;br /&gt;
&amp;quot;Report-Msgid-Bugs-To: alanwww1@kodi.org\n&amp;quot;&lt;br /&gt;
&amp;quot;POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n&amp;quot;&lt;br /&gt;
&amp;quot;PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n&amp;quot;&lt;br /&gt;
&amp;quot;Last-Translator: Kodi Translation Team\n&amp;quot;&lt;br /&gt;
&amp;quot;Language-Team: English (http://www.transifex.com/projects/p/xbmc-addons/language/en/)\n&amp;quot;&lt;br /&gt;
&amp;quot;MIME-Version: 1.0\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Type: text/plain; charset=UTF-8\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Transfer-Encoding: 8bit\n&amp;quot;&lt;br /&gt;
&amp;quot;Language: en\n&amp;quot;&lt;br /&gt;
&amp;quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32001&amp;quot;&lt;br /&gt;
msgid &amp;quot;Recommended&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32002&amp;quot;&lt;br /&gt;
msgid &amp;quot;Random Items&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# empty string with id 32003&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32004&amp;quot;&lt;br /&gt;
msgid &amp;quot;Randomize time (minutes)&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32005&amp;quot;&lt;br /&gt;
msgid &amp;quot;Use season folders&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a format defined by [https://www.gnu.org/software/gettext/ GNU gettext] but adapted in a very specific way by Kodi. The blocks of 3 settings in the example above are defined by GNU gettext as:&lt;br /&gt;
&lt;br /&gt;
 msgctxt &#039;&#039;context&#039;&#039;&lt;br /&gt;
 msgid &#039;&#039;untranslated-string&#039;&#039;&lt;br /&gt;
 msgstr &#039;&#039;translated-string&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Where the text is defined by &#039;&#039;untranslated-string&#039;&#039; and &#039;&#039;context&#039;&#039; serves to differentiate identical values.&lt;br /&gt;
&lt;br /&gt;
Take note, in Kodi, these are used as follows:&lt;br /&gt;
&lt;br /&gt;
 msgctxt &amp;quot;#&#039;&#039;label_id&#039;&#039;&amp;quot;&lt;br /&gt;
 msgid &#039;&#039;label_text&#039;&#039;&lt;br /&gt;
 msgstr &#039;&#039;translation&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;label_id&#039;&#039; is a numeric ID. These IDs are reserved by Kodi:&lt;br /&gt;
&lt;br /&gt;
* strings 30000 thru 30999 reserved for plugins and plugin settings&lt;br /&gt;
* strings 31000 thru 31999 reserved for skins&lt;br /&gt;
* strings 32000 thru 32999 reserved for scripts&lt;br /&gt;
* strings 33000 thru 33999 reserved for common strings used in add-ons&lt;br /&gt;
&lt;br /&gt;
and are used in [[Add-on_settings_conversion|settings.xml]] to label settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;label_text&#039;&#039; defines the English text for the label.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;translation&#039;&#039; is empty for &amp;quot;en_GB&amp;quot; labels, and the translation for other languages with msgid retaining the English text.&lt;br /&gt;
&lt;br /&gt;
The important thing is that you cannot refer to the label with msgid in the settings.py file, you need to use the &#039;&#039;label_id&#039;&#039; which must be encoded in msgctxt as above.&lt;br /&gt;
&lt;br /&gt;
You can of course edit .po files in a text editor or with a specialist editor. There is a tool that will help converting old settings.xml files to the settings.po format:&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/ronie/script.language-convert&lt;br /&gt;
&lt;br /&gt;
==== Layout of the language folders ====&lt;br /&gt;
&lt;br /&gt;
Kodi loads the strings.po file depending on the set interface language. Should it find a matching language it will try to load that strings.po. If not available it will always fall back to English (United Kingdom).&lt;br /&gt;
For this to work you will need to place the strings.po in the correctly named folder depending on the language. These folders use &amp;quot;language-country&amp;quot; naming scheme. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
/resources/language/resource.language.en_gb/strings.po&lt;br /&gt;
/resources/language/resource.language.fr_fr/strings.po&lt;br /&gt;
/resources/language/resource.language.it_it/strings.po&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An extensive example list of used languages can be found here https://github.com/xbmc/xbmc/tree/master/addons/skin.estuary/language&lt;br /&gt;
&lt;br /&gt;
==== Layout of the old strings.xml file ====&lt;br /&gt;
&lt;br /&gt;
{{warning|1=Strings.xml support was completely removed from v19 Matrix. Addons should update and comply to the strings.po file from now on.}} &lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;strings&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32001&amp;quot;&amp;gt;Recommended&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32002&amp;quot;&amp;gt;Random Items&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32003&amp;quot;&amp;gt;Only unplayed&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32004&amp;quot;&amp;gt;Randomize time (minutes)&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32005&amp;quot;&amp;gt;Use season folders&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32006&amp;quot;&amp;gt;Use timer&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32007&amp;quot;&amp;gt;After database update&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32008&amp;quot;&amp;gt;Update method&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32009&amp;quot;&amp;gt;Recent Items&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/strings&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each string is enclosed in a &amp;lt;string&amp;gt; tag. It contains a tag named id=&amp;quot;32001&amp;quot; with a number Kodi uses to reference a string internally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint: Multi-Line Text-Values&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want your text-values to span multiple lines, you can insert a new line character [br] in your tag. Although we highly discourage this as it could cause skin problems as not all text boxes have enough room to display these.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;strings&amp;gt;&lt;br /&gt;
       &amp;lt;string id=&amp;quot;32001&amp;quot;&amp;gt;&amp;lt;value&amp;gt;This will be on the first line[br]And this will be on the second line&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/strings&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The encoding attribute of the XML header sets the charset the file is encoded with. See List of charsets of possible values.&lt;br /&gt;
If you don&#039;t know what charset your language uses please follow [http://www.science.co.il/Language/Locale-Codes.asp this link] to find out.&lt;br /&gt;
&lt;br /&gt;
=== String ID range ===&lt;br /&gt;
&lt;br /&gt;
Follow the specified string ID range&lt;br /&gt;
&lt;br /&gt;
* strings 30000 thru 30999 reserved for plugins and plugin settings&lt;br /&gt;
* strings 31000 thru 31999 reserved for skins&lt;br /&gt;
* strings 32000 thru 32999 reserved for scripts&lt;br /&gt;
* strings 33000 thru 33999 reserved for common strings used in add-ons&lt;br /&gt;
&lt;br /&gt;
== Adding a new language to Kodi ==&lt;br /&gt;
&lt;br /&gt;
{{see|Translation System}}&lt;br /&gt;
&lt;br /&gt;
== Maintaining a language ==&lt;br /&gt;
The English (UK) language file ([https://github.com/xbmc/xbmc/blob/master/addons/resource.language.en_gb/resources/strings.po]) is the master for all language files. From time to time the English (UK) language file changes. This will be automatically update from time to time to Transifex translation pages.&lt;br /&gt;
&lt;br /&gt;
How to keep track of changes:&lt;br /&gt;
Use our [[Translation System]]&lt;br /&gt;
&lt;br /&gt;
== Related articles in the Kodi online manual ==&lt;br /&gt;
* [[List of Supported Charsets]]&lt;br /&gt;
* [[List of language codes (ISO-639:1988)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes for developers ==&lt;br /&gt;
Kodi uses UTF-8 as internal character encoding. Please make sure if you add new features to Kodi which depend on external data to convert these to UTF-8 if they aren&#039;t already. Use the languagefile from branches/linuxport, since we merge that file into trunk.&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Skin development]]&lt;br /&gt;
[[Category:Languages|*]]&lt;/div&gt;</summary>
		<author><name>ThumbOne</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=NFO_files&amp;diff=214938</id>
		<title>NFO files</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=NFO_files&amp;diff=214938"/>
		<updated>2020-07-06T02:47:16Z</updated>

		<summary type="html">&lt;p&gt;ThumbOne: /* What is nfo */ Fixed a typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NFO_content}}&lt;br /&gt;
&lt;br /&gt;
{{mininav|[[Video library]] {{l2| [[Music library]] }} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;NFO files are used to populate the music and video library using locally stored information. They are helpful if data for your particular title does not exist, such as for home movies and sporting events. They can also be used to control the search behaviour of scrapers when problematic and ambiguous titles prevent your preferred title from being fetched.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= What is nfo =&lt;br /&gt;
&#039;&#039;&#039;nfo&#039;&#039;&#039; is a contraction of Info or Information. It is a Filename Extension - &#039;&#039;mymovie.nfo&#039;&#039; and the contents of the file are written in [http://en.wikipedia.org/wiki/XML XML]. The file itself does nothing except hold information. It is basically a text document with special tags inserted around the information. These tags are recognised by Kodi which enables data importing. &lt;br /&gt;
&lt;br /&gt;
Kodi uses nfo files as one way of importing metadata into the library. It is also used as a method of exporting the library for various reasons, including backup.  &#039;&#039;&#039;&#039;&#039;See: [[Import-Export_library | Import &amp;amp; Export]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: During the scanning process {{kodi}} always searches for, and uses NFO files first. When NFO files are not found then the scrapers are used to download information from online sources. Be aware of this if you are experiencing unexpected results.&lt;br /&gt;
&lt;br /&gt;
Kodi uses [[Artwork]], and Extended Information to display your media. This information includes Actors, Directors, Plots, Taglines, Ratings, Run Times  and more. All this data, known as metadata, is stored in the Kodi Library. The Library is stored in an [http://www.sqlite.org/ SQLite database].&lt;br /&gt;
&lt;br /&gt;
There are two primary methods to load metadata into your library:&lt;br /&gt;
#Create a nfo file, from which Kodi is able to import the metadata (Primary- nfo files are always searched for)&lt;br /&gt;
#Use the online scraper (Secondary- if no nfo files exist, scrapers are used)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For information on how to use the online scraper within Kodi:&amp;lt;br /&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Adding_music_to_the_library|Adding Music to Library]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Adding_video_sources|Adding Video Sources]]&#039;&#039;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The remainder of this wiki topic will provide the required information to create and use nfo files.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Types of nfo =&lt;br /&gt;
Kodi can use the nfo file in one of three ways depending on the contents of the nfo file, as explained in the following sub-sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Metadata nfo ==&lt;br /&gt;
This is the most common use of the nfo file. The Metadata nfo contains the metadata for the movie/tv show/music video/album/artist within the file. Kodi will scan this file and import its contents into the library.&lt;br /&gt;
&lt;br /&gt;
For more details on creating and using the common Metadata NFO file, see the following sections...&lt;br /&gt;
&lt;br /&gt;
=== Movie nfo ===&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[NFO_files/movies | Movie nfo]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TV Show nfo ===&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[NFO_files/tvshows | TV Show nfo]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Music nfo ===&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[NFO_files/music | Music nfo]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Music Video nfo ===&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[NFO_files/musicvideos | Music Videos nfo]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parsing nfo ==&lt;br /&gt;
A Parsing nfo does not contain any metadata that Kodi can use to import into the library. Instead it contains the URL to the the information at the site of the information provider.&lt;br /&gt;
&lt;br /&gt;
As an example, searching for &#039;&#039;The Mummy&#039;&#039; on [https://www.themoviedb.org/ TMDB] returns 65 titles. If you are attempting to add one of the more obscure versions to your library, chances are that Kodi will scrape the incorrect title. The Parsing nfo offers an easy solution to this problem by pointing {{kodi}} to the correct title.&lt;br /&gt;
&lt;br /&gt;
{{red|&#039;&#039;&#039;Note&#039;&#039;&#039;: Most online Movie and TV Show databases include an IMDB field that contains the IMDB ID. This allows the use of the IMDB address in the Parsing NFO for Movies and TV Shows. This does NOT mean the title will be scraped from IMDB. The scraper simply recognises the &#039;&#039;ttxxxxx&#039;&#039; ID and uses it to search for the title at the online database of the currently active scraper. If your preference is for IMDB data, then you will need to install the appropriate scraper.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To create and use the parsing nfo, follow these steps:&lt;br /&gt;
#Locate the title at the appropriate site of the information provider, eg &#039;&#039;[https://www.themoviedb.org/ TheMovieDB]&#039;&#039;&lt;br /&gt;
#Ensure you have correctly named your media files/folder. See: &#039;&#039;&#039;&#039;&#039;[[Naming_video_files|Kodi naming conventions]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
#Open a text file and copy the entire URL address of the movie from the address bar and paste it into the text file. No tags or code is required. &#039;&#039;See example below&#039;&#039;&lt;br /&gt;
#Save the file and ensure it is correctly named. See the nfo sub-pages listed above for correct naming. &#039;&#039;&#039;Ensure the extension is *.nfo&#039;&#039;&#039; and not &#039;&#039;*.nfo.txt&#039;&#039; or &#039;&#039;*.nfo.doc&#039;&#039;&lt;br /&gt;
#Run an &#039;&#039;Update Library&#039;&#039; or a &#039;&#039;Scan item to library&#039;&#039;. Kodi will parse the URL and locate the title and scrape the correct metadata.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example of Parsing Movie NFO :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
https://www.themoviedb.org/movie/15849-the-mummy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039; &lt;br /&gt;
*Parsing NFO files cannot be used for individual episodes or seasons, they can only be used at the TV Show level. Once the TV Show is found the &amp;lt;episodeguide&amp;gt; URL will then find the episodes.&lt;br /&gt;
*If there is more than one URL in the file only the first URL will be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Combination nfo ==&lt;br /&gt;
It is possible to combine the above two types of nfo files into one nfo file. An example use would be to override data from the scraper site such as the title, runtime, movieset etc. It will scan the metadata located between the &#039;&#039;&amp;lt;movie&amp;gt;&amp;lt;/movie&amp;gt;&#039;&#039; XML tags and the omitted data will be scraped at the provided URL. An example: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Example: Contents of Combination NFO file:&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;movie&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Star Wars (99 second cut)&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;runtime&amp;gt;2&amp;lt;/runtime&amp;gt;&lt;br /&gt;
    &amp;lt;set&amp;gt;Star Wars Saga&amp;lt;/set&amp;gt;&lt;br /&gt;
    &amp;lt;sorttitle&amp;gt;Star Wars 01&amp;lt;/sorttitle&amp;gt;&lt;br /&gt;
    &amp;lt;genre clear=&amp;quot;true&amp;quot;&amp;gt;SciFi&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Romance&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Action&amp;lt;/genre&amp;gt;&lt;br /&gt;
 &amp;lt;/movie&amp;gt;&lt;br /&gt;
 http://www.imdb.com/title/tt0076759/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Various tags allow multiple entries, eg multiple &#039;&#039;&amp;lt;genre&amp;gt;&#039;&#039; and &#039;&#039;&amp;lt;director&amp;gt;&#039;&#039; tags. If you use these tags in a Combination nfo, these tags will have their data &#039;&#039;&#039;added&#039;&#039;&#039; to the scraped entry in the database and, in some cases, may result in duplicate entries. To avoid this, use the &#039;&#039;clear&#039;&#039; attribute to clear out the downloaded metadata for those particular tags. See the &amp;lt;genre&amp;gt; tag in the above example.&lt;br /&gt;
&lt;br /&gt;
A listing of which tags allow multiple entries can be found in the appropriate sub-pages. Does not apply to muic.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039; &lt;br /&gt;
*Combination NFO files cannot be used for individual episodes or seasons, they can only be used at the TV Show level.&lt;br /&gt;
*If there is more than one URL in the file only the first URL will be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Creating nfo =&lt;br /&gt;
The following are the three methods that may be used to create nfo files for Kodi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kodi Created nfo ==&lt;br /&gt;
This option requires that your library has already been scraped with metadata. Using the built in [[Import-export_library| Import &amp;amp; Export]] function of Kodi, you can export the library metadata into individual nfo files  which are correctly created and saved. This is useful if you have an existing library and would like to backup the library or to import the library into another Kodi installation.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Import-export_library| Import &amp;amp; Export]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manual Creation ==&lt;br /&gt;
NFO files are simple text files containing XML tags. Creating your own nfo files is simple, and templates and examples are provided in the sub-pages of this wiki topic. They can be created using a simple text editor such as Notepad in Windows, or the equivelant in other operating systems. There are dedicated code editors that can also be used. They will not provide the required Kodi tags, but they will avoid glitches when saving the nfo file, which is commonly experienced with text editors.&lt;br /&gt;
&lt;br /&gt;
Two common code editors that can be used:&lt;br /&gt;
*[https://notepad-plus-plus.org/ Notepad++]&lt;br /&gt;
*[https://code.visualstudio.com/ Visual Studio Code]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Structure of the nfo file&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
1. The file must be saved as Unicode Transformation Format-8 (UTF-8). The first line of the file will contain the following... &lt;br /&gt;
:&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. The second line and the last line of the file contains the nfo category opening and closing tags. Avaliable category tags are... &lt;br /&gt;
:&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;movie&amp;gt;&amp;lt;/movie&amp;gt;, &amp;lt;tvshow&amp;gt;&amp;lt;/tvshow&amp;gt;, &amp;lt;episodedetails&amp;gt;&amp;lt;/episodedetails&amp;gt;, &amp;lt;artist&amp;gt;&amp;lt;/artist&amp;gt;, &amp;lt;album&amp;gt;&amp;lt;/album&amp;gt; and &amp;lt;musicvideo&amp;gt;&amp;lt;/musicvideo&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Between the opening and closing category tags are the tags for the media metadata. Each tag must have an opening tag and a closing tag. eg...&lt;br /&gt;
:&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;title&amp;gt;Blade Runner 2049&amp;lt;/title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;title&amp;gt; = opening tag &lt;br /&gt;
Blade Runner 2049 = metadata &lt;br /&gt;
&amp;lt;/title&amp;gt; = closing tag&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Available tags are listed in the relevant sub-pages along with a sample and template nfo file.&lt;br /&gt;
&lt;br /&gt;
Once created, the file must be saved with the &#039;&#039;.nfo&#039;&#039; extension in accordance with the details in the relevant sub-pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Media Managers ==&lt;br /&gt;
The Media Manager can create nfo files in one of three ways:&lt;br /&gt;
#Scraping- This is the same process as performed by the Kodi scraper. The Media Manager will fetch metadata from the online scraper site and will create the nfo file which then needs to be scanned into the library, unlike Kodi that imports the metadata directly into the library.&lt;br /&gt;
#Manual- The Media Manager offers an interface that allows you to manually type in the data. &lt;br /&gt;
#Combination- A combination of both methods can be used. If you are not satisfied with the scraped metadata, then you are able to modify it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;MediaManagers&amp;quot; /&amp;gt;The following is a list of Media Managers on the forum. Questions regarding their use should be directed to the media manager developers.&lt;br /&gt;
*[https://forum.kodi.tv/forumdisplay.php?fid=195  Ember Media Manager]&lt;br /&gt;
*[https://forum.kodi.tv/showthread.php?tid=142723  Tiny Media Manager aka TMM]&lt;br /&gt;
*[https://forum.kodi.tv/showthread.php?tid=129134  Media Companion 3]&lt;br /&gt;
*[https://forum.kodi.tv/showthread.php?tid=136333  MediaElch]&lt;br /&gt;
&lt;br /&gt;
Be aware there are many other media managers available that claim to be Kodi compatible but have not been updated in many years, and are clearly not compatible. Use of these incompatible media managers can break your library and require rebuilding using the {{kodi}} scrapers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{red|&#039;&#039;&#039;Note&#039;&#039;&#039;: While Media Managers offer some level of control, there are limitations with their use. {{Kodi}} is in a constant state of development. Changes to allow new types of data or features into the library must be expected. Media Managers are known to be slow in catching up to these changes and, in many instances, these changes are never incorporated. No media manager is 100% Kodi compatible.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;{{red|Kodi can create correct and accurate NFO&#039;s from the data already in the library which has been populated by a correct scraping process.}}&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;section end=&amp;quot;MediaManagers&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scanning nfo files =&lt;br /&gt;
There is no special procedure to scrape nfo files. Performing the usual &#039;&#039;&#039;&#039;&#039;[[Updating_or_removing_videos|Library Update]]&#039;&#039;&#039;&#039;&#039;, or selecting &#039;&#039;&#039;&#039;&#039;[[Updating_or_removing_videos#Refresh_Library|Refresh]]&#039;&#039;&#039;&#039;&#039; for individual items, will scan the nfo files into the library. &lt;br /&gt;
&lt;br /&gt;
Be aware that nfo files are not easily interchangeable between Movies, TV Shows, Music Videos, Artists and Albums. Although they all share common tags, each also has its own specific tags that won&#039;t be recognised in other parts of the library. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After the NFO files are scanned into the library, they are no longer used and only serves as a backup. If you make changes to the NFO file you will need to &#039;&#039;[[Updating_or_removing_videos#Refresh_Library|Refresh]]&#039;&#039; that library entry for the changes to be loaded into Kodi.&#039;&#039;&#039; An Update Library will not capture the change as this only looks for &#039;&#039;&#039;new&#039;&#039;&#039; items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If you have followed the guidelines of this wiki topic, and the NFO File still does not scan into the library, then check the following:&lt;br /&gt;
&lt;br /&gt;
#Ensure your NFO File is encoded correctly. The NFO File must be encoded as a &#039;&#039;&#039;UTF-8&#039;&#039;&#039; type file. ANSI, has also been known to work.&lt;br /&gt;
#Check the setting &#039;&#039;&#039;Movies are in separate folders that match the movie title&#039;&#039;&#039; in the scraper settings is correctly set for your folder structure.&lt;br /&gt;
#If TV Shows are being mixed, this is most likely caused by using outdated or incorrectly created NFO Files. Ensure at least one of the following tags is in the tvshow.nfo file. If there are no ID&#039;s at the scraper site (eg home movies) then any random alpha-numeric entry will suffice.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;uniqueid type=&amp;quot;&amp;quot; default=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/uniqueid&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;!-- Where type=&amp;quot;&amp;quot; contains the identifier for the ID. eg imdb, tvdb, tmdb, or other as chosen by the user. eg type=&amp;quot;home&amp;quot; for home movies --&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:First time user]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;/div&gt;</summary>
		<author><name>ThumbOne</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Keymap&amp;diff=214230</id>
		<title>Keymap</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Keymap&amp;diff=214230"/>
		<updated>2020-07-04T06:02:53Z</updated>

		<summary type="html">&lt;p&gt;ThumbOne: /* Defaults */ Fixed small typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Remote controls]] }}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Keymaps are XML base files that define the mappings of keys (keyboard keys, mouse/remote/joysticks buttons and more) to Kodi actions.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Customizing keymaps through the GUI ==&lt;br /&gt;
{{main|Add-on:Keymap Editor}}&lt;br /&gt;
Users can customize keymaps for remotes in GUI by using the community [[Add-on:Keymap Editor|Keymap Editor]] add-on.&lt;br /&gt;
&lt;br /&gt;
== Location of keymaps ==&lt;br /&gt;
User modified keymap files must be stored in the &amp;quot;&#039;&#039;&#039;keymaps&#039;&#039;&#039;&amp;quot; folder in the [[userdata]] folder:&lt;br /&gt;
{{#lsth:userdata|Location of the UserData folder}}&lt;br /&gt;
&lt;br /&gt;
=== Defaults ===&lt;br /&gt;
Default keymaps are included when Kodi is installed, but users should not edit those install files directly. Instead, place user modified keymaps in the [[userdata]]/keymaps/ directory.&lt;br /&gt;
&lt;br /&gt;
Kodi can process multiple keymap files and does so like this:&lt;br /&gt;
&lt;br /&gt;
* All *.xml files from the default install settings and userdata/keymaps/ folders are applied as keymaps.&lt;br /&gt;
* All *.xml files are processed in alphabetical order.&lt;br /&gt;
* Keymaps defined in an .xml file add to or override mappings in previous .xml file.&lt;br /&gt;
* Keymaps defined in the userdata folder add to or override mappings in the global keymap.&lt;br /&gt;
&lt;br /&gt;
By default there will be no files in these locations, so grab one from the link below to make a new one/over-ride:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; https://github.com/xbmc/xbmc/tree/master/system/keymaps &#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; https://github.com/kodi-game/peripheral.joystick/tree/master/peripheral.joystick/resources/buttonmaps/xml &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
There is one &#039;&#039;&#039;global&#039;&#039;&#039; keymap and several &#039;&#039;&#039;window&#039;&#039;&#039;-specific keymaps.&amp;lt;br /&amp;gt;&lt;br /&gt;
Kodi falls back to the global map when the window-specific map hasn&#039;t bound the key being pressed.&lt;br /&gt;
&lt;br /&gt;
The format of keymapping files is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;keymap&amp;gt;&lt;br /&gt;
  &amp;lt;global&amp;gt;&lt;br /&gt;
    &amp;lt;gamepad&amp;gt;&lt;br /&gt;
      &amp;lt;A&amp;gt;Select&amp;lt;/A&amp;gt;&lt;br /&gt;
      [...]&lt;br /&gt;
    &amp;lt;/gamepad&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;remote&amp;gt;&lt;br /&gt;
      &amp;lt;select&amp;gt;Select&amp;lt;/select&amp;gt;&lt;br /&gt;
      [...]&lt;br /&gt;
    &amp;lt;/remote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;enter&amp;gt;Select&amp;lt;/enter&amp;gt;&lt;br /&gt;
      [...]&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;mouse&amp;gt;&lt;br /&gt;
      &amp;lt;leftclick&amp;gt;Select&amp;lt;/leftclick&amp;gt;&lt;br /&gt;
      [...]&lt;br /&gt;
    &amp;lt;/mouse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;universalremote&amp;gt;&lt;br /&gt;
      &amp;lt;obc25&amp;gt;XBMC.ActivateWindow(MyMusic)&amp;lt;/obc25&amp;gt;&lt;br /&gt;
      [...]&lt;br /&gt;
    &amp;lt;/universalremote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;joystick name=&amp;quot;PLAYSTATION(R)3 Controller (00:1B:FB:F6:E0:F2)&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;button id=&amp;quot;15&amp;quot;&amp;gt;Select&amp;lt;/button&amp;gt;&lt;br /&gt;
      [...]&lt;br /&gt;
    &amp;lt;/joystick&amp;gt;&lt;br /&gt;
  &amp;lt;/global&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Home&amp;gt;&lt;br /&gt;
    [...]&lt;br /&gt;
  &amp;lt;/Home&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/keymap&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, it&#039;s divided into a &amp;lt;global&amp;gt; section, and a number of window sections (such as &amp;lt;Home&amp;gt;).&amp;lt;br /&amp;gt;&lt;br /&gt;
A list of the available window names can be seen [[Window IDs|here]]. The WINDOW can also be a custom window formatted as &amp;lt;windowId#&amp;gt; (e. g. &amp;lt;window1113&amp;gt;). &amp;lt;br /&amp;gt;&lt;br /&gt;
Each of these sections can contain Gamepad, Remote, Keyboard, Universal Remote, and custom Joystick sections.&lt;br /&gt;
&lt;br /&gt;
The format for mapping a particular key under one of these device types is as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;keyname&amp;gt;action&amp;lt;/keyname&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Keynames ==&lt;br /&gt;
Depending on your device you will need to use a specific &amp;quot;keyname&amp;quot;.&lt;br /&gt;
=== Gamepads ===&lt;br /&gt;
An up to date list of the available actions can be found in the source code of Kodi in [https://github.com/xbmc/xbmc/blob/master/xbmc/input/ButtonTranslator.cpp ButtonTranslator.cpp] where the &#039;&#039;TranslateGamepadString()&#039;&#039; function does the work.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gamepad&amp;gt;&lt;br /&gt;
  &amp;lt;A&amp;gt;Select&amp;lt;/A&amp;gt;&lt;br /&gt;
&amp;lt;/gamepad&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Remotes ===&lt;br /&gt;
An up to  date list of IR-remote button names can be found in the source code of Kodi [https://github.com/xbmc/xbmc/blob/master/xbmc/input/IRTranslator.cpp IRTranslator.cpp]. See the method TranslateString().&lt;br /&gt;
&lt;br /&gt;
The available actions are discussed in section [[Keymap#Actions|Actions]].&lt;br /&gt;
&lt;br /&gt;
{{Note|Some remotes (e.g. FLIRC) are actually seen as &amp;quot;keyboards&amp;quot;. Those will need to use the &amp;lt;keyboard&amp;gt; tag instead.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;remote&amp;gt; &lt;br /&gt;
  &amp;lt;play&amp;gt;Play&amp;lt;/play&amp;gt;&lt;br /&gt;
&amp;lt;/remote&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Universal Remotes ===&lt;br /&gt;
To map Universal Remote buttons using the RCA infrared protocol, you may add &#039;&#039;&#039;&amp;lt;universalremote&amp;gt;&#039;&#039;&#039; sections to keymap.xml.&amp;lt;br /&amp;gt;&lt;br /&gt;
In this case, the tags used are &amp;lt;obc#&amp;gt; where # is the original button code (OBC) of the button.&amp;lt;br /&amp;gt;&lt;br /&gt;
You would put it inside a &amp;lt;universalremote&amp;gt; section in the &amp;lt;window&amp;gt; or &amp;lt;global&amp;gt; sections.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;universalremote&amp;gt; &lt;br /&gt;
  &amp;lt;obc148&amp;gt;Stop&amp;lt;/obc148&amp;gt;&lt;br /&gt;
&amp;lt;/universalremote&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Will map &#039;&#039;Stop Playback&#039;&#039; to the RCA DVD repeat button &amp;lt;obc148&amp;gt;, which is not used by Kodi by default. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Note:&#039;&#039;&#039; ensure that the &amp;lt;universalremote&amp;gt; section is &#039;&#039;&#039;NOT&#039;&#039;&#039; added &#039;within&#039; the &amp;lt;remote&amp;gt; section - it can appear before or after. Otherwise it will not be recognised and produces errors in the logfile.&lt;br /&gt;
&lt;br /&gt;
Remote keys can be observed in the kodi.log file (&#039;&#039;&#039;~/.kodi/temp/kodi.log&#039;&#039;&#039; on Linux) when debugging is enabled in the GUI (Settings -&amp;gt; debugging ). The list of pre-defined OBC codes can be found at [https://github.com/xbmc/xbmc/blob/master/xbmc/input/XBIRRemote.h XBIRRemote.h].&lt;br /&gt;
&lt;br /&gt;
=== Keyboards ===&lt;br /&gt;
Valid keyboard keymap syntax includes &amp;lt;keyname&amp;gt;, &amp;lt;key id=&amp;quot;&amp;quot;&amp;gt;, and &amp;lt;keyname mod=&amp;quot;&amp;quot;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Mapping for arbitrary key codes can be configured using the following syntax: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;key id=&amp;quot;123&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
where &amp;quot;123&amp;quot; is replaced by the key code.&lt;br /&gt;
&lt;br /&gt;
A full list of valid keynames can be found in &lt;br /&gt;
* the [https://github.com/xbmc/xbmc/blob/master/xbmc/input/XBMC_keytable.cpp XBMC_keytable.cpp] source code file&lt;br /&gt;
* or in [[List of Kodi keynames]].&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;key id=&amp;quot;123&amp;quot;&amp;gt;action&amp;lt;/key&amp;gt; -- id is the keys keycode. &amp;gt;&lt;br /&gt;
  &amp;lt;a mod=&amp;quot;shift,alt&amp;quot;&amp;gt;action&amp;lt;/a&amp;gt; -- corresponds to shift-alt-a, the mod=&amp;quot;&amp;quot; syntax is enabled since build 26407. &amp;gt;&lt;br /&gt;
  &amp;lt;space&amp;gt;action&amp;lt;/space&amp;gt; -- for a complete list of valid keynames, see ButtonTranslator.cpp or List of Kodi keynames above. &amp;gt;&lt;br /&gt;
&amp;lt;/keyboard&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Modifiers&lt;br /&gt;
* shift&lt;br /&gt;
* alt&lt;br /&gt;
* ctrl&lt;br /&gt;
&lt;br /&gt;
=== Mouse ===&lt;br /&gt;
&lt;br /&gt;
As this highly depends on the mouse you are using and which kind of buttons are available, we only mention the most common buttons on a mouse:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;keymap&amp;gt;&lt;br /&gt;
  &amp;lt;mouse&amp;gt;&lt;br /&gt;
    &amp;lt;global&amp;gt;&lt;br /&gt;
      &amp;lt;leftclick&amp;gt;...&amp;lt;/leftclick&amp;gt;&lt;br /&gt;
      &amp;lt;middleclick&amp;gt;...&amp;lt;/middleclick&amp;gt;&lt;br /&gt;
      &amp;lt;rightclick&amp;gt;...&amp;lt;/rightclick&amp;gt;&lt;br /&gt;
      &amp;lt;wheelup&amp;gt;...&amp;lt;/wheelup&amp;gt;&lt;br /&gt;
      &amp;lt;wheeldown&amp;gt;...&amp;lt;/wheeldown&amp;gt;&lt;br /&gt;
    &amp;lt;/global&amp;gt;&lt;br /&gt;
  &amp;lt;/mouse&amp;gt;&lt;br /&gt;
&amp;lt;/keymap&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Example for changing the volume while on MusicOSD (On Screen Display) window using the mouse wheel&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;keymap&amp;gt;&lt;br /&gt;
  &amp;lt;MusicOSD&amp;gt;&lt;br /&gt;
    &amp;lt;mouse&amp;gt;&lt;br /&gt;
      &amp;lt;wheeldown&amp;gt;VolumeDown&amp;lt;/wheeldown&amp;gt;&lt;br /&gt;
      &amp;lt;wheelup&amp;gt;VolumeUp&amp;lt;/wheelup&amp;gt;&lt;br /&gt;
    &amp;lt;/mouse&amp;gt;&lt;br /&gt;
  &amp;lt;/MusicOSD&amp;gt;&lt;br /&gt;
&amp;lt;/keymap&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Custom Joystick Configuration ===&lt;br /&gt;
See [[HOW-TO:Modify_joystick.xml]].&lt;br /&gt;
&lt;br /&gt;
== Long-press ==&lt;br /&gt;
{{note| Longpress seems to only be working on keyboard keymaps at the moment }}&lt;br /&gt;
Depending on the device, many remotes, keyboards, and gamepads can use the long-press modifier. This allows a button to do a separate action when held for a short period of time. The syntax for this is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;button mod=&amp;quot;longpress&amp;quot;&amp;gt;action&amp;lt;/button&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Not all devices will correctly work with the longpress action, but most should. &lt;br /&gt;
&lt;br /&gt;
{{Note|Long-press will disable keyrepeat for that key/window.}}&lt;br /&gt;
&lt;br /&gt;
=== Removing a long-press action from a default keymap ===&lt;br /&gt;
If you want to simply remove a long-press action, rather than override it, you can place an empty long-press tag in a keymap. This also has the effect of re-enabling keyrepeat for the short-press action.&lt;br /&gt;
&lt;br /&gt;
For example, this will remove the context menu action from the default keyboard.xml keymap:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;keymap&amp;gt;&lt;br /&gt;
  &amp;lt;global&amp;gt;&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;return mod=&amp;quot;longpress&amp;quot;&amp;gt;&amp;lt;/return&amp;gt;&lt;br /&gt;
      &amp;lt;enter mod=&amp;quot;longpress&amp;quot;&amp;gt;&amp;lt;/enter&amp;gt;&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;/global&amp;gt;&lt;br /&gt;
&amp;lt;/keymap&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
The most recent available actions can be found in [https://github.com/xbmc/xbmc/blob/master/xbmc/input/actions/ActionIDs.h ActionIDs.h].&lt;br /&gt;
&lt;br /&gt;
For those debugging integer action codes from the debug log, the mapping of action codes to constants is in [https://github.com/xbmc/xbmc/blob/master/xbmc/input/Key.h Key.h]&lt;br /&gt;
&lt;br /&gt;
In addition to the following actions, you can also use &#039;&#039;&#039;[[Built-in scripting]]&#039;&#039;&#039; in Kodi.&lt;br /&gt;
&lt;br /&gt;
=== Actions ===&lt;br /&gt;
{{Main|Action IDs}}&lt;br /&gt;
{{#lst:Action IDs|Action IDs}}&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
{{main|List of built-in functions|Built-in scripting}}&lt;br /&gt;
{{#lst:List of built-in functions|functions}}&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
{{main|Window IDs}}&lt;br /&gt;
{{#lst:Window IDs|main content}}&lt;br /&gt;
&lt;br /&gt;
== Additional keys ==&lt;br /&gt;
Other keys that can be mapped to actions.&lt;br /&gt;
&lt;br /&gt;
=== Media keyboards/remotes ===&lt;br /&gt;
* browser_back&lt;br /&gt;
* browser_forward&lt;br /&gt;
* browser_refresh&lt;br /&gt;
* browser_stop&lt;br /&gt;
* browser_search&lt;br /&gt;
* browser_favorites&lt;br /&gt;
* browser_home&lt;br /&gt;
* volume_mute&lt;br /&gt;
* volume_down&lt;br /&gt;
* volume_up&lt;br /&gt;
* next_track&lt;br /&gt;
* prev_track&lt;br /&gt;
* stop&lt;br /&gt;
* play_pause&lt;br /&gt;
* launch_mail&lt;br /&gt;
* launch_media_select&lt;br /&gt;
* launch_app1&lt;br /&gt;
* launch_app2&lt;br /&gt;
* play&lt;br /&gt;
* pause&lt;br /&gt;
* fastforward&lt;br /&gt;
* rewind&lt;br /&gt;
* channelup&lt;br /&gt;
* channeldown&lt;br /&gt;
&lt;br /&gt;
=== Mouse actions ===&lt;br /&gt;
* leftclick&lt;br /&gt;
* rightclick &lt;br /&gt;
* middleclick&lt;br /&gt;
* doubleclick&lt;br /&gt;
* wheelup&lt;br /&gt;
* wheeldown&lt;br /&gt;
* mousemove&lt;br /&gt;
* mousedrag&lt;br /&gt;
* mousedragstart&lt;br /&gt;
* mousedragend&lt;br /&gt;
* mouserdrag - right button drag&lt;br /&gt;
* mouserdragstart - start of right button drag&lt;br /&gt;
* mouserdragend - end of right button drag&lt;br /&gt;
&lt;br /&gt;
== Examples and pre-made keymaps ==&lt;br /&gt;
{{see|:Category:Custom keymaps}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Remote controls]]&lt;br /&gt;
* [[Keyboard controls]]&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Python development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
{{Updated|16}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Remotes]]&lt;br /&gt;
[[Category:Settings]]&lt;br /&gt;
[[Category:Controls]]&lt;/div&gt;</summary>
		<author><name>ThumbOne</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Built-in_scripting&amp;diff=214229</id>
		<title>Built-in scripting</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Built-in_scripting&amp;diff=214229"/>
		<updated>2020-07-04T05:55:12Z</updated>

		<summary type="html">&lt;p&gt;ThumbOne: /* Using Built-in Functions from python */  Removing very dated addendum and incorprating it as the new fact&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Python development]] {{l2| [[Add-on development]] }} {{l2| [[Skinning]] }} }}&lt;br /&gt;
Kodi contains several built-in functions that can be accessed from the skin (via a button), from within a python script, or [[keymap]].&lt;br /&gt;
&lt;br /&gt;
== General form of built-in Functions ==&lt;br /&gt;
Built-in functions take the form&lt;br /&gt;
&lt;br /&gt;
  [XBMC.]Function(param1,param2,...).&lt;br /&gt;
&lt;br /&gt;
The XBMC. prefix is optional. Some parameters are required, depending on the function. In parsing built-in functions, Kodi first treats quoted (using double quotes &amp;quot;) character strings as literal, and drops the quotes. Thus, when inside a quote, any otherwise special characters will be ignored until the quote is complete. Parameters are separated by commas and, given that functions may be parameters to other functions (such as with the AlarmClock function), anything within brackets () are treated as a single block as well. Finally, prior to passing parameters into the function, any initial and trailing spaces are removed. This system allows you to pass in functions as parameters (the commas used for the passed function are ignored as they&#039;re within a () block), as well as allowing you to ignore whitespace around parameter separators. If you wish to pass commas in directly as part of a parameter, simply put quotes around the parameter string - Kodi will strip off the quotes prior to passing it in. Lastly, to pass in an actual quote character, make sure it&#039;s escaped (using the \ character), as in &amp;quot;\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some examples:&lt;br /&gt;
&lt;br /&gt;
  ActivateWindow(VideoFiles, path_to_some_files )&lt;br /&gt;
  ActivateWindow(VideoFiles,path_to_some_files)&lt;br /&gt;
  ActivateWindow(VideoFiles,&amp;quot;path_to_some_files&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
will all produce the exact same functionality, under the assumption that path_to_some_files contains no initial or trailing spaces (unlikely) and no unmatched brackets and commas. The &amp;quot;ActivateWindow&amp;quot; function will be called with two parameters: &amp;quot;VideoFiles&amp;quot; (the window to open) and &amp;quot;path_to_some_files&amp;quot; (a starting path for the browsing). If path_to_some_files contains initial or trailing spaces, or contains commas or brackets, then only the last form will function correctly.&lt;br /&gt;
&lt;br /&gt;
== Using Built-in Functions from the skin ==&lt;br /&gt;
To have a button (or toggle button) on the skin run a particular function, you just have to add an &amp;lt;onclick&amp;gt; tag (or &amp;lt;onfocus&amp;gt; tag) containing the function you wish to run.&amp;lt;br /&amp;gt;&lt;br /&gt;
For example, adding the following to a button control will create a stop button.&lt;br /&gt;
  &amp;lt;onclick&amp;gt;PlayerControl(Stop)&amp;lt;/onclick&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want a button in your skin taking you directly to the movie listing, add a parameter to the [[Window IDs|Window ID]] as follows:&lt;br /&gt;
   &amp;lt;onclick&amp;gt;ActivateWindow(myvideolibrary,movietitles)&amp;lt;/onclick&amp;gt;&lt;br /&gt;
A list of parameters can be found here:&lt;br /&gt;
* [[Opening Windows and Dialogs]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using Built-in Functions from python ==&lt;br /&gt;
To run a built-in Kodi function from within a python script, you just need to call executebuiltin() with the function name. For example,&lt;br /&gt;
  xbmc.executebuiltin(&#039;XBMC.RunScript(Q:\Scripts\myscript.py)&#039;)&lt;br /&gt;
will run the script myscript.py located in the Scripts directory. There is an optional second argument, a boolean which requests a blocking call. By default built-on functions are non-blocking and executebuiltin() will return before the built-in function has run to completion. By specifying True, you can request executebuiltin() to wait until the built-in function is finished before returning:&lt;br /&gt;
  xbmc.executebuiltin(&#039;XBMC.RunScript(Q:\Scripts\myscript.py)&#039;, True)&lt;br /&gt;
&lt;br /&gt;
== Using Built-in Functions from keymap.xml ==&lt;br /&gt;
To bind a built-in function to a particular key, you just add the built-in command to the appropriate section and button in keymap.xml&lt;br /&gt;
&lt;br /&gt;
For example, to map the running of an executeable to the BLACK button, we&#039;d add:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;gamepad&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;black&amp;gt;XBMC.RunXBE(E:\Apps\AVALaunch.xbe)&amp;lt;/black&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
  &amp;lt;/gamepad&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to whatever window section of keymap.xml is appropriate.&amp;lt;br /&amp;gt;&lt;br /&gt;
For more information on changing the keymapping with keymap.xml see: [[Keyboard.xml|Changing the keymapping]]&lt;br /&gt;
&lt;br /&gt;
== List of built-in functions ==&lt;br /&gt;
{{see|List of built-in functions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>ThumbOne</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=GUI_tutorial&amp;diff=214228</id>
		<title>GUI tutorial</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=GUI_tutorial&amp;diff=214228"/>
		<updated>2020-07-04T05:38:12Z</updated>

		<summary type="html">&lt;p&gt;ThumbOne: /* using built-in functions */ Another typo fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]|[[Add-on development]]|[[Python development]]}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
This How To will explain several ways of showing a &amp;quot;Hello World&amp;quot; popup on screen&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== Using xbmc modules ==&lt;br /&gt;
&lt;br /&gt;
Simple example using xbmc python modules showing a notification dialog that will show for 5 seconds.&lt;br /&gt;
&lt;br /&gt;
=== using built-in functions ===&lt;br /&gt;
More info on Built-In functions can be found here: [[List of built-in functions]]&lt;br /&gt;
Following are two examples. One with just a simple notification dialog and the other with the same dialog but with using variables.&lt;br /&gt;
It all depends on how extended you scripts will be. Since we require all used strings to be localized (translatable) we recommend the second option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import xbmc&lt;br /&gt;
&lt;br /&gt;
xbmc.executebuiltin(&#039;Notification(Hello World,This is a simple example of notifications,5000,/script.hellow.world.png)&#039;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import xbmc&lt;br /&gt;
import xbmcaddon&lt;br /&gt;
&lt;br /&gt;
__addon__ = xbmcaddon.Addon()&lt;br /&gt;
__addonname__ = __addon__.getAddonInfo(&#039;name&#039;)&lt;br /&gt;
__icon__ = __addon__.getAddonInfo(&#039;icon&#039;)&lt;br /&gt;
 &lt;br /&gt;
line1 = &amp;quot;This is a simple example of notifications&amp;quot;&lt;br /&gt;
time = 5000 #in miliseconds&lt;br /&gt;
 &lt;br /&gt;
xbmc.executebuiltin(&#039;Notification(%s, %s, %d, %s)&#039;%(__addonname__,line1, time, __icon__))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== using xbmcgui module ===&lt;br /&gt;
&lt;br /&gt;
This will show a OK dilaog box with the message&lt;br /&gt;
More info on xbmcgui functions can be found here: [ http://mirrors.xbmc.org/docs/python-docs/16.x-jarvis/xbmcgui.html#Dialog ]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import xbmcaddon&lt;br /&gt;
import xbmcgui&lt;br /&gt;
&lt;br /&gt;
__addon__ = xbmcaddon.Addon()&lt;br /&gt;
__addonname__ = __addon__.getAddonInfo(&#039;name&#039;)&lt;br /&gt;
&lt;br /&gt;
line1 = &amp;quot;This is a simple example of OK dialog&amp;quot;&lt;br /&gt;
line2 = &amp;quot;Showing this message using&amp;quot;&lt;br /&gt;
line3 = &amp;quot;XBMC python modules&amp;quot;&lt;br /&gt;
&lt;br /&gt;
xbmcgui.Dialog().ok(__addonname__, line1, line2, line3)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using JSON-RPC ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using xbmc modules &amp;amp; JSON-RPC API ==&lt;br /&gt;
&lt;br /&gt;
More info on JSON-RPC API can be found here: [[JSON-RPC API]]&lt;br /&gt;
&lt;br /&gt;
This JSON-RPC command send through various ways and will execute the addon code that is shown below.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;jsonrpc&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;method&amp;quot;: &amp;quot;Addons.ExecuteAddon&amp;quot;,&lt;br /&gt;
    &amp;quot;params&amp;quot;: {&lt;br /&gt;
        &amp;quot;addonid&amp;quot;: &amp;quot;script.popup&amp;quot;,&lt;br /&gt;
        &amp;quot;params&amp;quot;: {&lt;br /&gt;
            &amp;quot;image&amp;quot;: &amp;quot;D:\\heartagram.jpg&amp;quot;,&lt;br /&gt;
            &amp;quot;line1&amp;quot;: &amp;quot;Hello World&amp;quot;,&lt;br /&gt;
            &amp;quot;line2&amp;quot;: &amp;quot;Showing this message using&amp;quot;,&lt;br /&gt;
            &amp;quot;line3&amp;quot;: &amp;quot;Combination of Kodi python modules and&amp;quot;,&lt;br /&gt;
            &amp;quot;line4&amp;quot;: &amp;quot;JSON-RPC API interface&amp;quot;,&lt;br /&gt;
            &amp;quot;line5&amp;quot;: &amp;quot;Have fun coding&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This python code will create several controls using xbmcgui module and fill these will the message send through JSON-RPC:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import xbmcgui&lt;br /&gt;
import sys&lt;br /&gt;
import urlparse&lt;br /&gt;
&lt;br /&gt;
class PopupWindow(xbmcgui.WindowDialog):&lt;br /&gt;
    def __init__(self, image, line1, line2, line3, line4, line5):&lt;br /&gt;
        self.addControl(xbmcgui.ControlImage(x=25, y=25, width=150, height=150, filename=image[0]))&lt;br /&gt;
        self.addControl(xbmcgui.ControlLabel(x=190, y=25, width=500, height=25, label=line1[0]))&lt;br /&gt;
        self.addControl(xbmcgui.ControlLabel(x=190, y=50, width=500, height=25, label=line2[0]))&lt;br /&gt;
        self.addControl(xbmcgui.ControlLabel(x=190, y=75, width=500, height=25, label=line3[0]))&lt;br /&gt;
        self.addControl(xbmcgui.ControlLabel(x=190, y=100, width=500, height=25, label=line4[0]))&lt;br /&gt;
        self.addControl(xbmcgui.ControlLabel(x=190, y=125, width=500, height=25, label=line5[0]))&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    params = urlparse.parse_qs(&#039;&amp;amp;&#039;.join(sys.argv[1:]))&lt;br /&gt;
    window = PopupWindow(**params)&lt;br /&gt;
    window.show()&lt;br /&gt;
    xbmc.sleep(5000)&lt;br /&gt;
    window.close()&lt;br /&gt;
    del window&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Addon Settings]]&lt;br /&gt;
* [[Python development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-on development]]&lt;/div&gt;</summary>
		<author><name>ThumbOne</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=GUI_tutorial&amp;diff=214227</id>
		<title>GUI tutorial</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=GUI_tutorial&amp;diff=214227"/>
		<updated>2020-07-04T05:37:17Z</updated>

		<summary type="html">&lt;p&gt;ThumbOne: /* using build-in functions */ Fixed typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]|[[Add-on development]]|[[Python development]]}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
This How To will explain several ways of showing a &amp;quot;Hello World&amp;quot; popup on screen&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== Using xbmc modules ==&lt;br /&gt;
&lt;br /&gt;
Simple example using xbmc python modules showing a notification dialog that will show for 5 seconds.&lt;br /&gt;
&lt;br /&gt;
=== using built-in functions ===&lt;br /&gt;
More info on Built-In functions can be found here: [[List of built-in functions]]&lt;br /&gt;
We will two examples. One with just a simple notification dialog and the other with the same dialog but with using variables.&lt;br /&gt;
It all depends on how extended you scripts will be. Since we require all used strings to be localized (translatable) we recommend the second option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import xbmc&lt;br /&gt;
&lt;br /&gt;
xbmc.executebuiltin(&#039;Notification(Hello World,This is a simple example of notifications,5000,/script.hellow.world.png)&#039;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import xbmc&lt;br /&gt;
import xbmcaddon&lt;br /&gt;
&lt;br /&gt;
__addon__ = xbmcaddon.Addon()&lt;br /&gt;
__addonname__ = __addon__.getAddonInfo(&#039;name&#039;)&lt;br /&gt;
__icon__ = __addon__.getAddonInfo(&#039;icon&#039;)&lt;br /&gt;
 &lt;br /&gt;
line1 = &amp;quot;This is a simple example of notifications&amp;quot;&lt;br /&gt;
time = 5000 #in miliseconds&lt;br /&gt;
 &lt;br /&gt;
xbmc.executebuiltin(&#039;Notification(%s, %s, %d, %s)&#039;%(__addonname__,line1, time, __icon__))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== using xbmcgui module ===&lt;br /&gt;
&lt;br /&gt;
This will show a OK dilaog box with the message&lt;br /&gt;
More info on xbmcgui functions can be found here: [ http://mirrors.xbmc.org/docs/python-docs/16.x-jarvis/xbmcgui.html#Dialog ]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import xbmcaddon&lt;br /&gt;
import xbmcgui&lt;br /&gt;
&lt;br /&gt;
__addon__ = xbmcaddon.Addon()&lt;br /&gt;
__addonname__ = __addon__.getAddonInfo(&#039;name&#039;)&lt;br /&gt;
&lt;br /&gt;
line1 = &amp;quot;This is a simple example of OK dialog&amp;quot;&lt;br /&gt;
line2 = &amp;quot;Showing this message using&amp;quot;&lt;br /&gt;
line3 = &amp;quot;XBMC python modules&amp;quot;&lt;br /&gt;
&lt;br /&gt;
xbmcgui.Dialog().ok(__addonname__, line1, line2, line3)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using JSON-RPC ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using xbmc modules &amp;amp; JSON-RPC API ==&lt;br /&gt;
&lt;br /&gt;
More info on JSON-RPC API can be found here: [[JSON-RPC API]]&lt;br /&gt;
&lt;br /&gt;
This JSON-RPC command send through various ways and will execute the addon code that is shown below.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;jsonrpc&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;method&amp;quot;: &amp;quot;Addons.ExecuteAddon&amp;quot;,&lt;br /&gt;
    &amp;quot;params&amp;quot;: {&lt;br /&gt;
        &amp;quot;addonid&amp;quot;: &amp;quot;script.popup&amp;quot;,&lt;br /&gt;
        &amp;quot;params&amp;quot;: {&lt;br /&gt;
            &amp;quot;image&amp;quot;: &amp;quot;D:\\heartagram.jpg&amp;quot;,&lt;br /&gt;
            &amp;quot;line1&amp;quot;: &amp;quot;Hello World&amp;quot;,&lt;br /&gt;
            &amp;quot;line2&amp;quot;: &amp;quot;Showing this message using&amp;quot;,&lt;br /&gt;
            &amp;quot;line3&amp;quot;: &amp;quot;Combination of Kodi python modules and&amp;quot;,&lt;br /&gt;
            &amp;quot;line4&amp;quot;: &amp;quot;JSON-RPC API interface&amp;quot;,&lt;br /&gt;
            &amp;quot;line5&amp;quot;: &amp;quot;Have fun coding&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This python code will create several controls using xbmcgui module and fill these will the message send through JSON-RPC:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import xbmcgui&lt;br /&gt;
import sys&lt;br /&gt;
import urlparse&lt;br /&gt;
&lt;br /&gt;
class PopupWindow(xbmcgui.WindowDialog):&lt;br /&gt;
    def __init__(self, image, line1, line2, line3, line4, line5):&lt;br /&gt;
        self.addControl(xbmcgui.ControlImage(x=25, y=25, width=150, height=150, filename=image[0]))&lt;br /&gt;
        self.addControl(xbmcgui.ControlLabel(x=190, y=25, width=500, height=25, label=line1[0]))&lt;br /&gt;
        self.addControl(xbmcgui.ControlLabel(x=190, y=50, width=500, height=25, label=line2[0]))&lt;br /&gt;
        self.addControl(xbmcgui.ControlLabel(x=190, y=75, width=500, height=25, label=line3[0]))&lt;br /&gt;
        self.addControl(xbmcgui.ControlLabel(x=190, y=100, width=500, height=25, label=line4[0]))&lt;br /&gt;
        self.addControl(xbmcgui.ControlLabel(x=190, y=125, width=500, height=25, label=line5[0]))&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    params = urlparse.parse_qs(&#039;&amp;amp;&#039;.join(sys.argv[1:]))&lt;br /&gt;
    window = PopupWindow(**params)&lt;br /&gt;
    window.show()&lt;br /&gt;
    xbmc.sleep(5000)&lt;br /&gt;
    window.close()&lt;br /&gt;
    del window&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Addon Settings]]&lt;br /&gt;
* [[Python development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-on development]]&lt;/div&gt;</summary>
		<author><name>ThumbOne</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Artwork/Cache&amp;diff=214226</id>
		<title>Artwork/Cache</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Artwork/Cache&amp;diff=214226"/>
		<updated>2020-07-04T01:03:23Z</updated>

		<summary type="html">&lt;p&gt;ThumbOne: /* Advanced: How to refresh the cached image of an icon manually */ Fixing erroneous references to .xbmc (now .kodi)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Artwork_Contents}}&lt;br /&gt;
{{mininav|[[Music_library|Music Library]] {{l2|[[Video_library|Video Library]]}} | [[Artwork]] }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;{{Kodi}} maintains a texture cache on local device storage for all artwork displayed in the GUI, whether from an online source or the local file system. These textures are optimized and stored locally for faster loading.&lt;br /&gt;
&lt;br /&gt;
When artwork is added to the library, {{Kodi}} initially only has a URL or path to the artwork. The artwork itself is only downloaded (if from an online source) and then cached when the image is displayed in the GUI or other interface such as the Chorus web interface.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All images that {{Kodi}} loads, with the exception of textures that are provided directly by the skin, are cached to the userdata/Thumbnails folder.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Artwork for library items =&lt;br /&gt;
The artwork URLs associated with library items are stored in the art table inside the video or music databases. These store the original URL to the artwork (e.g. from local artwork files or from web sources such as https://themoviedb.org, https://thetvdb.com, or https://theaudiodb.com). This means that central databases store where the art is obtained from, and multiple devices then just keep a local thumbnail cache as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The caching procedure =&lt;br /&gt;
The caching procedure utilizes an optimized copy of the original image saved in .jpg or .png format and an SQL database that maintains the local cache.&lt;br /&gt;
&lt;br /&gt;
The cache operates primarily on an &amp;quot;as and when needed&amp;quot; basis; i.e. textures are cached when they&#039;re first requested for display in a skin or web interface. In some cases textures may be cached before they&#039;re immediately needed, such as thumbnails generated from video files. In either case, the main caching procedure starts with an image URL. It caches as follows:&lt;br /&gt;
&lt;br /&gt;
#  {{Kodi}} generates a hash (CRC) of the URL, like &amp;quot;6a643bff&amp;quot;.&lt;br /&gt;
#  The texture is optimized (see [[#Texture optimization]]) and cached to a device-local file with the given URL hash. It is cached as a PNG if transparency is required and JPG otherwise.&lt;br /&gt;
#  Another hash of the image is generated based on size and modified date, which can be used to check if the original image has changed.&lt;br /&gt;
#  These details are stored in the SQL database Textures.db, along with information on when the image was cached.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Loading textures =&lt;br /&gt;
When loading a texture for display in a skin or web interface, {{Kodi}} basically just has a URL to the image.  Given a particular URL, it loads the texture as follows:&lt;br /&gt;
&lt;br /&gt;
# If the image is provided by the skin, skip to step 5.&lt;br /&gt;
# If the URL is directly to a cached version of a texture in the cache, skip to step 5.&lt;br /&gt;
# If the URL is for an image already cached in the thumbnail cache, swap the URL to the cached version and skip to step 5.&lt;br /&gt;
# Cache the image as outlined in the section above.&lt;br /&gt;
# Load the image. If the image is provided by the skin, skip steps 6 and 7.&lt;br /&gt;
# The access time for this texture is saved in the texture database.&lt;br /&gt;
# If the image is not from a web service (HTTP/S) and at least 24 hours have passed since it was last loaded, check the hash generated in step 3 of &amp;quot;The caching procedure&amp;quot; for changes to the image. If the hash has changed, cache the new image as outlined in the section above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Texture optimization =&lt;br /&gt;
# Images are limited to a maximum pixel dimension to fit in a 16:9 box, with a default configuration of 1920x1080 for images that are 16:9 (like fanart) and larger than this, and 1280x720 for all other images. This can be changed with &#039;&#039;[[Advancedsettings.xml#Library artwork| advancedsettings.xml]]&#039;&#039;.&lt;br /&gt;
#* If you are experiencing slow loading images or lagging GUI navigation on low powered equipment and/or your {{Kodi}} device has minimal storage available, these defaults can be lowered to noticeably reduce the cost of artwork. For higher powered equipment these settings can be increased to maintain the original artwork size. (eg 3840x2160 fanart)&lt;br /&gt;
# Images are re-encoded in a decoder-friendly way so that the image can be displayed as quickly as possible.&lt;br /&gt;
&lt;br /&gt;
This optimized image is exported with {{Kodi}}&#039;s [[Import-export_library|Library Export]] feature, rather than the original full-quality image, so it is best to avoid exporting artwork if at all possible.&amp;lt;ref&amp;gt;https://forum.kodi.tv/showthread.php?tid=315806&amp;amp;pid=2599318#pid2599318&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Advanced: How to refresh the cached image of an icon manually =&lt;br /&gt;
The [[Texture Cache Maintenance utility]] can do this in a safer way, but this is the manual option.&lt;br /&gt;
There is an image like &#039;&#039;/home/x/.kodi/addons/my.lovely.addon/icon.png&#039;&#039; . After changing that file, the old image is still visible in {{kodi}}. To solve this we need to remove the actual thumbnail file from the filesystem and its reference in the DB:&lt;br /&gt;
&lt;br /&gt;
 # Get the thumbnail path to remove the file from the filesystem&lt;br /&gt;
 $ sqlite3 .kodi/userdata/Database/Textures13.db &amp;quot;SELECT cachedurl FROM texture WHERE url = &#039;/home/x/.kodi/addons/my.lovely.addon/icon.png&#039;;&amp;quot;&lt;br /&gt;
 6/6a643bff.png&lt;br /&gt;
&lt;br /&gt;
This &#039;&#039;6/6a643bff.png&#039;&#039; is the cached image under &#039;&#039;/home/x/.kodi/userdata/Thumbnails&#039;&#039;. So: you need to remove from your filesystem &#039;&#039;/home/x/.kodi/userdata/Thumbnails/6/6a43bff.png&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 # Remove the image-&amp;gt;cached image link in the DB&lt;br /&gt;
 $ sqlite3 .kodi/userdata/Database/Textures13.db &amp;quot;DELETE FROM texture WHERE url = &#039;/home/x/.kodi/addons/my.lovely.addon/icon.png&#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Next time Kodi needs the image, it will recreate the thumbnail.&lt;br /&gt;
&lt;br /&gt;
:{{note|The &amp;lt;code&amp;gt;&amp;quot;Textures&#039;&#039;&#039;13&#039;&#039;&#039;.db&amp;quot;&amp;lt;/code&amp;gt; &#039;&#039;&#039;[[Databases#Database_Versions|number/version can increase]]&#039;&#039;&#039; with later Kodi versions.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;See also: [[Databases#Database_Versions|Database Versions]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Advanced: delete textures13.db =&lt;br /&gt;
This last resort procedure is one sure way to repair any image caching problem: delete the &#039;&#039;Textures13.db&#039;&#039; database and the thumbnail directory. This procedure does not affect the entries in the Video and Music libraries, so Kodi will not find more images after, this is just a brute-force solution to a caching problem. It affects the artwork database only. [[Texture Cache Maintenance utility]] can do very targeted fixes of the texture cache, so consider it before doing this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
#Be aware that this should be a last resort procedure. Deleting this database file and the thumbnail directory will remove all cache entries and links, requiring remote URLs to web services to be downloaded again.&lt;br /&gt;
#As the URL link to the original artwork location is stored in the video or music databases, Kodi will use the existing URLs to rebuild the Texture database and thumbnail cache, rather than finding new images locally or from a scraper.&lt;br /&gt;
#{{red|Using this procedure, you cannot change the scraping location for artwork. ie- If you originally scraped from online sources, you cannot expect that Kodi will now scrape from your newly added local artwork and vice-versa. It will retrieve artwork from the same source as it was before, so the result will be the same image. To bulk change artwork, refer to &#039;&#039;[[Artwork#Importing-Scraping Artwork| Importing-Scraping Artwork]]&#039;&#039;}}&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will need to perform the following for a clean start with respect to the artwork texture cache.&lt;br /&gt;
#Exit Kodi&lt;br /&gt;
#Delete &#039;&#039;texturesxx.db&#039;&#039; located in the &#039;&#039;\userdata\database\&#039;&#039; folder. &lt;br /&gt;
#Delete the &#039;&#039;Thumbnails&#039;&#039; directory located at &#039;&#039;\userdata\&#039;&#039; which stores all the cached images,&lt;br /&gt;
Once the above steps are performed&lt;br /&gt;
#Restart Kodi&lt;br /&gt;
#Kodi will automatically rebuild the Textures database and repopulate the Thumbnails cache as the images are displayed in the GUI or other Kodi interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Cache manipulation tools =&lt;br /&gt;
* [[Texture Cache Maintenance utility]]&lt;br /&gt;
** {{#lst:Texture_Cache_Maintenance_utility|intro}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Kodi version updates =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;CacheMaxResolution&amp;quot; /&amp;gt;From v18, the 1920x1080 resolution limitation has been removed. Using the following code in your advancedsettings.xml will allow caching artwork at original size. &amp;lt;ref&amp;gt;https://github.com/xbmc/xbmc/pull/13599&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;imageres&amp;gt;9999&amp;lt;/imageres&amp;gt;&lt;br /&gt;
&amp;lt;fanartres&amp;gt;9999&amp;lt;/fanartres&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;CacheMaxResolution&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:First time user]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;/div&gt;</summary>
		<author><name>ThumbOne</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on_settings_conversion&amp;diff=214225</id>
		<title>Add-on settings conversion</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on_settings_conversion&amp;diff=214225"/>
		<updated>2020-07-03T11:41:54Z</updated>

		<summary type="html">&lt;p&gt;ThumbOne: /* Structure */ Underscoring the need for the version=&amp;quot;!&amp;quot; attribute, having just wasted an hour trying to convert an addon before discovering this hitch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]|[[Add-on development]]}}&lt;br /&gt;
{{see also|Python development}}&lt;br /&gt;
&lt;br /&gt;
=Converting addon settings=&lt;br /&gt;
&lt;br /&gt;
==Preface==&lt;br /&gt;
As of Kodi 18 Leia it is possible to write your addon settings in the same setting format as Kodi uses.&lt;br /&gt;
Due to many initial issues, it is not recommended to convert your settings if your addon is in the Leia addon repo.&lt;br /&gt;
&lt;br /&gt;
In Kodi 19 Matrix, those bugs have been fixed, so we recommend to convert your addon settings if you plan to submit your addon to the Matrix addon repo (or higher).&lt;br /&gt;
&lt;br /&gt;
==Structure==&lt;br /&gt;
&lt;br /&gt;
The structure of your settings.xml file should look like this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;settings version=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;section id=&amp;quot;my.addon.id&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;category id=&amp;quot;general&amp;quot; label=&amp;quot;&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;group id=&amp;quot;1&amp;quot; label=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;setting id=&amp;quot;&amp;quot; type=&amp;quot;&amp;quot; label=&amp;quot;&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;control type=&amp;quot;&amp;quot; format=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;/setting&amp;gt;&lt;br /&gt;
			&amp;lt;/group&amp;gt;&lt;br /&gt;
		&amp;lt;/category&amp;gt;&lt;br /&gt;
	&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;/settings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;&amp;lt;settings&amp;gt;&#039;&#039;&#039; tag &#039;&#039;&#039;must&#039;&#039;&#039; have a &#039;&#039;&#039;version=&amp;quot;1&amp;quot;&#039;&#039;&#039; attribute (or the &#039;&#039;&#039;&amp;lt;section&amp;gt;&#039;&#039;&#039; tag will not be supported)&lt;br /&gt;
* your addon settings file can only have one &#039;&#039;&#039;&amp;lt;section&amp;gt;&#039;&#039;&#039; tag. the id should be the id of your addon. (the use of multiple sections is reserved for kodi&#039;s main settings.xml file)&lt;br /&gt;
* you can use multiple &#039;&#039;&#039;&amp;lt;category&amp;gt;&#039;&#039;&#039; tags, just like in the old addon settings format. the id of a category needs to be a string.&lt;br /&gt;
* the &#039;&#039;&#039;&amp;lt;group&amp;gt;&#039;&#039;&#039; tag is a replacement for the old &#039;&#039;&#039;sep&#039;&#039;&#039; and &#039;&#039;&#039;lsep&#039;&#039;&#039; types, you can define multiple groups in order to group a number of settings.&lt;br /&gt;
&lt;br /&gt;
==Level==&lt;br /&gt;
&lt;br /&gt;
Similar to Kodi settings, addons can now define a setting level for every setting.&amp;lt;br&amp;gt;&lt;br /&gt;
This will show or hide certain settings based on the settings level the user has selected (Basic, Standard, Advanced, Expert).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;&amp;quot; type=&amp;quot;&amp;quot; label=&amp;quot;&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The various levels are defined as such:&lt;br /&gt;
* 0 - Basic&lt;br /&gt;
* 1 - Standard&lt;br /&gt;
* 2 - Advanced&lt;br /&gt;
* 3 - Expert&lt;br /&gt;
* 4 - Internal (will never be shown in the GUI)&lt;br /&gt;
&lt;br /&gt;
=Setting types=&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;text&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;text&amp;quot; id=&amp;quot;test01&amp;quot; label=&amp;quot;32001&amp;quot; default=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format|&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test01&amp;quot; type=&amp;quot;string&amp;quot; label=&amp;quot;32001&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;edit&amp;quot; format=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32001&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;text&amp;quot; id=&amp;quot;test02&amp;quot; label=&amp;quot;32002&amp;quot; default=&amp;quot;&amp;quot; option=&amp;quot;hidden&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test02&amp;quot; type=&amp;quot;string&amp;quot; label=&amp;quot;32002&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;edit&amp;quot; format=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32002&amp;lt;/heading&amp;gt;&lt;br /&gt;
		&amp;lt;hidden&amp;gt;true&amp;lt;/hidden&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;text&amp;quot; id=&amp;quot;test03&amp;quot; label=&amp;quot;32003&amp;quot; default=&amp;quot;&amp;quot; option=&amp;quot;urlencoded&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test03&amp;quot; type=&amp;quot;urlencodedstring&amp;quot; label=&amp;quot;32003&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;edit&amp;quot; format=&amp;quot;urlencoded&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32003&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;ipaddress&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;ipaddress&amp;quot; id=&amp;quot;test04&amp;quot; label=&amp;quot;32004&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test04&amp;quot; type=&amp;quot;string&amp;quot; label=&amp;quot;32004&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;edit&amp;quot; format=&amp;quot;ip&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32004&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;number&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;number&amp;quot; id=&amp;quot;test05&amp;quot; label=&amp;quot;32005&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test05&amp;quot; type=&amp;quot;integer&amp;quot; label=&amp;quot;32005&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default&amp;gt;0&amp;lt;/default&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;edit&amp;quot; format=&amp;quot;integer&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32005&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;date&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;date&amp;quot; id=&amp;quot;test06&amp;quot; label=&amp;quot;32006&amp;quot; default=&amp;quot;2015-03-12&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test06&amp;quot; type=&amp;quot;date&amp;quot; label=&amp;quot;32006&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default&amp;gt;2015-03-12&amp;lt;/default&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;date&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32006&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;time&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;time&amp;quot; id=&amp;quot;test07&amp;quot; label=&amp;quot;32007&amp;quot; default=&amp;quot;13:13&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test07&amp;quot; type=&amp;quot;time&amp;quot; label=&amp;quot;32007&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default&amp;gt;13:13&amp;lt;/default&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;time&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32007&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;bool&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;bool&amp;quot; id=&amp;quot;test08&amp;quot; label=&amp;quot;32008&amp;quot; default=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test08&amp;quot; type=&amp;quot;boolean&amp;quot; label=&amp;quot;32008&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default&amp;gt;false&amp;lt;/default&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;toggle&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;select&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;select&amp;quot; id=&amp;quot;test09&amp;quot; label=&amp;quot;32009&amp;quot; lvalues=&amp;quot;11|12|13|14&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test09&amp;quot; type=&amp;quot;integer&amp;quot; label=&amp;quot;32009&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default&amp;gt;0&amp;lt;/default&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;options&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;11&amp;quot;&amp;gt;0&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;12&amp;quot;&amp;gt;1&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;13&amp;quot;&amp;gt;2&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;14&amp;quot;&amp;gt;3&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;/options&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;list&amp;quot; format=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32009&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;select&amp;quot; id=&amp;quot;test10&amp;quot; label=&amp;quot;32010&amp;quot; values=&amp;quot;aa|bb|cc|dd&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test10&amp;quot; type=&amp;quot;string&amp;quot; label=&amp;quot;32010&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;options&amp;gt;&lt;br /&gt;
			&amp;lt;option&amp;gt;aa&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option&amp;gt;bb&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option&amp;gt;cc&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option&amp;gt;dd&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;/options&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;list&amp;quot; format=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32010&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;addon&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;addon&amp;quot; id=&amp;quot;test11&amp;quot; label=&amp;quot;32011&amp;quot; default=&amp;quot;&amp;quot; addontype=&amp;quot;xbmc.metadata.scraper.movies&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test11&amp;quot; type=&amp;quot;addon&amp;quot; label=&amp;quot;32011&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;addontype&amp;gt;xbmc.metadata.scraper.movies&amp;lt;/addontype&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;addon&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32011&amp;lt;/heading&amp;gt;&lt;br /&gt;
		&amp;lt;show more=&amp;quot;true&amp;quot; details=&amp;quot;true&amp;quot;&amp;gt;installed&amp;lt;/show&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;addon&amp;quot; id=&amp;quot;test12&amp;quot; label=&amp;quot;32012&amp;quot; default=&amp;quot;&amp;quot; addontype=&amp;quot;xbmc.metadata.scraper.movies&amp;quot; multiselect=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test12&amp;quot; type=&amp;quot;list[addon]&amp;quot; label=&amp;quot;32012&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;addontype&amp;gt;xbmc.metadata.scraper.movies&amp;lt;/addontype&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;addon&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32012&amp;lt;/heading&amp;gt;&lt;br /&gt;
		&amp;lt;show more=&amp;quot;true&amp;quot; details=&amp;quot;true&amp;quot;&amp;gt;installed&amp;lt;/show&amp;gt;&lt;br /&gt;
		&amp;lt;multiselect&amp;gt;true&amp;lt;/multiselect&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;enum&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;enum&amp;quot; id=&amp;quot;test13&amp;quot; label=&amp;quot;32013&amp;quot; lvalues=&amp;quot;11|12|13|14&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test13&amp;quot; type=&amp;quot;integer&amp;quot; label=&amp;quot;32013&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default&amp;gt;0&amp;lt;/default&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;options&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;11&amp;quot;&amp;gt;0&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;12&amp;quot;&amp;gt;1&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;13&amp;quot;&amp;gt;2&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;14&amp;quot;&amp;gt;3&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;/options&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;spinner&amp;quot; format=&amp;quot;string&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;enum&amp;quot; id=&amp;quot;test14&amp;quot; label=&amp;quot;32014&amp;quot; values=&amp;quot;aa|bb|cc|dd&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test14&amp;quot; type=&amp;quot;integer&amp;quot; label=&amp;quot;32014&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default&amp;gt;0&amp;lt;/default&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;options&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;aa&amp;quot;&amp;gt;0&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;bb&amp;quot;&amp;gt;1&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;cc&amp;quot;&amp;gt;2&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;dd&amp;quot;&amp;gt;3&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;/options&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;spinner&amp;quot; format=&amp;quot;string&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;labelenum&amp;quot;==&lt;br /&gt;
in case you use lvalues in a labelenum control, the saved value will now be the string id, instead of the localized string.&lt;br /&gt;
please adapt your python code for this.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;labelenum&amp;quot; id=&amp;quot;test15&amp;quot; label=&amp;quot;32015&amp;quot; lvalues=&amp;quot;11|12|13|14&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test15&amp;quot; type=&amp;quot;string&amp;quot; label=&amp;quot;32015&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;options&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;11&amp;quot;&amp;gt;11&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;12&amp;quot;&amp;gt;12&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;13&amp;quot;&amp;gt;13&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;14&amp;quot;&amp;gt;14&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;/options&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;spinner&amp;quot; format=&amp;quot;string&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;labelenum&amp;quot; id=&amp;quot;test16&amp;quot; label=&amp;quot;32016&amp;quot; values=&amp;quot;bb|aa|dd|cc&amp;quot; sort=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test16&amp;quot; type=&amp;quot;string&amp;quot; label=&amp;quot;32016&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;options sort=&amp;quot;ascending&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;bb&amp;quot;&amp;gt;bb&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;aa&amp;quot;&amp;gt;aa&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;dd&amp;quot;&amp;gt;dd&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option label=&amp;quot;cc&amp;quot;&amp;gt;cc&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;/options&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;spinner&amp;quot; format=&amp;quot;string&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;slider&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;slider&amp;quot; id=&amp;quot;test17&amp;quot; label=&amp;quot;32017&amp;quot; default=&amp;quot;20&amp;quot; range=&amp;quot;5,5,100&amp;quot; option=&amp;quot;int&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test17&amp;quot; type=&amp;quot;integer&amp;quot; label=&amp;quot;32017&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default&amp;gt;20&amp;lt;/default&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;minimum&amp;gt;5&amp;lt;/minimum&amp;gt;&lt;br /&gt;
		&amp;lt;step&amp;gt;5&amp;lt;/step&amp;gt;&lt;br /&gt;
		&amp;lt;maximum&amp;gt;100&amp;lt;/maximum&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;slider&amp;quot; format=&amp;quot;integer&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;popup&amp;gt;false&amp;lt;/popup&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;slider&amp;quot; id=&amp;quot;test18&amp;quot; label=&amp;quot;32018&amp;quot; default=&amp;quot;0.5&amp;quot; range=&amp;quot;0.0,0.1,1.0&amp;quot; option=&amp;quot;float&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test18&amp;quot; type=&amp;quot;number&amp;quot; label=&amp;quot;32018&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default&amp;gt;0.5&amp;lt;/default&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;minimum&amp;gt;0.0&amp;lt;/minimum&amp;gt;&lt;br /&gt;
		&amp;lt;step&amp;gt;0.1&amp;lt;/step&amp;gt;&lt;br /&gt;
		&amp;lt;maximum&amp;gt;1.0&amp;lt;/maximum&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;slider&amp;quot; format=&amp;quot;number&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;popup&amp;gt;false&amp;lt;/popup&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;slider&amp;quot; id=&amp;quot;test19&amp;quot; label=&amp;quot;32019&amp;quot; default=&amp;quot;20&amp;quot; range=&amp;quot;0,1,100&amp;quot; option=&amp;quot;percent&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test19&amp;quot; type=&amp;quot;integer&amp;quot; label=&amp;quot;32019&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default&amp;gt;20&amp;lt;/default&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;minimum&amp;gt;0&amp;lt;/minimum&amp;gt;&lt;br /&gt;
		&amp;lt;step&amp;gt;1&amp;lt;/step&amp;gt;&lt;br /&gt;
		&amp;lt;maximum&amp;gt;100&amp;lt;/maximum&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;slider&amp;quot; format=&amp;quot;percentage&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;popup&amp;gt;false&amp;lt;/popup&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;file&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;file&amp;quot; id=&amp;quot;test20&amp;quot; label=&amp;quot;32020&amp;quot; default=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test20&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32020&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;writable&amp;gt;false&amp;lt;/writable&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;file&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32020&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;audio&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;audio&amp;quot; id=&amp;quot;test21&amp;quot; label=&amp;quot;32021&amp;quot; default=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test21&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32021&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;writable&amp;gt;false&amp;lt;/writable&amp;gt;&lt;br /&gt;
		&amp;lt;masking&amp;gt;audio&amp;lt;/masking&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;file&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32021&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;video&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;video&amp;quot; id=&amp;quot;test22&amp;quot; label=&amp;quot;32022&amp;quot; default=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test22&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32022&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;writable&amp;gt;false&amp;lt;/writable&amp;gt;&lt;br /&gt;
		&amp;lt;masking&amp;gt;video&amp;lt;/masking&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;file&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32022&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;image&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;image&amp;quot; id=&amp;quot;test23&amp;quot; label=&amp;quot;32023&amp;quot; default=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test23&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32023&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;writable&amp;gt;false&amp;lt;/writable&amp;gt;&lt;br /&gt;
		&amp;lt;masking&amp;gt;image&amp;lt;/masking&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32023&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;executable&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;executable&amp;quot; id=&amp;quot;test24&amp;quot; label=&amp;quot;32024&amp;quot; default=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test24&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32024&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;writable&amp;gt;false&amp;lt;/writable&amp;gt;&lt;br /&gt;
		&amp;lt;masking&amp;gt;executable&amp;lt;/masking&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;file&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32024&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;folder&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;folder&amp;quot; id=&amp;quot;test25&amp;quot; label=&amp;quot;32025&amp;quot; default=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test25&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32025&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;writable&amp;gt;false&amp;lt;/writable&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;path&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32025&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;folder&amp;quot; id=&amp;quot;test26&amp;quot; label=&amp;quot;32026&amp;quot; default=&amp;quot;&amp;quot; option=&amp;quot;writeable&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test26&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32026&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;path&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32026&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;folder&amp;quot; id=&amp;quot;test27&amp;quot; label=&amp;quot;32027&amp;quot; default=&amp;quot;&amp;quot; source=&amp;quot;videos&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test27&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32027&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;sources&amp;gt;&lt;br /&gt;
			&amp;lt;source&amp;gt;videos&amp;lt;/source&amp;gt;&lt;br /&gt;
		&amp;lt;/sources&amp;gt;&lt;br /&gt;
		&amp;lt;writable&amp;gt;false&amp;lt;/writable&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;path&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32027&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;folder&amp;quot; id=&amp;quot;test28&amp;quot; label=&amp;quot;32028&amp;quot; default=&amp;quot;&amp;quot; source=&amp;quot;music&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test28&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32028&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;sources&amp;gt;&lt;br /&gt;
			&amp;lt;source&amp;gt;music&amp;lt;/source&amp;gt;&lt;br /&gt;
		&amp;lt;/sources&amp;gt;&lt;br /&gt;
		&amp;lt;writable&amp;gt;false&amp;lt;/writable&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;path&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32028&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;folder&amp;quot; id=&amp;quot;test29&amp;quot; label=&amp;quot;32029&amp;quot; default=&amp;quot;&amp;quot; source=&amp;quot;pictures&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test29&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32029&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;sources&amp;gt;&lt;br /&gt;
			&amp;lt;source&amp;gt;pictures&amp;lt;/source&amp;gt;&lt;br /&gt;
		&amp;lt;/sources&amp;gt;&lt;br /&gt;
		&amp;lt;writable&amp;gt;false&amp;lt;/writable&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;path&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32029&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;folder&amp;quot; id=&amp;quot;test30&amp;quot; label=&amp;quot;32030&amp;quot; default=&amp;quot;&amp;quot; source=&amp;quot;programs&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test30&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32030&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;sources&amp;gt;&lt;br /&gt;
			&amp;lt;source&amp;gt;programs&amp;lt;/source&amp;gt;&lt;br /&gt;
		&amp;lt;/sources&amp;gt;&lt;br /&gt;
		&amp;lt;writable&amp;gt;false&amp;lt;/writable&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;path&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32030&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;folder&amp;quot; id=&amp;quot;test31&amp;quot; label=&amp;quot;32031&amp;quot; default=&amp;quot;&amp;quot; source=&amp;quot;files&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test31&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32031&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;sources&amp;gt;&lt;br /&gt;
			&amp;lt;source&amp;gt;files&amp;lt;/source&amp;gt;&lt;br /&gt;
		&amp;lt;/sources&amp;gt;&lt;br /&gt;
		&amp;lt;writable&amp;gt;false&amp;lt;/writable&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;path&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32031&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;folder&amp;quot; id=&amp;quot;test32&amp;quot; label=&amp;quot;32032&amp;quot; default=&amp;quot;&amp;quot; source=&amp;quot;local&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test32&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32032&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;sources&amp;gt;&lt;br /&gt;
			&amp;lt;source&amp;gt;local&amp;lt;/source&amp;gt;&lt;br /&gt;
		&amp;lt;/sources&amp;gt;&lt;br /&gt;
		&amp;lt;writable&amp;gt;false&amp;lt;/writable&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;path&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32032&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;action&amp;quot;==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;action&amp;quot; id=&amp;quot;test33&amp;quot; label=&amp;quot;32033&amp;quot; action=&amp;quot;RunScript(script.globalsearch)&amp;quot; option=&amp;quot;close&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test33&amp;quot; type=&amp;quot;action&amp;quot; label=&amp;quot;32033&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;RunScript(script.globalsearch)&amp;lt;/data&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;action&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;close&amp;gt;true&amp;lt;/close&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;action&amp;quot; id=&amp;quot;test34&amp;quot; label=&amp;quot;32034&amp;quot; action=&amp;quot;RunScript(weather.yahoo,Location1)&amp;quot; default=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test34&amp;quot; type=&amp;quot;string&amp;quot; label=&amp;quot;32034&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default/&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;allowempty&amp;gt;true&amp;lt;/allowempty&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;action&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;data&amp;gt;RunScript(weather.yahoo,Location1)&amp;lt;/data&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==type=&amp;quot;fileenum&amp;quot;==&lt;br /&gt;
fileenum type settings (which was basically a spincontrol listing all items) are no longer supported.&lt;br /&gt;
these settings can be converted into a file or folder browser.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;fileenum&amp;quot; id=&amp;quot;test35&amp;quot; label=&amp;quot;32035&amp;quot; values=&amp;quot;resources&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test35&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32035&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default&amp;gt;/home/ronie/.kodi/addons/script.settings-convert/resources&amp;lt;/default&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;file&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32035&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;fileenum&amp;quot; id=&amp;quot;test36&amp;quot; label=&amp;quot;32036&amp;quot; values=&amp;quot;resources&amp;quot; mask=&amp;quot;/&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test36&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32036&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default&amp;gt;/home/ronie/.kodi/addons/script.settings-convert/resources&amp;lt;/default&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;path&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32036&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting type=&amp;quot;fileenum&amp;quot; id=&amp;quot;test37&amp;quot; label=&amp;quot;32037&amp;quot; values=&amp;quot;resources&amp;quot; mask=&amp;quot;*.txt&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|New Setting Format |&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;test37&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32037&amp;quot; help=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;level&amp;gt;0&amp;lt;/level&amp;gt;&lt;br /&gt;
	&amp;lt;default&amp;gt;/home/ronie/.kodi/addons/script.settings-convert/resources&amp;lt;/default&amp;gt;&lt;br /&gt;
	&amp;lt;constraints&amp;gt;&lt;br /&gt;
		&amp;lt;masking&amp;gt;*.txt&amp;lt;/masking&amp;gt;&lt;br /&gt;
	&amp;lt;/constraints&amp;gt;&lt;br /&gt;
	&amp;lt;control type=&amp;quot;button&amp;quot; format=&amp;quot;file&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;heading&amp;gt;32037&amp;lt;/heading&amp;gt;&lt;br /&gt;
	&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=Subsetting=&lt;br /&gt;
if you wish to define a subsetting, you can use the &#039;&#039;&#039;parent&#039;&#039;&#039; attribute with the id of the parent setting as the value.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;setting id=&amp;quot;test37&amp;quot; type=&amp;quot;path&amp;quot; label=&amp;quot;32037&amp;quot; help=&amp;quot;&amp;quot; parent=&amp;quot;test36&amp;quot;&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conditions=&lt;br /&gt;
&lt;br /&gt;
==visible==&lt;br /&gt;
if a setting should always be hidden, you can add this to the setting&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;visible&amp;gt;false&amp;lt;/visible&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if a settings should be conditionallly visible, add a dependencies section to your setting&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dependencies&amp;gt;&lt;br /&gt;
	&amp;lt;dependency type=&amp;quot;visible&amp;quot; setting=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&amp;lt;/dependencies&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==enable==&lt;br /&gt;
if a setting should always be disabled, you can add this to the setting&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;enable&amp;gt;false&amp;lt;/enable&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if a settings should be conditionally enabled, add a dependencies section to your setting&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dependencies&amp;gt;&lt;br /&gt;
	&amp;lt;dependency type=&amp;quot;enable&amp;quot; setting=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== eq / lt / gt ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;eq&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
compare to a bool value of another setting&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dependencies&amp;gt;&lt;br /&gt;
	&amp;lt;dependency type=&amp;quot;enable&amp;quot; setting=&amp;quot;test01&amp;quot;&amp;gt;true&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compare to a int value of another setting&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dependencies&amp;gt;&lt;br /&gt;
	&amp;lt;dependency type=&amp;quot;enable&amp;quot; setting=&amp;quot;test01&amp;quot;&amp;gt;5&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compare to a string value of another setting&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dependencies&amp;gt;&lt;br /&gt;
	&amp;lt;dependency type=&amp;quot;enable&amp;quot; setting=&amp;quot;test01&amp;quot;&amp;gt;something&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;!eq&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dependencies&amp;gt;&lt;br /&gt;
	&amp;lt;dependency type=&amp;quot;enable&amp;quot; operator=&amp;quot;!is&amp;quot; setting=&amp;quot;test01&amp;quot;&amp;gt;true&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dependencies&amp;gt;&lt;br /&gt;
	&amp;lt;dependency type=&amp;quot;enable&amp;quot; operator=&amp;quot;!is&amp;quot; setting=&amp;quot;test01&amp;quot;&amp;gt;0&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dependencies&amp;gt;&lt;br /&gt;
	&amp;lt;dependency type=&amp;quot;enable&amp;quot; operator=&amp;quot;!is&amp;quot; setting=&amp;quot;test01&amp;quot;&amp;gt;&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;lt&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dependencies&amp;gt;&lt;br /&gt;
	&amp;lt;dependency type=&amp;quot;enable&amp;quot; operator=&amp;quot;lt&amp;quot; setting=&amp;quot;test01&amp;quot;&amp;gt;5&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gt&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dependencies&amp;gt;&lt;br /&gt;
	&amp;lt;dependency type=&amp;quot;enable&amp;quot; operator=&amp;quot;gt&amp;quot; setting=&amp;quot;test01&amp;quot;&amp;gt;0&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== and / or==&lt;br /&gt;
multiple dependencies can be defined as such&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dependencies&amp;gt;&lt;br /&gt;
	&amp;lt;dependency type=&amp;quot;enable&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;and&amp;gt;&lt;br /&gt;
			&amp;lt;condition setting=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/condition&amp;gt;&lt;br /&gt;
			&amp;lt;condition setting=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/condition&amp;gt;&lt;br /&gt;
		&amp;lt;/and&amp;gt;&lt;br /&gt;
	&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dependencies&amp;gt;&lt;br /&gt;
	&amp;lt;dependency type=&amp;quot;enable&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;or&amp;gt;&lt;br /&gt;
			&amp;lt;condition setting=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/condition&amp;gt;&lt;br /&gt;
			&amp;lt;condition setting=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/condition&amp;gt;&lt;br /&gt;
		&amp;lt;/or&amp;gt;&lt;br /&gt;
	&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-ons|*]]&lt;br /&gt;
[[Category:Settings]]&lt;br /&gt;
[[Category:Add-on development]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>ThumbOne</name></author>
	</entry>
</feed>