Links
Tags
Creators
Details
5.0.0_beta
Compatibility
Changes
[5.0.0] - BETA -
Breaking Changes
-
The
rolesconfig format has changed fromid;lpGrouptoid;lpGroup;perm1,perm2,.... Existing configs must be migrated manually. -
Old two-field role entries (
id;lpGroup) remain valid and automatically grantisStafffor backward compatibility. (May change in future versions.)
Added
-
Role-based permission system, replacing the binary staff/non-staff model. Each role can hold any combination of the following permissions:
isStaff: access to staff commandstabWhitelist: always shown clearly in the tab list regardless of rangescheduleWhitelist: can connect outside server opening hoursprofessionWhitelist: bypasses all profession restrictionsseeNicknames: sees "Nickname (RealName)" in the tab listseeAll: sees all players clearly in the tab list regardless of rangebypassWorldBorder: not teleported by the world borderspyMessages: receives spy messages (proximity chat, /rp action, /rp incognito)bypassAutoUnwhitelist: never removed by the auto-unwhitelist systembypassDeathRpWhitelist: RP death does not remove them from the whitelist
-
RpEssentialsRoleManager: central role resolution with a 30-second cache, detecting roles via vanilla scoreboard tags and LuckPerms groups. -
Second tab "Roles" in the Profession Editor screen: create, edit, and delete roles with a checkbox for each permission.
-
Third tab "Global" in the Profession Editor screen: edit global blocked crafts, unbreakable blocks, blocked items, blocked equipment, and container-open restrictions directly from the GUI.
-
New delete buttons (with two-step confirmation) for both professions and roles.
-
Dedicated sub-screen for managing profession and global restriction entries.
-
Profile GUI: Reset button next to the nickname field in the Player Profile screen.
-
GUI: Unsaved changes are now visually flagged in yellow italics until the corresponding Save button is pressed.
Improved
-
Spy messages, world border bypass, and whitelist-removal bypasses (auto-unwhitelist and Death RP) are now controlled per-role instead of by a single generic staff check.
-
Config GUI: list values are now stored with newline separators instead of commas, so entries containing internal commas (such as role permissions) are edited correctly.
Fixed
- License navigation buttons (previous/next/add/revoke) in the Player Profile screen now keep a fixed position regardless of which profession is currently displayed.
Technical
IllegalStateExceptionis no longer caught alongside the broaderExceptiontype in the same multi-catch block when resolving auto-unwhitelist bypass permissions.
Migration Notes
- After updating, review your
roleslist inrpessentials-core.toml: old entries still work but grant no permission beyondisStaff. Add the permission list explicitly to take advantage of the new system.
Other
- Some QoL things and modification with Immersive Message integration that should not affect you in any way.
(Hi, just a personal note, this version is very likely to have some bugs, if you find any pls feel free to post a comment on the curseforge page!)
Optional dependencies
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:yJ9CnauQ:X9n5JmqG"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:yJ9CnauQ:X9n5JmqG"
}

