
FeatherMorph
Yet another disguise plugin. Disguise as mobs and players, then acquire unique skills and abilities!
Автор: MATRIX-feather74 тыс.108обновлён 3 мая 2026 г.
ПриключенияМеханики игры
Описание
Archived, feel free to fork, although I would suggest making your own, as there aren't many documents about this project :D

A morph plugin for survival servers
Client Integration | Wiki (WIP) | 中文介绍
Features
- Simple and easy to use
- Implemented disguise abilities and skills covering most of the vanilla features
- Change players' bounding box depending on their disguise ( !!!REQUIRES CLIENT INTEGRATION MOD!!! )
- Enhance experiences with Client Integration
- Currently: GUI disguise selection, action hotkeys, see your disguise on the client side, and see other's disguise if the server doesn't support displaying disguise on their side
- Currently: GUI disguise selection, action hotkeys, see your disguise on the client side, and see other's disguise if the server doesn't support displaying disguise on their side
- Translatable messages with MiniMessage support (Check our Wiki for more information!)
- ChatOverride - Masks away your name when chatting, available for player disguises
- InteractionMirror - Make another player do the same thing as you did when disguising as them
Dependencies
- To run this plugin, you will need: A Paper or Paper-based server
- These are required to display disguises on the server side:
- For version [2.x]: Latest PacketEvents -> CI || Release
- For version [1.x / 0.13.1x]: ProtocolLib
- For version [0.x] LibsDisguises and ProtocolLib
bStats
Галерея
Последние версии
Все версии →release
2.8.1
2.8.13 мая 2026 г.6,8 тыс.Minecraft: 1.21.11folia, paper
Что нового
## Bug Fixes
- Removed debug logging in ByNameExecutor
- Executing the *dash* skill makes everyone in the same world hear the activation sound.
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.8.0...2.8.1
release
2.8.0
2.8.030 мар. 2026 г.1,9 тыс.Minecraft: 1.21.11folia, paper
Что нового
## New Features
- **The icon of the current disguise is now displayed when disguising**
- **Entities with tag `feathermorph_nogrant` now won't unlock the relevant disguise for the player when being killed.**
- **It's now possible to extract the built-in language file using the `/fm extract language <lang>` command**
- Permission for this command is `feathermorph.admin`.
- If there's already a matching file on the disk, the extracted file will install to `messages/<lang>.fmnew.json` by default
- You can overwrite it by using `/fm extract language <lang> true`. This operation requires you to confirm by executing again
- Triggering Interaction Mirror for mannequins now requires the player to have permission to trigger Interaction Mirror
- Slaves in the Instance Network now request data for the player when they join, instead of the master server loading and syncing all data to slaves upon startup.
- It's now possible to get the relevant `DisguiseState` instance in `PlayerUnMorphEvent`.
- Third-party plugins are now able to add their `SingleProperty` instances to `DisguiseProperties` on bootstrap, which would allow automatic assignment from player inputs.
- Added support for Zombie Nautilus's variant property.
- Now an instance of `DisguiseProperty` can declare that it's invisible for the client mod
- FeatherMorph doesn't have properties that require this feature yet; it's mainly made for other plugins' development.
- Added `readString` method for InputHandles.
- The plugin will now attempt to show the exception's message if it occurred while updating or has been forwarded to the `DisguiseState`.
- Bring the ability for async player data loading in Instance Network to `IManagePlayerData`.
- Currently, only when the Instance Network is enabled, and the current server is a Slave Server in the network, the async loading feature is fully utilized.
- If supported, when a player enters the configuration state, the plugin will attempt to load their data async, and wait for up to 150ms per player, then allow them to keep logging in after the timeout, and notify their client when the data finishes loading.
- ~~*We wait for up to 150ms is to make sure that the disguise unlock data can immediately be available after the player logs in on fast machines.*~~
- ~~*And maybe this waiting feature would be removed in the next (edit: next or future) releases, as it literally conflicts with the **async** concept...* 🤯~~\
- **Slave servers no longer wait for up to 150ms for the master server to respond to our lookup request**
- Added abilities for Nautilus and Zombie Nautilus
- Disguising as Nautilus now gives the player the ability to breathe underwater and dryout in the air
- Disguising as Zombie Nautilus would additionally make the player burn under the sun if not equipped with a helmet.
- Added Dash skill
- Disguising as Camel/Camel Husk now can dash on the ground or underwater
- Disguising as Nautilus/Zombie Nautilus now can dash underwater
- backport: Allow server to disable disguise waypoints via config
## Bug Fixes
- **Backport a workaround from `1.21.11/feature-next` branch, to prevent bad component input from applying and kicking viewing players out of the server**
- But I'm not sure if this issue should be triaged to FeatherMorph though...
- Fixed a regression where trying to disguise as a player when facing others disguised as another player could copy their properties, ignoring whether the disguise target is the same.
- Potential error when checking whether the current code is on an Entity's tick thread.
- Mannequin disguises' description property is now correctly set up when the target mannequin does not have a description
- Cache for SkinStorage is not being updated after dropping/caching a skin
- Fixed a regression where disguised players can still get selected as an Interaction Mirror target when using the `by_name` selector.
- Fixed a regression where disguised players can't get selected as an Interaction Mirror target if the controlling player is disguised as the same player they disguise.
- Package Version not saved after initial skill configuration setup
## Others
- **Removed usage of `feathermorph.disguise_use_real_uuid` permission**
- **Active disguises will now save to disk when the server shuts down**
- **Offline Disguise now saves disguise properties**
- **Skin Storage and Offline Disguise Storage are now directory-based.**
- This improves performance a lot when we read/write for a single skin/disguise if there's a large amount of data stored.
- We will try to migrate previously stored skins; offline disguises will not get migrated, as we don't have a NBT -> Disguise Properties conversion.
- Mannequins would now be normally selected by Interaction Mirror Executors, instead of being treated as specials.
- `by_sight` mirror mode now respects the maximum affect distance set in the config
- Gradle task `runFolia` is now available
- The actionbar message for disguise is now handled by `DisguiseState`.
- `readRotations` from `InputHandles` now throws an error when the player gives more than 3 elements
- This means that giving more than 3 elements for various rotation properties for the Armor Stand disguise will now result in an error message.
- Migrated configuration definition from plugin's own `ConfigOption` enum to `ConfigOption` class from PluginBase
- Simplified exception handling in some places.
- The message `morph.error_while_disguising_user_fault` in the language file has been renamed to `morph.error_parsing_property`.
- The interval of batching player data requests has been changed from 10 ticks to 2 ticks, to adapt to the new `IManagePlayerData#loadPlayerDataAsync` method
- Plugin now checks for `Paper` or `Folia` platform for update, depending on the server spec.
- Offline Disguises is now called Saved Disguises
## What's Changed
* 2.8.0 from 1.21.11/feature by @MATRIX-feather in https://github.com/NiFeather/FeatherMorph/pull/61
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.5.2...2.8.0
beta
2.8.0-rc.6
2.8.0-rc.625 мар. 2026 г.327Minecraft: 1.21.11folia, paper
Что нового
## Bug Fix
- Package Version not saved after initial skill configuration setup
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.8.0-rc.5...2.8.0-rc.6
beta
2.8.0-rc.5
2.8.0-rc.58 мар. 2026 г.853Minecraft: 1.21.11folia, paper
Что нового
## New Feature
- backport: Allow server to disable disguise waypoints via config
## Other
- Merged 2.8.0 into `1.21.11/main`
- 2.8.0 from 1.21.11/feature by @MATRIX-feather in https://github.com/NiFeather/FeatherMorph/pull/61
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.8.0-rc.3...2.8.0-rc.5
beta
2.8.0-rc.3
2.8.0-rc.328 февр. 2026 г.448Minecraft: 1.21.11folia, paper
Что нового
So I'm back updating this resource, as I still wish to have this on a tiny server that I play with my friends for the upcoming 26.1 and later. 😄
## Bug Fixes
- Cache for SkinStorage is not being updated after dropping/caching a skin
- Fixed a regression where trying to disguise as a player when facing others disguised as another player could copy their properties, ignoring whether the disguise target is the same.
- Fixed a regression where disguised players can still get selected as an Interaction Mirror target when using the `by_name` selector.
- Fixed a regression where disguised players can't get selected as an Interaction Mirror target if the controlling player is disguised as the same player they disguise.
## Other
- **Backport a workaround from `1.21.11/feature-next` branch, to prevent bad component input from applying and kicking viewing players out of the server**
- Not sure if this issue should be triaged to FeatherMorph though...
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.8.0-beta.4...2.8.0-rc.3
beta
2.8.0-rc.1
2.8.0-rc.117 февр. 2026 г.537Minecraft: 1.21.11folia, paper
Что нового
## Bug Fix
- Mannequin disguises' description property is now correctly set up when the target mannequin does not have a description
## Other
- **Removed usage of `feathermorph.disguise_use_real_uuid` permission**
- **Active disguises will now save to disk when the server shuts down**
- **For slave servers in the instance network, we no longer wait for up to 150ms for the master server to respond to our lookup request**
- **Offline Disguise now saves disguise properties**
- **Skin Storage and Offline Disguise Storage are now directory-based.**
- This improves performance a lot when we read/write for a single skin/disguise if there's a large amount of data stored.
- We will try to migrate previously stored skins; offline disguises will not get migrated, as we don't have a NBT -> Disguise Properties convertion exists.
- Plugin now checks for `Paper` or `Folia` platform for update, depending on the server spec.
- Offline Disguises is now called Saved Disguises
beta
2.8.0-beta.4
2.8.0-beta.420 дек. 2025 г.2,2 тыс.Minecraft: 1.21.11folia, paper
Что нового
This is a build on `1.21.11/feature`.
**We suggest that everyone on the `1.21.11/feature` branch using the Instance Network feature update to this version on all Slave Servers.**
## Bug Fix
- **Instance Network: Slave Servers not cleaning the existing data before applying new data synced from the master server**
- This issue can also trigger another issue where the string command sent to the player is too large
- This doesn't affect builds on `1.21.11/main` as they don't have the partial sync feature
- Disguising on Folia has a rare chance to fail about `... this.revealingHandler is null.`
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.8.0-beta.2...2.8.0-beta.4
alpha
2.6.0-alpha.4
2.6.0-alpha.420 дек. 2025 г.626Minecraft: 1.21.10paper
Что нового
This is a build on `1.21.10/feature`.
**We suggest that everyone on the `1.21.10/feature` branch using the Instance Network feature update to this version on all Slave Servers.**
## New Feature
- The Fake Equip skill has been extended to more mobs
## Bug Fix
- **Instance Network: Slave Servers not cleaning the existing data before applying new data synced from the master server**
- This issue can also trigger another issue where the string command sent to the player is too large
- This doesn't affect builds on `1.21.10/main` as they don't have the partial sync feature
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.6.0-alpha.3...2.6.0-alpha.4
beta
2.8.0-beta.2
2.8.0-beta.217 дек. 2025 г.127Minecraft: 1.21.11folia, paper
Что нового
## New Features
- Added abilities for Nautilus and Zombie Nautilus
- Disguising as Nautilus now gives the player the ability to breathe underwater and dryout in the air
- Disguising as Zombie Nautilus would additionally make the player burn under the sun if not equipping a helmet.
- Added Dash skill
- Disguising as Camel/Camel Husk now can dash on the ground or underwater
- Disguising as Nautilus/Zombie Nautilus now can dash underwater
## Bug Fix
- Potential error when checking whether the current code is on an Entity's tick thread.
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.8.0-alpha.2...2.8.0-beta.2
release
2.7.1
2.7.117 дек. 2025 г.1,4 тыс.Minecraft: 1.21.11folia, paper
Что нового
## Bug Fix
- Potential error when checking whether the current code is on an Entity's tick thread.
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.7.0...2.7.1


