Фэндом


Together icon.png

Статья описывает информацию, относящуюся к Don't Starve Together.
Она не имеет отношения к одиночной игре и DLC.

Dedicated Server (Выделенный сервер) - это оптимизированная версия Don't Starve Together, которая предназначена для продолжительной работы без графического интерфейса пользователя. Другими словами, эта версия нужна только для создания сервера, чтобы к нему присоединялись другие игроки.

Можно скачать через клиент Steam или SteamCMD как для Windows, так и для Linux.

Расширенная версия создания выделенного сервера для Linux находится в этой статье.

Требования

У администратора сервера должна быть установлена копия Don't Starve Together, чтобы запустить выделенный сервер. При этом можно запустить много копий серверной части, имея лишь одну копию DST.

Выделенный сервер использует другой способ соединения, в отличие от обычной DST. Необходимо правильно настроить проброску портов на сетевом оборудовании. По умолчанию сервер использует порт:

  • UDP 10999

Для администрирования под Windows необходимо знать навигацию по файловой системе и уметь работать с текстовыми редакторами.

Для администрирования под Linux нужно уметь работать с пакетным менеджером текущей системы и текстовыми редакторами (например, Vim или nano ), знать навигацию по файловой системе и основы управления доступами к файлам (chmod).

Для создания надежного/производительно сервера администратору нужно убедиться, что серверное оборудование удовлетворяет следующим требованиям:

  • Интернет (на отдачу) - 8Kb на игрока в секунду
  • ОЗУ - около 65Mb на игрока
  • Установленный VCRedist_2008 (x86) (для сервера на Windows)

Установка

На данный момент поддерживается два способа загрузки сервера:

Скачивание через SteamCMD

Узнать больше о SteamCMD можно по ссылке: https://developer.valvesoftware.com/wiki/SteamCMD:ru

SteamCMD для Windows

Загрузите архив с SteamCMD: http://media.steampowered.com/client/installer/steamcmd.zip

Извлеките его содержимое, например, по пути: C:\dst.

cd C:\dst
steamcmd
login anonymous
force_install_dir C:\dst\server_dst
app_update 343050 validate

SteamCMD для Linux

Для начала необходимо установить нужные для работы сервера пакеты. Для каждой операционной системы они могут быть разными, они перечислены ниже.

64-битная Ubuntu/Debian:

dpkg --add-architecture i386
apt-get update
apt-get install screen lib32gcc1 libcurl4-gnutls-dev:i386
apt-get install lib32stdc++6 
apt-get install libgcc1      
apt-get install libcurl4-gnutls-dev:i386

32-битная RedHat/CentOS:

yum install glibc libstdc++

64-битная RedHat/CentOS:

yum install glibc.i686 libstdc++.i686

Далее потребуется создать пользователя для работы с сервером:

adduser dst

Теперь зайдем под созданным пользователем, скачаем и распакуем SteamCMD:

su - dst
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
mkdir server_dst

Скачиваем и устанавливаем сервер Don't Starve Together:

./steamcmd.sh
login anonymous
force_install_dir /home/dst/server_dst
app_update 343050 validate
quit

Сервер установлен. Осталась конфигурация.

Загрузка через клиент Steam

Работает только для Windows и “Desktop Linux” (требует графического интерфейса ОС).

Если у вас есть Don't Starve Together, то зайдите в Библиотека -> Инструменты. Найдите там "Don't Starve Together Dedicated Server". Далее установите и запустите его.

Для данного метода не будет рассматриваться детальная настройка, так как он достаточно прост и почти не используется для выделенных серверов.

Серверные токены

Чтобы запустить публичный выделенный сервер "Неголодайки", нужно ввести так называемый "кластерный токен". Это ключ, который подтверждает владение вами купленной копии DST и позволяет компании Клей модерировать сервера, которые нарушают лицензию.

Чтобы сгенерировать токен, нужно сделать следующее:

  • Запустить Don't Starve Together. Нажать "Играть".
  • Нажать на тильду (~), чтобы открыть консоль, и набрать: TheNet:GenerateClusterToken()
  • Серверный токен будет записан в файл server_token.txt, который находится по адресу:
    • Windows: %HOMEPATH%\Documents\Klei\DoNotStarveTogether\cluster_token.txt
    • Linux: ~/.klei/DoNotStarveTogether/cluster_token.txt

Оставьте полученный токен на виду, он понадобится на этапе конфигурации.

Типы серверов

На данный момент возможна реализация сервера в различных вариациях:

  • Сервер с обычным миром, без пещер
  • Сервер, на котором есть только пещеры
  • Два зависимых сервера: с обычным миром и с пещерами

Подробнее о пещерах вы можете прочитать в соответствующей статье.

В последнем случае игрок будет перемещаться между серверами при входе/выходе из пещер. Стоит заметить, что для содержания двух серверов понадобится больше мощностей.

Пока в статье рассматриваются только первый и второй варианты. Но идет активная работа, и вскоре будет доступен и третий. Пока статья дорабатывается, подробнее о запуске с третьим вариантом вы можете прочитать на форуме Klei .

Конфигурация и запуск для обычного мира (первый вариант)

В данном случае понадобятся два основных каталога сервера:

  1. Каталог с исполняемым файлом сервера
  2. Каталог с настройками и файлами сохранений

Каталоги с исполняемым фалом имеют следующие пути:

  • Windows: C:\dst\server_dst\bin
  • Linux: /home/dst/server_dst/bin

Каталоги с настройками позже получат следующие пути:

  • Windows: %HOMEPATH%\Documents\Klei\DST_Overworld
  • Linux: ~/.klei/DST_Overworld

Для создания каталогов с настройками создадим в каталоге с исполняемым файлом заведомо неработающий скрипт для запуска сервера (start.sh). Это можно сделать через nano (linux) или другой текстовый редактор:

nano start.sh
./dontstarve_dedicated_server_nullrenderer -conf_dir DST_Overworld

Далее необходимо его запустить:

sh start.sh

Серверу не удастся запуститься, но будет создан каталог с настройками.

Скопируйте в созданный каталог полученный ранее файл server_token.txt.

Для изменения настроек мира потребуется создать файл worldgenoverride.lua в том же каталоге. Работа с ним описывается в отдельном пункте.

Далее необходимо указать основные настройки сервера. Сделать это можно путем редактирования файла settings.ini. Зададим ему примерно такое содержание:

[network]
default_server_name = My Don't Starve Server
default_server_description = Welcome
game_mode = survival
max_players = 10
tick_rate = 15
server_port = 10999
server_intention = competitive

Кроме этих параметров, вы можете указать и другие, например, чтобы ограничить доступ к серверу по паролю, ассоциировать сервер с группой и т.д. Пропущенные параметры будут использовать значения по умолчанию.

Теперь, если у вас Linux, модифицируем ранее созданный файл start.sh для работы через screen:

cd /home/dst/server_dst/bin
nano start.sh
screen -S "DST" ./dontstarve_dedicated_server_nullrenderer -conf_dir DST_Overworld -console

Здесь, помимо всего, мы добавили параметр запуска «-console», позволяющий использовать консоль сервера для выполнения игровых консольных команд. Вы можете использовать и другие параметры для запуска, они представлены ниже.

Теперь сервер готов для запуска:

sh start.sh

Затем, вы можете нажать Ctrl+A, затем D, чтобы скрыть сессию работы сервера. Открыть ее повторно можно так:

screen -r DST

Конфигурация и запуск для мира пещер (второй вариант)

Этот вариант практически повторяет предыдущий, нужно внести только несколько изменений.

Работа будет происходить с теми же каталогами, что и в первом случае, но каталог с настройками, для удобства, будет носить имя DST_Caves.

Вместо файла start.sh создадим файл start_caves.sh и заполним его:

nano start_caves.sh
./dontstarve_dedicated_server_nullrenderer -conf_dir DST_Caves

Скопируем в каталог DST_Caves ранее полученный файл с серверным токеном.

Там же создадим файл worldgenoverride.lua. Он будет аналогичен этому же файлу для обычного мира, но нужно добавить в него следующую строку после «return»:

return {
 preset="DST_CAVE",

Теперь проделайте следующие шаги в соответствии с первым вариантом конфигурации, но не забывайте, что каталог настроек теперь носит имя DST_Caves.

Параметры файла settings.ini

Настройки разделены на различные категории, которые обозначаются в файле в квадратных скобках. Убедитесь, что заносите настройки под правильную категорию.

[network]

Название сервера (на английском)

default_server_name = ...

Описание сервера (на английском)

default_server_description = ...

Порт, используемый сервером (от 1024 до 65535, стандартный - 10999)

server_port = 10999

Пароль для входа на сервер

server_password = ...

Максимальное количество игроков (от 1 до 64)

max_players = ...

Включить режим PvP

pvp = [ true | false ]

Режим игры

game_mode = [ endless | survival | wilderness ]

Снапшоты (snapshots) позволяют вернуть сервер к более раннему состоянию. Эта фича довольно новая, так что используйте с опаской

enable_snapshots = [ true | false ]

Делать сохранения в начале каждого игрового дня

enable_autosaver = [ true | false ]

Tick rate - качество вашего сервера. Чем выше, тем больше потребление ЦПУ, но тем более плавно и гладко выглядит игра для пользователей.

tick_rate = [ 10 | 15 | 30 | 60 ]

Время в миллисекундах, которое нужно выждать, прежде чем отключать пользователя, который "повис" (не отвечает на сетевые запросы сервера)

connection_timeout = 8000

Какую игровую ячейку использовать (1-5)

server_save_slot = ...

Когда нет администратора, игроки могут кикать вандалов путем голосования

enable_vote_kick = [ true | false ]

Ставить ли сервер на паузу, когда он совсем пустой

pause_when_empty = [ true | false ]

Идея сервера (кооператив, социальный, соревновательный, безумие)

server_intention = [ cooperative | social | competitive | madness ]

Привязать сервер к группе в Steam. Участники этой группы будут отображаться вверху списка игроков, если зайдут на ваш сервер (см. подробнее)

steam_group_id = GroupID

Разрешить вход на сервер только для участников группы в Steam

steam_group_only = [ true | false ]

[account]

Позволить играть только по локальной сети. В этом случае серверу не требуется токен для авторизации, и он не будет указан в списке серверов

dedicated_lan_server = [ true | false ]

Установить серверный токен (аналог server_token.txt)

server_token = ...

Параметры запуска

Какой порт использовать

-port [ 1024 .. 65535 ]

Перезаписать значение tick rate

-tick [ 15 .. 60 ]

Изменить максимальное количество игроков

-players [ 1 .. 64 ]

Указать серверу возможность игры только по локальной сети

-lan

Указать серверу другую папку с настройками

-conf_dir ...

Установить другой каталог для хранилища данных. Например, в Windows стандартно хранилище находится в папке Documents/Klei. Используется совместно с параметром -conf_dir для генерации пути, по которому будут храниться файлы

-persistent_storage_root ...

Включить использование консольных команд прямо в окне сервера

-console

При запуске только обновить серверные моды

-only_update_server_mods

Пропустить обновление серверных модов при запуске сервера

-skip_update_server_mods

Изменение настроек мира

Для генерации изменённого мира в выделенном сервере, как уже говорилось ранее, необходимо создать файл в директории настроек сервера с названием «worldgenoverride.lua». Он должен сдержать параметр «override_enabled», к которому присвоено значение true или false, и другие параметры содержащие настройки мира.

Пример:

return {
  override_enabled = true,

  misc = {
    season = "shortboth", 
    world_size = "huge", 
    season_start = "summer" 
  },

  resources = {
    flint = "never",
    grass = "never",
    sapling = "never",
    trees = "never"
  }
}

Полная таблица параметров мира:

return {
  override_enabled = true,

  animals = { -- "never", "rare", "default", "often", "always"
    alternatehunt = "default",
    angrybees = "default",
    beefalo = "default",
    beefaloheat = "default",
    bees = "default",
    birds = "default",
    butterfly = "default",
    buzzard = "default",
    catcoon = "default",
    frogs = "default",
    hunt = "default",
    lightninggoat = "default",
    moles = "default",
    penguins = "default",
    perd = "default",
    pigs = "default",
    rabbits = "default",
    tallbirds = "default"
  },

  misc = {
    boons = "default", -- "never", "rare", "default", "often", "always"
    branching = "default", -- "never", "least", "default", "most"
    day = "default", --"onlyday", "onlydusk", "onlynight", "default", "longday", "longdusk", "longnight"
    frograin = "default", -- "never", "rare", "default", "often", "always"
    lightning = "default", -- "never", "rare", "default", "often", "always"
    loop = "default", -- "never", "default", "always"
    season = "default", -- "onlysummer", "onlywinter", "default", "longsummer", "longwinter", "longboth", "shortboth"
    season_start = "autumn", -- "default", "winter", "spring", "summer", "random"
    touchstone = "default", -- "never", "rare", "default", "often", "always"
    weather = "default", -- "never", "rare", "default", "often", "always"
    world_size = "default", -- "default", "medium", "large", "huge"
    wildfires = "default" -- "never", "rare", "default", "often", "always"
  },

  monsters = { -- "never", "rare", "default", "often", "always"
    bearger = "default",
    chess = "default",
    deciduousmonster = "default",
    deerclops = "default",
    dragonfly = "default",
    goosemoose = "default",
    hounds = "default",
    krampus = "default",
    liefs = "default",
    lureplants = "default",
    merm = "default",
    spiders = "default",
    tentacles = "default",
    walrus = "default"
  },

  resources = { -- "never", "rare", "default", "often", "always"
    flint = "default",
    flowers = "default",
    grass = "default",
    marshbush = "default",
    meteorshowers = "default",
    meteorspawner = "default",
    reeds = "default",
    rock = "default",
    rocks = "default",
    sapling = "default",
    trees = "default",
    tumbleweed = "default"
  },

  unprepared = { -- "never", "rare", "default", "often", "always"
    berrybush = "default",
    cactus = "default",
    carrot = "default",
    mushroom = "default"
  }
}

Несколько серверов на одной машине

Для запуска нескольких выделенных серверов на одной машине, нужно указать альтернативную директорию с настройками, для этого при запуске сервера следует указать параметр запуска «-conf_dir».

Чтобы указать параметр запуска в Steam, необходимо открыть свойства ранее установленного инструмента «Don’t Starve Together Dedicated Server» и нажать кнопку «Установить параметры запуска».

Пример использования:

-conf_dir YourServerName

Соответствующие каталоги с настройками серверов будут храниться:

  • В Windows: %HOMEPATH%\Documents\Klei\DST_Overworld
  • В Linux: ~/.klei/DST_Overworld

Также не стоит забывать о необходимости наличия файла server_token.txt в каждом из таких каталогов.

Моды

Выделенный сервер также поддерживает модификации и может устанавливать их автоматически с помощью файла dedicated_server_mods_setup.lua, расположенного в каталоге mods. Этот файл используется при старте сервера и осуществляет загрузку модификаций или их коллекций, указанных в файле.

Пример файла:

ServerModSetup("345692228")
ServerModSetup("346968521")
ServerModSetup("352373173")
ServerModCollectionSetup("379114180")

При изменении версии модификации в Мастерской, выполняется только обновление, что позволяет сократить время запуска сервера. Все скачанные модификации устанавливаются на сервер, но по умолчанию они не включены.

Есть два параметра командной строки, которые служат для выбора типа управления файла dedicated_server_mods_setup.lua. Они предназначены для использования хостами, на которых запущено несколько выделенных серверов.

-skip_update_server_mods — пропускает обновление модификаций и их коллекций
-only_update_server_mods — обновляет установленные моды

Существует два варианта включения модификаций на выделенных серверах. Первый способ заключается в изменении файла modsettings.lua в директории модификаций сервера. Пример включения модификаций:

ForceEnableMod("workshop-345692228")
ForceEnableMod("workshop-346968521")
ForceEnableMod("workshop-352373173")

Примечание: для того что бы пользователи имели возможность скачать недостающие моды, названия директорий модификаций должны оставаться без изменений.

Второй способ заключается в использовании файла modoverrides.lua. Данный файл необходимо создать в папке с настройками сервера. Пример содержания файла:

return {
  ["workshop-350811795"] = { enabled = true },
  ["workshop-387028143"] = { enabled = true },
  ["workshop-361336115"] = { enabled = true,
    configuration_options =
    {
      hunt_time = 6,
      ["String Phrase Option Name"] = "some value",
    }
  },
  ["workshop-336882447"] = { enabled = true }
 }

Примечания

Если после запуска ваш сервер не видно другим пользователям в интернете и вам в списке локальных серверов, однако он виден на сайте https://my.jacklul.com/dstservers , попробуйте следующее:

  • Отключите брандмауэр или добавьте DST в список исключений для входящих и исходящих на порт 10999 (или тот порт, который указали в настройках сервера);
  • Если у вас стоит роутер, сделайте проброс портов в нем. Например, для роутера D-Link это делается так: заходим на роутер, Расширенные настройки --> Межсетевой экран --> DMZ. Ставим галочку напротив "Включено". В выпадающем меню IP адрес выбираем IP своего компьютера. Нажимаем кнопку Изменить. Сохраняем изменения и перезагружаем роутер.
  • Если все вышеописанное не помогло, возможно ваш провайдер закрыл порт 10999. Пробуйте другие порты.
  • При просмотре игр дождитесь появления Онлайн серверов, а потом переходите в LAN.

Администрирование

Выделенные серверы могут удаленно управляться через клиент игры. Пользователь, который генерирует токен сервера, автоматически получает права администратора. Администратор имеет возможность кикать и банить пользователей в игре, а также удаленно использовать команды на сервере.

ВНИМАНИЕ: Предоставляйте права администратора только тем, кому бы вы доверили полный доступ к своему серверу/компьютеру. Разработчик может добавить режим "модератора" с ограниченными полномочиями в будущем.

Чтобы иметь возможность предоставлять права администратора другим пользователям, владелец сервера должен создать файл adminlist.txt в директории:

  • Windows: %HOMEPATH%\Documents\Klei\DST_Overworld\Save
  • Linux: ~/.klei/DST_Overworld/Save

Чтобы предоставить права администратора пользователям, нужно добавить идентификаторы пользователей в созданный файл. Перечислите каждый KU_ идентификатор в новой строке.

Будучи администратором, можно отправлять удаленные команды на сервер, выполнив следующие действия:

  • Подключиться к миру через клиент
  • Открыть консоль (~)
  • Нажать левую клавишу CTRL, чтобы войти в режим удаленного управления (удаленно: появляется слева)
  • Команда будет отправлена на сервер и выполнена, если пользователь имеет права администратора
  • Для получения полного списка консольных команд см. консоль

FAQ

  • Возможно ли запустить сервер в LAN режиме?

Да, LAN режим может быть переключен в settings.ini, если добавить строку в модуль [account]:

dedicated_lan_server = true

Помните, локальный сервер не отображается в онлайн серверах. Но владелец МОЖЕТ видеть его в опции "LAN" в просмотре серверов Don't Starve Together.

  • Как узнать KU_ идентификатор?

В главном меню игры нажать на пункт "Учетная запись", Откроется оверлей steam с информацией о вашем аккаунте (Klei). Где будет поле UserID формата KU_********. Также, KU_ идентификаторы заходящих игроков записываются в лог и консоль сервера.

Элементы геймплея
Занятия Готовка пищиСоздание предметовСонФермерствоРыбалка
Окружение БиомыДождьЗемлетрясениеЗимаКошмарный циклЛетоЛунный циклМолнияЦикл день/ночь
Механика ВкладкиГоловоломкиСытостьДревесный голодЗамерзаниеЗдоровьеИгровой инвентарьКартаМоргНевозобновляемые ресурсыОгоньОпытПерсонажиПорча продуктовПредметыПрочностьРассудокСветСмертьСохранениеУправлениеШалостиЭкран при генерации мира
Reign of Giants ВеснаВлажностьГорение построекДождь из лягушекЛетоОсеньПерегревЗамерзаниеЗима
Shipwrecked ОтравлениеВолнаСильные ветрыВулканУмеренный сезонСезон урагановСезон муссоновЗасушливый сезон
Don't Starve Together Коллекция одеждыМетеоритный дождьПризрак (состояние)Режим сервера (Выделенный сервер) • ЧумаЭмоцииРазрастаниеПесчаная буря
Режимы Режим приключенияРежим выживанияПещерыРуиныМультиплеер

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на Фэндоме

Случайная вики