winget install --id=imLinguin.comet -e
Open Source implementation of GOG Galaxy Communication Service for SDK bundled with GOG games.
Comet is an open-source implementation of GOG Galaxy's Communication Service designed to provide essential functionalities for SDKs bundled with GOG games. It enables developers to integrate social features such as achievements, leaderboards, and user statistics into their game launchers without relying on the official GOG client.
Key Features:
Comprehensive API Support: Handles a wide range of requests including user stats management, achievement tracking, leaderboard interactions, and more.
Integration with Popular Platforms: Seamlessly integrates into popular game launchers like Heroic and Lutris, enhancing their capabilities for GOG games.
Cross-Platform Compatibility: Operates effectively across Windows, macOS, and Linux, ensuring broad accessibility for developers and users.
Privacy-Focused Design: Built to handle sensitive data with care, emphasizing user privacy and security in all operations.
Installable via winget: Easily deployable on Windows using the winget package manager, simplifying setup for end-users.
Audience & Benefit:
Ideal for developers working on game launchers, distributors of GOG titles, and users seeking enhanced social features without the need for the official GOG client. Comet empowers these stakeholders by providing a robust, flexible SDK that enriches the gaming ecosystem with essential communication services.
Open Source implementation of GOG Galaxy's Communication Service
This project aims to implement calls made by game through SDK.
Note: that means it can't and won't replace Communication Service in official client
This will provide minimal and platform-agnostic SDK. For use in game launchers like Heroic or Lutris
Project is continuation of Yepoleb's work https://gitlab.com/Yepoleb/comet/ but in
Python now in Rust
This includes calls made to be forwarded to game process
Comet integration in game launchers
For manual instructions see running
Some client SDK versions require Windows service to be registered, refer to dummy service
You need to obtain access_token
, refresh_token
and user_id
either manually, or by importing them:
Log in to GOG within the launcher.
Use --from-heroic
for automatic import.
Log in to Lutris's GOG source.
Use --from-lutris
for automatic import.
Log in to GOG in wyvern
Use --from-wyvern
for automatic import.
If GOG authentication has never been performed in Heroic on the current user, create the expected directory:
mkdir -p $HOME/.config/heroic/gog_store
Then, run the command:
./bin/gogdl --auth-config-path $HOME/.config/heroic/gog_store/auth.json auth --code
Obtain the code by logging in using this URL, then copying the code value from the resulting URL:
comet --token "" --refresh_token "" --user-id --username
Or if you are using Heroic/gogdl
comet --from-heroic --username
Or Lutris
comet --from-lutris --username
Or wyvern
comet --from-wyvern --username
Or use the shortcut script provided for non-Steam shortcuts. See the Steam Deck Usage Guide.
You can adjust basic overlay settings with comet configuration file.
File locations:
%APPDATA%/comet/config.toml
~/Library/Application Support/comet/config.toml
$XDG_CONFIG_HOME/comet/config.toml
Default configuration file is as follows
[overlay]
notification_volume = 50 # value from 0 to 100
position = "bottom_right" # position where notifications are shown: top_left top_right bottom_left bottom_right
# Controls chat message notifications
[overlay.notifications.chat]
enabled = true
sound= true
# Controls notifications when friend becomes online
[overlay.notifications.friend_online]
enabled = true
sound= true
# Controls notifications when someone sends you a friend invititation
[overlay.notifications.friend_invite]
enabled = true
sound= true
# Controls notifications when friend starts playing a game
[overlay.notifications.friend_game_start]
enabled = true
sound= true
# Controls notifications when someone sends you a game invite
[overlay.notifications.game_invite]
enabled = true
sound= true
Join Heroic Discord and reach out to us on special thread
Here you can find a blog post about setting up environment for tracing the Communication Service calls (involving Proxifier and custom mitmproxy)
Reverse engineered protobuf definitions are available here: https://github.com/Yepoleb/gog_protocols
In order to dump logging from SDK client (the game) download GalaxyPeer.ini, when placed next to game .exe it will write GalaxyPeer.log when the game is running.
> [!WARNING]
> Proceed with caution, the log may contain sensitive information,
> make sure to remove such data before sharing the file with others.
If you want to contribute financially you can do so via my Ko-Fi.
You can also use any of the options to support Heroic