Полное руководство по моддингу DayZ
Исчерпывающая документация по моддингу DayZ — 92 главы, от нуля до опубликованного мода.
Полный указатель страниц
Часть 1: Язык Enforce Script (13 глав)
| # | Глава | Описание |
|---|---|---|
| 1.1 | Переменные и типы | Примитивные типы, объявление переменных, преобразования и значения по умолчанию |
| 1.2 | Массивы, Map и Set | Коллекции данных: array, map, set — итерация, поиск, сортировка |
| 1.3 | Классы и наследование | Определение классов, наследование, конструкторы, полиморфизм |
| 1.4 | Modded-классы | Система modded class, переопределение методов, вызовы super |
| 1.5 | Управление потоком | If/else, switch, циклы while/for, break, continue |
| 1.6 | Операции со строками | Манипуляции со строками, форматирование, поиск, сравнение |
| 1.7 | Математика и векторы | Математические функции, 3D-векторы, расстояния, направления |
| 1.8 | Управление памятью | Подсчёт ссылок, ref, предотвращение утечек, циклы ссылок |
| 1.9 | Приведение типов и рефлексия | Приведение типов, Class.CastTo, проверка типа во время выполнения |
| 1.10 | Перечисления и препроцессор | Перечисления, #ifdef, #define, условная компиляция |
| 1.11 | Обработка ошибок | Паттерны обработки ошибок без try/catch, guard clauses |
| 1.12 | Чего НЕ существует | 30+ подводных камней и ограничений языка Enforce Script |
| 1.13 | Функции и методы | Объявление функций, параметры, возвращаемые значения, static, proto |
Часть 2: Структура мода (6 глав)
| # | Глава | Описание |
|---|---|---|
| 2.1 | 5-уровневая иерархия | 5 уровней скриптов DayZ и порядок компиляции |
| 2.2 | config.cpp подробно | Полная структура config.cpp, CfgPatches, CfgMods |
| 2.3 | mod.cpp и Workshop | Файл mod.cpp, публикация в Steam Workshop |
| 2.4 | Ваш первый мод | Минимальный жизнеспособный мод — необходимые файлы и структура |
| 2.5 | Организация файлов | Соглашения об именовании, рекомендуемая структура папок |
| 2.6 | Архитектура сервер/клиент | Разделение серверного и клиентского кода, безопасность |
Часть 3: Система GUI и Layout (10 глав)
| # | Глава | Описание |
|---|---|---|
| 3.1 | Типы виджетов | Все доступные типы виджетов: текст, изображение, кнопка и т.д. |
| 3.2 | Формат файлов Layout | Структура XML-файлов .layout для интерфейсов |
| 3.3 | Размеры и позиционирование | Система координат, флаги размеров, привязка |
| 3.4 | Контейнеры | Виджеты-контейнеры: WrapSpacer, GridSpacer, ScrollWidget |
| 3.5 | Программное создание | Создание виджетов из кода, GetWidgetUnderCursor, SetHandler |
| 3.6 | Обработка событий | UI-колбэки: OnClick, OnChange, OnMouseEnter |
| 3.7 | Стили, шрифты и изображения | Доступные шрифты, стили, загрузка изображений |
| 3.8 | Диалоги и модальные окна | Создание диалогов, модальные меню, подтверждения |
| 3.9 | Реальные UI-паттерны | Паттерны UI из COT, VPP, Expansion, Dabs Framework |
| 3.10 | Продвинутые виджеты | MapWidget, RenderTargetWidget, специализированные виджеты |
Часть 4: Форматы файлов и инструменты (8 глав)
| # | Глава | Описание |
|---|---|---|
| 4.1 | Текстуры | Форматы .paa, .edds, .tga — конвертация и использование |
| 4.2 | 3D-модели | Формат .p3d, LOD, геометрия, memory-точки |
| 4.3 | Материалы | Файлы .rvmat, шейдеры, свойства поверхности |
| 4.4 | Аудио | Форматы .ogg и .wss, настройка звука |
| 4.5 | DayZ Tools | Рабочий процесс с официальными DayZ Tools |
| 4.6 | Упаковка PBO | Создание и извлечение файлов PBO |
| 4.7 | Руководство по Workbench | Использование Workbench для редактирования скриптов и ассетов |
| 4.8 | Моделирование зданий | Моделирование зданий с дверями и лестницами |
Часть 5: Файлы конфигурации (6 глав)
| # | Глава | Описание |
|---|---|---|
| 5.1 | stringtable.csv | Локализация с stringtable.csv на 13 языков |
| 5.2 | inputs.xml | Настройка клавиш и пользовательские привязки |
| 5.3 | credits.json | Файл титров мода |
| 5.4 | ImageSets | Формат ImageSet для иконок и спрайтов |
| 5.5 | Конфигурация сервера | Файлы конфигурации сервера DayZ |
| 5.6 | Конфигурация спавна | Настройка начального снаряжения и точек спавна |
Часть 6: Справочник API движка (23 главы)
| # | Глава | Описание |
|---|---|---|
| 6.1 | Система сущностей | Иерархия сущностей, EntityAI, ItemBase, Object |
| 6.2 | Система транспорта | API транспорта, двигатели, жидкости, физическая симуляция |
| 6.3 | Система погоды | Управление погодой, дождь, туман, облачность |
| 6.4 | Система камер | Пользовательские камеры, позиция, вращение, переходы |
| 6.5 | Эффекты постобработки | PPE: размытие, хроматическая аберрация, цветокоррекция |
| 6.6 | Система уведомлений | Уведомления на экране, сообщения игрокам |
| 6.7 | Таймеры и CallQueue | Таймеры, отложенные вызовы, повторения |
| 6.8 | Файловый ввод-вывод и JSON | Чтение/запись файлов, парсинг JSON |
| 6.9 | Сеть и RPC | Сетевое взаимодействие, RPC, синхронизация клиент-сервер |
| 6.10 | Центральная экономика | Система лута, категории, флаги, min/max |
| 6.11 | Хуки миссий | Хуки миссий, MissionBase, MissionServer |
| 6.12 | Система действий | Действия игрока, ActionBase, цели, условия |
| 6.13 | Система ввода | Захват клавиш, маппинг, UAInput |
| 6.14 | Система игрока | PlayerBase, инвентарь, здоровье, выносливость, статистика |
| 6.15 | Звуковая система | Воспроизведение аудио, SoundOnVehicle, окружение |
| 6.16 | Система крафтинга | Рецепты крафтинга, ингредиенты, результаты |
| 6.17 | Система строительства | Строительство баз, детали, состояния |
| 6.18 | Система анимации | Анимация игрока, ID команд, колбэки |
| 6.19 | Запросы к рельефу | Рейкасты, позиция на рельефе, поверхности |
| 6.20 | Эффекты частиц | Система частиц, эмиттеры, визуальные эффекты |
| 6.21 | Система зомби и ИИ | ZombieBase, ИИ заражённых, поведение |
| 6.22 | Админ и сервер | Управление сервером, баны, кики, RCON |
| 6.23 | Мировые системы | Время суток, дата, функции мира |
Часть 7: Паттерны и лучшие практики (7 глав)
| # | Глава | Описание |
|---|---|---|
| 7.1 | Паттерн Singleton | Единственные экземпляры, глобальный доступ, инициализация |
| 7.2 | Системы модулей | Регистрация модулей, жизненный цикл, CF-модули |
| 7.3 | RPC-коммуникация | Паттерны для безопасных и эффективных RPC |
| 7.4 | Сохранение конфигурации | Сохранение/загрузка JSON-конфигов, версионирование |
| 7.5 | Системы прав доступа | Иерархические права, wildcards, группы |
| 7.6 | Событийная архитектура | Event bus, publish/subscribe, развязка |
| 7.7 | Оптимизация производительности | Профилирование, кэш, пулинг, сокращение RPC |
Часть 8: Уроки (13 глав)
| # | Глава | Описание |
|---|---|---|
| 8.1 | Ваш первый мод (Hello World) | Пошаговое руководство: создание и загрузка мода |
| 8.2 | Создание пользовательского предмета | Создание предмета с моделью, текстурой и конфигом |
| 8.3 | Создание админ-панели | Админ-UI с телепортом, спавном, управлением |
| 8.4 | Добавление чат-команд | Пользовательские команды в чате игры |
| 8.5 | Использование шаблона мода | Как использовать официальный шаблон модов DayZ |
| 8.6 | Отладка и тестирование | Логи, отладка, диагностические инструменты |
| 8.7 | Публикация в Workshop | Публикация мода в Steam Workshop |
| 8.8 | Создание HUD-оверлея | Пользовательский HUD-оверлей поверх игры |
| 8.9 | Профессиональный шаблон мода | Полный шаблон, готовый к продакшену |
| 8.10 | Создание мода транспорта | Пользовательский транспорт с физикой и конфигом |
| 8.11 | Создание мода одежды | Пользовательская одежда с текстурами и слотами |
| 8.12 | Создание торговой системы | Система торговли между игроками/NPC |
| 8.13 | Справка по Diag Menu | Диагностические меню для разработки |
Быстрая справка
| Страница | Описание |
|---|---|
| Шпаргалка | Краткий обзор синтаксиса Enforce Script |
| Быстрая справка по API | Наиболее используемые методы API движка |
| Глоссарий | Определения терминов моддинга DayZ |
| FAQ | Часто задаваемые вопросы о моддинге |
| Устранение неполадок | 91 распространённая проблема с решениями |
Авторы
| Разработчик | Проекты | Основные вклады |
|---|---|---|
| Jacob_Mango | Community Framework, COT | Система модулей, RPC, права доступа, ESP |
| InclementDab | Dabs Framework, DayZ Editor, Mod Template | MVC, ViewBinding, UI редактора |
| salutesh | DayZ Expansion | Маркет, группы, маркеры карты, транспорт |
| Arkensor | DayZ Expansion | Центральная экономика, версионирование настроек |
| DaOne | VPP Admin Tools | Управление игроками, вебхуки, ESP |
| GravityWolf | VPP Admin Tools | Права доступа, управление сервером |
| Brian Orr (DrkDevil) | Colorful UI | Цветовые темы, паттерны modded class UI |
| lothsun | Colorful UI | Цветовые системы UI, визуальные улучшения |
| Bohemia Interactive | DayZ Engine & Samples | Enforce Script, ванильные скрипты, DayZ Tools |
| StarDZ Team | Эта вики | Документация, перевод и организация |
Лицензия
Документация лицензирована под CC BY-SA 4.0. Примеры кода лицензированы под MIT.












