Origami Docs
  • 👋Origami Docs
  • 🎮Setup
  • ✍️Creating Custom Content
    • ⛏️Making Custom Blocks
    • 💎Making Custom Items
    • 🛠️Making Custom Crafting Recipes
      • 🧑‍🍳Crafting Recipe Types
  • 📣Events
  • ✨Item Strings
  • ⌨️In-game commands
Powered by GitBook
On this page
  • Creating Custom Blocks
  • Model data
  1. Creating Custom Content

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)
  • (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.

  • (List of formatted strings) lore - lore to display on the custom item. Each entry uses the same formatting rules as the displayName.

  • (List of tools) canBeMinedWith - multiple "preferred tools" can be set here, with valid tool types being: pickaxes, axes, shovels, hoes, and swords. 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.

If both drops and dropLootTable are set, the result will be the items from the loot table plus whatever drops you specified.

  • (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.

Model data

  • (String) model - the name of the custom model. A value of rainbow here would point to <server folder>/plugins/Origami/custom/MY-CONTENT-PACK-NAME/models/block/rainbow.json

PreviousCreating Custom ContentNextMaking Custom Items

Last updated 1 year ago

() baseBlock - determines what block goes beneath the custom model displayed via an item frame. GLASS typically works the best, but using SPAWNER works too.

(Formatted string) displayName - can use either legacy formatting codes (§ or &, but not both at once) or 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 ) drops - If both this and dropLootTable are null, 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)

() dropLootTable - if both this and drops are null, the block will drop itself. You can use this to specify a loot table for the block to drop.

() placeSound / breakSound - self explanatory

See for a guide on how models work.

Material
MiniMessage.
Item Strings
Loot Table
Sound
this page
✍️
⛏️
Page cover image