Создание модов для Null's Brawl: от А до Я.
Если вы всегда мечтали сделать собственные модификации для Null's Brawl, но не знали с чего начать — эта статья для вас. Мы расскажем базовые принципы создания модов: от структуры игровых файлов до правильной упаковки и публикации.
1. Что вообще представляют из себя моды Null’s Brawl?
Моды для Null's Brawl представляют из себя файл .NullsBrawlAssets, который можно напрямую открыть в Null's Brawl. В основном, мод изменяет файлы .csv, которые находятся в assets/csv_logic.csv, assets/csv_client.csv, assets/localization.csv. Что он может изменить? Буквально все визуальные элементы и некоторые настройки игры. Скины, карты, шрифты, музыка, экраны загрузки - всё может быть изменено.
2. Как начать создавать моды?
Создание модов — это отличная возможность проявить креативность и внести свой вклад в любимую игру.
Для начала - нужно скачать программу, которая умеет работать с файлами .json - для Windows - VS Code, Notepad++, и др. Для Android - Редактор кода, QuickEdit и др. Можно прочитать мануал, который был написан самим разработчиком Null's Brawl, Daniillnull: клик
В нашей статье мы напишем мод, который будет изменять тему лобби на лобби из "Станции призраков".
3. Настройка проекта. Создание content.json
Откройте файловый менеджер на вашем телефоне (это может быть встроенный в систему проводник, ES Проводник, и пр.) Создайте папку с любым названием. Откройте её. Создайте файл content.json - это название файла обязательно.
Перед началом считаем нужным написать правила написания:
- Файл должен начинаться с
{
и заканчиваться}
. - Все ключи и строковые значения пишутся в двойных кавычках
" "
. - Все параметры в json должны указываться через запятую.
- Числа и логические значения (
true
,false
) пишутся без кавычек. - После каждой пары ключ-значение ставится запятая, кроме последней.
- Название таблицы указывается без
.csv
в конце. - Название строки соответствует полю
Name
в таблице.
Откройте файл через редактор. Вы увидите простой файл. Это нормально. Для начала напишите название вашего мода: оно указывается через параметр @title:
{ "@title": "Мой мод :)" }
Теперь напишем описание для нашего мода: оно указывается через параметр @description:
{ "@title": "Мой мод :)", "@description": "Мой самый первый мод" }
Итак. Начало положено. Теперь нужно сказать игре, что именно нужно изменить. Для этого нужно обратиться к csv-файлу игры, в нашем случае к themes
, так как именно этот файл управляет темами игры.
Открыв файл themes.csv
через редактор таблиц, мы увидим, что первая строка содержит названия. Это параметры. Также (после 2-й строки) в 1-м столбце мы также увидим названия. Это объекты. Мы можем изменять как существующие строки, как и создавать свои. Но для того, чтобы наша тема в игре не менялась, нам нужно заменить все темы. Для этого воспользуемся звёздочкой: *
{ "@title": "Мой мод :)", "@description": "Мой самый первый мод", "themes": { "*": { } } }
Но просто создания объекта недостаточно. Нужно написать параметры и значения.
- Строку нужно всегда указывать в двойных скобках:
"Привет"
- Число - просто числом:
23
- Истину или ложь можно указать через
true
илиfalse
соответственно. - Пустое значение указывается как
null
FileName
- название файла, где хранится фон для лобби игры.ExportName
- название фона в файле, находится через SC Editor.ThemeMusic
- название музыки в лобби, находится вmusic.csv
LoadingJingle
- название файла мелодии при загрузке в игруLoadingScreen
- название файла, где хранится экран загрузки.
Так как наша тема уже существовала раньше в игре, мы можем найти в themes.csv
тему "GhostTrain". Вот эта строка:
Заполним данные, следуя таблице:
{ "@title": "Мой мод :)", "@description": "Мой самый первый мод", "themes": { "*": { "FileName": "sc/background_ghosttrain.sc", "ExportName": "bgr_ghosttrain", "ThemeMusic": "Ghosttrain_Menu", "LoadingJingle": "sfx/ghost_train_load_01.ogg", "LoadingScreen": "sc/loading.sc" } } }
LoadingScreen был не указан, так как используется стандартный Loading из игры. Нужно найти версию, в которой была добавлена тема "Станция призраков".
Тема была добавлена в 46 версии Brawl Stars.
Это нам очень понадобится в будущем. Пока напишем код для музыки, аналогично теме:
{ "@title": "Мой мод :)", "@description": "Мой самый первый мод", "themes": { "*": { "FileName": "sc/background_ghosttrain.sc", "ExportName": "bgr_ghosttrain", "ThemeMusic": "Ghosttrain_Menu", "LoadingJingle": "sfx/ghost_train_load_01.ogg", "LoadingScreen": "sc/loading.sc" } }, "music": { "Ghosttrain_Menu": { "Disabled": null, "FileName": "music/brawloween_2022_menu_01.ogg" } } }
Мы просто добавили FileName для того, чтобы указать путь до файла, и включаем музыку, чтобы игра её видела.
Итак, .json полностью готов к использованию! Сохраняем код и идём к следующему шагу.
4. Использование файлов.
Посмотрите на код. Возможно, вы заметили, что там есть пути до файлов. А где взять эти самые файлы? Есть очень хороший источник файлов, который позволяет найти файлы для любой версии Brawl Stars.
Нам нужно найти следующие файлы:
Открываем источник. Находим версию v46 и поочередно ищем и скачиваем файлы. Внимание! для некоторых .sc есть файлы _tex.sc, и .zktx. Их тоже нужно скачать и бросить в папку с .sc, иначе мод работать не будет!
Открываем папку мода. Создаем папки sc, music, и sfx. Кидаем каждый файл в свою папку, и на этом создание самого мода закончено!
Если очень хочется, можно в папку мода закинуть icon.png. Этот файл используется как иконка мода и отображается при установке.
С помощью zip-архиватора упакуйте всё содержимое папки мода и получившийся .zip - это и есть ваш мод!
5. Тестирование и публикация.
Для тестирования нашего мода можно использовать несколько способов. Но мы будем использовать метод root-прав.
Для этого мы генерируем uuid на сайте https://uuidgenerator.net. Затем распакуем наш .zip по адресу /data/data/daniillnull.nulls.brawlstars/files/mods/{ваш-uuid}/
Затем просто заходим в игру, и проверяем наш мод. Если всё хорошо - ура! Наш мод можно публиковать.
Есть Telegram-группа мододелов: https://t.me/nb_mods. А уже там есть вкладка Signing Requests Pro. Отправляем наш .zip туда, пишем небольшое описание, и ждём. Модераторы проверят ваш мод и отправят в Signed (vXX), где XX - версия игры. После этого ваш мод будет доступен для всех!
Удачи в создании ваших модов! @NullsGaming