ServerEvents.recipes(event => {
	event.smithing(
		'allthemodium:allthemodium_bow',                       // arg 1: output
		'allthemodium:allthemodium_upgrade_smithing_template', // arg 2: the smithing template
		'minecraft:bow',                                       // arg 3: the item to be upgraded
		'allthemodium:allthemodium_ingot'                      // arg 4: the upgrade item
	)

	event.smithing(
		'allthemodium:unobtainium_crossbow',                   // arg 1: output
		'allthemodium:unobtainium_upgrade_smithing_template',  // arg 2: the smithing template
		'minecraft:crossbow',                                  // arg 3: the item to be upgraded
		'allthemodium:unobtainium_ingot'                       // arg 4: the upgrade item
	)

	event.smithing(
		'allthemodium:vibranium_shield',                      // arg 1: output
		'allthemodium:vibranium_upgrade_smithing_template',   // arg 2: the smithing template
		'minecraft:shield',                                   // arg 3: the item to be upgraded
		'allthemodium:vibranium_ingot'                        // arg 4: the upgrade item
	)

	event.shapeless(
		Item.of('allthemodium:allthemodium_ingot', 1), // output
		['9x mysticalagriculture:allthemodium_essence'] // input
	).id('allthemods:allthemodium_ingot');

	event.shapeless(
		Item.of('allthemodium:vibranium_ingot', 1), // output
		['9x mysticalagriculture:vibranium_essence'] // input
	).id('allthemods:vibranium_ingot');

	event.shapeless(
		Item.of('allthemodium:unobtainium_ingot', 1), // output
		['9x mysticalagriculture:unobtainium_essence'] // input
	).id('allthemods:unobtainium_ingot');
});
