tModLoader API-Tutorial fأ¼r Entwickler 2025
Umfassendes API-Tutorial zu ModItem, ModNPC und fortgeschrittenen Entwicklungstechniken mit praktischen Beispielen.
أœbersicht der Kern-API-Klassen
ModItem
Erstelle benutzerdefinierte Waffen, Werkzeuge, Accessoires und Verbrauchsgأ¼ter
- • SetDefaults() - Item-Eigenschaften definieren
- • AddRecipes() - Herstellungsrezepte erstellen
- • UseItem() - Benutzerdefiniertes Nutzungsverhalten
ModNPC
Erstelle Feinde, Stadt-NPCs und Bosse mit benutzerdefinierter KI
- • SetDefaults() - NPC-Statistiken und Verhalten
- • AI() - Benutzerdefinierte kأ¼nstliche Intelligenz
- • ModifyNPCLoot() - Beutetabellen definieren
Beispiel: Eine fortgeschrittene Magiewaffe erstellen
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
}
}
Dies erstellt einen Stab, der 3 Magiebolzen in einem Streumuster schieأںt und fortgeschrittene Projektilmechaniken demonstriert.
API Best Practices 2025
✅ Do's
- • Verwende ModContent.ItemType<T>() for item references
- • Implementiere ordentliche Null-Prأ¼fungen
- • Folge C#-Namenskonventionen
- • Teste in Mehrspieler-Umgebung
- • Dokumentiere deinen Code mit Kommentaren
❌ Don'ts
- • Keine Item-IDs fest kodieren
- • Nicht direkt auf Main.player im MP zugreifen
- • Compiler-Warnungen nicht ignorieren
- • Keine aufwأ¤ndigen Operationen in AI() verwenden
- • Vanilla-Inhalte nicht unnأ¶tig أ¤ndern
Weiterlernen
Dieses Tutorial deckt die Grundlagen ab. Fأ¼r umfassende API-Dokumentation und fortgeschrittene Beispiele schaue dir diese Ressourcen an: