Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
MythicCrucible MythicCrucible
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 51
    • Issues 51
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • MythicCraft
  • MythicCrucibleMythicCrucible
  • Wiki
  • Custom Blocks

Last edited by Lxlp Mar 21, 2025
Page history

Custom Blocks

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 Block Options
    • Type Option
    • Textures Option
    • Variants Option
  • Putting in Resource Pack
  • Examples
  • WorldEdit Support

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
Hardness Works exactly like vanilla hardness, with base breaking speed equal to hardness * 1.5 seconds
Tools A list of tools that function on this block, and a speed multiplier for the tool. These tools will also benefit from efficiency, haste, etc when used on the block. Can be a Mythic item
RequireToolForDrops Whether the block requires a configured tool for it to drop anything. Defaults to true if any tools are defined
  Type: BLOCK
  CustomBlock:
    Type: MUSHROOM_BLOCK
    Id: 18
    Texture: block/stars1
ACustomBlock:
  Id: BROWN_MUSHROOM_BLOCK
  Model: 18
  Display: 'a custom block'
  Type: BLOCK
  CustomBlock:
    Type: MUSHROOM_BLOCK
    Id: 18
    Texture: block/a_special_block
    Hardness: 5
    Tools:
    - WOODEN_PICKAXE 2
    - STONE_PICKAXE 4
    - IRON_PICKAXE 6
    - GOLDEN_PICKAXE 12
    - DIAMOND_PICKAXE 8
    - NETHERITE_PICKAXE 9
    - CustomMythicPickaxe 18

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
Clone repository
Home
Changelogs
Commands / Permissions
API
FAQ / Common Issues
Guides

Usage
  • Installation
  • Items
    • Item Options
    • Item Skills
    • Item Durability
  • Augments
  • Item Sets
  • Crafting Recipes
    • Workbenches
  • Item Updater
  • Ammo System / Guns
  • Dynamic Lore Generation
  • World Generation
  • Loot Generation

ResourcePack Generator

Item Types
  • Blocks
  • Furniture
    • Paint Brush
  • Bags
  • Hats
  • Augments

Mechanics
  • Mechanics
  • Targeters
  • Triggers
  • Conditions

Placeholders
  • Placeholders