⛏️Making Custom Blocks
Custom Block Definitions determine the properties of a block, including its custom model data.
Creating Custom Blocks
Custom block definitions go into plugins/Origami/custom/MY-CONTENT-PACK-NAME/blocks
If this directory is empty, then Origami will generate an example file for you. Below is a working example of a custom block, rainbow_block.yml
:
baseBlock: GLASS
displayName: '&cR&6a&ei&an&9b&bo&5w &6B&el&ao&9c&bk'
lore:
- <rainbow>It shimmers beautifully in the sunlight.</rainbow>
canBeMinedWith:
- pickaxes
timeToBreak: 40
toolLevelRequired: 2
drops:
- DIAMOND(1)
dropLootTable: null
canBePushed: true
isAffectedByFortune: true
placeSound: BLOCK_AMETHYST_BLOCK_PLACE
breakSound: BLOCK_AMETHYST_BLOCK_BREAK
model: rainbow
events:
- onRightClick: # <-- onRightClick is an event, see the events page for more info
commands:
# this is a list of Minecraft commands, executed as @s
- tellraw @s {"text":"The block reverberates majestically.","italic":true,"color":"gray"}
cooldown: 20 # <-- cooldown of 20 ticks (1 second)
(Material)
baseBlock
- determines what block goes beneath the custom model displayed via an item frame.GLASS
typically works the best, but usingSPAWNER
works too.(Integer)
dropExperience
is how much XP should be dropped when the block is mined. XP can only be gained from a block if using the correct tool.(Formatted string)
displayName
- can use either legacy formatting codes (§
or&
, but not both at once) or MiniMessage. You can also use a language string, and set the item's name in your resource pack's lang file instead - formatting included.(List of formatted strings)
lore
- lore to display on the custom item. Each entry uses the same formatting rules as thedisplayName
.(List of tools)
canBeMinedWith
- multiple "preferred tools" can be set here, with valid tool types being:pickaxes
,axes
,shovels
,hoes
, andswords
. A block can only be broken quickly or drop its items if one of the correct tools is used. Usually blocks in Minecraft only set one of these.(Integer)
toolLevelRequired
- specifies the minimum tool level allowed for mining the block. Wooden tools are level 1, Stone are level 2, etc.(List of Item Strings)
drops
- If both this anddropLootTable
arenull
, the block will drop itself. Can optionally be followed by a semicolon and then a 0-1 "chance" value which determines the chance that particular item has of dropping (otherwise the item will always drop)(Loot Table)
dropLootTable
- if both this anddrops
are null, the block will drop itself. You can use this to specify a loot table for the block to drop.
(Boolean)
canBePushed
- if true, the block can be moved by Pistons and Sticky Pistons.(Boolean)
isAffectedByFortune
- if true, the Fortune enchantment will apply a multiplier to the amount of each dropped item. Useful when creating ores.(Sound)
placeSound
/breakSound
- self explanatory
Model data
(String)
model
- the name of the custom model. A value ofrainbow
here would point to<server folder>/plugins/Origami/custom/MY-CONTENT-PACK-NAME/models/block/rainbow.json
Last updated