Apex Legends naming and data type inconsistency

Issue Description:

The naming of several variables seems to be inconsistent.
I’ve try to give a few examples:

Weapon Names differ
The name used in the kill_feed event is significant different from the one used in the inventory info update. Examples:

{"info":{"me":{"weapons":"{\"weapon0\":\"Alternator SMG\",\"weapon1\":\"EVA-8 Auto\"}"}}
{"name":"kill_feed","data":"{\r\n  \"local_player_name\": \"mutschler\",\r\n  \"attackerName\": \"RuckusStudio\",\r\n  \"victimName\": \"Mehuteemu\",\r\n  \"weaponName\": \"eva8\",\r\n  \"action\": \"knockdown\"\r\n}"}
{"name":"kill_feed","data":"{\r\n  \"local_player_name\": \"mutschler\",\r\n  \"attackerName\": \"0Mandragor0\",\r\n  \"victimName\": \"Zenxss\",\r\n  \"weaponName\": \"alternator\",\r\n  \"action\": \"kill\"\r\n}"}

local_player_name variable naming
While the naming for data variables always seems to be camelCase local_player_name is named differently:

{"name":"kill_feed","data":"{\r\n  \"local_player_name\": \"mutschler\",\r\n  \"attackerName\": \"RuckusStudio\",\r\n  \"victimName\": \"Mehuteemu\",\r\n  \"weaponName\": \"eva8\",\r\n  \"action\": \"knockdown\"\r\n}"}

inconsistent data types
while some of the values are actually returned correctly as the type they are, some don’t

Exampe 1 (headshot/armor booleans returned as strings):

 {"name":"damage","data":"{\r\n  \"targetName\": \"itsBobbyyy\",\r\n  \"damageAmount\": \"7.000000\",\r\n  \"armor\": \"true\",\r\n  \"headshot\": \"false\"\r\n}"},

Exampe 2 (isTeammate returned as bool):

 {"info":{"match_info":{"roster_17":"{\"name\":\"d4rkpsych0_ttv\",\"isTeammate\":true}"}}

Example 3 (different “null” values)

{"info":{"match_info":{"roster_16":"null"}}
{"info":{"match_info":{"pseudo_match_id":null}}

Seems like Integers/floats are always stings:

{"info":{"me":{"totalDamageDealt":"25"}}
{"name":"damage","data":"{\r\n  \"targetName\": \"Gibersider\",\r\n  \"damageAmount\": \"11.000000\",\r\n  \"armor\": \"false\",\r\n  \"headshot\": \"false\"\r\n}"}
{"info":{"me":{"inventory_4":"{\"name\":\"unknown_48\",\"amount\":\"6\"}"}},"feature":"inventory"}

EDIT:
So while working on the team state i found that the same feature (team) gives me different properties as well: legendSelect has playerName but teammate has name

{
	"info": {
		"match_info": {
			"legendSelect_0": "{\"playerName\":\"claclo20\",\"legendName\":\"#character_wraith_NAME\",\"selectionOrder\":\"0\",\"lead\":false}"
		}
	},
	"feature": "team"
},
{
	"info": {
		"match_info": {
			"teammate_1": "{\"name\":\"claclo20\",\"state\":\"knockedout\"}"
		}
	},
	"feature": "team"
}

Steps to reproduce:
log some events/info updates and compare data

Impact for my app: not really sure, but it’s kind of confusing to deal with all the different cases

Hi, and thanks for the feedback.

We will discuss the matter internally and update you here.

Thanks.

Thanks.
After internal discussion, we are planning to do some refactoring to the API: names, types, etc.
The issue with this refactoring is that it might break some of the existing app. So we need to plan it carefully. Once we will do it, we will announce it on the slack channel.

With your permission, we will go ahead and close this issue.

Thanks.

1 Like

Im fine with that, thanks!

1 Like