TUTORIAL DE API

Tutorial de la API de tModLoader para Desarrolladores 2025

Tutorial completo de la API que cubre ModItem, ModNPC y técnicas de desarrollo avanzadas con ejemplos prácticos.

Resumen de Clases Principales de la API

ModItem

Crea armas, herramientas, accesorios y consumibles personalizados

  • • SetDefaults() - Define propiedades del objeto
  • • AddRecipes() - Crea recetas de crafteo
  • • UseItem() - Comportamiento de uso personalizado

ModNPC

Crea enemigos, NPCs de pueblo y jefes con IA personalizada

  • • SetDefaults() - Estadísticas y comportamiento del NPC
  • • AI() - Inteligencia artificial personalizada
  • • ModifyNPCLoot() - Define tablas de drop

Ejemplo: Crear un Arma Mágica Avanzada

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

Esto crea un bastón que dispara 3 rayos mágicos en un patrón disperso, demostrando mecánicas avanzadas de proyectiles.

Mejores Prácticas de la API 2025

✅ Do's

  • • Use ModContent.ItemType<T>() for item references
  • • Implementa verificación adecuada de null
  • • Sigue las convenciones de nombres de C#
  • • Prueba en entorno multijugador
  • • Documenta tu código con comentarios

❌ Don'ts

  • • No codifiques IDs de objetos directamente
  • • No accedas a Main.player directamente en MP
  • • No ignores las advertencias del compilador
  • • No uses operaciones pesadas en AI()
  • • No modifiques el contenido vanilla innecesariamente

Seguir Aprendiendo

Este tutorial cubre lo básico. Para documentación completa de la API y ejemplos avanzados, consulta estos recursos: