TUTORIAL DA API

Tutorial da API do tModLoader para Desenvolvedores 2025

Tutorial completo da API cobrindo ModItem, ModNPC e técnicas avançadas de desenvolvimento com exemplos práticos.

Visão Geral das Classes Principais da API

ModItem

Crie armas, ferramentas, acessórios e consumíveis personalizados

  • • SetDefaults() - Define propriedades do item
  • • AddRecipes() - Cria receitas de criação
  • • UseItem() - Comportamento de uso personalizado

ModNPC

Crie inimigos, NPCs da cidade e chefes com IA personalizada

  • • SetDefaults() - Estatísticas e comportamento do NPC
  • • AI() - Inteligência artificial personalizada
  • • ModifyNPCLoot() - Define tabelas de drop

Exemplo: Criando uma Arma Mágica Avançada

public class AdvancedStaff : ModItem
{
    public override void SetDefaults()
    {
        Item.damage = 75;
        Item.DamageType = DamageClass.Magic;
        Item.mana = 15;
        Item.width = 40;
        Item.height = 40;
        Item.useTime = 30;
        Item.useAnimation = 30;
        Item.useStyle = ItemUseStyleID.Shoot;
        Item.knockBack = 5;
        Item.value = Item.buyPrice(gold: 10);
        Item.rare = ItemRarityID.Pink;
        Item.UseSound = SoundID.Item20;
        Item.autoReuse = true;
        Item.shoot = ModContent.ProjectileType<MagicBolt>();
        Item.shootSpeed = 16f;
    }

    public override bool Shoot(Player player, EntitySource_ItemUse_WithAmmo source,
                              Vector2 position, Vector2 velocity, int type, int damage, float knockback)
    {
        // Shoot 3 projectiles in a spread
        for (int i = 0; i < 3; i++)
        {
            Vector2 newVelocity = velocity.RotatedByRandom(MathHelper.ToRadians(15));
            Projectile.NewProjectile(source, position, newVelocity, type, damage, knockback, player.whoAmI);
        }
        return false; // Don't shoot the default projectile
    }
}

Isso cria um cajado que dispara 3 projéteis mágicos em padrão de dispersão, demonstrando mecânicas avançadas de projéteis.

Boas Práticas da API 2025

✅ Faça

  • • Use ModContent.ItemType<T>() para referências de itens
  • • Implemente verificação adequada de null
  • • Siga as convenções de nomenclatura do C#
  • • Teste em ambiente multiplayer
  • • Documente seu código com comentários

❌ Não Faça

  • • Não codifique IDs de itens diretamente
  • • Não acesse Main.player diretamente em MP
  • • Não ignore avisos do compilador
  • • Não use operações pesadas em AI()
  • • Não modifique conteúdo vanilla desnecessariamente

Continue Aprendendo

Este tutorial cobre o básico. Para documentação completa da API e exemplos avançados, confira estes recursos: