Docs

Mascotas

Compañeros coleccionables que suben de nivel con los bloques que mina su dueño y dan bonus pasivos. Solo una mascota está activa a la vez.

Configuraciónpets.yml
Datosdata/pets.yml
Clave de módulopets

Por qué una sola mascota activa

Los jugadores desbloquean muchas mascotas pero solo aprovechan una. Cambiar de compañero no borra el progreso, pero los niveles de la anterior quedan sin uso. Esa única restricción convierte la colección en una decisión y evita que los bonus se acumulen hasta romper la economía.


Cómo se ven

Por defecto la mascota activa es una cabeza flotando en diagonal detrás del dueño, que lo sigue suavemente con un leve balanceo y muestra su nombre y nivel. display.mode en pets.yml permite elegir:

ModoVisual
HEADCabeza flotante
PARTICLESPequeña estela de partículas, sin entidad
BOTHCabeza y partículas
NONESolo los bonus

La cabeza es un armor stand marcador invisible por jugador con mascota activa: sin hitbox, sin IA, sin físicas y nunca se guarda en el mundo.

yaml
display:
  mode: HEAD
  update-ticks: 2
  offset:
    side: 0.8
    back: 0.6
    height: 1.9
  bob: 0.12
  show-name: true
particles:
  enabled: true
  type: HAPPY_VILLAGER

Cabeza de cada mascota

Cada mascota elige su cabeza en pets.yml; se usa la primera opción que exista:

  1. head.database-id: un id de HeadDatabase, si el plugin está instalado
  2. head.texture: un valor de textura base64 de cualquier web de cabezas
  3. head.owner: el nombre de un jugador cuya skin se usa

Las mascotas incluidas usan las cabezas oficiales MHF_ de Mojang.


Comandos

ComandoDescripción
/petsAbrir el menú de colección
/pet listMascotas desbloqueadas, con niveles
/pet equip <mascota>Sacar una mascota
/pet unequipGuardar la mascota activa
/pet info [mascota]Nivel, experiencia y bonus exactos
/pet typesTodas las mascotas del juego y su rareza
/pet give <jugador> <mascota>Admin: desbloquear una mascota para alguien
/pet addxp <jugador> <mascota> <cantidad>Admin: dar experiencia

Aliases: /pets, /mascota, /mascotas.

PermisoDefaultOtorga
pulseprison.petstodosLa colección y todos los subcomandos de jugador
pulseprison.pets.adminop/pet give y /pet addxp

De dónde salen las mascotas

No hay una fuente de drop integrada, así el módulo es compatible con cualquier plugin de crates, votos o tienda. Se entregan con un comando de consola:

/pet give <jugador> <mascota>

Ponelo en una recompensa de crate, en execute-on-rankup de ranks.yml, en reward-commands de rebirths.yml o en un listener de votos.

Si el jugador ya tiene esa mascota, se convierte en experiencia (duplicate-experience, por defecto 250), así los duplicados siguen siendo una recompensa.


Mascotas incluidas

IDRarezaEfecto por nivelCabeza
rockyCOMMONSELL_BONUS +0.4%MHF_Golem
sparkyUNCOMMONTOKEN_BONUS +0.5%MHF_Slime
glimmerRAREGEM_BONUS +0.6%MHF_Enderman
scholarEPICEXP_BONUS +0.6%MHF_Villager
boltLEGENDARYROBOT_OUTPUT +0.6%MHF_Blaze
vaultMYTHICSELL_BONUS +0.4% y TOKEN_BONUS +0.3%MHF_Chest

Todas llegan hasta nivel 25.


Niveles

La mascota activa gana experience-per-block (por defecto 1) por cada bloque que mina su dueño. Cada nivel cuesta experience.base × growth^(nivel-1), configurado por mascota. Una mascota rara debería tener base y crecimiento mayores que una común.


Efectos

EfectoHace
SELL_BONUSMás dinero por cada bloque vendido
TOKEN_BONUSMás tokens de los encantamientos
GEM_BONUSMás gemas de los encantamientos
EXP_BONUSEl pico sube de nivel más rápido
ROBOT_OUTPUTMás producción de los robots del dueño

Los valores son por nivel, en fracción decimal: 0.004 es +0.4% por nivel, así una mascota nivel 25 da +10%. Los bonus se pagan de verdad en cada bloque, no solo se muestran.


Placeholders

PlaceholderDevuelve
%pulseprison_pet_name%Nombre de la mascota activa, o None
%pulseprison_pet_display%Lo mismo, con el color de la rareza
%pulseprison_pet_level%Nivel de la mascota activa
%pulseprison_pet_rarity%Rareza de la mascota activa
%pulseprison_pet_count%Mascotas desbloqueadas
%pulseprison_pet_total%Mascotas que existen
%pulseprison_pet_bonus_<efecto>%Bonus actual de ese efecto, en porcentaje

API

java
PetService pets = PulsePrisonProvider.get().pets();

pets.grant(player, "glimmer");
pets.setActive(player.getUniqueId(), "glimmer");
double bonus = pets.getBonus(player.getUniqueId(), PetEffect.SELL_BONUS);

Eventos: PetUnlockEvent (cancelable) y PetLevelUpEvent. Ver Eventos.

Mascotas | PulsePrison Core Docs