MC服务器做自定义武器,说白了就是两件事:用资源包换外观,用数据组件或插件换属性先用 Blockbench 做好模型,再靠 ItemsAdder、Nexo、Oraxen 这类插件把模型和数值绑到同一件物品上,最后把资源包挂到服务端让玩家自动下载。版本越新,原版自带的能力越强,1.21.4 之后甚至不装插件也能给同一件物品挂多套模型,但要做技能和词条,插件依然是绕不开的一环。
先定路线:版本和技术栈决定后面所有工作量
服务端核心怎么选
目前主流还是 Paper 系,纯 Paper 胜在稳定、报错少、插件兼容性最好;Purpur 在 Paper 基础上多了一批可调参数,适合想折腾的人,原版服务端不推荐,一是没有插件生态,二是资源包分发和物品组件管理全靠手动,维护成本高。
版本选择上有条硬线:20.5 是分水岭,从这个版本开始,物品 NBT 全面转向数据组件(Data Component),CustomModelData 从普通 NBT 变成了组件字段,你在网上搜到的老教程,十有八九还是 1.20.4 之前的写法,直接抄会报错,开新服的话,建议直接上 1.21.x 的 LTS 线,避免中途迁移。
两条技术路线:插件托管派和原版组件派
- 插件托管派:ItemsAdder、Nexo、Oraxen、CraftEngine 这一类,插件自己生成资源包、自己管理模型编号、自己处理物品识别,好处是省心,坏处是资源包体积大、加载慢。
- 原版组件派:直接手写资源包,用
custom_model_data或 1.21.4 的 item model 定义绑定模型,属性走attribute_modifiers组件,好处是轻、干净、不依赖插件;坏处是每次改东西都得手动重打包。
做小规模生存服、只想加几把武器的,走原版组件派完全够用,要做几十上百件装备、还要带技能和词条的,插件托管派更现实。
MC服务器自定义武器插件哪个好用?四类方案横向对比
这是被问得最多的问题,市面上的方案其实分四个层级,不是同一个维度的东西。
| 方案 | 定位 | 是否收费 | 上手难度 | 适合场景 |
|---|---|---|---|---|
| Oraxen | 物品+资源包管理 | 开源免费 | 中等 | 预算有限、愿意看文档的中小服 |
| ItemsAdder / Nexo | 物品+方块+GUI 全套 | 付费(约十几到二十美元) | 偏低 | 想快速出效果、内容量大的服 |
| MythicMobs | 怪物+技能+掉落 | 免费版够用 | 偏高 | 需要技能联动、Boss 战的核心玩法 |
| ExecutableItems | 单件武器行为定制 | 付费 | 低 | 只做几十件特色武器、不想学 YAML |
业内专家指出,多数中型服务器最终会组合使用:ItemsAdder 或 Nexo 负责外观和物品本体,MythicMobs 负责技能触发和伤害结算,这两者分属不同层,不冲突,反而互补。
不同规模的搭配建议
- 10 人以内小服:Oraxen 单飞,或者原版组件 + 手写资源包,够用且不卡。
- 50 人左右生存服:Oraxen 或 ItemsAdder 二选一,配一个轻量的属性插件。
- 百人以上 RPG 服:Nexo / ItemsAdder + MythicMobs + 自定义掉落表,三层配合,别指望一个插件全包。
我的世界服务器自定义武器模型怎么导入:从建模到发包的完整路径
第一步:Blockbench 出模型
装 Blockbench,新建 Java 版物品模型工程,关键点在于模型要放在 item/ 目录下而不是 block/,导出的 JSON 里 parent 必须指向 item/handheld,否则拿在手上会没有挥动动画,导出后把 .json 和贴图 .png 一起放进资源包。
第二步:资源包目录结构
assets/
mypack/
models/item/ruby_sword.json
textures/item/ruby_sword.png
pack.mcmeta
pack.png
pack.mcmeta 里的 pack_format 要和你的服务端版本对上,1.21.x 一般写 34 或更高,版本对不上会提示”资源包不兼容”,虽然能加载,但部分模型会错位。
第三步:模型和物品绑定
20.5 之后的命令写法:
/give @p minecraft:diamond_sword[custom_model_data={floats:[1001]}]
21.4 之后,原版支持在资源包里写 assets/<命名空间>/items/ 定义,一个物品 ID 可以直接映射多套模型,不再挤占 custom_model_data 的编号空间,改起来清爽很多。
第四步:资源包分发(真正容易翻车的地方)
编辑服务端根目录的 server.properties:
resource-pack=https://你的域名/pack.zip
resource-pack-sha1=这里填包的SHA1
require-resource-pack=true
resource-pack-prompt={"text":"进服前请允许下载材质包"}
SHA1 用命令行算:Linux 下 sha1sum pack.zip,Windows PowerShell 用 Get-FileHash pack.zip -Algorithm SHA1。
这里有个国内服主常踩的坑:直接把资源包扔在海外图床或 GitHub Raw 上,国内玩家进服会卡在下载界面走不动,行业共识认为,资源包下载超时是玩家流失的主要原因之一,解决办法是把包放国内对象存储(简米云 OSS、酷番云 COS 都行),开 CDN 加速,包体积控制在 20MB 以内,贴图尽量用 16x 分辨率。
我的世界服务器自定义武器伤害怎么做?数值别拍脑袋
外观是皮肤,数值才是玩法,武器伤害有两条实现路径。
走物品属性组件
原版属性能解决大部分需求:
/give @p minecraft:diamond_sword[minecraft:attribute_modifiers=[{type:"minecraft:attack_damage",amount:12,operation:"add_value",slot:"mainhand"}]]
注意 21.3 之后属性 ID 去掉了 generic. 前缀,老配置照搬会直接报错,攻击速度、暴击这类同样能挂,这种方式的好处是伤害计算全走原版,护甲、附魔、药水效果自动参与运算,不用自己写公式。
走 MythicMobs 技能
要做”攻击时 20% 概率造成 3 倍伤害””命中后附加流血”这类效果,就得靠 MythicMobs 的 skills 节点,武器 YAML 里写好技能,再用 Options.Triggers 绑定 onAttack 或 onHit。
它的伤害是通过自定义伤害类型结算的,不参与原版附魔加成,所以同一把武器如果既挂了原版属性又挂了技能伤害,容易出现数值翻倍,做法是二选一:要么原版属性只做基础攻击力,技能只做附加效果;要么全走技能,把原版攻击力调到很低。
平衡上的几条实操建议
- 先把 vanilla 钻石剑的 7 点攻击力当基准线,自定义武器控制在 8–15 点区间,超过 20 点基本就没 vanilla 装备什么事了。
- 攻击速度单独调,别和攻击力一起堆,高速高伤武器是服务器经济崩盘的头号杀手。
- 词条随机化交给掉落表,别写死在武器 YAML 里。
自己开MC服务器做武器要不要花钱
要,但花多花少差别很大。
- 插件授权:Oraxen、MythicMobs 免费版基本够用;ItemsAdder、ExecutableItems、Nexo 这类是买断制,单份授权大致在十几到二十几美元区间,按服计算,不是按人头。
- 服务器成本:面板服月付几十块就能跑十来人;自建云服务器按配置走,带资源包分发的话记得把带宽算进去,材质包下载是吃流量的。
- 隐性成本:模型外包、贴图绘制、YAML 调试时间,据近年来的社区反馈,多数人卡住的地方不是不会写配置,而是拿不出像样的模型。
- 完全零成本的方案:原版组件 + 自己画 16x 贴图 + 免费开源的 Oraxen,一套下来不花一分钱,代价是你得会看图文档。
上线前容易翻车的五个细节
- 资源包 SHA1 改了包没改,玩家下载到一半报错,进服满屏紫黑方块。
- 模型编号和别的插件撞号,武器显示成别人的材质。
- 21.4+ 用新 item model 定义的同时还留着
custom_model_data,两个机制打架。 - 武器加了
unbreakable却忘了加hide_tooltip,鼠标一悬停露出一堆组件文本。 - 只在创造模式测试,生存模式下耐久、附魔、铁砧修复全出问题。
收束
自定义武器这事,难点从来不在”会不会做”,而在”做得稳不稳”,先把版本和插件栈定死,再走模型到发包的完整链路跑通一把武器,剩下的都是复制粘贴和调数值。
MC服务器自定义武器常见问题解答
Q:不加插件能做出自定义武器吗?
能,1.20.5 之后原版数据组件已经能覆盖攻击力、攻速、耐久、模型的大部分需求,只要你会写资源包和 /give 命令,纯原版就能做出外观和属性都自定义的武器,缺的只是技能系统,那部分只能靠插件或命令方块模拟。
Q:资源包一定要玩家手动下载吗?
不需要,在 server.properties 里配好 resource-pack 和 resource-pack-sha1,玩家进服时会弹出授权提示,同意后自动下载并加载,把 require-resource-pack 设成 true,不同意下载的玩家会被直接踢出,能保证所有人看到的外观一致。
Q:自定义武器换了版本就失效,是什么原因?
主要是数据组件结构变化,1.20.5 重构了 NBT 体系,1.21.3 调整了属性 ID 命名,1.21.4 引入了新的 item model 定义方式,每次跨大版本更新,custom_model_data 的写法和属性字段都可能需要重写一遍,跨版本升级前,先在一个测试服把武器库全部过一遍,比事后修 bug 省事得多。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/772678.html


