Difference between revisions of "ModificationWML"

From The Battle for Wesnoth Wiki
(The [modification] toplevel tag)
m (spelling)
 
(9 intermediate revisions by 6 users not shown)
Line 2: Line 2:
 
== The [modification] toplevel tag ==
 
== The [modification] toplevel tag ==
  
This tag describes an SP or MP modification. A modification is, practically speaking, a bunch of events which get included into the scenario if the modification is enabled.
+
This [[AddonsWML|addon module]] tag describes an SP or MP modification. A modification is, practically speaking, a bunch of events which get included into the scenario if the modification is enabled.
  
The following keys/tags are recognized for '''[modification]''':
+
The following keys/tags are recognized for '''[modification]''', in addition to all the common [[AddonsWML|addon module keys and tags]]:
  
* '''id''': identifier for the modification. Must be unique.
+
* '''type''': where the modification will be available for playing. Possible values are ''sp'', ''mp'', and ''hybrid''. hybrid equals mp + sp. N.B. If omitted it defaults to hybrid. Availability in SP also depends on whether or not modification tag is inside a multiplayer define. There is a bug where one can use modifications (not having type=mp) inside such a define by loading multiplayer and returning and then selecting campaign from the main screen.
* '''name''': the name of the modification, as displayed to the user.
 
* '''type''': where the modification will be available for playing. Possible values are ''sp'', ''mp'', and ''hybrid''.
 
* '''description''': a brief description for the modification.
 
 
* '''allow_scenario''': a list of scenario ids. Only the scenarios with matching ids will be allowed to be played with this modification.
 
* '''allow_scenario''': a list of scenario ids. Only the scenarios with matching ids will be allowed to be played with this modification.
 
* '''disallow_scenario''': a list of scenario ids. Only the scenarios with matching ids will not be allowed to be played with this modification. Cannot be used in parallel with allow_scenario.
 
* '''disallow_scenario''': a list of scenario ids. Only the scenarios with matching ids will not be allowed to be played with this modification. Cannot be used in parallel with allow_scenario.
Line 19: Line 16:
 
* '''ignore_incompatible_era''': same as ignore_incompatible_scenario, but for eras.
 
* '''ignore_incompatible_era''': same as ignore_incompatible_scenario, but for eras.
 
* '''ignore_incompatible_modification''': same as ignore_incompatible_scenario, but for modifications.
 
* '''ignore_incompatible_modification''': same as ignore_incompatible_scenario, but for modifications.
* '''require_modification''': a boolean value; if set to yes, all players have to have this modification installed to join the game. Default no.
+
* '''require_modification''': a boolean value; if set to yes, all players have to have this modification installed to join the game. Default no in older versions and yes since 1.18.
* '''addon_min_version''': {{DevFeature1.13|0}} the minimum version of your add-on with which this content is backwards compatible. Compare with the version string given in [[PblWML]]. Clients in multiplayer must have add-on versions agreeing with the ''addon_min_versions'' of eachothers content in order to play, and will be prompted to update otherwise.
 
* '''[event]''': any [event] children written inside the [modification] tag will get included into scenarios that are played with this modification enabled. See [[EventWML]].
 
* '''[lua]''': any [lua] children written inside the [modification] tag will get included into scenarios that are played with this modification enabled.
 
* '''[options]''': custom options. See [[OptionWML]] for details.
 
* '''[ai]''': See [[AiWML]] for details.
 
* '''[modify_unit_type]''' {{DevFeature1.15|2}}: Changes a unit type while this modification is active the supported attributes are:
 
** '''type''' : the id of the unit type to change.
 
** '''set_experience''' : changes the unit type's max experience.
 
** '''set_cost''' : changes the unit type's recruit cost.
 
** '''set_advances_to''' : changes the unit type's advancements.
 
** '''add_advancement''' : adds a unit type to the possible advancements of this unit type.
 
** '''remove_advancement''' : removes a unit type to the possible advancements of this unit type.
 
  
 
== The [resource] toplevel tag ==
 
== The [resource] toplevel tag ==
Line 37: Line 22:
 
{{DevFeature1.13|2}}
 
{{DevFeature1.13|2}}
  
The '''[resource]''' toplevel tag is similar to [modification] in that it contains [event] and [lua] tags which are then copied into the scenario. However, unlike [modification], resources defined this way are completely hidden from the user. To load a resource, use '''[load_resource] id=<i><resource id></i>''' in [scenario], [multiplayer], [era], [campaign], [modification], or [resource].
+
The '''[resource]''' toplevel tag is another type of [[AddonsWML|addon module tag]] which is similar to '''[modification]''' but is invisible to the player. It can only be loaded on developer request, by the '''[load_resource]''' tag. It supports most of the common [[AddonsWML|addon module keys and tags]]. Besides that, there is the '''require_resource''' key which defaults to yes.

Latest revision as of 22:40, 26 July 2024

[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 [modification] toplevel tag

This addon module tag describes an SP or MP modification. A modification is, practically speaking, a bunch of events which get included into the scenario if the modification is enabled.

The following keys/tags are recognized for [modification], in addition to all the common addon module keys and tags:

  • type: where the modification will be available for playing. Possible values are sp, mp, and hybrid. hybrid equals mp + sp. N.B. If omitted it defaults to hybrid. Availability in SP also depends on whether or not modification tag is inside a multiplayer define. There is a bug where one can use modifications (not having type=mp) inside such a define by loading multiplayer and returning and then selecting campaign from the main screen.
  • allow_scenario: a list of scenario ids. Only the scenarios with matching ids will be allowed to be played with this modification.
  • disallow_scenario: a list of scenario ids. Only the scenarios with matching ids will not be allowed to be played with this modification. Cannot be used in parallel with allow_scenario.
  • allow_era: same as allow_scenario, but for eras.
  • disallow_era: same as disallow_scenario, but for eras. Can't be used with allow_era.
  • allow_modification: same as allow_scenario, but for modifications.
  • disallow_modification: same as disallow_scenario, but for modifications. Can't be used with allow_modification.
  • ignore_incompatible_scenario: a list of scenario ids. The scenarios with matching ids will be considered compatible with this modification regardless their dependencies.
  • ignore_incompatible_era: same as ignore_incompatible_scenario, but for eras.
  • ignore_incompatible_modification: same as ignore_incompatible_scenario, but for modifications.
  • require_modification: a boolean value; if set to yes, all players have to have this modification installed to join the game. Default no in older versions and yes since 1.18.

The [resource] toplevel tag

(Version 1.13.2 and later only)

The [resource] toplevel tag is another type of addon module tag which is similar to [modification] but is invisible to the player. It can only be loaded on developer request, by the [load_resource] tag. It supports most of the common addon module keys and tags. Besides that, there is the require_resource key which defaults to yes.

This page was last edited on 26 July 2024, at 22:40.