Tags
Creators
Details
1.3.4
Compatibility
Required content
Changes
DynamicSkins 1.3.4 — NeoForge 1.21–1.21.1
NeoForge Port
- Ported DynamicSkins from Fabric 1.20.1 to NeoForge 1.21–1.21.1.
- Updated networking, lifecycle events, keybindings and skin rendering for Minecraft 1.21–1.21.1.
- Retained separate Normal and Talking textures, slim/wide arms, high-resolution PNG support and optional Plasmo Voice integration.
- Retained the responsive Avatar Editor, texture previews, watermark and local skin library with search, rename, delete and save/use actions.
Skin Synchronization
- Uploaded skins are stored by the server and synchronized to the owner and players tracking them.
- Unchanged skin versions are not resent when a player re-enters tracking range.
- Downloaded player skins stay in memory and are cleared on disconnect.
- The local skin library remains in the active instance's
dynamicskins/library/directory. - Background PNG decoding and shared texture reuse are retained.
Fixes
-
Expanded compatibility to Minecraft 1.21–1.21.1 and NeoForge 21.0.167 / 21.1.x, including 21.1.218.
-
Removed the unnecessary NeoForge 21.1.259 minimum requirement.
-
Fixed the Avatar Editor background being rendered twice, which blurred panels, labels and library thumbnails.
-
Updated PNG drag-and-drop handling and texture cleanup when closing or resizing the editor.
-
Updated player, first-person, TAB and player-head skin overrides for Minecraft 1.21–1.21.1.
-
Fixed missing launch argument files when running the development client from IntelliJ after a clean build.
Requirements
- Minecraft 1.21–1.21.1
- NeoForge 21.0.167 for Minecraft 1.21, or 21.1.x for Minecraft 1.21.1
- Java 21
- Install DynamicSkins on both the client and server for synchronized skins.
- Plasmo Voice for NeoForge 1.21–1.21.1 is optional and required only for voice-based Talking textures.
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:RQtFfZ30:guqsKdyU"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:RQtFfZ30:guqsKdyU"
}

