Как изменить режим игры по умолчанию
Введение
Данная инструкция описывает процесс изменения режима игры по умолчанию (default gamemode) для новых игроков на сервере Minecraft, размещенном на хостинге proxify.cloud. Мы предполагаем, что у вас есть выделенный сервер под управлением Ubuntu с установленной панелью виртуализации Proxmox VE, а сам игровой сервер запущен внутри контейнера (LXC) или виртуальной машины (QEMU/KVM). Все действия выполняются через SSH-подключение к контейнеру/ВМ с игровым сервером.
Подготовка и доступ к серверу
1. Подключение через SSH
Откройте терминал (Linux/macOS) или PowerShell/Terminal (Windows) и подключитесь к контейнеру или ВМ, где запущен Minecraft-сервер.
ssh root@<IP-адрес_контейнера_или_ВМ>
Примечание: IP-адрес контейнера можно посмотреть в панели proxify.cloud (Proxmox VE) в разделе «Network» выбранного контейнера/ВМ. Если вы используете стандартный порт 22 и ключи не настроены, введите пароль root.
2. Определение пользователя и рабочей директории
Рекомендуется не запускать сервер от root. Обычно создается отдельный пользователь (например, minecraft или mcserver). Переключитесь на него:
su - minecraft
Перейдите в директорию сервера. Стандартные пути:
/home/minecraft/server/opt/minecraft/server/var/lib/minecraft/server
cd /home/minecraft/server
Проверьте содержимое, чтобы убедиться, что вы в правильной папке (должен быть файл server.properties, server.jar или скрипты запуска):
ls -la
Остановка сервера перед изменением конфигурации
3. Корректная остановка сервера
Никогда не редактируйте server.properties, пока сервер работает — изменения будут перезаписаны при сохранении мира или рестарте.
Вариант А: Через systemd (если сервер установлен как сервис)
sudo systemctl stop minecraft-server
Или, если вы под пользователем minecraft и настроен systemd user service:
systemctl --user stop minecraft-server
Вариант Б: Через screen/tmux (ручной запуск)
Если сервер запущен в сессии screen с именем mc:
screen -r mc
В консоли сервера введите:
stop
Дождитесь сообщения Server stopped и нажмите Ctrl+A, затем D для отсоединения от screen.
Вариант В: Через Docker (если используется контейнер Docker внутри LXC/VM)
docker stop minecraft-server
Убедитесь, что процесс Java остановлен:
pgrep -f "server.jar"
Команда не должна возвращать PID.
Редактирование файла server.properties
4. Резервное копирование конфигурации
Перед правкой создайте бэкап:
cp server.properties server.properties.backup.$(date +%F_%H-%M-%S)
5. Изменение параметра gamemode
Откройте файл в редакторе (nano, vim или micro):
nano server.properties
Найдите строку:
gamemode=survival
Измените значение на одно из допустимых:
survival(0) — выживаниеcreative(1) — творческийadventure(2) — приключениеspectator(3) — наблюдатель
Пример для творческого режима:
gamemode=creative
Совет: Можно использовать числовые ID (0-3), но строковые значения читаемы и предпочтительны в современных версиях (1.13+).
6. Настройка force-gamemode (важно)
В том же файле найдите параметр force-gamemode.
force-gamemode=true— игрок всегда будет спавниться в режиме, указанном вgamemode, при каждом входе на сервер. Его личный режим игнорируется.force-gamemode=false(по умолчанию) — режим изgamemodeприменяется только при первом входе нового игрока. Далее сохраняется его личный режим.
Рекомендация: Для смены режима по умолчанию для новичков поставьте false. Если нужно форсировать режим для всех (например, мини-игра) — поставьте true.
force-gamemode=false
Сохраните файл: Ctrl+O, Enter, Ctrl+X (в nano).
Проверка связанных настроек
7. Параметр defaultgamemode (устаревший/алиас)
В старых версиях или некоторых форках (Paper, Purpur, Spigot) может встречаться параметр defaultgamemode. Он дублирует gamemode. Для единообразия установите его в то же значение:
defaultgamemode=creative
8. Настройка сложности (difficulty)
Режим игры и сложность — разные вещи, но часто меняются вместе. Проверьте:
difficulty=normal
Допустимые значения: peaceful, easy, normal, hard.
9. hardcore (хардкор)
Если hardcore=true, сервер игнорирует gamemode и ставит выживание с пермадетом. Убедитесь, что:
hardcore=false
Особенности для прокси-серверов (Velocity / BungeeCord)
Если ваша архитектура на proxify.cloud включает прокси (Velocity/BungeeCord) и несколько бэкенд-серверов:
- Настройку
gamemodeнужно менять на каждом бэкенд-сервере (Lobby, Survival, Creative и т.д.) индивидуально. - Прокси не управляет игровым режимом, он только перенаправляет пакеты.
- Если используется плагин перемещения между серверами (например,
ServerSelector), режим меняется плагинами на бэкендах.
Запуск сервера и проверка
10. Запуск сервера
Systemd:
sudo systemctl start minecraft-server
# или
systemctl --user start minecraft-server
Screen (ручной):
screen -S mc -d -m bash -c 'java -Xms4G -Xmx4G -jar server.jar nogui'
Подстройте флаги -Xms/-Xmx под выделенную RAM в панели proxify.cloud.
Docker:
docker start minecraft-server
11. Мониторинг логов запуска
Следите за консолью на наличие ошибок:
# Для systemd
journalctl -u minecraft-server -f
# Для screen
screen -r mc
# Для docker
docker logs -f minecraft-server
Дождитесь строки Done! For help, type "help" или Server started on port....
12. Тестирование в игре
- Зайдите на сервер новым аккаунтом (или удалите
playerdata/<UUID>.datдля тестового аккаунта в папкеworld/playerdata). - Проверьте режим командой
/gamemode(должен показать новый режим). - Проверьте инвентарь (в креативе — полет, креативная вкладка предметов).
Изменение режима для уже играющих игроков (опционально)
Изменение server.properties не влияет на существующих игроков. Их режим хранится в файлах world/playerdata/<UUID>.dat.
13. Смена режима конкретному игроку онлайн
В консоли сервера или в чате (если есть права OP):
/gamemode creative <ник_игрока>
14. Массовая смена режима через NBT (оффлайн)
Требуется остановленный сервер и установленный nbt инструмент (например, nbt-cli или скрипт на Python).
Пример с nbt (установка: pip install nbt):
cd /home/minecraft/server/world/playerdata
for file in *.dat; do
nbt -f "$file" -p "playerGameType" -s 1 # 1 = creative
done
Будьте осторожно: это изменит режим ВСЕМ игрокам, включая админов.
15. Удаление playerdata для полного сброса (радикально)
rm -f /home/minecraft/server/world/playerdata/*.dat
При следующем заходе все игроки получат режим из server.properties и чистый инвентарь.
Автоматизация через скрипты (для админов proxify.cloud)
16. Скрипт быстрой смены режима
Создайте файл /home/minecraft/scripts/set_gamemode.sh:
#!/bin/bash
# Usage: ./set_gamemode.sh <survival|creative|adventure|spectator>
TARGET_MODE="$1"
PROPS_FILE="/home/minecraft/server/server.properties"
SERVICE_NAME="minecraft-server"
if [[ ! "$TARGET_MODE" =~ ^(survival|creative|adventure|spectator)$ ]]; then
echo "Invalid mode. Use: survival, creative, adventure, spectator"
exit 1
fi
echo "Stopping server..."
systemctl stop "$SERVICE_NAME"
sleep 5
echo "Updating $PROPS_FILE..."
sed -i "s/^gamemode=.*/gamemode=$TARGET_MODE/" "$PROPS_FILE"
sed -i "s/^defaultgamemode=.*/defaultgamemode=$TARGET_MODE/" "$PROPS_FILE"
echo "Starting server..."
systemctl start "$SERVICE_NAME"
echo "Done. Default gamemode set to $TARGET_MODE"
Сделайте исполняемым:
chmod +x /home/minecraft/scripts/set_gamemode.sh
Теперь можно менять режим одной командой:
/home/minecraft/scripts/set_gamemode.sh creative
Возможные проблемы и решения
1. Изменения не вступили в силу после рестарта
Причина: Сервер не остановился корректно (процесс завис), либо вы редактировали файл не в той директории (симлинк, другой инстанс). Решение:
- Проверьте
pwdиrealpath server.properties. - Убейте зависший процесс:
pkill -9 -f server.jar. - Убедитесь, что systemd-юнит указывает на правильный
WorkingDirectory.
2. Игрок все равно спавнится в выживании
Причина: force-gamemode=false (по умолчанию) и у игрока уже есть файл playerdata/<UUID>.dat с сохраненным режимом.
Решение:
- Удалите файл игрока в
world/playerdata/(сбросит инвентарь и позицию). - Или используйте команду
/gamemode creative <ник>в игре/консоли. - Или поставьте
force-gamemode=true(но это заставит всех переключаться при каждом заходе).
3. Ошибка "Permission denied" при редактировании
Причина: Ф
Комментарии (0)