BlockBuilder
Used in Block Registry
#Properties
None
#Methods
#.displayName(value: TextComponent)
Sets the block's display name.
#.material(value: string)
(No longer supported in 1.20+, see
mapColor and soundType below!)Set the item's material to an available material from the Materials List:
Material List
'air''amethyst''bamboo''bamboo_sapling''barrier''bubble_column''buildable_glass''cactus''cake''clay''cloth_decoration''decoration''dirt''egg''explosive''fire''froglight''frogspawn''glass''grass''heavy_metal''ice''ice_solid''lava''leaves''metal''moss''nether_wood''piston''plant''portal''powder_snow''replaceable_fireproof_plant''replaceable_plant''replaceable_water_plant''sand''sculk''shulker_shell''snow''sponge''stone''structural_air''top_snow''vegetable''water''water_plant''web''wood''wool'
#.mapColor(value: MapColor)
(1.20.1+ only)
Set block map color.
#.soundType(value: SoundType)
(1.20.1+ only)
Set block sound type. You can also use one of these shortcut methods:
.noSoundType().woodSoundType().stoneSoundType().gravelSoundType().grassSoundType().sandSoundType().cropSoundType().glassSoundType()
#.property(value: BlockProperty)
Adds more blockstates to the block, like being waterlogged or facing a certain direction.
#.tagBlock(value: ID)
Adds a tag to the block, e.g
'namespace:tag_name'#.tagItem(value: ID)
Adds a tag to the block's item, if it has one, e.g
'forge:storage_blocks/iron'#.tagBoth(value: ID)
Adds both block and item tag if possible, e.g
'minecraft:planks'#.hardness(value: float)
Sets the block's Hardness value. Used for calculating the time it takes for the block to be destroyed.
#.resistance(value: float)
Set's the block's resistance to things like explosions
#.unbreakable()
Shortcut to set the resistance to MAX_VALUE and hardness to -1 (like bedrock)
#.lightLevel(value: float)
Sets the block's light level (0 - 1).
#.opaque(value: boolean)
Sets whether the block is opaque. Full, opaque blocks will not let light through.
#.fullBlock(value: boolean)
Sets whether the block renders as a full block. Full blocks have certain optimizations applied to them, such as not rendering terrain behind them. If you're using
.box() to make a custom hitbox, please set this to false.#.requiresTool(value: boolean)
If
true, the block will use certain block tags to determine whether it should drop an item when mined. For example, a block tagged with #minecraft:mineable/axe, #minecraft:mineable/pickaxe, and #minecraft:needs_iron_tool would drop nothing unless it was mined with an axe or pickaxe that was at least iron level.#.renderType(value: RenderType)
Sets the render type.
#.color(tintIndex: int, color: Color)
Recolors a block to a certain color
#.textureAll(value: ID)
Textures all 6 sides of the block to the same texture.
The path must look like
kubejs:block/texture_name (which would be included under kubejs/assets/kubejs/textures/block/texture_name.png).Defaults to
kubejs:block/<block_name>#.texture(side: Direction, texture: ID)
Texture one side by itself.
#.model(value: ID)
Specify a custom model.
The path must look like
'kubejs:block/texture_name' (which would be included under kubejs/assets/kubejs/models/block/texture_name.png).Defaults to
'kubejs:block/<block_name>'.#.noItem()
Removes the associated item. Minecraft does this by default for a few blocks, like nether portal blocks. Use this if the player should never be able to hold or place the block.
#.box(x0: float, y0: float, z0: float, x1: float, y1: float, z1: float, scale16?: boolean)
scale16 boolean defaults to true.
Sets a custom hitbox for the block, affecting collision. You can use this multiple times to define a complex shape composed of multiple boxes.
Each box is a rectangular prism with corners at (x0, y0, z0) and (x1, y1, z1)
You will probably want to set up a custom block model that matches the shape you define here.
The final boolean determines the coordinate scale of the box. Passing in
true will use the numbers 0-16, while passing in false will use coordinates ranging from 0 to 1#.noCollision()
Removes the default full-block hitbox, allowing you to fall through the block.
#.notSolid()
Tells the renderer that the block isn't solid.
#.waterlogged()
Allows the block to be waterloggable.
#.noDrops()
The block will not drop itself, even if mined with silk touch.
#.slipperiness(value: float)
Sets the slipperiness of the block. Affects how much entities slide while moving on it. Almost every block in Vanilla has a slipperiness value of 0.6, except slime (0.8) and ice (0.98).
#.speedFactor(value: float)
A modifier affecting how quickly players walk on the block.
#.jumpFactor(value: float)
A modifier affecting how high players can jump off the block.
#.randomTick(callback: Consumer<RandomTickEvent>)
A function to run when the block recieves a random tick.
#.item(item: Consumer<ItemBuilder>)
Modify certain properties of the block's item.
See Item Registry for more info.
#.setLootTableJson(value: json)
Pass in a custom loot table JSON directly
#.setBlockstateJson(value: json)
Pass in a custom blockstate JSON directly
#.setModelJson(value: json)
Pass in a custom model JSON directly
#.noValidSpawns(value: boolean)
If
true, the block is not counted as a valid spawnpoint for entities#.suffocating(value: boolean)
Whether the block will suffocate entities that have their head inside it
#.viewBlocking(value: boolean)
Whether the block counts as blocking a player's view.
#.redstoneConductor(value: boolean)
Sets whether the block will conduct redstone. True by default.
#.transparent(value: boolean)
Sets whether the block is transparent or not
#.defaultCutout()
Batches a bunch of methods to make blocks such as glass
#.defaultTranslucent()
similar to
.defaultCutout() but using translucent layer instead