Difference between revisions of "EditorWML"

From The Battle for Wesnoth Wiki
(The [editor_group] tag)
(The [item_group] tag: use correct key names in example WML)
 
(17 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
{{WML Tags}}
 
{{WML Tags}}
Editor2, the new map editor in Wesnoth 1.5, has some adjustable behaviour that can de configured by the following WML. Note that this has very little to do with the "old", 1.4-era editor shipped as a separate executable.
+
 
 +
Wesnoth's Map Editor allows configuration of certain aspects via the following WML. All save <b>[brush]</b> 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 ==
 
== The [brush] tag ==
Line 13: Line 14:
  
 
==The [editor_times] tag==
 
==The [editor_times] tag==
The editor_times tag defines lighting presets (time-of-day) for the editor. The time-of-days should have different RGB values, otherwise extra aliases for the same RGB value set may be ignored. Standard time of day macros can be used.
+
The editor_times tag defines a schedule (time-of-day) for the editor. Standard time of day macros can be used.
 
* '''[[TimeWML|[time]]]''' Time of day definitions
 
* '''[[TimeWML|[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:
 +
 +
<syntaxhighlight lang=wml>
 +
#ifdef EDITOR
 +
[editor_times]
 +
    name= _ "Default"
 +
    id=default
 +
    {DEFAULT_SCHEDULE}
 +
[/editor_times]
 +
#endif
 +
</syntaxhighlight>
  
 
==The [editor_music] tag==
 
==The [editor_music] tag==
This tag defines the music playlist for the editor. Standard music macros can be used here.
+
This tag defines a music playlist for the editor. Standard music macros can be used here.
* '''[[InterfaceActionsWML|[music]]]''': Playlist item definitions
+
* '''[[MusicListWML|Music]]''': Playlist item definitions
  
==The [editor_tool_hint] tag ==
+
Example of code to be put in _main.cfg from the add-on UMC Music Book 1:
This tag defines tooltips for the editor tools like paint, fill and select.
+
<syntaxhighlight lang=wml>
* '''id''': tool (mouse action) id
+
#ifdef EDITOR
* '''text''': the tooltip text
 
  
==The editor_group tag ==
+
[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
 +
</syntaxhighlight>
 +
 
 +
==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.
 
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.
 
* '''id''': the unique id of this group. Duplicates are ignored.
Line 31: Line 101:
 
* '''icon''': an icon 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.
 
* '''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:
 +
 +
<syntaxhighlight lang=wml>
 +
#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
 +
</syntaxhighlight>
 +
 +
==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 [[InterfaceActionsWML#.5Bitem.5D|[item]]].
 +
 +
<syntaxhighlight lang=wml>
 +
#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
 +
</syntaxhighlight>
 +
 +
== 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.
 +
 +
<syntaxhighlight lang=wml>
 +
#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
 +
</syntaxhighlight>
 +
 +
[[Category: WML Reference]]

Latest revision as of 15:30, 9 November 2022

[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;

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.