diff --git a/Facepunch.Steamworks/Structs/UgcItem.cs b/Facepunch.Steamworks/Structs/UgcItem.cs
index fb63898..66a1f6e 100644
--- a/Facepunch.Steamworks/Structs/UgcItem.cs
+++ b/Facepunch.Steamworks/Structs/UgcItem.cs
@@ -42,7 +42,7 @@ namespace Steamworks.Ugc
///
/// A dictionary of key value tags for this item, only available from queries WithKeyValueTags(true)
///
- public Dictionary KeyValueTags { get; internal set; }
+ public Dictionary> KeyValueTags { get; internal set; }
///
/// App Id of the app that created this item
diff --git a/Facepunch.Steamworks/Structs/UgcResultPage.cs b/Facepunch.Steamworks/Structs/UgcResultPage.cs
index 03399b5..c3a7636 100644
--- a/Facepunch.Steamworks/Structs/UgcResultPage.cs
+++ b/Facepunch.Steamworks/Structs/UgcResultPage.cs
@@ -57,12 +57,20 @@ namespace Steamworks.Ugc
{
var keyValueTagsCount = SteamUGC.Internal.GetQueryUGCNumKeyValueTags( Handle, i );
- item.KeyValueTags = new Dictionary( (int)keyValueTagsCount );
+ item.KeyValueTags = new Dictionary>( (int)keyValueTagsCount );
for ( uint j = 0; j < keyValueTagsCount; j++ )
{
string key, value;
if ( SteamUGC.Internal.GetQueryUGCKeyValueTag( Handle, i, j, out key, out value ) )
- item.KeyValueTags[key] = value;
+ {
+ if ( !item.KeyValueTags.TryGetValue( key, out List list ) )
+ {
+ list = new List();
+ item.KeyValueTags[key] = list;
+ }
+
+ list.Add(value);
+ }
}
}
@@ -131,4 +139,4 @@ namespace Steamworks.Ugc
}
}
}
-}
\ No newline at end of file
+}