Tags
Creators
Details
0.4.0+1.20.6-1.21.1
Compatibility
Changes
ForgeClientResetPacket 0.4.0 – Forge 1.20.6 to 1.21.1
First release of ForgeClientResetPacket for this Minecraft line.
Client-side only: put it in the client mods/ folder. The backend servers behind Velocity need Proxy-Compatible-Forge.
How it works on 1.20.2+
- From 1.20.2, Velocity switches servers by sending the vanilla start-configuration packet, and Forge re-runs its handshake in the configuration phase. The old login-phase reset packet no longer exists.
- When that happens, the mod does the cleanup Forge normally only does on a real disconnect: it fires the logout and level-unload events, reverts registries to their frozen state, and resets the connection's Forge network state so the next backend gets a clean handshake.
- Each Forge
NetworkContextmember is reset on its own. A field missing on your Forge build is skipped instead of aborting the whole reset (e.g.remoteChannelsSize, missing on many builds).
Also included
- Oculus/Iris shader pause from 0.3.2: shaders turn off before the switch and come back on after you land, or on the title/disconnected screen if the switch fails. Your own shader setting is respected. Nothing changes without Oculus.
- English and Chinese (zh_cn) translations for player-facing text. The Chinese text still needs a native-speaker review.
This build
- One jar for 1.20.6, 1.21 and 1.21.1 (Forge 50–52, Java 21).
- The display test and logout hook are looked up at runtime, so the same jar loads on every Forge build in that range.
- The client tick listener is registered at runtime:
ClientTickEvent.Postwhere it exists, otherwiseClientTickEventat phase END (Forge 50.0.0–50.1.4 and 51.0.0–51.0.3).
PR: https://github.com/FoxyCraftNetwork/Forge-Client-Reset-Packet/pull/19
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:y2PnCYl0:HOZlImUM"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:y2PnCYl0:HOZlImUM"
}

