Collect, summon, and manage cosmetic follower pets from a configurable catalog. Includes mystery eggs with a roulette hatch, optional economy shop, leaderboard GUI, rename rules, dupe protection, and Discord webhook hooks—all driven by YAML and MiniMessage. Paper and Folia 1.21 - 26.x
Support
Report bugs and get support here: https://discord.gg/VvM6k2eBDa
Features
• Folia support – Runs on region-threaded servers (folia-supported in plugin.yml).
• Pet collection GUI – Open from /pets; pagination, sort modes (id/type/newest/oldest), per-pet size (small/normal/large), summon/recall, deposit pet items into storage; optional withdraw-as-item when enabled in config.
• Configurable catalog – pets.yml defines entity types, materials, egg weights, baby variants, display names, and lore (MiniMessage).
• Follower mobs – Active pet follows with tick-based movement and long-range teleport; optional despawn on world change, in combat, or while vanished (metadata-based vanish integration); follower protection; pause teleport during combat (with cooldown), elytra, or optional flying; optional WorldGuard region blocking.
• Mystery eggs – Configurable item, lore, glow, drop rules; weighted random roll; optional “no duplicate types” for eggs and/or global duplicate-type limits; roulette-style opening (sounds, particles, timing); hatch grants a redeemable pet item; optional server broadcast list and format; Discord webhook for hatches when URL is set.
• Mystery egg shop GUI – Buy bundles using Vault, PlayerPoints, or ExcellentEconomy (configurable prices and currency labels).
• Leaderboard GUI – Optional top-pets-style view with page size from config.
• Pet rename – /pets rename (name) or clear for the summoned pet; max length and optional MiniMessage or &-legacy color codes (safe subset, no click/hover).
• Dupe & security – Tracks mystery egg instances and pet item deposits; staff notify permission; optional console command list; optional Discord security line format; bypass permission for testing.
• Database – HikariCP pools; SQLite by default with WAL, or MySQL with full JDBC settings in config.
• Messages & GUIs – messages.yml, pets.yml, and gui/*.yml (pets menu, mystery shop, leaderboard); MiniMessage throughout.
• Developer API – PerfPetsAPI registered on Bukkit ServicesManager for integrations.
Placeholders
%perfpets_count% – Number of pets in the player’s menu (alias: stored).
%perfpets_stored% – Same as count.
%perfpets_active_type% – Type id of the active summoned pet (alias: active_type_id).
%perfpets_active_type_id% – Same as active_type.
%perfpets_active_name% – Custom pet name if set, else plain catalog name (strips formatting when color codes are enabled).
%perfpets_has_active% – true/false whether a pet is currently summoned.
Commands
/pets – Open the pets menu (perfpets.use)
/pet – Alias for /pets (perfpets.use)
/pets leaderboard – Open pets leaderboard GUI (perfpets.use)
/pets lb – Same as leaderboard (perfpets.use)
/pets top – Same as leaderboard (perfpets.use)
/pets rename (name) – Set custom name for the active summoned pet (perfpets.rename)
/pets rename clear – Remove custom name (perfpets.rename)
/perfpets reload – Reload config, messages, and pet catalog (perfpets.admin)
/perfpets help – Show admin usage (perfpets.admin)
/perfpets give (player) (type) – Grant a pet type to a player’s storage (perfpets.admin)
/perfpets egg give (player) [amount] – Give mystery eggs; target must be online (perfpets.admin)
/perfpets pets (player) – List a player’s pets with ids and flags (perfpets.admin)
/perfpets listpets (player) – Same as pets (perfpets.admin)
/perfpets deletepet (player) (id) – Delete a pet by database id (perfpets.admin)
/perfpets delete (player) (id) – Same as deletepet (perfpets.admin)
/perfpets export (player) – Export pets to plugins/PerfPets/exports (perfpets.admin)
/perfpets import (player) (file) – Import from a yml file in exports (perfpets.admin)
Database
• SQLite
• MySQL
