▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/RpEssentials
RpEssentials

RpEssentials

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

Оцените первым
662
3

Rp Essentials

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.

Current version: 4.1.10: See CHANGELOG for the full history.


Requirements

DependencyVersionSideRequired
Minecraft1.21.1Both
NeoForge21.1.219+Both
LuckPermsAnyServer⬜ Optional
ImmersiveMessagesneoforge-1.21.1:1.0.18Client⬜ Optional
TxniLibneoforge-1.21.1:1.0.24Client⬜ Optional

ImmersiveMessages and TxniLib are only required on the client if you use zoneMessageMode = IMMERSIVE. The server runs fine without them.


Installation

  1. Download the latest rpessentials-X.X.X.jar from the releases page.
  2. Place the JAR in your server's mods/ folder.
  3. (Optional) Install LuckPerms for prefix/suffix and group-based staff permissions.
  4. Start the server: all config files are generated automatically under config/rpessentials/.
  5. Edit the relevant config files (see 'Configuration' below).
  6. Reload in-game with /rpessentials config reload or restart the server.

Features

Proximity Obfuscation

Prevents metagaming by hiding player identities based on distance:

  • Player names in the TabList and above heads are replaced with ????? beyond a configurable range (default: 8 blocks).
  • Tab list player head hidden for obfuscated players: The skin icon next to an obfuscated player's name in the tab list is hidden, preventing skin-based identification. Non-obfuscated players, staff, whitelisted players, and always-visible players are unaffected.
  • Sneak Stealth Mode: Crouching players are only detectable at 2 blocks (configurable).
  • Nametag Hiding: Optionally hide all player nametags above heads server-wide.
  • Whitelist: Players who always see all names clearly.
  • Blacklist: Players who are always hidden regardless of distance (stealth staff, NPCs).
  • Always Visible List: Players who are never obfuscated to anyone.
  • Spectator Blur: Players in spectator mode are automatically hidden from the TabList.
  • LuckPerms rank prefixes are always hidden during obfuscation to prevent rank-based metagaming.
  • Staff with opsSeeAll see both nickname and real name simultaneously: Nickname (RealName).

Nickname System

Persistent RP nicknames fully integrated across all mod systems:

  • Set custom nicknames with full § and & color code support.
  • Nicknames appear in the TabList, above heads, in chat, and in private messages.
  • Stored persistently in world/data/rpessentials/nicknames.json.
  • /whois allows staff to reverse-lookup any nickname to its real MC username and UUID.

Nametag System

Realistic nametag behavior integrated with the nickname system:

  • 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.
  • 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.
  • Global hide toggle: All nametags can be hidden server-wide via hideNametags = true in rpessentials-core.toml or /rpessentials config set hideNametags true/false.

Profession & License System

A complete job restriction system for RP servers:

  • Define unlimited professions with custom names and color codes.
  • Physical license items are given to players, carrying profession metadata and issuance date.
  • RP Licenses: Decorative-only licenses for events, with a printed expiration date and no actual permissions.
  • Restriction types: crafting, block breaking, item usage, equipment (armor/weapons), and attacks.
  • Global restrictions apply to all players by default, with per-profession overrides for licensed players.
  • Wildcard pattern support: minecraft:*_pickaxe blocks an entire item category.
  • Restriction messages shown via action bar with anti-spam cooldown.
  • Tooltips display required professions on restricted items (client-side packet sync).
  • License Audit Log: Every GIVE, REVOKE, and GIVE_RP action is permanently logged to world/data/rpessentials/license-audit.json.
  • Temp License Registry: RP licenses are tracked in world/data/rpessentials/licenses-temp.json.
  • Revoked license items are automatically removed from the player's inventory.
  • Whitelisted players are exempt from all profession restrictions (configurable).
  • Granting or revoking a license automatically adds or removes the corresponding vanilla scoreboard tag (tag name = profession ID).

Warn System

Full staff warning system for moderation:

  • Issue permanent or temporary warns to any online player.
  • The warned player receives an immediate in-chat notification with the reason and duration.
  • On every login, players are notified of their active warn count and invited to run /mywarn.
  • /mywarn lets any player view their own active warns with reason, issuer, date, and remaining time.
  • Configurable staff broadcast on every warn add and warn remove.
  • Automatic purge of expired temp-warns on player login (configurable).
  • Warn IDs are auto-incremental integers, recalculated after every deletion to avoid gaps.
  • Data stored in world/data/rpessentials/warns.json.

Last Connection Tracking

Automatic recording of player connection history:

  • Records last login and last logout for every player.
  • Data stored in world/data/rpessentials/lastconnection.json: human-readable UUID (McUsername) key format.
  • Staff can look up any player's last connection time, even for offline players.
  • List view shows the N most recent connections sorted by date.

Private Messaging

Custom /msg system fully replacing vanilla messaging:

  • /msg <player> <message>, /tell, /w, /whisper: send private messages with Rp Essentials formatting.
  • /r <message>: reply to the last person who messaged you.
  • Messages formatted with nicknames, LuckPerms prefixes/suffixes, and color codes.
  • Clickable "Click to reply" button in received messages.
  • Console-to-player messaging supported.

Advanced Chat

Full chat formatting system:

  • Customizable player name format with LuckPerms prefix/suffix support ($prefix $name $suffix).
  • Full message template with timestamp and color support ($time | $name: $msg).
  • Global chat message color configuration (16 Minecraft colors available).
  • Timestamp system with customizable Java SimpleDateFormat.
  • Real-time Markdown support:
    • **text**Bold
    • *text*Italic
    • __text__ → Underline
    • ~~text~~ → Strikethrough
  • /colors displays all available colors and formatting codes with a visual preview.
  • Full integration with the nickname system, nicknames appear in chat automatically.

Join / Leave Messages

  • Fully customizable join and leave messages with {player} and {nickname} placeholders.
  • Full color code support.
  • Can be disabled entirely.

Welcome Message

  • Configurable multi-line welcome message sent to players on login.
  • Optional sound effect with configurable volume and pitch.
  • {player} and {nickname} variable support.
  • Integrates with the schedule system to display server status.

Server Schedule

Automated server opening and closing management with per-day support:

  • Each day of the week (MONDAY through SUNDAY) has its own enabled, open, and close fields.
  • Disabled days are treated as fully closed.
  • Automated warnings at 45, 30, 10, and 1 minute before closing.
  • Smart kick system that only affects non-staff players.
  • Staff receives notifications when the server opens or closes.
  • The kick message displays the next open day and its hours (placeholders: {day}, {open}, {close}).
  • /rpessentials schedule and /schedule display the full week at a glance with the current day highlighted.
  • Aliases: /schedule and /horaires.

Death Hours

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.

HRP Hours

An optional schedule layer for out-of-roleplay (HRP) period management:

  • Two tiers: tolerated (noted but not punished) and allowed (fully free).
  • Broadcast message sent once per slot start to all connected players.
  • Configurable display mode: CHAT, ACTION_BAR, TITLE, IMMERSIVE.
  • Disabled by default, entirely ignored when enableHrpHours = false.

Death RP

Permanent death system for RP servers:

  • Global toggle enabling or disabling the system in real-time.
  • Per-player overrides to enable, disable, or reset to the global state.
  • On RP death: a broadcast is sent to all connected players with the deceased's nickname and real name.
  • A configurable sound is played to all players on RP death.
  • Optional automatic whitelist removal on RP death (whitelistRemove).
  • All messages and sounds are fully configurable for both global and per-player toggles.

World Border & Named Zones

  • Distance-based warning triggered by proximity to spawn (independent of the vanilla world border).
  • Configurable message with {distance} and {player} placeholders.
  • Named Zones: Define circular zones with center coordinates, radius, and custom entry/exit messages.
  • Configurable display mode for zone messages: IMMERSIVE, CHAT, ACTION_BAR.

Staff Moderation Tools

Silent staff commands with full logging:

  • Silent gamemode, teleport, and effect commands: invisible to other players.
  • All actions logged to console and broadcast to other online staff (configurable).
  • Target notification disabled by default (stealth mode).

Teleportation Platforms

  • Define named platforms across dimensions with custom coordinates.
  • Staff can teleport themselves or other players to any platform.
  • /setplatform command to create or update a platform without editing the config file.

Roles

  • Assign predefined roles to players via /rpessentials setrole.
  • Automatically removes all existing role tags, adds the new tag, and sets the corresponding LuckPerms group.
  • Roles configurable in rpessentials-core.toml under [Roles]. Format: roleId;lpGroup.
  • Full tab-completion of available roles.
  • Requires OP level 3.

Auto-Unwhitelist

Automatic removal of inactive players from the whitelist:

  • Configurable inactivity threshold (days).
  • Runs once per day at midnight.
  • Requires enableLastConnection = true.
  • Staff members online at the time receive a clickable cancel button to immediately re-whitelist the player.
  • Optional extra commands executed per removed player. Placeholders: {player}, {uuid}.
  • Disabled by default.

Staff Permission System

Multi-layered staff detection for maximum reliability:

  • Scoreboard tags (admin, modo, staff, builder: configurable).
  • Minimum OP level bypass (configurable from 0 to 4).
  • LuckPerms group integration (configurable).
  • Results cached for better performance (30-second cache).
  • Automatic cache invalidation on logout.

Fully Configurable Messages

Every player-facing string in the mod is exposed as a configurable value via oneria-messages.toml:

  • Full English translation of all messages out of the box.
  • § and & color code support in all values.
  • Reloadable at runtime with /rpessentials config reload (no restart required).
  • Organized into clear sections: [System], [Private Messaging], [Warn System], [Last Connection], [Death RP], [Whois], [Player List], [Help], [Profession Restrictions].

Commands

Permissions: OP 2 = OP level ≥ 2; Staff = staff role detected by the mod's permission system; Everyone = all players.

Configuration

CommandPermissionDescription
/rpessentials config reloadOP 2Reload all configs and clear caches.
/rpessentials config statusOP 2Display current status of all mod systems.
/rpessentials config set <option> <value>OP 2Modify any config option in real-time.

Nicknames

CommandPermissionDescription
/rpessentials nick <player> <nickname>OP 2Set a nickname (supports color codes).
/rpessentials nick <player>OP 2Reset a player's nickname.
/rpessentials nick listOP 2List all active nicknames.
/whois <nickname>OP 2Find the MC username and UUID behind a nickname.

Licenses

CommandPermissionDescription
/rpessentials license give <player> <profession>OP 2Grant a functional license.
/rpessentials license giverp <player> <profession> <days>OP 2Grant a decorative RP-only license with an expiration date.
/rpessentials license revoke <player> <profession>OP 2Revoke a license.
/rpessentials license list [player]OP 2List all licenses, or those of a specific player.
/rpessentials license check <player> <profession>OP 2Check if a player holds a specific license.

Warns

CommandPermissionDescription
/rpessentials warn add <player> <reason>StaffIssue a permanent warn.
/rpessentials warn temp <player> <minutes> <reason>StaffIssue a temporary warn.
/rpessentials warn remove <player> <warnId>StaffRemove a specific warn.
/rpessentials warn list [player]StaffList all warns, or all warns for a player.
/rpessentials warn info <player> <warnId>StaffShow full details of a warn.
/rpessentials warn clear <player>StaffRemove all warns for a player.
/rpessentials warn purgeStaffPurge all expired temp-warns.
/mywarnEveryoneView your own active warns.

Last Connection

CommandPermissionDescription
/rpessentials lastconnection <player>StaffShow last login/logout for a player.
/rpessentials lastconnection list [count]StaffList the N most recent connections (default: 20).

Death RP

CommandPermissionDescription
/rpessentials deathrp enable <true|false>StaffToggle Death RP globally.
/rpessentials deathrp player <player> enable <true|false>StaffSet a per-player override.
/rpessentials deathrp player <player> resetStaffRemove a player's individual override.
/rpessentials deathrp statusStaffDisplay system state and all active overrides.

Roles

CommandPermissionDescription
/rpessentials setrole <player> <role>OP 3Assign a role to a player (sets tags + LuckPerms group).

Staff

CommandPermissionDescription
/rpessentials staff gamemode <mode> [player]StaffSilent gamemode change.
/rpessentials staff tp <player>StaffSilent teleport.
/rpessentials staff effect <player> <effect> <duration> <amplifier>StaffSilent effect application.
/rpessentials staff platform [player] [id]StaffTeleport to a named platform.
/setplatform <id> <dimension> <x> <y> <z>OP 2Create or update a platform entry.

Whitelist / Blacklist

CommandPermissionDescription
/rpessentials whitelist add/remove/listOP 2Manage the blur bypass whitelist.
/rpessentials blacklist add/remove/listOP 2Manage the always-hidden blacklist.
/rpessentials alwaysvisible add/remove/listOP 2Manage the never-obfuscated list.

Messaging

CommandPermissionDescription
/msg <player> <message>EveryoneSend a private message.
/tell, /w, /whisperEveryoneAliases for /msg.
/r <message>EveryoneReply to the last person who messaged you.

Public

CommandPermissionDescription
/rpessentials schedule / /schedule / /horairesEveryoneView server schedule and status.
/rpessentials helpEveryoneDisplay available commands (staff section shown to staff only).
/colorsEveryoneDisplay all color codes and formatting options.
/listEveryoneCustom player list showing nicknames and real usernames.
/mywarnEveryoneView your own active warns.

Configuration

The mod uses 6 config files under config/rpessentials/, generated automatically on first launch. All files are fully documented with inline comments.

FileContents
rpessentials-core.tomlObfuscation, permissions, world border & zones, Death RP, roles
rpessentials-chat.tomlChat formatting, markdown, timestamps, join/leave messages
rpessentials-schedule.tomlPer-day schedule, death hours, HRP hours, welcome message, auto-unwhitelist
rpessentials-moderation.tomlSilent commands, platforms, last connection, warn system
rpessentials-professions.tomlProfession definitions and all restriction lists
rpessentials-messages.tomlAll customizable player-facing message strings

rpessentials-core.toml

[Obfuscation Settings]

OptionDefaultDescription
enableBlurtrueMaster switch for the obfuscation system.
proximityDistance8Detection range in blocks (normal).
obfuscatedNameLength5Number of ? characters in the obfuscated name.
obfuscatePrefixtrueHide LuckPerms rank prefix when obfuscating.
opsSeeAlltrueStaff always see real names.
hideNametagsfalseHide all player nametags above heads.
showNametagPrefixSuffixtrueShow LuckPerms prefix/suffix in nametags.
enableSneakStealthtrueCrouching reduces detection range.
sneakProximityDistance2Detection range for crouching players (blocks).
blurSpectatorstrueHide spectator-mode players from the TabList.
whitelist[]Players who always see all names clearly.
blacklist[]Players who are always hidden.
alwaysVisibleList[]Players who are never obfuscated to anyone.
whitelistExemptProfessionsfalseWhitelist players bypass profession restrictions.

[Permissions System]

OptionDefaultDescription
staffTags["admin","moderateur","modo","staff","builder"]Scoreboard tags/groups considered staff.
opLevelBypass2Minimum OP level to bypass restrictions (0 = disabled).
useLuckPermsGroupstrueUse LuckPerms groups for staff detection.
luckPermsStaffGroups["admin","moderateur","staff"]LuckPerms groups treated as staff.

[World Border Warning]

OptionDefaultDescription
enableWorldBorderWarningtrueEnable distance-based warnings.
worldBorderDistance2000Warning trigger distance from spawn (blocks).
worldBorderMessage"..."Warning message. Variables: {distance}, {player}.
worldBorderCheckInterval40Check frequency in ticks (40 = 2 seconds).
namedZones[]Named zones with entry/exit messages. Format: name;centerX;centerZ;radius;enterMsg;exitMsg.
zoneMessageMode"ACTION_BAR"Display mode for zone messages: IMMERSIVE, CHAT, ACTION_BAR.

[DeathRP]

OptionDefaultDescription
globalEnabledfalseGlobal state of the Death RP system.
whitelistRemovefalseAutomatically remove the player from the whitelist on RP death.
deathMessage"..."Message broadcast to all players on RP death. Variables: {player}, {realname}.
deathSound"minecraft:entity.wither.death"Sound played on RP death. Use none to disable.
deathSoundVolume1.0RP death sound volume.
deathSoundPitch1.0RP death sound pitch.

[Roles]

OptionDefaultDescription
roles["admin;admin","modo;modo","builder;builder","joueur;joueur"]Role definitions. Format: roleId;lpGroup.

rpessentials-chat.toml

[Chat Settings]

OptionDefaultDescription
enableChatFormattrueEnable the chat formatting system.
playerNameFormat"$prefix$name$suffix"Player name format in chat.
chatMessageFormat"$time | $name: $msg"Full message template.
chatMessageColor"white"Global chat message color.
enableTimestampfalseShow timestamps in chat.
timestampFormat"HH:mm"Java SimpleDateFormat pattern for timestamps.
enableMarkdowntrueEnable Markdown support in chat.

[Join / Leave Messages]

OptionDefaultDescription
enableJoinMessagetrueEnable the join message.
joinMessage"..."Join message. Variables: {player}, {nickname}.
enableLeaveMessagetrueEnable the leave message.
leaveMessage"..."Leave message. Variables: {player}, {nickname}.

rpessentials-schedule.toml

[Schedule System | Per Day]

Each day of the week (MONDAY through SUNDAY) has its own fields:

OptionDefaultDescription
<day>.enabledvariesWhether the server is open this day.
<day>.open"18:00"Opening time (format HH:MM).
<day>.close"23:00"Closing time (format HH:MM).

[Messages]

OptionDescription
closingWarningMessageWarning message before closing. Variable: {time}.
kickMessageKick message. Variables: {day}, {open}, {close}.
serverOpenMessageBroadcast message on server open.
serverCloseMessageBroadcast message on server close.

[Welcome Message]

OptionDefaultDescription
enableWelcomeMessagetrueEnable the welcome message.
welcomeMessage["..."]Multi-line welcome message with color code support.
welcomeSound""Sound played on login (resource location string).
welcomeSoundVolume1.0Welcome sound volume.
welcomeSoundPitch1.0Welcome sound pitch.

[Death Hours]

OptionDefaultDescription
enableDeathHoursfalseEnable automatic Death RP activation by time slot.
deathHoursSlots[]Time slots for Death RP activation. Format: HH:MM-HH:MM.

[HRP Hours]

OptionDefaultDescription
enableHrpHoursfalseEnable the HRP hours system.
hrpBroadcastMode"CHAT"Display mode: CHAT, ACTION_BAR, TITLE, IMMERSIVE.

[Auto-Unwhitelist]

OptionDefaultDescription
autoUnwhitelistEnabledfalseEnable automatic removal of inactive players from the whitelist.
autoUnwhitelistDays30Days of inactivity before removal.
autoUnwhitelistExtraCommands[]Extra commands run on removal. Variables: {player}, {uuid}.

rpessentials-moderation.toml

[Silent Commands]

OptionDefaultDescription
enableSilentCommandstrueEnable silent staff commands.
logToStafftrueBroadcast silent command usage to other staff.
logToConsoletrueLog silent commands to the server console.
notifyTargetfalseNotify the target of the action (disables stealth).

[Teleportation Platforms]

OptionDefaultDescription
enablePlatformstrueEnable the platform teleport system.
platforms[...]Platform list (id;DisplayName;dimension;x;y;z).

[Last Connection]

OptionDefaultDescription
enableLastConnectiontrueEnable login/logout time tracking.
trackLogouttrueAlso record disconnection times.
dateFormat"dd/MM/yyyy HH:mm:ss"Java SimpleDateFormat for stored dates.

[Warn System]

OptionDefaultDescription
enableWarnSystemtrueEnable the warn system.
notifyOnJointrueNotify players of active warns on login.
joinMessage"..."Login notification message. Variable: {count}.
maxTempDays30Max duration for temp warns in days (0 = unlimited).
autoPurgeExpiredtrueAuto-purge expired warns on player login.
addedBroadcastFormat"..."Staff broadcast on warn add. Variables: {id}, {staff}, {player}, {reason}, {expiry}.
removedBroadcastFormat"..."Staff broadcast on warn remove. Variables: {id}, {staff}.

rpessentials-professions.toml

OptionDescription
professionsProfession definitions (id;DisplayName;§ColorCode).
globalBlockedCraftsItems blocked from crafting for all players.
globalUnbreakableBlocksBlocks that cannot be broken by anyone.
globalBlockedItemsItems that cannot be used or interacted with.
globalBlockedEquipmentArmor/weapons that cannot be equipped.
professionAllowedCraftsPer-profession craft overrides (profession;item1,item2).
professionAllowedBlocksPer-profession block breaking overrides.
professionAllowedItemsPer-profession item usage overrides.
professionAllowedEquipmentPer-profession equipment overrides.
craftBlockedMessageMessage shown when a craft is blocked.
blockBreakBlockedMessageMessage shown when block breaking is blocked.
itemUseBlockedMessageMessage shown when item use is blocked.
equipmentBlockedMessageMessage shown when equipping is blocked.

rpessentials-messages.toml

All player-facing strings are configurable in this file. It is generated automatically on first start and organized into sections:

SectionContents
[System]System messages, config error strings
[Private Messaging]Private message prompts and notifications
[Warn System]All warn notifications, labels, and duration formats
[Last Connection]Last connection display strings
[Death RP]Death RP toggle and status messages
[Whois]/whois result messages
[Player List]Player list header
[Help]All help menu entries
[Profession Restrictions]Restriction feedback messages

Data Storage

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.

FileContents
world/data/rpessentials/nicknames.jsonPlayer nicknames
world/data/rpessentials/licenses.jsonPlayer licenses
world/data/rpessentials/license-audit.jsonLicense audit log
world/data/rpessentials/licenses-temp.jsonTemporary (RP) license registry
world/data/rpessentials/warns.jsonPlayer warns
world/data/rpessentials/lastconnection.jsonPlayer connection history

All saves are asynchronous. All loads are synchronous at server startup.


LuckPerms Integration

LuckPerms is optional. The mod works fully without it, with graceful fallback:

  • Without LuckPerms: staff detection falls back to scoreboard tags and OP levels. Prefix/suffix display is disabled.
  • With LuckPerms: full integration with prefixes, suffixes, groups, and permission nodes.
  • All LuckPerms-dependent features are silently skipped when the mod is absent.

Performance

  • Permission checks: 30-second cache (~90% overhead reduction).
  • Profession restriction checks: ~0.1ms per check (cached) (most of the verification is now event-based so almost no impact).
  • License database queries: ~0.5ms (with caching).
  • Network sync: ~1KB packet per player on login.
  • Cache cleanup runs every 20 seconds to prevent memory leaks.
  • Nametag block occlusion: zero raycast overhead, handled entirely by GPU depth test.
  • Estimated total overhead: <1% CPU usage on active servers.

Technical Information

FieldValue
Mod IDrpessentials
Group IDnet.rp.rpessentials
Version4.1.10
MC Version1.21.1
NeoForge21.1.219+
Java21

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

1.21.x

Платформы

Поддерживаемые окружения

Сервер

Зависимости

Ссылки

Создатели

Детали

Лицензия:
Опубликован:5 месяцев назад
Обновлён:2 недели назад
Главная