MMO Profile Menu
The mmo_profile_menu manifest entry configures an immersive 3D profile selection experience. The player's camera is locked, entities represent each profile slot, and navigation is done via scroll wheel, WASD, or click actions.
Configuration
mmo_profile_menu — Map
Properties
title
">
Menu title displayed in the HUD. Supports MiniMessage. Default: <gradient:#ffd700:#ffaa00>Select Your Profile</gradient>
displayMode — ProfileDisplayMode
How profile entities are displayed. Options: ALL (all configured slots), UNLOCKED_ONLY (only unlocked profiles), CAROUSEL (one at a time with scrolling). Default: CAROUSEL
profileSlots
"> Pre-configured profile slots. Configure up to the max number of profiles players can have (e.g., 10 slots). Each slot maps to an entity definition. basePosition
">
Base camera position. Supports in-game position capture. When usePlayerLocation is true, this acts as an offset from the player's current location.
usePlayerLocation — Boolean
If true, basePosition is treated as an offset from the player's location. Default: false
slotSpacing — Double
Horizontal spacing between profile slot camera positions (in blocks). Default: 3.0
defaultMaxProfiles — Int
Default maximum number of profiles for a player. Default: 3
permissionLimits
">
Permission-based overrides for profile slot limits.
forceProfileSelection — Boolean
If true, the player CANNOT close the menu without selecting a profile. Sneak, WASD close, and right-click delete are blocked. Default: false
wasdNavigation — Boolean
If true, A/D keys navigate between profile slots instead of closing the menu. Default: true
closeOnSneak — Boolean
Close the menu when the player sneaks. Ignored when forceProfileSelection is true. Default: true
wasdScrollCooldownMs — Long
Cooldown in milliseconds between WASD navigation inputs. Default: 200
onOpenSound — Sound
Sound played when the menu opens.
onCloseSound — Sound
Sound played when the menu closes.
onNavigateSound — Sound
Sound played when navigating between profile slots.
onSelectSound — Sound
Sound played when a profile is selected.
onHoverSound — Sound
Sound played on hover/change focus (reserved). onOpenActions
"> Actions executed when the menu opens. onCloseActions
"> Actions executed when the menu closes. onSelectActions
"> Actions executed when any profile is selected.
ProfileSlotConfig
Each profile slot in the profileSlots list.
profileSlots[] — Map
Properties
slotIndex
The 0-based index of this slot. Used for ordering. entityDefinition
">
Reference to an existing entity definition. Use the entry picker to select from available definitions (Entity, BetterModel, ModelEngine, or MythicMob NPC).
cameraOffsetX — Double
Camera offset X (left/right) relative to the base position for this slot.
cameraOffsetY — Double
Camera offset Y (up/down).
cameraOffsetZ — Double
Camera offset Z (forward/backward).
entitySpawnOffsetX — Double
Entity spawn offset X from base position.
entitySpawnOffsetY — Double
Entity spawn offset Y.
entitySpawnOffsetZ — Double
Entity spawn offset Z. onSelectActions
"> Actions executed when this specific profile slot is selected. onNavigateActions
"> Actions executed when the player navigates to this slot.
ProfileLimit
permissionLimits[] — Map
Properties
permission
The permission node required.
limit — Int
The profile limit granted by this permission.
Controls
| Input | Action |
|---|---|
| Scroll Wheel | Navigate left/right between profiles |
| A / D | Navigate left/right (wasdNavigation: true) |
| Left Click | Select the focused profile |
| Right Click | Delete the focused profile (with Paper confirmation dialog) |
| Shift + Left Click | Create a new profile on an empty slot (with Paper input dialog) |
| Sneak | Close the menu (closeOnSneak: true, blocked if forceProfileSelection) |
Behavior Matrix
forceProfileSelection | wasdNavigation | WASD | Sneak | R-Click Delete |
|---|---|---|---|---|
false | true | Navigate | Close menu | Allowed |
false | false | Close menu | Close menu | Allowed |
true | true | Navigate | Blocked | Blocked |
true | false | Ignored | Blocked | Blocked |