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 53
    • Issues 53
    • 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

Custom Blocks · Changes

Page history
updated layout and informations authored Sep 07, 2024 by Lxlp's avatar Lxlp
Hide whitespace changes
Inline Side-by-side
Showing with 76 additions and 24 deletions
+76 -24
  • Custom-Blocks.md Custom-Blocks.md +76 -24
  • No files found.
Custom-Blocks.md
View page @ 1fad35d2
......@@ -2,6 +2,10 @@ Crucible allows people to create "custom blocks" using the extra block states fr
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).
[[_TOC_]]
## 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.
```yaml
......@@ -11,18 +15,23 @@ block-updates:
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
### Base Options
- `Type` - The type of custom block, defaults to mushroom (MUSHROOM_BLOCK, NOTE_BLOCK, TRIPWIRE, CHORUS)
- `Id` - The ID of the custom block.
- `Texture` - The path of the texture the block will use, or none if block is non solid
- `Textures` - Optional: Texture key and path the block will use (Needed if you want to assign different texture per face)
- `Parent` - Optional: Parent model that the block should use (Useful when having different textures per face)
- `Variants` - Optional: Gives the ability to have variant of the block (having different rotations)
| 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 | |
```yaml
CustomBlock:
......@@ -31,26 +40,38 @@ MUSHROOM_BLOCK and NOTE_BLOCK are considered as "solid" blocks, these blocks nee
Texture: block/stars1
```
## Putting in Resource Pack
Please refer to the [Resourcepack Generator](ResourcePack-Generator) wiki page for info.
### 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 |
## Examples
```yaml
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
### 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
```json
{
"parent": "block/cube",
"textures": {
"particle": "#side",
"down": "#side",
"up": "#top",
"north": "#side",
"east": "#side",
"south": "#side",
"west": "#side"
}
}
```
This block will have a different texture on top
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
```yaml
TestBlock:
Id: STONE
......@@ -65,6 +86,16 @@ TestBlock:
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
```yaml
......@@ -87,6 +118,27 @@ TestBlock:
weigth: 3
```
## Putting in Resource Pack
Please refer to the [Resourcepack Generator](ResourcePack-Generator) wiki page for info.
## Examples
```yaml
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
```yaml
TestTripwire:
......
Clone repository
Home
Changelogs
Commands / Permissions
FAQ / Common Issues
Guides
Usage
  • Installation
  • Item Options
  • Item Skills
  • Item Durability
  • Crafting Recipes
    • Workbenches
  • Item Updater
  • Ammo System / Guns
  • Dynamic Lore Generation
  • ResourcePack Generator
  • World Generation
Item Types
  • Blocks
  • Furniture
    • Paint Brush
  • Bags
  • Hats
Mechanics
  • Item Mechanics
  • Item Targeters
  • Item Triggers
  • Item Conditions
Placeholders
  • Placeholders