interface GatewayActivity {
    application_id?: string;
    assets?: Partial<
        Record<
            | "large_image"
            | "large_text"
            | "large_url"
            | "small_image"
            | "small_text"
            | "small_url",
            string,
        >,
    >;
    buttons?: string[]
    | GatewayActivityButton[];
    created_at: number;
    details?: null | string;
    details_url?: null | string;
    emoji?: GatewayActivityEmoji;
    flags?: ActivityFlags;
    id: string;
    instance?: boolean;
    name: string;
    party?: GatewayActivityParty;
    platform?: string;
    secrets?: Partial<Record<"match" | "join" | "spectate", string>>;
    session_id?: string;
    state?: null | string;
    state_url?: null | string;
    status_display_type?: null | StatusDisplayType;
    sync_id?: string;
    timestamps?: GatewayActivityTimestamps;
    type: ActivityType;
    url?: null | string;
}

Properties

application_id?: string

Application id for the game

assets?: Partial<
    Record<
        | "large_image"
        | "large_text"
        | "large_url"
        | "small_image"
        | "small_text"
        | "small_url",
        string,
    >,
>

Images for the presence and their hover texts

buttons?: string[] | GatewayActivityButton[]

The custom buttons shown in the Rich Presence (max 2)

created_at: number

Unix timestamp of when the activity was added to the user's session

details?: null | string

What the player is currently doing

details_url?: null | string

URL that is linked when clicking on the details text

The emoji used for a custom status

Activity flags ORd together, describes what the payload includes

id: string

The activity's id

instance?: boolean

Whether or not the activity is an instanced game session

name: string

The activity's name

Information for the current party of the player

platform?: string

The platform this activity is being done on

You can use ActivityPlatform as a stepping stone, but this might be inaccurate

secrets?: Partial<Record<"match" | "join" | "spectate", string>>

Secrets for Rich Presence joining and spectating

session_id?: string
state?: null | string

The user's current party status, or the text used for a custom status

state_url?: null | string

URL that is linked when clicking on the state text

status_display_type?: null | StatusDisplayType

Controls which field is displayed in the user's status text in the member list

sync_id?: string

The Spotify song id

Unix timestamps for start and/or end of the game

Activity type

url?: null | string

Stream url, is validated when type is 1