Accessories is a Data-Driven Accessory mod for NeoForge and Fabric with emphasis on using a Common API for both platforms when possible.
The style for the library's API is based on the works of Curios and Trinkets with credit going to both TheIllusiveC4 and emilyploszaj for their work on Accessory mods for Minecraft.

Features
Elytra, Totem, and Banner Support Included
By default, you can equip banners in your head or cape(WIP) slot to show off a custom banner. For elytra, or totem, you will need to enable such within the config as its disabled by default.
Compatibility Layer
Due to existing API's like Trinket and Curios being predominantly used, you can install the Accessories Compatibility Layer to have them work under Accessories for a unified experience
Model Translation API
Included for developers is a proper transformation API used within rendering native Accessories, allowing proper linkage to a given entity model parts, which enables proper support for EMF Resourcepacks like Fresh Animations, and there are future plans to support other rendering mods like Figura.
Managing Equipped Accessories
The ability to access other tamed entities allows other mods to have accessory items for pets or mounts. Combined with it being useful for server owners to manage other players' accessories if needed, without the use of direct management commands. Just hold shift and use the 'Accessories Open Screen' on any entity (If owned, must be the owner) to bring up the screen, or run the command /accessories edit <target> if OPed.
API Additions
Here are some examples of the API implemented in Accessories that may assist you with your mod development:
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 |
- Resolve issue with stack resize or mutation not causing an update on the client
- Fix issues with parsing slot paths from string for cases like namespaces containing a '-' or having inner slot indices
- Rename modid used for cosmetic slots to prevent its erasure as a slot path
- Resolve issue with stack resize or mutation not causing an update on the client
- Fix issues with parsing slot paths from string for cases like namespaces containing a '-' or having inner slot indices
- Rename modid used for cosmetic slots to prevent its erasure as a slot path
Fixes:
- Fix for first person cosmetic override not working
- Resolve issues with enchantments are applied twice
- Fix issues with rendering for entity at night in Accessories screen
- Fix for duplicate attribute tooltips when stackable
General Changes:
- Add ability to toggle Accessory Features like totem, banner, and glider from a new command
feature - Add proper support for new mannequins
API Changes:
- Adjust AccessoryNestUtils to be public and add proper documentation combined with overhaul to how the API functions
- Add TooltipFlag adjustments to check if the client is holding certain modifiers
- Adjust internals of EndecDataLoader to be more inline with hoiw registry access should be handled optionally
- Resolve version mismatch of endec libs leading to issues with launching the game in dev
Fixes:
- Fix for first person cosmetic override not working
- Resolve issues with enchantments are applied twice
- Fix issues with rendering for entity at night in Accessories screen
- Fix for duplicate attribute tooltips when stackable
General Changes:
- Add ability to toggle Accessory Features like totem, banner, and glider from a new command
feature - Add proper support for new mannequins
API Changes:
- Adjust AccessoryNestUtils to be public and add proper documentation combined with overhaul to how the API functions
- Add TooltipFlag adjustments to check if the client is holding certain modifiers
- Adjust internals of EndecDataLoader to be more inline with hoiw registry access should be handled optionally
- Resolve version mismatch of endec libs leading to issues with launching the game in dev
- Fix issues with missing matching for predicate on inventory
- Backport proper support for sodium
- Attempt to prevent crashing when trying to get enchantment ids for unregistered enchantments
- Fix issues with missing matching for predicate on inventory
- Backport proper support for sodium
- Attempt to prevent crashing when trying to get enchantment ids for unregistered enchantments
### Fixes:
- Extra Data for unique slots properties were not sync to the client leading to issues
### Changes:
- Adjust dump commands to give more useful information
- Add ability to set custom default values for accessory screen
- Add ability to open creative screen instead of accessories while in creative mode
### API:
- Accessory Renderers now have a dedicated
AccessoryRenderStateused to store info unpacked for the given stack used to render later and general state setup for the given equipped accessory to prevent collisions. - Renders now have central
shouldRendercheck used for checking if the given accessory should render in general. If you want to check for if something should render in first person, useAccessoriesRenderStateKeys.ARM - Remove deprecated methods for translations to specific model parts
- Remove unused z-index of screens using owolib
- Disable Data driven rendering functions ability to render using delegate renderer for the time being
- Adjust setup to run using
AccessoriesRenderStateKeys.setupStateForAccessoriesand only usecreateRenderStatefor setting up needed state for rendering accessories - Rework EndecDataLoader for changes to resource loader registration on fabric and fix issue with registry existing after reload
### Fixes:
- Extra Data for unique slots properties were not sync to the client leading to issues
### Changes:
- Adjust dump commands to give more useful information
- Add ability to set custom default values for accessory screen
- Add ability to open creative screen instead of accessories while in creative mode
### API:
- Accessory Renderers now have a dedicated
AccessoryRenderStateused to store info unpacked for the given stack used to render later and general state setup for the given equipped accessory to prevent collisions. - Renders now have central
shouldRendercheck used for checking if the given accessory should render in general. If you want to check for if something should render in first person, useAccessoriesRenderStateKeys.ARM - Remove deprecated methods for translations to specific model parts
- Remove unused z-index of screens using owolib
- Disable Data driven rendering functions ability to render using delegate renderer for the time being
- Adjust setup to run using
AccessoriesRenderStateKeys.setupStateForAccessoriesand only usecreateRenderStatefor setting up needed state for rendering accessories - Rework EndecDataLoader for changes to resource loader registration on fabric and fix issue with registry existing after reload
- Add Spanish (Mexian) Translations by TheLegendofSaram and Zailer43
- Optimize checking for slot containers size mismatch
- Adjust Attribute Builder to use parent maps when given the ability to to allow proper nested manipulation of builder data
- Fix issues with stack duplication when equipping on neoforge
- Fix issues with Cosmetic armor not working in common rendering places
- Fix issues with ordering of slots being different between the server and client causing odd slot interactions
- Add Spanish (Mexian) Translations by TheLegendofSaram and Zailer43
- Optimize checking for slot containers size mismatch
- Adjust Attribute Builder to use parent maps when given the ability to to allow proper nested manipulation of builder data
- Fix issues with stack duplication when equipping on neoforge
- Fix issues with Cosmetic armor not working in common rendering places
- Fix issues with ordering of slots being different between the server and client causing odd slot interactions
- Attempt to cache checking for slot containers size mismatch
- Attempt to resolve issues with setting valid slot types
- Resolve issue with using hacky work around for accessories menu leading to crashing due to incorrect menu
- Attempt to cache checking for slot containers size mismatch
- Attempt to resolve issues with setting valid slot types
SlotPath objects i.e. isAnotherEquipped