Simple RPC User Manual

Introduction

Thank you for choosing or considering Simple Discord RPC. This is a mod that allows you to display Minecraft or a custom Modpack name on your Discord Status, so that other people can see what you are doing.

 

Information:

Supported Minecraft Versions: 1.12.2, 1.14.4, 1.15.2, 1.16-1.16.5, 1.17

Modloader: Forge/Fabric

Current Version: Version 2.2

Creating a Custom Discord App

Out of the Box, Simple RPC will use "Minecraft" as the name of the game you are playing.

While this is ideal for most people, you might want to display the name of your Modpack instead of "Minecraft". This guide aims to help you set this up.

By the end of this guide you should:

Part 1 - Creating a custom app

 

image-1615393232150.png

image-1615393275907.png

image-1615393391664.png

 

Part 2 - Uploading the Assets

 

image-1615393587728.png

If the "Cover Image" is empty, it's recommended that you upload an image here. As before, it need to be a minimum size of at least 1024x1024px

image-1615393667557.png

Your icons need to me a minimum size of 512x512px. 1024x1024px is recommended

By default the image key will be the same as the file name. Take note of them as you need them later on in the config.

After saving, your assets may appear empty. This is normal, but you can still use them. They will show up again on the dashboard after a couple of minutes.

 

There you go. You should now have your custom app setup and ready for use. Next, check out How to configure the config to make use of your app

Configuring the Mod

Since Simple RPC Version 2.0, Simple RPC now uses an additional config file. This file is called "simple-rpc-server.jsontoml" and is found when Simple RPC installed server side. To learn more about this, checkout Server Side Config Override

Since Simple RPC Version 1.4, "Multi Language" config files can be used. To learn more, Check out Multi Language Config Files

Simple RPC uses a JSON TOML (Since 2.2) based config system with a very simple, well named and commented layout. When running the mod for the first time, a config file will be created using the default settings. You can use the mod as is, use your own data or use a Custom app entirely.

 

Below is the sample config file with an explanation of each section/item.


#General Config Section
[general]
	#The Client ID of the Discord App to use
	clientID = 762726289341677668
	#Enable/Disable the mod
	enabled = true
	#Enable/Disable debugging mode. WARNING: MAY CAUSE LOG SPAM!
	debugging = false
	#Enable/Disable the in game config screen
	configScreen = true
	#Display the Icon and Pack Name in place of LargeImage from compatible launchers. DOES NOT WORK WITH CUSTOM APPS! ONLY THE DEFAULT ONE!
	launcherIntegration = false
	#Enable/Disabled in-game notifications about new releases
	updater = false
	#Internal Version Number. NO TOUCHY!
	version = 9

#The Game Loading event
[init]
	#Enable/Disable the Game Loading Event
	enabled = true
	#The first line of text under the app name
	description = "Minecraft is loading"
	#The second line of text under the app name
	state = "Game Starting..."
	#The Asset ID of the image to display as the large image
	largeImageKey = "mclogo"
	#The text that gets displayed when the large image is hovered
	largeImageText = "It's Minecraft %mcver%, but modded"
	#The Asset ID of the image to display as the small image
	smallImageKey = "mclogo"
	#The text that gets displayed when the small image is hovered
	smallImageText = "%mods% mods installed"
	#The buttons to display on Discord
	buttons = []

#The Main Menu event
[main_menu]
	#Enable/Disable the Main Menu Event
	enabled = true
	#The first line of text under the app name
	description = "%player% is currently lazy"
	#The seconds line of text under the app name
	state = "Chilling in the menu"
	#The Asset ID of the image to display as the large image
	largeImageKey = "mclogo"
	#The text that gets displayed when the large image is hovered
	largeImageText = "It's Minecraft %mcver%, but modded"
	#The Asset ID of the image to display as the small image
	smallImageKey = "mclogo"
	#The text that gets displayed when the small image is hovered
	smallImageText = "%mods% mods installed"
	#The buttons to display on Discord
	buttons = []

#The Server List event
[server_list]
	#Enable/Disable the Server List Event
	enabled = true
	#The first line of text under the app name
	description = "%player% is looking for a server"
	#The second line of text under the app name
	state = "Searching for friends"
	#The Asset ID of the image to display as the large image
	largeImageKey = "mclogo"
	#The text that gets displayed when the large image is hovered
	largeImageText = "It's Minecraft %mcver%, but modded"
	#The Asset ID of the image to display as the small image
	smallImageKey = "mclogo"
	#The text that gets displayed when the small image is hovered
	smallImageText = "%mods% mods installed"
	#The buttons to display on Discord
	buttons = []

#The Join Game Event
[join_game]
	#Enable/Disable the Join Game Event
	enabled = true
	#The first line of text under the app name
	description = "%player% is joining a game"
	#The second line of text under the app name
	state = "Joining Game"
	#The Asset ID of the image to display as the large image
	largeImageKey = "mclogo"
	#The text that gets displayed when the large image is hovered
	largeImageText = "It's Minecraft %mcver%, but modded"
	#The Asset ID of the image to display as the small image
	smallImageKey = "mclogo"
	#The text that gets displayed when the small image is hovered
	smallImageText = "%mods% mods installed"
	#The buttons to display on Discord
	buttons = []

#The Single Player Event
[single_player]
	#Enable/Disable the Single Player Event
	enabled = true
	#The first line of text under the app name
	description = "Currently In %world%"
	#The second line of text under the app name
	state = "Playing lonely mode"
	#The Asset ID of the image to display as the large image
	largeImageKey = "mclogo"
	#The text that gets displayed when the large image is hovered
	largeImageText = "It's Minecraft %mcver%, but modded"
	#The Asset ID of the image to display as the small image
	smallImageKey = "mclogo"
	#The text that gets displayed when the small image is hovered
	smallImageText = "%mods% mods installed"
	#The buttons to display on Discord
	buttons = []

#The Multi Player Event
[multi_player]
	#Enable/Disable the Multi Player Event
	enabled = true
	#The first line of text under the app name
	description = "Playing on %servername% with %players% players"
	#The second line of text under the app name
	state = "Playing online"
	#The Asset ID of the image to display as the large image
	largeImageKey = "mclogo"
	#The text that gets displayed when the large image is hovered
	largeImageText = "It's Minecraft %mcver%, but modded"
	#The Asset ID of the image to display as the small image
	smallImageKey = "mclogo"
	#The text that gets displayed when the small image is hovered
	smallImageText = "%mods% mods installed"
	#The buttons to display on Discord
	buttons = []

#Fallback event for disabled events
[generic]
	#The first line of text under the app name
	description = "Playing Minecraft"
	#The second line of text under the app name
	state = ""
	#The Asset ID of the image to display as the large image
	largeImageKey = "mclogo"
	#The text that gets displayed when the large image is hovered
	largeImageText = "It's Minecraft %mcver%, but modded"
	#The Asset ID of the image to display as the small image
	smallImageKey = "mclogo"
	#The text that gets displayed when the small image is hovered
	smallImageText = "%mods% mods installed"
	#The buttons to display on Discord
	buttons = []

#World/Dimension Image Overrides
[world_images]
	#Enabled/Disable custom images for Worlds/Biomes
	enabled = false

	#The Worlds/Biomes to override
	[[world_images.worlds]]
		worldname = "overworld"
		largeImageKey = "overworld"
		largeImageText = "In the Overworld"
		smallImageKey = "mclogo"
		smallImageText = "%mods% mods installed"

	[[world_images.worlds]]
		worldname = "the_nether"
		largeImageKey = "nether"
		largeImageText = "In the Nether"
		smallImageKey = "mclogo"
		smallImageText = "%mods% mods installed"

	[[world_images.worlds]]
		worldname = "the_end"
		largeImageKey = "end"
		largeImageText = "In the End"
		smallImageKey = "mclogo"
		smallImageText = "%mods% mods installed"

Configuration Variables

Variables are pieces of text added to the config file that allows you to display data from the game on your status.

These variables can used inside any 'state', 'description', 'largeImageText' and 'smallImageText'.

 

Single/Multiplayer Variables

 

Multiplayer Only

These variables only work in multiplayer (lan or online) games

Multi Language Config Files

Simple RPC now (from version 1.4) allows for language detection in Minecraft, so If you decide you wanna play Minecraft in a different language, your discord status can now be shown in that language. But it requires some setup, which is why this page exists.

When launching the game for the first time with 1.4 installed, you will find a new folder called simple-rpc inside your .minecraft folder. This is the folder in which you will place your translated config files.

To create a translated config file, copy simple-rpc.toml from your config folder to the simple-rpc folder. To make sure the mod loads the correct config file, you need to rename the file a bit. The new name of your file will now be simple-rpc_lang_code.toml.

To find a complete list of lang-codes, check out this site ->(https://minecraft.fandom.com/wiki/Languages).

Once you have created this file, you can change all "state", "description", "largeimagetext" and "smallimagetext" fields. You cannot translate the imagekeys!

Some name examples of languages:

  • American English -> "simple-rpc-en_us.toml"
  • Dutch -> "simple-rpc-nl_nl.toml"

Warning: Leave the default config file untouched, as the mod falls back to this file when a translated file cannot be found

(Thanks to Dragon for the original writeup and languages link)

Server Side Config Override

Simple RPC 2.0 now allows you to override the values used by "multi_player" from a server.

To do this, you need to install Simple RPC on your server as well

If you do not wish to use this feature, then you Simple RPC is only needed client side

 

When you launch your server with Simple RPC installed, you will find a new file called simple-rpc-server.toml inside your Config folder.

The file will look similar to this:


[general]
	#Enable/Disable Serverside Overrides
	enabled = false
	#Internal Version Number. NO TOUCHY!
	version = 9

#The Multi Player Event
[multi_player]
	#Enable/Disable the Multi Player Event
	enabled = true
	#The first line of text under the app name
	description = "Playing on %servername% with %players% players"
	#The second line of text under the app name
	state = "Playing online"
	#The Asset ID of the image to display as the large image
	largeImageKey = "mclogo"
	#The text that gets displayed when the large image is hovered
	largeImageText = "It's Minecraft %mcver%, but modded"
	#The Asset ID of the image to display as the small image
	smallImageKey = "mclogo"
	#The text that gets displayed when the small image is hovered
	smallImageText = "%mods% mods installed"
	#The buttons to display on Discord
	buttons = []

#World/Dimension Image Overrides
[world_images]
	#Enabled/Disable custom images for Worlds/Biomes
	enabled = false

	#The Worlds/Biomes to override
	[[world_images.worlds]]
		worldname = "overworld"
		largeImageKey = "overworld"
		largeImageText = "In the Overworld"
		smallImageKey = "mclogo"
		smallImageText = "%mods% mods installed"

	[[world_images.worlds]]
		worldname = "the_nether"
		largeImageKey = "nether"
		largeImageText = "In the Nether"
		smallImageKey = "mclogo"
		smallImageText = "%mods% mods installed"

	[[world_images.worlds]]
		worldname = "the_end"
		largeImageKey = "end"
		largeImageText = "In the End"
		smallImageKey = "mclogo"
		smallImageText = "%mods% mods installed"

Any values specified here, will be shown on discord instead of the ones found on the Client Side config file IF this config file is enabled.

Changelogs

Changelogs

Version 2.0

New Features

Bug Fixes

 

This release marks the end of 1.14.4 - Only bug fixes will be supplied for 2 weeks after release date

Changelogs

Version 1.0

Initial Release

Changelogs

Version 1.1

Bug Fixes

New Features

Changelogs

Version 1.2

Updates/Bug Fixes

Internal Changes

Changelogs

Version 1.3

Bug Fixes

Internal Changes

Changelogs

Version 1.4

New Features

Bug Fixes

Changelogs

Version 1.4.1

Bug Fixes

Changelogs

Version 2.1

Bug Fixes

New Stuff

Changelogs

Version 2.2

Bug Fixes:

* Fixed crash on startup when config file is missing
* Fixed crashes when Discord servers are offline

Changes:

* Config files have been changed to TOML format with detailed comments. No action required
* "discordID" changed to "clientID"
* Default Config files are now code generated, making them less prone to errors
* "debugging" now logs to latest.log instead of debug.log (Some launchers don't have debug.log)
* Hot reload is now much faster and much more accurate

New Stuff:

* Config option to disable the in-game config screen
* In game update notifier (Notifies of new mod releases. Disabled by default)
* Launcher integration -> Read more about this HERE
* %launcher% and %instance% variables -> Works with above change
* Config Editor Utility -> More info HERE

* Supports 1.17
* Supports JAVA 16

Troubleshooting

While this mod normally works perfectly the first time, there are some cases where it may not.

My status won't display

Lets rule out the most common issues here.

This mod crashes my game!

This section only applies to versions before 1.3. A crash would occur if you have an error in your config file or if something went wrong while communicating with discord.

 

Adding Custom Buttons

image-1617583404200.png

Simple RPC 2.1 now supports adding customizable buttons to your Rich Presence. This is useful for adding a link to your curseforge page, discord, Youtube, Website or just about anything else.

You can only add two buttons per section. This is a Discord Limit and not a mod limit

When loading the game the first time with 2.1 installed, your config file will be updated and you will find a new entry under each section of the config file. This entry is called buttons

By default, this entry has a value of buttons = []. To add your buttons, simple replace buttons = [] to

# section will be either init, main_menu, etc
[[section.buttons]]
	label = "Test Button"
	url = "https://google.com

You can find a more complete example at the end of this page

Warning, when clicking the button on your own status from your own Discord Account, it will appear to do nothing. This is another discord limitation. To test the button, sign into a second discord account in your web browser.

 

You can add buttons to any section of the RPC config file and they are hot-re loadable. Please note that if you add more than 2 buttons, the presence will fail to update.

 

Examples

Adding a single button to the Main Menu RPC:

#The Main Menu event
[main_menu]
	#Enable/Disable the Main Menu Event
	enabled = true
	#The first line of text under the app name
	description = "%player% is currently lazy"
	#The seconds line of text under the app name
	state = "Chilling in the menu"
	#The Asset ID of the image to display as the large image
	largeImageKey = "mclogo"
	#The text that gets displayed when the large image is hovered
	largeImageText = "It's Minecraft %mcver%, but modded"
	#The Asset ID of the image to display as the small image
	smallImageKey = "mclogo"
	#The text that gets displayed when the small image is hovered
	smallImageText = "%mods% mods installed"
	#The buttons to display on Discord
	# REMOVE ME buttons = []
	
	[[main_menu.buttons]]
		label = "Test Button"
		url = "https://google.com"

 

Adding two buttons to the Main Menu RPC:

#The Main Menu event
[main_menu]
	#Enable/Disable the Main Menu Event
	enabled = true
	#The first line of text under the app name
	description = "%player% is currently lazy"
	#The seconds line of text under the app name
	state = "Chilling in the menu"
	#The Asset ID of the image to display as the large image
	largeImageKey = "mclogo"
	#The text that gets displayed when the large image is hovered
	largeImageText = "It's Minecraft %mcver%, but modded"
	#The Asset ID of the image to display as the small image
	smallImageKey = "mclogo"
	#The text that gets displayed when the small image is hovered
	smallImageText = "%mods% mods installed"
	#The buttons to display on Discord
	# REMOVE ME buttons = []
	
	[[main_menu.buttons]]
		label = "Test Button"
		url = "https://google.com"

	[[main_menu.buttons]]
		label = "Another Button"
		url = "https://youtube.com"

Launcher Integration

Simple RPC 2.2+ now supports Launcher Integrations on some launchers.

When the `launcherIntegration` setting is enabled, Simple RPC will attempt to use the Launcher or Instance icon and replace the text shown on the Large Image, with the name of the launcher and the instance.

This ONLY works with the default appID. When you use a custom app, this setting will be ignored

 

Supported Launchers:

* Curseforge

* MultiMC

* Technic

* GDLauncher

* ATLauncher

 

Some of these launchers have their own built in RPC. You will need to disable that before the mod will work. This is a new and very shitty discord limitation