Wiremod — это аддон для Sandbox-режима Garry’s Mod, который добавляет «электронику»: кнопки, датчики, логические элементы, экраны и двигатели, соединяемые проводами. Advanced Duplicator 2 (AdvDupe2) — отдельный инструмент для той же связки авторов, который сохраняет готовую постройку в файл и загружает её заново на этом же или другом сервере. Вместе они позволяют собрать что угодно — от двери на кнопке до машины с приборной панелью — и не строить это каждый раз с нуля.
Что такое Wiremod и зачем он нужен
В обычном Sandbox пропы можно скручивать Weld, приваривать осями и управлять только через физику. Wiremod добавляет entity с входами и входами-выходами (input/output): у одних есть кнопка или датчик, который выдаёт число, у других — мотор или экран, который это число принимает. Провод — это просто связь «выход одного устройства → вход другого», через неё передаются числа, векторы, углы, строки или целые entity.
На Wiremod обычно строят: автоматические двери и лифты, светофоры и табло, простую сигнализацию, машины с приборной панелью (спидометр, фары, поворотники), турели с наведением на цель, мини-компьютеры на чипе Expression 2. Ничего из этого не требует программирования на Lua — базовые схемы собираются проводами и готовыми компонентами.
Установка
Есть два способа получить Wiremod, и они не исключают друг друга.
- Мастерская Steam. Официальная стабильная версия называется «Wiremod», её поддерживает команда разработчиков Wiremod. Отдельно есть «Wiremod Canary» — версия с более свежими правками, синхронизированная с GitHub, её ставят, если нужны последние исправления, а не стабильность. Advanced Duplicator 2 в Мастерской так и называется — «Advanced Duplicator 2»; первая версия (Advanced Duplicator без «2») официально снята с поддержки, вместо неё разработчики рекомендуют именно AdvDupe2.
- GitHub. Исходники лежат в репозиториях
wiremod/wireиwiremod/advdupe2организации wiremod. Такой вариант нужен, если вы администрируете сервер и хотите держать аддон в git (например, как сабмодуль) или собираете сборку с конкретной версией/патчем, а не тем, что сейчас лежит в Мастерской.
Для одиночной игры или своего сервера, где вы просто играете, достаточно подписаться на «Wiremod» и «Advanced Duplicator 2» в Мастерской. Если вы держите публичный сервер, аддоны обычно добавляют коллекцией Мастерской и синхронизируют игрокам через resource.AddWorkshop в конфиге — этот шаг разобран в гайде про создание своего сервера Garry’s Mod.
После установки инструменты Wiremod появляются в меню построения: откройте его клавишей Q, справа переключитесь на вкладку инструментов и найдите категорию Wire — там будет сам инструмент проводов (Wire Tool), отладчик (Wire Debugger) и остальные вспомогательные тулзы. Advanced Duplicator 2 находится в этом же меню отдельным пунктом, а сохранённые постройки — на вкладке спавн-меню с его же названием.
Базовые понятия
Прежде чем собирать первую схему, стоит запомнить три вещи: как соединять провода, как их отлаживать и какие типы данных вообще бывают.
Wire Tool — основной инструмент. Наведите на устройство-источник (например, кнопку), левым кликом выберите нужный выход из списка (если их несколько, они перебираются правым кликом), затем наведите на устройство-приёмник и кликните по нужному входу. Между ними протянется провод. Если кликнуть по уже существующему проводу тем же инструментом, его можно удалить.
Wire Debugger — отдельный инструмент из той же категории Wire: наведите им на вход или выход любого устройства, и в углу экрана появится текущее значение, которое оно передаёт или принимает. Это главный способ понять, почему схема не работает — вместо того чтобы гадать, вы сразу видите, доходит ли сигнал и какой он.
| Тип данных | Что это | Пример значения |
|---|---|---|
number | Число (в том числе логическое — 0 или 1) | 1, 0, 42.5 |
vector | Позиция или направление в 3D | (0, 0, 100) |
angle | Поворот (pitch, yaw, roll) | (0, 90, 0) |
entity | Ссылка на конкретный объект в мире | проп, игрок, NPC |
string | Текст | "Открыто" |
Большинство устройств Wiremod работают с number — это универсальный тип для «включено/выключено» и для обычных чисел. Векторы и углы нужны там, где важна геометрия (наведение турели, позиция голограммы), entity — когда устройство должно «запомнить» конкретный объект (например, кого обнаружил датчик).
Основные компоненты
Ниже — реально существующие устройства Wiremod (сверено с исходниками wiremod/wire), с которых стоит начинать. Полный список гораздо больше — часть найдёте в том же меню Wire в подкатегориях.
| Компонент | Что делает | Пример использования |
|---|---|---|
| Wire Button | Кнопка: выдаёт 1 при нажатии, 0 в покое (или переключается, в зависимости от настройки) | Открыть дверь, включить свет |
| Wire Keypad | Кодовая панель: выдаёт сигнал, когда введён правильный код | Кодовый замок на двери |
| Wire Numpad | Выдаёт сигнал при нажатии заданной клавиши цифровой клавиатуры | Управление механизмом с клавиатуры |
| Wire Constant Value | Постоянное значение, которое можно менять вручную через меню | Задать порог срабатывания датчика |
| Wire Gate | Логические и арифметические операции (сложение, сравнение, «Timer», «Pulser», «Delay» и другие типы через выпадающий список) | Задержка перед закрытием двери, счётчик, сравнение чисел |
| Wire Ranger | Дальномер: измеряет расстояние по лучу | Автоматическая дверь, датчик приближения |
| Wire Target Finder | Ищет ближайшую цель (игрока, NPC) в радиусе и конусе обзора | Наведение турели |
| Wire Screen / Wire Text Screen / Wire Console Screen | Экраны: обычный (показывает одно-два числа), текстовый и консольный (построчный вывод) | Табло, счётчик очков, вывод показаний датчика |
| Wire Hoverball | Создаёт подъёмную силу — «парит» проп на заданной высоте | Ховербайк, летающая платформа |
| Wire Thruster / Wire Vector Thruster | Реактивная тяга в одном направлении или по вектору | Двигатель лодки, самолёта, ракеты |
| Wire Wheel | Мотор-колесо с управлением скоростью и направлением | Привод машины |
| Wire Pod Controller | Привязывается к креслу и выдаёт нажатия клавиш сидящего игрока (W, A, S, D и др.) | Управление машиной или турелью с места водителя |
| Wire Hydraulic Controller | Управляет гидравликой (linear/rope), плавно двигает часть конструкции | Подъёмная рампа, поршень пресса |
| Wire Lamp / Wire Light | Источник света, включаемый и настраиваемый по входу | Индикатор состояния, фары, светофор |
| Wire Sound Emitter | Проигрывает звук по сигналу | Сирена сигнализации, звук выстрела |
| Wire Expression 2 (E2-чип) | Программируемый чип на языке Expression 2 — заменяет десяток простых устройств одним скриптом | Сложная логика, которую неудобно собирать гейтами |
Если нужного устройства нет в списке инструментов — возможно, вы не подписаны на «Wire Extras», отдельный community-репозиторий с дополнительными, менее проверенными аддонами (не всё оттуда стабильно и поддерживается официально).
Практика: три мини-проекта
Собирайте это на карте без построек других игроков — например, gm_freebuild или gm_construct. Здесь — только последовательность шагов, без точных цифр настроек: их вы подберёте на месте через панель свойств устройства.
1. Дверь на кнопке
- Поставьте проп-дверь (можно взять готовую дверную модель или обычный проп-плиту) и приморозьте петлю осью через
Axisили подвесьте наHingeиз стандартного меню построения. - Заспавните Wire Button рядом со входом.
- Добавьте то, что будет двигать дверь: Wire Hydraulic между рамой и дверью или Wire Motor на петле.
- Возьмите Wire Tool, кликните по входу гидравлики или мотора, затем по выходу кнопки (для двери удобнее кнопка в режиме переключателя — Toggle).
- Проверьте Wire Debugger’ом, что при нажатии кнопки на входе двери меняется значение с 0 на 1.
2. Счётчик на Text Screen
- Заспавните Wire Text Screen и Wire Button рядом.
- Добавьте Wire Gate из группы памяти с типом «Increment» или «Up/Down Counter» — он увеличивает число при каждом импульсе.
- Проведите провод: кнопка → вход гейта, выход гейта → вход текстового экрана.
- Каждое нажатие кнопки должно увеличивать число на экране на единицу — если не работает, Wire Debugger покажет, на каком именно проводе теряется сигнал.
3. Простая машина на Wire Wheel
- Соберите шасси из пропов и приварите к нему две-четыре модели колёс через
Weld. - На каждое колесо поставьте Wire Wheel (в его меню настраивается, к какому пропу он «привязан» как колесо).
- Поставьте кресло и Wire Pod Controller, привяжите контроллер к креслу и заведите его выходы W/S на входы Wire Wheel — так машина будет ехать по нажатию клавиш водителя.
- Протестируйте на ровной площадке вроде gm_carconstruct — карты специально сделаны для обкатки самодельных машин.
Если постройка на любом из этапов начинает разваливаться или дёргаться — скорее всего, часть пропов не сварена (Weld) или не выставлен No Collide между соприкасающимися деталями. Пример гораздо более сложной механики, собранной этими двумя аддонами вместе, — в карточке Five Nights At Garry’s [Wire/AdvDupe2].
Expression 2 (E2)
Expression 2 — язык программирования внутри Wiremod. По сути, это чип (Wire Expression 2), который вы спавните как обычное устройство, а затем открываете его редактор и пишете код вместо того, чтобы городить схему из десятка гейтов. Официальная документация по синтаксису и функциям ведётся на вики репозитория wiremod/wire на GitHub.
Чтобы начать: выберите инструмент Expression 2 в категории Wire и откройте им редактор (правым кликом) — появится отдельное окно с текстовым полем и подсветкой синтаксиса. Напишите и сохраните скрипт, затем левым кликом поставьте чип в мир. Каждый скрипт начинается со строки @name с названием и объявлений входов/выходов через @inputs и @outputs.
Пример — лампа, которая мигает раз в секунду (без входов, только один выход):
@name Мигающий маяк
@outputs State
interval(1000)
State = !State
interval(1000) задаёт, что чип «думает» раз в 1000 миллисекунд, а State = !State каждый раз инвертирует значение — на выходе получится сигнал, который переключается между 0 и 1. Останется соединить выход State с входом Wire Lamp или Wire Light.
На многих серверах для E2 действует лимит операций (ops) за такт — если чип считает слишком много за раз, сервер может его остановить или замедлить, чтобы не просаживать тикрейт. Точные цифры настраивает администратор, а на части серверов Expression 2 вовсе выключен или урезан по функциям — если чип не спавнится или падает с ошибкой, дело скорее в правилах сервера, чем в вашем коде.
Advanced Duplicator 2
AdvDupe2 — инструмент для копирования, сохранения и повторной вставки построек целиком, вместе со сваркой, верёвками и Wire-соединениями между пропами. Это удобнее, чем пересобирать сложную конструкцию заново каждый раз, когда карта перезагружается.
- Копирование одной постройки. Возьмите инструмент Advanced Duplicator 2 и кликните правой кнопкой по любому пропу нужной конструкции — в дубликат попадёт он сам и всё, что физически с ним связано (сварка, верёвки, ограничители). У курсора появится полупрозрачный «призрак» скопированного.
- Area Copy (копирование области). Если детали не связаны между собой физически, используйте копирование области: инструмент захватывает всё внутри рамки заданного размера. Как включается режим и меняется размер рамки, показано в панели настроек инструмента и на вики AdvDupe2; там же можно ограничить захват только своими пропами.
- Сохранение. Откройте вкладку Advanced Duplicator 2 в спавн-меню, кликните правой кнопкой по папке (или создайте свою) и выберите сохранение. Файлы постройки хранятся как
.txtв папкеgarrysmod/data/advdupe2/внутри директории игры. - Загрузка и вставка. Дважды кликните по сохранённому файлу в том же меню — появится призрак-превью; левый клик ставит постройку в мир. Если сервер поддерживает, вместо мгновенной вставки можно создать «Contraption Spawner» — отдельную entity, которая заспавнит вашу постройку по нажатию, с настраиваемой задержкой между спавнами.
На чужих серверах вставка дублей обычно ограничена: лимит пропов за раз, запрет некоторых типов entity или права определённой группы игроков — если постройка не вставляется целиком, дело чаще всего в этом, а не в повреждённом файле.
Частая проблема после загрузки — розовые или чёрные «error»-модели вместо частей постройки. Это значит, что дубликату не хватает контента: он был собран из моделей аддона, которого у вас нет. Решение — определить, какой аддон использовался, и подписаться на него в Мастерской легально, а не подменять модели сторонними паками.
Частые проблемы
| Проблема | Вероятная причина и что проверить |
|---|---|
Инструментов Wire нет в меню (Q) | Аддон не подписан или не скачался — проверьте подписку на «Wiremod» в Мастерской и список аддонов в главном меню игры. |
| Провода не соединяются | Кликаете не по тому входу/выходу или устройства несовместимы по типу данных (например, пробуете подать vector туда, где ждут number) — проверьте Wire Debugger’ом. |
| Expression 2 не спавнится или выдаёт ошибку по функции | Сервер ограничивает E2 — часть функций может быть отключена администратором; проверьте на другом сервере или в одиночной игре. |
| Чип E2 «тормозит» или перестаёт работать | Превышен лимит операций (ops) за такт — упростите код, уберите тяжёлые циклы, разбейте логику на несколько чипов. |
| Постройка разваливается или трясётся | Не все детали сварены (Weld) или не выставлен No Collide между соприкасающимися пропами; проверьте физику до подключения Wire. |
| Сервер запрещает Wire целиком | Некоторые серверы отключают Wiremod или ограничивают набор устройств по правилам — уточните у администрации, какие аддоны разрешены. |
Итог / чек-лист
- Подпишитесь на «Wiremod» и «Advanced Duplicator 2» в Мастерской Steam (или клонируйте
wiremod/wireиwiremod/advdupe2с GitHub для сервера). - Инструменты — в меню
Q, вкладка Wire; проверяйте сигналы Wire Debugger’ом, а не на глаз. - Начните с простого: кнопка → дверь, счётчик на Text Screen, машина на Wire Wheel.
- Для сложной логики используйте Expression 2 — но помните про лимит операций на серверах.
- Сохраняйте готовые постройки через Advanced Duplicator 2, чтобы не пересобирать их заново.
- Если постройка тормозит или крупная — посмотрите гайд про FPS в Garry’s Mod и не забывайте про легальные способы получения контента при загрузке чужих дублей.
Частые вопросы
Wiremod бесплатный?
Да, это бесплатный аддон в Мастерской Steam — платите только за саму игру Garry’s Mod, если она у вас ещё не куплена.
Нужен ли Expression 2, чтобы пользоваться Wiremod?
Нет. Большинство схем — двери, табло, машины, турели — собираются обычными устройствами и проводами без единой строчки кода. E2 нужен только для сложной или компактной логики, которую неудобно собирать гейтами.
Чем Advanced Duplicator 2 отличается от обычного Duplicator?
Встроенный Duplicator тоже умеет копировать и сохранять постройки, но Advanced Duplicator 2 гибче: копирование по области (Area Copy), надёжная работа с большими постройками и Wire-соединениями, файлы, которые удобно переносить между картами, компьютерами и серверами.
Почему после загрузки дубликата часть пропов выглядит как розово-чёрные текстуры?
Это значит, что в постройке использованы модели аддона, которого у вас нет. Нужно определить недостающий аддон и подписаться на него легально — вставлять чужие ресурсы через пиратские паки не стоит: часть таких паков ещё и небезопасна.
Где хранятся сохранённые дубликаты Advanced Duplicator 2?
В папке garrysmod/data/advdupe2/ внутри каталога игры — файлы там в текстовом формате .txt, их можно скопировать на другой компьютер или сервер вручную.
Можно ли ставить Wiremod на выделенный сервер?
Да, аддон полностью серверный по своей логике: он ставится и на сервер, и клиентам через коллекцию Мастерской (или git-клон в папке аддонов), после чего игроки видят и используют устройства так же, как в одиночной игре.
Почему администратор сервера ограничивает Expression 2?
Чип E2 выполняется на сервере и может нагружать его при неаккуратном коде (тяжёлые циклы, лишние вычисления каждый такт). Поэтому многие сервера включают лимит операций или отключают часть функций — это защита от лагов и потенциальных вредоносных скриптов, а не блажь администрации.
Стабильная версия Wiremod или Canary — что ставить?
Для обычной игры и своего небольшого сервера подходит стабильная «Wiremod» из Мастерской. «Canary» синхронизирована с последними изменениями на GitHub и годится, если вам нужны свежие исправления раньше, чем они попадут в стабильный релиз, — ценой чуть большей вероятности временных багов.