Skip to content

Making SlowTools

nibster edited this page Jun 1, 2026 · 44 revisions

A list of tutorial pages for Slowcraft versions

26.1.2 -- v0.2

SlowTools can be made similarly to creating an Item in Fabric, but instead of registering a new Item, you create a SlowTool and feed it a small config.

Here's a simple example:

public static final Item ITEM_NAME = register("item_name", properties -> new SlowTool(

	SlowTool.config()

		.itemOutput(Item, int)

		.itemUses(int)

		.usageSound(SoundEvent)

		.finishSound(SoundEvent)

		.returnItem(Item, int),

	properties

), new Item.Properties());
Company Contact Country
Alfreds Futterkiste Maria Anders Germany
Centro comercial Moctezuma Francisco Chang Mexico
1.21.1 -- v0.1 (Old) This version of the mod is old

Minecraft version: 1.21.1

Making Slow Tools is easy! ... But it isn't data-driven, you'll need to implement Slowcraft into your mod.

For the time being, use Modrinth Maven to add Slowcraft as a dependency to your project.

The SlowTool Class extends ToolItem, so making a new one is as easy as making a typical ToolItem plus a few extra constructor parameters and one component in the item's recipe.

Here's an example of a Slow Tool Class:

Slow Tool  Class Example

  • Parameter 1 is the output of the craft as ItemConvertible via itemOutput
  • Parameter 2 is the maximum durability of the item (how long it will take to craft) as int via itemUses. Slow Tools progress at a rate of tps % 5, about 4 times per second, so an itemUses of 240 will require 60 seconds to finish.
  • Parameter 3 is the sound played as the player crafts the item as SoundEvent via usageSound
  • Parameter 4 is the sound played when the craft is finished as SoundEvent via finishSound
  • Parameter 5 is the typical Item.Settings() section, where standard item settings can be applied

Additionally, when constructing the recipe for Slow Tools, they require a component of minecraft:damage set to the same value as their itemUses (durability). The easiest way to do this is to simply add the component to the recipe's JSON, set to the same value:

Recipe Example

!The minecraft:damage value must be the same as your item's itemUses (Parameter 2 above)!

If you're generating your recipes via code, you'll have to add the component to your output.

Drawbacks?

  • Slow Tools require a Material to function, hard-set to SlowMaterial in the SlowTool Class constructor
  • Requires manually setting the damage component through recipe definition

Clone this wiki locally