diff --git a/assets/languages/en/Options.xml b/assets/languages/en/Options.xml
index 0227aeb67..4039113e5 100644
--- a/assets/languages/en/Options.xml
+++ b/assets/languages/en/Options.xml
@@ -85,6 +85,9 @@
Pixel Perfect Effect
If checked, Week 6 or other pixel stages will have a pixel perfect effect to it enabled, aligning every pixel on the screen.
+ Discord RPC
+ If unchecked, Codename Engine and its mods are not displayed under the "Playing" widget.
+
Quality
Quality modes to choose, "LOW" = Disable every heavy visual effects as it can get to smoothen the gameplay, "HIGH" = Enable all of the visual effects, with the cost of performance, "CUSTOM" = Allow of custom options that is available in Advanced.
diff --git a/source/funkin/backend/utils/DiscordUtil.hx b/source/funkin/backend/utils/DiscordUtil.hx
index 84791be2e..432120f08 100644
--- a/source/funkin/backend/utils/DiscordUtil.hx
+++ b/source/funkin/backend/utils/DiscordUtil.hx
@@ -139,6 +139,11 @@ final class DiscordUtil
public static function changePresence(details:String, state:String, ?smallImageKey:String)
{
#if DISCORD_RPC
+ if (!Options.discordRPC) {
+ clearPresence();
+ return;
+ }
+
changePresenceAdvanced({
state: state,
details: details,
@@ -150,6 +155,11 @@ final class DiscordUtil
public static function changeSongPresence(details:String, state:String, audio:FlxSound, ?smallImageKey:String)
{
#if DISCORD_RPC
+ if (!Options.discordRPC) {
+ clearPresence();
+ return;
+ }
+
var start:Float = 0;
var end:Float = 0;
@@ -172,6 +182,11 @@ final class DiscordUtil
public static function changePresenceSince(details:String, state:String, ?smallImageKey:String, ?time:Float)
{
#if DISCORD_RPC
+ if (!Options.discordRPC) {
+ clearPresence();
+ return;
+ }
+
if (time == null)
time = Date.now().getTime();
@@ -199,6 +214,10 @@ final class DiscordUtil
public static function changePresenceAdvanced(data:DPresence)
{
#if DISCORD_RPC
+ if (!Options.discordRPC) {
+ clearPresence();
+ return;
+ }
if (data == null)
return;
diff --git a/source/funkin/options/Options.hx b/source/funkin/options/Options.hx
index b959e5e99..299f5c30d 100644
--- a/source/funkin/options/Options.hx
+++ b/source/funkin/options/Options.hx
@@ -42,6 +42,7 @@ class Options
public static var volumeMusic:Float = 1;
public static var volumeSFX:Float = 1;
public static var week6PixelPerfect:Bool = true;
+ public static var discordRPC:Bool = true;
public static var gameplayShaders:Bool = true;
public static var colorHealthBar:Bool = true;
public static var lowMemoryMode:Bool = false;
diff --git a/source/funkin/options/categories/AppearanceOptions.hx b/source/funkin/options/categories/AppearanceOptions.hx
index 9472ccf83..61895bd1f 100644
--- a/source/funkin/options/categories/AppearanceOptions.hx
+++ b/source/funkin/options/categories/AppearanceOptions.hx
@@ -19,6 +19,7 @@ class AppearanceOptions extends TreeMenuScreen {
add(new Checkbox(getNameID('flashingMenu'), getDescID('flashingMenu'), 'flashingMenu'));
add(new Checkbox(getNameID('colorHealthBar'), getDescID('colorHealthBar'), 'colorHealthBar'));
add(new Checkbox(getNameID('week6PixelPerfect'), getDescID('week6PixelPerfect'), 'week6PixelPerfect'));
+ #if DISCORD_RPC add(new Checkbox(getNameID('discordRPC'), getDescID('discordRPC'), 'discordRPC')); #end
add(new Separator());
add(new TextOption('optionsMenu.advanced', 'optionsTree.appearance.advanced-desc', ' >', () ->