Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for sun-dev

let your players create multiple profiles

Report OumProfile?

OumProfile

OumProfile is a multi-profile plugin for Paper servers (1.21+). It allows players to create and switch between different profile slots, each with their own inventory, status attributes, LuckPerms group, and Vault economy balance. This is useful for servers offering distinct loadouts or gameplay modes on a single account.

This plugin is built using the OumLib framework.


Features

Each player profile stores:

  • Inventory State: Storage contents, armor contents, off-hand item, and ender chest.
  • Attributes: Health, max health, food level, saturation, XP level, and XP progress.
  • Status States: GameMode, active potion effects, fall distance, fire ticks, and remaining air bubbles.
  • Movement States: Flight capabilities (allowFlight and isFlying state).
  • Optional Features: Coordinate location (if save-location is enabled), Vault balance, LuckPerms group, mcMMO skills, AuraSkills, JobsReborn jobs, custom multi-currencies, playtime tracking, and vanilla Minecraft statistics.
  • Server Resilience: Non-blocking periodic auto-save to protect against sudden crashes, plus administrative stale profile pruning (/profile admin prune <days>) to keep database storage compact.

Requirements

  • Server: Paper 1.21 or newer
  • Java: Java 21 or newer
  • Library: OumLib (shaded within the jar)

Soft Dependencies

The plugin automatically integrates with the following if present on the server:

  • LuckPerms: For per-profile permission groups.
  • Vault & PlayerPoints: For per-profile economy balances.
  • mcMMO: For per-profile skill level and experience synchronization.
  • AuraSkills: For per-profile skill level and experience synchronization.
  • JobsReborn: For per-profile job level and experience progression.
  • CombatLogX / PvPManager / DeluxeCombat: Automatic combat tag detection for profile switch blocking.
  • PlaceholderAPI & MiniPlaceholders: For displaying profile statistics in chats, scoreboards, and tablists.

Commands & Permissions

Player Commands

Command Description Permission Default
/profile Opens the profile selection GUI. profiles.use True
/profile list Lists all created profiles in chat. profiles.use True
/profile current Displays the active profile name. profiles.use True
/profile create <name> Creates a new profile with the given name. profiles.create.<name> OP
/profile switch <name> Switches to the specified profile. profiles.use True
/profile delete <name> Deletes the specified profile. profiles.use True
/profile rename <old> <new> Renames a profile. profiles.use True
/profile alerts Toggles receiving admin profile alerts. profiles.alerts OP

Aliases: /profiles, /prof

Administrative Commands & Permissions

Command / Permission Description Default
/profile admin open <player> Opens the profile GUI for the specified player. OP (profiles.admin)
/profile admin list <player> Lists all profiles of the specified player. OP (profiles.admin)
/profile admin create <player> <profile> Creates a profile for the specified player. OP (profiles.admin)
/profile admin switch <player> <profile> Forces the specified player to switch to a profile. OP (profiles.admin)
/profile admin delete <player> <profile> Deletes a profile for the specified player. OP (profiles.admin)
/profile admin rename <player> <old> <new> Renames a profile for the specified player. OP (profiles.admin)
/profile admin export <player> <profile> Exports a player's profile to a JSON file. OP (profiles.admin)
/profile admin import <player> <file> Imports a profile from a JSON file for a player. OP (profiles.admin)
/profile admin prune <days> Prunes inactive profiles older than the given days. OP (profiles.admin)
/profile debug Toggles debug logging in console. OP (profiles.admin)
/profile reload Reloads all configuration files. OP (profiles.admin)
profiles.admin Access to administrative commands and config reload. OP
profiles.create.* Permission to create profiles with any name. OP
profiles.max.unlimited Bypasses all profile slot limits. OP
profiles.max.<number> Sets the maximum profile slot limit (e.g. profiles.max.5). False
profiles.bypass.combat Allows switching profiles while tagged in combat. OP
profiles.bypass.warmup Bypasses the switch countdown warmup. OP
profiles.bypass.cooldown Bypasses the switch cooldown. OP
profiles.alerts Receives administrative alerts for profile actions. OP

Placeholders

Supported under the oumprofile namespace for PlaceholderAPI and MiniPlaceholders:

Description PlaceholderAPI MiniPlaceholders
Active profile name %oumprofile_active% <oumprofile_active>
Total profiles created %oumprofile_count% <oumprofile_count>
Maximum allowed profiles %oumprofile_max% <oumprofile_max>
Saved Vault economy balance %oumprofile_balance% <oumprofile_balance>
Stored primary LuckPerms group %oumprofile_group% <oumprofile_group>
Profile playtime (seconds) %oumprofile_playtime% <oumprofile_playtime>
Formatted playtime (duration) %oumprofile_playtime_formatted% <oumprofile_playtime_formatted>
Stored skill level %oumprofile_skill_<plugin>_<skill>_level% <oumprofile_skill_<plugin>_<skill>_level>
Stored skill experience %oumprofile_skill_<plugin>_<skill>_xp% <oumprofile_skill_<plugin>_<skill>_xp>
Stored job level %oumprofile_job_<job>_level% <oumprofile_job_<job>_level>
Stored job experience %oumprofile_job_<job>_xp% <oumprofile_job_<job>_xp>
Custom economy balance %oumprofile_currency_<name>% <oumprofile_currency_<name>>

Custom Items & Head Textures

GUI materials support OumLib's item resolution. Custom head textures (head:<base64>) and items from third-party plugins can be used directly:

  • head:<Base64>
  • oraxen:custom_item
  • itemsadder:custom_item
  • nexo:custom_item
  • mmoitems:TYPE:ID
  • mythicmobs:item_id

Information

Category
Gameplay
Published
June 19, 2026
License
5Downloads
0Stars
Supports Folia

Pinned Versions

Members

1