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.
config/tinkersschema/tools/.head, handle, extra, bowlimb, bowstring, or any registered stat ID. Multiple parts of the same type are supported.splintering, beheading) to a tool, with optional display colors.topleft, center, bottomright) or precise pixel coordinates ("12,62"), freely mixed.| Tool Type | Base Class | Use Case |
|---|---|---|
sword |
SwordCore |
Melee weapons |
harvest |
AoeToolCore |
Harvest tools with AOE mining |
bow |
BowCore |
Ranged weapons using arrows |
Install Tinkers' Schema and its dependencies.
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
}
}
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
| Field | Description |
|---|---|
id |
Registry name in namespace:path form |
tooltype |
sword, harvest, or bow |
parts |
Ordered list of tool parts |
| 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.) |
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 |
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 |
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/item/tools/<tool_name>.tcon.json — layered tool modeltextures/items/tools/<tool_name>/<layer>.png — grayscale, 16×16lang/<locale>.lang — keys item.<modid>.<name>.name and .descbook/index.json, book/sections/*.json, book/<locale>/... — Tinkers' Construct book pagesGrayscale textures are tinted by the material color at render time, following the same convention used by Tinkers' Construct's own tools.
models/item/tools/<name>.tcon.json.effectiveMaterials currently supports vanilla block materials only./reload).MIT. Built on ForgeDevEnv (MIT, CleanroomMC).
AI-assisted development.