Skip to content

Tools zh

hp-1e edited this page Oct 31, 2026 · 3 revisions

English | 中文

工具

自定义工具分两处写:

写在哪 内容 生效方式
startup_scripts 注册工具物品:类型、部件组成、贴图、名称、手册文字 重启游戏
server_scripts 的 ArsenalToolEvents.data 基础属性、倍率、词条槽、自带词条、工具动作、范围挖掘、可改造标签 /reload

注册物品(startup)

StartupEvents.registry('item', event => {
  event.create('kubejs:war_pick', 'tinkers_kubejs_arsenal:tool')
    .part('head', 'tconstruct:pick_head')
    .part('handle', 'tconstruct:tool_handle')
    .part('binding', 'tconstruct:tool_binding')
    .brokenPart('head')
    .displayName('War Pick')
    .name('zh_cn', '战镐')
    .bookText('zh_cn', '战镐是一把能挖能打的重型镐。')
    .bookProperty('zh_cn', '挖掘石头和矿石')

  event.create('kubejs:rapier', 'tinkers_kubejs_arsenal:sword')
    .part('blade', 'tconstruct:small_blade')
    .part('guard', 'tconstruct:tool_binding')
    .part('handle', 'tconstruct:tool_handle')
})
方法 说明
类型 tinkers_kubejs_arsenal:tool 普通工具(匠魂 ModifiableItem)
类型 tinkers_kubejs_arsenal:sword 剑(匠魂 ModifiableSwordItem),带横扫,能快速破坏蜘蛛网
.part(图层名, 部件物品) 按顺序添加部件,顺序就是部件序号;图层名在同一工具内不能重复,部件物品必须是匠魂部件
.partTexture(图层名, 贴图) 改某个图层的灰度底图,默认 <命名空间>:item/tool/<工具路径>/<图层名>。可以直接指向匠魂已有底图,例如 tconstruct:item/tool/broad_axe/head
.brokenPart(图层名) 这个图层有损坏贴图 <底图>_broken,耐久耗尽时显示
.name(语言, 文本) 其他语言名称,英文用 .displayName(...)
.bookText(语言, 文本) 手册工具页的介绍,每调用一次是一段
.bookProperty(语言, 文本) 手册工具页"特性"列表的一条
.parentModel(...) KubeJS 自带,改手持姿态;默认普通工具用 tconstruct:item/base/axe,剑用 forge:item/default-tool

KubeJS 物品构建器自带的方法照常可用。工具固定不可堆叠。

工具数值(server)

ArsenalToolEvents.data(event => {
  event.create('kubejs:war_pick')
    .baseStat('attack_damage', 2)
    .baseStat('attack_speed', 1.0)
    .multiplyStat('durability', 1.2)
    .multiplyStat('mining_speed', 0.8)
    .slot('upgrades', 3)
    .slot('abilities', 1)
    .trait('tconstruct:pierce', 1)
    .toolActions('pickaxe_dig')
    .effective('minecraft:mineable/pickaxe')
    .boxAoeDirection('pitch')
    .boxAoeExpansion(0, 0, 2)
    .boxAoeExpansion(0, 1, 0)
    .modifiable('melee/weapon', 'harvest/primary', 'harvest/stone', 'aoe', 'small', 'interactable/right')
    .materialName(0)
})
方法 说明
.baseStat(属性, 值) 基础属性,可多次调用;属性不带命名空间时补 tconstruct:
.multiplyStat(属性, 值) 属性倍率
.slot(槽位类型, 数量) 词条槽:upgrades abilities defense 等
.trait(词条[, 等级]) 工具自带词条
.toolActions(...) 工具动作,例如 pickaxe_dig axe_strip shovel_flatten
.effective(方块标签) 对哪些方块是有效工具
.boxAoe(宽, 高, 深) 方形范围挖掘的基础范围
.boxAoeExpansion(宽, 高, 深) 每级"扩展"词条依次使用一条,可多次调用
.boxAoeDirection(方向) pitch height side_hit,默认 side_hit
.circleAoe(直径, 是否三维) 圆形范围挖掘
.veinAoe(最大距离) 连锁挖掘
.treeAoe(宽加成, 深加成) 砍树
.sweepMelee(范围) 横扫攻击
.circleMelee(直径) 圆形范围攻击
.module(类型, {...}) 任意匠魂工具模块,原样写入
.primaryPart(序号) 主部件,默认 0
.materialName(序号) 工具名称跟随第几个部件的材料
.modifiable(...) 加入 tconstruct:modifiable/<路径> 标签,决定能加哪类词条、进哪本手册
.layoutSlot(序号, x, y) 改工作台里部件槽的位置
.sortIndex(n) 工作台工具按钮的排序,默认 100

自动生成、不用写的部分

  • 部件属性(part_stats)和默认材料(创造模式和 JEI 展示用);
  • tconstruct:modifiable/multipart、modifiable/durability 标签;
  • 工作台布局:1 到 4 个部件按匠魂预设位置摆放。超过 4 个部件必须给多出的部件写 .layoutSlot;
  • 组装配方。超过 3 个部件的工具,匠魂要求在匠魂砧上组装,工匠站做不了。

手册

工具进不进手册、进哪一章,由 .modifiable(...) 决定:

标签 收录到
small 《材料与你》、《工匠大百科》小工具章
broad 《大师熔炼术》、《工匠大百科》大工具章
special / ancient 《工匠大百科》法杖章 / 远古工具章(《工匠装置宝典》也会收录)

都不加,手册里就没有这把工具。没写 .bookText 的语言,工具页只显示名称和部件组成。

创造栏、JEI 与回收

  • 每把工具按材料列出全部变体,放进匠魂"工具"创造栏;JEI 自动显示,组装配方在匠魂"工具组装"页。
  • 匠魂自带的回收配方(部件制作台 + 毒液瓶)可以把自定义工具拆回部件。不想被拆,加 .modifiable('unrecyclable')。

输入检查

以下情况会报英文错误,并跳过这把工具:

  • 服务端定义的 ID 没有在启动脚本注册;
  • 部件物品不是匠魂部件;
  • 槽位数量小于 0,或词条等级小于 1;
  • 部件序号越界;
  • 超过 4 个部件但没写 .layoutSlot。

启动脚本注册了、服务端没写 ArsenalToolEvents.data 的工具,会警告"没有属性、无法组装"。

Clone this wiki locally