Space Station 14 Playtest

Space Station 14 Playtest

32 ratings
"Админская Книга" или "ААА ЧТО МНЕ ДЕЛАТЬ?"
By ах ах!
Это руководство предназначено для начинающих педалей\админов\ивентмейкеров, - в общем, всех, кому было бы полезно знать об админской работе в СС14.
2
5
   
Award
Favorite
Favorited
Unfavorite
Итак, тебе дали кнопки..
Этот раздел будет служить вступлением и дисклеймером для всего гайда, т.к. многие люди, зачуяв Неизмеримую Админскую Всеобъемлющую Всесильность (далее - "кнопки"), теряют здравый смысл. Вот несколько принципов, которые поначалу помогут вам пробыть на вашей должности чуууть-чуть побольше :
  • Не будь мудaком! Тут понятно, все мы знаем про мудачество и издевательство над игроками. Не стоит таким заниматься.
  • Если ситуацию можно решить без кнопок - решай без кнопок! Таким образом, даже если что-то пойдет не так и будет хуже, будет трудно обвинить тебя в абузе кнопок, которых ты не касался. Если же ситуация решается только кнопками, используй минимальное их количество. Ты не представляешь к чему может привести простая попытка решить спор медика и СБшника.
  • Не влезай кнопками в поле зрение игроков. Если какой-то ивент не подразумевает призраков и исчезающие и появляющиеся предметы, не стоит делать что-то на глазах игроков, даже если очень хочется. ОСОБЕННО не стоит менять состояние их персонажа без веской на то причины.
  • SS14 - игра про пиксельных космонавтиков, а не работа! Никто, кроме админа (тебя) не знает, как решать дела лучше, так что нет смысла отчитываться перед каждым недовольным простачком. Не заработай себе синдром вахтёра и держись подальше от негатива, который рано или поздно поглотит твою админскую душу если будешь подолгу сидеть.
Я ощущаю долю ответственности за тех, кто будет пользоваться этим гайдом, поэтому не мог не вставить такое предупреждение в начало.
Теперь, можно перейти к самой "книге"!
Итак, тебя привели в чувства и дали кнопки..
Давай пройдёмся по базовым командам, которыми ты будешь пользоваться каждый день, в приблизительном порядке убывания :
Заметка : Многие действия, которые можно сделать БЕЗ команд, можно выполнять и с ними, их я описывать в этом разделе не буду.

Команда
Действие
adminwho
Выводит никнеймы (или сикеи) админов, которые сейчас онлайн.
aghost
Аналогично команде ghost, которая доступна всем, выносит твою душу (если ты был в раунде) и делает тебя призраком, однако у призрака от aghost есть руки и возможность дистанционно просматривать некоторые консоли, например, коммуникации, сканер массы и т.д.
deadmin и readmin
deadmin снимает с тебя кнопки и делает тебя НЕВИДИМЫМ В ADMINWHO, readmin их возвращает.
callshuttle #
Вызвать эвак, где # - кол-во минут до прибытия. Повторное применение отзывает.
customvote a b c...
Создает кастомное голосование вверху-слева. A - название, B - Вариант1, C - Вариант2, и т.д.
delaystart n
Задерживает старт раунда в лобби на N сек.
setgamepreset
Ставит режим следующего раунда. ИГРОКАМ В ЛОББИ ЭТО ВИДНО!. О режимах поговорю позднее.
forcegamepreset
См. setgamepreset, отличие в том, что после использования раунд сразу стартуется.
addgamerule
Добавляет режим или ивент в идущий или следующий раунд. Поговорю об этом так же позже.
endgamerule
Останавливает режим или ивент.
lsobjectives N
Выводит список целей игрока-антага с ником N
addobjective N X
Добавляет игроку-антагу N цель X. Все так же, позже объясню.
ЗАБАААААНИТЬ!
Перед тем, как переходить к более сложным командам и кнопкам, поговорим про Баны.

В SS14 есть два типа банов : БАН, и ДЖОББАН. БАН - это, мать твою, БАН! А Джоббан - это запрет тому или иному игроку играть на той или иной профессии. В случае Джоббана, игрок не будет уведомлён об этом и все еще сможет выбрать профессию в лобби, но не сможет попасть на неё раундстартом (в начале раунда) или выбрать при присоединении.


Команда
Действие
rolebanlist N
Выдает список джоббанов игрока N
roleban N P WORDS
Дает джоббан игроку N на должность P по причине WORDS. Узнать что писать в должность можно тут! [github.com]
departmentban N P WORDS
Джоббанит игрока N на весь отдел P по причине WORDS. Узнать что писать в отделы можно тут! [github.com] (названия папок)

Команда
Действие
banlist N
Выдает список банов игрока N
ban N WORDS P
Дает бан игроку N на время P (в минутах, для пермабана - 0) по причине WORDS.
pardon N
Снимает бан игрока N
Режимы (иногда диктаторские)
Теперь поговорим подробнее об использовании команд setgamepreset и addgamerule :
Сначала разберем режимы setgamepreset
Название
Режим
Extended
Удлиненный режим. В этом режиме игра не будет сама кидать ивенты в раунд. Идеален для ивентов. В народе - Экста.
Secret
Секрет. Мемный режим, который дарит нам лучшие моменты СС14. Игра сама кидает что пожелает из addgamerule, либо рандомом выбирает в начале один из больших режимов.
Sandbox
Песочница. На больший серверах по сути то же самое, что и Экста.
Traitor
Предатель. Мини-синдикат.
Nukeops
Нюкеры. Ядерные опера. Бомбастеры. Вы поняли. Есть шанс раундстартом появиться за нюкера.
Zombie
Зомби. На момент написания гайда его шансы в секрете сломаны и он был отключен до реворка.
Pirates
Пираты. Я, наверное, единственный, кто проводит этот режим, так что делайте это почаще.
Deathmatch
Дезматч. Никаких отличий от Секрета :))

А теперь про addgamerule. Там можно прописать как и режимы сверху, так и новые :

Название
Режим
BasicStationEventScheduler
Спавнер редких игровых ивентов. Стоит во всех режимах игры кроме Эксты.
RampingStationEventScheduler
Спавнер частых игровых ивентов
Suspicion
TTT - Все вооружены, среди вооруженных есть предатели, задача не-предателей найти их и убить.
VentClog
Выпускает жидкости из скрубберов.
PowerGridCheck
Вырубает свет на неопределенный срок.
FalseAlarm
Создает сообщение о ивентах, которых нет на станции.
BluespaceArtifact
Создает на станции или рядом с ней артефакт.
BreakerFlip
Отключает некоторые ЛКП.
DiseaseOutbreak
Выпускает рандомную болезнь рядом с игроком
AnomalySpawn
Спавнит аномалию.
BureaucraticError
Позволяет существование двух хосов, пяти капитанов и т.д.
GasLeak
Какает в рандомном месте рандомным газом.
KudzuGrowth
Спавнит кудзу.
MeteorSwarm
Спавнит метеоритный дождь.
RandomSentience
Дает рандомный объектам гост-роль (роль призрака).
RevenantSpawn
Спавнит ревенанта.
VentCrittersn
Из вентиляция лезут рандомные мобы, от мышей до пауков.
ZombieOutbreak
Оживляет мертвых игроков в виде зомби.
MouseMigration
Крысиный король его персоной.
SpiderSpawn
Спавнит в рандомных местах пауков.
Работа над антагами.
Создать антагов можно и вручную, через райтклик (вы даже не представляете, сколько там в райт-клике.)
.png]

Теперь поговорим про addobjective. Что же туда писать, помимо ника игрока? ЦЕЛЬ! А вот и они :

  • CaptainIDStealObjective
  • KillRandomObjective
  • RandomTraitorAliveObjective
  • DieObjective
  • CMOHyposprayStealObjective
  • RDHardsuitStealObjective
  • NukeDiskStealObjective
  • IDComputerBoardStealObjective
  • MagbootsStealObjective
  • SupplyConsoleBoardStealObjective
  • CorgiMeatStealObjective
  • CaptainGunStealObjective
  • CaptainJetpackStealObjective
  • EscapeShuttleObjective
  • RandomTraitorProgressObjective
С базовым английским, можно догадаться, но если есть жалобы - я распишу.
Для самых пытливых умов![http//%3D+https]

В особо редком случае, может попасться Диона-нюкер. Особенность Дионы заключается в том, что они - пацифисты и не могут выполнять задачу нюкеров. Лечится это через просмотр переменных (vv <EntityUID> или райтклик - debug - view variables) во вкладке "Компоненты сервера". Если добавить CombatModeComponent, пока у моба стоит PacifedComponent, то ничего не сработает.
Менюшка с одной целью..
.png]
Сабж.


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

.png]
Сабж.
Самое интересное и самое сложное..
Компоты... тьфу, м-ля, КОМПОНЕНТЫ!

Для начала, немного теории..
SS14 относится к каждой вещи в игре, от карты самой станции до окурка сигареты, как к объекту. Они равноценны, и единственное что их отличает - это набор компонентов и настройки этих самых компонентов. Игра видит эти объекты как набор цифр (которые вы как админ можете увидеть около имени объекта, вместе с ником управляющего им человека.)
Попробовать себя в роли бога и создать свою тварь вам поможет команда "VV <ID>" либо райтклик - Debug - View Variables.
.png]
99% Времени нас интересует только вкладка "Компоненты Сервера", т.к. это то, чем пользуется сам сервер и игра.
Вот так выглядит менюшка : .png]


Тут вы можете найти существующие, добавить новые и удалить старые компоненты. Каждый компонент выполняет свою функцию и добавляет или удаляет функционал объекту. Например, вы знали, что у любого предмета, которым вы можете ударить кого-то, есть компонент MeleeWeapon, который определяет, что его можно использовать как холодное оружие.
А если вернуться на скриншот, можно увидеть, что призраком меня определяет компонент ghost, а компонент Comm..Console позволяет мне пользоваться коммуникационной консолью в любом месте (т.к. я по логике игры ею являюсь).
Списка компонентов нигде нету, и даже если бы я хотел его создать, вы бы не стали читать такую длинную байду, так что лучший вариант - эксперементировать с ними в безопасных для раунда условиях, могу отметить пару интересный, которых нельзя сделать за два клика в райт-клике :

  • PointLight - Делает объект источником света. Можно настроить силу, радиус и свет.
  • ReplacementAccent - Заставляет объект говорить (если он умеет) как кот\хомяк\зомби, - любое существо, которое говорит по-особому.
  • Hands - Дает объекту возможность иметь руки. Команда addhand в свою очередь их добавляет. Полезно, когда делаешь особого хомяка с двумя пулеметами.
  • Item - Позволяет подобрать объект. Убери его - и его нельзя будет взять в руку. Добавь CanEscapeInventory, и этот объект сможет как мышь или хомяк выбраться из инвентаря владельца.
  • Drunk - Делает пьяным.
В теории можно сделать из игрока ЛКП, Генератор, Рацию Карго, - и все в одном! Главное, хорошенько полазить!
Сила, которая и не снилась твоему отцу....
... Это смайты!
Вы можете делать ужасные вещи с кем угодно, двумя кликами кнопки!
Выглядит менюшка следующим образом : .png]

От взрыва тела, до превращения в фурри, мусорку или фигуру на доске шахмат, - все для креативного наказания нарушетелей. Отлично работает в тандеме с компонентами, т.к. чаще всего добавляет именно их.

У каждой кнопки есть описание при наведении, так что прописывать тут смысла нет. Главное, не нажмите случайно.
А если я хочу нормально админить?
Для этого тоже есть панелька!!
.png]

  • Написать - Написать человеку в Ахелп.
  • Респавн - Респавнит человека.
  • Скрытое послание - Посылает человеку сообщение, а-ля от бога, над его башкой, видимое только ему.
  • Телепортировать сюда\к - интуитивно понятно.
  • Заморозить - Останавливает все действия человека, компонентов в нем, и химикатов в его крови и т.д.
Такое видали?!
И последняя категория в райт-клике - ТРЮКИ!
.png]

  • "Плюсик" - Лечит персонажа на фул хп и дает годмод - он же неубиваемость.
  • ВидеоРилейтед - Отправляет объект в Бразилию. на админ-арену. У каждого админа своя арена.
  • Карточки - Синяя дает полный доступ, серая нулевой.
  • Name, Desc, NameDesc - Позволяет меня название, описание, название и описание объекта. Помните, что у игроков есть айди-карты.
  • Стенка - делает объект статичным. Ну, пока его кто-то не сдвинет.
Сила категории /b/..
На буковку B (бэ, а не вэ), вам открывается совершенно новая менюшка со своими возможностями (в основном для создания карт), сначала поговорим о ней, а потом о самом создании карт.
.png]

  • Возрождение - duh. Возрождение.
  • Спавн сущностей - Меню для знаменитого щитспавна (т.е. просто спавна). Тут можно найти абсолютно любой объект в игре, любой предмет, создать любого ОБРовца, Нюкера и т.д. и наспавнить 70 ядерок с дисками на ЦК.
    Скрин прилагается
    .png]
    На среднюю кнопку можно крутить объект, есть режим удаления, а так же замены объекта.
  • Спавн тайлов - точно такое же меню, только для пола. Автоматически создает грид (поговорим об этом попозже) на позиции первого поставленного в космосе пола.
  • Спавн декалей - меню для спавна всех мелких деталей на полу - от рисунков мелком до кромки пола. Можно настоить смываемость (или несмываемость), цвет и поворот фигуры.
    Скриншот прилагается.
    .png]
  • Дать полный доступ - duh.
  • Призрак - aghost.
  • Переключить освещение - делает Fullbright.
  • Переключить FOV - видеть через стены.
  • Переключить тени - duh.
  • Переключить пол - видеть провода и трубы через пол.
  • Самоубийство - АСУ!
  • Показать спавны - на картах бывают спавны - начальные (раундстартовые) точки спавна профессий, мышей и т.д. Если хотите с ними помеситься, включайте.
  • Показать BB - видеть стены. (по сути)
  • Связать устройства - по сути сильный мультитул, который работает даже на замороженной карте.
Я создам идеальный мир...
Видеорилейтед

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

  • Мапа - сама карта. Вся станция с шаттлами, обломками утилей и т.д. - это мапа. На нее можно прилететь на шаттле с БСС (прыжком), если она открыта для этого (есть компонент FTL), с нее можно так же улететь.
  • Грид - часть мапы, независимая от нее. Например, шаттл карго - это грид, а остаток станции - другой грид. Обломки - тоже гриды и так далее. На самом гриде уже располагаются объекты.

Я рекомендую использовать для маппинга отдельную карту или хотя бы свою арену.
А вот и основные команды для маппинга :
Команда
Действие
mapping id
Создает карту с айди id и тпшает тебя на нее. Убедись, что айди не занят каким-то другим объектом в раунде. Карта по умолчанию заморожена.
mapinit id
Размораживает карту с айди id
rmmap id
Удаляет карту с айди id. ПРОВЕРЯЙТЕ, М-ля, АЙДИ!
loc
Выдает айди карты, на которой вы находитесь, грид, а так же ваши координаты.[/b]
tp
ТП. Вписываете айди карты и координаты.[/b]

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

После того, как вы наделали своих делов, расставили спавны, и т.д., не забудьте перед сохранением сделать :
  • fixgridatmos id - восстанавливает на гриде с айди id атмосферу для дыхания./
  • dock <ID1> <ID2> - стыкует шлюзы грида id1 с гридом id2. Полезно, когда карта в заморозке.
К слову, тот инструмент из меню на B для связывания работает в заморозке, этим и полезен.
Теперь про сохранение :
  • savegrid id path - Сохраняет НА СЕРВЕР грид с айди id. Не сохраняйте то, что вам правда не нужно, иначе прилетит от начальства.
  • savemap id path - Ну вы поняли.
Заклятый враг всех админов...
Прототипы и BQL!!
Прототипы - это способ описать кастомный объект, который вы хотели бы добавить в игру, с помощью текста. Посмотреть их примеры можно на Гитхабе СС14[github.com]. Смысла описывать все тут нету, т.к. там переменных даже больше, чем в компонентах. Однако, пару примеров по Вашим заявкам я приведу :

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

Все прототипы находятся по пути "папка с серваком\Resources\Prototypes\Entities", однако если вы не хотите закодить собственную рассу или новый газ, то нас интересует подпапка "\Objects". В ней то и лежат описания большинства предметов игры. Прототипы хранятся в файлах .yml, открывающихся даже блокнотом, советую для каждого своего прототипа делать отдельный файл, хоть и не обязательно, но так их проще включать\выключать из игры.
Действовать будем как и я в свои годы администрирования : совмещать кражу чужого кода и метод научного самотыка!

Вот, например, прототип кухонного ножа из базовой игры :

- type: entity name: kitchen knife parent: BaseKnife id: KitchenKnife description: A general purpose Chef's Knife made by Asters Merchant Guild. Guaranteed to stay sharp for years to come.. components: - type: Tag tags: - Knife - KitchenKnife - type: Sprite sprite: Objects/Weapons/Melee/kitchen_knife.rsi state: icon - type: Item sprite: Objects/Weapons/Melee/kitchen_knife.rsi - type: GuideHelp guides: - Chef
На его примере и разберём иерархию и синтаксис прототипов :
type - Любая новая инфа о предмете начинается с type. По сути, это тип информации.
type : entity - Информация о самом предмете;
type : Sprite - Информация о спрайте (иконке) предмета;
type : Tag - тэги, по которым его можно найти в поиске.
И так далее...
После type пишутся непосредственно параметры. Для каждого типа они разные. Например, в основной информации, как видно в коде, параметры - это название, айди и описание предмета.
Помимо этого, тут прописывается, если существует, родительский предмет. В этом случае, это написано для того, чтобы наш кухонный нож унаследовал свойства BaseKnife, которые присущи всем ножам (это делается, чтобы не писать одно и то же для каждого ножа).
Прошу обратить внимание, что Sprite и Item, пусть и используют одну и ту же картинку (которые хранятся в .rsi, тоже придуманный Визардами формат, если я не путаю), не смотря на это, они отвечают за разные спрайты. Sprite - это текстура лежащего предмета, а Item - предмета в руках.
GuideHelp, в свою очередь, указывает, будет ли у предмета опция "Помощь" в райтклике, и куда она будет вести (в этом случае, на гайд по Повару).

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

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

BQL - это язык, придуманный Визардами (создателями СС14) для удобства (но вышло неудобство) админов. Он позволяет делать забавные вещи с помощью одной-единственной команды forall!
Forall обозначает все объекты в игре. Дальше, вы можете с помощью ключевых слов фильтровать свой запрос, и делать что хотели.
Пример - forall alive = "Все живые",
forall named "Уолтер Уайт" = "Все с именем Хайзенберг" и так далее.

Вторая часть - это do. Когда вы отфильтровали все объекты, с которыми надо сделать действие, вы пишите do и консольную команду, которую надо с ними произвести.

Пример - forall with Battery do setbatterypercent $ID 100 - зарядить все батареи.
forall with AccessReader do rmcomp $ID AccessReader - дать всем полный доступ.
forall with Body do invokeverb $ID "Explode" - Дать всем конфетку.
Заключение.
Это руководство существует по одной причине :
Всем все равно на новичков в админском деле и нигде в сети этой инфы (тем более на русском) нет!!!
Так что вот, прошу!
Если вы насыпите мне наград проявите в комментариях желание дополнить раздел про прототипы, или BQL, а так же разобрать применения панелек - я обязательно дополню этот гайд.
Удачи, космонавтики!

P.S. Послушайте мою музыку пж
https://musics.to/metrolap4ick
https://musics.to/vomitreflexes
68 Comments
. Aug 5 @ 7:04am 
@uncannycato sudo cvar events.enabled False в консоль
tylskii14pro Mar 28 @ 10:15am 
а как выдать время на роли, я раньше знал а щас забыл
uncannycato Dec 26, 2024 @ 8:05am 
можно ли отключить ивенты полностью
Ales Oct 30, 2024 @ 2:20pm 
Иначе сервер не будет ее видеть, а если она одна (напр, все остальные закоммичены в маппул), то свалиться в фатал. Ну и по хорошему, добавить карту в пул тестов Content.IntegrationTests\Tests\PostMapInitTest.cs. А перед запуском сбилдить с релизным конфигом (dotnet build --configuration Release)
Ales Oct 30, 2024 @ 2:20pm 
И небольшая ремарка по маппингу (но возможно я слепой).
Стоит упомянуть, что для маппинга лучше подойдет сбилдить заново с конфигом для маппинга (dotnet build --configuration Tools).
После сохранения изменений, карта будет в bin/maps и ее надо надо перенести в прототипы, а потом прописать прототип для карты в этом самом файле, открыв его блокнотом. Потом прописать в Resources\Prototypes\Corvax\Maps\Pools или же Resources\Prototypes\Maps\Pools (в зависимости от форка).
Ales Oct 30, 2024 @ 2:19pm 
Спасибо.
Покопался и как оказалось можно прописать.
Большая часть настроек (с понятными комментариями) находится в \space-station-14\Content.Shared\CCVar\CCVars.cs, но потребуется ребилдить после изменений.
ах ах!  [author] Oct 27, 2024 @ 1:11pm 
Насколько я знаю, в CVar-ах прописаны ротации. Выбрать одну и ту же карту\режим по кд пока нельзя, можно сделать так, что в билде в ротации будет лишь одна карта\режим.
Ales Oct 25, 2024 @ 6:25pm 
Привет! Может тут найдется ответ. Как выбрать дефолтную карту и режим?
В сс13 настраивались максимально просто в дрим мейкере, а тут не очень понятно
ах ах!  [author] Oct 11, 2024 @ 2:05pm 
mapping <айди>, через vv добавляешь мапе компонент FTL
Les paul 凸( •̀_•́ )凸 Oct 11, 2024 @ 10:49am 
Вопрос, а как планету создать и тпхнуться к ней?