Add a rule
Format
A custom rule file rules.txt has the following format.
@[my rule name]
[@|::][rule name]([param] = [arg], [param] = [arg], [...])
[@|::][rule name]([param] = [arg], [param] = [arg], [...])
[...]
A rule file can define multiple rules.
For example, the default rule
@default
@creative_menu_order
@creative_menu_order
::custom_name
::creative_menu_group_index
::raw_id
@default_nbt_rule
@default_nbt_rule
::enchantments_score
::damage
::display_name
::potion_effect
::nbt_comparator
You can create multiple rule files: rules.txt, rules.1.txt, rules.2.txt, rules.myname.txt, rules.*.txt etc. They all should located in .minecraft/config/inventoryprofiles folder.
Rule Format Explain
All rules prefixed with @/::. - @ custom rule - :: native rule
@[my rule name]
[@|::][rule name]([param] = [arg], [param] = [arg], [...])
[@|::][rule name]([param] = [arg], [param] = [arg], [...])
[...]
- First line defines rule name (always start with
@) - Second line and after define content (4 space indented)
- Each line defines a sub rule
()optional arguments
Native rule list: see List of Native Rule & Parameter
Example
A custom rule named hello - apple first - diamond_sword with durability low to high - rest by display name, then durability from high to low
@hello
apple
diamond_sword(sub_rule_match = ::durability)
::display_name
!::durability
Before

After

Wildcards
As of version 1.4.0 we support wildcards when it comes to item names so stone* will match every item that starts with stone
Example
Suppose we want to have all shulker boxes first. The example below: - defines all_boxes rule that will match everything that ends on shulker_box - defines our new main rule MyDefault that instructs that all items matching all_boxes will be put first and the rest shell be sorted as the default for the mod.
@MyDefault
@all_boxes
@default
@all_boxes
*shulker_box
Wildcards considerations
- All wildcards are expanded before the rules file is parsed.
The above example expanded
@all_boxes
minecraft:black_shulker_box
minecraft:blue_shulker_box
minecraft:brown_shulker_box
minecraft:cyan_shulker_box
minecraft:gray_shulker_box
minecraft:green_shulker_box
minecraft:light_blue_shulker_box
minecraft:light_gray_shulker_box
minecraft:lime_shulker_box
minecraft:magenta_shulker_box
minecraft:orange_shulker_box
minecraft:pink_shulker_box
minecraft:purple_shulker_box
minecraft:red_shulker_box
minecraft:shulker_box
minecraft:white_shulker_box
minecraft:yellow_shulker_box
Yes for IDs without namespace minecraft is assumed. If you need to specify modded items use the mod namespace.
- The expansion is always done in alphabetical order.
- you can negate a wildcard with
!for example!*shulker_box
Rule Override
You can override the default rule and any custom rule (multiple declaration for same rule name) - Rules in the same file - later rule override earlier rule - Rules in different files - sorted by file name (rules.zzz.txt override rules.aaa.txt)
If the overridden custom rule failed to parse, it will find the earlier rule that is valid.
Internal default rules
// Default rules file
@default
@creative_menu_order
@creative_menu_order
::custom_name
::creative_menu_group_index
::raw_id
@default_nbt_rule
@item_name
::display_name
@default_nbt_rule
@item_id
::item_id
@default_nbt_rule
@raw_id
::raw_id
@default_nbt_rule
@default_nbt_rule
::enchantments_score
::damage
::display_name
::potion_effect
::nbt_comparator
@auto_refill_best
@default_nbt_rule