Difference between revisions of "AddonsWML"
From The Battle for Wesnoth Wiki
(Gather common addon keys and tags into one place) |
(Add sidebar) |
||
Line 1: | Line 1: | ||
+ | {{WML Tags}} | ||
+ | |||
Several toplevel tags are used to define an "addon", which is something like a module that the game loads as needed. There are several different types of addons, but they all share some common keys. | Several toplevel tags are used to define an "addon", which is something like a module that the game loads as needed. There are several different types of addons, but they all share some common keys. | ||
Revision as of 17:35, 26 March 2023
Several toplevel tags are used to define an "addon", which is something like a module that the game loads as needed. There are several different types of addons, but they all share some common keys.
Note: The concept of "addon" described on this page is slightly different from an add-on downloaded through the Add-ons Manager – such an add-on can define multiple addons.
All of the following toplevel tags define an addon:
- [era] - A multiplayer era
- [campaign] - A campaign, either single-player or multiplayer
- [scenario] - A campaign scenario
- [multiplayer] - A multiplayer scenario
- [test] - A test or demo scenario
- [modification] - A modification that can be selected in the campaign or multiplayer menu
- [resource] - A resource that can be requested by any other type of addon
Common Tags and Keys
The following tags and keys are supported in all types of addons:
- id: The addon's unique ID.
- addon_min_version: All players in a multiplayer game must have at least this version installed to play together.
- name: The visible name for the addon. (Not supported for [resource] since it is never visible anywhere.)
- description: The detailed description for the addon. (Also not supported for [resource].)
- define=SYMBOL When this addon is active, the preprocessor symbol SYMBOL will be defined. See ifdef for how this can be used to isolate parts of the file from other addons. Besides the addon tag, only the tags [textdomain] and [binary_path] (see BinaryPathWML) should go outside of #ifdef SYMBOL. This symbol will be defined before any .cfg is preprocessed. Note: If for some reason you don't want to place your [binary_path] outside your #ifdef SYMBOL (perhaps it's causing conflicts with other addons), you can use binary-path-independent paths for the textdomain and any assets that are used in the addon tag. This looks like icon=data/add-ons/whatever/something.png – essentially, any path beginning with data/.
- [event] - An event handler that will be registered when the addon is active. See EventWML.
- [lua] - Lua code that will be run when the addon is loaded, before the preload event is fired. See LuaWML.
- [ai]: Defines an AI algorithm that can be selected by players at the join game screen. See here for details. This is not used in single-player. (Note: This is not the place to define faction-specific AI parameters in an era. For that, place the [ai] tag in [multiplayer_side].)
- [options]: Custom options. See OptionWML for details. Note: This may not be supported in [resource].
- [load_resource]: Indicates a resource to load when this addon is loaded.
- id: The ID of the resource.
- [modify_unit_type] (Version 1.15.2 and later only): Changes a unit type while this modification is active. The supported attributes are:
- type : the id of the unit type to change.
- set_experience : changes the unit type's max experience.
- set_cost : changes the unit type's recruit cost.
- set_advances_to : changes the unit type's advancements.
- add_advancement : adds a (list of comma separated) unit type(s) to the possible advancements of this unit type.
- remove_advancement : removes a (list of comma separated) unit type(s) from the possible advancements of this unit type.