All versions
New: locking a world (
New: ironman (
New: hardcore second chance (
New: build worlds (
1.9.0
Release
HardGrind 1.9.0-26.1.22 weeks ago 12
Compatibility
Minecraft: Java Edition
26.1.x
Platform
Fabric
Supported environments
Server-side
Singleplayer
Required content
Any compatible version
Changes
HardGrind 1.9.0: everything since 1.1.1
Minecraft versions
- Now one jar per version: 1.21.9, 1.21.10, 1.21.11, 26.1 to 26.1.2, 26.2, and 26.3 and newer (the 26.3 jar keeps loading on later versions). 1.1.1 was 1.21.9 only.
OP and Survival
- OP is removed at the source: every player's permissions are always the lowest level, whether they're in
ops.json, in a singleplayer world with cheats on, or opened to LAN with "Allow Cheats". - That blocks every op command (
/gamemode,/give,/tp,/gamerule,/op, ...) and the F3+F4 / F3+N game mode switcher. - The server console and datapack functions keep their permissions now.
- Survival is enforced: players in any other mode are put back on the next tick. In Hardcore, dead players are left in Spectator.
Difficulty and gamerules
- New: the difficulty is locked at what the world had when HardGrind first saw it. The Difficulty button no longer lets you switch to Peaceful mid-fight.
- More gamerules are locked: keepInventory, doDaylightCycle, doWeatherCycle, doMobSpawning, spawnMonsters (1.21.11+), mobGriefing, naturalRegeneration, doImmediateRespawn, randomTickSpeed, playersSleepingPercentage, fallDamage, fireDamage, drowningDamage and freezeDamage.
- Changes (for example from editing
level.dat) are reverted within 5 seconds. - Fixed: 1.1.x only recorded real gamerule values in a development environment. They're recorded properly now.
New: run log and milestones
/hardgrind logshows the day, play time, deaths, mob kills, a milestone timeline and any notes.- The big steps of a run are announced and stamped with the day and play time: Stone Age, Acquire Hardware, Diamonds!, the Nether, blaze rods, Eye Spy, the End, the dragon, elytra, ancient debris, full netherite, a full beacon.
- Permanent notes record anything outside HardGrind's control: play without the mod, a crash or force-quit, or anything caught. Players are told on join.
- One line sums up the run when you join, e.g.
HardGrind · Day 12 · Run: Ironman · clean · watching since Day 1.
New: locking a world (/hardgrind lock confirm)
- The world won't open without HardGrind. A small datapack points at a sound only HardGrind adds, so without the mod Minecraft stops with "data pack validation failed".
- Safe Mode is caught: the only way in without the mod switches the lock off, and HardGrind notices when it's back.
- Backup if the datapack runs without the mod: everyone is frozen; Creative/Spectator, changed gamerules and a changed difficulty are reverted and recorded; and vanilla's "Lock Difficulty" is set.
- Save-scum guard: restored backups and old copies behind the latest save are caught, and only that copy pays for it. A dead world stays dead even if you restore a backup.
- Force-quit protection: locked worlds save every 2 minutes, and right away when someone dies or drops to 3 hearts.
- Cheat-mod guard: a locked world won't load with X-ray mods, Baritone or hacked clients (Wurst, Meteor, Aristois, BleachHack, LiquidBounce, ThunderHack). Minimaps, inventory tweaks and recipe viewers are fine.
- Tampering checks: the datapack deleted, switched off or edited,
hardgrind.markerdeleted, a changed difficulty, a rollback, or play time without the datapack all go into the run log. - Updating HardGrind never counts as tampering: packs written by older versions are recognised.
/hardgrind unlock confirmtakes the lock out again, with a permanent note.
New: ironman (/hardgrind ironman confirm)
- Locks the world and arms it for good. Anything HardGrind catches kills the world: it kicks you every time you load it.
New: hardcore second chance (/hardgrind revive confirm)
- After dying in a hardcore world (click "Spectate World" first), this turns hardcore off for good.
- Everyone who died respawns at their bed or world spawn with an empty inventory, like a normal death.
- The run log and status say "was hardcore" forever.
- Not in ironman worlds. Rejoin afterwards for normal hearts.
New: build worlds (/hardgrind build confirm)
- For building, not runs:
/gamemode, F3+F4 and the other commands work again, and nothing is enforced or locked. - The singleplayer/LAN host gets commands even with "Allow Cheats" off.
- Creative worlds are build worlds automatically. Locked and ironman worlds can't become one.
New: Freecam, fair mode
- Freecam 1.4 and 1.5 are allowed in locked worlds, with collision always on and the camera look-only.
- It also holds on servers and for LAN guests.
- If a Freecam version can't be held to that, locked worlds won't load with it until HardGrind is updated.
Commands and config
- Commands (any player):
/hardgrind(status),/hardgrind log, andlock,unlock,ironman,build,revive(each asks you to addconfirm). config/hardgrind.json:autoLocklocks every new Survival world automatically.sharedLedgerkeeps the save-scum ledger in~/.hardgrind, shared by every launcher and instance.
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:f2ezZ6pp:9n6gftYV"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:f2ezZ6pp:9n6gftYV"
}

