CustomThings Mod — Reference
Custom Blocks
Blocks are defined by creating a .json file in the config/CustomThings/blocks/ folder. Each file represents one block.
Block Properties
| Property | Description | Default Value |
|---|---|---|
name |
The internal unlocalized name of the block. | Required |
textureName |
The name of the texture file (without.png). | Required |
material |
The material type (determines sounds and tools). | rock |
stepSound |
The sound made when walking on the block. | stone |
creativeTab |
The ID of the creative tab to place the block in. | buildingBlocks |
hardness |
How long it takes to mine the block. | 1.5 |
resistance |
The block's resistance to explosions. | 10.0 |
lightLevel |
The amount of light emitted (0.0 to 1.0). | 0.0 |
harvestLevel |
The tool tier required (0=Wood, 3=Obsidian). | 0 |
harvestTool |
The tool type required (pickaxe, axe, shovel). |
pickaxe |
opaque |
Whether the block blocks light and vision. | true |
Valid Materials and Sounds
- Materials:
rock,iron,wood,glass,cloth,sand,grass,ground,water,lava,leaves,plants,vine,sponge,circuits,carpet,snow,craftedSnow,ice,packedIce,cactus,clay,gourd,dragonEgg,portal,cake,web. - Step Sounds:
stone,wood,grass,gravel,cloth,sand,snow,ladder,anvil,metal,slime.
Example Block JSON
{
"name": "ruby_ore",
"textureName": "ruby_ore",
"material": "rock",
"hardness": 3.0,
"resistance": 15.0,
"harvestLevel": 2,
"harvestTool": "pickaxe",
"creativeTab": "materials"
}
Custom Items
Items are defined in the config/CustomThings/items/ folder. These can be simple crafting ingredients or complex tools.
Item Properties
| Property | Description | Default Value |
|---|---|---|
name |
The internal unlocalized name of the item. | Required |
textureName |
The name of the texture file. | Required |
creativeTab |
The creative tab ID. | materials |
maxStackSize |
Maximum number of items per stack. | 64 |
lore |
An array of strings for the item's tooltip. | [] |
full3D |
Whether the item renders in 3D when held. | false |
effect |
Adds an enchantment glow (glint). | false |
Example Item JSON
{
"name": "ruby_gem",
"textureName": "ruby",
"maxStackSize": 64,
"lore": [
"A rare and precious gem.",
"Used for high-tier crafting."
],
"creativeTab": "materials"
}
Recipes
Recipes allow you to integrate your custom items and blocks into the game's progression. Place these in config/CustomThings/recipes/.
Shaped Recipes
Shaped recipes require items to be placed in a specific grid pattern.
{
"type": "shaped",
"output": "customthings:ruby_block",
"amount": 1,
"input": [
"RRR",
"RRR",
"RRR"
],
"ingredients": {
"R": "customthings:ruby_gem"
}
}
Shapeless Recipes
Shapeless recipes only require the ingredients to be present anywhere in the grid.
{
"type": "shapeless",
"output": "customthings:ruby_gem",
"amount": 9,
"ingredients": [
"customthings:ruby_block"
]
}
Smelting Recipes
Smelting recipes define an input for the furnace and the resulting output.
{
"type": "smelting",
"input": "customthings:ruby_ore",
"output": "customthings:ruby_gem",
"xp": 1.0
}