EditorWML

From The Battle for Wesnoth Wiki

[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, credits_group, criteria;

D:

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;

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, found_item, for, foreach, 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, 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, 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;

Wesnoth's Map Editor allows configuration of certain aspects via the following WML. All save [brush] are free to be used be UMC content creators. All code within #ifdef EDITOR ... #endif blocks should be placed in your _main.cfg.

The [brush] tag

Each brush tag defines one brush. (0,0) is the hotspot, that is, the brush is always moved so the mouse is over the brush's (0,0) coordinate. The following keys and tags are recognized:

  • name: name for the brush (will possibly show up in the tooltip for the brush)
  • image: icon for the brush to de displayed on the toolbar
  • radius: (int) include in the brushall hexes that are this or closer to the center of the brush, excluding the (0,0) point
  • [relative]: include in the brush a single hex with coordinates relative from the center of the brush
    • x: the relative x coordinate
    • y: the relative y coordinate

A brush that has neither a radius nor any [relative] hexes will be empty which is not desired and a warning or error is to be expected.

The [editor_times] tag

The editor_times tag defines a schedule (time-of-day) for the editor. Standard time of day macros can be used.

  • [time] Time of day definitions
  • id: The identifier of the time schedule
  • name: The translatable name of the schedule

An example using Wesnoth default Time of Day schedule:

#ifdef EDITOR
[editor_times]
    name= _ "Default"
    id=default
    {DEFAULT_SCHEDULE}
[/editor_times]
#endif

The [editor_music] tag

This tag defines a music playlist for the editor. Standard music macros can be used here.

  • Music: Playlist item definitions

Example of code to be put in _main.cfg from the add-on UMC Music Book 1:

#ifdef EDITOR

[binary_path]
    path="data/add-ons/UMC_Music_Book_1"
[/binary_path]

[editor_music]
     
     [music]
          name=a3deap_DontFearTheReaper.ogg
          append=yes
          title="Don't Fear The Reaper"
     [/music]
     [music]
          name=a3deap_GoForTheWorldAgain.ogg
          append=yes
          title="Go For The World Again"
     [/music]
     [music]
          name=a3deap_HighInTheMountains.ogg
          append=yes
          title="High In The Mountains"
     [/music]
     [music]
          name=a3deap_HoistTheColours.ogg
          append=yes
          title="Hoist The Colors"
     [/music]
     [music]
          name=battlecry.ogg
          append=yes
          title="Battlecry"
     [/music]
     [music]
          name=calm-before-storm.ogg
          append=yes
          title="Calm Before The Storm"
     [/music]
     [music]
          name=gameplay06.ogg
          append=yes
          title="Gameplay06"
     [/music]
     [music]
          name=snowfall.ogg
          append=yes
          title="Snowfall"
     [/music]
     [music]
          name=tribal_war_song.ogg
          append=yes
          title="Tribal War Song"
     [/music]
     
[/editor_music]
#endif

The [editor_group] tag

The editor_group tag defines a group of terrains displayed together on the terrain palette. Terrains must use a editor_group attribute from the list of ids specified in the editor_group tags. Custom terrains should be put in their own separate groups.

  • id: the unique id of this group. Duplicates are ignored.
  • name: a name for the group
  • icon: an icon for the group
  • core: whether this group is a "core" group. Non-core (UMC) groups are treated slightly differently by the editor -- a warning may be given to map authors, since maps using non-core terrains need special treatment in the scenario file to work properly. UMC groups should not define this attribute.

In order to get the editor to see custom terrains, you need to do something like the following:

#ifdef EDITOR
[binary_path]
    path=data/campaigns/Under_the_Burning_Suns
[/binary_path]
[editor_group]
    id=utbs
    name= _ "Under the Burning Suns"
    icon="group_custom"
[/editor_group]
{campaigns/Under_the_Burning_Suns/utils/terrain.cfg}
{campaigns/Under_the_Burning_Suns/utils/terrain_graphics.cfg}
#endif

The [item_group] tag

The item_group tag defines a group of items displayed together in the items palette.

  • id: The unique id of the group.
  • icon: An icon to use for the group.
  • name: A name for the group.
  • core: Whether this is a core group. Should not be specified by UMC content.
  • [item]: Definition of the items in the group. See [item].
#ifdef EDITOR
[item_group]
   id=somegroup
   name= _ "Some Group"
   icon=icons/book.png
   [item]
      id=someitem
      name= _ "Some Item"
      image=scenary/fire1.png
      halo=scenery/fire[1~8].png:100
   [/item]
[/item_group]
#endif

Units

The following is a code example for allowing the use of units in the map editor - in this case for an add-on called Great_Legends_Era. The macros folder must be included if any of the units have weapon specials or abilities that make use of those macros.

#ifdef EDITOR
{~add-ons/Great_Legend_Era/macros}
[+units]
    {~add-ons/Great_Legend_Era/units}
    {~add-ons/Great_Legend_Era/units/humans}
    {~add-ons/Great_Legend_Era/units/trolls}
    {~add-ons/Great_Legend_Era/units/elementals}
    {~add-ons/Great_Legend_Era/units/knightmare}
    {~add-ons/Great_Legend_Era/units/orcs}
    {~add-ons/Great_Legend_Era/units/elves-desert}
    {~add-ons/Great_Legend_Era/units/vampires}
    {~add-ons/Great_Legend_Era/units/gargoyles}
    {~add-ons/Great_Legend_Era/units/monsters}
[/units]
#endif
This page was last edited on 9 November 2022, at 15:30.