{"id":13514573,"url":"https://github.com/andsfonseca/dota2-rpc-client","last_synced_at":"2026-03-07T20:14:21.299Z","repository":{"id":37021496,"uuid":"483504973","full_name":"andsfonseca/dota2-rpc-client","owner":"andsfonseca","description":"Allows you to observe the status of your DotA 2 (Defense of the Ancients 2) match within the Discord, through the Rich Presence service. 🎮","archived":false,"fork":false,"pushed_at":"2024-11-12T16:58:44.000Z","size":3014,"stargazers_count":47,"open_issues_count":4,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-12T17:45:57.096Z","etag":null,"topics":["discord","discord-rich-presence","discord-rpc-client","dota-gsi","dota2","rich-presence","rpc"],"latest_commit_sha":null,"homepage":"https://andsfonseca.github.io/dota2-rpc-client/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andsfonseca.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-20T04:23:18.000Z","updated_at":"2024-11-12T16:58:48.000Z","dependencies_parsed_at":"2024-11-01T18:31:10.689Z","dependency_job_id":"6e9d0066-0742-4468-8d57-a9d311bac23b","html_url":"https://github.com/andsfonseca/dota2-rpc-client","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andsfonseca%2Fdota2-rpc-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andsfonseca%2Fdota2-rpc-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andsfonseca%2Fdota2-rpc-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andsfonseca%2Fdota2-rpc-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andsfonseca","download_url":"https://codeload.github.com/andsfonseca/dota2-rpc-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246413377,"owners_count":20773053,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["discord","discord-rich-presence","discord-rpc-client","dota-gsi","dota2","rich-presence","rpc"],"created_at":"2024-08-01T05:00:57.943Z","updated_at":"2026-03-07T20:14:21.249Z","avatar_url":"https://github.com/andsfonseca.png","language":"C++","funding_links":[],"categories":["Gaming"],"sub_categories":[],"readme":"# DotA 2 RPC (dota2-rpc-client)\n![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/andsfonseca/dota2-rpc-client)\n![GitHub milestone](https://img.shields.io/github/milestones/progress/andsfonseca/dota2-rpc-client/2)\n [![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Fandsfonseca%2Fdota2-rpc-client\u0026count_bg=%2379C83D\u0026title_bg=%23555555\u0026icon=\u0026icon_color=%23E7E7E7\u0026title=hits\u0026edge_flat=false)](#)\n [![Website](https://img.shields.io/website?label=Website\u0026url=https%3A%2F%2Fandsfonseca.github.io%2Fdota2-rpc-client%2F)](https://andsfonseca.github.io/dota2-rpc-client/)\n ![GitHub](https://img.shields.io/github/license/andsfonseca/dota2-rpc-client)\n\nAllows you to observe the status of your DotA 2 (Defense of the Ancients 2) match within the Discord, through the Rich Presence service.\n\nYou can access the project website by [clicking here](https://andsfonseca.github.io/dota2-rpc-client/).\n## What is?\n\nThis is a service that allows you to show your Discord friends information about the matches you play and watch within DotA 2.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/7833466/165001452-6b3ed84f-6420-45a2-9436-32da80ea9072.gif\"\u003e \n\u003c/p\u003e\n\nShare real-time information about what happens in your game with everyone.\n\n## Features\n\n| Feature | Preview |\n|---------|---------|\n| Check what your friends are watching.       |   \u003cp align=\"center\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/7833466/165001481-8a37881e-802c-4e6a-b40c-e4100b76b82f.gif\"\u003e\u003c/p\u003e      |\n| Show off your heroes with your favorite skins.      | \u003cp align=\"center\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/7833466/165001946-910af221-c945-4a8f-84e0-8b9205627437.gif\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/7833466/165001947-b3ea6991-2025-4cb5-b098-88cd9b7d3826.gif\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/7833466/165001948-2370210a-2621-4549-af53-3d86d09bb545.gif\"\u003e\u003c/p\u003e        |\n| Show your skills of accumulating money in the game       | \u003cp align=\"center\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/7833466/164261275-7f6ee3cf-a2a6-4c20-8a5f-d1be3b84714a.gif\"\u003e\u003c/p\u003e        |\n| Show your items and your buffs.       | \u003cp align=\"center\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/7833466/165002021-4833bc4d-4ccb-432a-84ec-13b0a36b2c53.gif\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/7833466/165002015-58d28c48-6fc1-4e2a-8753-fd6aa47c7c6c.gif\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/7833466/165002020-d5c22994-fbff-4ba8-bcfa-992f7f222bd7.gif\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/7833466/165002017-b50ccfd8-0e31-40e5-80ee-f8e64e81e1b2.gif\"\u003e\u003c/p\u003e        |\n| Modified map support.       | \u003cp align=\"center\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/7833466/165002085-553f032c-35a9-455e-85aa-859e91ac59db.gif\"\u003e        |\n | See your instructors.  | \u003cp align=\"center\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/7833466/165002839-aa520877-e38a-40d5-984c-9bfc8b9dbd65.gif\"\u003e        |\n| Multiple language support.       | \u003cp align=\"center\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/7833466/165002139-5eb77c4c-e5a7-4bf8-9839-0b8b4cd794f7.gif\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/7833466/165002140-78e3af75-ba13-487d-8895-fe60289dedb1.gif\"\u003e        |\n\n## Installation (Windows only)\n\n\u003e See instructions for Linux below\n\nFollow the step-by-step below to install your version of DotA 2 RPC\n\n * Download the latest software version on the [Releases page](https://github.com/andsfonseca/dota2-rpc-client/releases/);\n * Unzip the file in a folder of your preference. (There are many files, then be careful!🙃);\n * Open the file `install.windows.bat` and everything will be ready!\n\n## Uninstallation (Windows only)\n \n * Open the `uninstall.windows.bat` file to remove the installation of your computer;\n * If you want, you can delete all the files.\n\n## Advanced Users (Windows Only)\n \nThis software is registered as Windows service. If you are looking for other options, here are other ways to use the application.\n \n ```shell\ndota2-rpc-client.exe \u003cflag\u003e\n```\n\n|        Flag               |                                    Description                                    |\n|:-------------------------:|:---------------------------------------------------------------------------------:|\n| `-i`                      | Install the DotA 2 RPC as a service.                                              |\n| `-r`                      | Uninstall the service, if installed.                                              |\n| `-s`                      | If installed, start the service.                                                  |\n| `-e`                      | If installed, stop the service.                                                   |\n| `-f`                      | Execute the DotA 2 RPC like a Console Application.                                |\n\n## Running on Linux (Experimental)\n\nJust as a warning it's just a experimental version. If you find any bugs in this version, please report them. The Discord API and other functions commonly used on Windows may not have the same effect on Linux.\n\nUnfortunately, this service has not been adapted to work with `daemon`. So installing and running the application must be done manually from the terminal.\n\nMake the file executable\n\n```shell\nchmod +x dota2-rpc-client \n```\n\nUse this command to install\n```shell\n./dota2-rpc-client -i\n```\n\nAnd run the application using\n\n```shell\n./dota2-rpc-client\n```\n\n### Known bugs:\n\n  * A bug related to the discord SDK loop, sometimes returning a \"panicked\". Probably some problem related to threads. Still looking for a solution.\n\n    Temporary solution: Try running until it works.\n\n  * A failure to create files and folders, usually caused by missing permissions\n\n    Temporary solution: Give the necessary permissions.\n    \n## Settings\n\nYou can choose what can be displayed and other application settings.\n\nJust modify the [config.json](src/templates/config/config.json) file.\n\n```json\n{\n    \"HOST\": \"127.0.0.1\",\n    \"PORT\" : 52424,\n    \"LOCALE\" : \"System\",\n    \"DISPLAY_OPTIONS\":\n    {\n        \"AEGIS\" : true,\n        \"AGHANIM\" : true,\n        \"GOLD_AND_LAST_HIT\": true,\n        \"KILL_DEATH_ASSIST\" : true,\n        \"SMOKE\": true\n    },\n    \"STEAM_FOLDER\": \"\"\n}\n```\n\nBelow is a brief description of each property.\n\n|        Property                      |                                    Description                                    |\n|:------------------------------------ |:----------------------------------------------------------------------------------|\n| `HOST`                               | The url the application will use. (Default: `127.0.0.1`)                          |\n| `PORT`                               | The port the application will listen on. (Default: `52424`)                       |\n| `LOCALE`                             | Language used. (Default: `System`, Avaiable options : [LocaleString](lang/), `System` and `Discord` ) |\n| `DISPLAY_OPTIONS`                    | Discord display options.                                                          |\n| `DISPLAY_OPTIONS:AEGIS`              | Whether or not to display the Aegis effect (Default: `true`)                    |\n| `DISPLAY_OPTIONS:AGHANIM`            | Whether or not to display the Aghanim effect (Default: `true`)                    |\n| `DISPLAY_OPTIONS:GOLD_AND_LAST_HIT`  | Whether or not to display the Gold, last hits and denies (Default: `true`)        |\n| `DISPLAY_OPTIONS:KILL_DEATH_ASSIST`  | Whether or not to display the K/D/A (Default: `true`)                             |\n| `DISPLAY_OPTIONS:SMOKE`              | Whether or not to display the smoke effect (Default: `true`)                      |\n| `STEAM_FOLDER`                       | Steam folder location (Optional, default: Default folder commonly used by steam)  |\n\n\u003e If you installed the cfg file manually, when changing the `host` and `port` you will need to change them also in the `gamestate_integration_rpc.cfg` file. See this [issue #1](/../../issues/1).\n\n## Compilation Instructions\n\nWant to improve the project or compile a version outside the official channel?\n\n\u003e See the [Contribution Section](#contribution) to read more instructions or clone this repository.\n\nThis project mainly uses 4 libraries to work. Are they:\n\n * [Discord SDK](https://discord.com/developers/docs/intro) - A Library for Integration with the Discord application;\n * [Drogon C++](https://github.com/drogonframework/drogon) - A web framework written with C++;\n * [SrvLib](https://github.com/Tomenz/SrvLib) - A library for creating services in Windows and Linux created by [@tomenz](https://github.com/tomenz).\n * [NFD](https://github.com/btzy/nativefiledialog-extended) - A small C library with that portably invokes native file open, folder select and file save dialogs.  Created by [@btzy](https://github.com/btzy) and [@mlabbe](https://github.com/mlabbe).\n\nThis is a project made with *CMake*, these libraries are downloaded during the first compilation of the software and placed in a folder called `third_party`.\n\nWith the repository downloaded, run the command:\n\n```shell\n cmake --build {folder} --config Debug --target dota2-rpc-client -j {threads}\n```\n \n\u003e This project uses Conan Package Manager to download [Drogon C++](https://github.com/drogonframework/drogon) and jsoncpp packages. If you use a package manager like `vcpkg` or libs and dlls externally, feel free to modify `CMakeLists.txt` (Just comment out the references to conan 😅). \n\u003e \n\u003e An installation guide for the *Drogon C++* dependencies can be found on [this page](https://github.com/drogonframework/drogon/wiki/ENG-02-Installation).\n\n## Web Page Compilation Instructions\n\nWould you like to change the project webpage? You can access the files from the `web` directory.\n\nThe following frameworks and templates were used:\n\n * [Angular 13](https://angular.io/) - A component-based framework for building scalable web applications;\n * [Paradigm Shift](https://html5up.net/paradigm-shift) - A open-source web template created by [@ajlkn](https://github.com/ajlkn)\n\nInstead of using static pages, a framework was used to create the site. So to compile, follow the instructions [available here](https://angular.io/guide/setup-local).\n\nWith everything configured, use the command below to run:\n\n```shell\n ng serve\n```\n \n## Language Contribution\n \nWould you like to translate the app into your language? Create a translation file based on the [en-us.json](lang/en-us.json) file. Then create an _issue_ or a _pull request_ to submit your modification.\n \n \n## Issues\n\nFeel free to submit issues and enhancement requests.\n\n## Contribution\n\n1. Fork the project\n2. Create a _branch_ for your modification (`git checkout -b my-new-resource`)\n3. Do the _commit_ (`git commit -am 'Adding a new resource...'`)\n4. _Push_ (`git push origin my-new-resource`)\n5. Create a new _Pull Request_ \n\n## Notes\n\nImages, names, and any entities related to DotA 2 are copyrighted by Valve Corporation. This software only uses the data shared by the game, but it is not related to the original game.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandsfonseca%2Fdota2-rpc-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandsfonseca%2Fdota2-rpc-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandsfonseca%2Fdota2-rpc-client/lists"}