Что такое Universal Graves
Universal Graves - утилитарный мод для Minecraft Java, который заменяет обычный разброс предметов после смерти на настраиваемую могилу, или death chest. На месте гибели появляется контейнер с вашим лутом и опытом, поэтому возвращать вещи становится заметно проще, особенно после падения в пещеру, лаву или опасную структуру.
Мод Universal Graves рассчитан прежде всего на серверы. Администратор может сам определить внешний вид могилы, срок защиты, правила доступа, стоимость разблокировки, поведение опыта и время автоматического удаления. В результате механика смерти подстраивается под конкретный сервер: от почти ванильного режима до строгого PvP-выживания с платным возвращением вещей.
Поддерживаются Fabric и Quilt. На сервере мод может работать без обязательной установки у игроков, а клиентская часть нужна в основном для отображения кастомных моделей могил. Для серверных визуальных элементов используется Polymer. На актуальной ветке проект обозначен как UniversalGraves 3.13.0+26.3 для Minecraft 26.3, с Fabric Loader 0.19.5.
Как меняется смерть в игре
После гибели игрока Universal Graves создаёт могилу в подходящей точке рядом с местом смерти. Предметы не лежат на земле и не исчезают сразу из-за чанка, лавы или случайного проходящего моба. Владелец получает доступ к содержимому, а остальные игроки могут быть ограничены настройками защиты.
Могила может хранить предметы, опыт или и то и другое. Для опыта доступны разные режимы: не сохранять его, использовать ванильную механику, сохранить определённую долю очков или процент уровней. Можно также разрешить создание могилы, в которой нет предметов, но есть только опыт.
Если срок защиты закончился, содержимое можно оставить в могиле, удалить вместе с ней или выбросить наружу. Это полезно для серверов с ограниченным хранением: забытая могила не будет бесконечно занимать мир и создавать проблемы администрации.
Основные возможности
- Создание могилы на месте смерти игрока.
- Сохранение предметов и опыта вместо обычного выпадения.
- Настраиваемые сообщения, подписи и текст голограмм.
- Защита могилы от других игроков на заданный срок или навсегда.
- Автоматическое уничтожение могилы через установленное время.
- Выпадение содержимого после истечения срока хранения.
- Ограничение числа могил на одного игрока.
- Телепортация к могиле с задержкой, стоимостью и временной неуязвимостью.
- Компас смерти, указывающий направление к последней могиле.
- Быстрый подбор предметов через Shift и правую кнопку мыши.
- Удалённое снятие защиты, разрушение и разблокировка могил.
- Запрет создания могил в отдельных мирах, зонах и защищённых территориях.
- Восстановление блока, который находился на месте могилы.
- Разные модели могил, включая альтернативные варианты по условиям.
- Режим реального времени, при котором таймеры продолжают идти, когда сервер выключен.
Для чего мод нужен на сервере
В ванильном Minecraft смерть часто превращается в гонку со временем. Если игрок погиб в Незере, под землёй или далеко от базы, вещи могут сгореть, а место смерти легко потерять. Universal Graves убирает эту проблему, но оставляет администрации полный контроль над балансом.
Для обычного выживания можно поставить защиту на 15 минут и разрешить владельцу быстро забрать всё содержимое. На PvP-сервере логичнее включить обход защиты для убийцы, назначить цену разблокировки или оставить возможность удалённого взаимодействия только модераторам. Благодаря этому мод не превращает смерть в бесплатную страховку и не ломает правила конкретного проекта.
На практике особенно полезны ограничения по мирам и территориям. Например, в безопасном мире можно создавать могилы, а в мини-игровом измерении полностью отключить их появление. Есть и отдельная настройка для интеграции с защищёнными зонами сторонних модов.
Команды и разрешения
Основные команды Universal Graves:
/graves- открыть список могил текущего игрока. Разрешение:universal_graves.list. Оно выдано по умолчанию./graves player <player>- открыть список могил выбранного игрока. Разрешение:universal_graves.list_others./graves modify <player>- открыть список могил исполнителя с возможностью их изменения. Разрешение:universal_graves.modify./graves reload- перезагрузить конфигурацию и стили. Разрешение:universal_graves.reload.
Дополнительное разрешение universal_graves.teleport позволяет телепортироваться к любой могиле. Это удобно для администрации и модераторов, но выдавать его обычным игрокам стоит только осознанно: иначе ограничение расстоянием до места смерти фактически исчезает.
Настройка защиты и доступа
Главный файл конфигурации находится по пути ./config/universal-graves/config.json. В нём задаются основные правила хранения, взаимодействия и размещения.
Параметр non_owner_protection_time определяет, сколько секунд могила защищена от других игроков. Значение -1 делает защиту бесконечной. Параметр self_destruction_time отвечает за автоматическое удаление могилы, а значение -1 отключает саморазрушение.
Опция drop_items_on_expiration определяет, выпадут ли вещи после окончания срока. Если включить её, содержимое не пропадёт вместе с могилой. attackers_bypass_protection даёт убийцам возможность обходить защиту, что подходит для PvP-серверов. При включённом use_real_time таймер использует настоящее время и продолжает отсчитываться даже тогда, когда мир не запущен.
Для открытия могилы можно назначить стоимость. Поддерживаются бесплатный режим, творческий режим, предметы и уровни опыта. Отдельно настраиваются компас смерти, открытие интерфейса по клику и быстрое получение предметов пустой рукой с зажатым Shift.
Хранение опыта и предметов
Universal Graves позволяет выбрать, какая часть опыта попадёт в могилу:
none- опыт не сохраняется.vanilla- используется поведение, близкое к ванильному Minecraft.drop- опыт выпадает как обычные сферы.percent_point- сохраняется процент очков опыта.percent_level- сохраняется процент уровней.
В конфигурации можно указать процент сохранения для режимов percent_X. Также предусмотрена настройка alternative_experience_entity. Она включает альтернативный тип сущности сфер опыта, который помогает избежать дублирования опыта при совместной работе с некоторыми модами.
Предметы с определёнными чарами можно заблокировать. Например, это пригодится для запрета добавления в могилу предметов с модифицированным зачарованием soulbound:
{
"blocked_enchantments": [
"somemod:soulbound"
]
}
Размещение могилы
Мод ищет свободное место рядом с исходной точкой смерти. Расстояние поиска задаётся параметром max_distance_from_source_location. Если точка занята, Universal Graves может немного сместить позицию и повторить поиск. Число попыток задаётся через max_shift_tries, а максимальная дистанция такого смещения - через max_shift_distance.
По умолчанию могила не обязана заменять любой блок. Это защищает постройки от случайного перезаписывания. При необходимости можно включить replace_any_block, разрешив размещение поверх любых блоков.
Параметр generate_on_top_of_fluids заставляет создавать могилу над жидкостью, а не внутри неё. Настройки restore_replaced_block и restore_replaced_block_after_player_breaking отвечают за восстановление заменённого блока после исчезновения или разрушения могилы игроком.
Создание могил можно отключить для отдельных типов урона, атакующих сущностей, миров и областей. Это полезно для лобби, арен, данжей и других зон, где стандартные правила смерти не подходят.
Телепортация к могиле
Телепортация настраивается отдельно. Можно назначить стоимость, задержку перед переносом, смещение по высоте и короткий период неуязвимости после прибытия. Если движение во время ожидания запрещено, любое перемещение отменит телепортацию.
Такая механика удобна на больших картах, где игрок погиб далеко от базы. Но для хардкорного сервера задержку и стоимость лучше оставить включёнными, иначе возвращение к месту смерти станет слишком безопасным.
Модели и внешний вид
Модели могил хранятся в config/universal-graves/models/. В папке создаётся файл example.json, который служит примером стандартного стиля. Чтобы изменить внешний вид, его можно скопировать и переименовать в default.json, либо указать другое имя в конфигурации.
В разделе моделей можно задать альтернативные варианты. Они выбираются по условиям и позволяют использовать разные стили для отдельных игроков, миров или ситуаций. Это не просто текстовый маркер: сервер может показывать полноценный кастомный визуальный объект через Polymer.
Для игроков Bedrock Edition, подключающихся через Geyser, существует отдельный аддон UniversalGraves-Geyser. Он добавляет совместимые маркеры могил, текст, предпросмотр содержимого и адаптацию интерфейса. Сам Universal Graves при этом остаётся проектом для Fabric и Quilt.
Совместимость и установка
Universal Graves предназначен для Minecraft Java Edition и работает только с загрузчиками Fabric и Quilt. Forge и NeoForge этим проектом не поддерживаются.
Основная логика может выполняться на сервере. Клиентский мод требуется в тех случаях, когда нужно корректно показывать кастомные модели и связанные визуальные элементы. Для актуальных версий также проверьте наличие обязательной зависимости Polymer, так как она используется для серверных блоков, сущностей и моделей.
Проверяйте соответствие версии Minecraft, загрузчика и самого мода. Релиз для Minecraft 26.3 нельзя автоматически считать совместимым с любой предыдущей веткой. Старые конфигурации и файлы моделей лучше переносить после резервного копирования, особенно если меняется версия формата настроек.
Поля конфигурации
Ниже приведены основные параметры в формате JSON5. Комментарии поясняют назначение настроек, а не являются обязательной частью файла.
{
// Версию конфигурации нельзя менять вручную: это может повредить данные.
"config_version": 3,
"protection": {
// Защита могилы от других игроков, в секундах. -1 - навсегда.
"non_owner_protection_time": 900,
// Через сколько секунд могила уничтожится. -1 - отключить удаление.
"self_destruction_time": 1800,
// Выбрасывать предметы после окончания срока.
"drop_items_on_expiration": true,
// Разрешить атакующим обходить защиту.
"attackers_bypass_protection": false,
// Использовать реальное время, включая период выключенного сервера.
"use_real_time": false
},
"interactions": {
// Стоимость открытия могилы после смерти.
"unlocking_cost": { /* COST */ },
// Выдавать компас, указывающий на могилу.
"give_death_compass": true,
// Открывать интерфейс нажатием на могилу.
"enable_click_to_open_gui": true,
// Быстрый подбор предметов через Shift и клик пустой рукой.
"shift_and_use_quick_pickup": true,
// Разрешить удалённо снимать защиту.
"allow_remote_protection_removal": true,
// Разрешить удалённо разрушать могилу.
"allow_remote_breaking": true,
// Разрешить удалённо оплачивать разблокировку.
"allow_remote_unlocking": false
},
"storage": {
// Режим хранения опыта: none, vanilla, drop, percent_point или percent_level.
"experience_type": "percent_points",
// Процент для режимов percent_X.
"experience_percent:setting_value": 100.0,
// Разрешить могилы только с опытом.
"can_store_only_xp": false,
// Использовать альтернативные сферы опыта для защиты от дублирования.
"alternative_experience_entity": false,
// Запрещённые зачарования.
"blocked_enchantments": [
"somemod:soulbound"
]
},
"placement": {
// Максимум могил на игрока. -1 - без ограничений.
"player_grave_limit": -1,
// Разрешить заменять любой блок.
"replace_any_block": false,
// Максимальное расстояние поиска свободной точки.
"max_distance_from_source_location": 8,
// Смещать точку при неудачном размещении.
"shift_location_on_failure": true,
// Максимальное число попыток смещения.
"max_shift_tries": 5,
// Максимальная дистанция смещения.
"max_shift_distance": 40,
// Создавать могилу над жидкостями.
"generate_on_top_of_fluids": false,
// Восстанавливать заменённый блок.
"restore_replaced_block": false,
// Восстанавливать блок после разрушения могилы игроком.
"restore_replaced_block_after_player_breaking": true,
// Типы урона, при которых могила не создаётся.
"cancel_creation_for_damage_types": {
"minecraft:fire": "... пользовательское сообщение или пустая строка"
},
// Типы атакующих, блокирующие создание могилы.
"cancel_creation_for_ignored_attacker_types": {
"minecraft:player": "... пользовательское сообщение или пустая строка"
},
// Предикаты, запрещающие создание могил.
"blocking_predicates": [{/* PREDICATE */}],
// Запрет создания в защищённых областях сторонних модов.
"block_in_protected_area": {
"goml:claim_protection": true
},
// Миры, в которых могилы запрещены.
"blacklisted_worlds": [
"dungeons:world"
],
// Области, в которых могилы запрещены.
"blacklisted_areas": {
"minecraft:overworld": [
{
"x1": -100,
"y1": -200,
"z1": -100,
"x2": 100,
"y2": 500,
"z2": 100
}
]
},
// Сообщение при невозможности создать могилу.
"creation_default_failure_text": "...",
// Сообщение при попытке создания могилы в защищённой зоне.
"creation_claim_failure_text": "..."
},
"teleportation": {
// Стоимость телепортации.
"cost": {/* COST */},
// Задержка перед телепортацией.
"required_time": 5,
// Смещение по высоте относительно могилы.
"y_offset": 1.0,
// Время неуязвимости после прибытия.
"invincibility_time": 2,
// Разрешить движение во время ожидания.
"allow_movement_while_waiting": false,
// Сообщения таймера, позиции и отмены.
"text": {
"timer": "...",
"timer_allow_moving": "...",
"location": "...",
"canceled": "..."
}
},
"model": {
// Имя стандартной модели.
"default": "default",
// Альтернативные модели по условиям.
"alternative": [
{
"require": {/* PREDICATE */},
"model": "model_name"
}
],
// Показывать Bedrock-игрокам могилу в виде черепа.
"enable_geyser_workaround": true,
// Базовый предмет визуальной могилы.
"gravestone_item_base": "minecraft:skeleton_skull",
// Дополнительные NBT-данные предмета.
"gravestone_item_nbt": {}
},
"ui": {/* определения интерфейса */},
"text": {
// Формат даты для переменных сообщений.
"date_format": "dd.MM.yyyy, HH:mm",
// Переименования миров.
"world_names": {
"custom:world": "Custom World!"
}
}
}
Переменные сообщений и дополнительные форматы
Тексты используют формат Simplified Text. В сообщения можно подставлять локальные переменные в виде ${variable}. Для большинства сообщений о могиле доступны следующие значения:
player, protection_time, break_time, xp, item_count, position, world, death_cause, minecraft_day, creation_date, since_creation, id.
Для условий используется формат {/* PREDICATE */}. Стоимость задаётся через {/* COST */}. Поддерживаются типы free, creative, item и level.
Пример стоимости предметом или уровнем:
{
// Тип стоимости: free, creative, item или level.
"type": "",
// Используется только для item: описание предмета.
"input": {/* ITEMSTACK */},
// Количество предметов или уровней.
"count": 0
}
Предмет можно указать короткой строкой:
"minecraft:skeleton_skull"
Или использовать расширенный формат с количеством и дополнительными NBT-данными:
{
"id": "minecraft:skeleton_skull",
"Count": 1,
"tag": {}
}
Что важно проверить перед запуском
Перед изменением config_version сделайте копию конфигурации. Этот параметр служебный, и ручная замена версии может привести к повреждению или неправильному чтению настроек.
Если могила не появляется, сначала проверьте чёрный список миров и областей, ограничения защищённых территорий и настройки типов урона. При смерти в жидкости или на занятой позиции результат также зависит от generate_on_top_of_fluids, replace_any_block и числа попыток поиска свободного места.
Для сетевой игры заранее определите, кто видит модели и интерфейс могил. Серверная логика может работать без полноценного клиентского мода, но кастомный внешний вид и интеграции для Bedrock-клиентов требуют соответствующей поддержки. На сервере с большим количеством модов отдельно протестируйте хранение опыта, чтобы исключить конфликт с альтернативными сущностями опыта.
Universal Graves хорошо подходит для приватного выживания, технических сборок и серверов с друзьями. Он сохраняет напряжение после смерти, но убирает бессмысленную потерю вещей, а благодаря подробной конфигурации позволяет настроить механику под правила конкретного мира.
Скриншоты Universal Graves
Часто задаваемые вопросы
Совместимость
Зависимости
Создатели
Детали
Версии мода Universal Graves
Доступно 79 версий. Сначала показаны самые популярные и самые свежие.