Перейти к содержимому

Как сделать мод на старбаунд

  • автор:

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Mod maker for Starbound

License

SilverFishCat/SBModMake

Name already in use

  • Local
  • Codespaces

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more about the CLI.

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Mod maker for Starbound

Currently, the application has only been tested on Windows, but aspires to work on all platform that starbound supports.

  • Reduce common modding tasks into a one-click or no-click operations
  • Help modders organize mods
  • Standardize starbound mods, using the conventions already in place by the community
  • Give me something to do in my free time
  • Automaticly finds the starbound folder [Windows]
  • Makes packing mods easier (no CLI)
  • Easy mod management
  • Streamlines mod creation
  • Default star bound folders for all OSs
  • Save/load mod configurations
  • Easy opening of json, text and png files

Creating a new mod

  1. Input the name of the mod set the
  2. Select a custom folder (or use the default one) and press create to create the mod folder.
  3. Input the modinfo filename (or use the default one) and press create to create it.
  4. Press the edit button besides the modinfo filename to edit the modinfo file.
  5. Press Load to view the contents of the mod folder.
  6. If you want to edit a text file within the mod, select it the file tree and press Edit.

Open the settings window by clicking «Settings»

Set up the starbound folder (or let the program find it automatically on windows) Set up a default text editor, like Notepad++ Select your operating system for the program to find the starbound tools.

Compile the code in /src and include the libraries in /lib. Make sure to also reference these libraries:

In you use eclipse, you can import the entire content as an eclipse project.

Как сделать мод на старбаунд

1
7
2
1
2
1
1

9,041 уникальных посетителей
840 добавили в избранное

Руководство создано в помощь лицам, желающим создать свой мод, но не до конца осознающим, с чего им следует начать. Я постарался максимально доступно рассмотреть основные примеры игрового контента и то, как следует его добавлять в игру.

Прошу учесть, что процесс создания модов не быстр и весьма зануден — если вы нетерпеливый человек, считающий, что будет достаточно "щёлкнуть пальцами" и всё будет готово, то вы серьёзно ошибаетесь и, скорее всего, не получите никакого удовольствия от процесса работы.

Для работы вам понадобится удобный для вас текстовый редактор. Можно обойтись даже стандартным блокнотом, но я рекомендую обратить взор на Notepad++ — он весьма прост в обращении, а его функционал идеально подходит для работы. Скачать можно здесь [notepad-plus-plus.org] .

Для редактирования спрайтов также понадобится какой-нибудь графический редактор: Paint, GIMP, Photoshop. Любой, удобный вам — главное, чтобы PNG открывал.

В первой половине руководства рассмотрены реальные примеры контента, а во второй описаны некоторые приёмы и нюансы моддинга. Прежде чем переходить к выполнению сложных примеров (с 5 по 9), рекомендую сначала ознакомиться со всеми разделами руководства.

Несколько важных фактов:

Для начала нужно открыть папку с установленной игрой. При наличии официальной стим-версии игры, проще всего сделать это через клиент Steam следующим образом:

Через верхнее меню переходим в раздел Библиотека, затем в левом меню находим Starbound и щёлкаем по нему правой кнопкой мыши.

В выпавшем меню выбираем Свойства и в новом открывшемся окошке переходим во вкладку Локальные файлы, затем нажимаем кнопку Просмотреть локальные файлы — после этого должна открыться корневая директория игры.

Переходим в mods, создаём внутри новую директорию mymod (можно другое, удобное вам название). В названии используем только символы латинского алфавита и цифры.

Папка для содержимого будущего мода подготовлена, а потому можно переходить к примерам игрового контента. Рекомендую внимательно читать и тестировать каждый пример, поскольку в них разбираются важные параметры игровых элементов.

Если в рамках определённого примера уже был рассмотрен какой-то параметр, в последующих примерах я тот же самый параметр повторно объяснять не буду.

Начинать лучше с чего-то простого, например: бесполезно-красивого плаката на стену.

В папке с модом создаём директорию objects, в ней директорию mypic, а уже в ней файл mypic.object.

Название файла и директории mypic — это всего лишь пример, вы можете использовать любое угодное вам название, главное, чтобы оно было "свободно" — то есть не встречалась ранее в стандартных игровых файлах, а также установленных вами модах.

Ещё нужен спрайт плаката и его иконка для инвентаря. Оба графических файла в формате PNG. Иконка на самом деле необязательна — вместо неё вполне можно указывать основной спрайт, однако в примерах я буду указывать всё полностью. Для тестирования можно использовать подготовленные мной файлы.

скачиваем в директорию mypic (mods/mymod/objects/mypic), как название задаём mypic.png.

скачиваем в директорию mypic (mods/mymod/objects/mypic), как название задаём mypic_icon.png.

Через текстовый редактор задаём файлу mypic.object следующее содержание:

Уникальный технический идентификатор (ID) объекта. Не должен повторяться в других объектах и предметах.

Тег типа колониста, который должен жить в комнате с этим объектом.

Можно указывать несколько вариантов подобным образом: ["crafting","electronic"], но тогда тип колониста в комнате будет выбираться случайно при его спавне.

Все возможные варианты тегов можно глянуть здесь [starbounder.org] . Теги с колонистами, это те, что Tenants — Yes.

Редкость объекта. По факту — влияет лишь на цвет рамки объекта, когда он в инвентаре.

Доступные варианты:
Common
Uncommon
Rare
Legendary
Essential

Насколько мне известно, создать собственные уровни редкости или отредактировать имеющиеся невозможно. Это обусловлено тем, что разработчики прописали систему редкости в часть игрового движка закрытую для модифицирования.

Игровое описание объекта.

Игровое название объекта.

Раса, к которой относится объект.
generic — общий вариант.

Краткое пояснение, характеризующее объект.
Демонстрируется в инвентаре, при наведении курсора на объект.

Некоторые сочетания автоматически преобразовываются в игре, например: crafting в игре показывается как Crafting Station.

Стоимость объекта в игровой валюте.

Возможно ли копировать объект при помощи принтера.

true — можно.
false — нельзя.

Комментарий игрового персонажа об объекте. Зависит от расы и произносится при клике на объект в режиме исследования (по умолчанию — N).

Путь к файлу иконки объекта. Иконка демонстрируется пока объект находится в инвентаре.

Далее группа параметров orientations, отвечающая за поведение и расположение объекта в игре.

Путь к игровому спрайту.

Координаты сдвига спрайта размещённого объекта, первая цифра отвечает за горизонтальное положение, а вторая за вертикальное.

Эти координаты могут быть полезны для, как вам кажется, правильного позиционирования объектов нестандартных размеров, то есть занимающих не целые блоки, а например, 2,5 блока по ширине или высоте. Отрицательное значение (с минусом) сдвигает объект влево и, соответственно, вниз.

0, 0 — это стандартные координаты, подходящие для большинства задуманных объектов.
-5, -10 — сдвинет объект на 5 пиксов влево и 10 вниз.
5, 10 — сдвинет объект на 5 пиксов вправо и 10 вверх.

Иллюстрация для упрощения понимания работы координат.

Плоскость, на которую ставится объект.

top — к потолку (например: люстра).
bottom — к полу (например: диван).
background — к заднему фону (например: картина).

Остальные параметры в orientations пока что не важны.

Как только спрайты и файл "mypic.object" будут готовы, останется проверить в игре, правильно ли всё сделано.

Включаем игру, заходим на персонажа, вводим в консоль следующие команды:
/admin
/spawnitem mypic
В данном случае mypic — это уникальный ID нашего объекта.
Режим админа можно отключить повторным вводом команды /admin.

Команда spawnitem очень удобна, но в игровом плане не особо эстетична — стоит добавить свой станок для создания предметов.

В директории objects мода создаём новую директорию mycraft, а в ней файлы mycraft.object и mycraft.frames. Названия должны быть одинаковы, различаются только расширения файлов.

Не забываем картинки.

Скачиваем в директорию mycraft (mods/mymod/objects/mycraft), как название задаём mycraft.png.

скачиваем в директорию mycraft (mods/mymod/objects/mycraft), как название задаём mycraft_icon.png.

Файлу mycraft.object задаём содержание:

Действие, которое происходит при взаимодействии с объектом.

Группа параметров interactData отвечает за различные нюансы взаимодействия с объектом.

Путь к файлу настроек действия, производимого при использовании объекта.

В данном случае используются наиболее простые настройки, подходящие для несложных станков. В игре есть и другие, более сложные варианты настроек крафтинга, но их вы будете изучать самостоятельно.

Параметр, отвечающий за выборку рецептов для станка.

Группа параметров orientations здесь отличается от статичного декоративного объекта, поскольку спрайт в этот раз анимирован.

Отличие этого варианта от обычного images в том, что появляется возможность зеркально отражать объект при размещении. Если спрайт состоит из одного кадра (т.е. он без анимации), приставка :<color>.<frame> в конце не нужна.

Количество кадров в спрайте.

За какое время полностью проигрывается анимация спрайта.
1.0 — одна секунда. Чем меньше значение, тем быстрее скорость анимации.

Файлу mycraft.frames задаём содержание:

Это довольно простой файл, дающий понять игровому движку, сколько в спрайте кадров. Сейчас пройдёмся только по двум основным параметрам.

Размер одного кадра в пиксах. Сначала ширина, а затем высота.

Определение раскадровки вашего спрайта. Сначала указывается числов кадров в одном ряду, а затем количество рядов. В примере получается 1 ряд с 8 кадрами: 8, 1.

Остальные параметры этого файла будут рассмотрены в других примерах.

Включаем игру, заходим на персонажа, вводим в консоль следующие команды:
/admin
/spawnitem mycraft

Станок готов, но пока что в нём нет рецептов, а потому пришло время — разберёмся с ними в Примере 3.

В папке с модом создаём директорию recipies, а в ней директорию mycrafting.
Создаём в mycrafting два файла: mycraft.recipe и mypic.recipe.

Содержимое файла mycraft.recipe:

Массив с перечислением ингредиентов, требуемых для крафта.

ID ингредиента (это может быть как объект, так и предмет).

Количество требуемого ингредиента.

ID создаваемого объекта или предмета.

Количество продукции, получаемой за один крафт.

Сколько времени займёт процесс создания.

Фильтр станков, к которым относится данный рецепт. Помните параметр filtres в файле mycraft.object? Вот с его помощью и соотносятся между собой станки и рецепты.

Вариант plain — это крафт "из рук" (по-умолчанию — C).

Осталось "выучить" рецепты — это делается исправлением файла стандартных настроек персонажа player.config. Есть вариант полностью скопировать этот файл в свой мод, внеся нужные изменения, но это плохо — так лучше не делать.

Поскольку это важный игровой файл, с которым работают многие другие моды, его полноценная замена может привести ко множеству ошибок и программных конфликтов с установленными модами: в лучшем случае, игра просто будет вырубаться, а ведь можно и сейвы запороть при должном везении.

Лучший вариант — пропатчить нужный нам файл, не заменяя его.

Возвращаемся в корневую директорию мода (mymod) и создаём в ней новый файл с названием player.config.patch.

Содержимое файла player.config.patch.

Простой манипуляцией мы внедрили свои рецепты в массив, в котором хранятся доступные со старта игры рецепты. Аналогичным образом (указав, разумеется, правильное название файла и редактируемого массива) можно вносить изменения и в другие важные игровые файлы, которые лучше не коверкать целиком.

Теперь можно без проблем крафтить новый станок и новые предметы через него.

Далее разберёмся, как сделать свой удобный контейнер для хранения всякого хлама.

Создаём в objects новую директорию, называем её mysafe и создаём файлы mysafe.object и mysafe.frames.

скачиваем в директорию mysafe (mods/mymod/objects/mysafe), как название задаём mysafe.png.

скачиваем в директорию mysafe (mods/mymod/objects/mysafe), как название задаём mysafe_icon.png.

Полагаю, что к этому моменту кто-то одарённый уже мог догадаться, что файлы объектов можно складировать и напрямую в папку objects, игнорируя отдельную папку для объекта — спешу вас расстроить: так делать не стоит.

Первое и, как мне кажется, весьма очевидное: если новых объектов в моде запланировано много, в папке objects в итоге образуется помойка. По собственному опыту могу сразу сообщить, что разбирать подобный cрач совсем не весело.

Второе: при подобном хранении некоторых объектов (чаще всего тех, где используются связанные скрипты и настройки из других игровых директорий), иногда образовывается ряд системных ошибок, обусловленных тем, что игра перестаёт находить связанные файлы. Игра при этом запускается и играется, но нужный объект будет тупить и работать некорректно — искать причину ошибки в таком случае можно очень долго.

Содержимое файла mysafe.object

Сколько "здоровья" у объекта. Влияет на то, сколько времени нужно для сноса объекта манипулятором. Довольно важный параметр для контейнера, поскольку если его случайно сломать, всё содержимое контейнера вывалится на пол.

Параметр, уточняющий тип нашего объекта.

Параметр, определяющий шаблон игровой подсказки, появляющейся при взаимодействии с объектом.

Этим необязательным параметром можно задать дополнительные свойства физического взаимодействия с объектом.

platform — объект действует как блок-платформа.
solid — объект непроходим (т.е. блокирует путь), но на него можно запрыгнуть.

Путь к звуковому файлу, проигрываемому при открытии контейнера.

Путь к звуковому файлу, проигрываемому при закрытии контейнера.

Число слотов в контейнере.

По-умолчанию в игре доступны варианты в 1, 9, 12, 16, 24, 32, 40, 48, 56, 60 и 64 слота. Если вы хотите вариант, например, с 3 слотами, вам нужно будет подготовить для этого свой файл настроек, путь к которому надо указать в следующем параметре.

Путь к файлу настроек контейнера.

Число кадров, нужное для проигрывания анимации открытия/закрытия контейнера.

Время, через которое контейнер автоматически закроется, если вы отошли от него в момент использования.

Содержимое файла mysafe.frames

Параметры подобного файла, нужные именно сейчас, мы уже рассматривали в одном из прошлых примеров.

Объект готов, время тестировать его в игре, воспользовавшись командой spawnitem или же самостоятельно настроив рецепт создания для контейнера.

Вот и подобрались к предметам. Начнём с простого оружия.

В папке с модом создаём директорию items, в ней директорию active, в ней weapons, а в ней melee. В общем итоге получиться такой путь: items/active/weapons/melee

Думаете всё? Не-а. В melee создаём ещё одну директорию — hammer. Название этой директории зависит от того, какой тип оружия вы добавляете.

axe — топор.
broadsword — большой меч.
dagger — кинжал.
hammer — молот.
pickaxe — кирка.
shortsword — короткий меч.
spear — копьё.

Ну, а теперь, наконец-то, создаём в hammer последнюю директорию, называем её myhammer, а в ней создаём файл myhammer.activeitem.

скачиваем спрайт в myhammer, файл называем myhammer.png

В этом примере обойдёмся без иконки.

Содержимое файла myhammer.activeitem

Уникальный технический идентификатор (ID) предмета. Не должен повторяться в других предметах и объектах.

Сколько предметов поместится в одну стопку. Актуально для расходных предметов: еды, аптечек, верёвок и другого тому подобного.

Определение, занимает ли предмет обе руки при использовании.

true — двуручный
false — одноручный

Путь к файлу, отвечающему за построение спрайта молота.

Это путь к файлу рукоятки, если ваше оружие состоит из нескольких частей, например: рукояти, гарды и лезвия.

Подобное разделения спрайта актуально для случайно сгенерированного оружия, где используются куски разных спрайтов. Я такими сложностями не заморачиваюсь (как и большая часть других мододелов) и использую целиковый спрайт для оружия, указываемый в следующее поле.

Сюда я указываю спрайт оружия.

Тут могут быть прописаны различные особенности, связанные с анимацией оружия. Сюда же указывается звук при нанесении удара.

Путь к файлу скрипта, отвечающего за настройки холодного оружия.

Тип урона, наносимого оружием.

physical — физический.
fire — огненный.
ice — ледяной.
electric — электрический.
poison — ядовитый.

Тип атаки, проводимой при нажатии на левую кнопку мыши.

Время нужное для нанесения одного удара.

Базовый урон оружия.

Тип альтернативной атаки, проводимой при нажатии на правую кнопку мыши. Работает только с двуручным оружием.

Путь к скрипту, интерпретирующему параметры оружия. Различается для рандомного и уникального оружия. В этом примере оружие уникально.

Следует учесть, что вариаций настройки и указания параметров для оружия очень-очень много. Рекомендую ознакомиться с кодом различных стандартных игровых "пух", дабы лучше вникнуть во всё это. О том, как смотреть стандартные игровые файлы, можно будет узнать в нижеследующих разделах руководства, посвящённых работе с .pak файлами.

Проверить работоспособность молотка можно на любом противнике в игре.

Переходим в items/active/weapons и создаём новую директорию ranged, а в ней myrevolver. В оружии дальнего боя нет нужды создавать промежуточные директории, типа как hammer из предыдущего примера.

сохраняем в myrevolver.

В myrevolver создаём файл myrevolver.activeitem.

Содержимое файла myrevolver.activeitem

Путь к спрайту вспышки выстрела.

Координаты точки, за которую персонаж удерживает оружие.

Координаты вспышки, появляющейся при стрельбе.

Энергетическая стоимость одного выстрела.

Количество снарядов, выпускаемых при выстреле.

Тип огня (автоматический или полуавтоматический).

Тип выпускаемого снаряда.

Группа параметров projectileParameters отвечает за настройку снарядов.

Сила отталкивания противника, словившего пулю или иной снаряд.

Группа параметров stances отвечает за поведения оружия в различных состояниях. В них настраивается отдача и другое тому подобное, связанное с оружием.

idle — обычное состояние оружия.
fire — момент непосредственно во время выстрела.
cooldown — краткосрочное состояние, наступающее сразу после выстрела.

Первый параметр, отвечающий за силу визуальной отдачи.

Второй параметр, отвечающий за силу визуальной отдачи.

allowRotate и allowFlip вероятно отвечают за состояние спрайта в определённых состояниях. Точно я в этом не уверен, поскольку у меня не было нужды вникать конкретно в эти два параметра.

В виду ограниченности системы руководств, пришлось разбить материал на два раздела.
Начнём с файлов.

Создаём следующую цепочку директорий: items/armors/other/myclothes.

Создаём в myclothes четыре файла:
mycape.back — плащ.
myhead.head — шапка.
mychest.chest — рубашка.
mylegs.legs — штаны.

Теперь закачиваем в myclothes нижеперечисленные файлы.

Путь к иконке для инвентаря.

Для одежды есть возможность создавать единый файл-иконку, что реализовано в моём примере.

PNG файл должен быть 64 пикса в ширину и 16 пиксов в высоту. Картинка условно разбита на 4 сектора по 16х16 пиксов — каждый из этих секторов отвечает за иконку для определённого слота одежды. Сначала идёт голова, затем торс, ноги и спина.

В коде одёжки путь к такому файлу указывается с уточнением через двоеточие.

:head — голова.
:chest — туловище.
:pants — ноги.
:back — спина.

Общий файл-иконка наиболее актуален для целых сетов одежды. Возможность делать для каждого предмета отдельный файл-иконку по-прежнему доступна.

Параметр, отвечающий за визуальный эффект, сопровождающий элемент одежды.

Путь к спрайту, отвечающему за спрайт одежды для торса мужского персонажа.
Данный параметр несколько отличается в файле одежды для торса (.chest).

Путь к спрайту, отвечающему за спрайт одежды для торса мужского персонажа.
Используется в файле одежды для торса.

Путь к спрайту, изображающему рукав для руки, расположенной на заднем плане.
Используется только в файле одежды для торса.

Путь к спрайту, изображающему рукав для руки, расположенной на переднем плане.
Используется только в файле одежды для торса.

Путь к спрайту, отвечающему за спрайт одежды для торса женского персонажа.
Данный параметр несколько отличается в файле одежды для торса (.chest).

Путь к спрайту, отвечающему за спрайт одежды для торса женского персонажа.
Используется в файле одежды для торса.

Путь к спрайту, изображающему рукав для руки, расположенной на заднем плане.
Используется только в файле одежды для торса.

Путь к спрайту, изображающему рукав для руки, расположенной на переднем плане.
Используется только в файле одежды для торса.

Путь к спрайту-маске.
Указывается только в элементах одежды для головы.

Данный файл используется для определения, какие элементы головы персонажа следует скрыть с экипированной "шапкой". Это важно и полезно, чтобы скрывать волосы и бороду под какой-нибудь маской или закрытым шлемом.

Принцип работы файла довольно прост – в игре отображаются закрашенные участки файла. Чтобы скрыть всё – оставляем файл полностью пустым. Голова персонажа расположена в самом центре картинки.

На картинке слева отображён пример действия файла mask.png с закрашенной (то есть видимой) правой половиной — соответственно, что при надётой "шапке" остаётся виден кусок причёски справа от головы.

Необязательная группа параметров leveledStatusEffects отвечает за бонус к характеристикам, получаемый за экипированный предмет одежды. Базовые характеристики предмета умножаются на значение, записанное в параметре level предмета одежды.

Это массив, ответственный за автоматическую покраску спрайта в игре.

Коды цветов в массиве указываются в HEX формате.

Рассмотрим упрощённый пример.

В данном случае, идёт перекрашивание тёмно-серых (999999) и серых (CCCCCC) пикселей в чёрные (000000).

Сперва указывается исходный цвет, затем через двоеточие конечный цвет. Если требуется сменить не один, а несколько цветов, то разделяем каждую связку запятой.

Нельзя два раза указывать один и тот же исходный цвет – игра начнёт тупить и, скорее всего, вырубится.

Если вы не собираетесь перекрашивать свой спрайт игровым методом, то можете даже оставить массив пустым, выглядеть это должно так:

— Для чего вообще нужно красить спрайты?
Предположим, что у вас в моде есть два вида штанов с одинаковым спрайтом, отличающимся только цветом, например: Красная футболка и Синяя футболка – можно конечно создать два одинаковых png файла с разноцветными спрайтами, но зачем наполнять мод лишними файлами?

А если одинаковых спрайтов в моде будет очень много, а вам вдруг приспичит что-то поправить в них, на внесение правок у вас уйдёт гораздо больше времени, ведь придётся редактировать каждый цветовой файл по отдельности.

На мой взгляд, создание своего космического корабля — это самое занудное и сложное. Думаю, что об этом красноречиво говорит то, что тему мне пришлось даже разделить на два три четыре раздела. Но не будем тянуть кота за яйца — создаём директорию ships в папке с модом.

В зависимости от того, для какой расы вы делаете кораблик, нужно в ships создать папку с одним из нижеследующих названий:

apex — корабль апексов.
avian — корабль авиан.
floran — корабль флоран.
glitch — корабль глитчей.
human — корабль людей.
hylotl — корабль хилотлов.
novakid — корабль новакидов.

В примере я буду рассматривать human.

В созданной папке должно быть много-много текстовых файлов, а ещё много-много спрайтов. Крепитесь.

Создаём текстовые файлы:

blockKey.config — этот файл отвечает за опознание недвижимых объектов, размещённых на корабле: кресло пилота, шкафчик, телепортер, всякая декоративная шелуха и т.д.

humanT0.structure — этот файл отвечает за параметры и вид корабля в его самой первой итерации, а именно — когда вы на нём просыпаетесь в начале игры и ещё не поговорили с SAIL.

humanT1.structure — этот файл отвечает за параметры и вид корабля в момент, когда вы уже поговорили с SAIL на своём корабле, но ещё не добрались до Аванпоста (Outpost).

humanT2.structure — этот файл отвечает за параметры и вид корабля в момент, когда вы получаете возможность передвигаться по первой доступной звёздной системе, но ещё не можете вылетать за её пределы.

humanT3.structure — этот файл отвечает за параметры и вид корабля на его базовом восстановленном уровне. Дальнейшее развитие корабля идёт за кол-во членов команды (от 2 до 10) или поддельную лицензию, приобретаемую, если я правильно помню, у кого-то из продавцов Аванпоста.

humanT4.structure — этот файл отвечает за параметры и вид корабля типа "Sparrow".
humanT5.structure — этот файл отвечает за параметры и вид корабля типа "Kestrel".
humanT6.structure — этот файл отвечает за параметры и вид корабля типа "Falcon".
humanT7.structure — этот файл отвечает за параметры и вид корабля типа "Eagle".
humanT8.structure — этот файл отвечает за параметры и вид корабля типа "Condow".

А теперь загоняем спрайты в папку human.

Структура файлов humanT0.structure, humanT1.structure и т.д.

В массиве config находится информация о размере команды и возможностях выбранного тира корабля

Доступные "фичи" корабля: телепорт на планету, межзвёздные путешествия и тому подобное.

Сколько членов команды может вместить корабль на выбранном тире.

Массив backgroundOverlays содержит два элемента, в которых указаны пути, а также некоторые настройки главного и вспомогательного спрайтов выбранного тира корабля. Как правило, сначала указан основной спрайт, а затем вспомогательный.

Количество блоков, на которое сдвигается спрайт влево-вправо и вверх-вниз. Подробнее об этом в следующем разделе руководства.

Влияет на яркость и освещённость спрайта корабля.
Доступны варианты true и false. По умолчанию всегда идёт true. Во вспомогательный спрайт данный параметр не указывается.

Это путь к файлу и массиву с перечислением корабельных блоков и объектов.

Внешне корабль состоит из трёх основных спрайтов: Главного, Вспомогательного (обычно он с приставкой lit в названии) и Технического (обычно с приставкой blocks в названии).

На каждый тир корабля приходится по три спрайта. В кораблях стандартных игровых рас есть исключения — это тир T0. У него есть только собственный технический спрайт, а главный и вспомогательный берутся из T1 тира — в принципе это оправдано, поскольку корабельный тир T0 обычно фигурирует в игре не более 15-20 секунд. Но для данного примера я все равно реализовал необязательные файлы для T0.

Ничего не мешает на каждый тир использовать даже одни и те же спрайты — это полезно в случае, если вы не планируете реализовывать постепенное увеличение корабля от тира к тиру, а хотите забацать себе здоровенную коробку, доступную с самого начала игры.

При рисовании спрайта следует помнить, что размер одного игрового блока занимает 8 пиксов по высоте и ширине.

Это основная картинка корабля, она отвечает непосредственно за внешнее и внутреннее убранство вашего корабля.

Высоту, а также ширину данного спрайта следует делать кратной 8.
С каждой стороны спрайта (лево, право, верх и низ) нужно оставить пустые поля, блоков эдак в 20, иначе говоря — по 160 пиксов с каждой стороны.

Вспомогательный спрайт
Данный спрайт нужен для того, чтобы свет от источников освещения правильно распространялся по кораблю.

Внешне этот спрайт практически полностью идентичен предыдущему, отличие заключается лишь в том, что область внешней стороны корабля (к которой игрок не имеет доступа) должна быть полупрозрачной. Я стараюсь делать от 50 до 75 процентов, но можно указывать и другие значения — смотрите по ситуации, как будет выглядеть лучше.

Внутренняя часть корабля (доступная для игрока) должна оставаться непрозрачной.

На картинке-примере видно, как в итоге выглядит подобный файл через редактор изображений.

Технический спрайт отвечает за то, где располагаются различные корабельные области и объекты.

Это спрайт по высоте и ширине отличается от других спрайтов, но он должен повторять их пропорции, соблюдая масштаб 1 к 8. Например: главный спрайт имеет размер 96х440 (высота-ширина), соответственно, что размером технического спрайта в таком случае будет 12х55.

Нужные размеры для технического спрайта элементарно вычисляются путём разделения размеров главного спрайта на 8.

В принципе, все такие различия можно компенсировать через файл .structure при помощи параметра position. Значения, указанные в данном параметре, означают на сколько игровых блоков будет сдвинут спрайт корабля, дабы компенсировать образовавшуюся разницу пропорций. Если разница неровная (например, 2.5 блока), то в этих параметрах нужно указывать и дробные числа. Разумеется, что вам нужно будет их правильно высчитать, чтобы в игре всё встало ровно.

Лично мне лень вникать во всю эту тягомотину с компенсацией разных пропорций, а потому я сразу делаю спрайты с совпадающими пропорциями — по моему, это намного проще, но, конечно же, сами решайте как лучше и удобнее конкретно вам.

С размерами технического спрайта вроде разобрались, теперь рассмотрим его абстрактное содержимое.

Как вы уже наверняка догадались, 1 пикс на техническом спрайте соответствует одному игровому блоку. Цвет обозначает, что находится на конкретной точке.

Все варианты доступных по-умолчанию цветов я рассматривать не буду — их реально очень много, а я не хочу добавлять ещё три раздела по теме кораблей в руководстве. Пройдёмся по важным для примера вариантам:

(RGB: 255, 0, 0) — это основной блок, занимающий большую часть спрайта. Он обозначает области, недоступные игроку.

Рекомендую по краям спрайта делать поля красного цвета, блоков эдак в 20 — это нужно для того, чтобы игрок не мог ставить свои блоки за пределами корабля во время игры. В примере намеренно отражён этот "косяк", чтобы было понятно о чём речь.

(RGB: 255, 255, 255) — это пустой блок, на котором изначально ничего нет.

(RGB: 255, 255, 144) — это блок, обозначающий стандартную корабельную стенку. Её можно снимать манипулятором.

(RGB: 0, 0, 255) — это технический блок, условно обозначающий стенку для крепления других объектов. В игре он не виден сам по себе, но некоторые стандартные объекты корабля без него не будут работать — банально не будут видны в игре.

(RGB: 255, 90, 90) — это блок, обозначающий место, где находится сливной бачок бензобака корабля. Это один из объектов, который может работать лишь вместе с другим блоком, в данном случае (0, 0, 255).

Как только вы вникните в логику работы технического спрайта, у вас не будет сложностей с размещением и передвижением стандартных корабельных объектов.

Понятие того, как следует интерпретировать тот или иной цвет, указывается в файле blockKey.config. Рассмотрим его структуру.

Все цветовые комбинации находятся в общем массиве blockKey, элементы которого между собой разделяются запятой.

Пример элемента массива

Это параметр, в котором указана RGB схема, соответствующая блоку/объекту. Сначала указывается Red, затем Green, а после Blue. В последней цифре можно оставлять значение 255.

Повторяться RGB комбинации не должны.

Физичность блока на переднем плане.
true — физичен.
false — не физичен.

Физичность блока на заднем плане.
true — физичен.
false — не физичен.

Бывают и другие параметры — рассмотрим важные.

Какой объект или материальный блок будет размещён на заднем фоне. Указывать нужно ID.

Какой объект будет размещён на точке. Указывать нужно ID.

Также доступен необязательный массив objectParameters, в который указываются дополнительные параметры размещённого объекта.

Создать свою расу легко. На словах 😉
На деле же, вам придётся настроить кучу параметров, прямо или косвенно рассмотренных в прошлых примерах.

Есть отдельный гайд по этому шаблону (на английском). Таки рекомендую учиться делать расу по нему — там больше инфы, причём от автора шаблона расы.
https://steamcommunity.com/sharedfiles/filedetails/?id=1380289410
Также, чтобы раса появилась в списке при создании персонажей, нужно обязательно поставить этот мод
https://steamcommunity.com/sharedfiles/filedetails/?id=729426722
Скачав шаблон, закидываем его папку (Skittles Basic Race Template) в mods, папку шаблона можно переименовать в другое, более удобное для вас название, например myrace.

Запускаем файл BASIC_RACE_TEMPLATE_EASY_SETUP и в появившемся окне указываем именование расы. Используем только латинские символы, без пробелов и цифр, с маленькой буквы. Подходящие примеры: demon, dupa, izverg, vasyaloh. С большой буквы тоже можно указать, но тогда некоторые файлы почему-то игра не видит — потом долго и нудно исправлять будете.

Указанное название автоматом будет разбросано в ID всех важных файлов, что упросит вам работу. Далее дело за малым: настроить свой расовый контент. Что-то уже было расмотрено в прошлых примерах, а до чего-то дойдёте сами. Я лишь укажу несколько важных файлов и папок:

species — тут файлы с основными настройками расы.
humanoid — тут спрайты тушек расы.
ai — тут спрайты ИИ`шки космического корабля.

Если в создании мода вы сталкиваетесь с тем, что игра начинает постоянно вырубаться, не запускается, не спавнится добавленный вами предмет (вместо него "зелёная" заглушка), ну или творится что-то ещё подобное, а у вас даже нет ни малейшей идеи о причинах происходящего, то нужно обязательно посмотреть техническое логи игры, находящиеся по следующему пути (исходя из корневой директории игры) – storage/starbound.log.

Более старые логи записываются в файлы «starbound.log. 1», «starbound.log. 2» и так далее.

В самих логах следует искать строки со словом «Error» — как правило, именно в них отражены прямые или косвенные причины ошибки. Например:

[17:13:13.102] [Error] Exception caught loading asset: /items/armors/other/tightclothes/tightdisguise.head, (AssetException) Could not read JSON asset /items/armors/other/tightclothes/tightdisguise.head

Эта строка сообщает точное время ошибки, указывает её общую причину (не удалось загрузить информацию об объекте или предмете) и указывает путь к проблемному файлу.

Всё это позволяет искать проблему в конкретном файле, в котором скорее всего неправильно закрыта какая-нибудь информационная строка. Конкретную причину проблемы нужно искать в самом файле ( или его отсутствии 🙂 ), логи же позволяют примерно определить источник проблемы.

Для создания модификации может пригодиться навык работы с игровыми архивами в формате ".pak". Это не особо сложно, но специальной программы для этого я не нашёл, так что придётся работать с консолью.

Для чего конкретно это может понадобиться? .pak архив позволит хранить и передавать ваш мод одним файлом. Это обязательно нужно для загрузки вашего мода во всякие сторонние базы модов, типа "nexusmods/starbound" (прямую ссылку приводить не буду ибо там сплошная похабщина фурривая).

Также, вы можете распаковывать готовые моды и стандартные игровые файлы — в них можно смотреть как реализован тот или иной элемент, а также можно достать игровые спрайты, дабы использовать их шаблоном для своих.

Чтобы распаковать или упаковать архив вам надо перейти в директорию с установленной игрой любым удобным для вас способом.

Открыть консоль можно следующей манипуляцией:

На белом (пустом) пространстве окна нажимайте правой кнопкой мыши с зажатой клавишей Shift. В открывшемся меню выбирайте пункт "Открыть меню команд" (если не зажать Shift, то этот пункт не будет виден) — после этого откроется окно для ввода консольных команд.

В 10-ке вместо "Открыть меню команд" может быть написано "Открыть окно PowerShell здесь" — это тоже подходящая консоль.

Для распаковки архива используется подобная команда:

"win32\asset_unpacker.exe" "<путь к файлу для распаковки>" "<название директории, куда будут распакованы файлы>"

("win32\asset_unpacker.exe") — это путь к скрипту, ответственному за работу с .pak файлами. Тут ничего менять не нужно.

("<путь к файлу для распаковки>") — это полный путь к файлу, который следует распаковать, например — "assets\packed.pak".

("<название директории, куда будут распакованы файлы>") — это название директории, куда будут распакованы файлы из архивы. Если директории с указанным названием нет в папке с игрой, то она будет автоматически создана.

А теперь на практике. Команда
"win32\asset_unpacker.exe" "assets\packed.pak" "UnpackedAssets"
позволит распаковать архив со стандартными игровыми файлами.

После того, как вы введёте команду в консоль и нажмёте Enter, в директории с игрой появится новая папка "UnpackedAssets", в которой находятся все распакованные файлы. Обязательно дождитесь появления в консоли сообщения об окончании процесса распаковки. Сам процесс довольно длителен — у меня идёт примерно 6-7 минут.

В некоторых операционных системах (например, Windows 10) бывают отличия, из-за которых команды нужно вводить без кавычек. В таком случае команда на распаковку игровых файлов будет выглядеть так:
win32\asset_unpacker.exe assets\packed.pak UnpackedAssets

Для упаковки архива используется подобная команда:

"win32\asset_packer.exe" "<папка, которую надо упаковать>" "<куда положить архив>"

("win32\asset_unpacker.exe") — это путь к скрипту, ответственному за работу с .pak файлами. Тут ничего менять не нужно.

("<папка, которую надо упаковать>") — это путь к папке с вашим модом, который вы хотите упаковать в архив.

("<куда положить архив>") — это путь, куда автоматически будет размещён готовый архив. В этом же параметре указывается желаемое название архива. В конце обязательно указывайте .pak.

Пример готовой команды:

"win32\asset_packer.exe" "mods\pink_bed" "mods\pinkbed.pak"

После того, как вы введёте команду в консоль и нажмёте Enter, в папке mods появится новый архив pinkbed.pak с вашим модом внутри.

Этот файл можно давать его друзьям — если они положат этот архив в свою папку mods, то смогут играть с вашей модификацией.

В некоторых операционных системах (например, Windows 10) бывают отличия, из-за которых команды нужно вводить без кавычек. В таком случае команда на упаковку файлов будет выглядеть так:
win32\asset_packer.exe mods\pink_bed mods\pinkbed.pak

Изменение уже существующих в игре объектов — это один из самых простых видов модифицирования игры.

В первую очередь нужно распаковать стандартные игровые файлы, а затем найти в них предмет, который вы хотите изменить. Для примера рассмотрю какую-нибудь флэшку-дополнение для Набора Экологической Защиты (EPP).

Файлов в игре довольно много и перебирать их в ручную, выискивая нужный, крайне непрактично. Я предпочитаю пользоваться функцией поиска по файлам в Notepad+. Открываем программу, а затем нажимаем Ctrl + F ИЛИ в верхнем меню щёлкаем "Поиск", а затем "Найти".

В появившемся окошке переходим во вкладку "Найти в файлах".

В поле "Найти" вписываем ID или название нужного объекта. Рекомендую искать по ID — поиск будет более точный. ID предметов можно смотреть на официальной вики игры — http://starbounder.org.

В поле "Папка" указываем путь к распакованным игровым файлам, ставим отметку "Во всех подпапках", а затем жмём "Найти всё".

Процесс поиска не моментальный — запаситесь терпением. Если вы примерно знаете, где находится нужный вам файл, то в поле "Папка" можно указывать более точный путь — это может заметно сократить время поиска.

Результаты поиска будут показаны внизу экрана — двойным кликом по строчке открывается найденный файл. Как только вы нашли файл с параметрами объекта, нужно скопировать его в папку вашего мода, полностью сохранив изначальный путь файла.

Для примера я искал флэшку, дающую иммунитет к отравлению, её файл — "items/augments/back/poisonblockaugment.augment", следовательно, что нужно копировать его по точно такому же пути, воссозданному в папке с модом:

mymod/items/augments/back/poisonblockaugment.augment. Обязательно сохраняйте оригинальное название и расширение скопированного файла, иначе игра не будет видеть замену стандартного игрового файла.

Можете вносить в этот файл любые нужные изменения: другое название флэшки, больше эффектов и так далее.

Следует учесть, что уже существующие в инвентаре флэшки не изменятся. Флэшки с обновлёнными параметрами нужно будет купить, выбить из монстров, скрафтить или заспавнить через /spawnitem. Подобная особенность актуальна для большинства используемых игровых предметов.

Для создания своего спрайта для своего объекта вам понадобится какой-нибудь графический редактор. Спрайты нужно сохранять в формате PNG.

Учитывайте, что в игре спрайт показывается несколько большим размером, чем он есть на самом деле. Если не ошибаюсь, то картинка увеличивается в три раза. Иногда из-за этого создаётся впечатление, что спрайт "размазан".

Обычно это проявляется на детальных картинках, банально уменьшенных до размера требуемого спрайта.

Объект минимального размера занимает 1 игровой блок, размер спрайта для такого объекта — 8 на 8 пиксов. Очевидно, что объект со спрайтом размера 16 на 8 пиксов займёт в игре два блока в ширину и один высоту, а 16 на 16 – два блока в ширину и два высоту.

Перед тем как начать рисовать свою картинку-спрайт, заранее определитесь с тем, какого размера должен быть ваш объект в игре, дабы не пришлось перерисовывать готовое изображение из-за логического не соответствия размера объекта — обычная лампочка не может быть больше человека, кресло не может быть меньше пятки и так далее.

Для загрузки своего мода запускаем Starbound через Steam — сперва всегда открывается меню с несколькими вариантами. Нас интересует "Launch Mod Uploader Tool" — отмечаем и жмём "Играть".

В открывшейся программе жмём кнопку "Select Mod Directory" и указываем путь к папке с файлами вашего мода. Если в ней уже есть файл "_metadata", то большинство данных будет взято из него. Если файла нет, то все данные можно указать в программе.

Name и Title — название вашего мода. Не помню в чём разница, лол.

Author — ваше имя или псевдоним.

Version — версия мода.

Description — описание мода.

Preview Image — путь к картинке-превьюшке, которая будет отображаться в Мастерской. Файл должен быть в формате PNG или JPG. Картинка необязательна.

Mod ID — номер вашего мода в стиме. Указывается автоматом при первоначальной загрузке мода.

После того, как вы всё указали, жмите кнопку "Upload to Steam!". Ждите завершения процесса (исчезнет маленькое окошко с полосой прогресса). Обратите внимание, что у вашего мода появился ID — щелкнув на него, вы перейдёте на страницу модификации в Мастерской.

Изначально загруженный мод скрыт от посетителей и виден только вам и администраторам Steam. Чтобы открыть доступ к моду, в правой части страницы найдите ссылку "Права доступа" — ткните её и выберите нужный вариант.

Дополнительные изображения и видео вашей модификации добавляются по ссылке "Изменить изображения и видео". Примечательно, что главное (первое) изображение меняется только при обновлении мода через "Mod Uploader Tool".

Название и описание меняется по ссылке "Изменить заголовок и описание".

Если ваш мод для работы требует другой мод (например "Xbawks" для новых рас), то через ссылку "Изменить список необходимых предметов" вы можете указать его.

Если вы внесли изменения в мод и хотите обновить версию в Мастерской, то снова переходите в "Launch Mod Uploader Tool" и жмите кнопку "Upload to Steam!". Кнопка "Reset Steam Mod Information" справа от Mod ID сбросит записанную в файлах мода идентификационную информацию Мастерской и позволит закачать мод в Мастерскую как новый объект.

Quick Navigation

This article will show you the steps you need to take before you can start actually modding, and also the steps you can take after you are done modding, to pack and publish your mod.

You will need a text editor that is not the Windows included notepad.exe, as it does not support UNIX line endings. Do not use a word processor such as MS Word instead of a text editor. Only UTF-8 is supported, other encodings are likely to cause crashes. Optionally, for easier packing and unpacking of mods and assets, you may use ModPackHelper (available for Windows and Linux) or PAK GUI.

Step 1 — Unpacking Assets

Furious Koala introduced a .pak format which improves loading times and eases mod distribution. This means we need to unpack the assets before we can start modding.

Note — This step will not remove or change your packed.pak file, but simply extract its content for use as reference material. Unpacked assets may be safely left in ..\assets\ and changes you make to the unpacked assets will have no effect on your game as Starbound will prioritize the use of assets.pak (unless the unpacked _metadata is deleted).

Windows

Current as of Version 1.4.3, June 27th, 2019

  1. Open up the main directory folder for Starbound.
  2. Shift + right-click within the folder and select Open Command Prompt/Windows Powershell or equivalent (depends on Windows version).
  3. Type the following into Command Prompt/Windows Powershell: .\win32\asset_unpacker.exe «.\assets\packed.pak» «.\assets\packed»
  4. Command Prompt/Windows Powershell will do nothing until asset_unpacker.exe has finished, this will take a while on most computers.. There are no progress updates.
  5. Once Command Prompt displays a message equivalent to this, «Unpacked assets to Packed in 250.063s,» you can close the program and move on to creating mods.
  • If purchased from Steam, the location of the main Starbound directory folder typically looks like this: Steam\steamapps\common\Starbound
  • The text typed into Command Prompt are three directory locations:
    1. The location of asset_unpacker.exe, which is the program that does all of the unpacking.
    2. The location of Starbound assets, or Mod assets, to be unpacked.
    3. Where you want the unpacked assets to be dumped. This third string can be changed to whichever location or name you prefer. However, dumping into ..\assets\packed\ will make assets more readily available to Tiled.
  • The command can be stored as a batch file for faster unpacking whenever a new game version is released.

It is advised to read the Unofficial Modding E-book instead, available on Chucklefish Forums. http://community.playstarbound.com/resources/unofficial-modding-ebook-2-0.2930/

Current as of version 1.3.0, June 13th, 2017

If you have purchased Starbound from Steam, then these instructions will work. Otherwise you will have to find your Starbound assets folder and apply the file paths to these instructions.

  1. Open Terminal.app in OS X (hopefully you have 10.7 or higher)
  2. Type cd

It is highly recommended that you make a backup copy of your original, working packed.pak before you mod and pack.

To pack, do exactly the same steps as mentioned above (minus making a new folder ‘unpacked’), but when you get to step 5, where you actually unpack the packed.pak file:

  • Type ./asset_packer ../assets/unpacked ../assets/packed.pak

Linux

Current as of version 1.2.3b, May 26th, 2017

    Open the main directory of starbound in your shell (i.e.

Step 2 — Modding

Tutorials

Reference Pages

  • Data Assets
  • New Custom Material ID Registration
  • New Custom Liquid ID Registration

If you did everything right, Starbound should load your new mod the next time you run it. If the game crashes, or your changes are not found in the game, check your starbound.log file.

Step 3 — Setting Up Your First Mod

_metadata file

The metadata file (usually named _metadata ) is a completely optional file that contains your mod’s name, description, and more. If using the Steam Uploader Tool, a basic metadata file will be generated for you. While optional, it is recommended to have at least have a name set in the metadata in case a companion mod ever needs to require or include your mod, and to make your mod more easily identifiable within the game log should any errors occur.

Step 4 — Packing your mod

Before publishing your mod, it is recommended to pack it as a single <modname>.pak file. This simplifies installation (drop the file in the Starbound/mods/ folder). The alternative is to just put all the files into an archive for distribution which will need to be unpacked by end users to install.

Steam

The mod uploader included with the Steam version of Starbound will automatically pack your mod into a pak file when it uploads to the workshop. If you subscribe to your own mod, you may copy this pak from the workshop folder for redistribution through other channels, or you may follow standard packing methods. Linux users may use Proton to launch the mod uploader.

Alternately, all users may use the SteamCMD method as per this guide by The | Suit. This is the only reliable option for Mac users.

General

To pack your mod into a pak file, you may either manually use asset_packer.exe as included with Starbound, or you can automate it with PAK GUI or ModPackHelper.

Manual Method

  1. Create a metadata file for your mod if you intend to include one.
  2. For ease of use, ensure your mod folder is in ..\Starbound\mods\
  3. Open a command prompt as described in Unpacking assets.
  4. Run the following command: .\win32\asset_packer.exe .\mods\<mod folder name> .\mods\<modname>.pak (substitute <mod folder name> with your mod’s folder and <modname> with whatever you wish)
  5. Once finished, your .pak will be in the ..\Starbound\mods\ folder and is ready to publish.

PAK GUI

  1. Create a metadata file for your mod if you intend to include one.
  2. Extract PAK GUI anywhere and run it.
  3. Point the «Path to Starbound» to the base Starbound folder.
  4. Either click «Pack. » or drop your mod’s folder onto PAK GUI and follow the prompts.

Windows/Linux with ModPackHelper

  1. Unpack ModPackHelper directly into ..\Starbound\mods\ and run it.
  2. When script is launched, choose action 1.
  3. Then select the mod you want to pack (If your mod folder does not contain a _metadata or legacy .modinfo file, it will not show as a choice).
  4. Press Enter. The mod is available in the Starbound/mods/ folder as <modname>.pak.

Step 5 — Publishing

Only one thing left to do — publish your mod!

Steam

Once you have all desired fields filled in the uploader, hit «Upload to Steam». When the status bar vanishes, you’re done!

Chucklefish

Go to the official modding forums, select «add mod» in the upper right hand section, select the category of your mod, fill out the information form and hit save. It is that easy.

Other Services

Publishing methods for other services, such as NexusMods, may vary. Please refer to the individual service for more information. Otherwise, your mod’s folder or pak file may be distributed as you choose.

Starbound Modding Tutorial Guide

Starbound Modding Tutorial Guide 1 - steamsplay.com

Got a race that you like and a ship that you don’t? Yet no one on the Workshop has made a mod to give it the ship you want? Here’s how to do it yourself.

Getting Started

Tools and Organization

First, you’ll need a way to extract .paks, and to create them if you want to release the mod. While Starbound does technically come with a tool for that, a lot of people – myself among them – prefer something with a graphical interface. I use PAKit – [ibraheemrodrigues.com] . Make sure to read the Guide on the site for installation and basic functionality instructions; it’s not hard, but you’ll need to point it at a few specific files.

Once that’s done, I recommend organization. Observe:

Starbound Modding Tutorial Guide - Getting Started - E1AA53F

/workfolder/ is where I put extracted paks that I’m working with. /My Mods/ is where I put works-in-progress. Your own organization approach may vary, but I recommend keeping “things I’m making” separate from “things I’m extracting”.

Next, you need a race and a ship. If you’re working with a vanilla race or ship, you’ll find their content in /assets/packed.pak.

Workshop races are a trickier matter. The easiest way to find them is to middle-click on the mod in question in the workshop, to pop it out in a new window. The new window will have the URL on it:

Starbound Modding Tutorial Guide - Getting Started - D67B1D4

You can see it here. Look in the pink rectangle there and you’ll see a number. Copy that entire number, that’s the Workshop ID. You can also get this number by right-clicking on the workshop page and selecting Copy Page URL, but you’ll have to paste it somewhere to just get the number.

Next, go to your Steam Library on the same drive Starbound is installed to. It should look somewhat like this:

Starbound Modding Tutorial Guide - Getting Started - 5C5511A

See in the top right, above all those numbers? That is where you put the Workshop ID. Hit enter, and it will search for the mod for you. It will, usually pretty quickly, find a folder with that number as its name. Enter that folder and copy the .pak elsewhere, wherever you intend to work with it at. If you’ve gotten a ship this way that you don’t intend to use in its original mod, you can unsubscribe now; you’ll still have to be subscribed to the race you’re playing, of course.

When you have that, copy the /ships/ folders to separate locations, keeping the structure intact. That is to say, don’t take /floran/ out of /ships/, move the entire /ships/ folder. Certain ships also have additional blocks in other folders, the Soma being the main one that comes to mind. If you’re working with a ship that has those, make sure you copy those folders too (and keep the folder structure intact!), or you’ll crash. Lastly, if you’re replacing the ship of a modded race you want to play as, copy that race’s _metadata file, and set that aside for later.

Replacing a Ship

Alright. Now you have your race’s original ship and your desired ship extracted. Open those folders up and take a look.

Starbound Modding Tutorial Guide - Replacing a Ship - 3FC8EAC

Now, this is a lot of files! The good news for you is, this is way easier than it looks. Note first how each is named. The easiest way to do this is to copy everything except blockKey.config from the ship you want over the current ship, and rename the .structure files to match what the race currently has. In this case, I would rename all the .structure files – but not the .pngs! – to vulpesTx.structure. The .structure files you copy will point to the names of the pngs used by the new ship, without any further editing. And because the .structure files still have the original name, the race will already be pointing to those. This way, you don’t have to mess around with JSON .patches, which can sometimes be a pain.

There’s just one more thing to address, and that’s the blockKey.config. Now, the easiest way to do this is simply to copy that from the new ship as-is and leave it alone. This, however, would leave you with the new ship’s SAIL, locker, etc – which is a problem if it’s a ship for a race you don’t have installed. For example, maybe you want that nice black-and-white Soma but you don’t use the Ningen. That’d crash because the furniture doesn’t exist, so, let’s open that up before copying it over. Open the race’s original blockKey.config too.

Starbound Modding Tutorial Guide - Replacing a Ship - 636F3A2

I’m using Sublime, but Notepad works just fine too. You’ll see that this ship points at Apex resources. Check the race you want to use to see how their objects are named, and – if you want to use the race’s original objects – correct the ship’s blockKey.config to match for those specific parts before you copy it over.

Creating the Mod

This part’s easy. Usually.

Go to your /mods/ folder, and create a new folder. This one can be named anything; that’s your new mod. Next, put the /ships/ folder you’ve been editing in there. If you’re working with a ship like the Soma that also has an /objects/ folder, also put that in the main mod folder, on the same level as /ships/.

Now, this is where _metadata comes back. Open the race’s _metadata in Notepad, it’s just a plain .txt. It should look something like this:

Driver Booster

As you can see, there’s both a “name” and a “friendlyName”. The “name” is the one you need here, as that’s the internal name used for an “includes” section, used to make sure it loads after the race in question so it overrides the original ship.

Your folder structure should, when you’re done, look like:

/Your Mod/objects/ (if needed)

/Your Mod/_metadata – make sure you haven’t left a .txt extension on it.

With that, you should be on your way.

Fly safely! Or don’t, I’m not your mother.

Hope you enjoy the post for Starbound Modding Tutorial Guide, If you think we should update the post or something is wrong please let us know via comment and we will fix it how fast as possible! Thank you and have a great day!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *