Tags
Creators
Details
Licensed GPL-3.0-or-later
Published 8 months ago
Updated 6 days ago
All versions
1.1.8-26.2
Alpha
IG: Magnet, Let me get that! 1.1.8-26.24 months ago 81
Compatibility
Minecraft: Java Edition
26.2
Platform
Fabric
Supported environments
Server-side
Singleplayer
Required content
Any compatible version
Any compatible version
Changes
[1.1.8-26.2] - 2026-07-05
Changed
- Versioning Standard Alignment: Removed alphanumeric suffixes from mod version (
1.1.7+A-26.2➔1.1.8-26.2) to follow the clean hyphenated SemVer formatting across Vanilla Outsider Collections.
[1.1.7+A-26.2] - 2026-07-05
Fixed
- Respawn State Desync & Lock: Fixed player magnet toggle states being lost or becoming untoggleable after death/respawn.
- Server Thread-Safe Packets: Wrapped server-side C2S packet handling inside the main server thread scheduler (
context.server().execute()) to resolve race conditions with player instance swapping during respawn transitions. - Unconditional Client Sync: Removed transient
canSendnetwork gates in both login and respawn events. Added automatic state synchronization inside the server player instance setters to guarantee client alignment when toggles are changed.
[1.1.6+A-26.2] - 2026-07-05
Changed
- Hotkey Interface Simplification: Removed all hardcoded
Ctrl+Alt+Shiftkeybinding modifiers from client input handling. Players can now toggle the magnet by directly pressing their bound key. - Default Keybind Relocation: Changed default toggle keybind from
M(which conflicts with standard map mods like JourneyMap or Xaero's) to\(backslash).
[1.1.5+A-26.2] - 2026-07-03
Fixed
- Magnet Stuck Off After Death: Fixed magnet toggle state being lost on death/respawn. When a player dies, Minecraft creates a new
Playerentity — the Mixin field was not being transferred. AddedServerPlayerEvents.COPY_FROMto carry the toggle state to the new player, andServerPlayerEvents.AFTER_RESPAWNto sync the correct state back to the client. This also covers dimension changes (e.g. entering/leaving the Nether).
[1.1.4+A-26.2] - 2026-07-03
Fixed
- Startup Crash (Mixin Descriptor Mismatch): Fixed a fatal
InvalidInjectionExceptionthat crashed the game on launch. ThePlayerMixinNBT save/load injectors were using the legacyCompoundTagparameter type, but 26.2 replaced it with the newValueOutput/ValueInputstorage API. Updated bothaddAdditionalSaveDataandreadAdditionalSaveDatainjectors to match the correct 26.2 method signatures.
[1.1.3+A-26.2] - 2026-07-03
Fixed
- Ctrl+Alt+Shift+M Crash: Resolved a
NoSuchMethodErrorcrash caused by calling the legacyGui.setOverlayMessage()API. Now correctly uses the 26.2+Hud.setOverlayMessage()path.
Changed
- NBT Toggle Persistence: Replaced the static
ConcurrentHashMap-basedMagnetPlayerStatewith a Mixin-injectedIMagnetPlayerinterface on thePlayerentity. Individual magnet toggle states now persist to NBT (level.dat), surviving server restarts and re-logins. - Login State Synchronization: Added a
ServerPlayConnectionEvents.JOINlistener that sends the player's saved magnet state to the client on login, preventing desync after reconnecting. - 26.2 NBT API Compliance: Migrated
CompoundTag.getBoolean()(now returnsOptional<Boolean>) togetBooleanOr()for direct primitive access. - Memory Leak Elimination: Removed
MagnetPlayerState.javaentirely, eliminating the unbounded memory growth from the static player UUID map.
[1.1.2+A-26.2] - 2026-06-25
Changed
- Codebase Maintenance: Removed an unused
Minecraftimport fromMagnetModClient.javato align with standard code quality checks.
[1.1.1+A-26.2] - 2026-06-25
Changed
- Client Magnet Toggle Hotkey: Updated the default hotkey modifier pattern to require
Ctrl+Alt+Shift+Mto toggle the magnet state. - Window API Migration: Modified key state queries to use the current client window instance directly, preventing null pointer crashes during initialization.
Optional dependencies
Any compatible version
Any compatible version
Any compatible version
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:VliM7tyU:F9hK1Eot"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:VliM7tyU:F9hK1Eot"
}

