跳到正文

Tinkers’ Schema

作者:moos2333

Data-driven registration of custom tools for Tinkers' Construct 2 using JSON, with no Java required.

收藏

截图

介绍

中文介绍正在准备中,下面暂时显示原文。

Tinkers’ Schema

Data-driven tool registration for Tinkers’ Construct 2.

Tinkers’ Schema is an addon for Tinkers’ Construct 2 that lets you add custom melee weapons, harvest tools, and ranged weapons using only JSON. No Java code, no compilation, no resource pack restructuring — drop a config file, supply your models and textures, and the tool becomes a fully functional Tinkers’ item.

For custom models and textures, Resource Loader is recommended.

A ready-to-use example pack is available here: Tinkers’ Schema – Example Tools.

Tinkers’ Schema by itself adds nothing to the game. It only provides the framework — you need the example pack or your own JSON and resource files for any tool to appear.

Features

  • JSON-driven registration — Each tool is defined by a single file in config/tinkersschema/tools/.
  • First-class Tinkers’ items — Tools are craftable in the Tool Station and Tool Forge, repairable, modifiable, and compatible with existing Tinkers’ materials.
  • Configurable parts — Combine any Tinkers’ tool parts using head, handle, extra, bowlimb, bowstring, or any registered stat ID. Multiple parts of the same type are supported.
  • Configurable stats — Damage, attack speed, knockback, durability, mining speed, damage cutoff, and bow handling are all adjustable with sensible defaults.
  • Intrinsic traits — Attach any registered trait (e.g., splintering, beheading) to a tool, with optional display colors.
  • AOE range — Harvest tools can define their own area-of-effect dimensions.
  • Custom GUI layout — Nine-grid slot presets (topleft, center, bottomright) or precise pixel coordinates ("12,62"), freely mixed.
  • Station routing — Craft in the Tool Station, or restrict to the Tool Forge.
  • Guidebook entries — Add custom pages to the Tinkers’ Construct book (“Materials and You”) via JSON.
  • Zero side effects — No config files means no changes to your game.

Current Scope

| Tool Type | Base Class | Use Case |
| ——— | ———- | ——– |
| sword | SwordCore | Melee weapons |
| harvest | AoeToolCore | Harvest tools with AOE mining |
| bow | BowCore | Ranged weapons using arrows |

Requirements

  • Minecraft 1.12.2
  • Forge
  • Tinkers’ Construct 2
  • Mantle
  • Resource Loader (recommended for loading custom models and textures)

Quick Start

  1. Install Tinkers’ Schema and its dependencies.
  1. Create a tool definition in config/tinkersschema/tools/:
{
  "id": "tinkersschema:war_club",
  "tooltype": "sword",
  "station": "table",
  "categories": ["WEAPON"],
  "traits": ["splintering"],
  "traitColors": { "splintering": "yellow" },
  "repairParts": [1, 2],
  "repairModifiers": { "1": 1.5, "2": 1.5 },
  "parts": [
    { "type": "handle", "item": "tconstruct:tool_rod" },
    { "type": "head",   "item": "tconstruct:bow_limb" },
    { "type": "head",   "item": "tconstruct:bow_limb" }
  ],
  "guiSlots": ["center", "topright", "bottomleft"],
  "stats": {
    "damagePotential": 0.9,
    "attackSpeed": 1.6,
    "knockback": 1.1,
    "bonusAttack": 0.5,
    "attackMultiplier": 1.1,
    "durabilityMultiplier": 1.2,
    "damageCutoff": 15.0,
    "repairModifier": 1.0
  }
}
  1. Provide the model and textures via Resource Loader or a resource pack:
resources/tinkersschema/
├── models/item/tools/war_club.tcon.json
├── textures/items/tools/war_club/
│   ├── handle.png
│   ├── limb1.png
│   ├── limb2.png
│   └── limb1_broken.png
└── lang/
    ├── en_us.lang
    └── zh_cn.lang
  1. Launch the game. Your tool appears in the Tool Station and the Tinkers’ Construct creative tab.

Configuration Reference

Required Fields

| Field | Description |
| —– | ———– |
| id | Registry name in namespace:path form |
| tooltype | sword, harvest, or bow |
| parts | Ordered list of tool parts |

Optional Fields

| Field | Default | Description |
| —– | ——- | ———– |
| station | "table" | table (Tool Station + Tool Forge) or forge (Tool Forge only) |
| categories | [] | WEAPON, HARVEST |
| traits | [] | Intrinsic trait IDs |
| traitColors | {} | Display color per trait (e.g., {"splintering": "yellow"}) |
| harvestToolClass | null | pickaxe, shovel, axe |
| effectiveMaterials | [] | Block materials for AOE tools (ROCK, WOOD, etc.) |
| aoeRange | [1,1,1] | AOE dimensions for harvest tools |
| repairParts | [1] | Part indices used for repair |
| repairModifiers | {} | Repair multiplier per part index |
| guiSlots | preset | Slot positions (topleft, center, "12,62", etc.) |

Stats

All values default to Tinkers’ Construct baselines:

| Stat | Default | Applies To |
| —- | ——- | ———- |
| damagePotential | 1.0 | All |
| attackSpeed | 1.6 | All |
| knockback | 1.0 | All |
| bonusAttack | 0.0 | All |
| attackMultiplier | 1.0 | All |
| durabilityMultiplier | 1.0 | All |
| miningSpeedModifier | 1.0 | All |
| damageCutoff | 15.0 | All |
| repairModifier | 1.0 | All |

Bow Stats

Additional fields for bow tools:

| Field | Default | Description |
| —– | ——- | ———– |
| drawSpeedMultiplier | 1.0 | Multiplier on the material-derived draw speed |
| rangeMultiplier | 1.0 | Multiplier on the material-derived range |
| bonusDamageMultiplier | 1.0 | Multiplier on the material-derived bonus damage |
| baseProjectileDamage | 0.0 | Inherent damage, scaled by draw progress |
| projectileDamageModifier | 1.0 | Final damage modifier |
| baseInaccuracy | 0.0 | Shot spread. Higher is less accurate |
| projectileSpeedMultiplier | 1.0 | Projectile velocity multiplier |
| drawMoveSpeed | null | Movement speed retained while drawing. Omit for vanilla slowdown |

Assets

Models and textures follow the standard resource pack layout. Place them in .minecraft/resources/tinkersschema/ (with Resource Loader) or package them as a resource pack.

  • Models: models/item/tools/<tool_name>.tcon.json — layered tool model
  • Textures: textures/items/tools/<tool_name>/<layer>.png — grayscale, 16×16
  • Language: lang/<locale>.lang — keys item.<modid>.<name>.name and .desc
  • Guidebook: book/index.json, book/sections/*.json, book/<locale>/... — Tinkers’ Construct book pages

Grayscale textures are tinted by the material color at render time, following the same convention used by Tinkers’ Construct’s own tools.

Future Plans

  • CraftTweaker/ZenScript integration
  • Crossbows and ammunition (arrows, bolts, throwables)
  • JSON-defined custom tool parts
  • Stable API and full documentation

Known Limitations

  • Tool behavior (sweep attack, AOE logic, bow draw mechanics) is inherited from Tinkers’ base classes and cannot be reconfigured through JSON.
  • Model paths are bound to Tinkers’ loading convention: models/item/tools/<name>.tcon.json.
  • effectiveMaterials currently supports vanilla block materials only.
  • Config changes require a game restart (CraftTweaker 1.12.2 does not support /reload).

License

MIT. Built on ForgeDevEnv (MIT, CleanroomMC).

Credits

  • SlimeKnights — Tinkers’ Construct 2
  • Lumien231 — Resource Loader
  • CleanroomMC — ForgeDevEnv

AI-assisted development.

常见问题

Tinkers’ Schema 支持哪些 Minecraft 版本?

Tinkers’ Schema 支持 Minecraft Java 版 1.12.2,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

Tinkers’ Schema 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。

评论

登录后评论和评分

moos2333 的其他作品

查看全部 →