# PH data gathering stuff ## Objective The main objective is to gather data to see what people enjoy and don't enjoy, I have no interest in knowing things about specific users or anything like that. ## Install ID However, knowing what tracking events came from the same install *could* be useful. Hence it would be great to have an anonymized install ID we can generate when sending tracking data. My proposal: To hash together the user's SteamID with some kind of unique hardware ID, that way it is impossible for us to intentionally or unintentionally figure out where the events came from. ## Tracking events Important note, events that contain content IDs (such as song IDs or resource pack IDs) will only be uploaded if the content in question is publicly available AND comes from the workshop/PPD. i.e: Locally playing songs you made won't result in tracking events being emitted, likewise, if the UI skin you are using is not from the workshop, it will be replaced with the default value in tracking events. ### Song Session Finished ``` enum SongSessionQuitReason { QUIT, SONG_FINISHED }; struct SongSessionFinished { bool was_multiplayer; int restart_count; uint64_t song_ugc_id; string song_difficulty; int start_time; int end_time; }; ``` ### Game State Update Sent on startup, or when any of the relevant settings is changed. ``` struct GamepadInfo { string guid; string name; }; struct GameStateUpdate { GamepadInfo[] connected_gamepads; string resource_pack; string icon_pack; }; ```