Links
Tags
Creators
Details
All versions
0.2.0-alpha.4
Alpha
Quartz 0.2.0-alpha.4last week 12
Compatibility
Minecraft: Java Edition
1.21.1
Platform
NeoForge
Supported environments
Client and server
Changes
Block registration rewrite
BlockRegistry.block()— register a block withBlockItemusingconfigureBlock {}/configureItem {}DSL. SupportscustomBlock(::MyBlock)andcustomItem { block, props -> ... }.BlockRegistry.stair(baseBlock, …)/BlockRegistry.slab(baseBlock, …)— register stair/slab with full datagen (models, blockstate, loot table, tag). AcceptsBlock,DeferredBlock<*>, orBlockWithItem<*,*>as base.BlockRegistry.wall(baseBlock, …)— register a wall with post/side/side-tall/inventory models, auto-registers#walls.BlockRegistry.fence(baseBlock, …)/BlockRegistry.fenceGate(baseBlock, …)— register fence and fence gate with 4-way blockstate, auto-registers#fences/#fence_gates.BlockRegistry.button(baseBlock, …)/BlockRegistry.pressurePlate(baseBlock, …)— register button/pressure plate withBlockSetTypeandticks(button only).BlockRegistry.door(…)/BlockRegistry.trapdoor(…)— register door/trapdoor withBlockSetType, full cutout model gen, and conditional loot.BlockRegistry.flower(baseBlock, …)/BlockRegistry.tallFlower(baseBlock, …)— register one-block/two-block flower withFlowerPotBlockregistration and potted model.BlockRegistry.torch(…)— register a wall-mountable torch with particle texture.BlockRegistry.snowLayer(baseBlock, …)— register an 8-layer snow-like block with layered loot.BlockRegistry.pillar(baseBlock, …)— registerRotatedPillarBlockwithcube_columnmodel (end/side textures).- All block types expose
configureBlock {},configureItem {},texture("path"), and toggle flags (blockState,lootTable,renderType). - New
BlockBuilderclass —configureBlock {},configureItem {},customBlock(::MyBlock),customItem { block, props -> ... }. - New
block.noCollision()extension function for block properties.
Item registration
ItemRegistry.item(config)— register any item with model datagen. SupportsconfigureProperties {},texture("path"),model = true/false,customItem { props -> ... }.ItemRegistry.sword(tier, …),pickaxe(tier, …),axe(tier, …),shovel(tier, …),hoe(tier, …)— register tools with parameterizedattackDamage/attackSpeed, handheld model, and vanilla enchantability tags.- All item types support
model,customTexture,configureProperties {}.
Datagen
DatagenPlaninterface — each block type emits its own blockstate, loot table, and tags viaemitBlockState(),emitLootTable(),emitTags().LootTableContext— helpers:dropSelf(),dropSlab(),dropLayered(),dropOther(),addLootTable().TagContext— helpers:add(tag, block),add(tag, item).- Datagen auto-registers in
@Modclass viaQuartzDataGatherers.register(modEventBus)— no manualGatherDataEventlistener needed. - Datagen groups providers by
modId, supporting multiple registries per mod.
Infrastructure
IRegistryinterface — bothBlockRegistryandItemRegistryimplement it for uniformregister(bus).bindNamedelegate — property name → snake_case name resolution for all registration functions.BlockWithItemis now adata classwithblockHolder/itemHolderfields and convenienceblock/itemaccessors.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:WjO4oDVo:oIv3jaoq"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:WjO4oDVo:oIv3jaoq"
}

