From The Battle for Wesnoth Wiki
Revision as of 15:15, 28 October 2020 by Octalot (talk | contribs) ([image]: Rewrite the explanation of the coordinate system)

[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, intro), illuminates, image (gui2, intro, terrain), 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_defense_on, 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 [story] tag is a series of images and text to display as the first part of the intro screen. It can appear in ScenarioWML or (Version 1.13.8 and later only) as ActionWML.

The [deprecated_message], [wml_message], [image], and [insert_tag] tags are allowed beneath [story]. Most other WML tags will not be recognized in this context. Note, however, that messages produced by the first two tags will not appear in the game interface until the actual game map appears.

The only other tags currently recognized within [story] and [part] are [if]/[then]/[else] ((Version 1.13.0 and later only): also [elseif]) and [switch]/[case]. These can be used to show parts conditionally on the values of variables.

See also the journey and battle macros, in the Macro Reference


  • text_layout: specifies the area of the screen where the story text will be displayed. It allows the top, middle and bottom values; the latter is used by default.
  • title_alignment: specifies the alignment of the title box. It allows the left, center and right values; the first is used by default.


[part] is a special tag recognized only beneath [story]. Each [part] represents one image and text. The part is displayed until the user clicks on the "Next>>>" button.

The following key/tags are recognized for [part]:

  • background: the image to display. Story images are usually created specially for this purpose, except for the map.
  • scale_background: Whether to scale the background, default yes.
  • story: (translatable) the text to display below the image.
  • show_title: whether to display the title of the scenario at the top
  • title: specifies a custom title to display instead of the name of the scenario. If specified, it implies show_title=yes. If parent [story] is used through ActionWML with show_title=yes, the title key must be explicitly specified, it does not default to scenario title and leads to missing-title error if omitted.
  • music: change to this music
  • sound: a list of sound files; the engine will choose one at random and play it once while displaying the story part.


A layer of the background of the story screen.

  • image: path to the image file.
  • scale_vertically: whether the image should be scaled to fill the screen in the vertical dimension. Default yes.
  • scale_horizontally: whether the image should be scaled to fill the screen in the horizontal dimension. Default yes.
  • scale: a shortcut to set scale_vertically and scale_horizontally at once. If specified, the values of the former two keys will be ignored.
  • keep_aspect_ratio: whether the aspect ratio of the image should be preserved while scaling. Default yes.
  • tile_vertically: whether the image should be tiled in the vertical direction. Tiling happens after aligning the image to the center of the screen. Default no.
  • tile_horizontally: whether the image should be tiled in the horizontal direction. Tiling happens after aligning the image to the center of the screen. Default no.
  • tile: a shortcut to set tile_vertically and tile_horizontally at once. If specified, the values of the former two keys will be ignored.
  • base_layer: whether is this the layer to align the overlay images to. Default no.


An image to display.

  • x, y: the location to draw the image, using the pixels of the base_layer background image as the coordinate system.
  • centered: If "yes", use the center of the image as the anchor point when placing at the x,y coordinates, if "no" then use the top-left corner.
  • file: the image to display.
  • delay: the time to delay drawing this image.

Each image is placed using the pixels of the background_layer as the coordinate system; each image's location moves to compensate when the background image is scaled. Example: my background image is a map with a city at pixel 160,100; I put a battle marker on that city using x,y,centered=160,100,yes. When a user plays the game they will see the map enlarged to fill the window (regardless of its size), and the battle marker will still be on top of the city.

See Also