Crear Objetos

Aprende a crear objetos, armas y accesorios personalizados usando la API de ModItem. Asegúrate de haber completado la configuración del entorno de desarrollo primero.

Ejemplo Básico de Objeto

Aquí tienes un ejemplo simple de cómo crear una espada personalizada:

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

namespace YourModName.Items
{
    public class ExampleSword : ModItem
    {
        public override void SetDefaults()
        {
            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 = 10000;
            Item.rare = ItemRarityID.Blue;
        }

        public override void AddRecipes()
        {
            Recipe recipe = CreateRecipe();
            recipe.AddIngredient(ItemID.DirtBlock, 10);
            recipe.AddTile(TileID.WorkBenches);
            recipe.Register();
        }
    }
}

Propiedades de Objetos Explicadas

Referencia completa de todas las propiedades comunes de objetos:

damage

Valor de daño base antes de modificadores

Item.damage = 50;

DamageType

Cuerpo a cuerpo, A distancia, Magia, Invocación, Lanzamiento

Item.DamageType = DamageClass.Melee;

useTime

Frames entre usos (menor = más rápido)

Item.useTime = 20;

useAnimation

Duración de animación (usualmente = useTime)

Item.useAnimation = 20;

rare

Nivel de rareza (-1 a 11, afecta el color)

Item.rare = ItemRarityID.Blue;

knockBack

Fuerza de retroceso (0-20 típico)

Item.knockBack = 6;

width / height

Tamaño de hitbox en píxeles

Item.width = 40; Item.height = 40;

value

Valor de venta en cobre (100 = 1 plata)

Item.value = Item.sellPrice(gold: 1);

Más Ejemplos de Objetos

Crear un Arma a Distancia

public class ExampleGun : ModItem
{
    public override void SetDefaults()
    {
        Item.damage = 25;
        Item.DamageType = DamageClass.Ranged;
        Item.width = 44;
        Item.height = 24;
        Item.useTime = 10;
        Item.useAnimation = 10;
        Item.useStyle = ItemUseStyleID.Shoot;
        Item.noMelee = true; // Important for guns
        Item.knockBack = 2;
        Item.value = Item.sellPrice(silver: 50);
        Item.rare = ItemRarityID.Green;
        Item.UseSound = SoundID.Item11;
        Item.autoReuse = true;
        Item.shoot = ProjectileID.Bullet;
        Item.shootSpeed = 16f;
        Item.useAmmo = AmmoID.Bullet;
    }
}

Crear un Accesorio

public class ExampleAccessory : ModItem
{
    public override void SetDefaults()
    {
        Item.width = 24;
        Item.height = 24;
        Item.value = Item.sellPrice(gold: 1);
        Item.rare = ItemRarityID.Orange;
        Item.accessory = true; // Makes it an accessory
    }

    public override void UpdateAccessory(Player player, bool hideVisual)
    {
        player.moveSpeed += 0.1f; // +10% movement speed
        player.maxRunSpeed += 1f;
        player.GetDamage(DamageClass.Generic) += 0.05f; // +5% all damage
    }
}

Próximos Pasos