Overview#
Quadrum is the definitive tool for modpack creators who need to add unique content to their packs without the overhead of writing a full Minecraft mod. By utilizing a simplified JSON-based system, Quadrum enables the creation of custom blocks and items with a wide array of physical and visual properties. Whether you need a simple crafting ingredient, a new decorative block, or a functional food item, Quadrum provides the framework to register these objects directly into the Minecraft engine.

The mod acts as a bridge between data files and the game's registry, handling the complex tasks of block registration, item initialization, and creative tab placement. To function correctly, Quadrum typically requires a resource-loading utility (such as ResourceLoader) to handle the custom textures and models associated with the new content.
Getting Started#
To begin adding content with Quadrum, you must first run the game once with the mod installed. This will generate the necessary directory structure within your Minecraft instance.
Directory Structure
All configuration files are stored in the config/Quadrum folder. Inside this folder, you will find two primary subdirectories:
- blocks/: Place JSON files here to define custom blocks.
- items/: Place JSON files here to define custom items.
Each JSON file represents a single block or item. The name of the file (excluding the .json extension) will be used as the internal registry name for that object.
Block Configuration#
Blocks in Quadrum are defined by their physical behavior, visual appearance, and interaction with the world. Below is a comprehensive list of properties available for block definitions.
Core Block Properties
| Property | Data Type | Description | Default |
|---|---|---|---|
name |
String | The display name of the block in-game. | Filename |
material |
String | The material type (affects sounds and map color). | rock |
hardness |
Number | How long it takes to mine the block (-1 for unbreakable). | 1.5 |
resistance |
Number | The block's resistance to explosions. | 10.0 |
lightLevel |
Number | The amount of light emitted (0.0 to 1.0). | 0.0 |
transparent |
Boolean | Whether the block allows light to pass through. | false |
fullCube |
Boolean | Whether the block occupies a full 1x1x1 space. | true |
drops |
List | A list of ItemStacks dropped when broken. | Self |
Physical Traits
- Harvest Level: Defines what tool and tier are required to mine the block. Use the
tool(e.g., "pickaxe", "axe") andlevel(0=Wood, 1=Stone, 2=Iron, 3=Diamond) keys. - Bounding Box: Customizes the collision and selection boxes of the block using a Vector format.
- Redstone: Allows the block to emit a redstone signal. Properties include
power(0-15).
Visual Traits
- Particles: Defines custom particles emitted by the block. Requires
typeandcount. - Visual: Controls advanced rendering options like the block's render layer (Solid, Cutout, Translucent).

Item Configuration#
Items are generally simpler than blocks but can be extended with traits to provide functionality like food or specialized crafting components.
Core Item Properties
| Property | Data Type | Description | Default |
|---|---|---|---|
name |
String | The display name of the item. | Filename |
maxStackSize |
Number | Maximum number of items in a single stack. | 64 |
lore |
List | A list of strings displayed as tooltips. | None |
oreDictionary |
List | A list of strings for Ore Dictionary registration. | None |
Item Traits
- Consumable: Turns the item into a food or drink source.
amount: Hunger points restored.saturation: Saturation modifier.alwaysEdible: If true, can be eaten even when the hunger bar is full.returnItem: An ItemStack returned to the player after consumption (e.g., an empty glass bottle).
- Visual: Allows for a permanent enchantment glint effect by setting
glinttotrue.
Traits and Data Types#
Quadrum uses specific data structures to ensure consistency across JSON files. Understanding these types is essential for advanced configuration.
Data Types
ItemStack
Used for drops and return items. It consists of:
item: The registry name (e.g.,minecraft:iron_ingot).damage: The metadata or durability value (default0).count: The number of items in the stack (default1).
Vector
Used for bounding boxes and particle offsets. It consists of three numbers: x, y, and z.
Common Traits
- Lore: Adds descriptive text to the item or block tooltip. Supports multiple lines.
- Ore Dictionary: Essential for mod compatibility. Registering a block as
oreCopperallows it to be used in any recipe requiring copper ore from other mods.
Resource Handling#
Quadrum does not include a built-in texture editor. Instead, it looks for textures and models in the standard Minecraft asset path under the quadrum namespace.
Texture Paths
To apply textures to your custom objects, place your .png files in a resource pack (or use ResourceLoader) at the following locations:
- Blocks:
assets/quadrum/textures/blocks/<filename>.png - Items:
assets/quadrum/textures/items/<filename>.png
Model Handling
By default, Quadrum generates a standard cube model for blocks and a flat 2D model for items. If you wish to use custom 3D models, you can provide your own JSON model files in assets/quadrum/models/block or assets/quadrum/models/item. The mod will automatically link the registry name to the corresponding model file.
Mechanics and Recipes#
Quadrum focuses exclusively on the definition of blocks and items. It does not include a built-in recipe maker. To add recipes for your custom Quadrum objects, it is recommended to use a companion mod such as CraftTweaker.
Integration Example
If you create a block named ruby_block.json in Quadrum, you can add a recipe for it in a CraftTweaker script using its registry name:
recipes.addShaped(<quadrum:ruby_block>, [[<minecraft:ruby>, <minecraft:ruby>], [<minecraft:ruby>, <minecraft:ruby>]]);