Splatoon 2/Telemetry

From Deep Sea Knowledge
Jump to navigation Jump to search

This page may be incomplete, as some areas may be very hard/near impossible to analyze.

Play Reports/SplatNet2

TODO:

Investigate Splatfest data

Investigate Turf War and Salmon Run matches with friends

Investigate how some events are triggered

More static analysis (especially on the newer events)

Better descriptions

Investigate X Rank data

Document "helper" functions that prepend some data to certain events


The data for this section was obtained on 4.1.0, with some 3.1.0 elements because of its inclusion of function names.

Events that have been dumped have been analyzed from a prepo dump. If not, the attributes have been assumed from a disassembler. Events that have very incomplete documentation have no or little analysis due to a large amount of unknown properties. Some events are called from obfuscated functions. Those events are very hard to analyze, so they will be extremely incomplete.

Function names will use the 3.1.0 symbol table name if possible. Otherwise, it will be the 4.1.0 IDA name.

Event ID Function Name Dumped Very Incomplete Obfuscated Trigger Notes
N/A Cmn::PlayReport::prepareAndGetPlayReport 🞬 🞬 N/A This is prepended to every event unless otherwise noted
N/A Cmn::PlayReport::addVersusCommonKeyValueImpl_ 🞬 🞬 N/A This is prepended to certain events
boot_ch_event sub_7101242EFC 🞬 Boot Appears to upload some hashes. (Anti-cheat?)
boot_event2 Cmn::PlayReport::saveBootEventMain_ 🞬 🞬 Boot Uploads a lot of information, including settings, character, and versus statistics
boot_mission_detail_event Cmn::PlayReport::saveBootEventMission_ 🞬 🞬 Boot Uploads mission information, such as completed levels and collectibles
coop_ch_event sub_7100DC6ECC 🞬 Unknown
coop_online_result_event Game::Coop::ResultPlayReport::save 🞬 🞬 Salmon Run results Uploads various Salmon Run match statistics, such as rank and map
invalid_connection_player sub_710116AF60 🞬 Unknown Possibly caused by connection errors
invalid_setting_event sub_7100255370 🞬 🞬 Unknown
match_coop_finish_event2 Game::Coop::ResultPlayReport::save 🞬 Salmon Run results Uploads more Salmon Run match statistics, such as eggs collected and difficulty
match_vs_finish_event2 Cnet::VersusMatchmakeExe::onSendPlayReportMatchEnd 🞬 🞬 Versus results
mission_octa_stage_result_event Game::SeqMgrMissionOcta::doPlayReport_ 🞬 🞬 Octo Expansion station results Uploads Octo Expansion station completion statistics, such as money, completion time, and station ID
mission_stage_result_event Game::SeqMgrMission::doPlayPeport_ 🞬 🞬 Octo Canyon stage results Uploads Octo Canyon stage completion statistics, such as power eggs, weapon used, and upgrades
runtime_undisplayed_error Cmn::SaveDataVss::UdemaeX::validate 🞬 🞬 Unknown
runtime_undisplayed_error Cnet::Utl::tryGetNetworkServiceAccount 🞬 🞬 Unknown
runtime_undisplayed_error Game::OnlineVersusResultExe::stateUploadXPower 🞬 🞬 Unknown
versus_ch_event sub_7100DC6BE4 🞬 Unknown
versus_death_event2 Game::SeqMgrVersus::savePlayReportDeathEvent_ 🞬 🞬 Versus player death Unknown if this only affects the current player or uploads data from other players
versus_other_event sub_710117F144 🞬 🞬 Versus results Uploads various match information about other players, such as score and MMR
versus_result_event2 Game::SeqVersusResult::savePlayReport_ 🞬 🞬 Versus results Uploads various match information, such as current gear and score

boot_ch_event

Name Type Description
ch0 utf8 Appears to be a half SHA256 hash, like mem_identity_check
ch1 utf8 Appears to be a half SHA256 hash, like mem_identity_check
ch2 utf8 Appears to be a half SHA256 hash, like mem_identity_check
ch3 utf8 Appears to be a half SHA256 hash, like mem_identity_check
ch4 utf8 Appears to be a half SHA256 hash, like mem_identity_check

boot_event2

Name Type Description
player_model_type int Player gender
player_model_hair int Player hair
player_model_bottom int Player pants
player_model_skin_color int Player skin color
player_model_eye_color int Player eye color
ctrl_option_tv_style_cam_speed_stick float TV/Tabletop stick sensitivity
ctrl_option_tv_style_cam_speed_gyro float TV/Tabletop gyro sensitivity
ctrl_option_tv_style_is_enable_gyro bool TV/Tabletop gyro or stick
ctrl_option_tv_style_is_reverse_ud bool TV/Tabletop vertically reversed
ctrl_option_tv_style_is_reverse_lr bool TV/Tabletop horizontally reversed
ctrl_option_hh_style_cam_speed_stick float Handheld stick sensitivity
ctrl_option_hh_style_cam_speed_gyro float Handheld gyro sensitivity
ctrl_option_hh_style_is_enable_gyro bool Handheld gyro or stick
ctrl_option_hh_style_is_reverse_ud bool Handheld vertically reversed
ctrl_option_hh_style_is_reverse_lr bool Handheld horizontally reversed
online_play_penalty_penalty_count int Number of online penalties
online_play_penalty_penalty_point int Online penalty severity
time_location_for_seq utf8 Time zone
money int
turban_shell int Super Sea Snails
is_enable_color_support bool Color Lock
is_disable_coconut bool Plaza drawings disabled
i_nu array ???
player_rank int Level
star_rank int Stars
udemae_cVar int Splat Zones rank
udemae_cVlf int Tower Control rank
udemae_cVgl int Rainmaker rank
udemae_cVcl int Clam Blitz rank
mmr_cRegular float Turf War MMR/power
mmr_cGachi_cVar float Splat Zones MMR/power
mmr_cGachi_cVlf float Tower Control MMR/power
mmr_cGachi_cVgl float Rainmaker MMR/power
mmr_cGachi_cVcl float Clam Blitz MMR/power
xmmr_cGachi_cVar float Splat Zones X Power
xmmr_cGachi_cVlf float Tower Control X Power
xmmr_cGachi_cVgl float Rainmaker X Power
xmmr_cGachi_cVcl float Clam Blitz X Power
rd_cRegular float Turf War rating deviation
rd_cGachi_cVar float Splat Zones rating deviation
rd_cGachi_cVlf float Tower Control rating deviation
rd_cGachi_cVgl float Rainmaker rating deviation
rd_cGachi_cVcl float Clam Blitz rating deviation
xrd_cGachi_cVar float Splat Zones X Rank rating deviation
xrd_cGachi_cVlf float Tower Control X Rank rating deviation
xrd_cGachi_cVgl float Rainmaker X Rank rating deviation
xrd_cGachi_cVcl float Clam Blitz X Rank rating deviation
inet_versus_count_total int Total online battles
inet_versus_count_cRegular int Total online Turf War battles
inet_versus_count_cGachi int Total ranked battles
inet_versus_count_cFest int Total Splatfest battles
inet_versus_count_cPrivate int Total Private battles
inet_versus_count_cLeague int Total League battles
mission_ikura_num int Octo Canyon Power Eggs
mission_is_clear_normal_map_num int Octo Canyon total completed stages
mission_is_clear_last_boss_stage bool Octo Canyon boss defeated
coop_grade int Salmon Run rank
coop_grade_point int Salmon Run experience
coop_tutorial_phase int Salmon Run tutorial state
coop_play_count int Total Salmon Run matches
mem_identity_check utf8 Half-SHA256 of certain RomFS files


coop_ch_event

Currently undocumented.

coop_online_result_event

Name Type Description
grade int Salmon Run rank
grade_point int Salmon Run experience
grade_before int Salmon Run rank before match
grade_point_before int Salmon Run experience before match
difficulty int ???
stage int Map ID
result int ???
final_wave int Always seems to be 2
wave_event_[wave number] int Events for [wave number] (glowflies, fog, etc)
wave_water_[wave number] int Tide for [wave number]
wave_golden_ikura_per_[wave number] int ???
wave_dead_count_[wave number] int Boss kill count
normal_ikura_num int Total power eggs
golden_ikura_num int Total golden eggs
point int ???
total_point int ???
begin_time utf8 Current schedule begin time
uncooperative_player bool ???

invalid_connection_player

Name Type Description
error_id int ???
frame int ???
player_idx int Player index (TODO: of who?)
my_flags int ???
other_flags int ???

invalid_setting_event

Currently undocumented.

match_coop_finish_event2

Name Type Description
player_rank int Player level (NOT Salmon Run rank)
star_rank int Player stars
money int
grade int Salmon Run rank
grade_point int Salmon Run experience for current rank
match_result int ???
total_sec int ??? (does not appear to be match time)
session_id int Match ID
with_friend int ??? (haven't dumped a Salmon Run match with a friend yet)
rtt_average int Average round-trip time
rtt_median int Median round-trip time
rtt_worst int Worst round-trip time
is_coral_v2_room bool Voice chat
is_coral_v2_save bool ???
mem_identity_check utf8 Half-SHA256 of certain RomFS files

match_vs_finish_event2

Name Type Description
match_result int ???
total_sec int ??? (does not appear to be match time)
league_player_num int ??? (0 if not in league)
league_tag_id int ??? (0 if not in league)
league_id int ??? (0 if not in league)
fest_team int Splatfest team
fest_mode int Splatfest mode (?)
fest_heavy_weight_match int Normal, 10x, or 100x (?)
fest_regular_win_count int Splatfest win streak
fest_regular_win_count_team int Splatfest win streak as a team
fest_friends_num int Number of friends on team
joint_session_status int ???
rtt_average int Average round-trip time
rtt_median int Median round-trip time
rtt_worst int Worst round-trip time
network_time int Local Unix time
is_coral_v2_room bool Voice chat
is_coral_v2_save bool ???
mem_identity_check utf8 Half-SHA256 of certain RomFS files
phase_attr int ???

mission_octa_stage_result_event

Name Type Description
stage_no int Station number
weapon_id int Weapon/loadout used
is_clear bool Station already cleared or not (?)
ikura_num int Power eggs collected in station
play_time float Station completion time in seconds
weapon_clear_flag int ???
miss_num int Station death count
life_num int Station lives left
money int
debt int
is_octa_clear bool Normal final boss completion
medal_flag int Mem cake ID

mission_stage_result_event

Name Type Description
stage_no int Level number
weapon_id int Weapon used
is_clear int Level already cleared or not (?)
ikura_num int Power eggs collected in level
play_time int Level completion time in seconds
dead_num int Death count
has_document bool Scroll collected or not
has_parts bool ???
has_ticket bool ???
weapon_clear_flag int ???
main[weapon number]_level int [weapon number] upgrades/level
has_sub[subweapon number] bool [subweapon number] unlocked
tank_level int Tank upgrades

versus_death_event2

Name Type Description
count_sec int Match time at death
death_count int Death count
reason_kind int ???
reason_id int ???
attacker_idx int Player index of attacker
attacker_pos_x float X position of attacker
attacker_pos_y float Y position of attacker
attacker_pos_z float Z position of attacker
victim_pos_x float X position of victim
victim_pos_y float Y position of victim
victim_pos_z float Z position of victim
victim_team int Victim team (not sure why this isn't a bool)

versus_other_event

Name Type Description
net_mode int Local, LAN, or online
game_mode int Game mode
game_rule int Game rules
session_id int Match ID
start_clock int ??? (doesn't appear to be Unix time)
stage_name utf8 Internal map name of stage
player_idx int Player index of target
player_model_type int Model type of target
player_model_hair int Hair model of target
player_model_bottom int Pants model of target
player_model_skin_color int Skin color of target
player_model_eye_color int Eye color of target
team int Team of target
weapon_id int Weapon used by target
cHead_gear_id int Head gear ID of target
cHead_gear_power_main int Head gear main ability ID of target
cHead_gear_power_sub[slot] int Head gear sub ability ID for [slot] of target
cClothes_gear_id int Clothes gear ID of target
cClothes_gear_power_main int Clothes gear main ability ID of target
cClothes_gear_power_sub[slot] int Clothes gear sub ability ID for [slot] of target
cShoes_gear_id int Shoes gear ID of target
cShoes_gear_power_main int Shoes gear main ability ID of target
cShoes_gear_power_sub[slot] int Shoes gear sub ability ID for [slot] of target
mmr float MMR/power of target
rd float Rating deviation of target
xmmr float X Power of target
xrd float X Rank rating deviation of target
player_rank int Level of target
star_rank int Star count of target
win_lose_diff int ???
is_win bool Target win or loss
is_minority bool Set if target has a disconnect on their team
personal_score_paint int Points of target
personal_score_kill int Kill count of target
personal_score_assist int Assist count of target
personal_score_special int Special count of target
personal_score_death int Death count of target
i_ns array i_ns of target
i_nu array i_nu of target
player_name utf8 Nickname of target
personal_u_score int ???
personal_score0 int ???
personal_score1 int ???
personal_score2 int ???
personal_score3 int ???
report_versus_count int ???

versus_result_event2

Name Type Description
net_mode int Local, LAN, or online
game_mode int Game mode
game_rule int Game rules
session_id int Match ID
start_clock int ??? (doesn't appear to be Unix time)
stage_name utf8 Internal map name of stage
player_rank int Level
star_rank int Star count
udemae int Rank
mmr float MMR/power
rd float Rating deviation
xmmr float X Power
xrd float X Rank rating deviation
xrank int X Rank leaderboard position (?)
xversus_count int X Rank matches played
has_crown bool Is in X Rank top 500
season_id int ???
money int
turban_shell int Super Sea Snail count
inet_versus_count_total int Versus match count
i_nu array ???
weapon_id int Weapon used
cHead_gear_id int Head gear ID
cHead_gear_power_main int Head gear main ability ID
cHead_gear_power_sub[slot] int Head gear sub ability ID for [slot]
cClothes_gear_id int Clothes gear ID
cClothes_gear_power_main int Clothes gear main ability ID
cClothes_gear_power_sub[slot] int Clothes gear sub ability ID for [slot]
cShoes_gear_id int Shoes gear ID
cShoes_gear_power_main int Shoes gear main ability ID
cShoes_gear_power_sub[slot] int Shoes gear sub ability ID for [slot]
report_versus_count int ???
versus_sec int Match length
team_score_cAlpha int Alpha score
team_score_cBravo int Bravo score
is_win bool Win or loss
is_minority bool Set if sender has a disconnect on their team
personal_score_paint int Points
personal_score_kill int Kill count
personal_score_assist int Assist count
personal_score_special int Special count
personal_score_death int Death count
packet_loss_rate float Percentage of packets lost
fest_team int Splatfest team
fest_mode int Splatfest mode (?)
fest_contribution int Clout added (always 0 if fest_same_team_match = 1)
fest_contribution_sum int Clout
fest_regular_win_count int Splatfest win streak
fest_regular_win_count_team int Splatfest win streak as a team
fest_same_team_match bool Playing against people on the same Splatfest team
fest_friends_num int Number of friends on team
fest_rank int Splatfest rank (0 = Fanboy/Fangirl, 1 = Fiend...)