Перейти к содержимому
Mineforgian

ModernDifficultyLocker

A UI backport mod to backport the Difficluty Lock button.

Загрузки
281
Подписчики
2
Обновлён
19 июля 2026 г.
Лицензия
MIT

Опубликован 20 апреля 2026 г.

ModernDifficultyLocker

A lightweight mod that backports the difficulty lock feature from Minecraft 1.8+ to Minecraft 1.7.10, including the lock button and the confirmation screen.
It is designed to behave as closely as possible to the modern vanilla implementation while remaining fully compatible with classic 1.7.10 modpacks.

🌟 Details

ModernDifficultyLocker introduces the familiar difficulty lock toggle to the Options screen in 1.7.10.
Once a world is locked, the difficulty can no longer be changed through the in‑game menu, mirroring the behavior of newer Minecraft versions.

The mod stores the lock state per‑world inside the save folder, so each world can have its own difficulty and lock configuration.
This feature is especially useful for players or modpack authors who want consistent gameplay difficulty across a world’s lifetime.

Integration with CreateWorldUI

If CreateWorldUI is installed, this mod seamlessly integrates with it:

  • The vanilla difficulty button is replaced with a World Settings… button
  • Difficulty and gamerules can be configured together in a unified interface
  • The experience matches the modern world‑creation flow introduced in later Minecraft versions

See the gallery for screenshots and UI previews.

🙌 Credits

The UI and behavior are inspired by the vanilla difficulty lock system introduced in Minecraft 1.8+.

Ченджлог

1.2.0Релиз1.7.10 · 19 июля 2026 г.

What' s changed.

Fixing repeated creation of SaveHandler covering session.lock causing save interruptions, and adding persistent per-save difficulty for unlocked archives.

Root cause: Multiple calls to getActiveAnvilConverter().getSaveLoader(name, false) create new SaveHandler for running worlds, whose constructor setSessionLock() overwrites the archive's session.lock. Subsequently, saveLevel()'s checkSessionLock() throws exceptions due to timestamp mismatch and aborts saving, causing two symptoms:

  • Archive list sorting degrades to 'creation order' (LastPlayed cannot be updated, should normally be 'recent play priority');
  • Difficulty of unlocked archives resets to default (normal) upon exiting and re-entering. These are two manifestations of the same root cause 'save interrupted'.

Fix: Change all 8 calls to create new SaveHandler to reuse the running world's server.worldServers[0].getSaveHandler() (all with worldServers null protection):

  • MixinIntegratedServer: loadAllWorlds(hardcore) and initiateShutdown are changed to reuse; startServer keeps difficulty loading deferred until loadAllWorlds completes;
  • MixinGuiOptions: hardcore auto-lock, lock confirmation, unlock confirmation are refactored to reuse via @unique helper method;
  • DifficultyLocker.onServerStarting is changed to reuse;
  • GuiWorldSettings.saveWorldData is changed to reuse.

New addition: WorldDifficultyData adds a currentDifficulty snapshot field (stored in difficultylocker.dat). On exit, record the current world difficulty; on loading, restore it, so unlocked worlds retain independent difficulty per save like 1.8+; New worlds without records do not override game default difficulty. Old archives without this key are handled as -1 for backward compatibility.

Full Changelog: https://github.com/song682/ModernDifficultyLocker/compare/v1.1.0...v1.2.0

1.1.0Релиз1.7.10 · 25 июня 2026 г.
1.0.2Релиз1.7.10 · 6 мая 2026 г.
1.0.0Релиз1.7.10 · 26 апреля 2026 г.
0.2.2Релиз1.7.10 · 24 апреля 2026 г.
0.2.0Бета1.7.10 · 24 апреля 2026 г.

Комментарии

Загружаем…