RPCore

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.

13

RPCore

About

img

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 At the moment, I am not planning to fix this. (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

```yaml 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

```yaml 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

```yaml

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

```yaml 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" ```

ADS