This is a setting hack that can be enabled on the "Settings" page of the Mods List.
This hack adds Discord Rich Presence to the game.
Main mods are able to extensively customise what is shown on Discord when the player has this hack enabled, if they so choose.
Configuring This Hack
To configure this hack from a mod when its enabled, create a file named DiscordRichPresence.ini and add the parameters necessary for your mod inside it.
These configuration options work starting in Version 1.27.
[Miscellaneous]
; ApplicationID
; Set a custom application ID for your mod.
; Defaults to our application ID for the Mod Launcher.
ApplicationID="000000000000000000"
[States]
; State strings let you customise what text is shown on Discord during various game states.
; Various variables can be substituted into state strings:
; $(Level): Shows the LEVEL_X text bible string for the player's current level.
; $(LevelNumber): Shows the player's current level number.
; $(BonusGameLevelNumber): Shows the player's current bonus game level number.
; $(MissionTitle): Shows either:
; The mission's title set in the relevant section of DiscordRichPresence.ini
; or if there isn't one
; The MISSION_TITLE_LX_MXX text bible string for the player's current mission.
; MainMenu
; Set what text is shown while the player is on the main menu.
; Defaults to "Main Menu".
MainMenu="Main Menu"
; BonusGame
; Set what text is shown while the player is playing a bonus game level.
; Defaults to "$(BonusGameLevel) - Bonus Game".
BonusGame="$(BonusGameLevel) - Bonus Game"
; SundayDrive
; Set what text is shown while the player is playing a sunday drive mission in a regular game level.
; Defaults to "$(Level) - Sunday Drive".
SundayDrive="$(Level) - Sunday Drive"
; Mission
; Set what text is shown while the player is playing a story mission in a regular game level.
; Defaults to "$(Level) - $(MissionTitle)".
Mission="$(Level) - $(MissionTitle)"
; BonusMission
; Set what text is shown while the player is playing a bonus mission in a regular game level.
; Defaults to "$(Level) - $(MissionTitle)".
BonusMission="$(Level) - $(MissionTitle)"
; StreetRace
; Set what text is shown while the player is playing a street race in a regular game level.
; Defaults to "$(Level) - $(MissionTitle)".
StreetRace="$(Level) - $(MissionTitle)"
; WagerRace
; Set what text is shown while the player is playing a wager race in a regular game level.
; Defaults to "$(Level) - $(MissionTitle)"
WagerRace="$(Level) - $(MissionTitle)"
; Unknown
; Set what text is shown while the game is in an unknown state.
; Defaults to "In Game".
Unknown="In Game"
[LXMYSD]
; Sunday Drive Specific Stuff
; Substitute X for a level number from 1 to 7.
; Substitute Y for a mission number from 0 to 10.
; Title
; Override the mission's title for rich presence.
Title="Not The Text Bible String"
; LargeImage
; Override the LargeImage shown during this mission.
LargeImage="some_art_asset_in_discord_dev_portal"
; LargeImageText
; Override the text shown when hovering over the LargeImage during this mission.
LargeImageText="Some fun flavor text about the mission?"
[LXMY]
; Mission Specific Stuff
; Substitute X for a level number from 1 to 7.
; Substitute Y for a mission number from 0 to 10.
; (has the same properties as the [LXMYSD] section)
[LXBM1]
; Bonus Mission Specific Stuff
; Substitute X for a level number from 1 to 7.
; (has the same properties as the [LXMYSD] section)
[LXSRY]
; Street Race Specific Stuff
; Substitute X for a level number from 1 to 7.
; Substitute Y for a mission number from 1 to 3.
; (has the same properties as the [LXMYSD] section)
[LXGR1]
; Wager Race Specific Stuff
; Substitute X for a level number from 1 to 7.
; (has the same properties as the [LXMYSD] section)These configuration options only work prior to Version 1.27.
; [Global] Section: Set the titles for missions on every level.
; Currently only supports setting the titles for the Bonus Missions, Street Races and Wager Races.
[Global]
BonusMission="Example Bonus Mission"
StreetRace1="Example Street Race 1"
StreetRace2="Example Street Race 2"
StreetRace3="Example Street Race 3"
WagerRace="Example Wager Race"Command Line Arguments
This hack is affected by certain Command Line Arguments for the Mod Launcher.
Version History
Version 1.27
- Added a new
ApplicationIDproperty to the[Miscellaneous]section ofDiscordRichPresence.inito set a custom application ID.- This allows mods to, for example, say "Playing Donut Mod" on Discord instead of "Playing Lucas' Mod Launcher".
- Added the ability to modify what text is shown on a user's Discord profile while playing various types of missions using a new
[States]section inDiscordRichPresence.ini. - Added the ability to override the entire state text, as well as large image and large image text, on a per mission basis using new mission sections in
DiscordRichPresence.ini. - Removed the
-nodiscordrichpresencecommand line argument. - Removed the
[Globals]section ofDiscordRichPresence.ini.- It was quite limited and the new features added in this version provide all of its functionality and much more.
- Removed the Show Main Mod and Show Mission Elapsed Time settings.
- Updated the description of this hack.
Version 1.26
- Made it so this hack uses Discord RPC as a DLL instead of using the version embedded into Hacks.dll if such a DLL file (discord-rpc.dll) inexplicably exists in the DLLs folder.
- The
-discordrpccommand line argument opts out of this inexplicable behaviour.
- The
Version 1.23.10
- Made it use the new Discord GameSDK instead of the obsolete Discord RPC if the DLL file for it (discord_game_sdk.dll) happens to inexplicably be in the Mod Launcher's DLLs folder.
- Also added the
-discordrpcto opt out of this. - To be clear, this DLL is not included with the Mod Launcher.
- Also added the
- Fixed an issue when logging state updates after 3:14:07 AM on January 19th, 2038 UTC.
- Made this hack tell Discord the command to start the Mod Launcher so Discord doesn't try launching Simpsons.exe with an incorrect working directory when clicking Play/Play Game.
- Also added the
-nodiscordregistercommandcommand line argument to opt out of this.- When using Discord RPC, this causes the old behaviour of Discord updating the command to be wrong.
- When using Discord GameSDK, this causes Discord to just not update the command.
- Also added the
- Added the
-discordloadinitialisecommand line argument. This makes the hack initialise Discord RPC / GameSDK as soon as the hack loads.- This used to be the default behaviour prior to Version 1.22 but it often causes rich presence to not work because Discord handles this poorly.
Version 1.23.8
- Added the
-nodiscordrichpresencecommand line argument. - Made the Bonus Mission, Street Race and Wager Race titles configurable by mods.
Version 1.23
Updated the description of this hack.
Version 1.22
- Added the RapidJSON license.
- Made this hack output
DISCORD RICH PRESENCE: Initialising...when initialising Discord RPC. - Made this hack wait until the main menu to initialise Discord RPC.
- This seems to make the hack work far more reliably than before.
Version 1.21
- Fixed an oversight where the hack was listed on Windows XP.
- Updated to a newer version of Discord RPC.
Version 1.18
Moved this hack to the new Settings page.