Addoninfo.txt

The AddonInfo.txt is a plain-text file which contains an addon’s metadata. It resides in the Root folder of addons. The folder containing "materials", "Models", "Sound", ect.
This file and its functionality were introduced with the , and is written in the KeyValues 1 structure.
In case you upload the addon to the Steam Workshop, the workshop submission's metadata (name, version, author, and description) will be used instead, but the AddonContent flags will still be read from the addoninfo.txt.
Both the and the deprecated external application addoninstaller.exe will parse this file, though with significant differences.
 will parse this file from all addons listed in addonlist.txt when loading search paths from gameinfo.txt at startup and with subsequent calls to ConCommand .
Addoninstaller.exe only parses addoninfo.txt when staging addons during user-initialized installation.
== Specification ==
AddonInfo.txt is a text files that determine the addon's name, version number, description and some content tags.
You can copy this template into a text file, edit the data according to what you need and save it as "Addoninfo.txt" in the Root folder of your addon. The folder containing "materials", "Models", "Sound", ect.
"AddonInfo"
{
	addonversion		"1.0"				//Max 31 	characters. Allows decimals.
	addontitle			"Addon_Name_Here"	//Max 127 	characters.
	addonauthor			"Author_Name_Here"	//Max 119 	characters.
	addonDescription	"Description_Here"	//Max 1023 	characters.
	
	// These booleans act as content descriptors, showing up as tags ingame.
	// Users can filter addons by these tags and see what's inside without reading the description.
	// Set to 1 where applicable. You can use multiple, such as "Weapons" and "skins".
	addonContent_Campaign		0	//Has multiple maps that string into a campaign.				Represented ingame as: Campaigns
	addonContent_Map			0 	//Has at least one map.											Represented ingame as: Campaigns
	addonContent_Skin			0 	//Modifies an existing model or texture.						Represented ingame as: Skins
	addonContent_weapon			0 	//Modifies a weapon in some way. (or adds melee weapons)		Represented ingame as: Weapons
	addonContent_BossInfected	0 	//Modifies the Tank or the Witch.								Represented ingame as: Infected
	addonContent_CommonInfected	0 	//Modifies CI	.												Represented ingame as: Infected
	addonContent_Survivor		0 	//Modifies Survivors.											Represented ingame as: Survivors
	addonContent_Sound			0 	//Modifies a sound. (not for when a map is shipped with sounds)	Represented ingame as: Sounds
	addonContent_Music			0 	//Modifies specifically music.									Represented ingame as: Sounds
	addonContent_Script			0 	//Modifies a script.											Represented ingame as: Scripts
	addonContent_prop			0 	//Modifies a prop												Represented ingame as: Items
}
=== Non-existent or deprecated keys ===
The following keys either used to exist at one point, or were never properly implemented in the first place.
Some of these can still be seen in the “DEADLINE” and “DEADLINE 2” AddonInfo.txt files, which were supposed to be an example, but they serve no purpose.
Key 	Description
addonSteamAppID 	The AppID of the addon’s target game. Only addoninstaller.exe uses this.
addonTagline 	The addon’s subtitle or tagline. May have had a similar purpose to key poster/posterTagline in mission files.
addonAuthorSteamID 	The addon author’s SteamID. Supposedly used to construct a URL to the author’s Steam profile page.
addonSteamGroupName 	The addon’s Steam group. Supposedly used to construct a URL to the addon’s Steam group page.
addonURL0 	The addon’s homepage. May have had a similar purpose to key Website in mission files.
addonContent_SurvivaladdonContent_VersusaddonContent_Scavenge	If the addon provides custom campaigns supporting the Survival, Versus, or Scavenge game modes. This functionality is provided by mission files.
addonContent_Prefab 	If the addon provides custom .
addonContent_Spray 	If the addon provides custom logos.
addonContent_BackgroundMovie 	If the addon provides custom background movies.
Content_Weapon 	If the addon provides custom weapons (e.g., “…a new weapon, i.e. guns, explosives, booby traps, hot tar, etc.”).
Content_WeaponModel 	If the addon provides custom weapon model.
addonDescription_ 	The addon’s description localized for locale , where is an ISO 639-1 code in ALL CAPS.
== Content tag handling ==
An addon’s addoninfo content keys provide an abstraction over ’s implementation-specific content tags.
 will convert all keys into an internal representation (typically, a bitfield).
A content key correspond to its internal tag; some keys provide redundant meaning useful only to authors and distributors.
 will use these content tags to describe and filter addons in the CBaseModFrame Addons.
=== In and ===
 maintains a one-to-one correspondance between content keys and content tags. The handler closely resembles that found in the SDK.
 will generate the content label by concatenating the VGUI localization strings corresponding to the given content tag followed into an array of 60 wide characters.
The right-most comma will always be replaced with a NULL terminator.
The effective length of the label is 59 characters since the last character will always be a NULL terminator.
=== In ===
 stores the content keys for each addon as an int16_t representing the following bitfield (assume little-endian):
 content tag bitfield''
Bit	15 	14 	13 	12 	11 	10 	9 	8 	7 	6 	5 	4 	3 	2 	1 	0
Tag	N/A	N/A	N/A	N/A	CONTENT_ITEM 	CONTENT_UI	CONTENT_SCRIPT 	CONTENT_SOUND 	CONTENT_SURVIVOR 	CONTENT_INFECTED 	CONTENT_MUTATION	CONTENT_WEAPON 	CONTENT_SKIN 	CONTENT_MISCELLANEOUS	CONTENT_CAMPAIGN 	CONTENT_RESERVED
Key	N/A	N/A	N/A	N/A	addonContent_prop	N/A 	addonContent_Script	addonContent_SoundaddonContent_Music	addonContent_Survivor	addonContent_BossInfectedaddonContent_CommonInfected	N/A 	addonContent_Weapon	addonContent_Skin	N/A 	addonContent_CampaignaddonContent_Map	N/A
The content tags CONTENT_MISCELLANEOUS, CONTENT_MUTATION, and CONTENT_UI can be set .
 will generate the content label by concatenating the VGUI localization strings corresponding to the given content tag followed into an array of 60 wide characters.
The right-most comma will always be replaced with a NULL terminator.
The effective length of the label is 59 characters since the last character will always be a NULL terminator.
== Examples ==
The following are outdated examples of old "Example campaigns". They hold now deprecated strings, but they're still useful as a basic example of what an addoninfo would look like.
Avoid using the “DEADLINE” or “DEADLINE 2” samples as templates. Use the one above.
=== “DEADLINE” ===
Download Valve’s “DEADLINE” campaign from here.
The following snippet matches the original exactly as of April 30, 2023.
// The addoninfo.txt file is a metadata file that is required by all Left 4 Dead Add-ons. 
"AddonInfo"
{
	addontitle		"Dead Line" // Add-on title that shows up in Add-ons list. ~20 chars max
	addonversion	 1.3 // Add-on version.
	addontagline		"Catch the last subway... out of hell."	 // Add-on tagline or wrap-up- a short description. ~100 chars max
	addonauthor 		"Valve" // Name/alias of the author
	addonauthorSteamID 	"http://steamcommunity.com/groups/Valve" // Steam Profile URL of author or group
	
	addonContent_Campaign		1 	 //This addon provides muliple connected maps with a finale
	
	addonURL0 "http://media.steampowered.com/apps/513/deadline.html"	//An html home page for the add-on that includes a download link.
	
	// short description that appears in the Add-on list screen...
	addonDescription "Survivors must escape on a subway train in this short tutorial example campaign. Get source files and tools for creating your own campaigns by downloading the Left 4 Dead Authoring tools SDK, which is available under the 'Tools' tab in Steam."
	
	// Authors can add localized descriptions here. (Not yet supported)
	addonDescription_FR "Les survivants doivent s'échapper en métro dans cette carte du tutoriel. Obtenez les fichiers et les outils pour créer vos propres cartes en chargeant les outils de création SDK Left 4 Dead qui sont disponibles sous l'onglet "Outils" sur Steam."	
}
=== “DEADLINE 2” ===
Download Valve’s “DEADLINE 2” campaign from here.
The following snippet matches the original exactly as of April 30, 2023.
// The addoninfo.txt file is a metadata file that is required by all Source Engine Add-ons.
"AddonInfo"
{
	addonSteamAppID 550 // 500 is the app ID for Left 4 Dead, 550 for Left 4 Dead 2
	addontitle "Dead Line 2" // Add-on title that shows up in Add-ons list. ~20 chars max
	addonversion	 1.0 // Add-on version.
	addontagline "Catch the last subway... out of hell... Again!"	 // Add-on tagline or wrap-up- a short description. ~100 chars max
	addonauthor "Valve" // Name/alias of the author
	addonSteamGroupName "deadline2add-on" // (Optional) Steam group related to the add-on. We use this to construct a URL to the group page.
	addonauthorSteamID "YasserMalaika" // (Optional) Steam ID of author. We use this to construct a URL to the author's page.
	addonContent_Campaign 1 	 //This addon provides muliple connected maps with a finale
	addonURL0 "http://media.steampowered.com/apps/513/deadline2.html" //An html home page for the add-on that includes a download link.
	
	// short description that appears in the Add-on list screen...
	addonDescription "Survivors must escape on a subway train in this short tutorial example campaign. Get source files and tools for creating your own campaigns by downloading the Left 4 Dead 2 Authoring tools SDK, which is available under the 'Tools' tab in Steam."
	
	// Authors can add localized descriptions here. (Not yet supported)
	addonDescription_FR "Les survivants doivent s'échapper en métro dans cette carte du tutoriel. Obtenez les fichiers et les outils pour créer vos propres cartes en chargeant les outils de création SDK Left 4 Dead 2 qui sont disponibles sous l'onglet "Outils" sur Steam."	
}
== See also ==
* L4D Campaign Add-on Tutorial
* L4D 2 Campaign Add-on Tutorial
* Deadline Mission File
Category:Source
Category:Left 4 Dead
Category:Left 4 Dead 2
Category:Plain text files