Создание модов для 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.csvLoadingJingle- название файла мелодии при загрузке в игру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