From The Battle for Wesnoth Wiki
Revision as of 00:58, 12 August 2008 by Opensourcejunkie (talk | contribs) (added link to SideSwitchingWML (not yet created))

[edit]WML Tags


abilities, about, add_ai_behavior, advance, advanced_preference, advancefrom, advancement, advances, affect_adjacent, ai, allied_with, allow_end_turn, allow_extra_recruit, allow_recruit, allow_undo, and, animate, animate_unit, animation, aspect, attack, attack_anim, attacks, avoid;


base_unit, berserk, binary_path, break, brush;


campaign, cancel_action, candidate_action, capture_village, case, chance_to_hit, change_theme, chat, choose, clear_global_variable, clear_menu_item, clear_variable, color_adjust, color_range, command (action, replay), continue, criteria;


damage, death, deaths, default, defend, defends, defense, delay, deprecated_message, destination, difficulty, disable, disallow_end_turn, disallow_extra_recruit, disallow_recruit, do, do_command, drains, draw_weapon_anim;


editor_group, editor_music, editor_times, effect, else (action, animation), elseif, endlevel, end_turn (action, replay), enemy_of, engine, entry, era, event, extra_anim;


facet, facing, fake_unit, false, feedback, female, filter (concept, event), filter_adjacent, filter_adjacent_location, filter_attack, filter_attacker, filter_base_value, filter_condition, filter_defender, filter_enemy, filter_location, filter_opponent, filter_own, filter_owner, filter_radius, filter_recall, filter_second, filter_second_attack, filter_self, filter_side, filter_vision, filter_weapon, filter_wml, find_path, fire_event, firststrike, floating_text, for, foreach, frame;


game_config, get_global_variable, goal, gold, gold_carryover;


harm_unit, has_ally, has_attack, has_unit, have_location, have_unit, heal_on_hit, heal_unit, healed_anim, healing_anim, heals, hide_help, hide_unit, hides;


idle_anim, if (action, animation), illuminates, image, init_side, insert_tag, inspect, item, item_group;


jamming_costs, join;


kill, killed;


label, language, leader, leader_goal, leadership, leading_anim, levelin_anim, levelout_anim, lift_fog, limit, literal, load_resource, locale, lock_view, lua;


male, menu_item, message, micro_ai, missile_frame, modification, modifications, modify_ai, modify_side, modify_turns, modify_unit, modify_unit_type, move, move_unit, move_unit_fake, move_units_fake, movement_anim, movement costs, movetype, multiplayer, multiplayer_side, music;


not, note;


object, objective, objectives, on_undo, open_help, option, options, or;


part, petrifies, petrify, place_shroud, plague, poison, portrait, post_movement_anim, pre_movement_anim, primary_attack, primary_unit, print, put_to_recall_list;


race, random_placement, recall (action, replay), recalls, recruit, recruit_anim, recruiting_anim, recruits, redraw, regenerate, remove_event, remove_item, remove_object, remove_shroud, remove_sound_source, remove_time_area, remove_unit_overlay, repeat, replace_map, replace_schedule, replay, replay_start, reset_fog, resistance (ability, unit), resistance_defaults, resource, return, role, rule;


save, scenario, scroll, scroll_to, scroll_to_unit, secondary_attack, secondary_unit, section, select_unit, sequence, set_extra_recruit, set_global_variable, set_menu_item, set_recruit, set_specials, set_variable, set_variables, sheath_weapon_anim, show_if (message, set_menu_item), show_objectives, side, skirmisher, slow, snapshot, sound, sound_source, source (replay, teleport), special_note, specials, split, stage, standing_anim, statistics, status, store_gold, store_items, store_locations, store_map_dimensions, store_reachable_locations, store_relative_direction, store_side, store_starting_location, store_time_of_day, store_turns, store_unit, store_unit_defense, store_unit_type, store_unit_type_ids, store_villages, story, swarm, switch, sync_variable;


target, team, teleport (ability, action), teleport_anim, terrain, terrain_defaults, terrain_graphics, terrain_mask, terrain_type, test, test_condition, text_input, textdomain, theme, then, tile, time, time_area, topic, toplevel, trait, transform_unit, traveler, true, tunnel, tutorial;


unhide_unit, unit, unit_overlay, unit_type, unit_worth, units, unlock_view, unpetrify, unstore_unit, unsynced;


value, variable, variables, variant, variation, victory_anim, village, vision_costs, volume;


while, wml_message, wml_schema;



the [side] tag

The [side] tag is used to describe a side in a particular scenario.

The following keys are recognized:

  • side: a digit. The leader of this side is placed on the tile represented by this digit (see BuildingMaps). When defining sides, they must be defined in order since the side number is checked against the number of sides seen so far.
  • controller: how moves for this side should be inputted.
    • ai: the Wesnoth AI makes this side's moves. This is the default setting.
    • human: a player controls this side's moves.
    • null: the side doesn't get a turn to move and doesn't have a leader generated from the contents of the [side] tag. (It still can get units from [unit] tags in the [side] tag.)
  • no_leader: if "no" (default), then keys describing a unit which will begin on the side's keep will be the remainder of the [side] tag, See SingleUnitWML. Note that if the keys x, y are included, the leader will begin there regardless of keep location. If this side has a recall list from a previous level, then the recall list will be searched for a leader (using canrecruit=yes) and if one is found it will be used instead of the one described in the [side] tag. Typical keys used for defining the leader unit are type (mandatory), description, id Template:DevFeature, user_description, name Template:DevFeature and unrenamable=yes, see UnitWML.
  • recruit: a list of unit types. At the beginning of the scenario, the side gains recruitment of these units.
  • gold: the starting gold for this side. Default 100. (If gold is carried over from a previous scenario, this value is the minimum starting gold.)
  • income: the base income for this side, default 0. This is added to base_income, [game_config] to determine the side's base income. (see GameConfigWML).
  • fog: if 'yes', this side cannot see any tiles it is not within vision of, except at the start.
  • shroud: if 'yes', this side cannot see any tiles it has not moved within sight of.
  • shroud_data: describes the area which this team has de-shrouded. An example:

This would leave the first column on the map unaltered and would change the second column for 11 tiles. A '0' means: shrouded, '1' means unshrouded. You can either call an external file using {@filename} (see PreprocessorRef) or place the data in quotes. For making an external file see BuildingScenariosShroudData.

  • persistent: whether the side exists in any other scenarios. If '1'(yes), then save_id(see below) becomes active for this side. Default '0'(no); when controller=human, this is always '1'.
  • save_id: default description if available, 'Unknown' otherwise. The ID of the side with respect to the previous and next scenarios. Used to carry over the side's recall list (including the side's leader), recruitment list, and starting gold from scenario to scenario. Also used for the side's displayed name in the victory gold-calculation dialog. See SideSwitchingWML.
  • team_name: a non translatable string representing the team's description. Sides with the same team_name are allied. Default side.
  • user_team_name: a translatable string representing the team's description. This has no effect on alliances. Default team_name.
  • colour: May be either a numeric color index or a color name (e.g. 'blue', 'purple', 'orange', etc.). The numeric form is deprecated. The default list of numbers and corresponding colours can be found in data/core/team_colors.cfg.
  • flag: a custom flag animation to use instead of the default one to mark captured villages. An automatic side-coloring is applied.
    • Example animation that has three frames and loops every 750ms: flag=misc/myflag-1.png:250,misc/myflag-2.png:250,misc/myflag-3.png:250
  • flag_icon: a custom flag icon to indicate the side playing in the statusbar (a size of 24x16 is recommended). An automatic side-coloring is applied.
  • village_gold: the amount of gold given to this side per village it controls per turn. Default specified in village_income, [game_config] (GameConfigWML). Note: If you need village gold to be 0. Set the variable to -1.
  • share_maps: whether sides allied with this side see all terrains that this side sees, if they are on shroud.
  • share_view: whether sides allied with this side see the units that this side sees, if they are on FoW (fog).
  • disallow_observers: prevents observers from seeing this side turn. (default: no)
  • [ai] if controller=ai, gives parameters to the AI. See AiWML.
  • [village] describes a village the side begins in control of.
    • x, y the location of the village.
  • [unit] describes a unit which begins on the side. See SingleUnitWML. If the side has a recall list and the unit is not given a location, it will start on the recall list. Note that the side attribute under [unit] will be ignored, as the side will come from the side attribute of [side].

The following keys are multiplayer only:

  • allow_player: if false then this side will not be allowed to be modified and will be hidden during game creation.
  • team_lock: if true then this side's team is not allowed to be modified.
  • colour_lock: if true then this side's color is not allowed to be modified.
  • gold_lock: if true then this side's gold is not allowed to be modified.
  • income_lock: if true then this side's income is not allowed to be modified.
  • faction: this lock this side to this faction.
  • faction_from_recruit Template:DevFeature: if true then this side will be locked to the faction that matches the recruits better. (this was enabled by default in 1.4)

See Also