Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
About

This plugin provides a foundation for character roleplay (RP). Unlike simple chat and emote commands, it introduces character switching and allows players to customize their character’s name, skin, and text flavor.
Primarily, this plugin is aimed at servers focused on Hard Roleplay (HRP). It includes several chat types (normal speech, whisper, shout, emotes, and local OOC), which enhance immersion and make roleplay more engaging.
Players can easily customize their characters including name, color, skin, and description through menus and commands. In addition, they can switch between characters and toggle RP mode on or off, allowing smooth transitions between gameplay styles.
The plugin also features simple YAML-based configuration for skins you want to allow on your server. This makes it easy to control which skins are available depending on your server’s RP setting.
Important
I am 100% sure my SkinManager (which allows players to choose a skin from those you provide) will simply not work on servers with online mode disabled. At the moment, I am not planning to fix this.
Need help or want to contribute?
If you have an idea, found a bug, or need help, you can always open an Issue on GitHub or join Discord server.
I also gladly accept contributions via Pull Requests on GitHub.
Commands
commands:
character:
description: Manage your characters through menu
permission: rpcore.character
usage: /character
setname:
description: Set new name for character
permission: rpcore.setname
usage: /setname <text>
setflavor:
description: Set new flavor for character
permission: rpcore.setflavor
usage: /setflavor <text>
flavor:
description: Read character's flavor
permission: rpcore.flavor
usage: /flavor <character name>
characters:
description: Get all players in RP right now
permission: rpcore.characters
usage: /characters
rpcorereload:
description: Reload RPCORE's config file
permission: rpcore.rpcorereload
usage: /rpcorereload
Permissions
permissions:
rpcore.character:
description: Manage your characters through menu
default: true
rpcore.setname:
description: Set new name for character
default: true
rpcore.setflavor:
description: Set new flavor for character
default: true
rpcore.flavor:
description: Read character's flavor (via command)
default: op
rpcore.rpcorereload:
description: Reload RPCORE's config file
default: op
rpcore.characters:
description: Get all players in RP right now
default: op
rpcore.max_characters_bypass:
description: Bypass max characters limit
default: op
Default plugin config
# Chat
# RPCore can use built-in manager for better RP immersion. Certainly you can disable it, but
# there won't be much left of the plugin after this.
chat-manager-enabled: true
# prefix what players can type for say something in IC. Sequential commands /rpcore:say <text>.
# Keep in mind that player in RP have say channel by default in options.
chat-say-prefix: ">"
# similar but whisper
chat-whisper-prefix: "."
# similar but emote.
chat-emote-prefix: "*"
# similar but shout.
chat-shout-prefix: "!"
# Local(OOC) chat. Keep in mind that's disabled by default. I really hate OOC text in RP processing.
# certainly you can enable it below.
chat-looc-prefix: "@"
# Is LOOC enabled? If you don't fully trust your players, or you don’t want OOC-chat mixed with IC, then keep it disabled.
# Someday I've had some RP servers with LOOC, and yeah, this really can ruin your "roleplay-vibe".
# But in some case it can be useful, so.
chat-looc-enabled: false
# Chat radius
chat-radius-say: 15
chat-radius-whisper: 2 # Shh...
chat-radius-shout: 30
chat-radius-emote: 15 # I recommend keep this value like chat-radius-say
chat-radius-looc: 15 # I recommend keep this value like chat-radius-say
# Chat punctuation. Make uppercase first symbol and add dot in end.
# Not yet implemented - reserved for future versions. If anyone really needs it, hit me up on Discord or somewhere else.
chat-punctuation: false
# Characters
# how max length can be character name ?
character-name-length: 32
# how max length can be flavor (256 is chat limit btw, so its 256 - 8 (comma with "/" and space) = 248).
# If some players want more - have to do it manually (change YAML).
character-flavor-length: 248
# max characters without rpcore.max_characters_bypass permission
character-max-characters: 10
# Skins
# !! Please check skins.yml !!
# true - players can change skin for they characters.
skin-manager-enabled: true
# localization
# Change data output for players here
# Sadly you can't change color here, for now.
locale-plugin-name: "[RPCore]: "
locale-player-picked-color: "You picked color: "
locale-player-cant-do-that: "Sorry, but you can't do that."
locale-change-name: "Change name"
locale-change-name-desc: "Use /setname <name> for it."
locale-change-flavor: "Change flavor"
locale-change-flavor-desc: "Use /setflavor <text> for it."
locale-change-skin: "Change skin"
locale-change-color: "Change color"
locale-character-created: "You created new character! Please change them in character menu"
locale-character-selected: "Selected character: {name}"
locale-skin-selected: "Skin selected: {name}"
locale-choose-character-first: "Choose your character first."
locale-name-changed: "Your character's name has been changed to {name}"
locale-only-players-can-do-that: "Hey, admin, I'm so sorry but only players can do that!"
locale-flavor-changed: "Your character's flavor has been changed to:\n"
locale-no-character-to-play: "You can't play RP without character. Please create them or pick from existing."
locale-character: "Character"
locale-character-name: "Name: {name}"
locale-no-character: "You don't have character"
locale-select-another-character: "Select another character"
locale-rp-status: "RP status"
locale-current-status: "Current: {status}"
locale-click-to-switch: "Click to switch"
locale-chat-type: "Chat type"
locale-current-chat-type: "Current: {type}"
locale-all-characters: "All characters in worlds:"
# scroll menu buttons
locale-click-to-select: "Click to select"
locale-previous: "Previous"
locale-new-character: "New Character"
locale-next: "Next"
locale-name-too-long: "Name of your character too long!"
locale-flavor-too-long: "Flavor of your character too long!"
# Small features
# Should we hide nametag of players when they "inRP" mode
nametag-hide: true
# Right click player to read about them!
flavor-by-click: true
Default SkinManager config
skins:
list:
kawaii_girl:
name: "kawaii girl!"
url: "https://textures.minecraft.net/texture/f6c08265bb898876ac6c69d79eaaaf283c524c7368b23df679e7fef2b593dbdd"
swordsman_1:
name: "swordsman"
url: "https://textures.minecraft.net/texture/82da4f54818192710a78ac45e627ca16bef88043c8b13a9586368554c08a0e06"
swordsman_2:
name: "swordsman 2"
url: "https://textures.minecraft.net/texture/c54a78cb917eca547b3e40a029d1bdcea67b86c33e815d69639ff998db3efae4"


