Руководство по созданию карты: различия между версиями
Faduty (обсуждение | вклад) (Новая страница: «== Meta's Guide to Enthusiast Mapping == '''Написано для тех, кто имеет представление или вообще не знает, как пользоваться мап-мейкером.''' I have no idea how experienced anyone reading this is, so I'll start from the top and try to assume little. First, you need to get yourself a copy of all the files for editing. To do this, go [https://github.com/tgstation/-tg-station here] and...») |
Faduty (обсуждение | вклад) (Начало) |
||
Строка 1: | Строка 1: | ||
== Meta | == Руководство "Meta" по картографированию для энтузиастов == | ||
'''Написано для тех, кто имеет представление или вообще не знает, как пользоваться мап-мейкером.''' | '''Написано для тех, кто имеет представление или вообще не знает, как пользоваться мап-мейкером.''' | ||
Я понятия не имею, насколько опытен человек, читающий это, поэтому я начну с самого начала и постараюсь мало что предполагать. | |||
Первое, что вам нужно сделать - это необходимо получить копии всех файлов для редактирования. Для этого перейдите [https://github.com/tgstation/tgstation сюда] и нажмите кнопку ZIP рядом, чтобы скачать. После скачивания ZIP-файла - распакуйте его куда угодно. | |||
[[File:Dreammakermap.png|center|600px]] | Итак, теперь у вас есть папка с последним кодом и резервная копия в формате ZIP, к которой можно вернуться, если вы все сломаете. В основной папке вы увидите «tgstation.dme». Вы можете открыть это с помощью программы Dream Maker, которая будет находиться в вашей папке BYOND. Установите Dream Maker в качестве программы по умолчанию для открытия файлов .dme, если это еще не сделано. Открыв его, вы увидите две вкладки слева: файл и объект. На вкладке «Файл» откройте '''карты''' , а затем откройте «tgstation.2.1.2.dmm» или другое название текущей версии карты. Тогда вы получите что-то похожее на это:[[File:Dreammakermap.png|center|600px]] | ||
Переключитесь с вкладки '''«Файлы»''' на вкладку '''«Объекты»''' , и вы увидите '''область''' , '''моб''' , '''объекты''' и '''турф'''. Это четыре основных «слоя», которые вы можете увидеть в редакторе. Вы можете включать и выключать их видимость и интерактивность, используя раскрывающийся список '''слоев''' . Я бы посоветовал скопировать эту карту и переименовать ее, скажем, в Test_Station.dmm. Возможно, удалите большую часть или всю станцию по умолчанию и постройте на теперь уже пустом z-уровне, где захотите. Чтобы создавать объекты, используйте дерево объектов в левой части пользовательского интерфейса, чтобы выбрать объекты, а затем щелкните, чтобы разместить их. Простой щелчок позволяет разместить по одному элементу на тайле из каждой категории, а щелчок при нажатой клавише Ctrl '''размещает''' его в стопке.'''поверх''' всех предыдущих, а щелчок при нажатой клавише Shift удаляет самый '''верхний''' элемент. Вы можете открыть несколько карт одновременно — обычно у меня открыта карта /tg/station по умолчанию и моя, и тогда мне будет гораздо проще беззастенчиво копировать и вставлять вещи. Кроме того, поиск чего-либо в дереве объектов может быть чертовски утомительным — щелкните правой кнопкой мыши то, что вы видите, и вы увидите его путь в дереве — obj/structure/closet/etc. Это поможет вам найти вещи. С этого момента вы действительно можете начать правильно составлять карты. | |||
Вы можете выбрать области для копирования/вставки/удаления или войти в режим добавления или заполнения при размещении объектов. По сути, просто щелкайте по всем меню, и вы более или менее поймете, как они работают. '''Параметры>Увеличение''' позволяет уменьшить масштаб до 50 %, чтобы увидеть больше объектов. Используйте слои, чтобы выбрать, какую область, объекты и турф вы хотите редактировать. Если вы действительно хотите что-либо видеть, я бы снял выделение с области и поставил галочку «показывать только выбираемые слои». | |||
Таким образом, первым шагом будет создание первых нескольких комнат. Выберите турф (пол) из стандартных моделируемых полов. Они начнутся с правильной вёрстки и давления воздуха на них, как вам и нужно. Окружите эти этажи стенами, и вот, у вас есть комната. Попробуйте разместить там несколько столиков, возможно, один или два торговых автомата. | |||
Если вы хотите добавить несколько фишек в свою новую комнату, но вас не устраивает то, как они аккуратно складываются друг на друга, вы можете изменить их значения «pixel_x» и «pixel_y» в меню «Редактировать» ПКМ, чтобы расположить их по своему усмотрению. ! (Не забудьте начинать и заканчивать значение двойными кавычками! Кроме того, все пользовательские значения выделены '''жирным шрифтом''' , чтобы их было легче идентифицировать.) Фактически, большинство настенных машин на станциях сдвинуты таким образом, и хотя они ВИДЯТСЯ находящимися на стене, они на самом деле находятся на тайле перед ним. Только не переусердствуйте с этим, так как каждый новый экземпляр объекта добавляется как отдельная запись в меню, и когда их десятки, может быть сложно запомнить, какой из них вам нужен. После того, как вы обустроили комнату, вам захочется сделать в ней свет. | |||
{| | {| | ||
|[[File:Mystery pipe.png|left|frame|There is one uninvited guest here!]] | |[[File:Mystery pipe.png|left|frame|There is one uninvited guest here!]] | ||
|''' | |'''Важно:''' при строительстве станции вам может понадобиться объекты с определенным расположением (окна, трубы, кабели и т. д.), которого нет в вашем меню. Это связано с тем, что BYOND не моделирует экземпляры объекта, отличные от его базового состояния, если они не присутствуют на карте. Вы можете сгенерировать их, щелкнув объект правой кнопкой мыши и выбрав «Создать экземпляр из состояния/направления». Эта функция имеет '''нежелательную особенность''' в котором к сгенерированному объекту иногда автоматически добавляется тег. Эти теги могут вызвать ошибку в работе определенных функций игры во время раунда, и их необходимо удалить. Чтобы проверить его, щелкните правой кнопкой мыши элемент на карте или в меню, выберите «Изменить» и прокрутите до строки «тег», которая должна быть пустой, за исключением двух двойных кавычек («»). Если это не так (что легко заметить, поскольку тег массивный и жирный, его невозможно не заметить даже при прокрутке со скоростью света), измените его. Хорошие карты обычно не содержат их, поэтому вы можете смело копировать и вставлять их, сколько душе угодно. | ||
'''Совет''': помните, что все нестандартные объекты имеют собственную запись в меню, а наличие тега вовсе не является стандартным для большинства объектов! | |||
|} | |} | ||
{| | {| | ||
|[[File:Editinstance.png|left|200px]] | |[[File:Editinstance.png|left|200px]] | ||
| | | Итак, теперь мы подошли к основам создания функциональной комнаты. Прежде всего, вам нужно снова включить слой области. Выберите какую-нибудь область на дереве объектов и покройте ею свою комнату. Если хотите, вы можете переименовать эту область, мы сделаем это позже. Убедитесь, что эта область больше нигде на карте не используется. В каждой зоне должен быть один APC / ЛКП. Скопируйте его с карты по умолчанию или создайте самостоятельно, затем переименуйте его переменную «name» через «edit» во что-нибудь подходящее. Если вы скопировали свой ЛКП с другой карты, скорее всего, тип ячейки и каталог выделены жирным шрифтом. Тип ячейки определяет, сколько энергии может удерживать ЛКП, и для вашей первой карты вам нужно будет установить хороший и высокий уровень, поскольку у вас еще нет какого-либо генератора — 10 000 должно хватить. Dir определяет направление, в котором находится APC относительно ячейки, которую он занимает. По сути, 1 означает, что он находится над ячейкой, в которую вы его поместили, 2 — снизу, 4 — справа и 8 — слева. | ||
Обратите внимание, что в ЛКП '''dir''' — единственная переменная, контролирующая их положение. Позиции других объектов определяются значениями '''Pixel_x''' и '''Pixel_y''' — это меняет место появления ЛКП в редакторе, но в игре они привязываются к тому, что говорит переменная '''dir''' . Другие объекты, например знаки на стенах, будут учитывать только переменные пикселей, а не dir. В обычной энергосистеме вы должны подключить ЛКП ко всем остальным и генератору станции через ячейки СМЕСа, но мы сделаем это позже. На данный момент у вас есть базовая комната, в которой есть электричество и в которой достаточно воздуха, чтобы можно было дышать. Вы можете поставить баллон с воздухом, если считаете, что израсходуете весь кислород или что-то в этом роде. | |||
|[[File:Directions.png|right|200px]] | |[[File:Directions.png|right|200px]] | ||
|} | |} | ||
'''Важное примечание.''' В редакторе есть '''переменные nudge_x''' и '''nudge_y''' , а также различные переменные оси Z. Никогда не меняйте их, они не используются в SS13 и ничего не ломают. | |||
Чтобы иметь возможность фактически появляться в комнате, вам нужно разместить спавнеры. Вы увидите их в виде больших красных символов X на карте по умолчанию для каждой роли. Есть также синие крестики для мест появления ксеносов и мест появления всех опоздавших на шаттле прибытия. Поместите пока spawn_late где-нибудь в своей комнате. | |||
Чтобы действительно играть на своей карте и иметь возможность работать с ней от имени администратора, вам придется ее скомпилировать. Сначала убедитесь, что дерево файлов (слева, как и дерево объектов, щелкните вкладку файла) открыто, и перейдите к картам. Убедитесь, что отмечен только ваш собственный. Затем нажмите «Создать»> «Компилировать» сверху и дождитесь завершения. Это даст вам что-то вроде «tgstation.dmb» в папке, содержащей бота, код, конфигурацию, карты и т. д. Пока вы здесь, быстро зайдите в конфигурацию и откройте «admins.txt». Замените там все на: | |||
«<yourbyondname> = Game Master», указывая свое имя BYOND. | |||
Это сделает вас администратором, что очень полезно для работы в игре. Теперь давайте загрузим сервер, чтобы вы могли запустить свою карту! Найдите «Dream Daemon» (с большим зеленым значком) в папке BYOND и щелкните раскрывающийся список «Файл» внизу. Выберите свой «tgstation.dmb». Выберите порт, если хотите, установите безопасный режим безопасности и невидимый режим видимости. Нажмите «Пуск», чтобы запустить сервер, это займет некоторое время. Затем вы можете подключиться к нему через BYOND, указав любой внешний IP-адрес, показанный в Dream Daemon, если этот порт правильно перенаправлен. В противном случае используйте свой внутренний IP-адрес 192.168.xx, где x — любое значение. Если вы этого не знаете, спросите, и я смогу помочь. Войдя, перейдите на вкладку администратора и нажмите «Начать игру». Присоединившись после начала, вы будете появляться на созданном вами позднем спауне, и, будучи администратором, | |||
С этого момента вы действительно можете делать все, что захотите. Скопировать карту по умолчанию и разобраться, как все работает, не так уж сложно и весьма полезно. Если хотите, вы можете просто немного изменить стандартный вариант. Первое, что я сделал, это небольшой челнок — вы можете видеть это внизу. Просто настройте его и добавьте что-нибудь, и вы довольно легко поймете, как почти все работает. Пояснения по проводке, трубопроводам и атмосфере можно получить здесь. Позже я добавлю руководство по атмосфере, а также руководство по выработке электроэнергии и проводке. Если вы хороший инженер в игре, это очень поможет картографу. | |||
Если вам удалось дочитать это до конца до того, как я добавил еще, то это прекрасное усилие с вашей стороны. Получайте удовольствие, возясь с вещами, и не стесняйтесь спрашивать все, что захотите. Скоро я добавлю сюда еще что-нибудь. | |||
== Pre-commit checks == | == Pre-commit checks == |
Версия от 23:45, 21 сентября 2023
Руководство "Meta" по картографированию для энтузиастов
Написано для тех, кто имеет представление или вообще не знает, как пользоваться мап-мейкером.
Я понятия не имею, насколько опытен человек, читающий это, поэтому я начну с самого начала и постараюсь мало что предполагать.
Первое, что вам нужно сделать - это необходимо получить копии всех файлов для редактирования. Для этого перейдите сюда и нажмите кнопку ZIP рядом, чтобы скачать. После скачивания ZIP-файла - распакуйте его куда угодно.
Итак, теперь у вас есть папка с последним кодом и резервная копия в формате ZIP, к которой можно вернуться, если вы все сломаете. В основной папке вы увидите «tgstation.dme». Вы можете открыть это с помощью программы Dream Maker, которая будет находиться в вашей папке BYOND. Установите Dream Maker в качестве программы по умолчанию для открытия файлов .dme, если это еще не сделано. Открыв его, вы увидите две вкладки слева: файл и объект. На вкладке «Файл» откройте карты , а затем откройте «tgstation.2.1.2.dmm» или другое название текущей версии карты. Тогда вы получите что-то похожее на это:
Переключитесь с вкладки «Файлы» на вкладку «Объекты» , и вы увидите область , моб , объекты и турф. Это четыре основных «слоя», которые вы можете увидеть в редакторе. Вы можете включать и выключать их видимость и интерактивность, используя раскрывающийся список слоев . Я бы посоветовал скопировать эту карту и переименовать ее, скажем, в Test_Station.dmm. Возможно, удалите большую часть или всю станцию по умолчанию и постройте на теперь уже пустом z-уровне, где захотите. Чтобы создавать объекты, используйте дерево объектов в левой части пользовательского интерфейса, чтобы выбрать объекты, а затем щелкните, чтобы разместить их. Простой щелчок позволяет разместить по одному элементу на тайле из каждой категории, а щелчок при нажатой клавише Ctrl размещает его в стопке.поверх всех предыдущих, а щелчок при нажатой клавише Shift удаляет самый верхний элемент. Вы можете открыть несколько карт одновременно — обычно у меня открыта карта /tg/station по умолчанию и моя, и тогда мне будет гораздо проще беззастенчиво копировать и вставлять вещи. Кроме того, поиск чего-либо в дереве объектов может быть чертовски утомительным — щелкните правой кнопкой мыши то, что вы видите, и вы увидите его путь в дереве — obj/structure/closet/etc. Это поможет вам найти вещи. С этого момента вы действительно можете начать правильно составлять карты.
Вы можете выбрать области для копирования/вставки/удаления или войти в режим добавления или заполнения при размещении объектов. По сути, просто щелкайте по всем меню, и вы более или менее поймете, как они работают. Параметры>Увеличение позволяет уменьшить масштаб до 50 %, чтобы увидеть больше объектов. Используйте слои, чтобы выбрать, какую область, объекты и турф вы хотите редактировать. Если вы действительно хотите что-либо видеть, я бы снял выделение с области и поставил галочку «показывать только выбираемые слои».
Таким образом, первым шагом будет создание первых нескольких комнат. Выберите турф (пол) из стандартных моделируемых полов. Они начнутся с правильной вёрстки и давления воздуха на них, как вам и нужно. Окружите эти этажи стенами, и вот, у вас есть комната. Попробуйте разместить там несколько столиков, возможно, один или два торговых автомата.
Если вы хотите добавить несколько фишек в свою новую комнату, но вас не устраивает то, как они аккуратно складываются друг на друга, вы можете изменить их значения «pixel_x» и «pixel_y» в меню «Редактировать» ПКМ, чтобы расположить их по своему усмотрению. ! (Не забудьте начинать и заканчивать значение двойными кавычками! Кроме того, все пользовательские значения выделены жирным шрифтом , чтобы их было легче идентифицировать.) Фактически, большинство настенных машин на станциях сдвинуты таким образом, и хотя они ВИДЯТСЯ находящимися на стене, они на самом деле находятся на тайле перед ним. Только не переусердствуйте с этим, так как каждый новый экземпляр объекта добавляется как отдельная запись в меню, и когда их десятки, может быть сложно запомнить, какой из них вам нужен. После того, как вы обустроили комнату, вам захочется сделать в ней свет.
Важно: при строительстве станции вам может понадобиться объекты с определенным расположением (окна, трубы, кабели и т. д.), которого нет в вашем меню. Это связано с тем, что BYOND не моделирует экземпляры объекта, отличные от его базового состояния, если они не присутствуют на карте. Вы можете сгенерировать их, щелкнув объект правой кнопкой мыши и выбрав «Создать экземпляр из состояния/направления». Эта функция имеет нежелательную особенность в котором к сгенерированному объекту иногда автоматически добавляется тег. Эти теги могут вызвать ошибку в работе определенных функций игры во время раунда, и их необходимо удалить. Чтобы проверить его, щелкните правой кнопкой мыши элемент на карте или в меню, выберите «Изменить» и прокрутите до строки «тег», которая должна быть пустой, за исключением двух двойных кавычек («»). Если это не так (что легко заметить, поскольку тег массивный и жирный, его невозможно не заметить даже при прокрутке со скоростью света), измените его. Хорошие карты обычно не содержат их, поэтому вы можете смело копировать и вставлять их, сколько душе угодно.
Совет: помните, что все нестандартные объекты имеют собственную запись в меню, а наличие тега вовсе не является стандартным для большинства объектов! |
Итак, теперь мы подошли к основам создания функциональной комнаты. Прежде всего, вам нужно снова включить слой области. Выберите какую-нибудь область на дереве объектов и покройте ею свою комнату. Если хотите, вы можете переименовать эту область, мы сделаем это позже. Убедитесь, что эта область больше нигде на карте не используется. В каждой зоне должен быть один APC / ЛКП. Скопируйте его с карты по умолчанию или создайте самостоятельно, затем переименуйте его переменную «name» через «edit» во что-нибудь подходящее. Если вы скопировали свой ЛКП с другой карты, скорее всего, тип ячейки и каталог выделены жирным шрифтом. Тип ячейки определяет, сколько энергии может удерживать ЛКП, и для вашей первой карты вам нужно будет установить хороший и высокий уровень, поскольку у вас еще нет какого-либо генератора — 10 000 должно хватить. Dir определяет направление, в котором находится APC относительно ячейки, которую он занимает. По сути, 1 означает, что он находится над ячейкой, в которую вы его поместили, 2 — снизу, 4 — справа и 8 — слева.
Обратите внимание, что в ЛКП dir — единственная переменная, контролирующая их положение. Позиции других объектов определяются значениями Pixel_x и Pixel_y — это меняет место появления ЛКП в редакторе, но в игре они привязываются к тому, что говорит переменная dir . Другие объекты, например знаки на стенах, будут учитывать только переменные пикселей, а не dir. В обычной энергосистеме вы должны подключить ЛКП ко всем остальным и генератору станции через ячейки СМЕСа, но мы сделаем это позже. На данный момент у вас есть базовая комната, в которой есть электричество и в которой достаточно воздуха, чтобы можно было дышать. Вы можете поставить баллон с воздухом, если считаете, что израсходуете весь кислород или что-то в этом роде. |
Важное примечание. В редакторе есть переменные nudge_x и nudge_y , а также различные переменные оси Z. Никогда не меняйте их, они не используются в SS13 и ничего не ломают.
Чтобы иметь возможность фактически появляться в комнате, вам нужно разместить спавнеры. Вы увидите их в виде больших красных символов X на карте по умолчанию для каждой роли. Есть также синие крестики для мест появления ксеносов и мест появления всех опоздавших на шаттле прибытия. Поместите пока spawn_late где-нибудь в своей комнате.
Чтобы действительно играть на своей карте и иметь возможность работать с ней от имени администратора, вам придется ее скомпилировать. Сначала убедитесь, что дерево файлов (слева, как и дерево объектов, щелкните вкладку файла) открыто, и перейдите к картам. Убедитесь, что отмечен только ваш собственный. Затем нажмите «Создать»> «Компилировать» сверху и дождитесь завершения. Это даст вам что-то вроде «tgstation.dmb» в папке, содержащей бота, код, конфигурацию, карты и т. д. Пока вы здесь, быстро зайдите в конфигурацию и откройте «admins.txt». Замените там все на:
«<yourbyondname> = Game Master», указывая свое имя BYOND.
Это сделает вас администратором, что очень полезно для работы в игре. Теперь давайте загрузим сервер, чтобы вы могли запустить свою карту! Найдите «Dream Daemon» (с большим зеленым значком) в папке BYOND и щелкните раскрывающийся список «Файл» внизу. Выберите свой «tgstation.dmb». Выберите порт, если хотите, установите безопасный режим безопасности и невидимый режим видимости. Нажмите «Пуск», чтобы запустить сервер, это займет некоторое время. Затем вы можете подключиться к нему через BYOND, указав любой внешний IP-адрес, показанный в Dream Daemon, если этот порт правильно перенаправлен. В противном случае используйте свой внутренний IP-адрес 192.168.xx, где x — любое значение. Если вы этого не знаете, спросите, и я смогу помочь. Войдя, перейдите на вкладку администратора и нажмите «Начать игру». Присоединившись после начала, вы будете появляться на созданном вами позднем спауне, и, будучи администратором,
С этого момента вы действительно можете делать все, что захотите. Скопировать карту по умолчанию и разобраться, как все работает, не так уж сложно и весьма полезно. Если хотите, вы можете просто немного изменить стандартный вариант. Первое, что я сделал, это небольшой челнок — вы можете видеть это внизу. Просто настройте его и добавьте что-нибудь, и вы довольно легко поймете, как почти все работает. Пояснения по проводке, трубопроводам и атмосфере можно получить здесь. Позже я добавлю руководство по атмосфере, а также руководство по выработке электроэнергии и проводке. Если вы хороший инженер в игре, это очень поможет картографу.
Если вам удалось дочитать это до конца до того, как я добавил еще, то это прекрасное усилие с вашей стороны. Получайте удовольствие, возясь с вещами, и не стесняйтесь спрашивать все, что захотите. Скоро я добавлю сюда еще что-нибудь.
Pre-commit checks
- Are floors with or without air, as they should be? (regular or airless)
- Does the area have an APC?
- Does the area have an Air Alarm?
- Does the area have a Request Console?
- Does the area have lights?
- Does the area have a light switch?
- Does the area have enough intercoms?
- Does the area have enough security cameras? (Use the verbs under Mapping for help)
- Is the area connected to the scrubbers air loop?
- Is the area connected to the vent air loop? (vent pumps)
- Is everything wired properly?
- Does the area have a fire alarm and firedoors?
- Do all pod doors work properly?
- Are accesses set properly on doors, pod buttons, etc.
- Are all items placed properly? (not below vents, scrubbers, tables)
- Does the disposal system work properly from all the disposal units in this room and all the units, the pipes of which pass through this room?
- Check for any misplaced or stacked piece of pipe (air and disposal)
- Check for any misplaced or stacked piece of wire
- Identify how hard it is to break into the area and where the weak points are, and balance the area accordingly (eg. the Vault should be made of reinforced structures and electrified windows, the Kitchen should not)
- Check if the area has too much empty space. If so, make it smaller and replace the rest with maintenance tunnels
- Are there any indestructible turfs where they shouldn't be?
General Station-wide Mapping Guidelines
In general
- Don't run pipes/cables/disposals through walls if you can avoid it. Otherwise it's a pain to repair or sabotage them, especially under r-walls.
- Try to connect departments to maintenance through a back or side door. This lets players escape and allows antags to break in. Metastation is a good example for this.
Atmospherics
- Each area should have EXACTLY one air alarm (Exceptions are only possible if a room has scrubbers or vent pumps on different frequencies).
- Each ROOM (Walled off space) should have at least one vent pump and scrubber, which is properly connected to its respective loop.
Keep in mind that scrubbers don't detect gases/pressure; only air alarms do. - The air supply loop's pipes should be colored blue.
- The scrubbers loop's pipes should be colored red.
- Some areas require special air alarm subtypes: /engine for the SME and /server for tcomms or the RnD server room.
Power
- Each area (which requires power) should have exactly one APC. For areas with a high roundstart power draw (engineering/cargo), one of the highcap subtypes can be used.
Atmospherics
Pipes and manifolds
Atmospherics releases it's cocktail of gases into the air supply loop (blue pipes). The station is also equipped with a scrubber loop, which filters unwanted gases and sends them back to atmospherics via the scrubber loop (red pipes).
If you're expanding the air supply loop (blue pipes) use the objects in /obj/machinery/atmospherics/pipe/simple/supply/visible or ../hidden depending on if you want it to show above floors or below them. For manifolds use the objects in /obj/machinery/atmospherics/pipe/manifold/supply/visible and ../hidden.
If you are expanding the scrubber loop (red pipes) use the objects in /obj/machinery/atmospherics/pipe/simple/scrubbers/visible or ../hidden depending on if you want it to show above floors or below them. For manifolds use the objects in /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible and ../hidden.
If you are however building a pipe network which has nothing to do with the air supply or scrubbers loop, you should use the objects in /obj/machinery/atmospherics/pipe/simple/general/visible or ../hidden. For manifolds use the objects in /obj/machinery/atmospherics/pipe/manifold/general/visible and ../hidden.
To add new colors of pipes, you will need add a new subtypes in the appropriate .dm files located in tgstation\code\modules\atmospherics\machinery\pipes
Please refrain from var-editing pipes, as it typically introduces graphical glitches and other issues.
Air Alarm
Every single area (with scrubbers and/or vent pumps) should have exactly one air alarm. More than one should be placed if vent pumps or scrubbers use different radio frequencies than the default one (1439).
Scrubbers (Station air supply)
Every room (ie. walled off space) except for maintenance hallways should have at least one scrubber.
The path for scrubbers that start on is /obj/machinery/atmospherics/components/unary/vent_scrubber/on
And make sure the id_tag is the default one (null)
Also ensure the scrubber is connected to the scrubber loop!!
Vent Pumps (Station air supply)
Every room (ie. walled off space) except for maintenance hallways should have at least one vent pump.
The path for vents that start on is /obj/machinery/atmospherics/components/unary/vent_pump/on
Please make sure the id_tag is the default one (null)
Also ensure the vent pump is connected to the air supply loop!!
Gas tanks and filters
Each station should have a full set of these - or at the bare minimum, one for N2, one for O2 and a third tank to filter dangerous gases into.
Each gas tank needs:
- Outside: A tank computer and a gas filter to pick what gases will be filtered into it.
- Inside: A gas injector (input), a vent pump (output), a gas sensor and a specific turf.
The tank computer controls the input/output and receives data from the gas sensor.
The specific turf creates the gases that will be inside each tank - the gas canister is just for decoration.
Let's take a look at the MetaStation N2 tank:
- Tank computer: /obj/machinery/computer/atmos_control/tank/nitrogen_tank
- N2 filter: /obj/machinery/atmospherics/components/trinary/filter/atmos/n2
- Gas injector: /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input
- Vent pump: /obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output
- Gas sensor: /obj/machinery/air_sensor/atmos/nitrogen_tank
- Turf: /turf/open/floor/engine/n2
These objects have all the neccessary vars preset and start switched on - you'll only have to edit the dir if neccessary.
Additionally, you'll want this type of gas mixer for the airmix tank (N2 + O2):
- Air mixer: /obj/machinery/atmospherics/components/trinary/mixer/airmix
Power
APC
Each new room needs at least one, this will provide all the power for the room (magically). Each piece of machinery inside the APC's area will draw power from either the lighting, equipment or environmental channel.
Any room that is very equipment heavy (for example cargo bay) may need a beefed up APC (apc/highcap) to prevent early blackouts. These start with higher capacity power cells.
Wiring
Make sure the wires lead from the main power grid, and to the APC(s) of your area. If any equipment in your new area requires a wire under it, line it up, connected to the main power grid, and under the machinery.
Wires are also helpful when making electrical grilles (just dot wire under a grille), make sure the wires touch the main power grid (or they won't shock people).
Equipment
Lights
Lights take up a lot of power, don't use too many! Make sure to put in just enough so the room is fully lit, but not so many that the equipment will go out in ten minutes of the round starting.
Light switch
For mood lighting, or to show the room is currently not in use by the primary occupant. These disable the lighting equipment (and power drain associated) in the area, but not desk lamps. Place these on walls, usually by a door.
Request Console
If a certain room has no need for materials, or produces no materials, do not give it a Request Console. If it does (for either case or both) make sure it has at least one, that is in a place where some one will see it.
Intercoms
At least every room should have one of these. They should be set to 145.9, and be speaker ON Microphone OFF. This is so radio signals can reach people even without head sets on. Larger room will require more than one at a time.
Security Cameras
Most areas should have these, enough to see the general area from a Human point of view, but, not bunched together for the AI's sake. Larger rooms may require more than one.
Room Structure
Access
Refer to ..\code\__DEFINES\access.dm for door access values.
Access to doors is handled by req_access values. There are four when editing a door - req_access, req_access_txt, req_one_access, and req_one_access_txt. The one's we're concerned with are req_access_txt and req_one_access_txt.
This image shows a door on the Arrivals shuttle - since it's a public door, the access is set to "0", as everyone should be able to open it. If we look at the Brig front door, we would set the access to 63, because that's the value for Security front doors - accessible by Security positions, but no one else.
Multiple accesses to doors are handled by adding a semicolon (with no spaces) between access values (eg. "28;31" is for Kitchen and Cargo access). This might seem worthless, but it's useful for small maps, where jobs might need to share access due to cramped spaces.
There's an important difference between the two that you need to pay attention to - req_access_txt requires ALL LISTED ACCESSES to open the door, while req_one_access_txt lets anyone with ONE OF THE LISTED ACCESSES open the door. For example - say you want your Brig to be openable by the Detective and Security Officers, we would put "63;4" in req_one_access_txt, because we want the Detective AND Security to have access. If we used req_access_txt, you would need BOTH accesses to open the door, meaning neither the Detective or Security could open it.
You can view all of the access values in the code/game/jobs/access.dm file. (Most should be self explanatory or have a label, but if you really aren't sure, you can take a look at Boxstation's map file and check the value on the door you're looking for).
Airless Floors
Ideal for rooms or chambers that mix gas, and for tiles exposed to space. Not ideal for areas that humans will cross in frequency.
Use these on external tiles (to prevent lag when the game starts) and chambers that will require gas mixing (toxins mix chamber/ furnace). Double check these to make sure you don't suffocate mobs in the new rooms.
Fire Alarms and Fire Doors
Make sure to put these INSIDE of the boundary of the area, so there is a lock down. Any spot that gets hot as a normal function should not have a fire Alarm right next to the heat source (toxin mix chamber). Make sure there is a fully sealed area (with the exception of maintenance doors for people to escape fires) that can't be open by normal civilians.
Weak Points
Judge how high security the room will be, if it is high security, reinforced walls and electrified grill windows may be in order. Areas that do not need a lot of security can use basic walls, and windows to your liking (though normal glass windows break very very easy). Each room should have one place that's weaker than the rest (like a back door, side entrance, or a window), just because the main entrance might be out of commission (and realistically, for traitors to break into).
Item and Machinery Distribution
Be smart about what will go in an area, keep a fine balance between the size of the room and amount of equipment. Large rooms may require multiple APCs to prevent power outages early in game. Second, make sure to place equipment that make sense for the area (security computer in a security area/ Medical vendor in a medical area).
Indestructible Turfs
Before you finalize a map, check for any indestructible turfs. These turfs ignore things like external damage and are typically meant for things like special ruins/rooms where you want to avoid people trying to circumvent a path. Due to these characteristics, they have no real place on regular station maps and would probably lead to confusion for players more than anything.
Balance
Item contents
The harder the room is to enter, the more goodies or sensitive equipment there is inside. Make sure to keep this in mind (and don't make an empty room that's covered in blast doors, electrified grills, reinforced walls, and captain level doors).
Room security
A room is only as secure as its necessity. Public rooms should not have many security functions (other than a fire alarm), but private work space must be more secure (based on job). The bartenders do not need reinforced walls around their storage, but engineers do.
The highest security rooms should utilize the highest security measures. The lowest security rooms should utilize the cheapest security measures.
Step_x, step_y and the broken movement syndrome
So you compiled the map and suddenly whenever you move you no longer get the animation of moving but just 'appear' on the next tile?
So a while back step_x and step_y were introduced to allow pixel based movement. SS13 does not utilize this. Step_x and step_y are variables that each atom has. The way they work is that as soon as you set any object on the map to use one of these variables, the game interprets that you overrode all default movement code and wrote your own - but you didn't (The code that makes the animation from tile to tile).
To fix this problem you need to close dream maker (save the project first, obviously). Open your map (.dmm) file in a text editor, such as notepad or notepad++. Search (ctrl+f) through the file for step_x and step_y and remove any reference to it. Once no more step_x or step_y -es are found in the file, save it and open it in dream maker once again. Compile the code and movement should work fine once more. Go to the development IRC if you need more help.
Shuttles
Basically there's 3 types of shuttle dock stationary, transit and mobile
- stationary == places where the shuttle can dock
- transit == shuttle as it moves
- mobile == the place with the actual shuttle
so you'd have a transit dock in the transit area and 2 stationary docks, one in centcomm and the other one in the station and 1 mobile dock, in centcomm for most shuttles (apart from mining)
The shuttle docks are grouped by id eg id = "cargo_away" id = "cargo_transit"
You need to add the dock types to the map and edit the bounding boxes via varediting the dock, you need to varedit height, width, dheight and dwidth at minimum. These are offset by the dir so do keep that in mind, eg if dir == 2 then width goes from EAST to WEST, if dir == 4 then width goes from NORTH to SOUTH and dwidth/dheight are offsets from the lower-left corner of the plane switched to the dock's dir
You should also ensure the directions face the shuttle or face away from the thing the shuttle docks with.
If a shuttle's mobile docking port direction is different then the stationary docking port's direction, the shuttle and all items on it will be rotated accordingly. (Try it, it works properly for just about everything)
Warning the bounding box for the mobile dock must fit inside of the stationary dock (after any rotation) Or the shuttle will refuse to move.
If the shuttle's mobile docking port is in an area that is a subtype of /area/shuttle, Only turfs in the bounding box in that same area are moved. Otherwise it moves all turfs in the bounding box. This can be used for odd shaped shuttles. (the area will be transfer over as well)
Also note that the emergency shuttle and cargo shuttle need special subtypes of the dock type eg so /obj/docking_port/mobile/emergency
The other variables of note is traveldir, which defines if the shuttle rotates on transit, it's an angle in degrees (just imagine the shuttle is inside a circle . For example, if you want the shuttle going right to left set it to 270 degrees.
Dwidth and Dheight in more depth
dwidth/dheight is the offset of the docking_port obj from the (0,0) bounding box corner. In dir == 1 (north) 0,0 is the bottom left corner? This changes for each direction, For example when dir is 2 it's the upper right corner. so dwidth and dheight identify where the bounding box starts relative to the docking port obj whereaswidth and height determine the actual width and height of the bounding box
Note: We count step 0 as a tile, so a height and width of 9 is actually 10 tiles (tile 0 to tile 9)
Here is an example for the north facing shuttle dock direction - you can rotate this image to determine where the offset is for each other cardinal direction Файл:ShuttleBox.png
Other files
If you are adding a map to the game, you need to ensure it has a JSON file under _maps, and is included in the maps config file.
Helpful regular expressions
Everything in the code blocks is a regular expression, most decent text editors are able to use regex in their searches.
Replace the regex proceding => with what follows.
Pesky var edits for the `something` var are all over my map
Replace something with the var that needs to be removed. You need to run both replacements to catch all cases.
For standard dmm format:
\bsomething *= *.+?; *
=> nothing{\W*\bsomething *= *[^;]+?\W*}
=> nothing
For TGM format:
^\W+\bsomething *= *.+?;\n
=> nothing{\W*\bsomething *= *[^;]+?\W*}
=> nothing
Multi-Z
Multi-Z is a feature which allows a station map to have multiple Z-levels layered on top of each other, behaving as a single station with multiple floors. This feature is currently in use on the Tramstation and IceboxStation maps. A station's multiple levels can be bundled into one map file, or in several seperate files. The traits section of the map configuration json tells SS13 how to link the maps together.
- If you are building station rooms on a lower Z level, ensure that a floor of some type is mapped on the Z level above the room. You can check the coordinates in the mapping editor to ensure you floor over the correct dimensions of the room. When running the server in Dream Daemon to test the map, you can go to the Debug tab and hit show debug verbs, go to Mapping tab and hit Show ATs, if the list is empty, you are good.
- Earlier versions of multi-z did not require a baseturf to be defined under each z-level's traits in the config json. Each level must now have a baseturf set.
- The maploader will not load and link a map file without areas or turfs defined. An empty space (nothing but baseturf) map will runtime. If you are adding a Z-level to an existing map, be aware of this.
- SS13 will cache a map's configuration json file in data\next_map.json. If you alter a map's configuration json locally, you must also clear this file by using the change-map verb in game, deleting the file, or replacing it with your updated json file.