Difference between revisions of "ReplayWML"

From The Battle for Wesnoth Wiki
(Specifies that it supports StandardLocationFilter with all its capabilities, although normally only x,y is used)
(Doesn't support standard location filter, only x,y position. I got confused with [find_path])
Line 21: Line 21:
 
** '''weapon''': the index number of the weapon. Weapons are indexed by the unit designer.
 
** '''weapon''': the index number of the weapon. Weapons are indexed by the unit designer.
 
** '''defender_weapon''': the index number of the defenders weapon. Weapons are indexed by the unit designer, '-1' to choose the best weapon locally. The '-1' option is deprecated because it can cause OOS.
 
** '''defender_weapon''': the index number of the defenders weapon. Weapons are indexed by the unit designer, '-1' to choose the best weapon locally. The '-1' option is deprecated because it can cause OOS.
** '''[source]''': the location of the attacking unit. Use a [[StandardLocationFilter]].
+
** '''[source]''': the location of the attacking unit.
** '''[destination]''': the location of the defending unit. Use a [[StandardLocationFilter]].
+
** '''[destination]''': the location of the defending unit.
 
* '''[disband]''': the player removes a unit from his recall list.
 
* '''[disband]''': the player removes a unit from his recall list.
 
** '''value''' the id of the removed unit.
 
** '''value''' the id of the removed unit.
Line 29: Line 29:
 
* '''[fire_event]''': a specific event was raised. This is mainly used for right-click menu items. ([set_menu_item])
 
* '''[fire_event]''': a specific event was raised. This is mainly used for right-click menu items. ([set_menu_item])
 
** '''raise''': the name of the event
 
** '''raise''': the name of the event
** '''[source]''': the location of the event. Use a [[StandardLocationFilter]].
+
** '''[source]''': the location of the event
 
** '''[set_variable]''' (deprecated): set WML variable(s) before firing.  
 
** '''[set_variable]''' (deprecated): set WML variable(s) before firing.  
 
*** '''name''': the name of the variable
 
*** '''name''': the name of the variable

Revision as of 15:05, 31 January 2023

[edit]WML Tags

A:

abilities, about, achievement, achievement_group, add_ai_behavior, 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 (replay, weapon), attack_anim, attacks (special, stats), avoid;

B:

base_unit, background_layer, berserk, binary_path, break, brush;

C:

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

D:

damage, damage_type, 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;

E:

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

F:

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_student, filter_vision, filter_weapon, filter_wml, find_path, fire_event, firststrike, floating_text, fonts, for, foreach, found_item, frame;

G:

game_config, get_global_variable, goal, gold, gold_carryover;

H:

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

I:

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

J:

jamming_costs, join;

K:

kill, killed;

L:

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

M:

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;

N:

not, note;

O:

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

P:

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

R:

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_trait, remove_unit_overlay, repeat, replace_map, replace_schedule, replay, replay_start, reset_fog, resistance (ability, unit), resistance_defaults, resolution, resource, return, role, rule;

S:

save, scenario, screen_fade, scroll, scroll_to, scroll_to_unit, secondary_attack, secondary_unit, section, select_unit, sequence, set_achievement, set_extra_recruit, set_global_variable, set_menu_item, set_recruit, set_specials, set_variable, set_variables, sheath_weapon_anim, show_if (message, objective, set_menu_item), show_objectives, side, skirmisher, slider, 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, sub_achievement, switch, sync_variable;

T:

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

U:

unhide_unit, unit (action, scenario), unit_overlay, unit_type, unit_worth, units, unlock_view, unpetrify, unstore_unit, unsynced;

V:

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

W:

while, wml_message, wml_schema;

Z:

zoom;

The [command] tag

The [command] tag is used to specify an action in a replay. It has the following attributes:

  • dependent if true, this command is not a lone-standing command and instead belongs to an earlier command, for example an advancement choice for an earlier attack command which issued an advancement.
  • from_side the side which issued the command. Only present for dependent commands.
  • sent used internally in networked mp, to know which commands were already sent to the other clients.

The following tags are recognized for dependent=no(default):

  • [start]: is used to initialize the replay so that generated random numbers can be saved.
  • [move]: the player moved a unit.
    • x,y: the path the unit walks.
    • skip_sighted: whether the unit doesn't stop when discovering another unit, possible values are 'only_ally', 'all' or no, (default no).
  • [recruit]: the player recruited a unit.
    • type: the id of the type of unit recruited.
    • x and y: the castle tile the unit is recruited on.
    • [from]
      • x and y: the keep tile the unit is recruited from.
  • [recall]: the player recalled a unit. Same keys as [recruit], except that value is the id of the unit being recalled.
  • [attack]: the player attacked.
    • weapon: the index number of the weapon. Weapons are indexed by the unit designer.
    • defender_weapon: the index number of the defenders weapon. Weapons are indexed by the unit designer, '-1' to choose the best weapon locally. The '-1' option is deprecated because it can cause OOS.
    • [source]: the location of the attacking unit.
    • [destination]: the location of the defending unit.
  • [disband]: the player removes a unit from his recall list.
    • value the id of the removed unit.
  • [end_turn]: the player ended his turn.
  • [init_side]: new turn is starting for a side. This fires begin of turn events.
  • [fire_event]: a specific event was raised. This is mainly used for right-click menu items. ([set_menu_item])
    • raise: the name of the event
    • [source]: the location of the event
    • [set_variable] (deprecated): set WML variable(s) before firing.
      • name: the name of the variable
      • value: a string value (literal)
  • [lua_ai] (Version 1.13.12 and later only) This has been removed.
    • code the lua code that is executed.
  • [custom_command] (Version 1.13.12 and later only) Executes a custom command registered by Lua code
    • name: The name of the custom command to run.
    • [data]: Arbitrary data to be passed to the custom command.
  • [auto_shroud] a player toggled delayed shroud update
    • active whether automatic shroud updates will be active.
  • [update_shroud] a player manually updated shroud.

Non dependent commands can have a [checkup] tag which is used to check whether the data generated in the replay matches the data generated during the original game, The [checkup] tag can contain different [result] tags whose content is different for the different actions. For [attack] commands the [result]s give information about the single hits and can have the following attributes:

    • chance: the percent chance that the attack had to hit.
    • damage: the amount of damage that the attack would do if it hits.
    • hits: whether the attack hits.

Or

    • dies: whether the defender dies from the hit.

The following tags are recognized for dependent=true:

  • [choose]: the player was given an option by the scenario or for an advancement path.
    • value: the index number of the option chosen. Index numbers are given by the scenario designer.
  • [input]: if a lua code used LuaWML:Misc#wesnoth.synchronize_choice this tag contains the returned table.
  • [global_variable] a WML code used with [get_global_variable]
  • [random_seed] A user actions uses the rng and thus new random seed is needed.

See Also