Tags
Creators
Details
2.5.1
Compatibility
Required content
Changes
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
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:ydNDeiDX:godIyKO0"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ydNDeiDX:godIyKO0"
}

