Science Events

Events are actions the User does that are collected by Discord. More information on tracking and collection here.

This gives a non-thorough list of Event objects.

If an event "contains properties" it is assumed that the Event object contains an extra properties field pointing to a Properties object.

Always assume TrackingProperties is included.

Properties object

Fields are inconsistent and optional across events. Given *Property "objects" are fields that may or may not be present in a Properties object.

TrackingProperties

field type description
client_send_timestamp unix timestamp assumed to be when client sent event
client_track_timestamp unix timestamp assumed to be when the event happened
client_uuid base64 of a uuid? client identifier

ChannelProperties

field type description
channel_hidden boolean if the channel is muted (???)
channel_id snowflake channel the user is in
channel_member_perms permission bit set (integer) the user permissions in the channel
channel_size_total integer ???
channel_type integer, channel type channel type (text, voice, etc)

GuildProperties

field type description
guild_id snowflake guild identifier
guild_is_vip boolean if the guild is a VIP guild
guild_member_num_roles integer how many roles the user has in the guild
guild_member_perms permission bit set (integer) the user permissions in the guild
guild_num_channels integer amount of channels in the guild
guild_num_roles integer amount of roles in the guild
guild_num_text_channels integer amount of text channels in the guild
guild_num_voice_channels integer amount of voice channels in the guild
guild_size_total integer amount of members in the guild

ListProperties

field type description
num_users_visible integer amount of users the current user saw in the list
num_users_visible_with_mobile_indicator integer self explanatory

ActivityProperties

field type description
game_ids list of snowflakes game ids
load_id uuid as its formal representation (incl. hyphens) ???
num_cards integer number of game cards in activity
num_cards_game_news integer number of game cards showing game news
num_cards_game_playable integer number of cards user can play
num_cards_visible integer number of cards user views when looking at activity
num_game_parties integer ???
num_game_parties_collapsed integer ???
num_game_parties_recently_played integer ???
num_game_parties_rich_presence integer ???
num_game_parties_solo integer ???
num_game_parties_voice integer ???
num_launcher_applications integer ???
num_users_subscribed integer ???

ActivityCloseProperties

field type description
game_ids_viewed list of snowflakes game ids the user viewed while in activity
load_id uuid as its formal representation (incl. hyphens) ???
num_cards_total integer number of game cards in activity
num_cards_viewed integer number of cards user saw while in activity
num_games_total integer number of games seen in activity
seconds_spent integer amount of seconds spent in activity view
store_application_ids_viewed list of snowflakes application ids the user viewed
store_sku_ids_viewed list of snowflakes skus the user viewed
  • SKUs can be thought of as discord Store entries (Stock Keeping Unit).

WindowProperties

field type description
window_height integer client window height in pixels
window_width integer client window width in pixels

Event types

member_list_viewed

Sent when the currently authenticated User sees a newly generated member list in a guild. Contains ChannelProperties, GuildProperties and ListProperties.

ack_messages

Sent when the current User acknowledged the messages in a channel. Contains ChannelProperties, optional GuildProperties.

dm_list_viewed

Sent when the current User views the Direct Messages they currently have. Contains ChannelProperties (for the current opened DM) and ListProperties.

channel_opened

Sent when the current User opens a channel. Can be a Guild Text Channel or a DM channel. Contains ChannelProperties.

af_loaded

Related to client startup? Definitely related to the Activity view. Contains ActivityProperties, WindowProperties.

af_exited

Sent when the user leaves the Activity view. Contains ActivityCloseProperties.

open_popout

Sent when the user opens any kind of popout (such as when adding a new member to a group DM). Contains ChannelProperties, plus some fields:

field type description
is_friend boolean if the dm you're on represents a friend dm
source string source of the popout, known value is "DM"
type string type of the popout, known value is "Add Friends to DM"