Руководство по разработке модов

Узнайте, как создавать потрясающие моды для Terraria с помощью C# API tModLoader

20 мин чтения Разработка Средний уровень

Предварительные требования

Среда разработки

  • • Visual Studio 2022 (рекомендуется)
  • • JetBrains Rider
  • • Visual Studio Code с расширением C#
  • • .NET 6.0 SDK или новее

Необходимые знания

  • • Основы программирования на C#
  • • Концепции объектно-ориентированного программирования
  • • Знакомство с игровым процессом Terraria
  • • Базовое понимание разработки игр

Настройка среды разработки

1 Установите инструменты разработки

Выберите предпочитаемую среду разработки C#:

Visual Studio 2022

Полнофункциональная IDE с отличной отладкой

Download →

JetBrains Rider

Кроссплатформенная IDE с расширенными возможностями

Download →

VS Code

Лёгкий редактор с расширением C#

Download →

2 Создайте ваш первый мод

Используйте встроенные инструменты tModLoader для создания шаблона мода:

  1. Запустите tModLoader and go to "Workshop" → "Develop Mods"
  2. Нажмите «Create Mod» и введите данные мода
  3. Выберите уникальное имя мода (без пробелов и специальных символов)
  4. Нажмите «Create» для генерации шаблона мода

This creates a basic mod structure in your ModSources folder with all necessary файлs.

Базовая структура мода

Каждый мод tModLoader следует стандартной структуре:

YourModName/
├── build.txt          # Mod metadata and dependencies
├── description.txt    # Mod description for the browser
├── icon.png          # Mod icon (64x64 recommended)
├── YourModName.cs    # Main mod class
├── Items/            # Custom items
├── NPCs/             # Пользовательские NPC
├── Projectiles/      # Custom projectiles
├── Tiles/            # Custom tiles/blocks
├── Walls/            # Custom walls
├── Buffs/            # Custom buffs/debuffs
└── Sounds/           # Custom audio файлs

Пример класса мода

Вот базовая структура класса мода:

using Terraria.ModLoader;

namespace YourModName
{
    public class YourModName : Mod
    {
        public override void PostSetupContent()
        {
            // Code that runs after all mods are loaded
        }

        public override void PostUpdateInput()
        {
            // Code that runs every frame
        }

        public override void Unload()
        {
            // Cleanup code when mod is unloaded
        }
    }
}

Конфигурация build.txt

The build.txt файл contains important metadata about your mod:

displayName = Your Mod Name
author = Your Name
version = 1.0.0
modReferences =
buildIgnore = *.csproj, *.user, *.suo, bin/, obj/, .vs/
homepage = https://github.com/yourusername/yourmod
description = A brief description of what your mod does

Создание вашего первого предмета

Давайте создадим простой пользовательский меч в качестве вашего первого предмета:

Создайте класс предмета

Create a new файл: Items/ExampleSword.cs

using Terraria;
using Terraria.ID;
using Terraria.ModLoader;

namespace YourModName.Items
{
    public class ExampleSword : ModItem
    {
        public override void SetDefaults()
        {
            // Basic item properties
            Item.damage = 50;
            Item.DamageType = DamageClass.Melee;
            Item.width = 40;
            Item.height = 40;
            Item.useTime = 20;
            Item.useAnimation = 20;
            Item.useStyle = ItemUseStyleID.Swing;
            Item.knockBack = 6;
            Item.value = Item.buyPrice(gold: 1);
            Item.rare = ItemRarityID.Green;
            Item.UseSound = SoundID.Item1;
            Item.autoReuse = true;
        }

        public override void AddRecipes()
        {
            Recipe recipe = CreateRecipe();
            recipe.AddIngredient(ItemID.IronBar, 10);
            recipe.AddIngredient(ItemID.Wood, 5);
            recipe.AddTile(TileID.Anvils);
            recipe.Register();
        }
    }
}

Добавьте текстуру предмета

Создайте PNG-изображение 40x40 пикселей и сохраните как:

Items/ExampleSword.png

The файл name must match your class name exactly.

Сборка и тестирование мода

Процесс сборки и перезагрузки

Мощная функция разработки tModLoader позволяет мгновенно тестировать изменения:

  1. В tModLoader перейдите в «Workshop» → «Develop Mods»
  2. Найдите свой мод в списке и нажмите «Build + Reload»
  3. Дождитесь завершения компиляции
  4. Ваш мод автоматически перезагрузится с изменениями
  5. Протестируйте ваш новый предмет в игре

Совет: Часто используйте «Build + Reload» во время разработки. Это гораздо быстрее, чем перезапуск игры!

Распространённые ошибки сборки

  • Missing texture: Ensure PNG файл matches class name exactly
  • Ошибки компиляции: Проверьте синтаксис и директивы using
  • Отсутствуют ссылки: Проверьте правильность ссылок ModLoader
  • Ошибки build.txt: Проверьте форматирование метаданных мода

Продвинутые темы разработки

Пользовательские NPC

Создавайте врагов, городских NPC и боссов с пользовательским ИИ

Подробнее →

Генерация мира

Добавляйте пользовательские биомы, структуры и особенности мира

Подробнее →

Пользовательский интерфейс

Создавайте интерфейсы, HUD и интерактивные элементы

Подробнее →

Поддержка мультиплеера

Обработка сетевого взаимодействия и синхронизации

Подробнее →

Публикация вашего мода

Публикация в Steam Workshop

  1. Убедитесь, что мод собирается без ошибок
  2. Перейдите в «Workshop» → «Develop Mods»
  3. Нажмите «Publish» рядом с вашим модом
  4. Заполните форму Steam Workshop с описанием и тегами
  5. Загрузите скриншоты и настройте видимость
  6. Нажмите «Publish» для публикации

Ваш мод будет доступен в браузере модов в течение нескольких минут после публикации.

Лучшие практики публикации

Рекомендации по контенту

  • Пишите чёткие, подробные описания
  • Включайте качественные скриншоты
  • Тщательно тестируйте перед публикацией
  • Документируйте известные проблемы

Технические требования

  • Отсутствие ошибок и предупреждений компиляции
  • Правильная проверка на null
  • Тестирование совместимости мультиплеера
  • Оптимизация производительности

Дополнительные ресурсы