RarityStyle Configuration Guide (V14)
Since V14, the old client.json and RarityClientConfig.json are consolidated into a single file:
config/raritycore/RarityStyle.jsonThis file manages all rarity visual appearance — colors, borders, tooltips, stars, item name colors, and the fallback behavior for items without a configured rarity.
File Structure Overview
{
"enableBorder": true,
"enableTooltip": true,
"tooltipColorEnabled": true,
"defaults": {
"color": "inherit",
"border": {
"useTexture": true,
"defaultTexture": "raritycore:textures/border/rarity_{level}.png",
"style": 1,
"show": true,
"fallback": "inherit"
},
"tooltip": {
"show": true,
"content": "[@{level}]-@{star}]",
"colored": true,
"level": {
"colored": true,
"translationKey": "$(rarity.core.{level})",
"fallback": "{level}$(rarity.core.special.rarity.prefix)"
},
"star": {
"colored": true,
"mode": "repeat",
"repeatChar": "★",
"custom": ""
}
},
"itemNameColor": true,
"noRarity": {
"skip": false,
"defaultRarity": 1
}
},
"rarities": {
"1": { "color": "#CCCCCC" },
"2": { "color": "#55FF55" },
"3": { "color": "#55FFFF" },
"4": { "color": "#FF55FF" },
"5": { "color": "#FFCC00" },
"6": { "color": "#FF6666" },
"7": { "color": "#FF3333" }
}
}Global Master Switches
| Field | Type | Default | Description |
|---|---|---|---|
enableBorder | Boolean | true | Enable item border rendering (old enableItemBorderRendering) |
enableTooltip | Boolean | true | Insert rarity info into tooltips (old enableTooltipInsert) |
tooltipColorEnabled | Boolean | true | Master switch for tooltip text coloring (old enableTooltipColor); combined with the colored field via AND |
Other old
client.jsonswitches (itemBorderStyle,useTextureBorder,enableItemNameColor,skipUnconfiguredItems,starDisplay, etc.) are moved underdefaults. At startupclient.jsonretains onlyenableCacheSystemandenableIronSpellsAdapter(1.21.1 additionally retainsenableSophisticatedCoreAdapter).
enableIronSpellsAdapter(Boolean, defaulttrue): toggle for the Iron's Spells 'n Spellbooks rarity integration. When enabled, spell scrolls/spell books are dynamically mapped to rarities based on the spell level in theirirons_spellbooks:spell_container; when disabled, the adapter is disabled entirely and spell scrolls are no longer mapped by spell level, while the static item mapping for Iron's Spells items (fixed config in datapacks) is unaffected and still works. This switch is only available in 1.20.1 / 1.21.1.
defaults: default values and inheritance root
color
- Type: string, default
"inherit" "inherit": walk down to lower levels to find the first explicit#RRGGBB; if none, fall back to the built-in per-level default color.#RRGGBB: directly specifies the color for that level.
border
| Field | Type | Default | Description |
|---|---|---|---|
useTexture | Boolean | true | Use texture border (old useTextureBorder) |
defaultTexture | String | raritycore:textures/border/rarity_{level}.png | Texture path; {level} replaced by the level number (old rarity_1.png convention) |
style | Integer | 1 | 1=solid fill, 0=hollow (old itemBorderStyle) |
show | Boolean | true | Whether to show the border (old renderer master switch) |
fallback | String | "inherit" | Border texture fallback strategy for levels that have no texture explicitly configured (typically level 8 and above) |
border.fallback values:
"inherit": levels without an explicitly configured texture reuse the highest configured tier (level 7 by default) texture.- Any other path string: used as a uniform texture for levels without an explicitly configured texture; supports
{level}placeholder, e.g."raritycore:textures/border/rarity_special.png".
tooltip
| Field | Type | Default | Description |
|---|---|---|---|
show | Boolean | true | Whether to show the tooltip (old tooltips master switch) |
content | String | [@{level}]-@{star}] | Template; placeholders below |
colored | Boolean | true | Whether to color the entire tooltip line (including static separators like [, ], -) |
colored behavior:
- Enabled: the whole line uses the rarity color;
level/starsegments are not colored individually. - Disabled: falls back to per-segment coloring via
level.coloredandstar.colored.
tooltip.level
| Field | Type | Default | Description |
|---|---|---|---|
colored | Boolean | true | Whether the level name is individually colored (only when tooltip.colored is off) |
translationKey | String | $(rarity.core.{level}) | Source of the level name; $(...) is a translation key with {level} replaced by the number; a non-$(...) value is used as a literal |
fallback | String | {level}$(rarity.core.special.rarity.prefix) | Used when the translation key is missing; {level} replaced by the number |
tooltip.star
| Field | Type | Default | Description |
|---|---|---|---|
colored | Boolean | true | Whether stars are individually colored (only when tooltip.colored is off) |
mode | String | repeat | repeat=repeating character; custom=custom string |
repeatChar | String | ★ | Character repeated in repeat mode; repeat count = rarity level |
custom | String | "" | Custom string for custom mode (not level-dynamic) |
itemNameColor
- Type: Boolean, default
true - Whether to recolor the item name by rarity (old
enableItemNameColor/nameColor).
noRarity
| Field | Type | Default | Description |
|---|---|---|---|
skip | Boolean | false | Skip items without a configured rarity (old skipUnconfiguredItems) |
defaultRarity | Integer | 1 | Default rarity level when not skipping; then runs through normal inheritance |
rarities: per-level overrides
Under rarities, keys "1"~"7" (and higher numeric keys) override any defaults field; missing fields inherit from defaults.
"rarities": {
"1": { "color": "#CCCCCC" },
"8": {
"color": "#FF00FF",
"border": { "defaultTexture": "raritycore:textures/border/rarity_8.png" }
}
}Placeholders and String Resolution
@{level}: resolved to the rarity level name (fromtooltip.level.translationKey+fallback, not the number).@{star}: resolved to the rarity star string (fromtooltip.star).$(key): embedded translation key, resolved to the text in the language file.$(key)as a whole string (translationKey/fallbacketc.): treated as a translation key; on miss, usesfallback.
Inheritance Rules
When a field is missing at a level (or color is "inherit"), walk down to lower levels to find the first explicit value; if none, use the corresponding defaults default. When color inheritance reaches the bottom with no explicit value, fall back to the built-in per-level default color. Applies to: color, border.*, tooltip.show, tooltip.content, tooltip.colored, tooltip.level.*, tooltip.star.*, itemNameColor.
Translation Keys and Language Files
New numeric keys (both en_us and zh_cn):
rarity.core.1 = Common / 普通
rarity.core.2 = Uncommon / 稀有
rarity.core.3 = Rare / 罕见
rarity.core.4 = Epic / 史诗
rarity.core.5 = Legendary/ 传说
rarity.core.6 = Mythical / 神话
rarity.core.7 = Unique / 唯一rarity.core.special.rarity.prefix is retained. The old named keys (rarity.core.common etc.) are removed.
How to Apply
/raritycore-client reloadThis command reloads RarityStyle.json and refreshes the cache. If the file is missing, a default config is generated at startup; if corrupted, delete it and reload to regenerate.
Texture Borders
If texture borders are enabled (border.useTexture=true), prepare 16x16 PNGs in a resource pack:
- Path:
assets/raritycore/textures/border/ - Naming: default
rarity_1.png~rarity_7.png(determined by{level}indefaultTexture); levels without an explicitly configured texture (level 8 and above) follow the path specified byborder.fallback(or reuse level 7).