From f638f6e9d7269a38fab2a9c868e58a118ad9e4ca Mon Sep 17 00:00:00 2001 From: Bingus_Violet Date: Wed, 22 Nov 2023 12:03:16 -0600 Subject: [PATCH] Documentation --- README.md | 57 ++++++++++++++++++++++++++++++++++- docs/images/setupExample.png | Bin 0 -> 13354 bytes 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 docs/images/setupExample.png diff --git a/README.md b/README.md index adda8a3..32aa560 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,58 @@ # SteamRPC -SteamRPC pulls your game and presence from Steam and puts it onto discord. \ No newline at end of file +SteamRPC pulls your game and presence from Steam and puts it onto discord. + +## Table of Contents +- [Setup](#setup) + - [Discord Setup](#discord-setup) + - [Steam Setup](#steam-setup) +- [Customization](#customization) +- [Notes](#notes) + +## Setup + +In order for SteamRPC to run, you need to give it 2 environment variables.
Example: +```bash + CLIENT_ID=1234567890 STEAM_ID=12345678 node index.js +``` + +Below you can find documentation for how to get the Discord Client ID and the Steam ID. + +### Discord Setup + +1. Navigate to the [Discord Developer Portal](https://discord.com/developers/) and sign in. +2. In the top right, hit the button that says "New Application". You can name this application whatever you want, but I recommend SteamRPC. +3. Copy the application ID. + +And thats pretty much it! Now just fill the CLIENT_ID environment variable in with your newly obtained Application ID + +### Steam Setup + +Getting your Steam ID is a much simpler process. +1. Navigate to Steam and login if you haven't already (You can do this both in the app or on the web) +2. Hover on your username at the top and go to "friends" +3. Navigate to the "Add a friend page" on the left +4. Copy your friend code + +Now replace the STEAM_ID environment variable with the SteamID you just got. + +Although this isn't nessacarily the most sophisticated method for getting your steam ID, its the one I find the easiest. + +## Customization + +### By default, you may notice that the games have no images +This is sadly a limitation of Discord, and I currently do not believe there is an easy method around it. For now, I have developed an easy alternative. + +1. Go back to the [Discord Developer Portal](https://discord.com/developers) and navigate to the page for your newly made application. +2. On the left, click on "Rich Presence" and go to "Art Assets" +3. Click `Add Image(s)` and upload the icon you want for your game +4. Name it the name of your game **Without Spaces or caps** + +* Please note that images do need to be 256x256, but you can easily find some application to upscale it if you so desire. + +And your done! +Here is an example of my current setup: +![A photo of my setup, with Gunfire Reborn and Risk of rain 2. The Gunfire Reborn is simply named "gunfirereborn" and Risk of Rain 2 is named "riskofrain2"](docs/images/setupExample.png) + +## Notes +This project was never meant to be public, but I decided there was no reason not to. Please do report any problems you encounter, and if there are any issues with the documentation, please let me know! \ No newline at end of file diff --git a/docs/images/setupExample.png b/docs/images/setupExample.png new file mode 100644 index 0000000000000000000000000000000000000000..d6cba960930dfb1a49929e99b7918a1cdfcd7eff GIT binary patch literal 13354 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 C`u=DD literal 0 HcmV?d00001