promotional bannermobile promotional banner

Tinkers' Schema

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, and damage cutoff are all adjustable with sensible defaults.
  • Intrinsic traits — Attach any registered trait (e.g., splintering, beheading) to a tool.
  • 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").
  • Station routing — Craft in the Tool Station, or restrict to the Tool Forge.
  • 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.

  2. Create a tool definition in config/tinkersschema/tools/:

{
  "id": "tinkersschema:war_club",
  "tooltype": "sword",
  "station": "table",
  "categories": ["WEAPON"],
  "traits": ["splintering"],
  "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
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
drawSpeedMultiplier 1.0 bow
rangeMultiplier 1.0 bow
projectileDamageMultiplier 1.0 bow
drawMoveSpeed null bow

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
projectileDamageMultiplier 1.0 Multiplier on the material-derived projectile bonus damage
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

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.

The Tinkers' Schema Team

profile avatar
  • 1
    Followers
  • 8
    Projects
  • 6.9K
    Downloads

More from moos2333View all