11.0.0
Compatibility
Required content
Changes
AR1 Backup v11.0.0
A large-scale update focused on improving save reliability, protecting against data loss, and completely reworking the user interface to make interaction better.
Players! Please note
The mod port to versions 26.3, 26.1.2, 26.1.1, 26.1, and 1.21.11 is planned in the near future (1–2 weeks). Once we make sure everything works correctly and fully adapt the code for each of the versions listed above, we will release v11.0.0 for these versions.
Описание на русском см. ниже.
Safety and Data Integrity
- Data protection during world overwrite (Rewrite): if a failure occurs while extracting the archive, the old world will not be permanently deleted. The mod will move it to a backup directory and restore it to its original state if an error occurs.
- Protection against malicious archives: protection against Zip-bomb attacks (RAM and disk space exhaustion) and Zip-slip (writing files outside the target directory) has been implemented.
- Race conditions eliminated: hangs and parallel launches of multiple backup processes during rapid UI interaction or command use are now prevented.
- Password database protection: if the
passwords.jsonfile is corrupted, it will be moved to quarantine, preventing irreversible loss of password history. The password is written to the database before the archiving process begins. - PC change identification: when transferring the build to another computer, the mod will detect the user account change and initiate a telemetry settings reset, allowing the new owner to provide consent.
- Correct autosave behavior: the mod will not force-enable world autosave if it was disabled by the user before the operation began. The settings state is restored to its original position.
Archiving and Snapshot Verification
- World snapshot verification: the default mode is Rebuild (
RETRY). This prevents item duplication and desynchronization if the world changes during archiving. Backup creation may take longer, but data integrity is guaranteed. - Fixed false verification positives: files modified after they have already been read are no longer detected as mismatches.
- Active process protection: an archive currently being written is marked with the corresponding status. Its deletion, restoration, or addition to favorites is blocked until the operation completes. The Delete All function skips active files.
- Fixed name collision: if two archives are created in the same second, a suffix (
_1,_2) is added to the name, preventing overwriting of an existing file. - Removed the "Compression threads" setting: the parameter was not used in the code. Chunk files (
.mca) are saved without recompression because they are already compressed by the game.
Interface and Usability (GUI)
- Smart recommendations: an interactive tips panel has been added to the lower-left corner of the screen. The mod analyzes the state and suggests solutions (enabling auto-backup, deleting corrupted archives, changing a dangerous save path, or insufficient space). Recommendations are switched using navigation buttons with smooth animation.
- GUI settings screen: a separate scrollable menu. It allows you to manage outline animations, search field visibility, background blur, and compact list mode.
- Compact list mode: reduces tile height and icon size, allowing more archives to be displayed on screen.
- Latest backup indication: the newest archive is highlighted with a lighter background and the corresponding status. An actively creating archive is not counted when determining the latest one.
- Colored timestamps: the deletion, restoration, and mass deletion windows display the exact archive creation time with color formatting similar to the list tiles.
- Streamer mode: the feature hides chat notifications and progress bars while recording the screen.
- Long name handling: world names scroll smoothly without overlapping status elements (such as protection or deletion badges).
- Version display: the current mod version is displayed in the upper-right corner of the screen.
- Localization: the interface has been fully translated into 14 languages. All text data has been moved to language files.
Progress and HUD
- Accurate progress calculation: fixed progress calculation for large files in the HUD. Previously, progress was based on file count, which caused incorrect display when processing one large file (the bar filled instantly). Now calculation is based on bytes actually read.
- HUD color statuses: during backup creation, the widget grid has a rainbow coloring; during restoration, it is yellow. On successful completion — green; on error — red.
- Restore cancellation: a cancel button (X in the corner of the window) has been added, appearing 10 seconds after the process starts.
- Instant backup interruption: the
/backup resetcommand interrupts the process in milliseconds. The widget displays the cancellation status, and the partial archive is immediately deleted. - Correct text wrapping: in restore windows, long world names wrap to a new line and do not go beyond the window.
Config Changes
backupLimit: 5–100, default 30.backupRetentionDays: 0–60, default 30.restoreWorldSuffix: defaultfalse.saveBackupsInWorldFolders: defaulttrue.snapshotCheckMode: defaultRETRY.- New "Appearance" category: added after "Advanced".
- Settings order: toggles, sliders, enums, and buttons.
- New fields:
guiCompactList,guiAnimationsEnabled,guiShowLegend,guiShowSearch,guiTitleFooter,guiShowBadges,guiBackgroundBlur. - Service field:
uniqueInstallation(encrypted account identifier for PC change detection).
Other Fixes and Optimizations
- Safe directory deletion: during recursive deletion, the mod does not keep all paths in RAM, preventing out-of-memory (OOM) errors when processing large worlds.
- Directory scanning: fixed a game crash when attempting to read Windows system folders (for example,
C:\Windows\CSC). - Log stability: fixed loss of trailing arguments during message formatting. WARN and ERROR level entries are always output to the console.
- Number formatting: all values use
Locale.ROOT, ensuring correct display (with a dot instead of a comma) regardless of the system locale. - Thread error handling: background task and scheduler launches are protected from unhandled exceptions.
- Symlink ignoring: when collecting files and calculating directory size, symlinks are not traversed.
- List sorting: archives are sorted by the date from the filename, not by the last modified date.
- Safe reset: the
/backup resetcommand does not delete the file if the archiving thread is still running. - Code optimization: overall stability has been improved.
Important Notes
- The mod is developed and tested primarily for Windows. Operation on Linux and macOS may not be fully verified.
- The mod may work on mobile launchers (such as Pojav, Zalith, or FoldCraft), but there are no guarantees of flawless operation in some usage scenarios.
Описание на русском
AR1 Backup v11.0.0
Масштабное обновление, направленное на повышение надежности сохранений, защиту от потери данных и полную переработку пользовательского интерфейса для улучшения взаимодействия с ним.
Игроки! Обратите внимание
Порт мода на версии 26.3, 26.1.2, 26.1.1, 26.1 и 1.21.11 запланирован в ближайшее время (1-2 недели). Как только мы убедимся в корректной работе и полностью адаптируем код для каждой из версий, указанных выше, — выложим v11.0.0 для этих версий.
Безопасность и сохранность данных
- Защита данных при перезаписи миров (Rewrite): если при распаковке архива произойдет сбой, старый мир не будет удален безвозвратно. Мод переместит его в резервную директорию и восстановит в исходное состояние при возникновении ошибки.
- Защита от вредоносных архивов: реализована блокировка атак типа Zip-bomb (переполнение оперативной памяти и дискового пространства) и Zip-slip (запись файлов за пределы целевой директории).
- Устранены состояния гонки (Race Conditions): исключены зависания и параллельный запуск нескольких процессов архивации при быстром взаимодействии с интерфейсом или при использовании команд.
- Защита базы паролей: в случае повреждения файла
passwords.jsonон будет перемещен в карантин, что предотвращает безвозвратную потерю истории паролей. Запись пароля в базу происходит до начала процесса архивации. - Идентификация при смене ПК: при переносе сборки на другой компьютер мод зафиксирует изменение учетной записи пользователя и инициирует сброс настроек телеметрии, позволяя новому владельцу дать согласие.
- Корректная работа автосохранения: мод не будет принудительно включать автосохранение мира, если оно было отключено пользователем до начала операции. Состояние настроек восстанавливается в исходное положение.
Архивация и проверка снимков
- Проверка снимка мира (Snapshot): по умолчанию включен режим «Пересобрать» (
RETRY). Это предотвращает дюп предметов и рассинхронизацию, если мир изменился в процессе архивации. Время создания бэкапа может увеличиться, но гарантируется целостность данных. - Исправлены ложные срабатывания проверки: файлы, измененные уже после их чтения, больше не определяются как расхождения.
- Защита активного процесса: архив, находящийся в процессе записи, помечается соответствующим статусом. Его удаление, восстановление или добавление в избранное блокируется до завершения операции. Функция «Удалить все» пропускает активные файлы.
- Исправлена коллизия имен: если два архива создаются в одну секунду, к имени добавляется суффикс (
_1,_2), что предотвращает перезапись существующего файла. - Удалена настройка «Потоки сжатия»: параметр не использовался в коде. Файлы чанков (
.mca) сохраняются без повторного сжатия, так как уже сжаты игрой.
Интерфейс и удобство (GUI)
- Умные рекомендации: в левой нижней части экрана добавлена интерактивная панель советов. Мод анализирует состояние и предлагает решения (включение авто-бэкапа, удаление поврежденных архивов, смена опасного пути сохранения или нехватка места). Переключение рекомендаций осуществляется кнопками навигации с плавной анимацией.
- Экран настройки GUI: отдельное меню с прокруткой. Позволяет управлять анимациями обводок, видимостью поля поиска, размытием фона и плотным режимом списка.
- Плотный режим списка: уменьшает высоту плитки и размер иконки, позволяя отображать большее количество архивов на экране.
- Индикация последнего бэкапа: самый свежий архив выделяется более светлым фоном и соответствующим статусом. Активно создающийся архив не учитывается при определении последнего.
- Цветные метки времени: в окнах удаления, восстановления и массового удаления отображается точное время создания архива с цветовым форматированием, аналогичным плиткам списка.
- Режим стримера: функция скрывает уведомления в чате и прогресс-бары на время записи экрана.
- Обработка длинных имен: названия миров плавно прокручиваются, не перекрывая элементы статуса (например, бейджи защиты или удаления).
- Отображение версии: актуальная версия мода выводится в правом верхнем углу экрана.
- Локализация: интерфейс полностью переведен на 14 языков. Все текстовые данные вынесены в языковые файлы.
Прогресс и HUD
- Точный расчет прогресса: исправлен расчет прогресса для больших файлов в HUD. Ранее прогресс основывался на количестве файлов, из-за чего обработка одного крупного файла приводила к некорректному отображению (мгновенное заполнение полосы). Теперь расчет ведется по реально прочитанным байтам.
- Цветовые статусы HUD: при создании бэкапа сетка виджета имеет радужный окрас, при восстановлении — желтый. При успешном завершении — зеленый, при ошибке — красный.
- Отмена восстановления: добавлена кнопка отмены (крестик в углу окна), появляющаяся через 10 секунд после начала процесса.
- Мгновенное прерывание архивации: команда
/backup resetпрерывает процесс за миллисекунды. Виджет отображает статус отмены, а частичный архив незамедлительно удаляется. - Корректный перенос текста: в окнах восстановления длинные имена миров переносятся на новую строку и не выходят за пределы окна.
Изменения в конфиге
backupLimit: 5–100, по умолчанию 30.backupRetentionDays: 0–60, по умолчанию 30.restoreWorldSuffix: по умолчаниюfalse.saveBackupsInWorldFolders: по умолчаниюtrue.snapshotCheckMode: по умолчаниюRETRY.- Новая категория «Вид»: добавлена после «Продвинутых».
- Порядок настроек: тумблеры, слайдеры, перечисления и кнопки.
- Новые поля:
guiCompactList,guiAnimationsEnabled,guiShowLegend,guiShowSearch,guiTitleFooter,guiShowBadges,guiBackgroundBlur. - Служебное поле:
uniqueInstallation(зашифрованный идентификатор учетной записи для определения смены ПК).
Прочие исправления и оптимизация
- Безопасное удаление директорий: при рекурсивном удалении мод не удерживает все пути в оперативной памяти, что предотвращает переполнение (OOM) при обработке крупных миров.
- Сканирование директорий: исправлено аварийное завершение игры при попытке чтения системных папок Windows (например,
C:\Windows\CSC). - Стабильность логов: исправлена потеря хвостовых аргументов при форматировании сообщений. Записи уровней WARN и ERROR всегда выводятся в консоль.
- Форматирование чисел: все значения используют
Locale.ROOT, что гарантирует корректное отображение (с точкой вместо запятой) независимо от системной локали. - Обработка ошибок потоков: запуск фоновых задач и планировщика защищен от необработанных исключений.
- Игнорирование символических ссылок: при сборе файлов и подсчете размера директорий переход по симлинкам не осуществляется.
- Сортировка списка: архивы сортируются по дате из имени файла, а не по дате последнего изменения.
- Безопасный сброс: команда
/backup resetне удаляет файл, если поток архивации все еще выполняется. - Оптимизация кода: повышена общая стабильность работы.
Важные примечания
- Мод разрабатывается и тестируется преимущественно для Windows. Работоспособность на Linux и macOS может быть не проверена в полной мере.
- Работа мода на мобильных лаунчерах (таких как Pojav, Zalith или FoldCraft) возможна, но нет гарантий безотказной работы в некоторых сценариях использования.
Developed by ar1emq – a member of THEMIDNIGHTCORE
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:jd3bF4RU:byK9egcF"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:jd3bF4RU:byK9egcF"
}

