{"id":8951,"date":"2026-05-31T18:27:02","date_gmt":"2026-05-31T15:27:02","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/afkplus\/"},"modified":"2026-05-31T18:27:02","modified_gmt":"2026-05-31T15:27:02","slug":"afkplus","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/afkplus\/","title":{"rendered":"AfkPlus"},"content":{"rendered":"<p># AfkPlus Fabric Mod for Minecraft<\/p>\n<p>![workflow](https:\/\/github.com\/sakura-ryoko\/afkplus\/actions\/workflows\/gradle.yml)<\/p>\n<p>![Example](https:\/\/sakuraryoko.com\/files\/1260026\/afkplus.jpg)<\/p>\n<p>![Join Sakura&#8217;s RyokoCraft Discord](https:\/\/discord.gg\/ryokocraftmc)<\/p>\n<p>## Basic Description:<br \/>\n&#8211; A forked project based upon AfkDisplay by beabfc.  He has given me his blessing with proceeding to create this mod, look under my Archived Issues pane.<br \/>\n&#8211; Show which players are AFK in the player list, see the Reasons, Durations, and Times.<br \/>\n&#8211; Fully configurable and with Placeholder API, which includes all Placeholder API formatting nodes such as: yellow or bold natively. (You can even include a URL in your AFK Reason!)<br \/>\n&#8211; Mod can now be used on Single Player, and Integrated Servers (Open to LAN).<br \/>\n&#8211; [**NEW**] Mod has now been mostly rewritten as of December 2024; as a MultiVersion project based on Fallen-Breath&#8217;s Template Mod architecture.<br \/>\n&#8211; [**NEW**] Mod Now is a dependency of my new library mod, CoreLib, and the More Color system has also been forked into my More Color API mod.<br \/>\n  &#8211; They are both included in the AfkPlus JAR file.<\/p>\n<p>## MOD ReWrite &#038; NEW Features<br \/>\n&#8211; Entire mod ecosystem has been migrated to a multi-version architecture to more quickly port the mod to versions 1.19.2-1.21.4+ at the same time, using a single branch.<br \/>\n&#8211; Config no longer uses TOML, and has been converted to the Data Driven CoreLib based JSON config system; which works similar to how Pat&#8217;s Mod ecosystem works.<br \/>\n&#8211; Most Player \/ Server Events are now managed by CoreLib interfaces; with a few AFK Specific exceptions.<br \/>\n&#8211; All Commands are now registered and managed by a CoreLib interface.<br \/>\n&#8211; All abstract Text Placeholder API formatting, and extra color tags are now managed by More Color API.  See the `\/morecolors` command.<br \/>\n&#8211; All new abstract TimeDate \/ Duration formatting interfaces are managed by CoreLib.<br \/>\n&#8211; Entirely rewritten AfkPlayer \/ Afk Player List system based on abstraction; instead of being managed via Mixin classes.  This should help with any strict mod compatibility issues; and fight off ugly code.<br \/>\n&#8211; Entire mod EcoSystem from CoreLib to AfkPlus each has an API \/ Event system for other mods to implement and make compatible in their own mods.<br \/>\n&#8211; AfkPlus adds API compat handling for `Vanish`, `Carpet Mod`, and `Styled Player List`.  Each mod&#8217;s integration varies based on any compatibility needs.<br \/>\n&#8211; Added several `message` options, and forked the `afkKick` and `disableDamage` systems into their own configuration categories.  See the config below for more defaulted information.<br \/>\n&#8211; Several other annoyances, bugs, and features have been added as requested; such as the ability to fully configure the `Gone for: XXX` messages by various config options. <\/p>\n<p>## Features<br \/>\n&#8211; Added a placeholder `%afkplus:afk%` for you to offer a very basic &#8216;**[AFK]**&#8217; tag to players who are AFK.<br \/>\n&#8211; Added a placeholder `%afkplus:name%`\/`%afkplus:display_name%` so that you can use this as a replacement for the &#8216;**%player:displayname%**&#8217; placeholder under other Mods, such as Styled Playerlist.<br \/>\n***NOTE that this method was designed to be fully compliant with LuckPerms Prefixes under Styled Playerlist, because the standard method for playerlist updating fails, or you can simply use %afkplus:afk% to add formatting to existing names if you like.***<br \/>\n&#8211; Added a placeholder `%afkplus:duration%` so that you can get the time since someone went AFK, with configuration for a format prefix.<br \/>\n&#8211; Added a placeholder `%afkplus:time%` so that you can get the Time\/Date when someone went AFK, with configuration for a format prefix.<br \/>\n&#8211; Added a placeholder `%afkplus:reason%` so that you can port the Afk Reason for why someone went AFK, with configuration for a format prefix.<br \/>\n&#8211; Added a placeholder `%afkplus:invulnerable%` so that you can display the &#8220;Disable Damage&#8221; status for all users, similar to the &#8220;[AFK]&#8221; placeholder tag, but more or less an &#8220;add on&#8221;.<br \/>\n&#8211; There is a special configuration option &#8216;prettyDuration&#8217; to configure the AFK Duration in a more human-readable format, instead of the default (HH:mm:ss.mss) format.  Each method has its advantages though. (Styled Nicknames or Styled Chat comes to mind here)<br \/>\n&#8211; There are several mod \/ data pack conflict warnings for administrators to help them make better decisions on what mods they want to install.<br \/>\n&#8211; Added a &#8220;disableDamage&#8221; configuration to make AFK players immune to damage after a 15-second cool down.  A new configurable server-wide message is now enforced by default when this occurs.<br \/>\n&#8211; Added a &#8220;disableDamageCooldown&#8221; configuration to allow Administrators to adjust the default &#8220;timer&#8221; that is applied after a player goes AFK.  I highly recommend not setting this to &#8216;0&#8217;, unless you don&#8217;t think your players will abuse this privilege.<br \/>\n&#8211; Added a &#8220;whenDamageDisabled&#8221; configuration so that you can customize the message displayed when your players are marked as invulnerable.<br \/>\n&#8211; Added a &#8220;whenDamageEnabled&#8221; configuration so that you can customize the message displayed when your players are unmarked as invulnerable.<br \/>\n&#8211; Now also checks for if players are in Spectator Mode, and not only Creative for managing your AFK\/Disable Damage status.<br \/>\n&#8211; ~~Adds several color nodes that players can use for AFK Reasons.  See \/afkex for a display example.~~<br \/>\n  &#8211; ~~brown, cyan, dark_brown, dark_pink, light_blue, light_brown, light_gray, light_pink, lime, magenta, purple, salmon,~~<br \/>\n  &#8211; ~~bluetiful, burnt_orange, canary, cool_mint, copper, powder_blue, royal_purple, shamrock, tickle_me_pink, ultramarine_blue~~<br \/>\n&#8211; Added a &#8220;bypassSleepCount&#8221; configuration so that you can allow players marked as Afk to bypass the Sleeping Requirements.<br \/>\n&#8211; Added a &#8220;bypassInsomnia&#8221; configuration so that you can allow players marked as Afk to block Phantom spawning.<br \/>\n&#8211; Added a &#8220;\/noafk&#8221; command for players to stop themselves from being marked as Afk.<br \/>\n&#8211; Added a &#8220;displayDuration&#8221; configuration option so that you can enable\/disable the &#8220;Gone for XX minutes, XX seconds&#8221; during whenReturn.<br \/>\n&#8211; Added additional handling to allow &#8220;afkTimeoutString&#8221; to be set to &#8220;&#8221;, and passing the &#8220;defaultReason&#8221; as &#8220;&#8221; to have more of the &#8220;Original&#8221; AfkDisplay feel.<br \/>\n&#8211; Added a &#8220;AFK Kick&#8221; system to automatically kick players from the server who are AFK after a configured amount of time.  It has several configuration options:<br \/>\n  &#8211; `afkKickEnabled` &#8211; (true\/false) Enables the AFK Auto Kick manager.<br \/>\n  &#8211; `afkKickNonSurvival` &#8211; (true\/false) Allows Kicking Creative \/ Spectator players.<br \/>\n  &#8211; `afkKickTimer` &#8211; The time beyond `timeoutSeconds` (Additive) when a player gets removed from the server, so if `timeoutSeconds` is 240, and `afkKickTimer` is set to 3600, the actual time they get kicked is at **3840**, or 64 minutes at the longest.<br \/>\n  &#8211; `afkKickSafePermissions` &#8211; (Permission 3) The default Permissions level that is marked &#8220;safe&#8221; from being automatically kicked. (Luck Perms: afkplus.kick.safe)<br \/>\n    &#8211; Note; that if a player has `afkPlusCommandPermissions` (Luck Perms: afkplus.afkplus), they will also be marked as safe from being automatically kicked, but this new configuration allows you to configure these permissions separately.<br \/>\n  &#8211; `afkKickMessage` &#8211; The message sent to Players that get kicked as the reason for their removal. (Adds the Duration when `displayDuration` is enabled)<br \/>\n  &#8211; `whenKicked` &#8211; The message broadcast to the server when a player gets kicked for being AFK. (Adds the Duration when `displayDuration` is enabled)<br \/>\n  &#8211; NOTES: This feature *DOES NOT* automatically kick Carpet Mod Bots, because the &#8216;fake&#8217; players do not get ticked by the server.<br \/>\n    &#8211; This feature *DOES NOT* work in Single Player\/Open To Lan, and requires a Dedicated Server Environment to function properly.<\/p>\n<p>## Commands (Permissions via Luck Permissions or the afk_plus configurations)<br \/>\n&#8211; &#8216;**\/afkplus**&#8217; with the AfkPlusCommandPermissions (Default: 4) setting the default restrictions. (Permission: afkplus.afkplus)<br \/>\n  &#8211; Displays the Mod Version information.<br \/>\n&#8211; &#8216;**\/afkplus reload**&#8217; command. (Permission: afkplus.afkplus.reload)<br \/>\n  &#8211; This allows an Administrator to reload the configuration while the server is running.<br \/>\n&#8211; ~~&#8217;**\/afkplus ex**&#8217; command.  (Permission: afkplus.afkplus.ex)~~<br \/>\n  &#8211; ~~This displays a simple &#8220;formatting test&#8221; to show the user what basic text nodes are available to use, and this also allows them to use this for Copy\/Paste by clicking on colors\/formats.~~<br \/>\n&#8211; &#8216;**\/afkplus set [Player] [Reason]**&#8217; command. (Permission: afkplus.afkplus.set)<br \/>\n  &#8211; This allows any administrator to set the AFK status of a player, and this also removes their NoAFK status.<br \/>\n&#8211; &#8216;**\/afkplus clear [Player]**&#8217; command. (Permission: afkplus.afkplus.clear)<br \/>\n  &#8211; This allows any administrator to clear the AFK status of a player.<br \/>\n&#8211; &#8216;**\/afkplus damage enable [Player]**&#8217; command. (Permission: afkplus.afkplus.damage.enable)<br \/>\n  &#8211; This allows an Administrator to force-enable an AFK player&#8217;s ability to be damaged as long as they are connected.<br \/>\n&#8211; &#8216;**\/afkplus damage disable [Player]**&#8217; command. (Permission: afkplus.afkplus.damage.disable)<br \/>\n  &#8211; This allows an Administrator to revert a player&#8217;s ability to use &#8220;Disable Damage&#8221; after it was forcefully removed.<br \/>\n&#8211; &#8216;**\/afkplus info [Player]**&#8217; command. (Permission: afkplus.afkplus.info)<br \/>\n  &#8211; This allows any administrator to check the AFK status of a player, and display the time and duration since they went AFK.<br \/>\n&#8211; &#8216;**\/afkplus update [Player]**&#8217; command. (Permission: afkplus.afkplus.update)<br \/>\n  &#8211; This allows any administrator to force a player list update for a player.<br \/>\n&#8211; &#8216;**\/afkinfo [Player]**&#8217; with the AfkInfoCommandPermissions (Default: 2) setting the default restrictions, (Permission: afkplus.afkinfo)<br \/>\n  &#8211; Does the same thing as &#8216;**\/afkplus info [Player]**&#8217;, but can be used for Mods, or players, or however you like to configure it for people to see.<br \/>\n&#8211; ~~&#8217;**\/afkex**&#8217; with the AfkExCommandPermissions (Default: 0) setting the default restrictions.  (Permission: afkplus.afkex)~~<br \/>\n  &#8211; ~~This displays a simple &#8220;formatting test&#8221; to show the user what basic text nodes are available to use, and this also allows them to use this for Copy\/Paste by clicking on colors\/formats.~~<br \/>\n&#8211; &#8216;**\/afk [Reason]**&#8217; with the AfkCommandPermissions (Default: 0) setting the default restrictions.  (Permission: afkplus.afk)<br \/>\n  &#8211; This allows any user to use a [Reason] along with setting their AFK status.<br \/>\n&#8211; [NEW] &#8216;**\/noafk**&#8217; with the noAfkCommandPermissions (Default: 0) setting the default restrictions.  (Permission: afkplus.noafk)<br \/>\n  &#8211; This allows any user to set themselves in a state where they will not go Afk based on the configured timeout value.<br \/>\n&#8211; [NEW] &#8216;afkKickSafePermissions&#8217; (Default: 3) sets the default permissions to mark an AFK player as safe from being kicked. (Permission: afkplus.kick.safe)<\/p>\n<p>## Potential known conflicts (Make your choice)<br \/>\n&#8211; afk display Data pack (Vanilla Tweaks Data pack, changes the player list display) &#8212; Mod checks for any &#8220;afk&#8221; containing data packs in the name.<br \/>\n&#8211; AfkDisplay &#8212; because this is the mod that AfkPlus is based upon, and offers fewer features.<br \/>\n&#8211; AntiLogout (\/afk command, timeout handling)<br \/>\n&#8211; Auto AFK (\/afk command, timeout handling)<br \/>\n&#8211; Sessility (timeout handling)<br \/>\n&#8211; Playtime-Tracker (timeout handling)<br \/>\n&#8211; SvrUtil (\/afk command, the rest is safe)<\/p>\n<p>## Example Configuration<br \/>\nThe configuration is located in `afkplus.json` inside your servers config folder.<\/p>\n<p>&#8220;`json lines<br \/>\n{<br \/>\n  &#8220;___comment&#8221;: &#8220;AfkPlus-1.21.4-1.7.4-SNAPSHOT Config&#8221;,<br \/>\n  &#8220;config_date&#8221;: &#8220;Fri, 3 Jan 2025 00:05:08 -0500&#8221;,<br \/>\n  &#8220;afk_plus&#8221;: {<br \/>\n    &#8220;_comment01&#8221;: &#8220;# Allows you to disable the \/afk command to mark yourself as AFK, with an optional [Reason] (Default: true)&#8221;,<br \/>\n    &#8220;enableAfkCommand&#8221;: true,<br \/>\n    &#8220;_comment02&#8221;: &#8220;# Allows you to disable the \/noafk command to mark yourself as NoAFK, which disables the timeout (Default: true)&#8221;,<br \/>\n    &#8220;enableNoAfkCommand&#8221;: true,<br \/>\n    &#8220;_comment03&#8221;: &#8220;# Allows you to disable the \/afkinfo command to allow players to see someone&#8217;s AFK status (Time, Duration, Reason). (Default: true)&#8221;,<br \/>\n    &#8220;enableAfkInfoCommand&#8221;: true,<br \/>\n    &#8220;_comment04&#8221;: &#8220;# The \/afk default command permissions, configurable with Luck Perms (afkplus.afk) node (Default: 0)&#8221;,<br \/>\n    &#8220;afkCommandPermissions&#8221;: 0,<br \/>\n    &#8220;_comment05&#8221;: &#8220;# The \/noafk default command permissions, configurable with Luck Perms (afkplus.noafk) node (Default: 0)&#8221;,<br \/>\n    &#8220;noAfkCommandPermissions&#8221;: 0,<br \/>\n    &#8220;_comment06&#8221;: &#8220;# The \/afkinfo default command permissions, configurable with Luck Perms (afkplus.afkinfo) node (Usually for Mods) (Default: 2)&#8221;,<br \/>\n    &#8220;afkInfoCommandPermissions&#8221;: 2,<br \/>\n    &#8220;_comment07&#8221;: &#8220;# The \/afkplus default command permissions, configurable with Luck Perms (afkplus.afkplus with .subcommands) node (Default: 3)&#8221;,<br \/>\n    &#8220;afkPlusCommandPermissions&#8221;: 3,<br \/>\n    &#8220;_comment08&#8221;: &#8220;# A Basic Cooldown configurable to help prevent people from spamming the \/afk command (Default: 5 seconds)&#8221;,<br \/>\n    &#8220;afkCommandCooldown&#8221;: 5,<br \/>\n    &#8220;_comment09&#8221;: &#8220;# A boolean toggle to enable \/ disable debug logger messages in the mod&#8221;,<br \/>\n    &#8220;debugMode&#8221;: false<br \/>\n  },<br \/>\n  &#8220;packet&#8221;: {<br \/>\n    &#8220;_comment01&#8221;: &#8220;# The time without actions after which a player is considered AFK. Set to -1 to disable automatic AFK detection. (Default: 240)&#8221;,<br \/>\n    &#8220;_comment02&#8221;: &#8220;# &#8211;note; the Original AfkDisplay&#8217;s default timeout was set to 180 seconds.&#8221;,<br \/>\n    &#8220;timeoutSeconds&#8221;: 240,<br \/>\n    &#8220;_comment03&#8221;: &#8220;# Consider players that moved no longer AFK (enables easy bypass methods like AFK pools) (Default: false)&#8221;,<br \/>\n    &#8220;resetOnMovement&#8221;: false,<br \/>\n    &#8220;_comment04&#8221;: &#8220;# Consider players which looked around no longer AFK (Default: false)&#8221;,<br \/>\n    &#8220;resetOnLook&#8221;: false,<br \/>\n    &#8220;_comment05&#8221;: &#8220;# Consider players who are only swinging their sword as AFK (Default: false)&#8221;,<br \/>\n    &#8220;ignoreAttacks&#8221;: false,<br \/>\n    &#8220;_comment06&#8221;: &#8220;# Makes it so that Afk players are not counted in the Sleep Percentage check (Default: true)&#8221;,<br \/>\n    &#8220;bypassSleepCount&#8221;: true,<br \/>\n    &#8220;_comment07&#8221;: &#8220;# Makes it so that Afk Players block Phantom Spawning attempts. (Default: true)&#8221;,<br \/>\n    &#8220;bypassInsomnia&#8221;: true,<br \/>\n    &#8220;_comment08&#8221;: &#8220;# The default &#8220;timeout&#8221; AFK reason (Default: &#8220;<i><gray>timeout<r>&#8220;)&#8221;,<br \/>\n    &#8220;afkTimeoutString&#8221;: &#8220;<i><gray>timeout<r>&#8220;,<br \/>\n    &#8220;_comment09&#8221;: &#8220;# The default AFK timeout message for the &#8220;ignoreAttacks&#8221; detection&#8221;,<br \/>\n    &#8220;afkTimeoutIgnoreAttack&#8221;: &#8220;<i><gray>only swinging their sword<r>&#8221;<br \/>\n  },<br \/>\n  &#8220;disable_damage&#8221;: {<br \/>\n    &#8220;_comment01&#8221;: &#8220;# Disable damage after disableDamageCooldown seconds since a player went AFK (Default: false)&#8221;,<br \/>\n    &#8220;disableDamage&#8221;: false,<br \/>\n    &#8220;_comment02&#8221;: &#8220;# Cooldown timer for enabling the &#8220;DisableDamage&#8221; feature. (Default: 15 seconds)&#8221;,<br \/>\n    &#8220;_comment03&#8221;: &#8220;# &#8211; WARNING!  Be advised that settings this too low can encourage poor player behavior.&#8221;,<br \/>\n    &#8220;disableDamageCooldown&#8221;: 15,<br \/>\n    &#8220;_comment04&#8221;: &#8220;# The message content when an AFK player is marked as Invulnerable.&#8221;,<br \/>\n    &#8220;_comment06&#8221;: &#8220;# (Default: &#8220;%player:displayname% <yellow>is marked as <red>Invulnerable.<r>&#8220;)&#8221;,<br \/>\n    &#8220;whenDamageDisabled&#8221;: &#8220;%player:displayname% <yellow>is marked as <red>Invulnerable.<r>&#8220;,<br \/>\n    &#8220;_comment08&#8221;: &#8220;# The message content when an AFK player is no longer marked as Invulnerable.&#8221;,<br \/>\n    &#8220;_comment09&#8221;: &#8220;# (Default: &#8220;%player:displayname% <yellow>is no longer <red>Invulnerable.<r>&#8220;)&#8221;,<br \/>\n    &#8220;whenDamageEnabled&#8221;: &#8220;%player:displayname% <yellow>is no longer <red>Invulnerable.<r>&#8221;<br \/>\n  },<br \/>\n  &#8220;afk_kick&#8221;: {<br \/>\n    &#8220;_comment01&#8221;: &#8220;# Enables the AFK Auto-Kick system. (Default: false)&#8221;,<br \/>\n    &#8220;afkKickEnabled&#8221;: false,<br \/>\n    &#8220;_comment02&#8221;: &#8220;# Allows Non-Survival players to be kicked (Creative, Spectator, etc) (Default: false)&#8221;,<br \/>\n    &#8220;afkKickNonSurvival&#8221;: false,<br \/>\n    &#8220;_comment03&#8221;: &#8220;# The time after `timeoutSeconds` to automatically kick an AFK player (Default: 3600, aka. 1 hour)&#8221;,<br \/>\n    &#8220;_comment04&#8221;: &#8220;# &#8211;note; that this value is &#8220;Additive&#8221; to the `timeoutSeconds` value, so the actual time will be 3840, aka. 64 minutes.&#8221;,<br \/>\n    &#8220;afkKickTimer&#8221;: 3000,<br \/>\n    &#8220;_comment05&#8221;: &#8220;# Default permission level to mark players as &#8220;safe&#8221; from being automatically kicked, i.e., Server Admins (Default: 3)&#8221;,<br \/>\n    &#8220;afkKickSafePermissions&#8221;: 3,<br \/>\n    &#8220;_comment06&#8221;: &#8220;# The Kick Reason message sent to players that are removed.  Can be set to &#8220;&#8221; to get a basic &#8220;AFK timeout&#8221; reason.&#8221;,<br \/>\n    &#8220;_comment07&#8221;: &#8220;# (Default: &#8220;<copper>AFK beyond the allowed time limit set by your Administrator.<r>&#8220;)&#8221;,<br \/>\n    &#8220;_comment08&#8221;: &#8220;# &#8211;note; that this message gets the AFK duration added to the end if `message.displayDuration` is set to true.&#8221;,<br \/>\n    &#8220;afkKickMessage&#8221;: &#8220;<copper>AFK beyond the allowed time limit set by your Administrator.<r>&#8220;,<br \/>\n    &#8220;_comment09&#8221;: &#8220;# The message content when an AFK player gets kicked from the server.&#8221;,<br \/>\n    &#8220;_comment10&#8221;: &#8220;# (Default: &#8220;%player:displayname% <copper>was kicked for being AFK.<r>&#8220;)&#8221;,<br \/>\n    &#8220;_comment11&#8221;: &#8220;# &#8211;note; that this message gets the AFK duration added to the end if `message.displayDuration` is set to true.&#8221;,<br \/>\n    &#8220;whenKicked&#8221;: &#8220;%player:displayname% <copper>was kicked for being AFK.<r>&#8220;,<br \/>\n    &#8220;_comment12&#8221;: &#8220;# The default reason when a player is kicked&#8221;,<br \/>\n    &#8220;_comment13&#8221;: &#8220;# (Default: &#8220;<copper>AFK timeout&#8221;)&#8221;,<br \/>\n    &#8220;whenKickedDefaultReason&#8221;: &#8220;<copper>AFK timeout&#8221;,<br \/>\n    &#8220;_comment14&#8221;: &#8220;# The AFK default Duration Prefix used when a player is kicked.  The duration format used follows the message.duration configuration.&#8221;,<br \/>\n    &#8220;_comment15&#8221;: &#8220;# (Default: &#8221; <gray>(Gone for: <green>&#8220;)&#8221;,<br \/>\n    &#8220;whenKickedDurationDefaultPrefix&#8221;: &#8221; <gray>(Gone for: <green>&#8220;,<br \/>\n    &#8220;_comment16&#8221;: &#8220;# The AFK Player Named Duration Prefix used when a player is kicked.  The duration format used follows the message.duration configuration.&#8221;,<br \/>\n    &#8220;_comment17&#8221;: &#8220;# (Default: &#8221; <gray>(%player:displayname% was gone for: <green\")\",\n    \"whenKickedDurationNamedPrefix\": \" <gray>(%player:displayname% was gone for: <green>&#8220;,<br \/>\n    &#8220;_comment18&#8221;: &#8220;# The suffix for either kick Duration Prefix&#8221;,<br \/>\n    &#8220;_comment19&#8221;: &#8220;# (Default: &#8221; <gray>)&#8221;&#8221;,<br \/>\n    &#8220;whenKickedDurationSuffix&#8221;: &#8220;<gray>)&#8221;<br \/>\n  },<br \/>\n  &#8220;player_list&#8221;: {<br \/>\n    &#8220;_comment01&#8221;: &#8220;# Change the playerlist name for players who are AFK (Default: true)&#8221;,<br \/>\n    &#8220;_comment02&#8221;: &#8220;# &#8212; note; This is for when you&#8217;re NOT using a player list display mods.&#8221;,<br \/>\n    &#8220;enableListDisplay&#8221;: true,<br \/>\n    &#8220;_comment03&#8221;: &#8220;# The name that is shown in the player list if a player is AFK, and accepts formatting nodes&#8221;,<br \/>\n    &#8220;_comment04&#8221;: &#8220;# (Default: &#8220;<i><gray>[AFK%afkplus:invulnerable%] %player:displayname%<r>&#8220;)&#8221;,<br \/>\n    &#8220;_comment05&#8221;: &#8220;# &#8212; note; This function works best when not using Player List mods!*&#8221;,<br \/>\n    &#8220;afkPlayerName&#8221;: &#8220;<i><gray>[AFK%afkplus:invulnerable%] %player:displayname%<r>&#8220;,<br \/>\n    &#8220;_comment06&#8221;: &#8220;# This option sets a default Player List update interval.  This config goes a long way fixing&#8221;,<br \/>\n    &#8220;_comment07&#8221;: &#8220;#  various Player list update issues; especially when other Player List management mods are installed.&#8221;,<br \/>\n    &#8220;_comment08&#8221;: &#8220;#  (Default: 10 seconds)&#8221;,<br \/>\n    &#8220;updateInterval&#8221;: 10<br \/>\n  },<br \/>\n  &#8220;place_holder&#8221;: {<br \/>\n    &#8220;_comment01&#8221;: &#8220;# This will be the value of the placeholder %afkplus: afk% if a player is AFK, option accepts full formatting nodes&#8221;,<br \/>\n    &#8220;_comment02&#8221;: &#8220;# (Default: &#8220;<i><gray>[AFK%afkplus:invulnerable%]<r>&#8220;)&#8221;,<br \/>\n    &#8220;_comment03&#8221;: &#8220;# &#8212; note; *DOES NOT* place an &#8220;<r>&#8221; at the end in the code (trying not to modify its default behavior)&#8221;,<br \/>\n    &#8220;afkPlaceholder&#8221;: &#8220;<i><gray>[AFK%afkplus:invulnerable%]<r>&#8220;,<br \/>\n    &#8220;_comment04&#8221;: &#8220;# Placeholder %afkplus:name% for backporting the entire %displayname% for use in other Mods, such as Styled Player List&#8221;,<br \/>\n    &#8220;_comment05&#8221;: &#8220;# (Default: &#8220;<i><gray>[AFK%afkplus:invulnerable%] %player:displayname_unformatted%<r>&#8220;)&#8221;,<br \/>\n    &#8220;_comment06&#8221;: &#8220;# &#8212; note; *DOES NOT* places an &#8220;<r>&#8221; at the end in the code (trying not to modify its default behavior)&#8221;,<br \/>\n    &#8220;afkPlusNamePlaceholderAfk&#8221;: &#8220;<i><gray>[AFK%afkplus:invulnerable%] %player:displayname_unformatted%<r>&#8220;,<br \/>\n    &#8220;_comment07&#8221;: &#8220;# Value for when a player is NOT AFK, (i.e., the default &#8220;%player:displayname%&#8221;)&#8221;,<br \/>\n    &#8220;_comment08&#8221;: &#8220;# &#8212; note; *DOES NOT* places an &#8220;<r>&#8221; at the end in the code (trying not to modify its default behavior)&#8221;,<br \/>\n    &#8220;afkPlusNamePlaceholder&#8221;: &#8220;%player:displayname%&#8221;,<br \/>\n    &#8220;_comment09&#8221;: &#8220;# Adds a formatting prefix node for %afkplus:duration% (default: <green>)&#8221;,<br \/>\n    &#8220;_comment10&#8221;: &#8220;# &#8212; note; places an &#8220;<r>&#8221; at the end in the code, and this is used during \/afkinfo&#8221;,<br \/>\n    &#8220;afkDurationPlaceholderFormatting&#8221;: &#8220;<green>&#8220;,<br \/>\n    &#8220;_comment11&#8221;: &#8220;# Adds a formatting prefix node for %afkplus: time% (default: <green>)&#8221;,<br \/>\n    &#8220;_comment12&#8221;: &#8220;# &#8212; note; places an &#8220;<r>&#8221; at the end in the code, and this is used during \/afkinfo&#8221;,<br \/>\n    &#8220;afkTimePlaceholderFormatting&#8221;: &#8220;<green>&#8220;,<br \/>\n    &#8220;_comment13&#8221;: &#8220;# Adds a formatting prefix node for %afkplus: reason%, I&#8217;m not sure why someone might want this enabled, because&#8221;,<br \/>\n    &#8220;_comment14&#8221;: &#8220;# formatting your [Reason] yourself is fun. (default: none)&#8221;,<br \/>\n    &#8220;_comment15&#8221;: &#8220;# &#8212; note; places an &#8220;<r>&#8221; at the end of the code, and this is used during \/afkinfo&#8221;,<br \/>\n    &#8220;afkReasonPlaceholderFormatting&#8221;: &#8220;&#8221;,<br \/>\n    &#8220;_comment16&#8221;: &#8220;# Adds an option to configure a basic &#8220;Add-On&#8221; placeholder for attaching to the &#8220;[AFK]&#8221; tag to mark when a player is&#8221;,<br \/>\n    &#8220;_comment17&#8221;: &#8220;# marked as Invulnerable using %afkplus: invulnerable% (Default: &#8220;:<red>I<r>&#8220;)&#8221;,<br \/>\n    &#8220;afkInvulnerablePlaceholder&#8221;: &#8220;:<red>I<r>&#8220;,<br \/>\n    &#8220;_comment18&#8221;: &#8220;# Adds an option for using custom formatters for the output of the %duration% placeholder.  The valid options are:&#8221;,<br \/>\n    &#8220;_comment19&#8221;: &#8220;# &#8212; &#8216;REGULAR&#8217; (HH:mm:ss.SSS) (Default: REGULAR)&#8221;,<br \/>\n    &#8220;_comment20&#8221;: &#8220;# &#8212; &#8216;PRETTY&#8217; (d&#8217; days &#8216;H&#8217; hours &#8216;m&#8217; minutes &#8216;s&#8217; seconds&#8217;)&#8221;,<br \/>\n    &#8220;_comment21&#8221;: &#8220;# &#8212; &#8216;ISO_EXTENDED&#8217; (&#8216;P&#8217;yyyy&#8217;Y&#8217;M&#8217;M&#8217;d&#8217;DT&#8217;H&#8217;H&#8217;m&#8217;M&#8217;s.SSS&#8217;S&#8217;)&#8221;,<br \/>\n    &#8220;_comment22&#8221;: &#8220;# &#8212; &#8216;FORMATTED&#8217;; Same as ISO_EXTENDED, but this option allows you to set your own custom DurationFormatUtils Formatter,&#8221;,<br \/>\n    &#8220;_comment23&#8221;: &#8220;#     &#8211;>  SEE: &#8220;org.apache.commons.lang3.time.DurationFormatUtils;&#8221; for more information&#8221;,<br \/>\n    &#8220;duration&#8221;: {<br \/>\n      &#8220;option&#8221;: &#8220;REGULAR&#8221;,<br \/>\n      &#8220;customFormat&#8221;: &#8220;&#8221;<br \/>\n    },<br \/>\n    &#8220;_comment24&#8221;: &#8220;# Adds an option for using custom formatters for the output of the %afkTime% placeholder.  The valid options are:&#8221;,<br \/>\n    &#8220;_comment25&#8221;: &#8220;# &#8212; &#8216;REGULAR&#8217; (yyyy-MM-dd_HH.mm.ss); which is the same format that Minecraft uses and is the Default config. (Default: REGULAR)&#8221;,<br \/>\n    &#8220;_comment26&#8221;: &#8220;# &#8212; &#8216;ISO_LOCAL&#8217; (yyyy-MM-ddTHH:mm:ss.n)&#8221;,<br \/>\n    &#8220;_comment27&#8221;: &#8220;# &#8212; &#8216;ISO_OFFSET&#8217; (yyyy-MM-ddTHH:mm:ss.nZ)&#8221;,<br \/>\n    &#8220;_comment28&#8221;: &#8220;# &#8212; &#8216;RFC1123&#8217; (EEE, dd MMM yyyy HH:mm:ss +HHMM)&#8221;,<br \/>\n    &#8220;_comment29&#8221;: &#8220;# &#8212; &#8216;FORMATTED&#8217;; (yyyy-MM-dd_HH.mm.ss); This is the same as &#8216;REGULAR&#8217;, but this option allows you to set your own custom&#8221;,<br \/>\n    &#8220;_comment30&#8221;: &#8220;#     formatters based on the &#8220;java.time.format.DateTimeFormatter&#8221; formatter syntax; see that package for more information.&#8221;,<br \/>\n    &#8220;timeDate&#8221;: {<br \/>\n      &#8220;option&#8221;: &#8220;REGULAR&#8221;,<br \/>\n      &#8220;customFormat&#8221;: &#8220;&#8221;<br \/>\n    }<br \/>\n  },<br \/>\n  &#8220;message&#8221;: {<br \/>\n    &#8220;_comment01&#8221;: &#8220;# Enables chat messages when a player goes AFk or returns. (Default: true)&#8221;,<br \/>\n    &#8220;enableMessages&#8221;: true,<br \/>\n    &#8220;_comment02&#8221;: &#8220;# The message content when a player goes AFK, and accepts formatting nodes&#8221;,<br \/>\n    &#8220;_comment03&#8221;: &#8220;#  (Default: &#8220;%player:displayname% <yellow>is now AFK<r>&#8220;)&#8221;,<br \/>\n    &#8220;whenAfk&#8221;: &#8220;%player:displayname% <yellow>is now AFK<r>&#8220;,<br \/>\n    &#8220;_comment04&#8221;: &#8220;# An optional configuration for the &#8220;whenAfk&#8221; punctuation in between that, and the Duration \/ Reason that follows.&#8221;,<br \/>\n    &#8220;_comment05&#8221;: &#8220;# (Default: &#8220;<yellow>,<r> &#8220;)&#8221;,<br \/>\n    &#8220;whenAfkPunctuation&#8221;: &#8220;<yellow>,<r> &#8220;,<br \/>\n    &#8220;_comment06&#8221;: &#8220;# The messages content when a player returns from AFK, and accepts formatting nodes.&#8221;,<br \/>\n    &#8220;_comment07&#8221;: &#8220;# (Default: &#8220;%player:displayname% <yellow>is no longer AFK<r>&#8220;)&#8221;,<br \/>\n    &#8220;_comment08&#8221;: &#8220;# &#8211;note; that this message gets the AFK duration added to the end if `displayDuration` is set to true.&#8221;,<br \/>\n    &#8220;whenReturn&#8221;: &#8220;%player:displayname% <yellow>is no longer AFK<r>&#8220;,<br \/>\n    &#8220;_comment09&#8221;: &#8220;# The prefix formatting for the &#8220;whenReturn&#8221; duration formatting portion.&#8221;,<br \/>\n    &#8220;_comment10&#8221;: &#8220;# (Default: &#8221; <gray>(Gone for: <green>&#8220;)&#8221;,<br \/>\n    &#8220;whenReturnDurationPrefix&#8221;: &#8221; <gray>(Gone for: <green>&#8220;,<br \/>\n    &#8220;_comment11&#8221;: &#8220;# The suffix formatting for the &#8220;whenReturn&#8221; duration formatting portion.&#8221;,<br \/>\n    &#8220;_comment12&#8221;: &#8220;# (Default: &#8220;<gray>)&#8221;)&#8221;,<br \/>\n    &#8220;whenReturnDurationSuffix&#8221;: &#8220;<gray>)&#8221;,<br \/>\n    &#8220;_comment13&#8221;: &#8220;# Default reason for going AFK via the \/afk command.  Leave in a poof of smoke without having to give a reason.&#8221;,<br \/>\n    &#8220;_comment14&#8221;: &#8220;# (Default: &#8220;<gray>poof!<r>&#8220;)&#8221;,<br \/>\n    &#8220;_comment15&#8221;: &#8220;# &#8211;note; &#8220;&#8221; is a valid setting, and will disable the default \/afk reason.&#8221;,<br \/>\n    &#8220;defaultReason&#8221;: &#8220;<gray>poof!<r>&#8220;,<br \/>\n    &#8220;_comment16&#8221;: &#8220;# A configurable greeting when players repeatedly type &#8216;\/afk&#8217; and expect a broken result.&#8221;,<br \/>\n    &#8220;_comment17&#8221;: &#8220;# (Default: &#8220;<yellow>Welcome back, <r>%player:display_name%<r>, <yellow>did you miss anything fun?&#8221;)&#8221;,<br \/>\n    &#8220;afkCooldownGreeting&#8221;: &#8220;<yellow>Welcome back, <r>%player:display_name%<r>, <yellow>did you miss anything fun?&#8221;,<br \/>\n    &#8220;_comment18&#8221;: &#8220;# An general error condition sent when a player is marked as Vanished by &#8220;melius-vanish&#8221; maintained by DrexHD&#8221;,<br \/>\n    &#8220;_comment19&#8221;: &#8220;# (Default: &#8220;<red>You are vanished, and probably shouldn&#8217;t be doing that.<r>&#8220;)&#8221;,<br \/>\n    &#8220;whileYourVanished&#8221;: &#8220;<red>You are vanished, and probably shouldn&#8217;t be doing that.<r>&#8220;,<br \/>\n    &#8220;_comment20&#8221;: &#8220;# An general error condition in the third person sent when a player is marked as Vanished by &#8220;melius-vanish&#8221; maintained by DrexHD&#8221;,<br \/>\n    &#8220;_comment21&#8221;: &#8220;# (Default: &#8220;<red> is vanished, and probably shouldn&#8217;t be doing that.<r>&#8220;)&#8221;,<br \/>\n    &#8220;whileVanished&#8221;: &#8220;<red> is vanished, and probably shouldn&#8217;t be doing that.<r>&#8220;,<br \/>\n    &#8220;_comment22&#8221;: &#8220;# This enables the duration display portion of the whenReturn message.  See the &#8220;duration&#8221; configuration below.&#8221;,<br \/>\n    &#8220;_comment23&#8221;: &#8220;# (Default: true)&#8221;,<br \/>\n    &#8220;displayDuration&#8221;: true,<br \/>\n    &#8220;_comment24&#8221;: &#8220;# Re-Formats the &#8220;duration&#8221; in chat messages and \/afkinfo and &#8216;whenReturn&#8217;, etc; to a more human-readable format.&#8221;,<br \/>\n    &#8220;_comment25&#8221;: &#8220;# &#8212; &#8216;REGULAR&#8217; (HH:mm:ss.SSS)&#8221;,<br \/>\n    &#8220;_comment26&#8221;: &#8220;# &#8212; &#8216;PRETTY&#8217; (d&#8217; days &#8216;H&#8217; hours &#8216;m&#8217; minutes &#8216;s&#8217; seconds&#8217;) (Default: PRETTY)&#8221;,<br \/>\n    &#8220;_comment27&#8221;: &#8220;# &#8212; &#8216;ISO_EXTENDED&#8217; (&#8216;P&#8217;yyyy&#8217;Y&#8217;M&#8217;M&#8217;d&#8217;DT&#8217;H&#8217;H&#8217;m&#8217;M&#8217;s.SSS&#8217;S&#8217;)&#8221;,<br \/>\n    &#8220;_comment28&#8221;: &#8220;# &#8212; &#8216;FORMATTED&#8217;; Same as ISO_EXTENDED, but this option allows you to set your own custom DurationFormatUtils Formatter,&#8221;,<br \/>\n    &#8220;_comment29&#8221;: &#8220;#     &#8211;>  SEE: &#8220;org.apache.commons.lang3.time.DurationFormatUtils;&#8221; for more information&#8221;,<br \/>\n    &#8220;duration&#8221;: {<br \/>\n      &#8220;option&#8221;: &#8220;PRETTY&#8221;,<br \/>\n      &#8220;customFormat&#8221;: &#8220;&#8221;<br \/>\n    },<br \/>\n    &#8220;_comment30&#8221;: &#8220;# Adds an option for using custom formatters for the output of the \/afkinfo command.  The valid options are:&#8221;,<br \/>\n    &#8220;_comment31&#8221;: &#8220;# &#8212; &#8216;REGULAR&#8217; (yyyy-MM-dd_HH.mm.ss); which is the same format that Minecraft uses and is the Default config. (Default: REGULAR)&#8221;,<br \/>\n    &#8220;_comment32&#8221;: &#8220;# &#8212; &#8216;ISO_LOCAL&#8217; (yyyy-MM-ddTHH:mm:ss.n)&#8221;,<br \/>\n    &#8220;_comment33&#8221;: &#8220;# &#8212; &#8216;ISO_OFFSET&#8217; (yyyy-MM-ddTHH:mm:ss.nZ)&#8221;,<br \/>\n    &#8220;_comment34&#8221;: &#8220;# &#8212; &#8216;RFC1123&#8217; (EEE, dd MMM yyyy HH:mm:ss +HHMM)&#8221;,<br \/>\n    &#8220;_comment35&#8221;: &#8220;# &#8212; &#8216;FORMATTED&#8217;; (yyyy-MM-dd_HH.mm.ss); This is the same as &#8216;REGULAR&#8217;, but this option allows you to set your own custom&#8221;,<br \/>\n    &#8220;_comment36&#8221;: &#8220;#     formatters based on the &#8220;java.time.format.DateTimeFormatter&#8221; formatter syntax; see that package for more information.&#8221;,<br \/>\n    &#8220;timeDate&#8221;: {<br \/>\n      &#8220;option&#8221;: &#8220;REGULAR&#8221;,<br \/>\n      &#8220;customFormat&#8221;: &#8220;&#8221;<br \/>\n    }<br \/>\n  }<br \/>\n}<br \/>\n&#8220;`<\/p>\n","protected":false},"excerpt":{"rendered":"<p>New AFK management mod, with full AFK Time\/Duration\/Reason handling; and full Placeholder API formatting support.  Also works in Single Player; and can provide this information to other mods via Placeholder API.  Supports Luck Permissions.<\/p>\n","protected":false},"featured_media":8952,"template":"","meta":{"_minecraft_slug":"afkplus","_minecraft_project_id":"y8K2TFS3","_minecraft_author":"sakura-ryoko","_minecraft_license":"MIT","_minecraft_downloads":28328,"_minecraft_follows":58,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"afkplus.zip","_minecraft_size_bytes":243122524,"_minecraft_version_count":215,"_minecraft_updated_at":"2026-05-16T17:55:06.487679Z","_minecraft_date_created":"2023-11-25T22:45:26.757202Z","_minecraft_date_modified":"2026-04-03T05:09:44.801688Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/afkplus","_minecraft_icon_attachment_id":8952,"_minecraft_imported_at":"2026-05-31T15:27:03+00:00","_minecraft_import_hash":"95ae7a63689c2f825a2cdebe8617ef83","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[97,126,867,92],"mod_loader":[99],"minecraft_version":[49,50,51,52,53,55,56,57,58,59,36,60,93,730,94,101,102,62,108,37,40,41,73,74,38,78,79,80,81,82,83,167,163],"class_list":["post-8951","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-fabric","mod_category-management","mod_category-social","mod_category-utility","mod_loader-fabric","minecraft_version-1-17","minecraft_version-1-17-1","minecraft_version-1-18","minecraft_version-1-18-1","minecraft_version-1-18-2","minecraft_version-1-19-1","minecraft_version-1-19-2","minecraft_version-1-19-3","minecraft_version-1-19-4","minecraft_version-1-20","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-3-rc1","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-rc1","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9","minecraft_version-26-1","minecraft_version-26-1-1","minecraft_version-26-1-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AfkPlus - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/afkplus\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AfkPlus - Minecraft\" \/>\n<meta property=\"og:description\" content=\"New AFK management mod, with full AFK Time\/Duration\/Reason handling; and full Placeholder API formatting support. Also works in Single Player; and can provide this information to other mods via Placeholder API. Supports Luck Permissions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/afkplus\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/afkplus\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/afkplus\\\/\",\"name\":\"AfkPlus - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/afkplus\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/afkplus\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/afkplus-icon-5d97572ba634633e7c67d5aafcaad061a046a7eb_96.webp\",\"datePublished\":\"2026-05-31T15:27:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/afkplus\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/afkplus\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/afkplus\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/afkplus-icon-5d97572ba634633e7c67d5aafcaad061a046a7eb_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/afkplus-icon-5d97572ba634633e7c67d5aafcaad061a046a7eb_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/afkplus\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"AfkPlus\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AfkPlus - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/afkplus\/","og_locale":"en_US","og_type":"article","og_title":"AfkPlus - Minecraft","og_description":"New AFK management mod, with full AFK Time\/Duration\/Reason handling; and full Placeholder API formatting support. Also works in Single Player; and can provide this information to other mods via Placeholder API. Supports Luck Permissions.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/afkplus\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/afkplus\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/afkplus\/","name":"AfkPlus - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/afkplus\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/afkplus\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/05\/afkplus-icon-5d97572ba634633e7c67d5aafcaad061a046a7eb_96.webp","datePublished":"2026-05-31T15:27:02+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/afkplus\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/afkplus\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/afkplus\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/05\/afkplus-icon-5d97572ba634633e7c67d5aafcaad061a046a7eb_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/05\/afkplus-icon-5d97572ba634633e7c67d5aafcaad061a046a7eb_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/afkplus\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"AfkPlus"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/8951","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/8952"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=8951"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=8951"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=8951"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=8951"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}