No suggestions yet. Hit Enter to look it up.
As you start searching, your past searches will show here.
Completely Customize the way others see you play in Discord!
2.7.1+26.1-snapshot-2-neoforge · 4 weeks ago · 1.24 MB
2.7.1+26.1-snapshot-2-fabric · 4 weeks ago · 1.24 MB
2.7.0+26.1-snapshot-1-fabric · 1 month ago · 1.96 MB
2.7.0+1.21.11-neoforge · 1 month ago · 1.96 MB
2.7.0+1.21.11-forge · 1 month ago · 1.96 MB
Completely customize the way others see you play Minecraft via Discord's Rich Presence API & the DiscordIPC API by jagrosh!
In addition to having the ability to change your discord status from "Playing Minecraft", This mod offers plenty of customization options to specify entirely how others see you play. From having your current biome show up, to which dimension your in, as well as which server you're in, and more. The customization possibilities are limitless, with the only real limit being how creative you customize your display.
CraftPresence will detect whether your Launch Directory contains:
If using any of these launchers, note the following:
&PACK& placeholder, that you can configure
for
usage in the RPCpack.name and pack.icon placeholders, that you can configure
for
usage in the RPCAs an example, this is how the mod will convert a pack's name to an iconKey:
Example: All the Mods 7 would parse as allthemods7
Note: MultiMC natively has an Icon Key Property that is used instead of converting from the Pack's Display Name
CraftPresence currently offers the following Commands:
Keep in mind the following:
/craftpresence or /cp/cp compile "[expr]" - Test the output of a placeholder expression, via Starscript/cp search (type:typeName, [searchTerm], all) - Search for valid placeholders available to use with Rich Presence/cp reload - Reloads mod data/cp request - View Join Request Info/cp export - View export commands for mod data/cp view - Help command to display the commands available to view and control a variety of display data
/cp view placeholders - Displays all available placeholders for use in the RPC/cp view currentData - Displays your Current RPC Data, in text form/cp view assets (custom | all) - Displays all asset icon keys available to you/cp view dimensions - Displays all Dimension Names available for use, requires Show Current Dimension to be
enabled/cp view biomes - Displays all Biome Names available for use, requires Show Current Biome to be enabled/cp view servers - Displays all Server Addresses available for use, requires Show Game State to be enabled/cp view screens - Displays all Gui Names available for use, if Per-Gui is enabled/cp view items - Displays all Item Names available for use, if Per-Item is enabled/cp view entities - Displays all Entity Names available for use, if Per-Entity is enabled/cp reboot - Reboots the RPC/cp shutdown - Shutdown the RPC (Can be turned on from /cp reboot)/cp (help | ?) - Help Command to display the above commands and these explanationsCraftPresence currently contains the following KeyBinds:
Notes:
Open Config Gui - KeyBind to open the CraftPresence Config Gui (Default: GRAVE/TILDE Key)In some configuration areas, CraftPresence provides some placeholders and functions to make things easier:
Keep in mind the following:
{foo.bar})getResult
functionThe following placeholders are available for use anywhere in CraftPresence:
general.brand - The Minecraft branding labelgeneral.icon - The default display icongeneral.mods - The amount of mods currently in your mods foldergeneral.title - The Minecraft title labelgeneral.version - The Minecraft version labelgeneral.protocol - The Minecraft version protocol labelmenu.message - The main menu's display data, while applicablemenu.icon - The main menu's display icon, while applicablepack.name - The currently detected pack's namepack.icon - The currently detected pack's iconpack.type - The currently detected pack's typeplayer.name - Your usernameplayer.uuid.short - Your UUID (Trimmed Format)player.uuid.full - Your UUID (Full Format, if valid UUID)player.icon - Your player head icon, while applicableplayer.position.x - Your current in-game X positionplayer.position.y - Your current in-game Y positionplayer.position.z - Your current in-game Z positionplayer.health.current - Your current in-game healthplayer.health.max - Your current in-game maximum healthplayer.mode - Your current game modescreen.message - The current Gui Screen's display data, while applicablescreen.name - The current Gui Screen namescreen.icon - The current Gui Screen iconscreen.default.icon - The default Gui Screen iconbiome.message - The current biome's display data, while in-gamebiome.name - The current biome namebiome.identifier - The current biome identifierbiome.icon - The current biome iconbiome.default.icon - The default biome icondimension.message - The current dimension's display data, while in-gamedimension.name - The current dimension namedimension.identifier - The current dimension identifierdimension.icon - The current dimension icondimension.default.icon - The default dimension iconentity.default.icon - The default entity iconentity.target.message - The currently targeted entity's display data, while applicableentity.target.name - The currently targeted entity's nameentity.target.icon - The currently targeted entity's iconentity.riding.message - The currently riding entity's display data, while applicableentity.riding.name - The currently riding entity's nameentity.riding.icon - The currently riding entity's iconworld.difficulty - The current world's difficultyworld.weather.name - The current world's weather nameworld.name - The name of the current worldworld.type - The current world typeworld.time.format_24 - The current world's in-game time (24-hour format)world.time.format_12 - The current world's in-game time (12-hour format)world.time.day - The current world's in-game day countserver.message - The current server's display data, while in-gameserver.icon - The current server iconserver.default.icon - The default server iconserver.players.current - The server's current player countserver.players.max - The server's maximum player countserver.address.full - (MP) The raw current server addressserver.address.short - (MP) The formatted current server addressserver.name - (MP) The current server nameserver.motd.raw - (MP) The current raw server motdserver.minigame - (Realm) The current realm minigame nameserver.type - (Realm) The current realm world typeitem.message.default - The default item display data, while applicableitem.message.holding - The held item(s) display data, while applicableitem.message.equipped - The equipped item(s) display data, while applicableitem.[slotId].name - Current slotId item nameitem.[slotId].message - Current slotId item messagereplaymod.time.current - When in the Video Renderer, retrieves the renderTimeTaken fieldreplaymod.time.remaining - When in the Video Renderer, retrieves the renderTimeLeft field_general.instance - The Minecraft Instance_general.player - The Minecraft Player Instance_general.world - The Minecraft World Instance_config.instance - The Mod Config Instance_[moduleName].instance - An instance of one of the modules CraftPresence has
biome, dimension, entity, item, screen, server, <...>data.biome.instance - An instance of the player's current biomedata.biome.class - The class object for the player's current biomedata.dimension.instance - An instance of the player's current dimensiondata.dimension.class - The class object for the player's current dimensiondata.entity.target.instance - An instance of the currently targeted entitydata.entity.target.class - The class object for the currently targeted entitydata.entity.riding.instance - An instance of the currently riding entitydata.entity.riding.class - The class object for the currently riding entitydata.item.[slotId].instance - An instance of the current slotIddata.item.[slotId].class - The class object for the current slotIddata.screen.instance - An instance of the current Gui Screendata.server.motd.line_[number] - Retrieves a specific line of server.motd.rawdata.[moduleName].time - The timestamp at which a module has changed its primary state
data.general.time for the current RPC Starting TimestampThe following functions are available for use anywhere in CraftPresence:
asIcon(input, whitespaceIndex ?: '') - Converts a String into a Valid and Acceptable Icon FormatasIdentifier(target, formatToId ?: false, avoid ?: false) - Converts an Identifier into a properly formatted and
interpretable NameasProperWord(input, avoid ?: false, skipSymbolReplacement ?: false, caseCheckTimes ?: -1) - Converts input into a
Properly Readable StringcapitalizeWords(input, timesToCheck ?: -1) - Capitalizes the words within a specified stringclampDouble(num, min, max) - Clamps the Specified Number between a minimum and maximum limitclampFloat(num, min, max) - Clamps the Specified Number between a minimum and maximum limitclampInt(num, min, max) - Clamps the Specified Number between a minimum and maximum limitclampLong(num, min, max) - Clamps the Specified Number between a minimum and maximum limitconvertTime(input, originalPattern, newPattern) - Convert the specified string into the specified date format, if
ableconvertTimeFormat(dateString, fromFormat, toFormat) - Convert a Date String from one format to another formatconvertTimeZone(dateString, fromFormat, fromTimeZone, toTimeZone) - Convert a Date String from one timezone to
another timezonedateToEpochMilli(dateString, format, timeZone ?: null) - Convert Date String to Epoch Timestamp in millisecondsdateToEpochSecond(dateString, format, timeZone ?: null) - Convert Date String to Epoch Timestamp in secondsepochMilliToDate(epochMilli, format, timeZone ?: null) - Convert Epoch Timestamp to Date String in the given format
and
timezoneepochSecondToDate(epochSecond, format, timeZone ?: null) - Convert Epoch Timestamp to Date String in the given
format and
timezoneexecuteMethod(classToAccess=Object|String|Class, instance=Object, methodName=String, <parameterType, parameter>...) -
Invokes the specified Method in the Target Class via Reflectionformat(input=String, args=Object...) - Returns a formatted string using the specified format string and argumentsformatAddress(input, returnPort ?: false) - Formats an IP Address based on InputgetArrayElement(content=Array, index) - Retrieves the array element from the specified content, or null if unablegetAsset(input) - Retrieves the Specified DiscordAsset data from an Icon Key, if presentgetAssetId(input) - Retrieves the Parsed Icon ID from the specified key, if presentgetAssetKey(input) - Retrieves the Parsed Icon Key from the specified key, if presentgetAssetType(input) - Retrieves the Parsed Image Type from the specified key, if presentgetAssetUrl(input) - Retrieves the Parsed Image Url from the specified key, if presentgetClass(reference=Object|String) - Attempt to retrieve a class object, via the string path or object referencegetComponent(data=DataComponentHolder, path=String) - (MC 1.20.5+) Attempt to retrieve the Component Data with the
specified pathgetCurrentTime() - Retrieve the current time, as an InstantgetElapsedMillis() - Retrieve the elapsed time, in millisecondsgetElapsedNanos() - Retrieve the elapsed time, in nanosecondsgetElapsedSeconds() - Retrieve the elapsed time, in secondsgetField(classToAccess=Object|String|Class, instance=Object, fieldName=String...) - Retrieves the
Specified Field(s) via ReflectiongetFields(classObj=Object|String|Class) - Retrieve the available field names for a class objectgetFirst(args) - Retrieve the first non-null string from the specified arguments, or return nullgetJsonElement(url|jsonString, path=Object...) - Retrieves the json element from the specified content, or null if
unablegetMethods(classObj=Object|String|Class) - Retrieve the available method names for a class objectgetNamespace(input) - Retrieve the namespace portion of an Identifier-Style ObjectgetNbt(data=Entity|ItemStack, path=String...) - Attempt to retrieve the NBT Tag with the specified pathgetOrDefault(target, alternative ?: '') - Retrieve the primary value if non-empty; Otherwise, use the secondary
valuegetPath(input) - Retrieve the path portion of an Identifier-Style ObjectgetResult(input) - Perform recursive conversion on the specified inputhasField(classObj=Object|String|Class, fieldName) - Retrieves whether the specified class contains the specified
field nameisColor(input) - Determines whether an inputted String classifies as a valid Color CodeisCustomAsset(input) - Determines if the Specified Icon Key is present under the Custom Assets ListisUuid(input) - Checks via Regex whether the specified String classifies as a valid UuidisValidAsset(input) - Determines if the Specified Icon Key is present under the Current Client IDisValidId(input) - Determines if the specified Client ID is validisWithinValue(value, min, max, contains_min ?: false, contains_max ?: false, check_sanity ?: true) - Determines
whether the specified value is within the specified rangelength(input) - Returns the length of the specified stringlerpDouble(num, min, max) - Linearly Interpolate between the specified valueslerpFloat(num, min, max) - Linearly Interpolate between the specified valuesmcTranslate(input=String, args=Object...) - Translates an Unlocalized String, based on the game translations
retrieved for
the current languageminify(input, length) - Reduces the Length of a String to the Specified LengthnullOrEmpty(input, allowWhitespace ?: false) - Determines whether a String classifies as NULL or EMPTYrandomAsset() - Attempts to retrieve a Random Icon Key from the available assetsrandomString(args) - Retrieves a random element from the specified arguments, as a stringremoveRepeatWords(input) - Removes Duplicated Words within an inputted StringroundDouble(num, places ?: 0) - Rounds a Double to the defined decimal place, if possiblesnapToStep(num, valueStep) - Rounds the Specified Value to the nearest value, using the Step Rate Valuesplit(input, regex, limit ?: 0) - Splits this string around matches of the given regular expressionstripAllFormatting(input) - Strips Color and Formatting Codes from the inputted StringstripColors(input) - Strips Color Codes from the inputted StringstripFormatting(input) - Strips Formatting Codes from the inputted StringtimeFromEpochMilli(epochMilli) - Retrieve a Time Instant from the specified epoch timetimeFromEpochSecond(epochSecond) - Retrieve a Time Instant from the specified epoch timetimeFromString(dateString, fromFormat, fromTimeZone ?: null) - Format a Date String from one timezone and format
into a valid Instant instancetimeToEpochMilli(data) - Gets the number of milliseconds from the Java Epoch, derived from specified argstimeToEpochSecond(data) - Gets the number of seconds from the Java Epoch, derived from specified argstimeToString(date, toFormat, toTimeZone ?: null) - Format a Date String using the specified timezone and format.toCamelCase(input) - Converts a String into a Valid and Acceptable Camel-Case Formattranslate(input=String, args=Object...) - Translates an Unlocalized String, based on the mod translations retrieved
for
the current languageDespite best efforts, issues can occur due to the state of the Minecraft Codebase.
These issues can hinder certain portions of the backend in addition to cause certain parts of the mod to not work.
With this in mind, please note the following:
MC-112292: When interacting with the RenderUtils#drawItemStack method, used in the v2 Item Renderer, blocks
using certain renderers may fail to display properly.Additionally, some settings or API calls may perform differently under certain MC versions.
Not seeing an Icon you like or have a suggestion for an Icon to add/modify on the default Client ID?
If so, you can make a request on my Issue Tracker, with the following requirements:
512x512 and 1024x1024 to be used (Either minimum or recommended size for best quality)
Additionally, you can also create your own Set of Icons by following this guide
Need some assistance with one of my mods or wish to provide feedback?
I can be contacted via the following methods:
Additionally, codebase documentation for this mod is available here with further guides available on the wiki
This Mod is under the MIT License as well as the Apache 2.0 License
This project currently makes usage of the following dependencies internally:
As with other RPC Mods, this Mod uses your in-game data to send display information to a 3rd party service (In this Case, Discord).
The terms of service relating to Creating a Discord ID for icons can be found here
The terms of service for using Discord as a service can additionally be located here
by modmuss50
Lightweight and modular API providing common hooks and intercompatibility measures utilized by mods using the Fabric toolchain.
by shedaniel
Configuration Library for Minecraft Mods
by Prospector
Adds a mod menu to view the list of mods you have installed.
Download CraftPresence
Select a game version to see available downloads
No versions match your filters
About the creator
External link
You are about to leave SkinMC and visit an external website. Please be careful and make sure you trust this link before continuing.
Log in
Forgot your password? Reset
Don't have an account yet? Sign up
Log out
Are you sure you would like to log out of your SkinMC account?
Recover account
Lost your password? Recover it by entering your email address to get it back.
Found your password? Log in
Conversation