Описание сервера раст как сделать красиво
Приветствую вас, друзья! Раст меняется и мы вместе с ним. Уже давно есть определённый набор команд для Rust New (известный как Experimental ранее)! Мы решили для вашего удобства использовать прежние страницы Rust Legacy с разделением их на Rust Experimental и Rust Legacy.
Чтобы использовать в Rust консольные команды, необходимо вызвать саму консоль, нажав на клавиатуре клавишу F1 (вне зависимости от версии Rust).
Значения команд можно разделить на несколько видов:
- [Boolеan] — Логический — может иметь два значения: включить и выключить. Значение true (или, что то же самое, 1) задействует параметр, значение false (или, что то же самое, 0) отключает.
- [Value] — Числовой — Значения могут быть как положительными, так и отрицательными. Учтите, что в некоторых командах диапазон возможных значений ограничен их функциональностью.
- [Player Name] — имя игрока.
- [Item ID] — Steam ID (номер профиля в Steam)
- [Text] — текстовый. Здесь можно разместить любой текст.
- [Col] — В данном параметры допускаются только цифровые значения не >1.
Некоторые команды используются только для клиента, некоторые только в консоли сервера, а третьи — в обоих случаях.
Консольные команды Rust New или просто Rust
Консольные команды Rust Experimental
Общие команды (основные)
Команда | Тип | Описание команды |
client.connect [Server IP] : [Server Port] |
global.clperf
perf
Команды настройки клиента
Команды для разработчиков
Команда | Тип | Описание команды |
developer [Boolеan] global.developer [Boolеan] | К | Показывает некоторую информацию для разработчиков. |
vis.attack [Boolеan] | К | Отображает траекторию полёта пуль., работает только в режиме разработчика (developer) или отладки. |
vis.damage [Boolеan] | К | Отображает нанесённый урон, работает только в режиме разработчика (developer) или отладки. |
vis.metab [Boolеan] | К | Отображает информацию по метаболизму, работает только в режиме разработчика (developer) или отладки. |
vis.triggers [Boolеan] | К | Отображает триггеры, работает только в режиме разработчика (developer) или отладки. |
debugmode [Boolеan] global.debugmode [Boolеan] | К | |
dev.culling [Value] | К | |
dev.hidelayer [Value] | К | |
dev.netgraph [Boolеan] | К | Отображает качество связи с сервером. |
dev.sampling [Value] | К | |
dev.shaderlod [Value] | К | Команда больше не поддерживается. |
dev.showlayer | К | Отображает количество игроков на сервере. |
dev.togglelayer [Value] | К | |
cui.test | К/С | |
data.export [Value] | К | |
ddraw.arrow [Value] | ||
ddraw.line [Value] | ||
ddraw.sphere [Value] | ||
ddraw.text [Value] | ||
entity.debug_toggle [Value] | К | Включение отладки объектов |
Админские команды
Список команд, который доступен только администраторам серверов.
terrain.pvt false или true
Если выключить данный параметр, то это сильно повысит FPS. Дело в том, что PVT — это технология, смешивающая разные текстуры (например разные биомы) так, чтобы это выглядело нормально. А вообще, эта команда управляется в меню F2 под названием Pprocedural Virtual Texturing (PVT).
graphics.quality 1 — 5
Команда меняет качество графики. 1 — ничего особенного для производительности, 5 — фантастика для глаз!
Вот, пока всё с командами для Rust. Далее кусок старой статьи про старый добрый Rust, который теперь зовётся Rust Legacy.
Консольные команды старого доброго Rust Legacy
Команды для игроков
ВНИМАНИЕ! Запись вида true/false не означает, что так и надо писать, это значит у команды есть два возможных значения! Вводить надо либо true, либо false. И ещё, если ник игрока содержит пробелы, необходимо заключать его в кавычки!
- Для того, чтобы убить себя введите консольную команду suicide;
- Для того, чтобы включить/выключить траву введите grass.on false true/false (иногда срабатывает не с первого раза, пробуйте туда-сюда для достижения желаемого результата);
- Для того, чтобы включить/выключить движение травы введите grass.displacement true/false;
- Для подключения к серверу введите net.connect IP (где IP — адрес сервера в виде 192.168.1.1, команда удобна в случае, когда вам лень искать в списке нужный сервер);
- Чтобы выйти из игры Rust введите в консоли команду exit или quit;
- ВНИМАНИЕ! Для отключения/включения цензуры введите в консоли команду censor.nudity false/true (данная команда и веселит и приносит пользу, т.к. голых игроков легче различать на большом расстоянии);
- Чтобы включить/выключить интерфейс игры введите gui.show или gui.hide;
- Отключиться от текущего сервера можно командой консоли net.disconnect;
- А подключиться к последнему посещенному серверу просто введите в консоли команду net.reconnect.
Остальные консольные команды в Раст (Rust), а их не так и много, для игроков не несут особого значения, поэтому мы их подробно рассматривать не будем, а просто перечислим: terrian.idleinterval 0-100, gui.show_branding, gui.hide_branding.
Команды для чата в игре Rust:
Чат вызывается простым нажатием клавиши Enter во время игры.
Консольные команды для админа сервера Rust:
Вот, собственно, пока и все! Пользуйтесь на здоровье! Удачи вам на просторах игры Rust, выживайте и другим помогайте. Ну или что вы там ещё делаете, главное — не читерите! =)
В этой теме я расскажу, как создать свой сервер Rust Experimental с модами. Зачем это надо? Ну, как минимум, если вы играете в Раст, то у вас появляется множество идей, которые гораздо удобней тестить на своем сервере с бесконечными ресурсами и возможностью летать. А если пойти дальше, то вы cможете сделать свой сервер популярным и получать реальные деньги за продажу игровых плюшек игрокам своего сервера.
Далее в блокноте нажимаем "Сохранить как. " и сохраняем файл с именем "start server.bat" расширение "Все файлы".
Появившийся файлик "start server.bat" и есть пусковый файл для вашего сервера. При нажатии на него откроется снова черное окошко командной строки и пойдет создание карты и запуск сервера. О том, что сервер готов к работе, можно узнать, глядя на счетчик фпс справа-внизу окошка: при загрузке он будет показывать 0 fps, а после окончания появится цифровое значение, например у меня это 262 fps.
5. Далее нужно узнать свой внешний IP-адрес.
Допустим, вы зашли на один из сервисом определения IP адреса, и ваш адрес оказался 213.180.193.11
Открываем Rust и жмем кнопку F1, в открывшейся консоли вводим команду client.connect 213.180.193.11:28015
Если все сделано верно, то пойдет подключение и вы окажетесь на своем собственном сервере
P.S.: Папка с файлами вашего сервера (сейв и тд) будет находиться по адресу C:\Games\Rust_Server\Server\rustds\server\Hello_World
Часть вторая: Админка
Часть третья: Добавляем моды.
1. Переходим на сайт разработчика модов Oxide и скачиваем архив патча Oxide-Rust.zip , позволяющий запускать моды (жмем справа кнопку Download Now).
2. Распаковываем содержимое архива в папку C:\Games\Rust_Server\Server\rustds с заменой файлов.
ВАЖНО: Патч Oxide постоянно обновляется и с каждым обновлением его необходимо снова скачивать и копировать в папку с заменой.
3. Переходим в раздел сайта , посвященный модам для Rust.
Скачиваем любые понравившиеся вам моды. На странице каждого мода есть инструкция по его использованию.
Например, если вы создали сервер для практики в постройке крепостей, я рекомендую вот эти моды:
a) Ремув (удаление) стен и других объектов.
b) Увеличение размера стака предметов.
c) Телепортация к сохраненной точке или к другому игроку
d) Апгрейд стен одним ударом киянки, без необходимости использования колеса
e) Апгрейд строения целиком (всё сразу в камень или всё сразу в железо и т.д.)
Скачанные моды копировать в папку
C:\Games\Rust_Server\Server\rustds\server\Hello_World\oxide\plugins
где Hello_World - это папка с названием вашего сервера.
В статье будет показано как создать gRPC сервер и клиент на Rust. Для большей наглядности клиент будет также Telegram ботом. В итоге будет получена следующая архитектура:
Статья является не всеобъемлющим руководством по gRPC в Rust, а скорее практическим гайдом, демонстрирующим основы и как создать приложение на основе gRPC.
Доменная модель включает данные о планетах Солнечной системы и их спутниках.
Существует несколько реализаций gRPC на Rust. В этом проекте был использован tonic .
Проект включает следующие модули:
Последний модуль содержит определение gRPC сервиса и отвечает за генерацию gRPC кода необходимого и для сервера, и для клиента.
Определение сервиса и генерация кода
Определение сервиса написано на версии proto3 Protocol Buffers и находится в .proto файле:
Здесь определены простые ( unary ) RPC ( GetPlanetsList и GetPlanet ), server-side streaming RPC ( GetPlanets ) и структуры для передачи необходимых данных. Структуры содержат поля как некоторых обычных типов ( uint64 , string , etc.), так и:
- перечисление ( Planet.type )
- список ( Planet.satellites )
- бинарные данные ( Planet.image )
- тип date/timestamp ( Satellite.first_spacecraft_landing_date )
Для настройки генерации серверного и клиентского gRPC кода сначала добавим следующие зависимости:
Библиотека prost-types позволяет использовать некоторые из well-known типов Protobuf, такие как Empty и Timestamp .
В корне модуля должно быть расположено следующее:
Создадим модуль, который будет содержать сгенерированный код и будет использован серверным и клиентским приложениями:
После запуска сервера или клиента вы можете найти сгенерированный код в файле /target/debug/build/solar-system-info-rpc/out/solar_system_info.rs . Например, для создания сервера вам нужно будет имплементировать сгенерированный трейт SolarSystemInfo :
Сгенерированный трейт SolarSystemInfo
Сгенерированные структуры, используемые функцией get_planet , выглядят так:
Сгенерированные структуры для функции get_planet
gRPC сервер
Функция main сервера представлена ниже:
Имплементация трейта SolarSystemInfo (был показан в предыдущем разделе) выглядит так:
Здесь определена кастомная SolarSystemInfoService структура, которая имеет доступ к БД с помощью Diesel ORM.
Напомню, что get_planets_list и get_planet являются примерами простых RPC, а get_planets — server-side streaming RPC.
Изображения планет включаются в бинарник приложения во время компиляции с помощью библиотеки rust_embed (при разработке они загружаются из файловой системы).
gRPC клиент
gRPC клиент в модуле bot создаётся так:
Далее он может быть использован так:
Telegram бот
Как было отмечено ранее, для большей наглядности gRPC клиент является также и Telegram ботом. Для имплементации бота использована библиотека teloxide.
Перейдём сразу к main.rs :
Вы можете запустить проект локально двумя способами:
- используя Docker Compose ( docker-compose.yml ):
docker-compose up - без Docker
Запустите gRPC сервер и клиент с помощью cargo run
Запросы к серверу можно выполнять используя какой-либо gRPC клиент (например, BloomRPC):
или делать это косвенно с помощью Telegram бота:
Соответствие между командами бота и RPC следующее:
- /list → GetPlanetsList
- /planets → GetPlanets
- /planet → GetPlanet
Для тестирования приложения с помощью бота вам нужен Telegram аккаунт и собственный бот (введение в эту тему здесь). В зависимости от выбранного способа запуска, токен бота должен быть указан здесь или здесь.
CI/CD сконфигурировано с использованием GitHub Actions (workflow), который собирает Docker образы gRPC сервера и клиента (то есть Telegram бота) и разворачивает их на Google Cloud Platform.
Бота можно протестировать здесь.
В статье я показал как создать gRPC сервер и клиент на Rust и привёл пример использования клиента как источника данных для Telegram бота. Не стесняйтесь написать мне, если нашли какие-либо ошибки в статье или исходном коде. Спасибо за внимание!
Сервер установится в папку ./RustServer , или можете указать другую. Размер закачки около 2ух GB.
После чего необходимо создать *.bat файл рядом с файлом RustDedicated.exe , со следующим содержимым:
Настраиваем сервер (читаем ниже), или запускаем как есть.
Можно изменить название сервера и количество игроков, используйте следующие команды непосредственно в консоли сервера (в окне что открылось после запуска *.bat файла):
server.hostname " My Personal Server "
Используйте команду консоли ( F1 ) в игре для подключения к локальному серверу:
- kick "Name" - прогнать игрока "Name"
- kickall - сбросить всех
- ban "Name" - забанить игрока "Name"
- banid "Steam ID" - забанить по идентификатору Steam
- status - Список игроков
- say - Написать в чат от имени сервера
- users - Информация о пользователях
- banlist - Список забаненых
- banlistex - Список забаненых с причинами
- listid - Список забаненых по идентификатору Steam
- event.run - Запуска аирдропа для сброса в точку с координатами (0,0,0), самолет летит из случайного направления.
- server.port "28015" - Порт сервера
- server.maxplayers 500 - Максимальное количество игроков
- server.hostname "My Personal Server" - Название сервера в списке
- server.identity "SomeString" - Идентификатор сервера для сохранений в папке сервера в подпапке "server", пример: /SteamCMD/RustServer/server/SomeString
- server.level - ?
- server.seed 123456 - Строчка для уникальности генерации
- server.saveinterval 3600 - Интервал сохранений в секундах (тут указан час)
- server.secure - защита сервера VACом
- server.tickrate - частота тиков (для fps) на сервере
- server.start -
запустить сервер - server.stop -
приостановить сервер - server.writecfg - сохраняет текущую конфигурацию в файл (в папке-идентификаторе сохранения в каталоге cfg, см. выше)
- inventory.give - Получение предмета, синтаксис уточняется. Необходимо знать идентификаторы предметов.
- gc.collect - Удаление мусора из памяти сервера
- construct.frameminutes 600 - время в минутах до разрушения построенного игроком объекта
- server.pvp "true/false" - включить/выключить режим ПвП на сервере
- sleepers.on "true/false" - включить/выключить спящих на сервере
Параметры командной строки для установки начальных параметров, прописать в *.bat нужное (по подсказке-примеру Гарри на форуме):
RustDedicated.exe -batchmode +server.hostname "Facepunch Dev Server" +server.port 29015 +server.identity "facepunchdev" +server.seed 6738 -logFile "output.txt"
Так же можно добавлять и описанные ранее команды консоли, или посмотреть что это значит, команды консоли через "+", параметры командной строки через "-"
Из примера:
-batchmode - запуск сервера без графической системы
-logFile "output.txt" - файл отчетов сервера
Не копировать из предыдущего примера от Гарри, иначе возникнет путаница, помните, стандартный порт - 28015, а RCON - 28016, берем следующее содержимое и меняем название, профит, у вас настроеный сервер готовый к запуску:
RustDedicated.exe -batchmode +server.hostname "Самый крутой сервер!" +server.port 28015 +server.identity "myserver" +server.seed 666 -logFile "output.txt"
Ваша задача сводится к тому что нужно скачать сервер и создать *.bat файл с этим содержимым. Не забудьте о пробросе портов, если сервер в домашних условиях.
Читайте также: