Forums / Support / Halo API Support

Map Variant Ids

OP McVeigh

I've got a question regarding the HCS forge maps in arena. Im trying to add the 3 maps using their map variant id in the API but every time I check another players recent games I can see a map marked as "unknown" on my site which means I dont have the map saved in my database. How does the map variant id work in the API, it seems that there are different variants of the maps in rotation?

If a map variant is provided my the official HCS account and others save that map to it reassign a new id?
Hi McVeigh! Do you have an example player or match with a problematic Map Variant ID? Thanks.
Since the maps were introduction I've had this many variants of the maps. The first few make sense because they weren't 100% confirmed yet. But I thought once they were confirmed the Variant Ids would always be the same.

Echelon dc65ecf5-4e85-4a27-8299-9918c269bbb0
Fissure 5e039a32-e692-4441-ba35-6e382b6268e3
Refuge b2fa6d39-db91-4a1b-a513-3d9c5d901a61
Sanctum f71e7160-4cbd-43a0-95aa-341b8312de92
Sanctum dbdb5447-203a-46b0-9076-30eb59a9c72b
Fissure 5849983a-b6bb-4d89-945a-d078751eace6
Echelon 31867feb-eb1f-4181-8406-2ef19e053019
Echelon 429abfd2-5e6d-4ace-9cad-7ed7c8b1cd44
Refuge 3fbfd040-fa22-4598-aad5-8633ece89e87
Refuge 2f757fe3-945a-47f3-ab63-82df47a4a3c0
Refuge a611fbba-97dc-499a-bca9-f3348988be06
Fissure HCS 2d9c8fcf-b92c-44e7-a822-869b876cd42e
Fissure HCS 69fea628-44a3-4a3c-955a-7f890d02971d
Echelon HCS 4684bdfb-a0d1-4ffe-8449-a6122f85718b
Refuge HCS 6c0f0d7a-cee0-46c9-9b38-0cf0067a1dcc
Fissure HCS 3d067ce8-d4fb-4e86-8bda-c49adfd3c29a
Refuge HCS 254eb971-7fc8-414e-b9d3-f5fcecf6c81d
Echelon HCS f5b6829e-1f12-443c-a81b-1d7a91dffeb6
Refuge HCS a5456dc4-f6f1-409b-91c3-9607d47c6edf

I have all those variants saved based on arena and custom games from pro players.

Then a new series happened last night and there was 3 games that were on the new maps that didnt get recorded because I dont have them in the list above.

These are the match ids

a203d97d-ab07-42ce-a24d-72f90aaac359

5e8c84ac-7808-4945-9d10-341aba5f7ddf

5a49ce04-99c3-409d-a69e-bb745da88c8a
Some more variants from last nights series. It seems some pros are using these variants now so I've added them to my database.

Maybe some pros are on old variants still? As you can see from the last 2 they arent even found in the API.

Match: a203d97d-ab07-42ce-a24d-72f90aaac359
Map - Refuge HCS: d67fdcb9-6d9c-403e-960d-04202e19b244

Match: 2a5f26ed-bd66-4d76-b625-852f7efd114c
Map - Fissure HCS: 6671d915-64ed-4cfa-a7ea-1f77b24b3f85

Match: 5a49ce04-99c3-409d-a69e-bb745da88c8a
Map - Echelon HCS: 92e76308-186a-48db-85d7-dc402f5d818e

Match: 62690610-45a1-4470-9f79-c69430ed387e
Map - 404 Not Found: 253cec46-5ec4-407a-94bb-21944d2f03e6

Match: a3af343d-f38d-42bf-b0ce-0a57e791c722
Map - 404 Not Found: 5419a271-344e-4943-8ee9-0ed1a569d6ef
I suspect that this issue you're seeing is that these are UGC Map Variants instead of official Map Variants.

Looking at the last match you posted ("a3af343d-f38d-42bf-b0ce-0a57e791c722"), we see that the MapVariantResourceId is:
Quote:
{
"ResourceType": 3,
"ResourceId": "5419a271-344e-4943-8ee9-0ed1a569d6ef",
"OwnerType": 1,
"Owner": "iTz So Frosty"
}
The documentation for this field states:
Quote:
// The variant of the map for this match. There are two sources of map variants:
// official map variants available via the Metadata API and user-generated map variants
// available vai the UGC API.
"MapVariantResourceId": {

// The resource type. 3 indicates map variant.
"ResourceType": 3,

// The ID of the map variant. Official map variants are available via the Metadata
// API.
"ResourceId": "guid",

// The source of the map variant. Options are:
// Unknown = 0,
// User-generated = 1,
// Official = 3.
"OwnerType": "int",

// The gamertag of the user that created the map variant if this is a user-generated
// map variant, or null otherwise.
"Owner": "string"
}
In your match, the Owner Type is 1, which means it's User-Generated. Therefore, we won't find it via the Metadata API; we need to go through the UGC API.

Using the UGC - Halo 5 - Player Map Variant Operation, we can request the Map Variant with the Owning Player ("iTz So Frosty") and the Map Variant ID ("5419a271-344e-4943-8ee9-0ed1a569d6ef"):
Quote:
{
"BaseMap": {
"ResourceType": 9,
"ResourceId": "057d5a87-5f50-44cb-93db-5d3a9b92267d",
"OwnerType": 3,
"Owner": null
},
"Name": "Refuge HCS",
"Description": "",
"AccessControl": 1,
"Links": {},
"CreationTimeUtc": {
"ISO8601Date": "2018-06-10T00:00:00Z"
},
"LastModifiedTimeUtc": {
"ISO8601Date": "2018-06-10T00:00:00Z"
},
"Banned": false,
"Identity": {
"ResourceType": 3,
"ResourceId": "5419a271-344e-4943-8ee9-0ed1a569d6ef",
"OwnerType": 1,
"Owner": "iTz So Frosty"
},
"Stats": {
"BookmarkCount": 0,
"HasCallerBookmarked": false
}
}
From the response, we find that the Map Variant is named "Refuge HCS". It also tells us that the Base Map (Variant) is "057d5a87-5f50-44cb-93db-5d3a9b92267d". We can request that Map from the Metadata - Halo 5 - Map Variant Operation to discover that this this was a Map Variant for the "Tidal" Map Variant:
Quote:
{
"name": "Tidal",
"description": "Mysteries of the deep are preferable to harsh truths among the stars.",
"mapImageUrl": "https://content.halocdn.com/media/Default/games/halo-5-guardians/map-images/arena/arena_maps_sustain_array02-542x305-e424b771567e4a0dbe1b655ec214acba.png",
"mapId": "d67fdcb9-6d9c-403e-960d-04202e19b244",
"id": "057d5a87-5f50-44cb-93db-5d3a9b92267d",
"contentId": "057d5a87-5f50-44cb-93db-5d3a9b92267d"
}
You can follow a similar process for UGC Game Variants as well. Hopefully this helps! Let me know if you have any questions. Thanks!
I suspect that this issue you're seeing is that these are UGC Map Variants instead of official Map Variants.

Looking at the last match you posted ("a3af343d-f38d-42bf-b0ce-0a57e791c722"), we see that the MapVariantResourceId is:
Quote:
{
"ResourceType": 3,
"ResourceId": "5419a271-344e-4943-8ee9-0ed1a569d6ef",
"OwnerType": 1,
"Owner": "iTz So Frosty"
}
The documentation for this field states:
Quote:
// The variant of the map for this match. There are two sources of map variants:
// official map variants available via the Metadata API and user-generated map variants
// available vai the UGC API.
"MapVariantResourceId": {

// The resource type. 3 indicates map variant.
"ResourceType": 3,

// The ID of the map variant. Official map variants are available via the Metadata
// API.
"ResourceId": "guid",

// The source of the map variant. Options are:
// Unknown = 0,
// User-generated = 1,
// Official = 3.
"OwnerType": "int",

// The gamertag of the user that created the map variant if this is a user-generated
// map variant, or null otherwise.
"Owner": "string"
}
In your match, the Owner Type is 1, which means it's User-Generated. Therefore, we won't find it via the Metadata API; we need to go through the UGC API.

Using the UGC - Halo 5 - Player Map Variant Operation, we can request the Map Variant with the Owning Player ("iTz So Frosty") and the Map Variant ID ("5419a271-344e-4943-8ee9-0ed1a569d6ef"):
Quote:
{
"BaseMap": {
"ResourceType": 9,
"ResourceId": "057d5a87-5f50-44cb-93db-5d3a9b92267d",
"OwnerType": 3,
"Owner": null
},
"Name": "Refuge HCS",
"Description": "",
"AccessControl": 1,
"Links": {},
"CreationTimeUtc": {
"ISO8601Date": "2018-06-10T00:00:00Z"
},
"LastModifiedTimeUtc": {
"ISO8601Date": "2018-06-10T00:00:00Z"
},
"Banned": false,
"Identity": {
"ResourceType": 3,
"ResourceId": "5419a271-344e-4943-8ee9-0ed1a569d6ef",
"OwnerType": 1,
"Owner": "iTz So Frosty"
},
"Stats": {
"BookmarkCount": 0,
"HasCallerBookmarked": false
}
}
From the response, we find that the Map Variant is named "Refuge HCS". It also tells us that the Base Map (Variant) is "057d5a87-5f50-44cb-93db-5d3a9b92267d". We can request that Map from the Metadata - Halo 5 - Map Variant Operation to discover that this this was a Map Variant for the "Tidal" Map Variant:
Quote:
{
"name": "Tidal",
"description": "Mysteries of the deep are preferable to harsh truths among the stars.",
"mapImageUrl": "https://content.halocdn.com/media/Default/games/halo-5-guardians/map-images/arena/arena_maps_sustain_array02-542x305-e424b771567e4a0dbe1b655ec214acba.png",
"mapId": "d67fdcb9-6d9c-403e-960d-04202e19b244",
"id": "057d5a87-5f50-44cb-93db-5d3a9b92267d",
"contentId": "057d5a87-5f50-44cb-93db-5d3a9b92267d"
}
You can follow a similar process for UGC Game Variants as well. Hopefully this helps! Let me know if you have any questions. Thanks!
Okay makes sense, thanks for your help!