Skip to content

Instantly share code, notes, and snippets.

@kas240sx89
Last active December 6, 2016 03:19
Show Gist options
  • Save kas240sx89/070dfd4f5d22c5ccc91a171fb74c2a30 to your computer and use it in GitHub Desktop.
Save kas240sx89/070dfd4f5d22c5ccc91a171fb74c2a30 to your computer and use it in GitHub Desktop.
{
"Match": {
"UUID": "ed3d51dd-a88c-4697-80f3-361fc514d844",
"GameMode": "casual",
"Timestamp": 1476088221,
"Duration": 1706,
"Stats": {
"endGameReason": "victory",
"game_id": "kindred",
//"lobbyInfo": {}, remove blank
////"logTime": 1476090013.223941, remove not needed
"losingTeam": 0,
"matchInfo": {
"allow_afk_replacement": false,
"difficulty": "very_hard",
"freeunlocks": [
"*Fortress*",
"*Celeste*",
"*Catherine*",
"*Blackfeather*",
"*Vox*",
"*Petal*"
],
"friendlyTime": "2016-10-10T08:30:21.995376",
"gameMode": 9,
//////"host": "10.2.0.77", remove
////"lobbyInfo": {},
////"lobbyInitialTimeout": 120,
////"lobbyMode": 0,
////"lobbyTimeout": 60,
////"numMatchablesInQueue": 22, remove
////"port": 11000, remove
"queue": "casual",
"rubberband_bot_difficulty": true,
////"sites": []
},
////"storedResults": [],
"winningTeam": 1
},
"Teams": [
{
"Players": [
{
"Actor": "*Glaive*",
"Name": "Scribejewel",
"Stats": {
//"actorValid": true, //remove not needed
"afkHistory": [ // keep ? good for competitive guilds/players choosing members/friends
0,
0,
0,
0,
0,
0,
0,
0,
0,
1
],
"afkScore": 0,
"afkTime": 0,
"afkTotal": 0,
"banReason": 0,
"completed": 87,
"completed_ranked": 0,
////"connectedOnce": true, remove not needed
"elo": 1282,
"elo_aral": 1217,
"elo_earned_season_4": 0,
"elo_earned_season_5": 0,
"elo_ranked": 1268,
"essence": 116,
"farm": 56.65,
"firstAfkTime": -1,
//"gold": 29, remove ? personal but could be helpful in players helping players improve
"guildTag": "",
///"guildUUID": "", remove personal info
///"inventoryValue": 6500, remove personal info
///"isDev": 0, remove
///"isOrganizer": 0, remove
"items": [ //remove ? could be helpful in players helping players improve
"Tornado Trigger",
"Weapon3",
"Tornado Trigger",
"Critical",
"Armor3",
"Boots2"
],
"karma": 15.375, //???not sure what karma info is needed if any
"karmaBanLevel": null,
"karmaBanWarned": 0,
"karmaLevel": 1,
"karmaTempBanLevel": null,
"l10wins": [ // keep ? good for competitive guilds/players choosing members/friends
"1",
"1",
"1",
"0",
"1",
"0",
"1",
"0",
"0",
"0"
],
///"last_login": "10/10/16 07:26:57", remove personal info
"level": 12,
///"levelMaxXP": 14430, remove not needed
///"levelMinXP": 10285, remove not needed
///"lifetimeGold": 15274.4990234375, remove personal info
"lossStreak": 0,
"matchStats": {
"assists": 5,
"crystalMineCaptures": 3,
"deaths": 10,
"farm": 2266,
"goldMineCaptures": 0,
"itemGrants": {
"*1000_Item_HalcyonPotion*": 13,
"*1004_Item_SwiftShooter*": 1,
"*1005_Item_SixSins*": 2,
"*1010_Item_BlazingSalvo*": 2,
"*1012_Item_Sorrowblade*": 1,
"*1014_Item_TornadoTrigger*": 2,
"*1022_Item_CoatOfPlates*": 1,
"*1024_Item_MetalJacket*": 1,
"*1030_Item_SprintBoots*": 1,
"*1032_Item_TravelBoots*": 1,
"*1049_Item_TyrantsMonocle*": 1,
"*1065_Item_HeavySteel*": 1,
"*1068_Item_LuckyStrike*": 3,
"*1080_Item_MinionsFoot*": 2
},
"itemSells": {
"*1000_Item_HalcyonPotion*": 1
},
"itemUses": {
"*1000_Item_HalcyonPotion*": 12,
"*1032_Item_TravelBoots*": 1
},
"jungleKills": 16,
"kills": 5,
"krakenCaptures": 0,
"minionKills": 48,
"nonJungleMinionKills": 32,
"turretCaptures": 1
},
"mmrBucket": 12, //not sure what this is????
"opal": 13, //not sure what this is????
//"partyUUID": "", remove personal info
//"pendingGuildInvites": 0, remove personal info
//"pendingMessages": 0, remove personal info
//"pendingPartyInvites": 0, remove personal info
//"pendingTeamInvites": 0, remove personal info
"replacedWithBot": false,
"seasonMaxSkillTier": -1,
"seasonal_key": 0,
"silver": 4514,
"skillTier": -1,
"skinKey": "Glaive_DefaultSkin",
"team": 1,
"teamTag": "", //if all players same on team will replace team name
//"timeEnteredQueue": "2016-10-10T08:28:46", remove not needed
//"unlocks": [ remove personal info
//"*Hero010*",
// "*Lance*",
// "*Sayoc*",
//"Skaarf_Skin_Infinity_T1",
// "Ringo_Skin_Shogun_T1",
//"*Glaive*",
// "*Joule*",
//"*Ringo*"
// ],
"wentAfk": false,
"winStreak": 3,
"winner": false,
"wins": 51,
//"winsToday": 2, remove personal
//"winsTodayExpiry": -1, remove not needed
"xp": 13186
},
"UUID": "54a0a1fa-2f64-418a-94cf-85fbe55ea758" //hashed value not ingame uuid
}
],
"Name": "",
"UUID": "", //hashed value not ingame uuid
"Stats": {
"_afkPlayers": 0,
"_avgElo": 1411.3333333333333,
"_avgMatches": 981.6666666666666,
"_goldPerSecond": 29.066442373156047,
"_playersOnTeam": 3,
"teamAcesEarned": 2,
"teamGold": 49588,
"teamHeroKills": 16,
"teamKrakenCaptures": 0,
"teamTurretKills": 1,
"teamTurretsRemaining": 0,
"teamWon": false
}
},
]
}
}
@svperfecta
Copy link

Note: We will ditch the top level "Match" object

@svperfecta
Copy link

Note: We will make UUIDs for teams (party's) that don't have them.

@svperfecta
Copy link

Note: Winning Team will be renamed to winner and be a boolean property on teams

@svperfecta
Copy link

Note: We are going to bring "score" out as a property on team and player.

@dominicgunn
Copy link

I feel like this information is useful, but again should be moved out of the match API into another area. Knowing how far along someone is on their level progression could help us put together some nice graphs, but to do that we'd need to know what XP is required for level 12 (for example)

"level": 12,
              ///"levelMaxXP": 14430,                 remove not needed
              ///"levelMinXP": 10285,                 remove not needed

@dominicgunn
Copy link

dominicgunn commented Dec 2, 2016

I'd like to see karma information stripped. I wouldn't want some site making a list of guys to avoid, because their karma was affected after playing Catherine poorly in a Battle Royale match, despite wanting to pick their main Taka jungle in a ranked game.

"karma": 15.375,          //???not sure what karma info is needed if any
              "karmaBanLevel": null,
              "karmaBanWarned": 0,
              "karmaLevel": 1,
              "karmaTempBanLevel": null,

@dominicgunn
Copy link

This seems like personal information related to the seasonal chests, let's remove it.

              "opal": 13,                   //not sure what this is????

@dominicgunn
Copy link

This seems like PII related to essence used to craft cards, let's remove it.

              "essence": 116,

@dominicgunn
Copy link

This seems like PII related to how many keys a user has pending to open seasonal chests, let's remove it.

              "seasonal_key": 0,

@dominicgunn
Copy link

This feels like it belongs someplace else, and is not relevant to the actual match. Let's remove it and put it in some other end point later.

"freeunlocks": [
          "*Fortress*",
          "*Celeste*",
          "*Catherine*",
          "*Blackfeather*",
          "*Vox*",
          "*Petal*"
        ],

@dominicgunn
Copy link

Is this really personal information, you can view this in game by just adding the guy to your friends list (or finding one of his friends!)? I feel like knowing a users guild is something we could make use of, and even give great data about for the user (and the other members in his team).

///"guildUUID": ""

@dominicgunn
Copy link

This information seems useful, but looks internal to you guys - for us to have any use on it we'd need to know what sort of time span this data is over. e.x. Average matches over what period? If we can't have that, it should also be removed.

(If we do get to keep it, it feels like it should also be somewhere else. /matches/averages for instance)

          "_avgElo": 1411.3333333333333,
          "_avgMatches": 981.6666666666666,
          "_goldPerSecond": 29.066442373156047,

@turindev
Copy link

turindev commented Dec 2, 2016

Is Duration in format MMSS?
Duration is epoch seconds only, same with TimeStamp

@dominicgunn
Copy link

This is great information, and I think we would like to keep it - but i'm not sure it belongs at the match endpoint. This seems to me like information that should come from a /player/dominic endpoint.

              "elo": 1282,
              "elo_aral": 1217,
              "elo_earned_season_4": 0,
              "elo_earned_season_5": 0,
              "elo_ranked": 1268,

@dominicgunn
Copy link

This information also feels like it should come under a /player/dominic endpoint, as oppose to out of match data. It is not particularly relevant to a match, but an individual summoner (and at the time of the match this information is of no importance)

              "winStreak": 3,
              "wins": 51,
              "xp": 13186

@dominicgunn
Copy link

dominicgunn commented Dec 2, 2016

What is l10wins? Some documentation may be needed on this one.

last 10 games, if they won or lost

@dominicgunn
Copy link

If I remember rightly, mmrBucket :12 relates to a users current tier (Just Beginning Bronze, through to Vainglorious Gold) on a scale of 1-30. This information feels more relevant to the user than the particular match, especially in cases of Battle Royal for instance.

@turindev
Copy link

turindev commented Dec 2, 2016

I agree Dominic.. that player specific data (elo, wins, streaks, etc) should be in a player endpoint

@turindev
Copy link

turindev commented Dec 2, 2016

yep that mmrBucket used to be in the game packets if you sniffed them... where 0 = unranked and 30 = VG gold IIRC. I think l10wins is last 10 match results where 0 = defeat and 1 = victory.. just my guess

@svperfecta
Copy link

@dominicgunn - You're a lovely human.

@dominicgunn
Copy link

How deep can we go with this? Looking at it, it seems to be in initial item purchase order, but more useful I think would be to just continually list everything as it's bought, as oppose to saying there was 12 potions bought. This would let us accurately map a game over time. (Time of purchase, if it's available, would also be great)

 "itemGrants": {
                  "*1000_Item_HalcyonPotion*": 13,
                  "*1004_Item_SwiftShooter*": 1,
                  "*1005_Item_SixSins*": 2,
                  "*1010_Item_BlazingSalvo*": 2,
                  "*1012_Item_Sorrowblade*": 1,
                  "*1014_Item_TornadoTrigger*": 2,
                  "*1022_Item_CoatOfPlates*": 1,
                  "*1024_Item_MetalJacket*": 1,
                  "*1030_Item_SprintBoots*": 1,
                  "*1032_Item_TravelBoots*": 1,
                  "*1049_Item_TyrantsMonocle*": 1,
                  "*1065_Item_HeavySteel*": 1,
                  "*1068_Item_LuckyStrike*": 3,
                  "*1080_Item_MinionsFoot*": 2
                },

@dominicgunn
Copy link

Times on this sort of stuff would be great too.

                "krakenCaptures": 0,

@svperfecta
Copy link

So goal here is to literally filter this data for now... We have new data requests stored in trello (and everything you guys have asked for in Slack is in there!)

@dominicgunn
Copy link

One more look through to make sure I catch everything, this seems like a dodgy one. I'm not sure how appropriate this information is to be displayed to the entire public. It may be more appropriate once we have the ability to link accounts, and verify that the user we're displaying information to is the owner of the account. This falls under the same bad guy list as the karma changes.

"afkHistory": [        // keep ? good for competitive guilds/players choosing members/friends
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                1
              ],

@dominicgunn
Copy link

There's a removal mentioned here, but this data does seem relevant to the match at hand. It would let us show players what they bought after the match has ended. Though it looks like it needs sanitizing, Weapon3 doesn't make much sense.

"items": [                  //remove ? could be helpful in players helping players improve
                "Tornado Trigger",
                "Weapon3",
                "Tornado Trigger",
                "Critical",
                "Armor3",
                "Boots2"
              ],

@seripap
Copy link

seripap commented Dec 2, 2016

I think party UUID would be useful in the matches query and wouldn't be personal info. Would be useful if showing who was in a party for matches

@phypoh
Copy link

phypoh commented Dec 5, 2016

Could you put timestamps for the itemGrants so we can look at the build paths?

@svperfecta
Copy link

Thanks all - I shared all these comments and am working on a new version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment