Guia de Desenvolvimento de Mods

Aprenda a criar mods incríveis de Terraria com a API C# do tModLoader

20 min de leitura Desenvolvimento Intermediário

Pré-requisitos

Ambiente de Desenvolvimento

  • • Visual Studio 2022 (recomendado)
  • • JetBrains Rider
  • • Visual Studio Code com extensão C#
  • • .NET 6.0 SDK ou posterior

Conhecimentos Necessários

  • • Programação básica em C#
  • • Conceitos de orientação a objetos
  • • Familiaridade com a jogabilidade do Terraria
  • • Compreensão básica de desenvolvimento de jogos

Configuração de Desenvolvimento

1 Instalar Ferramentas de Desenvolvimento

Escolha seu ambiente de desenvolvimento C# preferido:

Visual Studio 2022

IDE completa com excelente depuração

Baixar →

JetBrains Rider

IDE multiplataforma com recursos avançados

Baixar →

VS Code

Editor leve com extensão C#

Baixar →

2 Criar Seu Primeiro Mod

Use as ferramentas integradas do tModLoader para criar um template de mod:

  1. Inicie o tModLoader e vá em "Workshop" → "Develop Mods"
  2. Clique em "Create Mod" e insira os detalhes do seu mod
  3. Escolha um nome único para o mod (sem espaços ou caracteres especiais)
  4. Clique em "Create" para gerar o template do mod

Isso cria uma estrutura básica de mod na sua pasta ModSources com todos os arquivos necessários.

Estrutura Básica do Mod

Todo mod do tModLoader segue uma estrutura padrão:

YourModName/
├── build.txt          # Metadados e dependências do mod
├── description.txt    # Descrição do mod para o navegador
├── icon.png          # Ícone do mod (64x64 recomendado)
├── YourModName.cs    # Classe principal do mod
├── Items/            # Itens personalizados
├── NPCs/             # NPCs personalizados
├── Projectiles/      # Projéteis personalizados
├── Tiles/            # Blocos personalizados
├── Walls/            # Paredes personalizadas
├── Buffs/            # Buffs/debuffs personalizados
└── Sounds/           # Arquivos de áudio personalizados

Exemplo de Classe do Mod

Aqui está uma estrutura básica de classe de mod:

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
        }
    }
}

Configuração do build.txt

O arquivo build.txt contém metadados importantes sobre seu 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

Criando Seu Primeiro Item

Vamos criar uma espada personalizada simples como seu primeiro item:

Criar a Classe do Item

Crie um novo arquivo: 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();
        }
    }
}

Adicionar Textura do Item

Crie uma imagem PNG de 40x40 pixels e salve como:

Items/ExampleSword.png

O nome do arquivo deve corresponder exatamente ao nome da classe.

Compilar e Testar Seu Mod

Fluxo de Build + Reload

O poderoso recurso de desenvolvimento do tModLoader permite testar alterações instantaneamente:

  1. No tModLoader, vá em "Workshop" → "Develop Mods"
  2. Encontre seu mod na lista e clique em "Build + Reload"
  3. Aguarde a compilação ser concluída
  4. Seu mod será recarregado automaticamente com as alterações
  5. Teste seu novo item no jogo

Dica: Use "Build + Reload" frequentemente durante o desenvolvimento. É muito mais rápido do que reiniciar o jogo!

Erros Comuns de Build

  • Textura faltando: Certifique-se de que o arquivo PNG corresponde exatamente ao nome da classe
  • Erros de compilação: Verifique a sintaxe e declarações using
  • Referências faltando: Verifique se as referências do ModLoader estão corretas
  • Erros no build.txt: Verifique a formatação dos metadados do mod

Tópicos Avançados de Desenvolvimento

NPCs Personalizados

Crie inimigos, NPCs da cidade e chefes com IA personalizada

Saiba Mais →

Geração de Mundo

Adicione biomas, estruturas e recursos de mundo personalizados

Saiba Mais →

Interface Personalizada

Crie interfaces, HUDs e elementos interativos

Saiba Mais →

Suporte Multiplayer

Gerencie rede e sincronização

Saiba Mais →

Publicando Seu Mod

Publicando na Steam Workshop

  1. Certifique-se de que seu mod compila sem erros
  2. Vá em "Workshop" → "Develop Mods"
  3. Clique em "Publish" ao lado do seu mod
  4. Preencha o formulário da Steam Workshop com descrição e tags
  5. Envie capturas de tela e defina a visibilidade
  6. Clique em "Publish" para publicar

Seu mod ficará disponível no navegador de mods dentro de alguns minutos após a publicação.

Boas Práticas para Publicação

Diretrizes de Conteúdo

  • Escreva descrições claras e detalhadas
  • Inclua capturas de tela de alta qualidade
  • Teste completamente antes de publicar
  • Documente problemas conhecidos

Requisitos Técnicos

  • Sem erros ou avisos de compilação
  • Verificação adequada de null
  • Teste de compatibilidade multiplayer
  • Otimização de desempenho

Recursos Adicionais