Version 6.0.0:
Updated to 1.20.5
This update introduces multiple breaking changes - a migration guide is available on the Ladysnake website.
Beta 2
Changes
- All the serialization methods now take an additional registry lookup argument
- Warning: due to the above change, level components may not be deserialized correctly if a mod calls
LevelProperties.readPropertiesinstead ofLevelStorage.parseSaveProperties
Removals
- The deprecated
utilpackage incardinal-components-blockhas been removed
Beta 1
Additions
- Added
C2SSelfMessagingComponent, a new experimental utility interface to simplify client-to-server messaging on player components - Added
WorldComponentRegistry#registerFormethods, allowing for dimension-specific world components - Scoreboard and team components now support client ticking
Changes
- Migrated all packages from
dev.onyxstudiostoorg.ladysnake - Updated documentation and licenses to reflect package change
RespawnCopyStrategynow also applies on mob conversion- The
cardinal-components-levelis now deprecated, as it is redundant with thecardinal-components-scoreboardmodule- Mods are encouraged to move to scoreboard components, which serve the same purpose of global data storage and have an API more consistent with other modules
Removals
- Removed item components. The
cardinal-components-itemmodule now contains anItemComponentMigrationRegistry, which is used to help you migrate to vanilla components. - Removed
PlayerCopyCallback- if you were using it, you can switch toServerPlayerEvents.COPY_FROMfrom Fabric API
see full changelog here
Version 6.0.0:
Updated to 1.20.5
This update introduces multiple breaking changes - a migration guide is available on the Ladysnake website.
Additions
- Added
C2SSelfMessagingComponent, a new experimental utility interface to simplify client-to-server messaging on player components - Added
WorldComponentRegistry#registerFormethods, allowing for dimension-specific world components - Scoreboard and team components now support client ticking
Changes
- Migrated all packages from
dev.onyxstudiostoorg.ladysnake - Updated documentation and licenses to reflect package change
RespawnCopyStrategynow also applies on mob conversion- The
cardinal-components-levelis now deprecated, as it is redundant with thecardinal-components-scoreboardmodule- Mods are encouraged to move to scoreboard components, which serve the same purpose of global data storage and have an API more consistent with other modules
Removals
- Removed item components. The
cardinal-components-itemmodule now contains anItemComponentMigrationRegistry, which is used to help you migrate to vanilla components. - Removed
PlayerCopyCallback- if you were using it, you can switch toServerPlayerEvents.COPY_FROMfrom Fabric API
see full changelog here
Version 5.3.0:
Updated to 1.20.2
Additions
- Added load- and unload-aware components as an experimental feature
- This can be used to implement advanced initialization and cleanup 🧽
Changes
- Deprecated the
utilspackage incardinal-components-blockas it is now virtually unusable
see full changelog here
Version 5.2.2:
Fixed chunk components being lost during deserialization (thanks to Stuff-Stuffs !)
see full changelog [here](https://github.com//Cardinal Components Api/blob/5.2.2/changelog.md "Changelog")
Version 5.0.0:
Updated to MC 1.19
Additions
- Component providers now expose the
ComponentAccessinterface through Loom's interface injectionComponentAccessaddsgetComponentas an alternative toComponentKey#get, andsyncComponentas an alternative toComponentKey#sync- It is now recommended to use e.g.
entity.getComponent(KEY)instead ofKEY.get(entity), as this enforces type checking
see full changelog here
Version 4.2.0:
Additions
- Players can now set the
log-deserialization-warningsoption to toggle warnings when a component fails to be resolved (typically due to mods being removed)
Mod Compatibility
- Fixed incompatibility with Immersive Portals
see full changelog here
Version 5.0.0:
Updated to MC 1.19
Additions
- Component providers now expose the
ComponentAccessinterface through Loom's interface injectionComponentAccessaddsgetComponentas an alternative toComponentKey#get, andsyncComponentas an alternative toComponentKey#sync- It is now recommended to use e.g.
entity.getComponent(KEY)instead ofKEY.get(entity), as this enforces type checking
see full changelog here

