Accessories — Stamina Ring (Demo Add-on)
A demo add-on for Accessories showing how to add a new accessory from a separate asset pack — no Java required.
What It Adds
- Stamina Ring — an iron ring granting +5 Stamina (Additive)
- Crafted at the Accessory Bench under the Rings category
Purpose
This pack is a developer reference demonstrating the minimal asset structure needed to extend FineCraft Accessories. It is intentionally simple:
- No custom model or texture (reuses the Iron Ring visuals as placeholder)
- No Java code — the accessories plugin auto-detects any item starting with
Accessory_Ring_
Requirements
- FineCraft Accessories must be installed
⚠️ First-Launch Note
On the very first server launch with both mods installed, the Stamina Ring item may not load correctly. Simply restart the server once — this only happens on the initial install. FineCraft Accessories exports its shared interaction assets to the save folder during startup; those assets are available from the second launch onward.
How to Create Your Own Accessory Pack
To add your own ring (or belt, necklace, earring) from a separate asset pack:
1. Declare the dependency in manifest.json
{
"Dependencies": {
"Adkyn:FineCraft-Accessories": "*"
},
"IncludesAssetPack": false
}
2. Create the item JSON
Place it in Server/Item/Items/Accessories/Ring/Accessory_Ring_<YourName>.json.
The item ID prefix determines the slot automatically — no registration needed:
| Prefix | Slots |
|---|---|
Accessory_Ring_ |
Ring 1 / Ring 2 |
Accessory_Earring_ |
Earring 1 / Earring 2 |
Accessory_Necklace_ |
Necklace |
Accessory_Belt_ |
Belt |
Minimal item JSON:
{
"TranslationProperties": {
"Name": "mypack.items.Accessory_Ring_MyName.name",
"Description": "mypack.items.Accessory_Ring_MyName.description"
},
"PlayerAnimationsId": "Item",
"Quality": "Uncommon",
"ItemLevel": 4,
"Categories": ["Items.Accessories"],
"Icon": "Icons/ItemsGenerated/Accessory_Ring_Iron.png",
"Model": "Items/Accessories/Ring/Accessory_Ring.blockymodel",
"Texture": "Items/Accessories/Ring/Texture/Accessory_Ring_Iron.png",
"Recipe": {
"Input": [
{ "ItemId": "Ingredient_Bar_Iron", "Quantity": 2 },
{ "ItemId": "Ingredient_Life_Essence", "Quantity": 5 }
],
"BenchRequirement": [{
"Id": "Accessories_Bench",
"Type": "Crafting",
"Categories": ["Accessories_Rings"],
"RequiredTierLevel": 0
}],
"KnowledgeRequired": false,
"TimeSeconds": 1
},
"AccessoryProperties": {
"Slot": "Ring",
"StatModifiers": {
"Stamina": [{ "Amount": 5, "CalculationType": "Additive" }]
}
},
"Tags": {
"Type": ["Accessory", "Ring"],
"CharAccessory": ["Ring"]
},
"Interactions": {
"Primary": "Root_CA_Equip_Accessory_Primary",
"Secondary": "Root_CA_Equip_Accessory_Secondary"
},
"InteractionConfig": { "AllEntities": true },
"MaxDurability": 100,
"DurabilityLossOnHit": 0.5,
"MaxStack": 1,
"Scale": 0.5
}
AccessoryProperties supports:
StatModifiers— stat bonuses (Health,Stamina,Mana, …)DamageResistance— damage reduction (Physical,Projectile, …)Effects— effect IDs applied on equip, removed on unequip
3. Add translations
Create Server/Languages/en-US/<mypack>.lang:
items.Accessory_Ring_MyName.name = My Ring Name
items.Accessory_Ring_MyName.description = Description of what it does.
4. Build as a zip (assets-only)
Use plugins { base } in build.gradle.kts and produce a Zip task — no java plugin, no Main class needed.

