{"id":134317,"date":"2026-06-08T01:17:26","date_gmt":"2026-06-07T22:17:26","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/rp-essentials\/"},"modified":"2026-06-08T01:17:26","modified_gmt":"2026-06-07T22:17:26","slug":"rp-essentials","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/rp-essentials\/","title":{"rendered":"RpEssentials"},"content":{"rendered":"<p># Rp Essentials<\/p>\n<p>**Rp Essentials** is a comprehensive server-side utility mod built for immersive Roleplay servers running Minecraft 1.21.1 on NeoForge. It provides a complete suite of RP tools: proximity-based name obfuscation, a profession and license system, a warn system, connection tracking, private messaging, schedule automation, staff moderation tools, advanced chat formatting, world border warnings, named zones, Death RP, and deep LuckPerms integration. All configurable in real-time without restarts.<\/p>\n<p>> Current version: **4.1.9**: See CHANGELOG for the full history.<\/p>\n<p>&#8212;<\/p>\n<p>## Requirements<\/p>\n<p>| Dependency | Version | Side | Required |<br \/>\n|:&#8212;&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8211;|:&#8212;&#8211;|:&#8212;&#8212;&#8212;|<br \/>\n| Minecraft | 1.21.1 | Both | \u2705 |<br \/>\n| NeoForge | 21.1.219+ | Both | \u2705 |<br \/>\n| LuckPerms | Any | Server | \u2b1c Optional |<br \/>\n| ImmersiveMessages | neoforge-1.21.1:1.0.18 | Client | \u2b1c Optional |<br \/>\n| TxniLib | neoforge-1.21.1:1.0.24 | Client | \u2b1c Optional |<\/p>\n<p>> ImmersiveMessages and TxniLib are only required on the **client** if you use `zoneMessageMode = IMMERSIVE`. The server runs fine without them.<\/p>\n<p>&#8212;<\/p>\n<p>## Installation<\/p>\n<p>1. Download the latest `rpessentials-X.X.X.jar` from the releases page.<br \/>\n2. Place the JAR in your server&#8217;s `mods\/` folder.<br \/>\n3. *(Optional)* Install LuckPerms for prefix\/suffix and group-based staff permissions.<br \/>\n4. Start the server: all config files are generated automatically under `config\/rpessentials\/`.<br \/>\n5. Edit the relevant config files (see &#8216;Configuration&#8217; below).<br \/>\n6. Reload in-game with `\/rpessentials config reload` or restart the server.<\/p>\n<p>&#8212;<\/p>\n<p>## Features<\/p>\n<p>### Proximity Obfuscation<\/p>\n<p>Prevents metagaming by hiding player identities based on distance:<\/p>\n<p>&#8211; Player names in the TabList and above heads are replaced with `?????` beyond a configurable range (default: 8 blocks).<br \/>\n&#8211; **Tab list player head hidden for obfuscated players:** The skin icon next to an obfuscated player&#8217;s name in the tab list is hidden, preventing skin-based identification. Non-obfuscated players, staff, whitelisted players, and always-visible players are unaffected.<br \/>\n&#8211; **Sneak Stealth Mode:** Crouching players are only detectable at 2 blocks (configurable).<br \/>\n&#8211; **Nametag Hiding:** Optionally hide all player nametags above heads server-wide.<br \/>\n&#8211; **Whitelist:** Players who always see all names clearly.<br \/>\n&#8211; **Blacklist:** Players who are always hidden regardless of distance (stealth staff, NPCs).<br \/>\n&#8211; **Always Visible List:** Players who are never obfuscated to anyone.<br \/>\n&#8211; **Spectator Blur:** Players in spectator mode are automatically hidden from the TabList.<br \/>\n&#8211; LuckPerms rank prefixes are always hidden during obfuscation to prevent rank-based metagaming.<br \/>\n&#8211; Staff with `opsSeeAll` see both nickname and real name simultaneously: `Nickname (RealName)`.<\/p>\n<p>### Nickname System<\/p>\n<p>Persistent RP nicknames fully integrated across all mod systems:<\/p>\n<p>&#8211; Set custom nicknames with full `\u00a7` and `&#038;` color code support.<br \/>\n&#8211; Nicknames appear in the TabList, above heads, in chat, and in private messages.<br \/>\n&#8211; Stored persistently in `world\/data\/rpessentials\/nicknames.json`.<br \/>\n&#8211; `\/whois` allows staff to reverse-lookup any nickname to its real MC username and UUID.<\/p>\n<p>### Nametag System<\/p>\n<p>Realistic nametag behavior integrated with the nickname system:<\/p>\n<p>&#8211; **Block occlusion:** Nametags are hidden when a block is between the viewer and the target. Implemented by switching `Font.DisplayMode` from `SEE_THROUGH` to `NORMAL`, activating the GPU depth test, same technique as the Realistic Nametag mod. No raycast, no performance overhead.<br \/>\n&#8211; **Server nickname on nametag:** The nametag displays the nickname set on the server (via `\/rpessentials nick`), with the LuckPerms prefix and full color code support. Never uses a locally cached nickname.<br \/>\n&#8211; **Global hide toggle:** All nametags can be hidden server-wide via `hideNametags = true` in `rpessentials-core.toml` or `\/rpessentials config set hideNametags true\/false`.<\/p>\n<p>### Profession &#038; License System<\/p>\n<p>A complete job restriction system for RP servers:<\/p>\n<p>&#8211; Define unlimited professions with custom names and color codes.<br \/>\n&#8211; Physical **license items** are given to players, carrying profession metadata and issuance date.<br \/>\n&#8211; **RP Licenses:** Decorative-only licenses for events, with a printed expiration date and no actual permissions.<br \/>\n&#8211; **Restriction types:** crafting, block breaking, item usage, equipment (armor\/weapons), and attacks.<br \/>\n&#8211; **Global restrictions** apply to all players by default, with **per-profession overrides** for licensed players.<br \/>\n&#8211; Wildcard pattern support: `minecraft:*_pickaxe` blocks an entire item category.<br \/>\n&#8211; Restriction messages shown via action bar with anti-spam cooldown.<br \/>\n&#8211; Tooltips display required professions on restricted items (client-side packet sync).<br \/>\n&#8211; **License Audit Log:** Every `GIVE`, `REVOKE`, and `GIVE_RP` action is permanently logged to `world\/data\/rpessentials\/license-audit.json`.<br \/>\n&#8211; **Temp License Registry:** RP licenses are tracked in `world\/data\/rpessentials\/licenses-temp.json`.<br \/>\n&#8211; Revoked license items are automatically removed from the player&#8217;s inventory.<br \/>\n&#8211; Whitelisted players are exempt from all profession restrictions (configurable).<br \/>\n&#8211; Granting or revoking a license automatically adds or removes the corresponding vanilla scoreboard tag (tag name = profession ID).<\/p>\n<p>### Warn System<\/p>\n<p>Full staff warning system for moderation:<\/p>\n<p>&#8211; Issue **permanent** or **temporary** warns to any online player.<br \/>\n&#8211; The warned player receives an immediate in-chat notification with the reason and duration.<br \/>\n&#8211; On every login, players are notified of their active warn count and invited to run `\/mywarn`.<br \/>\n&#8211; `\/mywarn` lets any player view their own active warns with reason, issuer, date, and remaining time.<br \/>\n&#8211; Configurable staff broadcast on every warn add and warn remove.<br \/>\n&#8211; Automatic purge of expired temp-warns on player login (configurable).<br \/>\n&#8211; Warn IDs are auto-incremental integers, recalculated after every deletion to avoid gaps.<br \/>\n&#8211; Data stored in `world\/data\/rpessentials\/warns.json`.<\/p>\n<p>### Last Connection Tracking<\/p>\n<p>Automatic recording of player connection history:<\/p>\n<p>&#8211; Records last login and last logout for every player.<br \/>\n&#8211; Data stored in `world\/data\/rpessentials\/lastconnection.json`: human-readable `UUID (McUsername)` key format.<br \/>\n&#8211; Staff can look up any player&#8217;s last connection time, even for offline players.<br \/>\n&#8211; List view shows the N most recent connections sorted by date.<\/p>\n<p>### Private Messaging<\/p>\n<p>Custom `\/msg` system fully replacing vanilla messaging:<\/p>\n<p>&#8211; `\/msg <player> <message>`, `\/tell`, `\/w`, `\/whisper`: send private messages with Rp Essentials formatting.<br \/>\n&#8211; `\/r <message>`: reply to the last person who messaged you.<br \/>\n&#8211; Messages formatted with nicknames, LuckPerms prefixes\/suffixes, and color codes.<br \/>\n&#8211; Clickable &#8220;Click to reply&#8221; button in received messages.<br \/>\n&#8211; Console-to-player messaging supported.<\/p>\n<p>### Advanced Chat<\/p>\n<p>Full chat formatting system:<\/p>\n<p>&#8211; Customizable player name format with LuckPerms prefix\/suffix support (`$prefix $name $suffix`).<br \/>\n&#8211; Full message template with timestamp and color support (`$time | $name: $msg`).<br \/>\n&#8211; Global chat message color configuration (16 Minecraft colors available).<br \/>\n&#8211; Timestamp system with customizable Java `SimpleDateFormat`.<br \/>\n&#8211; **Real-time Markdown support:**<br \/>\n  &#8211; `**text**` \u2192 **Bold**<br \/>\n  &#8211; `*text*` \u2192 *Italic*<br \/>\n  &#8211; `__text__` \u2192 Underline<br \/>\n  &#8211; `~~text~~` \u2192 Strikethrough<br \/>\n&#8211; `\/colors` displays all available colors and formatting codes with a visual preview.<br \/>\n&#8211; Full integration with the nickname system, nicknames appear in chat automatically.<\/p>\n<p>### Join \/ Leave Messages<\/p>\n<p>&#8211; Fully customizable join and leave messages with `{player}` and `{nickname}` placeholders.<br \/>\n&#8211; Full color code support.<br \/>\n&#8211; Can be disabled entirely.<\/p>\n<p>### Welcome Message<\/p>\n<p>&#8211; Configurable multi-line welcome message sent to players on login.<br \/>\n&#8211; Optional sound effect with configurable volume and pitch.<br \/>\n&#8211; `{player}` and `{nickname}` variable support.<br \/>\n&#8211; Integrates with the schedule system to display server status.<\/p>\n<p>### Server Schedule<\/p>\n<p>Automated server opening and closing management with per-day support:<\/p>\n<p>&#8211; Each day of the week (`MONDAY` through `SUNDAY`) has its own `enabled`, `open`, and `close` fields.<br \/>\n&#8211; Disabled days are treated as fully closed.<br \/>\n&#8211; Automated warnings at 45, 30, 10, and 1 minute before closing.<br \/>\n&#8211; Smart kick system that only affects non-staff players.<br \/>\n&#8211; Staff receives notifications when the server opens or closes.<br \/>\n&#8211; The kick message displays the next open day and its hours (placeholders: `{day}`, `{open}`, `{close}`).<br \/>\n&#8211; `\/rpessentials schedule` and `\/schedule` display the full week at a glance with the current day highlighted.<br \/>\n&#8211; Aliases: `\/schedule` and `\/horaires`.<\/p>\n<p>### Death Hours<\/p>\n<p>An optional schedule layer that activates Death RP during configured time slots, independently of the global Death RP toggle. Supports cross-midnight ranges. Disabled by default.<\/p>\n<p>### HRP Hours<\/p>\n<p>An optional schedule layer for out-of-roleplay (HRP) period management:<\/p>\n<p>&#8211; Two tiers: tolerated (noted but not punished) and allowed (fully free).<br \/>\n&#8211; Broadcast message sent once per slot start to all connected players.<br \/>\n&#8211; Configurable display mode: `CHAT`, `ACTION_BAR`, `TITLE`, `IMMERSIVE`.<br \/>\n&#8211; Disabled by default, entirely ignored when `enableHrpHours = false`.<\/p>\n<p>### Death RP<\/p>\n<p>Permanent death system for RP servers:<\/p>\n<p>&#8211; Global toggle enabling or disabling the system in real-time.<br \/>\n&#8211; Per-player overrides to enable, disable, or reset to the global state.<br \/>\n&#8211; On RP death: a broadcast is sent to all connected players with the deceased&#8217;s nickname and real name.<br \/>\n&#8211; A configurable sound is played to all players on RP death.<br \/>\n&#8211; Optional automatic whitelist removal on RP death (`whitelistRemove`).<br \/>\n&#8211; All messages and sounds are fully configurable for both global and per-player toggles.<\/p>\n<p>### World Border &#038; Named Zones<\/p>\n<p>&#8211; Distance-based warning triggered by proximity to spawn (independent of the vanilla world border).<br \/>\n&#8211; Configurable message with `{distance}` and `{player}` placeholders.<br \/>\n&#8211; **Named Zones:** Define circular zones with center coordinates, radius, and custom entry\/exit messages.<br \/>\n&#8211; Configurable display mode for zone messages: `IMMERSIVE`, `CHAT`, `ACTION_BAR`.<\/p>\n<p>### Staff Moderation Tools<\/p>\n<p>Silent staff commands with full logging:<\/p>\n<p>&#8211; Silent gamemode, teleport, and effect commands: invisible to other players.<br \/>\n&#8211; All actions logged to console and broadcast to other online staff (configurable).<br \/>\n&#8211; Target notification disabled by default (stealth mode).<\/p>\n<p>### Teleportation Platforms<\/p>\n<p>&#8211; Define named platforms across dimensions with custom coordinates.<br \/>\n&#8211; Staff can teleport themselves or other players to any platform.<br \/>\n&#8211; `\/setplatform` command to create or update a platform without editing the config file.<\/p>\n<p>### Roles<\/p>\n<p>&#8211; Assign predefined roles to players via `\/rpessentials setrole`.<br \/>\n&#8211; Automatically removes all existing role tags, adds the new tag, and sets the corresponding LuckPerms group.<br \/>\n&#8211; Roles configurable in `rpessentials-core.toml` under `[Roles]`. Format: `roleId;lpGroup`.<br \/>\n&#8211; Full tab-completion of available roles.<br \/>\n&#8211; Requires OP level 3.<\/p>\n<p>### Auto-Unwhitelist<\/p>\n<p>Automatic removal of inactive players from the whitelist:<\/p>\n<p>&#8211; Configurable inactivity threshold (days).<br \/>\n&#8211; Runs once per day at midnight.<br \/>\n&#8211; Requires `enableLastConnection = true`.<br \/>\n&#8211; Staff members online at the time receive a clickable cancel button to immediately re-whitelist the player.<br \/>\n&#8211; Optional extra commands executed per removed player. Placeholders: `{player}`, `{uuid}`.<br \/>\n&#8211; Disabled by default.<\/p>\n<p>### Staff Permission System<\/p>\n<p>Multi-layered staff detection for maximum reliability:<\/p>\n<p>&#8211; Scoreboard tags (`admin`, `modo`, `staff`, `builder`: configurable).<br \/>\n&#8211; Minimum OP level bypass (configurable from 0 to 4).<br \/>\n&#8211; LuckPerms group integration (configurable).<br \/>\n&#8211; Results cached for better performance (30-second cache).<br \/>\n&#8211; Automatic cache invalidation on logout.<\/p>\n<p>### Fully Configurable Messages<\/p>\n<p>Every player-facing string in the mod is exposed as a configurable value via `oneria-messages.toml`:<\/p>\n<p>&#8211; Full English translation of all messages out of the box.<br \/>\n&#8211; `\u00a7` and `&#038;` color code support in all values.<br \/>\n&#8211; Reloadable at runtime with `\/rpessentials config reload` (no restart required).<br \/>\n&#8211; Organized into clear sections: `[System]`, `[Private Messaging]`, `[Warn System]`, `[Last Connection]`, `[Death RP]`, `[Whois]`, `[Player List]`, `[Help]`, `[Profession Restrictions]`.<\/p>\n<p>&#8212;<\/p>\n<p>## Commands<\/p>\n<p>> **Permissions:** `OP 2` = OP level \u2265 2; `Staff` = staff role detected by the mod&#8217;s permission system; `Everyone` = all players.<\/p>\n<p>### Configuration<br \/>\n| Command | Permission | Description |<br \/>\n|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `\/rpessentials config reload` | OP 2 | Reload all configs and clear caches. |<br \/>\n| `\/rpessentials config status` | OP 2 | Display current status of all mod systems. |<br \/>\n| `\/rpessentials config set<option> <value>` | OP 2 | Modify any config option in real-time. |<\/p>\n<p>### Nicknames<br \/>\n| Command | Permission | Description |<br \/>\n|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `\/rpessentials nick <player> <nickname>` | OP 2 | Set a nickname (supports color codes). |<br \/>\n| `\/rpessentials nick <player>` | OP 2 | Reset a player&#8217;s nickname. |<br \/>\n| `\/rpessentials nick list` | OP 2 | List all active nicknames. |<br \/>\n| `\/whois <nickname>` | OP 2 | Find the MC username and UUID behind a nickname. |<\/p>\n<p>### Licenses<br \/>\n| Command | Permission | Description |<br \/>\n|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `\/rpessentials license give <player> <profession>` | OP 2 | Grant a functional license. |<br \/>\n| `\/rpessentials license giverp <player> <profession> <days>` | OP 2 | Grant a decorative RP-only license with an expiration date. |<br \/>\n| `\/rpessentials license revoke <player> <profession>` | OP 2 | Revoke a license. |<br \/>\n| `\/rpessentials license list [player]` | OP 2 | List all licenses, or those of a specific player. |<br \/>\n| `\/rpessentials license check <player> <profession>` | OP 2 | Check if a player holds a specific license. |<\/p>\n<p>### Warns<br \/>\n| Command | Permission | Description |<br \/>\n|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `\/rpessentials warn add <player> <reason>` | Staff | Issue a permanent warn. |<br \/>\n| `\/rpessentials warn temp <player> <minutes> <reason>` | Staff | Issue a temporary warn. |<br \/>\n| `\/rpessentials warn remove <player> <warnId>` | Staff | Remove a specific warn. |<br \/>\n| `\/rpessentials warn list [player]` | Staff | List all warns, or all warns for a player. |<br \/>\n| `\/rpessentials warn info <player> <warnId>` | Staff | Show full details of a warn. |<br \/>\n| `\/rpessentials warn clear <player>` | Staff | Remove all warns for a player. |<br \/>\n| `\/rpessentials warn purge` | Staff | Purge all expired temp-warns. |<br \/>\n| `\/mywarn` | Everyone | View your own active warns. |<\/p>\n<p>### Last Connection<br \/>\n| Command | Permission | Description |<br \/>\n|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `\/rpessentials lastconnection <player>` | Staff | Show last login\/logout for a player. |<br \/>\n| `\/rpessentials lastconnection list [count]` | Staff | List the N most recent connections (default: 20). |<\/p>\n<p>### Death RP<br \/>\n| Command | Permission | Description |<br \/>\n|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `\/rpessentials deathrp enable <true|false>` | Staff | Toggle Death RP globally. |<br \/>\n| `\/rpessentials deathrp player <player> enable <true|false>` | Staff | Set a per-player override. |<br \/>\n| `\/rpessentials deathrp player <player> reset` | Staff | Remove a player&#8217;s individual override. |<br \/>\n| `\/rpessentials deathrp status` | Staff | Display system state and all active overrides. |<\/p>\n<p>### Roles<br \/>\n| Command | Permission | Description |<br \/>\n|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `\/rpessentials setrole <player> <role>` | OP 3 | Assign a role to a player (sets tags + LuckPerms group). |<\/p>\n<p>### Staff<br \/>\n| Command | Permission | Description |<br \/>\n|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `\/rpessentials staff gamemode <mode> [player]` | Staff | Silent gamemode change. |<br \/>\n| `\/rpessentials staff tp <player>` | Staff | Silent teleport. |<br \/>\n| `\/rpessentials staff effect <player> <effect> <duration> <amplifier>` | Staff | Silent effect application. |<br \/>\n| `\/rpessentials staff platform [player] [id]` | Staff | Teleport to a named platform. |<br \/>\n| `\/setplatform <id> <dimension> <x> <y> <z>` | OP 2 | Create or update a platform entry. |<\/p>\n<p>### Whitelist \/ Blacklist<br \/>\n| Command | Permission | Description |<br \/>\n|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `\/rpessentials whitelist add\/remove\/list` | OP 2 | Manage the blur bypass whitelist. |<br \/>\n| `\/rpessentials blacklist add\/remove\/list` | OP 2 | Manage the always-hidden blacklist. |<br \/>\n| `\/rpessentials alwaysvisible add\/remove\/list` | OP 2 | Manage the never-obfuscated list. |<\/p>\n<p>### Messaging<br \/>\n| Command | Permission | Description |<br \/>\n|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `\/msg <player> <message>` | Everyone | Send a private message. |<br \/>\n| `\/tell`, `\/w`, `\/whisper` | Everyone | Aliases for `\/msg`. |<br \/>\n| `\/r <message>` | Everyone | Reply to the last person who messaged you. |<\/p>\n<p>### Public<br \/>\n| Command | Permission | Description |<br \/>\n|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `\/rpessentials schedule` \/ `\/schedule` \/ `\/horaires` | Everyone | View server schedule and status. |<br \/>\n| `\/rpessentials help` | Everyone | Display available commands (staff section shown to staff only). |<br \/>\n| `\/colors` | Everyone | Display all color codes and formatting options. |<br \/>\n| `\/list` | Everyone | Custom player list showing nicknames and real usernames. |<br \/>\n| `\/mywarn` | Everyone | View your own active warns. |<\/p>\n<p>&#8212;<\/p>\n<p>## Configuration<\/p>\n<p>The mod uses **6 config files** under `config\/rpessentials\/`, generated automatically on first launch. All files are fully documented with inline comments.<\/p>\n<p>| File | Contents |<br \/>\n|:&#8212;&#8211;|:&#8212;&#8212;&#8212;|<br \/>\n| `rpessentials-core.toml` | Obfuscation, permissions, world border &#038; zones, Death RP, roles |<br \/>\n| `rpessentials-chat.toml` | Chat formatting, markdown, timestamps, join\/leave messages |<br \/>\n| `rpessentials-schedule.toml` | Per-day schedule, death hours, HRP hours, welcome message, auto-unwhitelist |<br \/>\n| `rpessentials-moderation.toml` | Silent commands, platforms, last connection, warn system |<br \/>\n| `rpessentials-professions.toml` | Profession definitions and all restriction lists |<br \/>\n| `rpessentials-messages.toml` | All customizable player-facing message strings |<\/p>\n<p>### rpessentials-core.toml<\/p>\n<p>#### [Obfuscation Settings]<br \/>\n| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `enableBlur` | `true` | Master switch for the obfuscation system. |<br \/>\n| `proximityDistance` | `8` | Detection range in blocks (normal). |<br \/>\n| `obfuscatedNameLength` | `5` | Number of `?` characters in the obfuscated name. |<br \/>\n| `obfuscatePrefix` | `true` | Hide LuckPerms rank prefix when obfuscating. |<br \/>\n| `opsSeeAll` | `true` | Staff always see real names. |<br \/>\n| `hideNametags` | `false` | Hide all player nametags above heads. |<br \/>\n| `showNametagPrefixSuffix` | `true` | Show LuckPerms prefix\/suffix in nametags. |<br \/>\n| `enableSneakStealth` | `true` | Crouching reduces detection range. |<br \/>\n| `sneakProximityDistance` | `2` | Detection range for crouching players (blocks). |<br \/>\n| `blurSpectators` | `true` | Hide spectator-mode players from the TabList. |<br \/>\n| `whitelist` | `[]` | Players who always see all names clearly. |<br \/>\n| `blacklist` | `[]` | Players who are always hidden. |<br \/>\n| `alwaysVisibleList` | `[]` | Players who are never obfuscated to anyone. |<br \/>\n| `whitelistExemptProfessions` | `false` | Whitelist players bypass profession restrictions. |<\/p>\n<p>#### [Permissions System]<br \/>\n| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `staffTags` | `[&#8220;admin&#8221;,&#8221;moderateur&#8221;,&#8221;modo&#8221;,&#8221;staff&#8221;,&#8221;builder&#8221;]` | Scoreboard tags\/groups considered staff. |<br \/>\n| `opLevelBypass` | `2` | Minimum OP level to bypass restrictions (0 = disabled). |<br \/>\n| `useLuckPermsGroups` | `true` | Use LuckPerms groups for staff detection. |<br \/>\n| `luckPermsStaffGroups` | `[&#8220;admin&#8221;,&#8221;moderateur&#8221;,&#8221;staff&#8221;]` | LuckPerms groups treated as staff. |<\/p>\n<p>#### [World Border Warning]<br \/>\n| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `enableWorldBorderWarning` | `true` | Enable distance-based warnings. |<br \/>\n| `worldBorderDistance` | `2000` | Warning trigger distance from spawn (blocks). |<br \/>\n| `worldBorderMessage` | `&#8221;&#8230;&#8221;` | Warning message. Variables: `{distance}`, `{player}`. |<br \/>\n| `worldBorderCheckInterval` | `40` | Check frequency in ticks (40 = 2 seconds). |<br \/>\n| `namedZones` | `[]` | Named zones with entry\/exit messages. Format: `name;centerX;centerZ;radius;enterMsg;exitMsg`. |<br \/>\n| `zoneMessageMode` | `&#8221;ACTION_BAR&#8221;` | Display mode for zone messages: `IMMERSIVE`, `CHAT`, `ACTION_BAR`. |<\/p>\n<p>#### [DeathRP]<br \/>\n| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `globalEnabled` | `false` | Global state of the Death RP system. |<br \/>\n| `whitelistRemove` | `false` | Automatically remove the player from the whitelist on RP death. |<br \/>\n| `deathMessage` | `&#8221;&#8230;&#8221;` | Message broadcast to all players on RP death. Variables: `{player}`, `{realname}`. |<br \/>\n| `deathSound` | `&#8221;minecraft:entity.wither.death&#8221;` | Sound played on RP death. Use `none` to disable. |<br \/>\n| `deathSoundVolume` | `1.0` | RP death sound volume. |<br \/>\n| `deathSoundPitch` | `1.0` | RP death sound pitch. |<\/p>\n<p>#### [Roles]<br \/>\n| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `roles` | `[&#8220;admin;admin&#8221;,&#8221;modo;modo&#8221;,&#8221;builder;builder&#8221;,&#8221;joueur;joueur&#8221;]` | Role definitions. Format: `roleId;lpGroup`. |<\/p>\n<p>### rpessentials-chat.toml<\/p>\n<p>#### [Chat Settings]<br \/>\n| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `enableChatFormat` | `true` | Enable the chat formatting system. |<br \/>\n| `playerNameFormat` | `&#8221;$prefix$name$suffix&#8221;` | Player name format in chat. |<br \/>\n| `chatMessageFormat` | `&#8221;$time | $name: $msg&#8221;` | Full message template. |<br \/>\n| `chatMessageColor` | `&#8221;white&#8221;` | Global chat message color. |<br \/>\n| `enableTimestamp` | `false` | Show timestamps in chat. |<br \/>\n| `timestampFormat` | `&#8221;HH:mm&#8221;` | Java `SimpleDateFormat` pattern for timestamps. |<br \/>\n| `enableMarkdown` | `true` | Enable Markdown support in chat. |<\/p>\n<p>#### [Join \/ Leave Messages]<br \/>\n| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `enableJoinMessage` | `true` | Enable the join message. |<br \/>\n| `joinMessage` | `&#8221;&#8230;&#8221;` | Join message. Variables: `{player}`, `{nickname}`. |<br \/>\n| `enableLeaveMessage` | `true` | Enable the leave message. |<br \/>\n| `leaveMessage` | `&#8221;&#8230;&#8221;` | Leave message. Variables: `{player}`, `{nickname}`. |<\/p>\n<p>### rpessentials-schedule.toml<\/p>\n<p>#### [Schedule System | Per Day]<br \/>\nEach day of the week (`MONDAY` through `SUNDAY`) has its own fields:<\/p>\n<p>| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `<day>.enabled` | varies | Whether the server is open this day. |<br \/>\n| `<day>.open` | `&#8221;18:00&#8243;` | Opening time (format `HH:MM`). |<br \/>\n| `<day>.close` | `&#8221;23:00&#8243;` | Closing time (format `HH:MM`). |<\/p>\n<p>#### [Messages]<br \/>\n| Option | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `closingWarningMessage` | Warning message before closing. Variable: `{time}`. |<br \/>\n| `kickMessage` | Kick message. Variables: `{day}`, `{open}`, `{close}`. |<br \/>\n| `serverOpenMessage` | Broadcast message on server open. |<br \/>\n| `serverCloseMessage` | Broadcast message on server close. |<\/p>\n<p>#### [Welcome Message]<br \/>\n| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `enableWelcomeMessage` | `true` | Enable the welcome message. |<br \/>\n| `welcomeMessage` | `[&#8220;&#8230;&#8221;]` | Multi-line welcome message with color code support. |<br \/>\n| `welcomeSound` | `&#8221;&#8221;` | Sound played on login (resource location string). |<br \/>\n| `welcomeSoundVolume` | `1.0` | Welcome sound volume. |<br \/>\n| `welcomeSoundPitch` | `1.0` | Welcome sound pitch. |<\/p>\n<p>#### [Death Hours]<br \/>\n| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `enableDeathHours` | `false` | Enable automatic Death RP activation by time slot. |<br \/>\n| `deathHoursSlots` | `[]` | Time slots for Death RP activation. Format: `HH:MM-HH:MM`. |<\/p>\n<p>#### [HRP Hours]<br \/>\n| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `enableHrpHours` | `false` | Enable the HRP hours system. |<br \/>\n| `hrpBroadcastMode` | `&#8221;CHAT&#8221;` | Display mode: `CHAT`, `ACTION_BAR`, `TITLE`, `IMMERSIVE`. |<\/p>\n<p>#### [Auto-Unwhitelist]<br \/>\n| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `autoUnwhitelistEnabled` | `false` | Enable automatic removal of inactive players from the whitelist. |<br \/>\n| `autoUnwhitelistDays` | `30` | Days of inactivity before removal. |<br \/>\n| `autoUnwhitelistExtraCommands` | `[]` | Extra commands run on removal. Variables: `{player}`, `{uuid}`. |<\/p>\n<p>### rpessentials-moderation.toml<\/p>\n<p>#### [Silent Commands]<br \/>\n| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `enableSilentCommands` | `true` | Enable silent staff commands. |<br \/>\n| `logToStaff` | `true` | Broadcast silent command usage to other staff. |<br \/>\n| `logToConsole` | `true` | Log silent commands to the server console. |<br \/>\n| `notifyTarget` | `false` | Notify the target of the action (disables stealth). |<\/p>\n<p>#### [Teleportation Platforms]<br \/>\n| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `enablePlatforms` | `true` | Enable the platform teleport system. |<br \/>\n| `platforms` | `[&#8230;]` | Platform list (`id;DisplayName;dimension;x;y;z`). |<\/p>\n<p>#### [Last Connection]<br \/>\n| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `enableLastConnection` | `true` | Enable login\/logout time tracking. |<br \/>\n| `trackLogout` | `true` | Also record disconnection times. |<br \/>\n| `dateFormat` | `&#8221;dd\/MM\/yyyy HH:mm:ss&#8221;` | Java `SimpleDateFormat` for stored dates. |<\/p>\n<p>#### [Warn System]<br \/>\n| Option | Default | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `enableWarnSystem` | `true` | Enable the warn system. |<br \/>\n| `notifyOnJoin` | `true` | Notify players of active warns on login. |<br \/>\n| `joinMessage` | `&#8221;&#8230;&#8221;` | Login notification message. Variable: `{count}`. |<br \/>\n| `maxTempDays` | `30` | Max duration for temp warns in days (0 = unlimited). |<br \/>\n| `autoPurgeExpired` | `true` | Auto-purge expired warns on player login. |<br \/>\n| `addedBroadcastFormat` | `&#8221;&#8230;&#8221;` | Staff broadcast on warn add. Variables: `{id}`, `{staff}`, `{player}`, `{reason}`, `{expiry}`. |<br \/>\n| `removedBroadcastFormat` | `&#8221;&#8230;&#8221;` | Staff broadcast on warn remove. Variables: `{id}`, `{staff}`. |<\/p>\n<p>### rpessentials-professions.toml<\/p>\n<p>| Option | Description |<br \/>\n|:&#8212;&#8212;-|:&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `professions` | Profession definitions (`id;DisplayName;\u00a7ColorCode`). |<br \/>\n| `globalBlockedCrafts` | Items blocked from crafting for all players. |<br \/>\n| `globalUnbreakableBlocks` | Blocks that cannot be broken by anyone. |<br \/>\n| `globalBlockedItems` | Items that cannot be used or interacted with. |<br \/>\n| `globalBlockedEquipment` | Armor\/weapons that cannot be equipped. |<br \/>\n| `professionAllowedCrafts` | Per-profession craft overrides (`profession;item1,item2`). |<br \/>\n| `professionAllowedBlocks` | Per-profession block breaking overrides. |<br \/>\n| `professionAllowedItems` | Per-profession item usage overrides. |<br \/>\n| `professionAllowedEquipment` | Per-profession equipment overrides. |<br \/>\n| `craftBlockedMessage` | Message shown when a craft is blocked. |<br \/>\n| `blockBreakBlockedMessage` | Message shown when block breaking is blocked. |<br \/>\n| `itemUseBlockedMessage` | Message shown when item use is blocked. |<br \/>\n| `equipmentBlockedMessage` | Message shown when equipping is blocked. |<\/p>\n<p>### rpessentials-messages.toml<\/p>\n<p>All player-facing strings are configurable in this file. It is generated automatically on first start and organized into sections:<\/p>\n<p>| Section | Contents |<br \/>\n|:&#8212;&#8212;&#8211;|:&#8212;&#8212;&#8212;|<br \/>\n| `[System]` | System messages, config error strings |<br \/>\n| `[Private Messaging]` | Private message prompts and notifications |<br \/>\n| `[Warn System]` | All warn notifications, labels, and duration formats |<br \/>\n| `[Last Connection]` | Last connection display strings |<br \/>\n| `[Death RP]` | Death RP toggle and status messages |<br \/>\n| `[Whois]` | `\/whois` result messages |<br \/>\n| `[Player List]` | Player list header |<br \/>\n| `[Help]` | All help menu entries |<br \/>\n| `[Profession Restrictions]` | Restriction feedback messages |<\/p>\n<p>&#8212;<\/p>\n<p>## Data Storage<\/p>\n<p>All persistent data is stored in the world folder. Files are human-readable JSON and can be edited manually. Keys use the `UUID (McUsername)` format for readability.<\/p>\n<p>| File | Contents |<br \/>\n|:&#8212;&#8211;|:&#8212;&#8212;&#8212;|<br \/>\n| `world\/data\/rpessentials\/nicknames.json` | Player nicknames |<br \/>\n| `world\/data\/rpessentials\/licenses.json` | Player licenses |<br \/>\n| `world\/data\/rpessentials\/license-audit.json` | License audit log |<br \/>\n| `world\/data\/rpessentials\/licenses-temp.json` | Temporary (RP) license registry |<br \/>\n| `world\/data\/rpessentials\/warns.json` | Player warns |<br \/>\n| `world\/data\/rpessentials\/lastconnection.json` | Player connection history |<\/p>\n<p>> All saves are **asynchronous**. All loads are **synchronous** at server startup.<\/p>\n<p>&#8212;<\/p>\n<p>## LuckPerms Integration<\/p>\n<p>LuckPerms is **optional**. The mod works fully without it, with graceful fallback:<\/p>\n<p>&#8211; Without LuckPerms: staff detection falls back to scoreboard tags and OP levels. Prefix\/suffix display is disabled.<br \/>\n&#8211; With LuckPerms: full integration with prefixes, suffixes, groups, and permission nodes.<br \/>\n&#8211; All LuckPerms-dependent features are silently skipped when the mod is absent.<\/p>\n<p>&#8212;<\/p>\n<p>## Performance<\/p>\n<p>&#8211; Permission checks: 30-second cache (~90% overhead reduction).<br \/>\n&#8211; Profession restriction checks: ~0.1ms per check (cached) (most of the verification is now event-based so almost no impact).<br \/>\n&#8211; License database queries: ~0.5ms (with caching).<br \/>\n&#8211; Network sync: ~1KB packet per player on login.<br \/>\n&#8211; Cache cleanup runs every 20 seconds to prevent memory leaks.<br \/>\n&#8211; Nametag block occlusion: zero raycast overhead, handled entirely by GPU depth test.<br \/>\n&#8211; **Estimated total overhead: <1% CPU usage on active servers.**\n\n---\n\n## Technical Information\n\n| Field | Value |\n|:------|:------|\n| Mod ID | `rpessentials` |\n| Group ID | `net.rp.rpessentials` |\n| Version | 4.1.9 |\n| MC Version | 1.21.1 |\n| NeoForge | 21.1.219+ |\n| Java | 21 |\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nickname players, configurable Jobs, Schedule system (for opening\/closing), chat formatting, last connection tracker and much more! Read the description to learn more about it<\/p>\n","protected":false},"featured_media":134318,"template":"","meta":{"_minecraft_slug":"rp-essentials","_minecraft_project_id":"yJ9CnauQ","_minecraft_author":"Finerus","_minecraft_license":"LicenseRef-All-Rights-Reserved","_minecraft_downloads":276,"_minecraft_follows":2,"_minecraft_client_side":"required","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"rp-essentials.zip","_minecraft_size_bytes":4961588,"_minecraft_version_count":18,"_minecraft_updated_at":"2026-05-15T19:37:07.968152Z","_minecraft_date_created":"2026-01-16T03:10:07.721745Z","_minecraft_date_modified":"2026-05-15T10:27:18.275299Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/rp-essentials","_minecraft_icon_attachment_id":134318,"_minecraft_imported_at":"2026-06-07T22:17:27+00:00","_minecraft_import_hash":"46adcc525760bb99887e8e111460a0b8","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[89,126,158,867,92],"mod_loader":[160],"minecraft_version":[37],"class_list":["post-134317","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-game-mechanics","mod_category-management","mod_category-neoforge","mod_category-social","mod_category-utility","mod_loader-neoforge","minecraft_version-1-21-1"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>RpEssentials - 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\/rp-essentials\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RpEssentials - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Nickname players, configurable Jobs, Schedule system (for opening\/closing), chat formatting, last connection tracker and much more! Read the description to learn more about it\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/rp-essentials\/\" \/>\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=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/rp-essentials\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/rp-essentials\\\/\",\"name\":\"RpEssentials - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/rp-essentials\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/rp-essentials\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/rp-essentials-icon-6e75eddf161dc5198376326806df6260db0ebb7c_96.webp\",\"datePublished\":\"2026-06-07T22:17:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/rp-essentials\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/rp-essentials\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/rp-essentials\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/rp-essentials-icon-6e75eddf161dc5198376326806df6260db0ebb7c_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/rp-essentials-icon-6e75eddf161dc5198376326806df6260db0ebb7c_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/rp-essentials\\\/#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\":\"RpEssentials\"}]},{\"@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":"RpEssentials - 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\/rp-essentials\/","og_locale":"en_US","og_type":"article","og_title":"RpEssentials - Minecraft","og_description":"Nickname players, configurable Jobs, Schedule system (for opening\/closing), chat formatting, last connection tracker and much more! Read the description to learn more about it","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/rp-essentials\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/rp-essentials\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/rp-essentials\/","name":"RpEssentials - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/rp-essentials\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/rp-essentials\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/rp-essentials-icon-6e75eddf161dc5198376326806df6260db0ebb7c_96.webp","datePublished":"2026-06-07T22:17:26+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/rp-essentials\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/rp-essentials\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/rp-essentials\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/rp-essentials-icon-6e75eddf161dc5198376326806df6260db0ebb7c_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/rp-essentials-icon-6e75eddf161dc5198376326806df6260db0ebb7c_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/rp-essentials\/#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":"RpEssentials"}]},{"@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\/134317","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\/134318"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=134317"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=134317"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=134317"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=134317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}