Changelog
Starting from 2025/11/3 (YYYY/MM/DD), we have split the 1.21.10 branch to 1.21.10/main and 1.21.10/feature.
If you cloned the repo before, you might want to delete the locally stored 1.21.10 branch before pulling any updates!
Changes in 2.5.1
Bug Fix
- Empty input for
entity/equipmentwould cause unhandled exceptions
Changes in 2.5.0
New Features
- It's now possible for players to save their disguise and apply their locally stored disguises
- This requires players to use 0.16.0-beta.5 or higher version of the client mod!
- Added permission
feathermorph.custom_textforentity/custom_name,mannequin/description, andmannequin/hide_descriptionproperty, and it's available for players by default - Added permission for using disguise properties:
feathermorph.disguise_properties.use - Added permission for setting a custom skin profile for items in
entity/equipmentproperty, restricted to ops by default:feathermorph.disguise_properties.custom_skin_on_items - Added support for Mannequin disguise
- Mannequin disguise is not collectable using the Magic Bottle by default
- Mannequin disguises have the Fake Equip skill, like Armor Stand and Player disguise
mannequin/skinproperty is restricted to ops by default. You can setfeathermorph.custom_skinpermission for players so they can use this property.
- Added support for Copper Golem disguise
- Copper Golem disguise is collectable using the Magic Bottle by default
- Added Weather State property for Copper Golem disguise
- Initial compatibility(?) for Ping Wheel
- Using the official Ping Wheel plugin will work, but pinging while disguising doesn't mask the pinger
- ...So I made a custom plugin to temporarily solve the problem, which can be found at https://github.com/MATRIX-feather/pingwheel-plugin-forked
- Initial support for players with permission
feathermorph.mirror.mannequinto mirror their sneaking actions to mannequins that have the same name and description as their disguise- For BY_NAME executor, mannequins within a range are selected, while setting the affect distance to -1 would disable the range limit
- For BY_SIGHT and BY_RANGE, the targeting mannequin within 5 blocks of sight will be selected
Bug Fixes
- Several bugs with Player Disguises when
feathermorph.disguise_use_real_uuidpermission is given- Players got removed from their TAB view when undisguising
- Disguise not presenting when teleported from far away, or switching gamemode from spectator
slime_magma/sizeproperty has a wrong random range- Nobody is calling
BaseLivingEntityProperties#setupPropertiesFromEntityin the override methods- This makes disguises that have extra properties not copy the target entity's custom name.
Other
- We are planning to remove the BY_RANGE mirror executor in the future, as it's causing chaos when we have players with bad networking
- Some exceptions thrown will now be forwarded to DisguiseState and will undisguise the player
- Tweaked how Server Renderer rebuilds entity metadata packets sent from the server
- Removed disguise NBT blacklist configuration
- As they are not being used anymore
entity/custom_nameandmannequin/descriptionnow accept JSON text component starting with{- Moved some disguise validation to early disguise preparation
Dependencies
Files
feathermorph-2.5.1-1.21.10-final.jar(1.77 MiB) Primary
90% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Metadata
Release channel
ReleaseVersion number
2.5.1Loaders
Paper
Game versions
1.21.10Downloads
169Publication date
November 27, 2025 at 7:27 AMPublisher
MATRIX-feather
Owner

