Guía de Desarrollo de Mods

Aprende a crear increíbles mods de Terraria con la API de C# de tModLoader

20 min de lectura Desarrollo Intermedio

Requisitos Previos

Development Environment

  • • Visual Studio 2022 (recommended)
  • • JetBrains Rider
  • • Visual Studio Code with C# extension
  • • .NET 6.0 SDK or later

Knowledge Requirements

  • • Programación básica de C#
  • • Conceptos de programación orientada a objetos
  • • Familiaridad con la jugabilidad de Terraria
  • • Comprensión básica de desarrollo de juegos

Configuración de Desarrollo

1 Instalar Herramientas de Desarrollo

Elige tu entorno de desarrollo de C# preferido:

Visual Studio 2022

IDE completo con excelente depuración

Descargar →

JetBrains Rider

IDE multiplataforma con funciones avanzadas

Descargar →

VS Code

Editor ligero con extensión de C#

Descargar →

2 Crea Tu Primer Mod

Usa las herramientas integradas de tModLoader para crear una plantilla de mod:

  1. Inicia tModLoader and go to "Workshop" → "Develop Mods"
  2. Click "Create Mod" and enter your mod details
  3. Elige un nombre de mod único (sin espacios ni caracteres especiales)
  4. Click "Create" to generate the mod template

Esto crea una estructura básica de mod en tu carpeta ModSources con todos los archivos necesarios.

Estructura Básica del Mod

Cada mod de tModLoader sigue una estructura estándar:

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/             # Custom NPCs
├── Projectiles/      # Custom projectiles
├── Tiles/            # Custom tiles/blocks
├── Walls/            # Custom walls
├── Buffs/            # Custom buffs/debuffs
└── Sounds/           # Custom audio files

Ejemplo de Clase de Mod

Aquí hay una estructura básica de clase 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
        }
    }
}

Configuración de build.txt

El archivo build.txt contiene metadatos importantes sobre tu 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

Crear Tu Primer Objeto

Vamos a crear una espada personalizada simple como tu primer objeto:

Crear la Clase del Objeto

Create a new file: 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();
        }
    }
}

Añadir Textura del Objeto

Crea una imagen PNG de 40x40 píxeles y guárdala como:

Items/ExampleSword.png

El nombre del archivo debe coincidir exactamente con el nombre de tu clase.

Compilar y Probar Tu Mod

Build + Reload Workflow

La potente función de desarrollo de tModLoader te permite probar cambios al instante:

  1. In tModLoader, go to "Workshop" → "Develop Mods"
  2. Find your mod in the list and click "Build + Reload"
  3. Espera a que se complete la compilación
  4. Tu mod se recargará automáticamente con los cambios
  5. Prueba tu nuevo objeto en el juego

Consejo Pro: ¡Usa "Build + Reload" frecuentemente durante el desarrollo. Es mucho más rápido que reiniciar el juego!

Common Build Errors

  • Textura faltante: Asegúrate de que el archivo PNG coincida exactamente con el nombre de la clase
  • Errores de compilación: Revisa la sintaxis y las declaraciones using
  • Referencias faltantes: Verifica que las referencias de ModLoader sean correctas
  • Errores de Build.txt: Revisa el formato de los metadatos del mod

Temas Avanzados de Desarrollo

Custom NPCs

Crea enemigos, NPCs de pueblo y jefes con IA personalizada

Más Información →

World Generation

Añade biomas, estructuras y características de mundo personalizadas

Más Información →

Custom UI

Crea interfaces, HUDs y elementos interactivos

Más Información →

Soporte Multijugador

Gestiona redes y sincronización

Más Información →

Publicar Tu Mod

Publicar en Steam Workshop

  1. Asegúrate de que tu mod se compile sin errores
  2. Go to "Workshop" → "Develop Mods"
  3. Click "Publish" next to your mod
  4. Completa el formulario de Steam Workshop con descripción y etiquetas
  5. Sube capturas de pantalla y establece la visibilidad
  6. Click "Publish" to make it live

Tu mod estará disponible en el navegador de mods a los pocos minutos de publicarlo.

Mejores Prácticas para Publicar

Directrices de Contenido

  • Escribe descripciones claras y detalladas
  • Incluye capturas de pantalla de alta calidad
  • Prueba a fondo antes de publicar
  • Documenta los problemas conocidos

Requisitos Técnicos

  • Sin errores ni advertencias de compilación
  • Verificación adecuada de null
  • Pruebas de compatibilidad multijugador
  • Optimización de rendimiento

Recursos Adicionales