Crucible allows people to create "custom blocks" using the extra block states from mushroom blocks, note blocks, tripwires or chorus plants.
Items that are configured to be blocks will have their corresponding block placed in the world where the player is looking when right-clicked, and will drop the original item when broken by default (unless configured otherwise).
Disclaimer
Custom Blocks use blockstates to work. This can lead to some glitchy looking behaviour with block updates, if you are using Paper it is recommended to disable updates for these blocks.
Head to /config/paper-global.yml
and disable block updates for the base block type you use in the section at the top. This example disables Noteblock updates.
block-updates:
disable-chorus-plant-updates: false
disable-mushroom-block-updates: false
disable-noteblock-updates: true
disable-tripwire-updates: false
Custom Block Options
All options are placed under a CustomBlock
section on an item.
MUSHROOM_BLOCK and NOTE_BLOCK are considered as "solid" blocks, these blocks need a path to the texture to generate itself, other blocks (TRIPWIRE and CHORUS) are non solid this means you can omit the Texture
field and Crucible will use the model assigned to the item
Option | Description | Default |
---|---|---|
Type | The type of custom block | MUSHROOM |
Id | The ID of the custom block | 0 |
Parent | Parent model that the block should use | minecraft:block/cube_all |
Model | The path to the model. Generated automatically | |
Texture | The path of the texture the block will use, or none if block is non solid. Gets ignored if Textures is set |
|
Textures | Paths of the textures that the block will use | |
Variants | Possible variants of the block (having different rotations) | |
Drops | What the block will drop. Defaults to itself |
Type: BLOCK
CustomBlock:
Type: MUSHROOM_BLOCK
Id: 18
Texture: block/stars1
Type Option
The possible block types are
Type | Aliases | Solid |
---|---|---|
MUSHROOM |
MUSHROOM_BLOCK , MUSHROOMBLOCK
|
true |
NOTEBLOCK |
NOTE , NOTE_BLOCK
|
true |
TRIPWIRE |
WIRE , STRING
|
false |
CHORUS |
CHORUS_PLANT |
false |
Textures Option
Each key inside this option will correspond to a texture of the Parent model, and their value will be their path. This means that there is not set amount of possible keys for this option, and they instead depends on the Parent.
Let's take, for example, the cube_top
model
{
"parent": "block/cube",
"textures": {
"particle": "#side",
"down": "#side",
"up": "#top",
"north": "#side",
"east": "#side",
"south": "#side",
"west": "#side"
}
}
It has the particle
, down
, up
, north
, east
, south
and west
particles explicitly declared, and they inherit what the side
and top
particles are set to if any. This means that, if we inherit this Parent, we can use the side
and top
keys to set the textures of the block
TestBlock:
Id: STONE
Model: 5
Display: 'Multitexture'
Type: BLOCK
CustomBlock:
Type: NOTE_BLOCK
Id: 30
Parent: "minecraft:block/cube_top"
Textures:
top: block/top_texture
side: block/side_texture
This block will have a different texture on top
Variants Option
With variants you can make your blocks have different rotations from each other with a probability. This option can be configured by defining a list of possible variants, each list being an hashmap containing specific keys that can be omitted
Variants Keys | Description |
---|---|
weight | The weight of the variant |
x | The x rotation |
y | The y rotation |
uvLock | Whether the uv of the textures should be locked |
This block will have two random rotation variant
TestBlock:
Id: STONE
Model: 5
Display: 'Variant'
Type: BLOCK
CustomBlock:
Type: NOTE_BLOCK
Id: 30
Texture: block/exampletexture
Variants:
- y: 0
uvLock: true
- x: 90
y: 90
- y: 270
x: 180
weight: 3
Putting in Resource Pack
Please refer to the Resourcepack Generator wiki page for info.
Examples
TestBlock:
Id: STONE
Model: 5
Display: 'Probably a Block'
Type: BLOCK
CustomBlock:
Type: MUSHROOM_BLOCK
Id: 30
Texture: block/exampletexture
CustomBlockSkills:
- sound{s=block.amethyst_block.place} @self ~onBlockPlace
- sound{s=block.amethyst_block.break} @self ~onBlockBreak
This tripwire block will use the model generated from the item's Generation
field
TestTripwire:
Id: PAPER
Model: 5
Display: 'Tripwire plant'
Generation:
Model: block/tripwire_plant
Type: BLOCK
CustomBlock:
Type: TRIPWIRE
Id: 0
WorldEdit Support
You can place custom blocks using worldedit via the following syntax:
//set mythic:ItemName
If you have a custom namespace replace mythic
by your namespace:
//set mynamespace:ItemName