Консоль сервера
Часть имени ищется командой find. Она печатает всё, где есть этот кусок:
find connect
Обозначения
В таблицах угловые скобки — место, которое нужно заполнить. Квадратные можно пропустить.
| Запись | Что подставить |
|---|---|
<игрок> | ник или SteamID того, кто сейчас на сервере |
<SteamID> | Steam64, человек может быть офлайн |
<предмет> | короткое имя предмета |
<длительность> | число и суффикс |
Суффиксы времени: s секунды, m минуты, h часы, d дни, w недели, M месяцы, Y годы. 30m — полчаса, 7d — неделя.
Колонка «Где» говорит, откуда команда принимается:
| Буква | Откуда |
|---|---|
C | консоль F1 в клиенте |
S | только консоль сервера |
CS | и клиент, и сервер |
Админские команды из F1 слушает только тот, кого записали через moderatorid или ownerid. Служебные analytics.* и profile.* из F1 не выполняет даже владелец.
Команды для всех игроков
Их может ввести любой в F1.
| Команда | Где | Что делает |
|---|---|---|
client.connect <IP:порт> | C | зайти на сервер по адресу |
chat.say <текст> | C | строка в общий чат. Молчит, если чат выключен (chat.globalchat false) |
kill | C | убить своего персонажа. Повтор не сразу |
craft.cancel <ItemID> | C | убрать предмет из своей очереди крафта |
quit | C | закрыть игру |
Административные команды
Информация о сервере и игроках
| Команда | Где | Что делает |
|---|---|---|
status [фильтр] | CS | таблица онлайн: SteamID, ник, пинг, время сессии, IP, счётчик antihack. Без фильтра сверху имя сервера, карта и число людей. Фильтр ищет ник, SteamID или IP. Флаг --json отдаёт таблицу JSON |
players | CS | короткий список: SteamID, ник, пинг и очередь обновлений |
users | CS | строки вида SteamID:"ник" |
Управление игроками
| Команда | Где | Что делает |
|---|---|---|
say <текст> | CS | сообщение в общий чат от имени SERVER |
global.god <true/false> | C | бессмертие. Действует на админов и разработчиков |
mute <игрок> [длительность] | CS | запрет чата. Без срока — навсегда, например mute Player 2h |
unmute <игрок> | CS | вернуть чат |
kick <игрок> [причина] | CS | выкинуть. Причина видна в общем чате |
kickall [причина] | CS | выкинуть всех |
killplayer <игрок> | CS | убить указанного |
injureplayer <игрок> | CS | перевести указанного в состояние «ранен» |
injure | C | то же со своим персонажем |
sleep | C | уложить своего персонажа спать |
Баны
| Команда | Где | Что делает |
|---|---|---|
ban <игрок> [причина] [длительность] | CS | бан и кик. Без срока бан бессрочный. Если вход был через Steam Family Sharing, бессрочно банится и владелец копии |
banid <SteamID> [ник] [причина] [длительность] | CS | бан по SteamID, в том числе если человека сейчас нет |
unban <SteamID> | CS | снять бан |
banlist | CS | SteamID забаненных |
banlistex | CS | баны с никами и причинами |
listid | CS | тот же список в формате SRCDS |
ban, banid и unban записывайте на диск командой server.writecfg, иначе после рестарта список может откатиться.
Плагины банов удобнее для срока и причины в чате. Встроенные команды нужны, когда плагин не загрузился. Общий список банов Facepunch для нескольких серверов — отдельная статья Централизованные баны.
Выдача предметов
| Команда | Где | Что делает |
|---|---|---|
inventory.giveall <предмет> [количество] | CS | выдать предмет каждому на сервере |
inventory.giveto <игрок> <предмет> [количество] [скин] | CS | выдать одному |
inventory.givebp <предмет> | C | выдать себе чертёж |
inventory.giveid <ItemID> [количество] | C | выдать себе предмет по ItemID |
Все четыре пишут о выдаче в общий чат. Без объявления проходят только inventory.givebp и inventory.giveid.
Крафт
| Переменная | Где | По умолчанию | Что делает |
|---|---|---|---|
craft.instant <true/false> | CS | false | админ и модератор крафтят каждый предмет за 1 секунду. Обычных игроков не касается |
Права доступа
| Команда | Где | Что делает |
|---|---|---|
ownerid <SteamID> [ник] [причина] | CS | уровень 2. Если человек уже на сервере, права приходят сразу, перезаход не нужен. Из F1 команду принимает только владелец |
removeowner <SteamID> | CS | снять уровень 2. Может и модератор |
moderatorid <SteamID> [ник] [причина] | CS | уровень 1, тоже сразу |
removemoderator <SteamID> | CS | снять уровень 1 |
WARNING
Модератор вызывает те же админские команды, что и владелец, кроме ownerid и removeowner.
После выдачи выполните server.writecfg, чтобы запись осталась в users.cfg.
Сервер и игровой мир
| Команда | Где | По умолчанию | Что делает |
|---|---|---|---|
server.save | CS | — | записать мир на диск |
server.writecfg | CS | — | записать в serverauto.cfg то, что игра помнит сама. Имя, сид и размер карты туда не входят, они остаются в server.cfg |
restart [секунды] [сообщение] | CS | 300 | отсчёт, предупреждения, кик всех и quit. restart -1 отменяет запущенный отсчёт |
quit | S | — | остановить сервер: кик, сохранение мира, server.writecfg |
server.radiation <true/false> | CS | true | радиация на монументах |
decay.scale <множитель> | CS | 1 | скорость гниения. 0 останавливает, 2 ускоряет вдвое |
Имя, сид и размер мира задаются в server.cfg. Разбор этих полей — в статье Конфигурация сервера.
Телепортация
| Команда | Где | Что делает |
|---|---|---|
teleport <игрок> | C | прыгнуть к игроку |
teleport <игрок1> <игрок2> | CS | отправить первого ко второму |
teleportpos <X> <Y> <Z> | C | прыгнуть в точку |
teleport2me <игрок> | C | притянуть игрока к себе |
Остальные команды перемещения собраны в статье Телепорт.
Погода
Готовые типы, шансы и ползунки неба вынесены в статью Погода.
Объекты и события
Объект в точке создаётся так:
entity.spawn bradleyapc 100,20,3000,0,0 — центр координат карты. Полный список префабов — в статье Сущности.
Bradley APC
| Команда | Где | По умолчанию | Что делает |
|---|---|---|---|
bradley.enabled <true/false> | CS | true | танк появляется сам |
bradley.respawndelayminutes <минуты> | CS | 60 | пауза после уничтожения |
bradley.respawndelayvariance <минуты> | CS | 1 | случайный сдвиг в обе стороны. При 60 и 1 танк возвращается через 59–61 минуту |
Патрульный вертолёт
| Команда | Где | По умолчанию | Что делает |
|---|---|---|---|
heli.calltome | C | — | позвать вертолёт к себе |
heli.call | C | — | выпустить его по обычному маршруту |
heli.strafe | C | — | текущий вертолёт бьёт по вашей точке |
heli.lifetimeminutes <минуты> | CS | 30 | сколько минут он на карте. Пока по нему стреляют, отсчёт ждёт 3 минуты после последнего попадания. 0 убирает вертолёт |
heli.bulletaccuracy <градусы> | CS | 2 | разброс. Больше градус — хуже попадает |
heli.bulletdamagescale <множитель> | CS | 1 | множитель урона очереди |
Грузовой корабль
| Команда | Где | По умолчанию | Что делает |
|---|---|---|---|
spawn.cargoshipevent | CS | — | запустить корабль сейчас. При cargoship.event_enabled false или длительности 0 он пропадёт через секунду |
cargoship.event_enabled <true/false> | CS | true | событие включено |
cargoship.event_duration_minutes <минуты> | CS | 50 | сколько длится заход. 0 выключает событие |
cargoship.egress_duration_minutes <минуты> | CS | 10 | сколько минут корабль уходит с карты в конце |
ai.npc_spawn_on_cargo_ship <true/false> | CS | true | учёные на палубе |
Рождественское событие
| Команда | Где | По умолчанию | Что делает |
|---|---|---|---|
xmas.enabled <true/false> | CS | false | праздничное событие |
xmas.refill | CS | — | разложить подарки и наполнить чулки. Нужен xmas.enabled true |
xmas.giftsperplayer <число> | CS | 2 | подарков вокруг игрока за одну раздачу. Спящие, раненые, мёртвые и невидимые пропускаются, уже лежащие подарки не считаются |
xmas.spawnattempts <число> | CS | 5 | попыток найти место на один подарок. На человека уходит произведение подарков и попыток |
xmas.spawnrange <метры> | CS | 40 | радиус вокруг игрока |
Сани Санты
| Команда | Где | По умолчанию | Что делает |
|---|---|---|---|
santasleigh.drop | C | — | вызвать сани к себе |
santasleigh.desiredaltitude <метры> | CS | 60 | нижняя граница высоты |
santasleigh.altitudeaboveterrain <метры> | CS | 50 | высота над рельефом. Сани берут большую из двух |
Управление транспортом
Воздушный шар
| Команда | Где | По умолчанию | Что делает |
|---|---|---|---|
hotairballoon.population <число> | CS | 1 | сколько шаров на сервере |
hotairballoon.outsidedecayminutes <минуты> | CS | 180 | за сколько минут гниение снимает всё здоровье. Отсчёт начинается через 10 минут после горелки. Неполный шар гниёт только снаружи. Полный гниёт везде, если за минуту проехал меньше 2 метров |
hotairballoon.serviceceiling <метры> | CS | 175 | потолок над рельефом |
Миникоптер
| Команда | Где | По умолчанию | Что делает |
|---|---|---|---|
minicopter.population <число> | CS | 0 | сколько миникоптеров |
playerhelicopter.outsidedecayminutes <минуты> | CS | 480 | за сколько минут вертолёт игрока сгнивает на улице |
playerhelicopter.insidedecayminutes <минуты> | CS | 2880 | то же в помещении |
Остальные популяции транспорта — в статье Популяция животных и NPC.
Остальное
Время и ИИ
| Команда | Где | По умолчанию | Что делает |
|---|---|---|---|
env.time <часы> | CS | — | время суток от 0 до 24 |
env.addtime <время> | CS | — | промотать вперёд. Голое число — часы: env.addtime 6. С суффиксом: env.addtime 30m |
env.progresstime <true/false> | CS | — | идёт ли время. false останавливает день и ночь |
env.day <число> | CS | — | день месяца в календаре мира |
env.month <число> | CS | — | месяц |
env.year <число> | CS | — | год |
ai.think <true/false> | CS | true | принимают ли NPC и животные решения. false их «замораживает» в логике |
ai.move <true/false> | CS | true | двигаются ли они. false оставляет на месте |
ai.sensetime в консоли ещё находится через find, сервер это поле не применяет.
Antihack
Полный список: find antihack. Ниже то, что обычно трогают.
| Переменная | Где | По умолчанию | Что делает |
|---|---|---|---|
antihack.enforcementlevel | CS | 1 | реакция на порог: 0 ничего, 1 кик. Значение 2 (бан) в текущей сборке выключено |
antihack.maxviolation | CS | 100 | порог, после которого срабатывает уровень выше |
antihack.relaxationpause | CS | 10 | секунд после нарушения, прежде чем счётчик начнёт падать |
antihack.relaxationrate | CS | 0.1 | на сколько счётчик падает за секунду |
antihack.userlevel | CS | 2 | кого проверять: 0 только обычных, 1 игроков и админов, 2 всех, включая разработчиков |
antihack.admincheat | CS | true | не проверять админа, пока он пользуется админскими возможностями |
antihack.debuglevel | CS | 1 | лог: 0 тишина, 1 только порог, 2 ненулевые, 3 всё кроме noclip, 4 всё |
antihack.flyhack_protection | CS | 3 | полёт: 0 выкл, 1 client, 2 capsule, 3 curve |
antihack.flyhack_penalty | CS | 100 | штраф за каждый метр полёта за тик |
antihack.flyhack_reject | CS | true | откатить движение и вернуть на последнюю точку на земле |
antihack.flyhack_forgiveness_horizontal | CS | 1.5 | допуск по горизонтали. Меньше — больше ложных срабатываний |
antihack.flyhack_forgiveness_vertical | CS | 1 | допуск по вертикали |
antihack.noclip_protection | CS | 3 | проход сквозь объекты: 0 выкл, 1 ray, 2 sphere, 3 curve |
antihack.noclip_penalty | CS | 0 | штраф за метр noclip за тик |
antihack.noclip_reject | CS | true | откатить такое движение |
antihack.speedhack_protection | CS | 3 | скорость: 0 выкл, 1 simple, 2 advanced, 3 ещё и вертикальное плавание |
antihack.speedhack_forgiveness | CS | 2 | допуск скорости. Меньше — больше ложных |
antihack.speedhack_penalty | CS | 0 | штраф за метр лишней скорости за тик |
antihack.speedhack_reject | CS | true | откатить рывок |
Каждое срабатывание прибавляет к счётчику игрока штраф *_penalty, умноженный на метры за этот тик. Если рядом стоит *_reject true, движение ещё и откатывается. Когда счётчик переваливает за antihack.maxviolation, сервер делает то, что записано в antihack.enforcementlevel.
Пример жёсткой реакции на полёт: штраф 100 при откате true быстро доводит обычный прыжок-эксплойт до кика. Допуски лучше не зажимать на сервере с пингом и самодельными транспортами: ложные кики пойдут пачкой.