-
Notifications
You must be signed in to change notification settings - Fork 59
war3map.w3i Map Info
Contains general info about the map such as it's name, loading screen title/text/image, dimensions and camera bounds, and other general settings.
uint32 format_version
uint32 map_version
uint32 editor_version
if format_version >= 28 {
uint32 game_version_major;
uint32 game_version_minor;
uint32 game_version_patch;
uint32 game_version_build;
}
c_string name
c_string author
c_string description
c_string suggested_players
float[2] camera_left_bottom
float[2] camera_right_top
float[2] camera_left_top
float[2] camera_right_bottom
int[4] camera_complements
uint32 playable_width
uint32 playable_height
uint32 flags
char tileset
uint32 loading_screen_number
if version >= 25 {
c_string loading_screen_model
}
c_string loading_screen_text
c_string loading_screen_title
c_string loading_screen_subtitle
if version >= 25 {
uint32 game_data_set
}
if version == 18 {
uint32 map_loading_screen_number
}
if version >= 25 {
c_string prologue_screen_model
}
c_string prologue_text
c_string prologue_title
c_string prologue_subtitle
if version >= 25 {
uint32 fog_style
float fog_start_z_height
float fog_end_z_height
float fog_density
uint8 fog_color_red
uint8 fog_color_green
uint8 fog_color_blue
uint8 fog_color_alpha
uint32 weather_id
c_string custom_sound_environment
uint8 custom_light_tileset
uint8 water_color_red
uint8 water_color_green
uint8 water_color_blue
uint8 water_color_alpha
if format_version >= 28 {
uint32 script_type
if format_version >= 31 {
uint32 supported_modes
uint32 game_data_version
}
}
}
uint32 players_count
for each player {
uint32 internal_number
uint32 type
uint32 race
uint32 fixed_start_position
c_string name
float starting_position_x
float starting_position_y
uint32 ally_low_priorities_flag
uint32 ally_high_priorities_flag
if format_version >= 31 {
uint32 enemy_low_priorities_flags
uint32 enemy_high_priorities_flags
}
}
uint32 forces_count
for each force {
uint32 focus_flags
uint32 player_masks
c_string name
}
uint32 available_upgrades_count
for each upgrade {
uint32 player_flags
char[4] id
uint32 level
uint32 availability
}
uint32 available_tech_count
for each tech {
uint32 player_flags
char[4] id
}
uint32 random_units_table_count
for each table {
uint32 table_number
c_string table_name
uint32 positions_count
for each position {
uint32 position?
}
uint32 lines_count
for each line {
uint32 chance
for each position {
char[4] id
}
}
}
if version >= 25 {
uint32 random_items_tables_count
for each table {
uint32 table_number
c_string table_name
uint32 set_count
for each set {
uint32 item_count
for each item {
uint32 chance
char[4] id
}
}
}
}
uint32 format_version
Format | Game |
---|---|
18 | RoC |
25 | TFT |
28 | 1.31 |
31 | 1.32 |
uint32 map_version
The map version which is incremented by one in the editor for everytime the map is saved
uint32 editor_version;
if format_version >= 28 {
uint32 game_version_major;
1 from 1.32.5
uint32 game_version_minor;
32 from 1.32.5
uint32 game_version_patch;
5 from 1.32.5
uint32 game_version_build;
}
c_string name
The map its name displayed ingame. Before the map has fully downloaded the filename is shown instead.
c_string author
c_string description
c_string suggested_players
Shown in the map preview window in the game browser
float[2] camera_left_bottom
float[2] camera_right_top
float[2] camera_left_top
float[2] camera_right_bottom
Camera bounds as defined in the war3map.j
int[4] camera_bounds_complements
uint32 playable_area_width
uint32 playable_area_height
uint32 flags
The flags for the map where the values are:
0x0001: hide minimap in preview screens
0x0002: modify ally priorities
0x0004: melee map
0x0008: playable map size was large and has never been reduced to medium (?)
0x0010: masked area are partially visible
0x0020: fixed player setting for custom forces
0x0040: use custom forces
0x0080: use custom techtree
0x0100: use custom abilities
0x0200: use custom upgrades
0x0400: map properties menu opened at least once since map creation
0x0800: show water waves on cliff shores
0x1000: show water waves on rolling shores
format_version >=25 only:
0x2000: unknown (used fog on ground?)
0x4000: unknown (supplement required?)
0x8000: item classification
0x10000: water tinting
format_version >=31 only:
0x20000: accurate probability for calculations
0x40000: custom ability skins
char tileset
The map tileset which can be one as defined in the specification for war3map.w3e
uint32 loading_screen_number
Loading screen background number which is its index in the preset list (-1 = none or custom imported file)
if version >= 25 {
c_string loading_screen_model
}
c_string loading_screen_text
c_string loading_screen_title
c_string loading_screen_subtitle
if version >= 25 {
uint32 game_data_set
}
if version == 18 {
uint32 map_loading_screen_number
}
if version >= 25 {
c_string prologue_screen_model
}
c_string prologue_text
c_string prologue_title
c_string prologue_subtitle
if version >= 25 {
uint32 fog_style
float fog_start_z_height
float fog_end_z_height
float fog_density
uint8 fog_color_red
uint8 fog_color_green
uint8 fog_color_blue
uint8 fog_color_alpha
uint32 weather_id
c_string custom_sound_environment
uint8 custom_light_tileset
uint8 water_color_red
uint8 water_color_green
uint8 water_color_blue
uint8 water_color_alpha
if format_version >= 28 {
uint32 script_type
0 for Jass and 1 for Lua
if format_version >= 31 {
uint32 supported_modes
uint32 game_data_version
}
}
}
uint32 players_count
for each player {
uint32 internal_number
uint32 type
uint32 race
uint32 fixed_start_position
c_string name
float starting_position_x
float starting_position_y
uint32 ally_low_priorities_flag
uint32 ally_high_priorities_flag
if format_version >= 31 {
uint32 enemy_low_priorities_flags
uint32 enemy_high_priorities_flags
}
}
uint32 forces_count
for each force {
uint32 focus_flags
uint32 player_masks
c_string name
}
uint32 available_upgrades_count
for each upgrade {
uint32 player_flags
char[4] id
uint32 level
Level of the upgrade for which the availability is changed (this is actually the level - 1, so 1 => 0)
uint32 availability
(0 = unavailable, 1 = available, 2 = researched)
}
uint32 available_tech_count
for each tech {
uint32 player_flags
char[4] id
}
There's no need for an availability value, if a tech-id is in this list, it means that it's not available
uint32 random_units_table_count
for each table {
uint32 table_number
c_string table_name
uint32 positions_count
for each position {
uint32 position?
Positions are the table columns where you can enter the unit/item ids, all units in the same line have the same chance, but belong to different "sets" of the random group, called positions here.
Table | Value |
---|---|
Unit table | 0 |
Building table | 1 |
Item table | 2 |
}
uint32 lines_count
for each line {
uint32 chance
Percentual chance 0-100
for each position {
char[4] id
This can also be a random unit/item id. aN unit/item id of 0x00000000 indicates that no unit/item is created.
}
}
}
if version >= 25 {
uint32 random_items_tables_count
for each table {
uint32 table_number
c_string table_name
uint32 set_count
for each set {
uint32 item_count
for each item {
uint32 chance
Percentual chance 0-100
char[4] id
This can also be a random item id
}
}
}
}