> For the complete documentation index, see [llms.txt](https://wiki.mypet-plugin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.mypet-plugin.com/setup-guide/getting-started/whats-new-in-4.0.md).

# What's New in MyPet 4

<figure><img src="https://2973673588-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbDDqqkbXYyKdy88rOP6U%2Fuploads%2F2HXsNbR7EbPObp1bwvZ8%2FUntitled688_20260502220153.png?alt=media&amp;token=9b11f0f1-df5d-427e-8c3c-13a7f0c7ffb5" alt=""><figcaption></figcaption></figure>

MyPet 4.0 is here - the biggest update in MyPet's history. MyPet has been rewritten from the ground up: Pets are now real vanilla mobs, the version-specific compatibility code that powered MyPet for over a decade is gone entirely, and just about every part of the plugin - GUIs, commands, skills, skilltrees, configuration - has been rebuilt or expanded.

**MyPet 4.0.0 supports Minecraft 1.20.5 through 26.2.** And, because MyPet no longer contains any version-specific code, future Minecraft versions are supported automatically - usually with no plugin update required.

As previously announced, MyPet 4.0 requires **Paper** (or a Paper derivative such as Purpur or Folia) and **Minecraft 1.20.5 or newer**. If you're still on Spigot, switching is as easy as swapping your server jar: <https://papermc.io>. Yes, **Folia is now supported**.

Upgrading from MyPet 3 is automatic: your configs, Pets, skilltrees, locale files, and database are all migrated if necessary on first startup. Take a backup first anyway - you should always have one.

Currently, MyPet is primarily developed by one person! All of these updates are produced for free in my spare time. If you or your players appreciate MyPet, please consider buying me a coffee or lunch (it means a lot): <https://ko-fi.com/UserDerezzed>

**This update was made possible by Keyle, MaksyKun, Jakllp, Haeherfeder, Gullysdad, Mercurialmusic, the Altitude team (Teriuihi and Destro174 for using MyPet 4 months before anyone else; cultistclam for our amazing new MyPet artwork, akaemilyyy for dupe finding), the HeavenCreations team (LoupSavage who made our great new custom models that are&#x20;*****included*****&#x20;with MyPet 4,) those who have tipped me on Ko-Fi (seriously, huge thanks!) and the MyPet 4 Alpha Testers. Thank you!**

Now, onto the changes!

### A complete rewrite

<figure><img src="https://2973673588-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbDDqqkbXYyKdy88rOP6U%2Fuploads%2FHtloqoDLRaWs5sOE47gf%2FScreenshot%202026-07-23%20at%2001.40.50.png?alt=media&amp;token=9268ecd0-56bf-4b04-8bb1-6cf5c7b65696" alt=""><figcaption></figcaption></figure>

Since 2012, MyPet has shipped a compatibility module for every supported Minecraft version. By 3.14, that meant 20 of them. MyPet 4.0 has **zero**. Pets are now real vanilla mobs driven through Paper's official APIs, which means:

* **New Minecraft versions work automatically.** No more waiting for a MyPet update after every Minecraft release.
* **Folia support.** MyPet now runs on Folia's regionized threading.
* **Better performance.** The plugin has been heavily optimized across the board.
* **More vanilla behaviors.** Some Pets now benefit from their unique vanilla actions.

Pets also now save their **exact entity state** when captured, stored, or released. Armor, stats, variants, everything - which stamps out a whole family of long-standing data-loss bugs.

Text formatting has moved from legacy `&` color codes to **MiniMessage** (`<green>`, `<gradient>`, hover/click events, and more). Your existing pet names, configs, locales, and skilltrees are converted automatically.

### New GUIs and a browser-based live editor

<figure><img src="https://2973673588-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbDDqqkbXYyKdy88rOP6U%2Fuploads%2FzLiCbOKLt4PPbxIDz36s%2FScreenshot%202026-07-23%20at%2001.42.18.png?alt=media&amp;token=5510c129-b563-4584-a7d6-89b848de0f47" alt=""><figcaption></figcaption></figure>

Every menu in MyPet has been rebuilt on a brand-new GUI system, headlined by **`/pet`**, a single-screen pet management menu with 17 buttons covering everything your Pet can do: rename, call, info, stay, auto-respawn, send-away, store, switch, trade, release, skilltree selection and info, backpack, behavior, pickup, stop-attacking, and volume. Menu layouts are defined in JSON, so you can customize them.

For server owners, MyPet now ships a **browser-based live editor**: run **`/mypet editor`** and edit your config.yml, pet-config.yml, exp-config.yml, pet shops, skilltrees, and locale files in your browser. Changes apply live to the running server. Skills are provided to the editor by your server, so third-party and newly added skills appear in the skilltree editor automatically.

There's also a new **volume slider** for Pet sounds, opened from `/petsettings volume` or the volume button in `/pet`, with presets at 0/25/50/75/100%.

### Skills and skilltrees

MyPet 4.0 adds **ten new skills**, bringing the total to 31: **Mining, Lumberjack, Fishing, Sniff, Potion, Toolbox, Taunt, Armor, Climb, and Camouflage**. The Ride skill also gains a new **climb** upgrade.

To put them to work, MyPet now ships **124 built-in skilltrees** (up from 5), and introduces **skilltree ascension**: skilltrees can form ascension paths, ascending is free, it bypasses `MyPet.Skilltree.ChooseOnce`, and skilltree Weight can now be set per pet type.

**Third-party plugins can now register their own custom skills through the API**, and they'll show up in the web editor's skilltree editor automatically.

### New Pets, custom models, and ride sharing

<div><figure><img src="https://2973673588-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbDDqqkbXYyKdy88rOP6U%2Fuploads%2FrNdpyHGW5Q5P7zkRefSi%2Fcapybara-square.gif?alt=media&amp;token=cfe8e8b7-17de-4d84-9ace-ba68bb673d66" alt=""><figcaption></figcaption></figure> <figure><img src="https://2973673588-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbDDqqkbXYyKdy88rOP6U%2Fuploads%2FR0Le02MXfO1DSmbhcvKS%2Fchameleon-square.gif?alt=media&amp;token=f3f164a2-13f4-4b20-b02b-448101df7871" alt=""><figcaption></figcaption></figure></div>

Five new species can now be tamed: **Nautilus, Zombie Nautilus, Happy Ghast, Camel Husk, and Parched**.

Beyond vanilla mobs, MyPet 4.0 supports **custom-model Pets** through BetterModel (recommended), ModelEngine, ItemsAdder, and MythicMobs, plus custom model *overlays* on top of regular Pets. Your server's custom bosses and creatures can now be Pets.

**MyPet 4 bundles two custom Pet models - the Capybara and the Chameleon!** These are provided by [HeavenCreations](https://builtbybit.com/creators/heavencreations.326565/), huge thanks to them. (above gifs are not to scale) The **models** ship inside the jar; you turn each one into a Pet type with a short `pet-config.yml` section and MyPet installs the model file for you - see [Bundled Models - Capybara & Chameleon](/setup-guide/getting-started/systems/custom-pet-models/bundled-pet-models.md).

Riding got a major upgrade: the new **`/petride`** command mounts your active Pet, and owners can use `/petride driver|passengers allow|disallow` to let **other players** ride along, with new per-pet config options (`RequireRideSkill`, `RequireRideItem`, `RequireSaddle`, non-owner mount permissions) so server owners control exactly who can ride what. Flying Pets get tuned, configurable flight speeds (`OverrideFlySpeed`/`FlySpeed`).

Per-pet creation options now use **readable string names** (`variant:lucy`, `profession:armorer`, `collar:red` instead of numeric IDs), Pets spawn with their species' **vanilla health** by default, and the per-pet config surface has grown massively - from Creeper explosion controls to Ender Dragon block-damage gates to `PreventDryOut` for Axolotls.

#### Full changelog:

**Added**

* Added `/pet` - a single-screen pet management menu with 17 buttons (rename, call, info, stay, auto-respawn, send-away, store, switch, trade, release, choose-skilltree, skilltree-info, backpack, behavior, pickup, stop-attacking, volume)
* Added a completely new GUI system - every menu has been rebuilt, and menu layouts are customizable via JSON definitions
* Added `/mypet editor` - a browser-based live editor for config.yml, pet-config.yml, exp-config.yml, pet shops, skilltrees, and locale files; skills are provided by the server so third-party skills appear automatically
* Added a Pet volume slider GUI - opens from `/petsettings volume` or the volume button in `/pet`, with five presets at 0/25/50/75/100%
* Added `Volume-Control` and `Volume-Mode` (per-owner or per-player) flags to `hooks-config.yml` under each packet adapter's section
* Added support for Nautilus, Zombie Nautilus, Happy Ghast, Camel Husk, and Parched Pets
* Added support for custom Pet types through BetterModel (recommended), ModelEngine, ItemsAdder, and MythicMobs
* Added support for custom model overlays for Pets through BetterModel (recommended), ModelEngine, and ItemsAdder
* Added ten new skills: Mining, Lumberjack, Fishing, Sniff, Potion, Toolbox, Taunt, Armor, Climb, and Camouflage
* Added a "climb" upgrade to the Ride skill
* Added 124 new default skilltrees with an ascension play style
* Added skilltree ascension - ascending is free, bypasses `MyPet.Skilltree.ChooseOnce`, and skilltree Weight can be set per pet type
* Added `/petride` - mounts your active Pet (requires the Ride skill unless `RequireRideSkill` is disabled)
* Added `/petride driver|passengers allow|disallow` - lets Pet owners opt in to other players riding their Pet
* Added `/petinv` as an alias for `/petinventory`
* Added `/petadmin switch (user)` GUI for switching another player's active Pet
* Added per-command admin permissions
* Added support for Folia servers
* Added support for WorldGuard-Folia
* Added automatic migration from MyPet 3 - configs, Pets and their inventories, skilltrees, locale files, pet shops, and the database schema are all converted on first startup (including legacy color codes → MiniMessage)
* Added an auto-updater for users downloading releases from BuiltByBit and dev builds from Discord
* Added the `%mypet_exp_current%` and `%mypet_exp_max%` placeholders for a Pet's level progress
* Added the `%mypet_owns_pet%` placeholder for whether a player owns any Pet, active or stored
* Added support for the golden dandelion freezing a Pet's aging (Minecraft 26.1+)
* Added `OverrideFlySpeed` (default false) and `FlySpeed` config options per Pet type
* Added riding config options for naturally rideable Pets: `RequireRideSkill` (default true), `RequireRideItem` (default true), `AllowNonOwnerPrimaryMount` (default false), `AllowNonOwnerSecondaryMount` for multi-passenger Pets (default true), `RequireSaddle` (default false), and `AllowNonOwnerSaddle` (default false)
* Added `AllowFlintAndSteelExplode`, `AllowNonOwnerFlintAndSteel`, `AllowExplosionBlockDamage`, `AllowExplosionEntityDamage`, and `AllowLightningPower` config options for Creeper Pets (all default false)
* Added `GrantEndAdvancementOnKill`, `AllowBlockDamage`, `AllowPlayerContactDamage`, and `AllowEntityContactDamage` config options for Ender Dragon Pets (all default false)
* Added `CanSwim`, `PreventSuffocation`, and `PreventDaylightBurn` config options for Pets that swim, suffocate on land, or burn in daylight
* Added `PreventDryOut` config option for Axolotl Pets (default true)
* Added `PreventSuffocation` config option for Nautilus Pets (default true)
* Added `PreventNaturalGrowup` config option for baby Pets (default true)
* Added `PreventProfessionChange` config option for Villager Pets (default true)
* Added `AllowLeafDestruction` config option for Ravager Pets (default false)
* Added `AllowLightningVariantFlip` config option for Mooshroom Pets (default false)
* Added `AllowLightningConversion` config options for Pig and Villager Pets (default false)
* Added `CanGiveMilk` config option for Goat Pets
* Added `CanDropScute` config option for Turtle Pets
* Added `Can-Shed-Scute` config option for Armadillo Pets
* Added `Can-Drop-Slimeball` config option for sneezing baby Panda Pets
* Added `Can-Drop-Horn` config option for Goat Pets
* Added `Can-Dig-Seeds` config option for Sniffer Pets
* Added `CanHurtPlayersOnContact` config option for Slime and Magma Cube Pets (default false)
* Added `harness:<color>` creation option for Happy Ghast Pets
* Added `variant` creation option for Salmon Pets
* Added `oxidation` and `waxed` creation options for Copper Golem Pets

**Changed**

* Pets are now real vanilla mobs - the NMS entity system was replaced with Bukkit spawning and Paper's Mob Goal API
* MyPet now requires Paper (or a derivative), Minecraft 1.20.5+, and Java 21
* Replaced the command system with Paper's Brigadier Commands API
* Replaced legacy `&` color codes with MiniMessage (`<green>`, `<gradient>`, hover/click events, …) everywhere - existing files are migrated automatically
* Replaced all messaging with Adventure Components and the Keyle NBT library with Adventure NBT
* Pets now save their exact entity state (armor, stats, variants, and more) on capture, store, and release, preventing Pet data loss
* Each Pet now spawns with its species' vanilla health unless overridden by a config value or skill
* Per-pet creation options now take string names - `variant:lucy` for Axolotl, `profession:armorer` for Villager, `collar:red` for Cat/Wolf, etc.
* Horse Pet `variant:` creation option split into `color:` and `style:`
* Tropical Fish Pet `variant:` creation option split into `pattern:`, `body-color:`, and `pattern-color:`
* Cat Pet creation option renamed from `type:` to `variant:`
* Snow Golem Pet `sheared` creation option renamed to `derp`
* `/petadmin create` now aborts with a clear error when an option value isn't recognized for the chosen Pet type
* A Pet now receives a default name when the `name:` argument is given with no value
* Default Pet names are now resolved from Mojang's vanilla entity translations in the creator's language
* Renamed the `CanGlide` config option for flying Pets to `CanFly` (old configs are migrated)
* Replaced the `WillShake` config option with `AllowZombification` for Hoglin, Piglin, and Piglin Brute Pets (default false)
* Replaced the dead Snow Golem `FixSnowTrack` config option with `DisableSnowTrack` (default true)
* Renamed `/petsettings idle-volume` to `/petsettings volume` and broadened its scope from ambient-only sounds to every sound a Pet emits
* Removed the Javascript experience calculator in favor of new experience modes (linear, power, exponential)
* The `MyPet.experience.multiplier` permission now accepts any integer instead of 6 hardcoded tiers (e.g. `.183` for 1.83x)
* Ender Dragon Pets no longer require ProtocolLib
* Required libraries are now downloaded on startup through the server's library downloader
* Updated all hook dependencies to their latest versions; replaced the Factions hook with FactionsUUID and the Kingdoms hook with KingdomsX
* Miscellaneous performance improvements across the plugin

**Fixed (from MyPet 3)**

* Fixed Ender Dragon Pets being unable to follow their owner
* Fixed Ender Dragon Pets being unrideable
* Fixed Armadillo Pets moving while scared on 1.21.5+
* Fixed the Angry leash flag only working for Wolves
* Fixed the Zone-Messages config option for the Beacon skill
* Fixed Pets stepping on pressure plates being checked against WorldGuard's INTERACT region flag at the owner's location instead of the Pet's own
* Starvation damage from the hunger system is now reported as its own named damage source instead of an unnamed generic one

**Removed**

* Removed support for Bukkit/Spigot servers (Paper and derivatives only)
* Removed support for server versions below 1.20.5
* Removed support for MongoDB databases
* Removed support for no-permissions mode (aka OP-only mode)
* Removed the legacy permission system
* Removed support for legacy item IDs
* Removed the 5 classic skilltrees (replaced by the 124 new built-in skilltrees)
* Removed the `Skip-Target-AI-Ticks` config option
* Removed the Copper Golem `OxidationTime` config option (vanilla now controls oxidation cadence)
* Removed the `Update.ReplaceOld` config option
* Removed the `noshake` creation option for Hoglin, Piglin, and Piglin Brute Pets - zombification immunity is controlled by the `AllowZombification` config option
* Removed the `has-stung` creation option for Bee Pets
* Removed hooks for discontinued or outdated plugins: AncientRPG, BossShopPro, FabledSkyblock, GangsPlus, GriefPreventionPlus, MagicSpells, Minigames, MobStacker (both versions), NoCheatPlus, PreciousStones, PvPDiffTimer, SkillAPI, WorldGuardCustomFlags, mcMMO v1, MythicMobs v4, WorldGuard v6, and pre-v6 PlotSquared

**For developers**

MyPet 4.0 is a **breaking API release**. The highlights:

* Pet-related API classes and events were renamed from `MyPet____` to `Pet____` (e.g. `MyPetInfo` → `PetInfo`, `MyPetManager` → `PetManager`, `MyPet*Event` → `Pet*Event`)
* The global `Configuration` class is gone - plugin-wide config values are `ConfigKey<?>` fields on `MyPetGlobal`, and per-pet config flags are `ConfigKey<?>` fields on each `PetXxx` class
* Third-party plugins can register custom skills, and per-pet event handlers/lifecycle hooks via `PetBehavior` and `PetLifecycleHook`
* Registration methods (`registerSkill`/`Requirement`/`LeashFlag`/`Hook`) now throw `IllegalArgumentException` on invalid input instead of failing silently
* The public API surface was reduced and javadocs were added to most API methods; API builds are published as `4.0.0` on the UserDerezzed repository

The full migration guide is on the wiki: **Developer Guide →** [**Migrating from MyPet 3**](https://wiki.mypet-plugin.com/developer-guide/migrating-from-v3)

Thanks for choosing MyPet!


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://wiki.mypet-plugin.com/setup-guide/getting-started/whats-new-in-4.0.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
