Модификации
|  | Тут маловато информации Если есть ещё - принесите её нам в жертву. Нам она нужна. Если по теме, конечно :3 | 
|  | Если шаришь по английскому, то интересно будет взглянуть на ЭТО. | 
Содержание
Импорт модификации
Есть три способа импортировать модификацию. И все они простые
1. (только PC-версия) Скопируйте и вставьте папку/файл мода в папку mods Mindustry В Steam это находится в установочном каталоге Mindustry:
steam/steamapps/common/Mindustry/save/mods
Если у вас нет Steam-версии, то путь должен быть следующим:
%appdata%/Mindustry/mods
2. Заархивируйте папку с модификацией (не в отдельную папку, а лишь содержимое)(можете пропустить этот пункт, если мод уже находится в архиве).
2.1. Импортируйте через встроенный файловый менеджер игры:
Главное меню→Модификации→Импортировать модификацию. Это не рекомендуется для мододелов, т.к. вам нужно постоянно архивировать в мод.
3.Узнайте адрес к модификации на github и скопируйте имя пользователя+название репозитория.
3.1.Импортируйте через игру:
Главное меню→Модификации→Импортировать GitHub модификацию.
Создание модификации
|  | Перед созданием НАСТОЯТЕЛЬНО рекомендуем почитать эту статью >>> JSON | 
|  | И ещё эту >>> Git | 
- Переходим в директорию
- Для Steam:steam/steamapps/common/Mindustry/mods
- Для остальных настольных: %appdata%/Mindustry/mods
%appdata%/Mindustry/mods
- Создаём папку с любым названием. Желательно латиницей. Пусть название модификации будет Modik.
- Создаём папки и файлы так же, как и в древе снизу. Если лень создавать, то можете скачать отсюда.
└── Modik ├── content │ └── blocks │ └── magma.json │ └── liquids │ └── lava.json │ │──items ├── mod.json ├── sounds │ ├── pewpew.mp3 │ └── pewpew.ogg └── sprites │ └── blocks │ └── liquids
Код
Подсказки!
- В большинстве случаев используется английский для создания модификаций. Если вы не знаете какой-то блок, то можно нажать сюда
- Прочитайте руководство по синтаксису JSON.
- Лучше используйте английский.
- Всему нужно тип. Всегда.
- Все блоки, предметы, мехи и т.д. имеют два одинаковых типа. Это name(имя) и description(описание).
- Регистр важен!
Пример:
"name": "Zoloto" "description":"Золото (для тех, кто не знает английский)"
Блоки
Специальная категория:
blocks
Было перемещено сюда для уменьшения высоты страницы.
Предметы
Специальная категория:
 
item
| Переменные | Значения | Описание | 
|---|---|---|
| name | Произвольная cтрока | Название предмета, будет отображено в игре. | 
| description | Произвольная cтрока | Описание предмета, будет отображено в игре. | 
| cost | Вещественное число > 0 | Цена расчёта стоимости предмета при копировании блоков содержащих его. | 
| color | От #000000 до #FFFFFF | Цвет предмета, в 16 битном диапазоне цветов. Используйте только HEX цвета. | 
| hardness | Натуральное число | Жесткость, используется для материалов, добываемых бурами. Чем больше число, тем труднее добыть предмет (от 1 до 4) | 
| alwaysUnlocked | false или true | При значении true предмет открыт в базе данных | 
| explosiveness | Вещественное число > 0 | Взрывоопасность предмета | 
| flammability | Вещественное число > 0 | Возгораемость предмета | 
| radioactivity | Вещественное число > 0 | Радиоактивность. 0 = отсутствует, 1 = чернобыльский эпицентр | 
| lowPriority | false или true | Если true, этот элемент имеет самый низкий приоритет для буров. | 
| cost | 1 = 1/60 секунды | Скорость строительства блока с использованием этого элемента. | 
Жидкости
Специальная категория:
Директория:
├── Modik ├── content │ └── liquids │ └── lava.json
liquid
| Свойство | Описание | Примечание | 
|---|---|---|
| temperature | Температура. 0.5 — это комнатная; 0 — очень холодная; 1 — знойная жара. | |
| flammability | Воспламеняемость. Доступные значения: [0;1] 0 — полностью воспламеняется; Всё, что выше, может загореться при воздействии тепла 0.5+ — очень легко воспламеняется. | |
| viscosity | Вязкость (Густота) 1 - Вязкая , желеобразная (При проливании жидкости ,она никогда не пропадёт) 0.5 - Вода (Пропадает через время) 0 - Маскимально жидкая (Моментально пропадает) | |
| heatCapacity | Теплоёмкость количества тепла сохраняемого этой жидкостью. 0.4 — вода (прилично) Всё, что ниже, вероятно, менее плотно и хуже охлаждает. | |
| explosiveness | Сила взрыва жидкости при перенагревании. 0 — никак 1 — ядерная бомба | |
| flameColor | Цвет при взрыве жидкости. | Используйте только HEX цвета. | 
| color | Цвет жидкости. | Используйте только HEX цвета. | 
| effect | Эффект. | Эффекты | 
Единицы (юниты)
| Переменные | Значения | Описание | Примечание | 
|---|---|---|---|
| type | flying, mech, legs, naval, payload | Тип юнита | flying - летающий, mech - ходячий, legs - паук, naval - плавающий, payload - летающий и переносящий блоки/юнитов | 
| name | Произвольная строка | Название юнита | - | 
| description | Произвольная строка | Описание юнита | - | 
| maxVelocity | От 0 до ∞ | Оганичение скорости для юнита | - | 
| speed | От 0 до ∞ | Скорость передвижения юнита | - | 
| flying | true \ false | Сможет ли не летающий юнит летать | - | 
| health | От 0 до ∞ | Здоровье юнита | 1 = 1 | 
| drag | От 0 до ∞ | Величина отклонения юнита | - | 
| engineOffset | От 0 до ∞ | Направление отклонения юнита | - | 
| weaponOffsetY | От 0 до ∞ | место появления снарядов при выстреле | - | 
| engineSize | От 0 до ∞ | - | - | 
| rotatespeed | От 0 до ∞ | Скорость поворота юнита | - | 
| baseRotateSpeed | От 0 до ∞ | Скорость поворота ног юнита (есле наземный) | - | 
| range или attackLength | От 0 до ∞ | Дальность обнаружения юнитом врагов | - | 
| hitsize | От 0 до ∞ | - | - | 
| hitsizeTile | От 0 до ∞ | - | - | 
| shootCone | От 0 до ∞ | Разброс оружия юнита | - | 
| mass | От 0 до ∞ | Влияет на силу отталкивания юнита или от юнита | 1 = 1 | 
| targetAir | true \ false | Сможет ли юнит стрелять по воздушным целям | - | 
| rotateWeapon | true \ false | Будет ли у юнита поварачиватся оружие | - | 
| retreatPercent | От 0 до ∞ | - | - | 
| itemCapacity | От 0 до ∞ | Размер внутреннего хранилища юнита | - | 
| toMine | "1-ore, 2-ore" | Фильтр предметов для добычи | Есле 1 руда то указывается сразу за переменной, От 2 до ∞ в массиве | 
| buildPower | От 0 до ∞ | Скорость постройки блоков юнитом | - | 
| Weapon | weapon | Оружие юнита | - | 
| immunities | - | Имунитеты | - | 
| deathSound | "1.ogg" | Звук смерти | - | 
пример кода со всеми переменными(не советую так делать)
{
	"type": "flyingUnit",
	"name": "Chrome Wraith",
	"description": "Generally annoying and flashy.",
	"maxVelocity": 10,
	"speed": 0.5,
	"drag": 10,                                     // заставляет юнита лететь боком
	"flying": true,
	"health": 90,
	"engineOffset": 5.5,
	"range": 160,
	"weaponOffsetY": 7,                             // отдалило орудия вперёд от юнита
	"engineSize": 5,                                // увеличивает размер огонька с зади
	"rotateSpeed": 16,
	"baseRotateSpeed": 16,
	"shootCone": 16,
	"mass": 1500,
	"targetAir": true,
	"rotateWeapon": true,
	"retreatPercent": 100,
	"itemCapacity": 100,
	"tomine": "copper-ore"
	"buildPower": 80,
	"deathSound": "swings.ogg",
	"weapon": {
		"name": "chrome-blaster",
		"length": 1.5,
		"damage":45,
		"reload": 10,
		"alternate": true,
		"bullet": "lightning"
	}
}
Патроны
Используется в Туррелях
| Свойство | Описание | Примечания | |||
|---|---|---|---|---|---|
| type | Добавляет пули определенные свойства | - | speed | Скорость снаряда | Вещественное число | 
| damage | Урон | Вещественное число | |||
| bulletWidth | Ширина снаряда | Вещественное число | |||
| bulletHeight | Длина снаряда | Вещественное число | |||
| shootEffect | Эффект выстрела | Название эффекта | |||
| smokeEffect | Эффект после выстрела | Название эффекта | |||
| ammoMultiplier | Кол-во снарядов | Вещественное число | |||
| splashDamageRadius | Радиус Взрыва | Вещественное число | |||
| splashDamage | Урон От взрыва | Вещественное число | |||
| bulletSprite | Текстура Пули | ModName-SpriteName | 
Пример
"Патрон": {			 
       "speed": 3.5,			 
       "damage": 19,			 
       "bulletWidth": 7,			 
       "bulletHeight": 9,			 
       "shootEffect": "shootSmall",
       "smokeEffect": "shootSmallSmoke",
       "ammoMultiplier": 1.0,
       "splashDamageRadius": 20,
       "splashDamage":10
}
Турели
Специальная категория:turret.
| Свойство | Описание | Примечание | |
|---|---|---|---|
| name | Имя турели. | ||
| description | Описание турели. | ||
| targetAir | Турель стреляет по воздушным юнитам. | True или False. | |
| targetGround | Турель стреляет по наземным юнитам. | True или False. | |
| size | Размер турели. | В блоках. | |
| outlineIcon | обводка | true или false (по умолчанию true) | |
| inaccuracy | Разброс. | ||
| reload | Перезарядка. | ||
| shootCone | Используется для взрывателя,конусность выстрела. | ||
| rotateSpeed | Скорость поворота турели. | ||
| shoots | Выстрелов за раз. | ||
| range | Дальность полёта пули. | 
Вот пример энергетической турели:
{
 "type": "ChargeTurret",
 "name": "Имя турели",
 "description": "Описание турели",
 "health": "здоровье",
 "size": "размер",
 "reload": "перезарядка",
 "range": "дальность обзора",
 "chargeTime": "Время зарядки",
 "chargeMaxDelay": "задержка",
 "chargeEffects": кол-во энергии на выстрел, 1 еденичка=60 энергии
 "cooldown": "остывание",
 "recoil": "отдача",
 "powerUse": "энергопотребление"
 "shootShake": "тряска экрана",
 "shootEffect": "Эффект выстрела",
 "smokeEffect": "Эффект дыма",
 "chargeEffect": "Эффект зарядки",
  "chargeBeginEffect": эффект начала зарядки
 "shootType": "Тип выстрела lancerLaser/meltdownLaser/arc"
 "inaccuracy": "Разброс",
 "rotatespeed": "Скорость вращения",
 "requirements": [
То из чего вы будете это делать
 ],
 "category": "turret"
 "shootSound": "laser"
 "research": "duo"
}
Оружие
Используется в юнитах и мехах.
Указывается как переменная   weapon .
Возможные свойства:
| Свойства | Значения | Описание | примечание | 
|---|---|---|---|
| name | произвольная строка | Название оружия | |
| length | От 0 до ∞ | - | |
| width | От 0 до ∞ | - | |
| reload | От 0 до ∞ | Скорость перезарядки | |
| range | От 0 до ∞ | Дальность выстрела | |
| alternate | True \ False | Присутствие или отсутствие альтернативного огня | |
| bullet | См. Пули | Пуля, которой стреляет оружие | может иметь дополнительные параметры | 
| shots | От 1 до ∞ | Определяет сколько будет выпущено пулей за выстрел | может быть указан второй раз после след. параметра | 
| shotDelay | От 0 до ∞ | Время перерыва между выстрелами | |
| shotCone | От 0 до ∞ | Разброс | |
| recoil | От 0 до ∞ | Отдача от выстрела | |
| ejectEffect | См. Эффекты | Эффект от выстрела | |
| spacing | От 0 до ∞ | - | |
| inaccuracy | От 0 до ∞ | Неаккуратность выстрела | |
| velocityRnd | От 0 до ∞ | - | |
| shootSound | "1.ogg" | Звук выстрела | |
| ignoreRotation | True \ False | - | |
| shake | От 0 до ∞ | - | 
Пули
используется в оружии для юнитов\мехов
Виды пуль (что то может не работать)
//Артиллерия
artilleryDense, artilleryPlastic, artilleryPlasticFrag, artilleryHoming, artilleryIncendiary, artilleryExplosive, artilleryUnit,
//flak (?) flakScrap, flakLead, flakPlastic, flakExplosive, flakSurge, flakGlass, glassFrag,
//Ракеты missileExplosive, missileIncendiary, missileSurge, missileJavelin, missileSwarm, missileRevenant,
//Стандартные standardCopper, standardDense, standardThorium, standardHoming, standardIncendiary, standardMechSmall, standardGlaive, standardDenseBig, standardThoriumBig, standardIncendiaryBig,
//Электрические lancerLaser, meltdownLaser, lightning, arc, damageLightning,
//Водяные waterShot, cryoShot, slagShot, oilShot, //Бомбы bombExplosive, bombIncendiary, bombOil;
Эффекты
| Эффект | Описание | 
|---|---|
| none | отсутствует | 
| placeblock | Эффект блока | 
| breakblock | Эффект уничтожения блока | 
| smoke | Эффект дыма | 
| spawn | Эффект спавна | 
| tapblock | эффект нажатия на блок | 
| vtolhover | Эффект вертикального взлёта | 
| unitdrop | Эффект падения юнита | 
| unitpickup | Эффект взлёта юнита | 
| unitland | Эффект посадки юнита | 
| pickup | Эффект поднятия | 
| healwave | Эффект регенириющий волны | 
| heal | Эффект регенерации | 
| landshock | - | 
| reactorsmoke | Эффект дыма реактора | 
| nuclearsmoke | Эффект ядерного дыма | 
| redgeneratespark | Эффект красной сгенериваной искры | 
| fuelburn | Эффект горения топлива | 
| plasticburn | Эффект горения пластика | 
| pulverize | Эффект измельчения | 
| pulverizeRed | Разновидность эффекта измельчения | 
| pulverizeRedder | Разновидность эффекта измельчения | 
| pulverizeSmall | Разновидность эффекта измельчения | 
| pulverizeMedium | Разновидность эффекта измельчения | 
| purify | Эффект очищения | 
| purifyoil | Эффект очищения нефти | 
| purifystone | Эффект очищения камня | 
| generate | - | 
| mine | Эффект бурения | 
| mineBig | Эффект бурения среднего бура | 
| mineHuge | Эффект бурения большого бура | 
| smelt | Эффект плавки | 
| teleportActivate | Эффект активного телепорта | 
| teleport | Эффект телепортации | 
| teleportOut | Эффект телепортирования | 
| ripple | Эффект ряби, пульсации | 
| bubble | Эффект пузыря | 
| launch | Эффект запуска | 
| healBlock | Эффект лечебного блока | 
| healBlockFull | - | 
| healWaveMend | Эффект лечебной волны c починкой (?) | 
| overdriveWave | Эффект ускоряющей волны | 
| overdriveBlockFull | - | 
| shieldBreak | Эффект уничтожения щита | 
| hitBulletSmall | Эффект попадания маленький | 
| hitFuse | Эффект загорания выстрелом | 
| hitBulletBig | Эффект попадение большой пулей | 
| hitFlameSmall | Эффект попадения маленьким огнём | 
| hitLiquid | Эффект выстрела жидкостью | 
| hitLaser | Эффект выстрела лазером | 
| hitLancer | Эффект выстрела лансером | 
| hitMeltdown | Эффект выстрела испепелителем | 
| despawn | - | 
| flakExplosion | Эффект взрыва зенитного огня | 
| blastExplosion | - | 
| plasticExplosion | Эффект взрыва пластика | 
| artilleryTrail | Эффект артилерийского хвоста (?) | 
| incendTrail | Эффект хвоста зажигательного снаряда | 
| missileTrail | Хвост ракеты | 
| absorb | Эффект впитывания | 
| flakExplosionBig | Взрыв большого зенитного огня | 
| plasticExplosionFlak | - | 
| burning | Эффект горения | 
| fire | Эффект огня | 
| fireSmoke | Эффект дыма от огня | 
| steam | Эффект тумана или пара | 
| fireballsmoke | Эффект дыма огненого шара | 
| ballfire | Эффект шара огня | 
| freezing | Эффект заморозки | 
| melting | Эффект плавления | 
| wet | Эффект намокания | 
| oily | Эффект нефти | 
| overdriven | - | 
| dropItem | Эффект выбрасывания предмета | 
| shockwave | Эффект ударной волны | 
| bigShockwave | Эффект большой ударной волны | 
| nuclearShockwave | Эффект взрывной волны от ядерного взрыва | 
| explosion | Эффект взрыва | 
| blockExplosion | Эффект взрыва блока | 
| blockExplosionSmoke | Эффект дыма после взрыва блока | 
| shootSmall | Эффект маленького выстрела | 
| shootHeal | Эффект регенерирующего взрыва | 
| shootSmallSmoke | - | 
| shootBig | - | 
| shootBig2 | - | 
| shootBigSmoke | - | 
| shootBigSmoke2 | - | 
| shootSmallFlame | - | 
| shootPyraFlame | - | 
| shootLiquid | - | 
| shellEjectSmall | - | 
| shellEjectMedium | - | 
| shellEjectBig | - | 
| lancerLaserShoot | - | 
| lancerLaserShootSmoke | - | 
| lancerLaserCharge | - | 
| lancerLaserChargeBegin | - | 
| lightningCharge | - | 
| lightningShoot | Эффект выстрела молнией | 
| unitSpawn | Эффект спавна юнита | 
| spawnShockwave | - | 
| magmasmoke | - | 
| impactShockwave | - | 
| impactcloud | - | 
| impactcloud | - | 
| impactsmoke | - | 
| dynamicExplosion | - | 
| padlaunch | - | 
| commandSend | - | 
| coreLand | Эффект падения ядра | 
Статус эффекты
Статус эффекты накладываются на некоторый объект на определенное время
| Свойство | Описание | Примечание | 
|---|---|---|
| none | Нет эффекта. | - | 
| burning | Эффект горения. | Наносит урон в течение времени | 
| freezing | Эффект заморозки. | Замедляет объект и уменьшает его броню | 
| wet | Эффект промокания. | Делает объект уязвимым к электрическому урону | 
| melting | Эффект плавления. | Наносит урон в течение времени и замедляет объект | 
| tarred | Эффект дегтя. | Замедляет объект и делает его уязвимым к огненному урону | 
| overdrived | Эффект ускорения. | Увеличивает скорость объекта и наносимый им урон | 
| shielded | Эффект защиты. | Увеличивает броню объекта в 3 раза | 
| boss | Эффект босса. | Увеличивает броню объекта и его урон в 3 раза | 
| shocked | Эффект шока. | - | 
| corroded | Эффект коррозии. | Наносит небольшой урон | 
Спрайты
При добавлении название согласовывается с .json файлом.
Игра поддерживает только спрайты с разрешением .png .
Таблица размеров спрайта относительно размера блока.
| Спрайт | Блок | 
|---|---|
| 32 х 32 | 1 х 1 | 
| 64 х 64 | 2 х 2 | 
| 96 х 96 | 3 х 3 | 
| 128 х 128 | 4 х 4 | 
При рисовке юнитов и мехов допускается свободный размер изображения, который будет определять его размер
Расположение спрайтов в моде
   Modik
   └── content
       ├── sprites
       │   ├──blocks   - Спрайты блоков, все текстуры для которых нет подпапок складываюстся сюда.
       |   |  ├──conveyors    -Подпапка для конвееров.
       |   |  ├──drills       -Подпапка для буров.
       |   |  ├──environment  -Подпапка для текстур пола.
       |   |  ├──turrets      -Подпапка для туррелей.
       |   |  └──units        -Подпапка для заводов юнитов.
       │   ├──items    - Спрайты предметов.
       │   ├──mechs    - Спрайты мехов.
       │   ├──units    - Спрайты юнитов.
       │   └──zones    - Спрайты карт.
Мультиязычность
Наверное, самое простое для добавления.
- Узнаём специальную категорию созданной вами вещью. Специальная категорию можно узнать в разделе Код. Ниже приведено обрезанное древо.
└── Modik
    ├── bundles
    │   └── bundle.properties
    │   └── bundle_ru.properties
- Создаём в папке Modik/bundlesфайл(если вы не создали ранее).
- Если хотите добавить строки для английского, то выберите файл bundle.properties
- Если хотите добавить строки для русского, то выберите файл bundle_ru.properties
- Добавляем строку:
СпециальнаяКатегория.НазваниеВещи.name(имя)/description(описание)= <Вставить текст>
Пример.
Например, я хочу добавить для жидкости lava название и описание другое на русском.
- Переходии в файл bundle_ru.properties
- Пишем следующее:
- liquid.lava.name = Лава 
- Нажимаю Enter
- liquid.lava.description = Очень горячая жидкость. 
Звуки
Спрайт Пуль
- Переходим в ModName -> Sprite -> Blocks и создаем папку bullets.
- Кидаем туда спрайт пули. Для примера название у пуль будет pul.png.
- Обязательно нужно создать pul-back.png.
- для pul-back.png можно использовать тот же спрайт от pul.png.
- Заходим в mod.json и смотрим на строку "Name": "turrets". Именно это название нужно запомнить или скопировать.
- переходим к описаниям и добавляем в описания пуль "BulletSprite": "turrets-pul".
Учим английский
Было перемещено сюда для уменьшения высоты страницы.



