Утилита:DFHack

Материал из Dwarf Fortress Wiki
Перейти к навигацииПерейти к поиску
Данная статья помечена как не оконченная.
Вы можете прочитать эту статью на английском или помочь проекту её переводом.
DFHack
Dfhack-logo.png
Информация
Консоль DFHack

DFHack — библиотека для расширения возможностей моддинга, возможностей взаимодействия с игрой Dwarf Fortress, улучшения "качества жизни" (упрощения управления, улучшения графики и др.) Работает через прямой доступ к памяти игры. Библиотека и основные утилиты находятся в активной разработке, выпускаются новые релизы и создаются новые утилиты. Существует большое количество сторонних программ использующих данную библиотеку для совершенно разных задач: визуализация, манипуляции с существами, сбор статистики и т.п.

Установка

Актуальный билд находится на странице релизов. Для arch linux доступен AUR пакет.

Использование

Если DFHack установлен корректно, под Windows он автоматически запустится вместе с DF. В Linux и MacOS требуется запустить его из терминала, а затем использовать терминал для ввода команд.
Примечание:
Исполняемый файл DFHack предназначен для вызова команд DFHack из внешних скриптов и программ, когда DF+DFHack уже запущены, а не для обычного использования DFHack.
DFHack расширяет функционал Dwarf Fortress как выпадающая консоль расширяет его в играх на движке Quake.
Простейший способ использования DFHack — ввод команд в консоль.
Команда help выведет на экран небольшую справку. ls — список всех доступных команд.
У многих команд есть собственная справка или детальное описание, которое можно посмотреть, введя <Имя_команды> help или <Имя_команды> ?
Командная строка имеет несколько удобных фич, например, историю введенных команд (используйте стрелки вверх и вниз).

Еще один способ — назначение команд в качестве внутриигровых горячих клавиш. Это можно сделать двумя способами:
Старым способом это делается через меню Hot Keys. Там, с помощью пункта Change name нужно ввести команду в качестве имени соответствующей горячей клавиши.
Новый, более гибкий способ — назначение горячей клавиши через консоль DFHack. К сожалению, созданные таким образом горячие клавиши не запоминаются автоматически между запусками игры, поэтому необходимо использовать файл dfhack.init, чтобы быть уверенным, что эти сочетания будут воссоздаваться при каждом запуске игры.
Интерактивные команды, такие как liquids нельзя назначать в качестве сочетания клавиш.

DFHack.init

Если в вашей директории с DF лежит файл dfhack.init, то его содержимое будет выполняться при каждом запуске игры. Файл содержит список горячих клавиш, которые нужно пересоздавать при каждом запуске. В качестве примера вы можете использовать файл dfhack.init-example, исправив его под свои нужды и переименовав в dfhack.init.

Назначение горячих клавиш

Для назначения горячих клавиш используйте команду keybinding. Ее можно использовать как в консоли, так и в файле DFHack.init. На текущий момент поддерживаются любые сочетания клавиш Ctrl / Alt / Shift клавишами F1F9 или AZ.
Способы вызова команды:

  • keybinding list <сочетание_клавиш> — показывает команды, назначенные для этого сочетания клавиш.
  • keybinding clear <сочетание_клавиш> <сочетание_клавиш>... — удаляет команды, привязанные к этим клавишам.
  • keybinding add <сочетание_клавиш> "команда" "команда"... — назначает сочетание клавиш для этого сочетания клавиш
  • keybinding set <сочетание_клавиш> "команда" "команда"... — удаляет команды, привязанные к сочетанию клавиш, а затем назначает новые.

Параметр <сочетание_клавиш> имеет следующий, чувствительный к регистру символов, синтаксис:

[Ctrl-][Alt-][Shift-]KEY[@context]

где KEY — клавиша F1F9 или AZ, а в скобках [] заключены необязательные параметры (используются без скобок).

Когда несколько команд назначены для одного сочетания клавиш DFHack выбирает первую команду, которую можно выполнить в данной ситуации. Команды, добавленные позднее, имеют приоритет над теми, что добавлены ранее. Если несколько команд перечислено в команде keybinding add приоритет будет отдан порядку команд.
Команды, которые не предназначены напрямую для использования в сочетаниях клавиш будут всегда считаться выполнимыми.

В примере выше тег "context" используется для ограничения состояний игры, в которых это сочетание будет выполняться. Если вызвано без параметров, команда "keybinding", среди прочего, выводит строку с текущим контекстом (напр. "The current context is: dwarfmode/DesignateMine" — контекст: режим крепости, экран Designations, в нем выбрано Mine). Такие сочетания выполняются только в том случае,если их тег "context" совпадает с текущим контекстом полностью или до разделителя "/". Например, для контекста foo/bar/baz выполнимыми будут только теги @foo/bar/baz, @foo/bar и @foo.

Пример:

keybinding add Ctrl-V digv

Добавляет сочетание клавиш CtrlV для команды digv.

Команды

Синтаксис команд DFHack состоит из имени команды, за которой следуют аргументы, разделенные пробелами. Если аргумент сам содержит пробелы — его нужно заключить в двойные кавычки. Чтобы использовать двойные кавычки внутри двойных кавычек — используйте \".
Если первый символ в строке — #, то он не выполняется и считается комментарием.
Если первый символ в строке — :, это альтернативный режим. В таком случае символы от : до пробела — имя команды, а то, что после — первый аргумент. Две команды в примере ниже эквиваленты:

:foo a b "c d" e f
foo "a b \"c d\" e f"

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

Команды. Игровой процесс

die

Мгновенно завершает DF без сохранения.

forcepause

Принуждает игру встать на паузу. Полезно, когда ваш FPS падает ниже 1 и вы теряете контроль на игрой.

  • forcepause 1 — включение.
  • forcepause 0 — отключение.

nopause

Отключает паузу (и ручную и автоматическую). Исключение — пауза при обнаружении ада. Полезно, например, если нужно копать под рекой.

fastdwarf

Данная команда включает в себя два режима: speedydwarf и teledwarf. Speedydwarf заставляет дварфов двигаться и делать работу невероятно быстро. Teledwarf позволяет дварфам двигаться мгновенно, не оказывая влияния на скорость работы.

  • fastdwarf 0 0 — выключает оба режима
  • fastdwarf 0 1 — выключает speedydwarf и включает teledwarf
  • fastdwarf 1 0 — включает speedydwarf и выключает teledwarf
  • fastdwarf 1 1 — включает оба
  • fastdwarf 0 — выключает оба режима
  • fastdwarf 1 — включает speedydwarf и выключает teledwarf
  • fastdwarf 2 — ставит нативный дебаг-флаг в памяти игры, что добавляет агрессивности режиму speedydwarf

Команды. Интерфейс

follow

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

tidlers

Переключает положение счетчика бездельников (idlers) между всеми возможными позициями на экране.

twaterlvl

Включает/выключает показ глубины жидкостей цифрами.

copystock

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

rename

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

  • rename squad <индекс> "имя" — переименовывает отряд по индексу. У отряда a в меню отрядов будет индекс 1, у отряда b — 2 и т. д.
  • rename hotkey <индекс> "имя" — переименовывает горячую клавишу по индексу. Позволяет задать в соответствие горячей клавише длинную команду.
  • rename unit "nickname" — переименовывает текущего выбранного в окне игры существа.
  • rename unit-profession "custom profession" — меняет название профессии выбранного в окне игры существа.
  • rename building "имя" — устанавливает имя для выбранного сооружения. Сооружение должно быть складом, мастерской, печью, ловушкой, осадным орудием или зоной активности.

sort-units

Позволяет сортировать списки по алфавиту:

  • keybinding add Alt-Shift-N "sort-units name" "sort-items description" — соритровка дварфов по имени и веще по описанию.
  • keybinding add Alt-Shift-R "sort-units arrival" — сортировка дварфов по времени прибытия.
  • keybinding add Alt-Shift-T "sort-units profession" "sort-items type material" — сортировка дварфов по профессии и вещей по типу материала.
  • keybinding add Alt-Shift-Q "sort-units squad_position" "sort-items quality" — сортировка вещей по качеству.

Команды. Режим приключенца

adv-bodyswap

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

Использование:

  • Откройте информацию о существе/компаньоне. Выполните команду. Вы перехватите контроль над существом.
  • Для того, чтобы вернуться обратно, откройте экран статуса z и выполните команду снова.

advtools

Пакет утилит для режима приключенца (на текущий момент содержит лишь одну).

  • list-equipped [all] — Выводит список металлического оружия и доспехов на вас и ваших компаньонах. При использовании с параметром all показывает также неметаллические предметы.
  • metal-detector [all-types] [non-trader] — Показывает металлические доспехи и оружие в магазинах. Параметр all-types отключает проверку на тип объекта, а non-trader — показывает также объекты, находящиеся вне магазина.

Команды. Модификация карты

changelayer

Меняет материал геологического слоя под курсором на требуемый из числа неорганических RAW-материалов. Может затронуть не только зону высадки, но и окружающую ее местность.
По умолчанию не допускается менять камень на почву и наоборот.
По умолчанию меняется только слой под курсором. Не забывайте, что один слой может занимать несколько z-уровней.
По умолчанию меняется только геология, связанная с биомом под курсором, несмотря на то, что она может быть связана и с другими биомами. Жилы и кластеры внутри слоя сохранятся. Для их изменения нужно использовать команду changevein.

Параметры:

  • all_biomes — изменить выбранный слой на всех биомах карты. Остерегайтесь неприятных последствий, т.к. один слой может И БУДЕТ располагаться на нескольких z-уровнях нескольких биомов. Используйте команду probe, чтобы получить представление о том, как слои и биомы расположены на карте.
  • all_layers — меняет все слои на карте (но только для одного биома, если не использовать параметр all biomes). Сделает карту скучной, но аккуратной.
  • force — разрешает менять камень на почву и обратно. Осторожно! Может привести к неожиданным последствиям! Обратите внимание, что почва не будет магическим образом заменена камнем, а камень не будет магически заменен почвой. Однако у вас будет каменный пол после раскопок, если вы заменили почву камнем, так что вы можете сделать на нем гравировку. И наоборот, если вы заменили камень почвой, после раскопок вы получите пол из почвы и сможете выращивать на нем растения.
  • verbose — выводит некоторые подробности о том, что изменится.
  • trouble — предупреждает о возможных проблемах

Примеры:

changelayer GRANITE

Меняет слой под курсором на гранит.

changelayer SILTY_CLAY force

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

changelayer MARBLE all_biomes all_layers

Меняет все слои (кроме почвы) всех биомов на мрамор.

Примечания:

  • Если вы воспользовались командой, но ничего не произошло, попробуйте ненадолго поставить игру на паузу, а потом продолжить игру, двинуть курсор на другую клетку. Если не помогло, попробуйте еще раз. Если это не помогает — попробуйте временно изменить какой-нибудь другой слой, верните его обратно, а потом снова попробуйте заменить требуемый слой. Также может помочь перезапуск.
  • Все должно быть в порядке, если вы меняете только один слой, не используя force, однако лучше все-таки предварительно сохраниться.
  • Если вы меняете почву на камень — могут возникнуть странные последствия (клетки мигают, клетки заменены повсюду и т.д.). Попробуйте откатить изменения вручную, а лучше загрузите сохранение. Вы ведь сохранились, прежде чем?..

changevein

Меняет материал жилы под курсором требуемым неорганическим RAW-материалом. Затрагивает только клетки в пределах текущего блока 16х16. Для больших жил и кластеров используйте команду несколько раз.

Пример:

changevein NATIVE_PLATINUM — заменяет материал жилы под курсором самородной платиной.

changeitem

Позволяет менять материал и качество предмета. По умолчанию меняет выбранный в игре материал (например, выбранный клавишей k или внутри контейнера, инвентаря). По умолчанию менять разрешается только в пределах одного подтипа (дерево <-> дерево, камень <-> камень и т.д.). Это ограничение можно обойти с помощью команды force. Обратите внимание, что некоторые аттрибуты не будуз затронуты, что может привести к странным результатам. Для того, чтобы получить представление о том, как выглядит идентификатор RAW-материала, проверьте несколько предметов с помощью info. С помощью force можно получить предметы, которые невозможно сделать в мастерских (золотые кровати!)

Параметры:

  • info — ничего не меняет, просто выводит некоторую информацию о предмете.
  • here — меняет все предметы под курсором.
  • material, m — требуемый материал. Должен соответствовать корректному идентификатору RAW.
  • quality, q — меняет качество. Цифра от 0 до 5.
  • force — игнорирует подтипы, позволяет менять на любой материал.

Примеры:

changeitem m INORGANIC:GRANITE here

Делает все предметы под курсором гранитными.

changeitem q 5

Меняет качество выбранного предмета на шедевр.

colonies

Выводит список всех колоний вредителей на карте. Также может заменить их на колонии медоносных пчел.

Параметры:

createitem

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

  • Предпочтительнее отделять предмет от материала пробелом, а не двоеточием.
  • Если предмет не имеет подтипа, не указывайте ":NONE".
  • Если предмет — REMAINS, FISH, FISH_RAW, VERMIN, PET, или EGG, укажите CREATURE:CASTE вместо материала.

Утилитой нельзя создать трупы, части тел и приготовленную еду.
Примеры:

createitem GLOVES:ITEM_GLOVES_GAUNTLETS INORGANIC:STEEL 2

Создать две пары стальных рукавиц.

createitem WOOD PLANT_MAT:TOWER_CAP:WOOD

Создать бревно tower-cap.

createitem FISH FISH_SHAD:MALE 5

Создать 5 очищенных shad, готовых к употреблению.

create-items bars CREATURE_MAT:CAT:SOAP 10

Создать 10 кусков мыла из кошки.

deramp (by zilpin)

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

feature

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

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

Параметры:

  • list — показывает все особенности в зоне высадки
  • showX — помечает выбранную особенность (пещеру, озеро магмы и т.д.) как обнаруженную.
  • hideX — помечает выбранную особенность как не обнаруженную.

liquids

Позволяет добавить магму, обсидиан и воду. Заменяет обычную консоль DFHack, поэтому не может быть назначена для сочетания клавиш. Настройки команды стираются при закрытии DFHack. Предназначена для использования с командой liquids-here (которая может быть назначена для сочетания клавиш).

Режимы:

  • m — магма
  • w — вода
  • o — сделать обсидиановую стену
  • of — обсидиановый пол
  • rs — сделать исток реки
  • f — только менять поток
  • wcclean — убрать из параметров клетки флаги соленой и стоячей воды

Параметры (только для воды/магмы):

  • s+ — только увеличивать уровень жидкости.
  • s. — установить выбранный уровень жидкости.
  • s- — только уменьшать уровень жидкости.
  • f+ — жидкость будет с течением.
  • f. — не менять течение.
  • f- — жидкость будет стоячей.
  • 0-7 — установить уровень жидкости

Кисть:

  • point — одна клетка [p].
  • range — блок с курсором в нижнем северо-западном углу [r] (любое место и размер).
  • block — стандартный блок DF, внутри которого курсор (обычно 16х16х1).
  • column — колонна от курсора вверх до открытого пространства.
  • flood — клетки под курсором, покрытые полом (Используется только вместе с wclean).

Другое:

  • q — выход в консоль DFHack.
  • help или ? — справка.
  • Пустая строка — поместить жидкость.

Заметка:
Создание и удаление жидкости через DFhack может испортить данные для поиска путей, а также карты температуры (создавая тепловые ловушки).

liquids-here

Помещает жидкость под курсором, используя настройки из liquids (по умолчанию поместит под курсором клетку магмы уровнем 7/7). Курсор должен был активен. Команде можно назначить сочетание клавиш.

tiletypes

Используется для редактирования клеток карты, во многом похожа на liquids. Оперирует двумя наборами настроек и кистью. Кисть определяет какие клетки будут обработаны. Первый набор настроек — фильтр, может исключить из-под кисти клетки с определенными свойствами. Второй набор настроек — краска, определяет как выбранные клетки будут изменены.
Оба наборы настроек имеют кучу параметров, таких как форма (стена, пол и т.д.), материал (почва, камень, минерал и т.д.), состояние флагов назначений designated, hidden, освещенности.
Настройки могут быть заданы не полностью, так что вы можете сделать что-нибудь такое:

filter material STONE
filter shape FORTIFICATION
paint shape FLOOR

Это заменит все каменные фортификации полом, сохранив материал.
Или такое:

filter shape FLOOR
filter material MINERAL
paint shape WALL

Обращает полы из минералов обратно в стены.
Можно также менять некоторые флаги клетки:

paint hidden 1
paint hidden 0

Единица спрячет ранее разведанную клетку, 0 — откроет неразведанную.
Любые настройки можно отключить напрямую, используя ключевое слово ANY:

paint hidden ANY
paint shape ANY
filter material any
filter shape any
filter any

Можно использовать несколько кистей:

  • point — точка.
  • range — прямоугольник.
  • column — колонка от курсора вверх до первой твердой клетки.
  • block — стандартный блок DF (16x16).

Пример:

range 10 10 1

Делает кисть прямоугольником размером 10х10 и глубиной 1 уровень. Курсор должен находиться в нижнем северо-западном углу.

tiletypes-commands

Запускает команды утилиты tiletypes, разделенные ;. Это дает возможность менять режимы tiletypes с помощью горячих клавиш.

tiletypes-here

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

tiletypes-here-point

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

tubefill

Заново заполняет раскопанные адамантиновые жилы, но флаг вторжения демонов может остаться (известный баг).

extirpate

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

  • shrubs — уничтожить все кусты на карте.
  • trees — уничтожить все деревья на карте.
  • all — уничтожить все кусты и деревья.

grow

Все молодые деревья на карте (почти) мгновенно вырастут до взрослых деревьев.

immolate

Почти как extirpate, но деревья будут гореть. Огонь от них может (и будет!) распространяться.

regrass

Восстанавливает траву.

weather

По умолчанию показывает погоду на данный момент. Но может также управлять ею:

  • snow — вызвать снег.
  • rain — призвать дождь.
  • clear — сделать ясную погоду.

Команды. Исследование карты

cursecheck

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

  • detail — выводит полное имя, дату рождения, день, когда был проклят и некоторую другую информацию (хотя некоторые вампиры подделывают свою историю).
  • nick — устанавливает тип проклятия как никнейм (не всегда показывается в игре, некоторые вампиры не любят ников).
  • all — включает в список мертвых и неактивных. Можно получить очень длинный список после веселья с некромантами.
  • verbose — выводит все теги проклятий (если вам и правда хочется знать их все).

Примеры:

cursecheck detail all

Выводит расширенную информацию обо всех проклятых существах, в том числе мертвых и неактывных (курсор в игре неактивен)

cursecheck nick

Устанавливает ник всем живым/активным проклятым (курсор в игре неактивен)

Заметка:
Если вы делаете полный поиск (используя all) бывшие привидения будут выводиться с типом проклятия "неизвестно" en потому что флаг, который определяет их как привидений, уже снят. Но если неизвестный тип проклятия появится при поиске среди живых/активных проклятых, создатели DFHack просят поставить их в известность. К примеру, такое может случиться с модами, которые вводят в игру новые типы проклятий.

flows

Инструмент, позволяющий проверить, сколько на карте текущей жидкости. Если вы подозреваете, что ваше море магмы стекает в HFS, с помощью этого инструмента можно узнать это, не раскрывая карты.

probe

Выводит множество информации о клетке под курсором. Можно мерять температуру.

prospect

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

  • all — сканирует всю карту, как если бы она была исследована целиком.
  • value — выводит ценность. Полезно для самоцветов.
  • hell — выводит z-уровни трубок HFS. Включает в себя "all".

Перед высадкой

Результат выполнения команды reveal

Если использовать команду на экране выбора места для высадки, то она покажет оценку наличия слоев камней. В данном случает оценка будет только приблизительной (±30% от реального значения, а то и хуже). В частности, не совсем понятно, как вычислить сколько слоев почвы будет в месте высадки, так что она может накинуть лишних, а может и пропустить существующий.

  • all — выведет также оценку жил минералов.

reveal

Открывает карту. По умолчанию HFS останется скрытым, так что триггер на вторжение демонов не сработает. Можно использовать "reveal hell", чтобы открыть всю карту, но тогда вы не сможете снять игру с паузы, пока не спрячете карту обратно. Если все-таки нужно снять игру с паузы с разведанным адом — используйте "reveal demons".
Reveal работает и в режиме приключенца, но действие команды будет исчезать каждый раз, когда вы двигаетесь, так что в данном случае вам не нужно использовать "unreveal".

unreveal

Возвращает карту в исходное состояние после команды "reveal".

revtoggle

Переключает между "reveal" и "unreveal".

revflood

Скрывает всю карту, а затем открывает только те клетки, к которым есть путь от курсора.

revforget

Когда вы используете "reveal", исходное состояние карты сохраняется. "Unreveal" использует эту информацию, чтобы вернуть все обратно. Данная команда стирает эту информацию.

showmood

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

Команды. Указания

burrow

Предоставляет широкие возможности по управлению норами en, в том числе позволяет делать норы, автоматически расширяющиеся при раскопках.
Параметры:

  • enable feature ... — подключить функцию плагина
  • disable feature ... — отключить функцию плагина.
  • clear-units "Название норы 1" "Название норы 2" ... — удаляет из норы всех приписанных юнитов.
  • clear-tiles "Название норы 1" "Название норы 2" ... — удаляет из норы все приписанные клетки карты.
  • set-units "Целевая нора" "Нора-источник 1" ... — удаляет юнитов из целевой норы, затем добавляет в нее юнитов, приписанных к норам-источникам.
  • add-units "Целевая норма" "Нора-источник 1" ... — добавляет юнитов из нор-источников в целевую нору.
  • remove-units "Целевая норма" "Нора-источник 1" ... — удаляет из целевой норы тех юнитов, которые есть и в норах-источниках (разность множеств).
  • set-tiles "Целевая нора" "Нора-источник 1" ... — удаляет клетки карты из целевой норы, затем добавляет в нее клетки, приписанные к норам-источникам.
  • add-tiles "Целевая нора" "Нора-источник 1" ... — добавляет клетки из нор-источников в целевую нору.
  • remove-tiles "Целевая нора" "Нора-источник 1" ... — удаляет из целевой норы те клетки, которые есть и в норах-источниках (разность множеств).

Для трех последних парамертров вместо нор-источников можно использовать следующие ключевые слова:
ABOVE_GROUND ru, SUBTERRANEAN ru, INSIDE ru, OUTSIDE ru, LIGHT ru, DARK ru, HIDDEN ru, REVEALED ru.
Функции:

  • auto-grow — когда стена внутри норы, имя которой заканчивается на "+", раскопана, то нора автоматически расширяется до прилегающих свежераскопанных стен. Этот "+" в конце имени, можно опускать, если вы используете имя норы в параметрах команды burrow. Внимание: шахтер, находящийся внутри норы, будет копать одноклеточный коридор очень-очень долго.

digv

Дать указание на раскопку жилы целиком. Требуется активный курсор, указывающий на жилу. С параметром "x" будут учитываться также z-уровни (будут вырезаны лестницы в клетках того же материала).

digvx

Постоянный псевдоним для "digv x".

digl

Дает указание на раскопку слоя камней. Курсор должен указывать на слой. С параметром "x" будут учитываться также z-уровни (будут вырезаны лестницы в клетках того же материала). С параметром "undo" отменяет указание на раскопку (вдруг вам покажется, что раскопка слоя в 50 z-уровней — не такая хорошая идея?).

diglx

Постоянный псевдоним для "digl x".

digexp

digexp ladder
digexp cross

Команда для геологической разведки. Команда оперирует двумя переменными: паттерном и фильтром.
Паттерны:

  • diag5 — диагонали, разделенные пятью клетками.
  • diag5r — то же самое, но повернуто на 90 градусов.
  • ladderступенчатый паттерн.
  • ladderr — ступенчатый паттерн, повернутый на 90 градусов.
  • clear — удалить все указания на раскопки.
  • cross — крест в самом центре карты.

Фильтры:

  • all — разместить паттерн на всем z-уровне.
  • hidden — разместить паттерн только на скрытых клетках уровня (по умолчанию).
  • designated — разместить паттерн внутри размеченных областей.

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

digexp diag5 hidden

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

digexp

Применить последние паттерн и фильтр.

digexp ladder designated

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

digcircle

Команда для легкой разметки кругов и окружностей. Имеет несколько типов опций.

Форма:

  • hollow — окружность (по умолчанию).
  • filled — круг.
  • # — диаметр в клетках (по умолчанию — 0, ничего не делает).

Действия:

  • set — разметить фигуру (по умолчанию).
  • inset — убрать разметку.
  • invert — убирает/размечает последнюю фигуру.

Указания:

  • dig — просто копать (по умолчанию).
  • ramp — копать рампы.
  • ustair — копать лестницы вверх.
  • dstair — лестницы вниз.
  • xstair — двунаправленные лестницы
  • chan — канал.

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

Примеры:

digcircle filled 3

Копать круг диаметром 3

digcircle

То же самое еще раз.

digtype

Это команда дает каждой клетке карты с жилой того же типа то же указание, что у клетки под курсором. Если у выбранного файла нет указания — будет дано указание копать. Если же дан аргумент, то указание выбранной клетки игнорируется в пользу аргумента.
Аргументы:

  • dig — копать.
  • channel — канал.
  • ramp — рампа.
  • updown — двунаправленная лестница.
  • up — лестница вверх.
  • down — лестница вниз.
  • clear — удалить указания.

filltraffic

Назначить приоритет зоны передвижения на клетки, покрытые полом, начиная от курсора. Коды приоритетов:

  • H — высокий траффик.
  • N — обычный траффик.
  • L — низкий траффик.
  • R — нежелательная для передвижения зона.

Другие параметры:

  • X — назначать сквозь z-уровни.
  • B — включая здания и склады.
  • P — включая пустое пространство.

Пример:

filltraffic H

Если использовать в комнате с дверьми, назначит высокий траффик только внутри комнаты.

alltraffic

Установить приоритет зоны передвижения всем клеткам карты (полезно для сброса приоритетов). Коды приоритетов:

  • H — высокий траффик.
  • N — обычный траффик.
  • L — низкий траффик.
  • R — нежелательная для передвижения зона.

Пример:

alltraffic N

Установить обычный приоритет для всех клеток карты.

restrictliquid

Установить приоритет передвижения restricted для всех видимых тайлов с жидкостями.

restrictice

Установить приоритет передвижения restricted для всех видимых тайлов, покрытых льдом.

getplants

Команда позволяет по идентификатору RAW собрать определенные растения или вырубить конкретный вид деревьев. Имена должны быть разделены пробелом, если типов растений/деревьев несколько.
Параметры:

  • -t — выбрать только деревья (исключить кусты).
  • -s — выбрать только кусты (исключить деревья).
  • -c — очистить указания вместо их установки.
  • -x — применить ко всем растениям, кроме указанных (обратить выделение).

Выбор параметров "-t" и "-s" одновременно не даст никакого результата. Если не указано ни одного ID, будут выбраны все корректные ID растений.

Команды. Очистка и вывоз мусора

clean

Удаляет всю грязь, скопившуюся на карте, предметах и существах. В старой крепости это может значительно повысить FPS. Также может заспойлерить !!FUN!!, так что хорошенько подумайте перед использованием.
Параметры:

  • map — очищает клетки карты. По умолчанию не трогает ил и снег.
  • units — очищает сущевств. Даже враждебных.
  • items — очистит все предметы. Даже отравленный нож.
  • all — очистит все предметы, существ и клетки карты.

Аттрибуты для "map":

  • mud — удаляет еще и ил.
  • snow — удаляет и снег.

spotclean

То же, что и "clean map snow mud", но чистит только клетку под курсором.

autodump

Утилита, позволяющая быстро переместить все предметы, помеченные, как мусор. Предметы мгновенно переместятся в позицию курсора, причем флаг "dump" будет снят, а флаг "forbid" поставлен — словно они были выкинуты обычным путем. Имейте в виду, что все активные задачи по выносу мусора так и будут указывать на объект. Курсор нужно поместить над клеткой пола.
Параметры:

  • destroy — Не выкидывать, а просто уничтожить. Курсор не нужен.
  • destroy-here — уничтожить только те помеченные предметы, что под курсором.
  • visible — обрабатывать только объекты, которые не скрыты.
  • hidden — обрабатывать только скрытые объекты.
  • forbidden — обрабатывать только запрещенные объекты (по умолчанию обрабатываются только не запрещенные).

autodump-destroy-here

Уничтожить предметы под курсором помеченные как мусор. Аналогично "autodump destroy-here", но можно использовать с сочетанием клавиш.

autodump-destroy-item

Уничтожить выбранную вещь. Вещь может быть выбрана как внутри контейнера, так и в списке по клавише k. Если выполнена второй раз прежде, чем игра будет возобновлена — отменит уничтожение.

cleanowned

Конфискует собственность дварфа. По умолчанию конфискуются и выбрасываются испорченные вещи и еда, валяющаяся на полу.
Параметры:

  • all — конфискуются все вещи.
  • scattered — конфискуются и выбрасываются все вещи, разбросанные на полу.
  • x — конфискуются и выбрасываются вещи с износом "x" и более.
  • X конфискуются и выбрасываются вещи с износом "X" и более.
  • dryrun — тестовый прогон. Используйте с другими параметрами, чтобы посмотреть, что произошло бы, не будь это репетицией.

Пример:

cleanowned scattered X

Будет конфискована испорченная и брошенная еда, разбросанные на полу вещи и любые вещи со степенью износа "X" и выше.

Команды. Багфиксы

drybuckets

Удаляет воду из всех ведер, позволяя использовать их для производства щелочи.

fixdiplomats

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

fixmerchants

Добавляет все человеческим цивилизациям должность торгового представителя, позволяя им заключать торговые соглашения (как они делали это до версии 0.28.181.40d).

fixveins

Удаляет некорректные ссылки на включения минералов, восстанавливает потерянные. Полезно, если вы накосячили с утилитами вроде tiletypes или случайно возвели конструкцию на полу из ценного минерала.

tweak

Исправления мелких багов.
Субкоманды:

  • clear-missing — удаляет статус "пропавший" en у выбранного юнита. Позволяет выгравировать мемориальную плиту для привидения существа, тело которого не найдено.
  • clear-ghostly — удаляет статус "пропавший" en у выбранного юнита и помечает его как мертвого. Позволяет упокоить забагованных призраков, которые не показываются в меню гравировки мемориальной плиты даже после команды clear-missing. Работает, но возможно представляет большую опасность, так что будьте осторожны. Вероятно (почти точно) это не даст того же эффекта, что и нормальные похороны. Вас предупредили.
  • fixmigrant — удаляет у выбранного юнита флаг "житель/торговец". Предназначено для исправления бага с мигрантами/торговцами, которые застыли на краю карты и не идут в крепость. Работает только на дварфах (или на расе игрока, если это мод). Не злоупотребляйте этим на нормальных торговцах. (если уж вам так хочется их похитить — используйте "tweak makeown", иначе их одежда будет forbidden ru и т.д.).
  • makeown — вынуждает выбранного юнита стать членом вашей крепости. Так можно грабить караваны вместе с торговцами и их эскортом, даже если они не принадлежат к расе игрока. Иностранцы (люди, эльфы) могут работать, но им нельзя назначать комнаты и они не будут отображаться в DwarfTherapist, потому что игра считает их чем-то вроде домашних животных. Захват животных с каравана может дать странные эффекты (животные сходят с ума, становятся берсерками или вовсе не считаются прирученными), но вы можете отправить их на скотобойню. Если захватить повозки таким образом, будет генерироваться забавный спам.

Субкоманды, которые действуют до перезапуска DF:

Результат работы readable-build-plate
  • stable-cursor — в режиме крепости сохраняет позицию курсора при переключении между меню t, q, k, d и т.п.
  • patrol-duty — делает так, чтобы приказы на тренировку не считались патрулями, что препятствует накоплению плохих мыслей. Не решает проблемы, когда солдаты уходят со службы, становясь гражданскими.
  • readable-build-plate — исправляет показ весового лимита в меню постройки нажимной плиты.
  • stable-temp — Исправляет баг производительности 6012, сглаживая колебания в обновлениях температуры.. В очень-очень крупных крепостях с большими складами может улучшить FPS на 50-100%
  • fast-heat — еще больше улучшает производительность при обновлении температур, делая так, чтобы изменение на 1 градус происходила не более чем за заданное число фреймов. Это уменьшает время, которое требуется stable-temp, чтобы прекратить обновления температур после того, как температурное равновесие было нарушено.
  • fix-dimensions — исправляет вычитание небольшого количества нити/ткани/жидкости из стека путем разделения стека и вычитания оттуда одной вещи. Обязательное дополнение к патчу для бага 808.
  • advmode-contained — работает с багом 6202, т.е. с кастомными реакциями с содержимым контейнера в режиме приключенца. Дело в том, что экран пытается заставить вас выбрать содержимое отдельно от контейнера. Это исправление в принудительном порядке пропускает дочерние реагенты.
  • fast-trade — делает так, чтобы нажатие ShiftEnter на экране торговли и в меню Move Goods to Depot выбирало текущую вещь (полностью, если это стек) и перемещало курсор на следующую строку.
Результат работы military-color-assigned
  • military-stable-assign — сохраняет позицию курсора в меню назначения в отряд, т.е. курсор в меню со списком дварфов не будет постоянно оказываться вверху списка.
  • military-color-assigned — окрашивает имена солдат, уже назначенных в другие отряды в зеленый/коричневый цвет в списке кандидатов на назначение в отряд.
  • military-training — ускоряет тренировку отряда за счет устранения почти наверняка неумышленно сделанной Toady обратной зависимости скорости тренировки к количеству юнитов. (Т.е. чем больше юнитов — тем медленней). Также заставляет юнитов больше спарринговаться.

fix-armory

Включает хранение экипировки отряда в бараках.
Не дает носильщикам таскать экипировку отряда на склады, а с них обратно в weapon racks, armor stands и контейнеры.

Примечание: Чтобы это действительно работало необходимо пропатчить weapon racks и вручную приписать их к отряду. См. ниже документацию на gui/assign-rack.
К тому же, стандартная вместимость armor stand'ов довольно низка. Возможно вам заохочется увеличить ее патчем armorstand-capacity. Подробности.
Постройки в оружейной используются так:

  • Weapon rack (пропатченные) хранят любое оружие отряда. Каждый принадлежит конкретному отряду и может хранить до пяти предметов.
  • Armor stand принадлежат членам конкретного отряда и хранят броню и щиты. По умолчанию один armor stand хранит один предмет (вплоть до единственного ботинка или перчатки). Пропатченный хранит 2 предмета, этого должно быть достаточно.
  • Cabinet хранит одежду, приписанную члену конкретного отряда. Никогда не хранят их собственную одежду.
  • Chest (box и т.д.) хранит flask, backpack или quiver члена конкретного отряда. Возможно баг, но еда вываливается из рюкзака, когда тот хранится.

Предупреждение:

Хотя оружейные стойки, шкафы и комоды принадлежать только одному члену отряда, владелец фурнитуры, использованной для создания казармы, будет случайным образом пользоваться любыми контейнерами в комнате. Поэтому рекомендуется всегда создавать оружейную комнату из weapon rack.

Вопреки распространенному заблуждению, все эти возможности контролируются флагом Individual Equipment ru. Флаг Squad Equipment ru на самом деле предназначен для боеприпасов, но в данной сфере игра делает даже меньше, чем с броней и оружием. Данный плагин практически с нуля реализует следующий набор правил:

  • Боевые патроны en хранятся внутри комнаты, в chest со включенным Squad Equipment ru.
  • Если chest приписан к члену отряда и флаг Individual Equipment ru установлен, он будет использоваться только для боеприпасов отряда; иначе любые отряды с флагом Squad Equipment у комнаты будут использовать любые chest случайным образом.
  • Тренировочные патроны en хранятся в chest'ах внутри archery range размеченных из мишеней и контролируются флагом Train, как и сама тренировка стрельбы. Это вызвано каким-то дохлым кодом от weapon rack'ов.

Кое-какие следы в коде игры показывают, что первое правило задал Тоади; остальные введены этим плагином.

caravan

Настраивает свойства караванов на карте.
Возможные варианты:

  • list: выводит идентификаторы и информацию обо всех караванах на карте — [IDS].
  • extend [DAYS] [IDS]: продлевает время, в течение которого караваны остаются на складе, на указанное количество дней (по умолчанию 7, если не указано). Также заставляет караваны возвращаться в депо, если применимо. [IDS] — идентификатор (не обязательно).
  • happy [IDS]: заставляет караваны снова торговать (после захвата товаров, раздражения торговцев и т. д.). Также заставляет караваны возвращаться в депо, если применимо.
  • leave [IDS]: заставляет караваны собираться и немедленно уходить.

Например, caravan extend 1 заставляет все караваны на карте пробыть еще 1 день.

Команды. Переключение режимов игры и возврат крепости

lair

Позволяет пометить карту как "логово монстров", что предотвращает разбрасывание предметов, когда вы бросаете крепость. "lair reset" делает снимает метку. В отличие от "reveal", эта команда не сохраняет информацию, так что вы не сможете восстановить информацию о настоящих логовах с помощью "lair reset".
Параметры:

  • lair — помечает карту как логово монстров.
  • lair reset — помечает карту обычной (не логовом).

mode

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

Пример:

  • mode — показывает в каком режиме находится игра
  • mode set — вызывает функцию для изменения режима

Вы управляете крепостью и ставите игру на паузу. Затем переключаетесь в режим арены и берете существо под контроль en и переключаетесь в режим приключенца. Вы только что потеряли крепость и стали приключенцем. Можно вот еще что: вы управляете из режима крепости, ставите игру на паузу, перейдя в главное меню Esc. Переключаетесь в режим приключенца, потом используете Dfusion для того, чтобы взять существо под контроль en, затем сохраняетесь или уходите в отставку en. Вы создали возвращаемую крепость и стали приключенцем.

Автор не несет ответственности за последствия использования этой команды.

Команды. Визуализатор и экспорт данных

ssense / stonesense

Пример работы Stonesense

Stonesense — изометрический визуализатор, работающий в другом окне. Для работы требуется графический ускоритель и по крайней мере двухядерный процессор (иначе программа замедлит DF).
Все данные хранятся в директории "stonesense". Более подробная инструкция в stonesense/README.txt
Совместима с Windows XP sp3 и выше, а также с современными дистрибутивами Linux.
Старые версии, поддержка, дополнительная графика здесь.
Дополнительные ресурсы.

mapexport

Экспортирует текущую карту в файл. Можно будет использовать с визуализаторами.

dwarfexport

Экспортирует дварфов в RuneSmith-совместимый XML.

Команды. Управление заданиями

job

Команда для получения информации о заданиях и управления заданиями.
Параметры:

  • без параметров — выводит подробную информацию о работе, выбранной в мастерской или на экранах юнитов en и работ en.
  • list — выводит информацию обо всех работах в выбранной мастерской.
  • item-material <item-idx> <material[:subtoken]> — подставляет ID конкретного материала в задание на работу.
  • item-type <item-idx> <type[:subtype]> — подставляет точный ID типа предмета в задание.

job-material

Меняет материал, используемый в выбранной работе.
Работает так:

job-material <inorganic-token>

Используется с сочетанием клавиш:

  • В меню q, когда работа выбрана в мастерской или печи, меняет материал используемый для работы. Можно использовать только неорганические материалы.
  • В меню b, в ходе выбора компонентов постройки, курсор переместится на первый попавшийся компонент с выбранным материалом.

job-duplicate

  • В меню q, когда работа выбрана в мастерской или печи, дублирует ее.

workflow

Управление прозводственным потоком.

Использование:

workflow enable [option...], workflow disable [option...]

Без параметров команды выше просто включают и выключают плагин. А с параметрами:

  • drybuckets — автоматически опустошает брошенные ведра.
  • auto-melt — возобновляет плавильные работы, когда есть объекты для плавления.
workflow jobs

Выводит список работ, контролируемых workflow (если они в мастерских, то фильтруется по ним).

workflow list

Выводит список активных ограничений и число их работ.

workflow list-commands

Выводит список активных ограничений в виде команд workflow, которые задают их; этот список можно скопировать в файл, а потом загрузить с помощью встроенной команды script.

workflow count <constraint-spec> <cnt-limit> [cnt-gap]

Задать ограничение, считая каждые стек одним предметом.

workflow amount <constraint-spec> <cnt-limit> [cnt-gap]

Задать ограничение, считая все предметы внутри стека.

workflow unlimit <constraint-spec>

Удалить ограничение.

workflow unlimit-all

Удалить все ограничения.

Функции

Будучи запущенным, плагин защищает все работы на повторе от удаления. Если они почему-либо исчезают, то немедленно добавляются в мастерскую заново и приостанавливаются.
К тому же, когда заданы ограничения на число предметов, работы на повторе, производящие эти предметы, будут автоматически останавливаться и запускаться, если число предметов будет выше или ниже лимита. Допуск (gap) определяет то, насколько ниже лимита должно упасть число предметов, прежде чем работа снова запустится; он предназначен для того, чтобы снизить частоту переключения состояний работы.
Скрипт gui/workflow, описанный ниже — простой интерфейс, интегрированный в игру.

Формат ограничений

Определение ограничения состоит из четырех частей, разделенных символом "/":

ITEM[:SUBTYPE]/[GENERIC_MAT,...]/[SPECIFIC_MAT:...]/[LOCAL,<quality>]

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

Последующие части опциональны:

  • Generic material ru сужает ограничение на материал предмета до одного из жестко заданных классов, которые на текущий момент включают:
PLANT WOOD CLOTH SILK LEATHER BONE 
SHELL SOAP TOOTH HORN PEARL YARN
METAL STONE SAND GLASS CLAY MILK
  • specific material ru выбирает точный материал, используя raw-синтаксис для входных материалов реакций, например, INORGANIC:IRON, однако для удобства можно и просто IRON, или ACACIA:WOOD и т.п. См. токены материалов, для получения более детальной информации.
  • Список разных флагов, разделенных запятой, которые на данный момент могут использоваться для того, чтобы игнорировать импортированные предметы или предметы с качеством ниже заданного.

Примеры ограничений:

Держать количество металлических болтов в пределах 900-1000, а деревянных и костяных — 150-200.

workflow amount AMMO:ITEM_AMMO_BOLTS/METAL 1000 100
workflow amount AMMO:ITEM_AMMO_BOLTS/WOOD,BONE 200 50

Держать количество стеков готовой еды и выпивки между 90 и 120

workflow count FOOD 120 30
workflow count DRINK 120 30

Быть уверенным, что всегда есть 25-30 пустых ящиков, бочек, сумок.

workflow count BIN 30
workflow count BARREL 30
workflow count BOX/CLOTH,SILK,YARN 30

Быть уверенным, что всегда есть 15-20 угля и 25-30 медных слитков.

workflow count BAR//COAL 20
workflow count BAR//COPPER 30

Производить 15-20 крафта из золота.

workflow count CRAFTS//GOLD 20

Собирать 15-20 сумок песка и кусков глины.

workflow count POWDER_MISC/SAND 20
workflow count BOULDER/CLAY 20

Быть уверенным, что всегда есть 80-100 dimple dye.

workflow amount POWDER_MISC//MUSHROOM_CUP_DIMPLE:MILL 100 20

Примечание

Чтобы это работало, вам нужно поменять материал на входе работы Mill Plants с PLANT на MUSHROOM_CUP_DIMPLE, воспользовавшись командой 'job item-material'. Иначе плагин не сможет отследить выходной материал.

Поддерживать 10-100 предметов местного крафта исключительного качества.

workflow count CRAFTS///LOCAL,EXCEPTIONAL 100 90

Команды. Управление крепостью

seedwatch

Включает и выключает приготовление семян и растений в зависимости от их количества. Для каждого вида растений может быть назначен свой лимит. Когда количество растений и семян этого типа падает ниже лимита — их приготовление запрещается. Когда количество вырастает больше лимита + 20 штук, приготовление разрешается.
Плагин требует того, чтобы игра работала в режиме крепости, иначе он автоматически завершает работу. Вам потребуется перезапускать его при каждом запуске режима крепости с помощью "seedwatch start".
Параметры:

  • seedwatch all — добавляет в список мониторинга все растения из листа аббревиатур.
  • seedwatch start — запускает мониторинг.
  • seedwatch stop — останавливает мониторинг.
  • seedwatch info — показывает осуществляется ли мониторинг, выводит список мониторинга.
  • seedwatch clean — очистка списка мониторинга.

Можно использовать следующие аббревиатуры для растений:

Примеры:

seedwatch MUSHROOM_HELMET_PLUMP 30

Добавить Plump helmet в список мониторинга, лимит — 30.

seedwatch MUSHROOM_HELMET_PLUMP

Удаляет Plump helmet из списка мониторинга.

seedwatch ph 30

То же самое, что и "seedwatch MUSHROOM_HELMET_PLUMP 30".

seedwatch all 30

Добавить все растения из списка аббревиатур в список мониторинга. Лимит — 30.

zone

Небольшая помощь в управлении зонами активности (пастбищами, ямами, прудами) и клетками.

Параметры:

  • set — устанавливает зону или клетку под курсором как клетку/зону по умолчанию для приписывания животных в будущем.
  • assign — привязать юнита/юнитов к пастбищу или яме, выбранной параметром "set". Если фильтры не заданы — юнит должен быть выбран в игре. Параметру может следовать ID зоны, которая будет использоваться взамен той, что по умолчанию.
  • unassign — открепить выбранное существо от его зоны.
  • nick <nickname> — массовое назначение ников.
  • rem-nick — массовое удаление ников.
  • tocages — разместить юнита/юнитов в клетках внутри пастбища.
  • uinfo — вывести данные о юните/юнитах. Если фильтры не заданы — юнит должен быть выбран в игре.
  • zinfo — вывести данные о зоне/зонах. Без фильтров будет выведена информация о зонах под курсором.
  • verbose — еще информация.
  • filters — вывести список параметров фильтра.
  • examples — вывести примеры использования.
  • not — "НЕ", отрицание следующего ключевого слова (для фильтра).

Фильтры:

  • all — обработать всех юнитов (для использования вместе с другими фильтрами).
  • count <N> — Обработать только N юнитов, где N — число. (для использования вместе с другими фильтрами).
  • unassugned — выбирать не приписанных к зоне, цепи или установленной клетке.
  • minage <age> — Минимальный возраст для отбора. Age — возраст.
  • maxage <age> — Максимальный возраст для отбора. Age — возраст.
  • race <rase RAW ID> — Раса для выбора. Должно употребляться с идентификатором расы (напр. BIRD_TURKEY, ALPACA и т.п.). Можно использовать с NOT.
  • caged — выбрать находящихся в установленной клетке. Можно использовать с NOT.
  • own — выбирать из принадлежащих цивилизации. Можно использовать с NOT.
  • merchant — торговец/принадлежащие торговцу. Должно использоваться для размещения животных в ямах, а не ждя их кражи (убой скота должен работать).
  • war — выбор боевых животных. Можно использовать с NOT.
  • hunting — выбор охотничьих животных. Можно использовать с NOT.
  • tamed — выбор питомцев. Можно использовать с NOT.
  • trained — тренированное животное. Находит охотничьих/боевых животных так же как и тех, чей уровень тренировки выше чем "одомашненный". Если вам нужны именно охотничьи/боевые особи ищите по "war" или "hunting". Можно использовать с NOT.
  • trainablewar — существо может быть тренировано для боя (но еще не тренировано). Можно использовать с NOT.
  • trainablehunt — может быть тренировано для охоты (но еще не тренировано). Можно использовать с NOT.
  • male — самец. Можно использовать с NOT.
  • female — самка. Можно использовать с NOT.
  • egglayer — раса относится к яйцекладущим. Можно использовать с NOT.
  • grazer — травоядное. Можно использовать с NOT.
  • milkable — млекопитающее. Можно использовать с NOT.

Использование с отдельными юнитами:
Один из удобных способов использования команды — назначение сочетания клавиш на команду "zone assign", а может еще и "zone set". Поместите курсор на пастбище или яму, используйте "zone set", чтобы пометить его. Теперь вы можете выбирать юнитов на карте (с помощью v или k) и использовать "zone assign", чтобы приписать их к новому дому (который вы пометили командой "zone set"). Кстати, позволяет сажать в ямы дварфов.

Использование с фильтрами:
Все фильтры можно использовать с командой "assign".
Ограничения: невозможно назначать юнитов, которые находятся внутри установленной клетки или на цепи потому, что в большинстве случаев это весьма нежелательно. Невозможно засунуть в клетку животное, у которого есть владелец, потому что владелец вскоре вытащит его из клетки, что приведет к бесконечному тасканию животного туда-сюда.
Обычно стоит использовать фильтр "own" (включающий в себя "tame"), если вы конечно не хотите использовать команду для того, чтобы садить в яму гостей. "own" игнорирует дварфов, если вы не укажете конкретно "race DWARF" (поэтому можно без опасений использовать "assign all own" для того, чтобы согнать всех ваших животных на одно большое пастбище). "egglayer" и "milkable" должно использоваться вместе с "female", если только у вас не установлен мод, который делает эльфийских мужиков яйцекладущими и все такое. Тогровцы и их животные игнорируются, если не использовать "merchant" (их можно засадить в ямы без всяких проблем, но красть и пасти их животных — не такая хорошая идея, т.к. они толком не значатся вашими. При этом их вполне можно пустить на убой). Многие фильтры могут идти с отрицанием (напр. "not grazer" — не травоядное).

Массовое переименование
Командой "nick" можно дать одинаковый ник множеству юнитов. Если используется без "assign", "all" или "count" — переименует всех юнитов в целевой зоне. В комбинации с "assign", "all" или "count" (и другими фильтрами) команда переименует юнитов, попадающих под условия фильтра.

Зоны с клетками
Используя "tocages" вы можете отправить юнитов в набор клеток, например в комнаты рядом со скотобойней. Животные будут распределены между доступными клетками, чтобы оптимизировать работы по переноске в клетки и из клеток (на бойню). Чтобы все это работало нужно установить клетки, а потом поместить одну зону pen/pasture над ними, закрыв ей все клетки, которые вы хотите использовать. Затем используйте "zone set" и "zone tocages filter1 filter2 ...". "tocages" затирает "assign", потому что их использование вместе не имеет смысла, но может использоваться с "nick", "remnick" и всеми фильтрами.

Примеры:

zone assign all own ALPACA minage 3 maxage 10

Отправить всех принадлежащих вашей крепости альпаков, возрастом от 3 до 10 лет на выбранное пастбище.

zone assign all own caged grazer nick ineedgrass

Отправить всех принадлежащих вашей крепости травоядных, сидящих в клетках на складах (напр. после покупки у каравана) на выбранное пастбище и дать им ник "ineedgrass".

zone assign all own not grazer not race CAT

Привязать к зоне всех принадлежащих вашей крепости НЕ травоядных, кроме котов.

zone assign count 5 own female milkable

Отправить до 5 принадлежащих вашей крепости самок сущевств, дающих молоко, на выбранное пастбище.

zone assign all own race DWARF maxage 2

Сбросить всех ваших бесполезных детей в яму:)

zone nick donttouchme

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

zone tocages count 50 own tame male not grazer

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

autonestbox

Назначает яйцекладущих самок, не находящихся на пастбище в зоны с гнездовищами. Для этого нужно создать зоны pen/pasture над гнездовищами. Если пастбище больше, чем 1х1, гнездовище должно находиться в верхнем левом углу. На каждое пастбище, независимо от размера, будет назначено только одно животное. Возраст на текущий момент не проверяется, большинство птиц быстро взрослеют. Яйцекладущие, являющиеся еще и травоядными игнорируются, т.к. сажать их на пастбище в одну клетку — не слишком здравая мысль. Обработаны будут только питомцы и одомашненные особи, принадлежащие крепости, потому что полудикие особи разрушат ваши красивые зоны с насестами, если вновь одичают. Команда, вызванная без параметров будет выполнена один раз.

Параметры:

  • start — начать выполнение через каждые Х тиков. По умолчанию Х = 6000, примерно каждые 60 секунд при 100 FPS.
  • stop — остановить автоматическое выполнение.
  • sleep X — меняет время ожидания между автозапусками команды на Х тиков.

autobutcher

Autobutcher (автомясник) назначает на убой скот, когда его количество превышает определенное число (по умолчанию — 1 мужской, 5 женских детей; 1 мужской, 5 женских взрослых). Только tame (прирученные) животные будут назначаться. Именованные, боевые, охотничьи животные не будут назначаться.

  • autobutcher start — запустить скрипт
  • autobutcher stop — остановить скрипт
  • autobutcher sleep X — количество фреймов между запусками скрипта
  • autobutcher watch R — наблюдать за расой, R — id расы из равов (ALPACA, BIRD_TURKEY, RAT_GIANT, etc) или all
  • autobutcher unwatch R — прекратить наблюдать за расой R
  • autobutcher forget R — прекратить наблюдать и обнулить настройки для расы
  • autobutcher autowatch — включить автоматическое добавление новых рас
  • autobutcher noautowatch — выключить автоматическое добавление новых рас
  • autobutcher list — статус и список наблюдаемых рас
  • autobutcher list_export — сохранить в файл, который можно использовать, чтоб копировать настройки autobutcher в другой сейв.

Последовательность операций для копирования сейва: 1 — запустить сейв с нужными настройками; 2 — Зайти в папку с ДФ проводником или другим файловым менеджером; 3 — набрать в командной строке "dfhack-run autobutcher list_export > autobutcher.bat"; 4 — Закрыть текущий сейв, открыть новый, куда настройки копировать планируется; 5 — запустить autobutcher.bat.

  • autobutcher target fk mk fa ma R — установить допустимое количество особей для расы, где fk — дети женского пола, mk — дети мужского пола, fa — взрослые женского пола, ma — взрослые мужского пола, R — id расы (можно использовать также значения all — настройки для всех, и new — для будущих добавлений.

Примеры:
Итак, ваша цель — держать до 7 детенышей (4 самки, 3 самца) и до 3 взрослых (2 самки, 1 самец) альпак. Когда детеныши вырастают — старейшие из взрослых особей идут на забой. При этом детенышей будут забивать самых молодых, чтобы другие могли вырастать до взрослых особей. Любая кошка без имени будет зарезана при первой возможности:

autobutcher target 4 3 2 1 ALPACA BIRD_TURKEY
autobutcher target 0 0 0 0 CAT
autobutcher watch ALPACA BIRD_TURKEY CAT
autobutcher start

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

autobutcher target 0 0 0 0 new
autobutcher autowatch
autobutcher start

Прекратить наблюдение за расами альпак и кошек, но помнить настройки для этих рас, чтобы потом не вводить настройки заново. Чтобы добиться этого, нужно использовать "unwatch".
Важно: "autobutcher unwatch all" работает, но имеет смысл только если вы держите плагин запущенным в режиме "autowatch" или вручную добавили несколько новых рас с помощью "watch". Если вы просто хотите остановить работу плагина — используйте "autobutcher stop".

 autobutcher unwatch ALPACA CAT

autolabor

Автоматически управляет рабочими обязанностями дварфов.
Будучи запущенным, autolabor периодически проверяет дварфов, включает и выключает их labors. Утилита пытается держать загруженными работой как можно больше дварфов, но при этом сделать из них специалистов.
Предупреждение: работая, утилита перезапишет любые ручные изменения, внесенные вами в рабочие обязанности.
Использование:

  • autolabor enable — включить плагин.
  • autolabor disable — выключить.
  • autolabor <labor> <минимум> [<максимум>] — установить количество дварфов для работы <labor>. Максимум — необязательный параметр.
  • autolabor <labor> haulers — работа <labor> будет выполняться переносчиками.
  • autolabor <labor> disable — отключить autolabor для работы <labor>.
  • autolabor <labor> reset — сбросить настройки для этой работы к умолчаниям.
  • autolabor reset-all — сбросить настройки всех работ.
  • autolabor list — текущая информация обо всех рабочих обязанностях.
  • autolabor status — показать общую информацию.

Примеры:

autolabor MINE 2

Держать минимум двух шахтеров.

autolabor CUT_GEM 1 1

Держать одного и только одного дварфа как огранщика.

autolabor FEED_WATER_CIVILIANS haulers

Переносчики будут кормить больных дварфов и давать им воду.

autolabor CUTWOOD disable

Отключает autolabor для рубки леса.

Команды. Прочее

catsplosion

Мгновенно размножает котов. Использовать эту команду более одного-двух раз — довольно плохая идея.

dfusion

DFusion — сборник lua-плагинов от warmist/darius, запускаемый как плагин DFHack. Подтверждена работа следующих плагинов DFusion:

  • simple_embark — позволяет изменить число дварфов на этапе высадки.

Примечание:

  • Некоторые из плагинов DFusion пока не портированы до конца. Это может привести к падениям.
  • На текущий момент работает только под Windows.
  • Игра будет заморожена, пока вы используете этот плагин. Если она не отвечает — не паникуйте.

misery

Если включена, то все новые плохие мысли будут умножаться (по умолчанию на 2).
Использование:

  • misery enable n — включить misery c множителем n. Множитель должен быть положительным.
  • misery n — то же, что и "misery enable n".
  • misery enable — то же, что и "misery enable 2".
  • misery disable — прекратить добавление дополнительных плохих мыслей. Не удаляет уже накопившиеся. Эквивалент — "misery 1".
  • misery clear — удаляет фальшивые плохие мысли, добавленные в этой сессии DF. После сохранения мысли остаются навсегда! Не меняет множитель.

spawnunit

Создает указанное существо. spawnunit [-command] RACE CASTE [NAME] [x y z] Значения:

  • -command — препятствует выполнению команды, но пишет результат для проверки правильности работы перед применением.
  • RACE — раса в raw файлах. Например, DOG.
  • CASTE — каста в рамках расы. Например, MALE.
  • [NAME] — имя, можно не заполонять.
  • [x y z] — координаты появления. Если нет, то существо появляется под курсором.

Пример создания собаки (дикой): spawnunit DOG MALE

Скрипты

Скрипты на lua и ruby, помещенные в папку hack/scripts можно запускать, будто они являются командами DFHack. Они будут перечислены в конце списка, выводимого командой "ls".
Примечание: скрипты в подпапках директории hack/scripts также можно вызывать, но по команде "ls" они будут выводиться, только если использовать "ls -a". Это предназначено для того, чтобы скрыть неактуальные скрипты, скрипты для разработчиков и те, что предназначены для использования в сочетаниях клавиш.

fix/*

Скрипты в этой подпапке исправляют разные баги:

  • fix/dead-units — удаляет никому не интересных мертвых из unit List. Не дает какого-либо заметного выигрыша в производительности, однако, когда список юнитов достигает примерно 3000 — мигранты перестают приходить. Этот скрипт позволить волнам мигрантов снова прибывать в вашу крепость.
  • fix/population-cap — запускайте этот скрипт после каждой волны мигрантов, чтобы убедиться, что population cap ru не превышен. Штука в том, что этот предел сравнивается с населением на момент последнего каравана, так что если он падает ниже ограничения — мигранты будут приходить до следующего обновления.
  • fix/stable-temp — мгновенно приводит температуру всех валяющихся предметов в равновесие с их окруженим и останавливает обновления температуры. Однако, эффективнее использовать "tweak stable-temp" и "tweak fast-heat".
  • fix/item-occupancy — выявляет и исправляет случаи с несуществующими "items occupying site", что обычно является следствием багов "autodump" или другими неудачными взломами.

gui/*

В этой папке лежат скрипты, интерфейс которых встраивается прямо в окно игры.

quicksave

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

setfps

  • setfps <число> — устанавливает ограничение FPS на случай, если вы хотите посмотреть битву в замедленном действии или что-нибудь в этом роде.

siren

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

growcrops

Мгновенно сажает семена на ваших фермах.
Без аргументов команда засадит фермы теми семенами, что указаны в их настройках. Если указать тип семян — посадит 100 таких семян из тех, что готовы к посадке. Вторым аргументом вы можете изменить это число.
Пример:

growcrops plump 40

Посадит 40 plump helmet

remove-stress

Удаляет плохие мысли. Скрипт помечает мысли как слишком старые, так что игра удаляет их, когда вы снимаетесь с паузы. Эффективное лекарство от тантрум-спиралей. Если выполнить с выбранным в меню v юнитом — очистит только его мысли. В противном случае — прочистит мозги всей крепости. Счастье каждого отдельного дварфа может не повыситься сразу после выполнения этой команды, но вскоре они станут куда веселей.
Для всей крепости выполнить remove-stress -all

exterminate

Убивает всех юнитов нужной расы.
Если запустить без агрументов — выводит список рас.
С аргументом "him" — только выбранное существо.
У любого не мертвого, не помещенного в клетку существа выбранной расы "blood_count" будет установлен на 0, что сулит им неизбежную гибель на следующем тике игры. Для таких существ, как вампиры, также устанавливает "animal.vanish_countdown = 2".
Также можно использовать второй аргумент — "magma". Тогда на существ будет обрушиваться магма 7/7, пока они не умрут. Не рекомендуется использовать на существах с иммунитетом к магме и птицах.
Поразит любого на разведанной части карты, даже если он в засаде.

Примеры:

exterminate gob

Убьет всех гоблинов.

exterminate him

Убивает выбранное в режиме v существо.

exterminate elve magma

Обрушит магму на всех эльфов на карте (могут быть !!побочные эффекты!!).

full-heal

Лечит выбранного дварфа или животное от всего (опционально — даже от смерти) и устраняет все повреждения. Команда может иметь следующие аргументы:

full-heal -unit [unitId]
 лечит существо с указанным Id
full-heal -r -unit [unitId]
 лечит и (если оно мертво) оживляет существо с указанным Id
full-heal
 лечит выбранное существо
full-heal -r
 лечит и (если оно мертво) оживляет выбранное существо
full-heal -help
 помощь


digfort

Скрипт для назначения области для копания, согласно плану, записанному в файле .csv вроде этого:

# this is a comment
d;d;u;d;d;skip this tile;d
d;d;d;i

Допустимые команды для разметки (на самом деле все то же, что и в меню Designations): d — копать, u — лестница вверх, j — лестница вниз, i — двунаправленная лестница, h — канал, r — рампа, x — удалить назначение.
Неопознанные символы игнорируются (как "skip this tile" в примере).
Пустые строки и текст после символа "#" игнорируется как комментарий. Чтобы пропустить строку в макете крепости — используйте строку с одним ";".
Ища файл с планом, скрипт понимает под корневой директорией папку корневую папку DF.

superdwarf

Почти как fastdwarf, но для отдельных существ.
Вы можете сделать любое существо сверхбыстрым, выбрав его в игре по клавише v и выполнив "superdwarf add".
Другие опции: del (удалить), clear (очистить список) и list (список).
Также плагин укорачивает им время сна и перерывов.

drain-aquifer

Удаляет теги aquifer ru со всех клеток карты. Необратимо.

deathcause

Наведите курсор на часть тела — и скрипт покажет причину смерти этого существа.

lua

Есть несколько способов вызвать эту команду:

  • lua (без параметров) — запускает интерактивный интерпретатор lua.
  • lua -f "filename" или lua --file "filename" — загружает и выполняет файл "filename".
  • lua -s ["filename"] или lua --save ["filename"] — загружает и выполняет файл "filename" из директории save. Если имя файла не задано — загружается "dfhack.lua".
  • :lua lua statement... — выполняет выражение lua, как это бы сделал интерпретатор.

embark

Позволяет высадиться где угодно. Пока только для Windows.

...

27.01.2015. Текущая версия игры 0.40.24

На данный момент в дфхаке "embark" заменено на "embark-tools" включающий в себя 5 функций:

Embark anywhere (anywhere) — позволяет высадиться где угодно.

Mouse control (mouse) — позволяет мышкой передвигать и менять размер выделенной зоны для эмбарка.

Nano embark (nano)

Sand indicator (sand)

Stable position (sticky)


Если ввести embark-tools, то dfhack выдаст статус вкл/выкл для каждой из них. Что бы включить или выключить нужную, необходимо ввести:

embark-tools <enabled/disabled> <нужная команда>

Пример:

embark-tools enabled anywhere

Morkleb.

...

lever

Позволяет манипулировать рычагами из консоли.
Может вывести список рычагов, их состояние, и то, к чему прикреплены:

lever list

Чтобы заставить дварфов дернуть рычаг 42:

lever pull 42

Это будет сделано так же, как если бы вы дали задание вручную.
Чтобы чудесным образом мгновенно дернуть рычаг:

lever pull 42 --now

stripcaged

Для мусора в клетках. Пометит выбранные вещи как мусор, тогда дварф сможет прийти и выкинуть их. См. также "autodump".
С аргументом "items" пометит на выброс только вещи, лежащие в клетке, исключая то, что одето на существах. "weapons" выбросит оружие, armor выбросит все, одетое на сидящих в клетке (включая одежду и броню). "all" выбросит все.
"stripcaged list" выведет в консоль список клеток и их содержимого.
Без дополнительных аргументов все эти команды отработают на всех клетках и ловушках для животных на карте. С аргументом "here" обработают только выбранную клетку (или клетку под курсором). Чтобы задать целью только конкретные клетки нужно вводить их ID:

stripcaged weapons 25321 34228

create-items

Создает нужные объекты под курсором.
Первый аргумент — категория, второй — материал, третий (необязательный) — количество объектов для создания (по умолчанию 20).
Сейчас поддерживаются категории: boulder, bar, plant, log, web.
Если использовать "list" вместо материала — будет выведен список допустимых материалов.
Категория "web" создаст на полу не собранную паутину.
Скрипт ни к чему не принуждает и спокойно позволит создать булыжник из жабьей крови, но список по команде "list" содержит только нормальные материалы.

Примеры:

create-items boulders COAL_BITUMINOUS 12
create-items plant tail_pig
create-items log list
create-items web CREATURE:SPIDER_CAVE_GIANT:SILK
create-items bar CREATURE:CAT:SOAP
create-items bar adamantine

locate-ore

Сканирует карту на наличие руд. Находит и помечает на раскопку один тайл с заданной рудой. Работает только с природными материалами, не с результатами реакций, вроде стали.
С аргументом "list" выводит список руд на карте.
Пример:

locate-ore list 
locate-ore hematite 
locate-ore iron

soundsense-season

Как известно, soundsense не может определить время года, когда игра загружена и играет музыку к рандомным временам года до тех пор, пока время года не сменится. Скрипт выводит в gamelog.txt строку о наступлении времени года. Эффективнее вызывать команду из файла dfhack.init.

multicmd

Запустить несколько команд DFHack. Команды разделяются символом ";" и выполняются последовательно и независимо. Можно использовать с горячими клавишами.
Пример:

multicmd locate-ore iron ; digv

Утилиты, встраиваемые в игру

Здесь представлены утилиты, которые добавляют в интерфейс DF диалоги и "заплатки", большей частью lua-скрипты.
Примечание: Чтобы избежать недоразумения все эти утилиты выводят на экран слово "DFHack", когда активны. В тех случаях, когда это неуместно, потому что они просто добавляют подсказки к сочетаниям клавиш в существующие меню DF, используется красный цвет клавиши вместо зеленого. Исключение составляет плагин "tweak", описанный выше, потому что он всего лишь исправляет маленькие баги.

Dwarf Manipulator

Dwarf Manipulator
Dwarf Manipulator

Утилита, предоставляющая интерфейс, похожий на Dwarf Therapist, но, в отличие от последнего, встроена в игровое окно. Для запуска откройте экран units и нажмите l.
Крайняя левая колонка показывает счастье юнитов, выделяя цветом ее величину. Правая половина экрана показывает настройки рабочих обязанностей и уровни навыков каждого дварфа. Цифра от 0 до 9 означает навыки от Dabbing до Professional, буквы A-E — от Great до Grand Master, а U-Z — от Legendary до Legendary+5. Ячейки зеленовато-голубого цвета подсвечивают навыки, которые не контроллируются рабочими обязанностями (военные и социальные навыки).
Используйте клавиши стрелок ( / / / ) или Num Pad чтобы передвигать курсор. Удерживайте при этом Shift, чтобы двигать курсор на 10 клеток за раз.
z + < и z + > — быстрое перемещение между категориями навыков. Клавиши numpad'а Z-Up и Z-Down перемещают к первому и последнему юнитам списка. Backspace перемещает в левый верхний угол.
Нажмите Enter, чтобы назначить выбранный навык выбранному юниту, Shift + Enter — назначить выбранному юниту все labors в выбранной категории.
Клавиши + / - сортируют список юнитов по выбранному навыку/рабочей обязанности, * / / сортируют по имени, профессии, счастью или волне миграции (используйте Tab, чтобы выбирать использующийся здесь критерий сортировки).
Выбрав юнита, можно нажать v, чтобы посмотреть его свойства или c, чтобы выйти из утилиты и перейти в местоположение юнита.
Использование мыши:

  • Щелчок по заголовку колонки — сортировка списка. Левыцй щелчок — в одном направлении (по убыванию для счастья или labors/skills, по возрастанию для имен или профессий), правый — в обратном.
  • Левый щелчок по ячейке с рабочей обязанности назначает ее. Правый перемещает в нее курсор, не назначая обязанности.
  • Левый щелчок на имени или профессии покажет свойства юнита. Правый перенесет в его местоположение.

Клавиша Esc возвращает на экран юнитов, но Shift + Esc переносит на главное окно режима крепости.

Search

Поиск по экрану юнитов

Плагин добавляет поиск по экранам: Stocks, Animals, Trading, Stockpile, Noble (утверждение кандидатов), Military (назначение новобранцев), Burrows (список юнитов), Rooms, Announcements, Job List и Unit List.
Поиск работает так же, как и поиск на экране "Move to Depot". На перечисленных экранах вы увидите подсказку к горячей клавише (обычно s). После нажатия этой клавиши можно печатать запрос, а соответствующий список будет обновляться автоматически.
Нажатие Enter, Esc или клавиш со стрелками позволит вам вернуться к просмотру списка, теперь уже фильтрованного. Чтобы очистить фильтр вы можете снова нажать s и стереть написанное или просто нажать Shift + s. Выход из экрана автоматически очистит фильтр.
На экране торговли, по сути будут проданы только те предметы, которые выведены на экран; тому же эффекту подвержено значение Trade Value ru. Поэтому клавиша t недоступна во время поиска, чтобы снова воспользоваться ей нужно очистить фильтр. Alt + c очистит обе поисковые строки.
На экране складов поиск появляется только когда курсор находится в самой правой колонке.
Обратите внимание, что кнопки "Permit XXX" и "Forbid XXX" должным образом работают только на предметах, которые в данный момент показаны в крайнем правом списке, поэтому можно выбрать только fat или tallow, запретив fat/tallow, затем поискав fat/tallow, и снова использовав Permit Fats, когда лист отфильтрован.

AutoMaterial

Automaterial. Экран выбора материала

Этот плагин облегчает возведение конструкций (walls, floors, fortifications и т.д.), освобождая вас от поиска по большому листу материалов, когда вы используете какой-то один.
Плагин перемещает последний использованный для данной конструкции материал на верх списка, если он еще остался. Так, если вы построите стену из блоков мела, в следующий раз, когда вы будете строить стену эти блоки будут не вершине списка, независимо от расстояния (только в режиме группировки, в режиме выбора отдельных предметов список слишком огромен). Таким образом вы можете строить множество конструкций без поиска необходимого материала.
Нажатие клавиши a, когда материал подсвечен, включит автовыбор этого материала для данной конструкции. Вы можете включить автовыбор для нескольких материалов. В следующий раз, когда вы будете возводить эту постройку, плагин автоматически выберет эти материалы, и если их достаточно, конструкция будет установлена, вы даже не увидите меню выбора материала.
Выбрав постройку конструкции вы увидите несколько опций:
a для временного отключения автовыбора материала. После этого вы, например, можете перейти на экран выбора материалов и включить/отключить автовыбор нескольких материалов.
t — автовыбор типа постройки. Тогда, после постройки, вместо того, чтобы вернуться в главное меню построек, вы окажетесь в меню постройки этого же типа. Вместе с автовыбором материала это позволит разметить сложную конструкцию намного быстрее.

gui/liquids

GUI/Liquids

Для использования создайте сочетание клавиш (в примере по умолчанию Alt + l) и активируйте его в режиме k.
Данный скрипт — GUI для плагина liquids, соответственно, работает также, позволяя добавлять и удалять воду и магму, создавать обсидиановые стены и полы. Сделанные изменения нельзя откатить. Использование плагина может вызвать баги в поиске пути и создавать тепловые ловушки.
Клавиша b меняет настройки кисти. По умолчанию — прямоугольник, позволяет выделить область с помощью указания двух углов, как при обычной разметке назначений. Клавиша p позволяет выбрать между добавлением воды, магмы, обсидиановых стен и полов, или просто изменением флагов.
При добавлении жидкостей можно выбирать ее уровень клавишами + / - и выбирать между точной установкой, добавлением или уменьшением клавишей s.
В дополнение, клавишей f влючает и выключает вычисление течения для этой территории, а r переключает ее на режим "постоянного течения", что позволяет рекам питать водяные колеса, даже если до этого не питали.
После настройки всех параметров нажмите Enter, чтобы применить их.

gui/mechanisms

GUI/Mechanisms

Для использования создайте сочетание клавиш (в примере по умолчанию Ctrl + m) и активируйте его в режиме q.
Выводит список механизмов, подключенных к строению, и их связи. Перемещение по списку центрирует вид на связанных постройках.
Для выхода нажмите Esc или Enter. Esc перемещает вид на первоначальное здание, а Enter оставляет фокус на текущем. Shift + Enter делает тоже самое, что и Enter, но после перезапускает плагин.

gui/rename

GUI/Rename

Этот скрипт, основанный на плагине rename, позволяет ввести желаемое имя в простом игровом меню.

  • gui/rename [building] — в режиме q позволяет менять название постройки. Это может быть stockpile, workshop, furnace, trap, или siege engine. Можно переименовывать зоны из меню i.
  • gui/rename [unit] — меняет ник юнита. В отличие от интерфейса от Тоади, переименовывает даже животных и врагов.
  • gui/rename unit-profession — меняет название профессии. Как на картинке справа. Может быть применено к любому юниту, но переименование животного затрет строку с названием его вида.

Параметры building и unit автоматически заполняются тем, что выбрано в интерфейсе игры.
Естественно, все это стоит забить на горячие клавиши. В примере настроек используются сочетания Ctrl + Shift + n для построек/юнитов, Ctrl + Shift + t — для переименования профессии.

gui/room-list

GUI/room-list

Для использования привяжите к сочетанию клавиш (напр. Alt + r) и активируйте в режиме q (конкретно в нем или после открытия экрана назначения владельца комнаты).
Скрипт выводит список других комнат, имеющихся у владельца текущей, или у юнита, выбранного в списке назначения владельца комнаты. Позволяет "выселить" владельца из этих лишних комнат.

gui/choose-weapons

Для использования привяжите к сочетанию клавиш (напр. Ctrl + w) и активируйте на странице Equip->View/Customize экрана military.
В зависимости от положения курсора, скрипт либо меняет все записи "individual choice weapon" выбранного squad или position на использование конкретных типов оружия, соответствующих наиболее развитым навыкам юнитов, либо, если курсор в самом правом списке выбора оружия — перезаписывает только эту запись, но перезаписывает даже если там не 'individual choice'.
Обоснование: если есть хранилище оружия, то individual choice оказывается ненадежным и может привести к выбору неподходящего оружия.

gui/guide-path

GUI/guide-path

Для использования привяжите к сочетанию клавиш (напр. Alt + p) и активируйте в меню Hauling с курсором на Guide order.
Скрипт показывает путь, который будет проделан при выполнении приказа.

gui/workshop-job

GUI/workshop-job

Для использования привяжите к сочетанию клавиш (напр. Alt + a) и активируйте в режиме q. Скрипт выводит список реагентов выбранного задания и позволяет изменить их как команды job item-type и job item-material. Нажатие клавиши i выводит диалоговое окно выбора тира реагента, а m — выбор материала реагента (если он позволяет выбирать). Т.к. материалов намного больше, чем типов, то меню выбора материалов имеет иерархическую структуру.
Предупреждение:
Вы должны выбирать тип реагента, если вы выбираете материал, иначе может быть назначен некорректный материал. Если вы все же выбираете материал, не выбрав типа, скрипт автоматически выберет тип реагента, если есть только один корректный тип, иначе вы получите сообщение об ошибке.
Каждый список фильтруется по текущему заданию, и каждый из них фильтруется относительно другого. Например, если вы выбираете тип реагента plant, то вы можете выбирать только из cookable материалов.
Однако, если вы вместо этого выберете тип предмета barrel (подразумевая вещи, хранящиеся в бочках, вроже выпивки и молока), плагин позволит выбрать любой материал, т.к. в этом случае речь идет о материале самой бочки. Тогда, если вы выберете, скажем, железо, а затем попытаетесь сменить тип входного предмета, он не позволит выбрать растение (plant); чтобы все таки сделать это, нужно сначала снять выбор с материала.

gui/workflow

GUI/workflow

Управление прозводственным потоком. Для этой команды существует также консольный интерфейс, детали обращения с которым здесь не приводится.

workflow enable [option...], workflow disable [option...]

Привяжите сочетание клавиш (пример настроек предлагает Alt-W), потом активируйте её при задав работу в мастерской (q — режим).
Скрипт предлагает простой интерфейс управления ограничениями workflow плагина. После активации GUI содержит список ограничений для данной реакции и их статус на данный момент.

Ограничение задает краевые значения, с которыми будет сравниваться либо общее количество вещей данного типа (опционально — материала), либо число стаков. Когда количество вещей падает ниже меньшего значения диапазона — работа запускается. Если ниже верхнего предела — работа продолжается. Если значение выше или равно верхнему пределу — выпуск продукции опять прекращается.

Клавиша I переключает текущее ограничение между подсчетом стеков и предметов. Нажатие R позволит напрямую ввести диапазон; e, r, d, f меняют границы диапазона на 5, 10 или 20 в зависимости от направления и состояния настройки по клавише I (подсчет предметов и расширение диапазона дают бонус 2x каждый).

Клавиша A выводит список возможных предметов, создаваемых данной работой по предположению workflow и позволяет создать новое ограничение, выбрав шаблон. Если вы не видите нужного варианта в списке, скорее всего вам надо сначала настроить материал работы, используя job item-material или gui/workshop-job, как описано выше в документации по workflow. Таким образом, это возможность можно использовать для устраненич проблем с работами, которые не попадают под правильно заданные ограничения.
Если вы выберете один из предметов на выходе клавишей Enter, соответствующее ограничение добавится в список. Если вы используете Shift-Enter, появится следующий диалог, позволяющий редактировать параметры данного ограничения под ваши нужды, а также выставить диапазон.
Клавиша S (или, как в примере настроек, Alt-W на экране 'z' stocks) открывает общий экран статуса, для лучшей интеграции с остальной частью lua-скрипта скопированный с реализации на C++, написанной falconne:
Данный экран выводит все существующие на данный момент ограничения workflow, позволяя просматривать и/или редактировать из одного места. Список ограничений можно фильтровать, вводя текст в поле снизу.
Цвет числа уровня запасов (stock level) показывает его состояние на основе текущего количества и тенденции изменения количества. Ярко-зеленый — отлично, зеленый — хорошо, красный — плохо, ярко красный — очень плохо.

Цвет лимита также изменяется. Красный означает, что на данный момент ни одна мастерская не производит этот предмет (напр. нет работ). Желтый — производство было отложено, возможно из-за нехватки входных материалов.

gui/assign-rack

GUI/assign-rack

Для использования привяжите к сочетанию клавиш (напр. p) и активируйте в режиме q, когда просматриваете weapon rack. Скрипт — часть группы исправлений для багов, созданных, чтобы хранение оружия снова работало.

  • Можно приписывать weapon rack к отряду.
  • Даже если приписать, игра отменит это, если не применить патч. Патч называется weaponrack-unassign. Больше информации.
  • Переносчики будут таскать вещи, хранящиеся в weapon rack обратно на склады, если не использовать плагин fix-armory (описан выше).

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

gui/advfort

Данный скрипт позволяет выполнять работы в режиме приключенца. Для более подробной информации нажмите ? в процессе работы скрипта. Удобнее всего использовать скрипт с сочетанием клавиш (например keybinding set Ctrl-t gui/advfort). Возможные аргументы:

  • -a или --nodfassign — использует другой метод для указания предметовuses.
  • -i или --inventory — проверяет доступные в инвентаре предметы для использования в работе.
  • -c или --cheat — облегчает требования предметов для строений (например, позволяет стены из костей ). Включает в себя -a
  • job — выбор работы (e.g. Dig or FellTree).

gui/companion-order

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

  • move — приказать выбранным компаньонам двигаться к локации. Если они следуют за вами, то будут держаться не дальше, чем в трех тайлах от вас.
  • equip — постараться экипироваться вещами с земли.
  • pick-up — постараться взять вещи в руки (и орудовать ими)
  • unequip — выбросить снаряжение
  • unwield — выбросить вещи из рук
  • wait — временно покинуть ваш отряд
  • follow — примкнуть к вашему отряду после "wait"
  • leave — покинуть отряд (может примкнуть снова после разговора).

gui/gm-editor

Есть три способа открыть этот редактор:

  • используя команду, сочетание клавиш gui/gm-editor — открывает редактор на том, что выбрано или просматривается (напр. экран unit/item description)
  • используя gui/gm-editor <lua command> — выполняет команду lua от открывает редактор с результатами (напр. gui/gm-editor "df.global.world.items.all" показывает все вещи)
  • используя gui/gm-editor dialog — показывает в игре диалог, в который нужно ввести команду lua.

Редактор позволяет менять и модифицировать почти все в DF. Подробнее в справке редактора.

Behavior Mods

Данные плагины модифицируют поведение игрового движка в отношении целевых объектов для добавления новых игровых возможностей. Для этого они активируются через интерфейс конфигурации или находят определенные структуры в raw-файлах.
ПРЕДУПРЕЖДЕНИЕ
Плагины в этой главе разрабатывались в первую очередь в качестве интересной технической задачи и не предполагают долгосрочных планов по усовершенствованию и внедрению других подобных модификаций.

Siege Engine

Siege-engine

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

Обоснование
Осадные орудия — интересная возможность, но почти бесполезная в нынешнем состоянии, потому что не обновлялась с 2D-версии игры и может стрелять только в четырех направлениях. Это — попытка сделать их более актуальными, раз уж Тоади пока не делает этого. Серьезные усовершенствования, вроде осаждающих, которые приходят со своими орудиями, может сделать только Тоади.

Интерфейс конфигурации
Внешний интерфейс настройки плагина реализуется скриптом gui/siege-engine. Назначьте ему горячую клавишу (например, Alt-a) и активируйте, предварительно выбрав осадное орудие клавишей q.

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

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

После настройки цели для одного орудия вы можете "вставлять" его в настройках других, нажимая p на главной странице интерфейса. Область для вставки хранится в памяти до выхода из DF или задания новой области вручную.

Клавиша t позволяет перейти к выбору склада, с которого будут браться боеприпасы.
Выход из интерфейса с помощью клавиши Esc возвращает к виду, предшествующему запуску скрипта.Shift-Esc сохраняет текущее положение курсора и выходит из режима q в главное меню.

Power Meter

Power-meter

Плагин измерителя мощности создает модифицированную нажимную пластину, которая определяет подачу энергии на редукторы, построенные на четырёх соседних тайлах (N / S / W / E). Внешний интерфейс конфигурации реализуется скриптом gui / power meter. Ему также можно назначить горячую клавишу (например Ctrl-Shift-m) и активировать после выбора нажимной пластины в меню строительства. Скрипт соответствует общему виду страницы строительства обычной нажимной пластины, но настраивает параметры, относящиеся к зданию с модифицированным измерителем мощности.

Steam Engine

Плагин находит мастерские с токеном STEAM_ENGINE, и превращает их в реальные паровые двигатели.

Обоснование
Ваниль содержит только водяные колеса и ветряки как источники энергии, но ветряки дают мало энергии, а колеса требуют течение, которое можно найти в реках или создать искусственно что вызывает немало лагов.
Паровики имеют смысл тем, что в отличии от водяных реакторов не лагают. Also, unlike e.g. animal treadmills, it can be done just by combining existing features of the game engine in a new way with some glue code and a bit of custom logic.

Строительство
Мастерской нужна вода в качестве исходного материала, её подвод необходимо выполнить по аналогии с магменными мастерскими. Существует магменная паровая машина, которая требует подвода магмы.
ISSUE
Поскольку это здание относится к машинам, и машина требует присоединения к полу либо другой машине, то может быть невозможным её сооружение над открытым пространством (не забываем про подвод воды). Обойти это можно воспользовавшись лазейкой в виде лестницы вниз, которая может служить основой для машины и даст доступ к воде/магме.
После постройки самого здания машины могут быть подключены к крайним тайлам, которые выглядят как редукторы. Их точное положение можно увидеть в RAW-файлах мастерской.
ISSUE
Like with collapse above, part of the code involved in machine connection cannot be hooked. As a result, the workshop can only immediately connect to machine components built AFTER it. This also means that engines cannot be chained without intermediate short axles that can be built later than both of the engines.

Operation
In order to operate the engine, queue the Stoke Boiler job (optionally on repeat). A furnace operator will come, possibly bringing a bar of fuel, and perform it. As a result, a "boiling water" item will appear in the t view of the workshop.
Note
The completion of the job will actually consume one unit of the appropriate liquids from below the workshop. This means that you cannot just raise 7 units of magma with a piston and have infinite power. However, liquid consumption should be slow enough that water can be supplied by a pond zone bucket chain.
Every such item gives 100 power, up to a limit of 300 for coal, and 500 for a magma engine. The building can host twice that amount of items to provide longer autonomous running. When the boiler gets filled to capacity, all queued jobs are suspended; once it drops back to 3+1 or 5+1 items, they are re-enabled.
While the engine is providing power, steam is being consumed. The consumption speed includes a fixed 10% waste rate, and the remaining 90% are applied proportionally to the actual load in the machine. With the engine at nominal 300 power with 150 load in the system, it will consume steam for actual 300*(10% + 90%*150/300) = 165 power.
Masterpiece mechanism and chain will decrease the mechanical power drawn by the engine itself from 10 to 5. Masterpiece barrel decreases waste rate by 4%. Masterpiece piston and pipe decrease it by further 4%, and also decrease the whole steam use rate by 10%.

Опасность
Паровик строится из бочки, огнеупорных или магмоупорных для магма-паровика трубы и поршня.
Веселья добавляет тот факт, что во время работы слабые детали постепенно изнашиваются, и в конечном итоге двигатель взрывается. Он также взорвётся, если его сломает во время работы существо с токеном BUILDING_DESTROYER или дварф в приступе безумия.

Save files
It should be safe to load and view engine-using fortresses from a DF version without DFHack installed, except that in such case the engines won't work. However actually making modifications to them, or machines they connect to (including by pulling levers), can easily result in inconsistent state once this plugin is available again. The effects may be as weird as negative power being generated.

Add Spatter

Плагин делает так, чтобы реакции с именами, начинающимися на SPATTER_ADD_ покрывали предметы загрязняющими веществами вместо их улучшения. Такие загрязнения не отмываются водой и иммунны к команде clean items.
Плагин пытается извлечь хоть какую-то пользу от всех этих ядов, привозимых караванами. :)
Для того, чтобы он был действительно полезен, нужен патч на баг 808, а также команды tweak fix-dimensions и tweak advmode-contained.

remotefortressreader

Важный внутренний плагин DFHack, разработанный в том же репозитории. Он обеспечивает RPC-подключение к игре на основе protobuf (в настоящее время версии 2.4.1), что позволяет использовать удаленные клиенты, такие как Armok Vision. Служба прослушивает 127.0.0.1:5000 (настраивается в dfhack-config/remote-server.json).

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