Custom Item Groups¶
Custom item groups (creative tabs) allow you to organize your mod’s items and blocks into dedicated creative inventory tabs. This provides better organization and makes it easier for players to find your mod’s content.
Understanding Item Groups¶
Item groups are the tabs shown in the creative inventory:
Each tab has an icon (usually an item from that category)
Players can click tabs to browse different categories
Vanilla has tabs like “Building Blocks”, “Tools”, “Combat”, etc.
Custom tabs appear alongside vanilla tabs
Basic Custom Item Group Creation¶
Simple Custom Tab¶
import fabricpy
# Create a custom creative tab
my_weapons = fabricpy.ItemGroup(
id="my_weapons"
name="My Weapons"
)
# Set an icon for the tab
my_weapons.set_icon(MySwordItem) # Use your sword item class as icon
Required Parameters¶
id: Unique identifier for the item group (format:
"group_name")name: Display name shown to players in the creative inventory
Optional Methods¶
set_icon(item_class): Set the item displayed as the tab icon
Advanced Custom Item Group Examples¶
Food-Themed Tab¶
# Create a food-themed tab
custom_foods = fabricpy.ItemGroup(
id="custom_foods"
name="Custom Foods"
)
# Create a signature food item to use as icon
golden_apple = fabricpy.FoodItem(
id="mymod:golden_apple"
name="Golden Apple"
nutrition=6
saturation=12.0
item_group=custom_foods # Assign to custom tab
)
# Set the food item as the tab icon
custom_foods.set_icon(golden_apple)
Magic-Themed Tab¶
# Create a magic items tab
magic_items = fabricpy.ItemGroup(
id="magic_items",
name="Magic Items"
)
# Create magical items for this tab
magic_wand = fabricpy.Item(
id="mymod:magic_wand"
name="Magic Wand"
item_group=magic_items
max_stack_size=1
)
# Use the wand as the tab icon
magic_items.set_icon(magic_wand)
Tech/Machinery Tab¶
# Create a technology tab
tech_items = fabricpy.ItemGroup(
id="tech_items"
name="Technology"
)
# Create tech items
circuit_board = fabricpy.Item(
id="mymod:circuit_board"
name="Circuit Board",
item_group=tech_items
)
robot = fabricpy.Item(
id="mymod:robot"
name="Robot"
item_group=tech_items
max_stack_size=1
)
# Use the robot as icon
tech_items.set_icon(robot)
Using Custom Item Groups¶
Assigning Items to Custom Tabs¶
# Create the custom tab
gems_tab = fabricpy.ItemGroup(
id="precious_gems"
name="Precious Gems"
)
# Create items assigned to the custom tab
gems = [
fabricpy.Item(
id="mymod:ruby"
name="Ruby"
item_group=gems_tab # Assign to custom tab
)
fabricpy.Item(
id="mymod:sapphire",
name="Sapphire"
item_group=gems_tab
)
fabricpy.Item(
id="mymod:emerald_shard"
name="Emerald Shard",
item_group=gems_tab
)
]
# Set ruby as the tab icon
gems_tab.set_icon(gems[0]) # Use first gem as icon
Mixed Content Tab¶
# Tab for various mod content
mod_content = fabricpy.ItemGroup(
id="my_mod_items"
name="My Mod"
)
# Mix of different item types
items = [
fabricpy.Item(
id="mymod:special_tool"
name="Special Tool"
item_group=mod_content
)
fabricpy.FoodItem(
id="mymod:magic_bread"
name="Magic Bread"
nutrition=5
saturation=6.0
item_group=mod_content
)
fabricpy.Block(
id="mymod:custom_block"
name="Custom Block"
item_group=mod_content # BlockItems use this too
)
]
# Use the tool as icon
mod_content.set_icon(items[0])
Complete Custom Item Group Example¶
Here’s a complete mod with multiple custom item groups:
import fabricpy
# Create mod
mod = fabricpy.ModConfig(
mod_id="fantasy_mod"
name="Fantasy Mod"
version="1.0.0"
description="Adds fantasy elements to Minecraft"
authors=["Fantasy Creator"]
)
# Create custom item groups
weapons_tab = fabricpy.ItemGroup(
id="fantasy_weapons"
name="Fantasy Weapons"
)
magic_tab = fabricpy.ItemGroup(
id="magic_items",
name="Magic & Potions"
)
materials_tab = fabricpy.ItemGroup(
id="fantasy_materials"
name="Fantasy Materials"
)
# Create weapons for weapons tab
weapons = [
fabricpy.Item(
id="fantasy_mod:crystal_sword"
name="Crystal Sword"
item_group=weapons_tab
max_stack_size=1
)
fabricpy.Item(
id="fantasy_mod:magic_bow"
name="Magic Bow"
item_group=weapons_tab
max_stack_size=1
)
fabricpy.Item(
id="fantasy_mod:flame_dagger"
name="Flame Dagger",
item_group=weapons_tab
max_stack_size=1
)
]
# Create magic items for magic tab
magic_items = [
fabricpy.Item(
id="fantasy_mod:spell_book"
name="Spell Book"
item_group=magic_tab
max_stack_size=1
)
fabricpy.FoodItem(
id="fantasy_mod:mana_potion"
name="Mana Potion"
nutrition=0
saturation=0
always_edible=True
item_group=magic_tab
max_stack_size=16
)
fabricpy.Item(
id="fantasy_mod:crystal_orb"
name="Crystal Orb"
item_group=magic_tab
max_stack_size=8
)
]
# Create materials for materials tab
materials = [
fabricpy.Item(
id="fantasy_mod:mythril_ingot"
name="Mythril Ingot"
item_group=materials_tab
)
fabricpy.Item(
id="fantasy_mod:dragon_scale"
name="Dragon Scale"
item_group=materials_tab
max_stack_size=32
)
fabricpy.Item(
id="fantasy_mod:phoenix_feather"
name="Phoenix Feather"
item_group=materials_tab
max_stack_size=16
)
]
# Set tab icons
weapons_tab.set_icon(weapons[0]) # Crystal sword
magic_tab.set_icon(magic_items[0]) # Spell book
materials_tab.set_icon(materials[0]) # Mythril ingot
# Register all items
for item in weapons + magic_items + materials:
mod.registerItem(item)
# Compile and run
mod.compile()
mod.run()
Item Group Organization Strategies¶
By Function¶
# Organize by what items do
function_groups = {
"tools": fabricpy.ItemGroup(id="mod_tools", name="Mod Tools")
"weapons": fabricpy.ItemGroup(id="mod_weapons", name="Mod Weapons"),
"armor": fabricpy.ItemGroup(id="mod_armor", name="Mod Armor")
"consumables": fabricpy.ItemGroup(id="mod_consumables", name="Consumables")
}
By Material¶
# Organize by material type
material_groups = {
"copper": fabricpy.ItemGroup(id="copper_items", name="Copper Items")
"steel": fabricpy.ItemGroup(id="steel_items", name="Steel Items")
"crystal": fabricpy.ItemGroup(id="crystal_items", name="Crystal Items")
}
By Theme¶
# Organize by theme/aesthetic
theme_groups = {
"medieval": fabricpy.ItemGroup(id="medieval_items", name="Medieval")
"futuristic": fabricpy.ItemGroup(id="future_items", name="Futuristic")
"magical": fabricpy.ItemGroup(id="magic_items", name="Magical")
}
Best Practices for Custom Item Groups¶
Logical Organization
Group related items together
Don’t create too many small tabs
Aim for 8-20 items per tab for good balance
Clear Naming
Use descriptive tab names: “Magic Tools” vs “Misc”
Keep names concise but informative
Consider your target audience
Appropriate Icons
Choose representative items as icons
Use the most iconic/recognizable item from the group
Prefer items with distinctive textures
Tab Count Limits
Don’t create too many custom tabs (3-6 max recommended)
Consider using vanilla tabs for common items
Only create custom tabs when you have enough content
Consistency
Use consistent naming patterns: “Mod Tools”, “Mod Weapons”
Maintain similar organization across related mods
Follow conventions established by popular mods
Common Patterns¶
Single Mod Tab¶
# Single tab for all mod content
mod_tab = fabricpy.ItemGroup(
id="mymod_items"
name="My Mod"
)
# Use your most iconic item as icon
Category-Based Tabs¶
# Multiple tabs by category
tools_tab = fabricpy.ItemGroup(id="mymod_tools", name="Mod Tools")
blocks_tab = fabricpy.ItemGroup(id="mymod_blocks", name="Mod Blocks")
food_tab = fabricpy.ItemGroup(id="mymod_food", name="Mod Food")
Material Progression Tabs¶
# Tabs representing material tiers
bronze_tab = fabricpy.ItemGroup(id="bronze_age", name="Bronze Age")
steel_tab = fabricpy.ItemGroup(id="steel_age", name="Steel Age")
mythril_tab = fabricpy.ItemGroup(id="mythril_age", name="Mythril Age")
Common Issues¶
Tab not appearing: Ensure ItemGroup is assigned to at least one item
Wrong icon: Check that icon item is properly created and registered
Tab order: Custom tabs appear after vanilla tabs (cannot be reordered)
Empty tabs: Tabs with no items won’t appear in creative mode
Integration with Vanilla¶
When to Use Custom vs Vanilla Tabs:
Use Vanilla Tabs When: * Your items fit naturally into existing categories * You have few items of a particular type * You want seamless integration with vanilla
Use Custom Tabs When: * You have many themed items * Your content deserves its own category * You want prominent mod branding * Items don’t fit well in vanilla categories
Next Steps¶
Learn about Vanilla Item Groups for using existing creative tabs
Explore Creating Items to populate your custom tabs
See Creating Blocks for adding blocks to custom tabs