开发
发布于 2025 年 9 月 23 日
2025 如何创建你的第一个 Terraria 模组
准备好加入模组开发者的行列了吗?这份全面的教程将引导你从设置到发布,创建你的第一个 Terraria 模组,附带实际示例和专业技巧。
你将学到
- • 设置你的开发环境
- • 创建具有独特属性的自定义武器
- • 理解 tModLoader 的 C# API
- • 测试和调试你的模组
- • 发布到 Steam Workshop
前置条件
所需知识
- • 基本 C# 编程(变量、方法、类)
- • 熟悉 Terraria 游戏玩法
- • 基本了解面向对象编程
所需软件
- • 已安装并可正常运行的 tModLoader
- • Visual Studio 2022(推荐)或 VS Code
- • .NET 6.0 SDK 或更高版本
步骤 1:开发环境设置
创建模组模板
- 启动 tModLoader,前往"创意工坊" → "开发模组"
- 点击"创建模组"
- 输入你的模组名称(例如 "MyFirstMod" - 不能有空格!)
- 填写作者名称和描述
- 点击"创建"
这将在你的 ModSources 文件夹中创建一个包含所有必需文件的模组模板。
步骤 2:创建自定义武器
让我们创建一把简单但有效的自定义武器。这将教你物品创建的基础知识。
创建物品类
Create a new file: Items/BeginnerSword.cs
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace MyFirstMod.Items
{
public class BeginnerSword : ModItem
{
public override void SetDefaults()
{
// Basic item properties
Item.damage = 45; // Damage value
Item.DamageType = DamageClass.Melee; // Damage type
Item.width = 40; // Hitbox width
Item.height = 40; // Hitbox height
Item.useTime = 20; // Use speed
Item.useAnimation = 20; // Animation speed
Item.useStyle = ItemUseStyleID.Swing;// How it's used
Item.knockBack = 6; // Knockback strength
Item.value = Item.buyPrice(gold: 2); // Sell value
Item.rare = ItemRarityID.Green; // Rarity color
Item.UseSound = SoundID.Item1; // Use sound
Item.autoReuse = true; // Can auto-swing
}
public override void AddRecipes()
{
Recipe recipe = CreateRecipe();
recipe.AddIngredient(ItemID.IronBar, 15);
recipe.AddIngredient(ItemID.Wood, 10);
recipe.AddTile(TileID.Anvils);
recipe.Register();
}
}
}
理解代码
- SetDefaults():定义物品的所有属性,如伤害、大小和行为
- AddRecipes():为你的物品创建合成配方
- DamageClass.Melee:使其与近战伤害加成成比例
- ItemRarityID.Green:设置稀有度颜色(影响物品名称颜色)
步骤 3:构建和测试
使用构建 + 重载
tModLoader 对开发者最好的功能是"构建 + 重载"系统,让你可以即时测试更改:
- 在 tModLoader 中,前往"创意工坊" → "开发模组"
- 找到你的模组并点击"构建 + 重载"
- 等待编译(大约需要 5-10 秒)
- 你的模组会自动重载并应用更改
- 在游戏中测试你的新武器!
测试你的武器
测试你的新武器:
- 1. 打开物品栏,检查是否可以合成(你需要铁锭和木材)
- 2. 合成武器并在敌人身上测试伤害
- 3. 检查音效和动画是否正常工作
- 4. 验证自动挥砍功能
添加高级功能
自定义命中特效
让我们添加武器击中敌人时的特殊效果:
public override void OnHitNPC(Player player, NPC target, NPC.HitInfo hit, int damageDone)
{
// 20% chance to inflict fire debuff
if (Main.rand.NextBool(5))
{
target.AddBuff(BuffID.OnFire, 180); // 3 seconds of fire
}
// Spawn some visual effects
for (int i = 0; i < 10; i++)
{
Dust.NewDust(target.position, target.width, target.height, DustID.Fire);
}
}
这添加了 20% 的概率点燃敌人,并在命中时创建火焰粒子效果。
自定义工具提示
为你的物品工具提示添加自定义文本:
public override void ModifyTooltips(List<TooltipLine> tooltips)
{
TooltipLine line = new TooltipLine(Mod, "CustomTooltip", "A sword forged by a beginner modder!");
line.OverrideColor = Color.Orange;
tooltips.Add(line);
}
发布你的模组
发布到 Steam Workshop
- 确保你的模组构建没有错误
- 在模组文件夹中添加 icon.png 文件(64x64 像素)
- 编写一个好的 description.txt 说明你的模组功能
- 在"开发模组"中,点击模组旁边的"发布"
- 在 Steam Workshop 表单中填写标签和描述
- 上传展示你的模组效果的截图
- 点击"发布"使其上线!
成功发布的技巧
- • 编写清晰、详细的描述
- • 包含高质量的截图
- • 使用相关标签以提高可发现性
- • 发布前进行全面测试
- • 回应用户反馈和评论
恭喜!你现在是模组开发者了!
你已经创建了你的第一个 Terraria 模组!这只是开始 - tModLoader 的 API 能做到令人难以置信的事情。 接下来探索 NPC、弹幕、图块和世界生成吧。