Features
A general-purpose library providing tools and APIs to simplify plugin development, including:
- ResourcePack API for easier pack handling and distribution
- Serverside translations with dynamic updates for items (along with glyphs, placeholders support)
- Items, blocks, GUIs, and entity API
- Advancements, toasts, and permissions API
- Energy, Statistic and Attribute API
- Scoreboard and placeholder API with extended functionality
And much more.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 | ||||
| 6h ago | 1 |
isValidStateonCustomBlock, replaces hardcoded block material check so can be overriden for custom checks.
isValidStateonCustomBlock, replaces hardcoded block material check so can be overriden for custom checks.
isValidStateonCustomBlock, replaces hardcoded block material check so can be overriden for custom checks.
isValidStateonCustomBlock, replaces hardcoded block material check so can be overriden for custom checks.
onUnload(String, Object)andpostUnloadmethods onDeferredRegistryModifier.DeferredRegistrycan now be unloaded at any time.ModelParentsandDisplayPerspectivesclasses containing constants for aiding with RP creation.BaseCommandcan now be unloaded inCommandBus.
## **Fixes:**
- Empty itemstacks are serialized/deserialized correctly now (Fixes Relique).
- Multiple errors caused on systems using a language other than English.
onUnload(String, Object)andpostUnloadmethods onDeferredRegistryModifier.DeferredRegistrycan now be unloaded at any time.ModelParentsandDisplayPerspectivesclasses containing constants for aiding with RP creation.BaseCommandcan now be unloaded inCommandBus.
## **Fixes:**
- Empty itemstacks are serialized/deserialized correctly now (Fixes Relique).
- Multiple errors caused on systems using a language other than English.
onUnload(String, Object)andpostUnloadmethods onDeferredRegistryModifier.DeferredRegistrycan now be unloaded at any time.ModelParentsandDisplayPerspectivesclasses containing constants for aiding with RP creation.BaseCommandcan now be unloaded inCommandBus.
## **Fixes:**
- Empty itemstacks are serialized/deserialized correctly now (Fixes Relique).
- Multiple errors caused on systems using a language other than English.
onUnload(String, Object)andpostUnloadmethods onDeferredRegistryModifier.DeferredRegistrycan now be unloaded at any time.ModelParentsandDisplayPerspectivesclasses containing constants for aiding with RP creation.BaseCommandcan now be unloaded inCommandBus.
## **Fixes:**
- Empty itemstacks are serialized/deserialized correctly now (Fixes Relique).
- Multiple errors caused on systems using a language other than English.
FakePlayerReplaceEvent, fired when a player joins and theFakePlayeris despawned.AttackAnimation,CushionColor,MobVisible,ProvidesPotteryPatterns,SignFrontText,SignBackText,VillagersFood,Waxeditem components.
## **Changes:**
CustomPotionMixautomatically usesBrewingRecipeon 26.3+- teleportRandomly now supports
directional_particlesfield
## **Fixes:**
- External Packs now work again.
- Various Bugs on
FakePlayer/OfflinePlayerDatathat causedFakePlayerto not spawn at all.
FakePlayerReplaceEvent, fired when a player joins and theFakePlayeris despawned.AttackAnimation,CushionColor,MobVisible,ProvidesPotteryPatterns,SignFrontText,SignBackText,VillagersFood,Waxeditem components.
## **Changes:**
CustomPotionMixautomatically usesBrewingRecipeon 26.3+- teleportRandomly now supports
directional_particlesfield
## **Fixes:**
- External Packs now work again.
- Various Bugs on
FakePlayer/OfflinePlayerDatathat causedFakePlayerto not spawn at all.
FakePlayerReplaceEvent, fired when a player joins and theFakePlayeris despawned.AttackAnimation,CushionColor,MobVisible,ProvidesPotteryPatterns,SignFrontText,SignBackText,VillagersFood,Waxeditem components.
## **Changes:**
CustomPotionMixautomatically usesBrewingRecipeon 26.3+- teleportRandomly now supports
directional_particlesfield
## **Fixes:**
- External Packs now work again.
- Various Bugs on
FakePlayer/OfflinePlayerDatathat causedFakePlayerto not spawn at all.
FakePlayerReplaceEvent, fired when a player joins and theFakePlayeris despawned.AttackAnimation,CushionColor,MobVisible,ProvidesPotteryPatterns,SignFrontText,SignBackText,VillagersFood,Waxeditem components.
## **Changes:**
CustomPotionMixautomatically usesBrewingRecipeon 26.3+- teleportRandomly now supports
directional_particlesfield
## **Fixes:**
- External Packs now work again.
- Various Bugs on
FakePlayer/OfflinePlayerDatathat causedFakePlayerto not spawn at all.
## **New:**
- Codec API now returns
DataResult, allowing errors to propagate and partial-success warnings to accumulate. - Added
Codec#encodeAsync/decodeAsync,Codec.dispatch,Codec.taggedUnion,Codec.tuple, and much more. RecordCodecBuilder→RecordBuilder; it has also been rewritten.- Added
EncodeContext/DecodeContextto help simplify more complicated codecs. - Reflection API now covers more previously missed features.
- Added Menu API, useful for custom containers and crafting UIs, with automatic item movement handling.
- Added config options to toggle Item Server-Side Translation Ticking, Item Ticking, and the Energy Network, as well as an option to change the delay of server-side translation ticking.
- Added new
enable_custom_break_speedsandenable_natural_spawningconfig fields to thefeaturessection. - Added
TypedRegistry. - Added placeholders for permissions:
abyssallib:player_has_permission:<permission>— Checks whether the player has the permission (Boolean).abyssallib:player_has_group:<group>— Checks whether the player belongs to a group (Boolean).abyssallib:player_groups— Gets all groups the player is in (List of String).abyssallib:player_group:<index>— Gets the player's group at a specific index in the sorted group list.abyssallib:player_primary_group— Gets the player's group with the highest weight. This can be inconsistent if multiple groups have the same highest weight.- Added 2 JSON-specific
MergeStrategys for replacing or inheriting from existing loot tables, allowing vanilla loot tables to be merged or replaced. - Added custom block breaking, utilizing the value of
BlockProperties#hardness. - Added
CustomToolcomponent, which behaves similarly to theToolcomponent but for custom blocks. - Added
compressconfig option to the resource-pack section. Enabled by default; currently minifies all JSON, making it useful for packs with a lot of models. - Added
FakePlayerandOfflinePlayerDataAPIs for modifying players while they are offline and for using that data with fake players.
## **Changes:**
RECIPESregistry is now typed, allowing recipes of a specific type to be retrieved usingRECIPES#getByType.- Reflection API is now safer.
- UpdateChecker now accepts a String vararg of ignored identifiers (e.g.
.alpha,.beta, etc.). - Resource Pack Server has been optimized.
external-packsnow supports{"path": boolean}, allowing external packs to be exempted from compression. This is required if a pack is already compressed or encrypted.
## **Fixes:**
- Default (folder) recipe registration is now delayed by 10 ticks, giving other plugins time to register their items.
- Fixed duplicate ghost items caused by SSR and ItemTicker in most cases.
- ItemTicker no longer triggers on inventory updates.
- PackServer will no longer duplicate packs for the client, as packs now use deterministic UUIDs.
## **New:**
- Codec API now returns
DataResult, allowing errors to propagate and partial-success warnings to accumulate. - Added
Codec#encodeAsync/decodeAsync,Codec.dispatch,Codec.taggedUnion,Codec.tuple, and much more. RecordCodecBuilder→RecordBuilder; it has also been rewritten.- Added
EncodeContext/DecodeContextto help simplify more complicated codecs. - Reflection API now covers more previously missed features.
- Added Menu API, useful for custom containers and crafting UIs, with automatic item movement handling.
- Added config options to toggle Item Server-Side Translation Ticking, Item Ticking, and the Energy Network, as well as an option to change the delay of server-side translation ticking.
- Added new
enable_custom_break_speedsandenable_natural_spawningconfig fields to thefeaturessection. - Added
TypedRegistry. - Added placeholders for permissions:
abyssallib:player_has_permission:<permission>— Checks whether the player has the permission (Boolean).abyssallib:player_has_group:<group>— Checks whether the player belongs to a group (Boolean).abyssallib:player_groups— Gets all groups the player is in (List of String).abyssallib:player_group:<index>— Gets the player's group at a specific index in the sorted group list.abyssallib:player_primary_group— Gets the player's group with the highest weight. This can be inconsistent if multiple groups have the same highest weight.- Added 2 JSON-specific
MergeStrategys for replacing or inheriting from existing loot tables, allowing vanilla loot tables to be merged or replaced. - Added custom block breaking, utilizing the value of
BlockProperties#hardness. - Added
CustomToolcomponent, which behaves similarly to theToolcomponent but for custom blocks. - Added
compressconfig option to the resource-pack section. Enabled by default; currently minifies all JSON, making it useful for packs with a lot of models. - Added
FakePlayerandOfflinePlayerDataAPIs for modifying players while they are offline and for using that data with fake players.
## **Changes:**
RECIPESregistry is now typed, allowing recipes of a specific type to be retrieved usingRECIPES#getByType.- Reflection API is now safer.
- UpdateChecker now accepts a String vararg of ignored identifiers (e.g.
.alpha,.beta, etc.). - Resource Pack Server has been optimized.
external-packsnow supports{"path": boolean}, allowing external packs to be exempted from compression. This is required if a pack is already compressed or encrypted.
## **Fixes:**
- Default (folder) recipe registration is now delayed by 10 ticks, giving other plugins time to register their items.
- Fixed duplicate ghost items caused by SSR and ItemTicker in most cases.
- ItemTicker no longer triggers on inventory updates.
- PackServer will no longer duplicate packs for the client, as packs now use deterministic UUIDs.
## **New:**
- Codec API now returns
DataResult, allowing errors to propagate and partial-success warnings to accumulate. - Added
Codec#encodeAsync/decodeAsync,Codec.dispatch,Codec.taggedUnion,Codec.tuple, and much more. RecordCodecBuilder→RecordBuilder; it has also been rewritten.- Added
EncodeContext/DecodeContextto help simplify more complicated codecs. - Reflection API now covers more previously missed features.
- Added Menu API, useful for custom containers and crafting UIs, with automatic item movement handling.
- Added config options to toggle Item Server-Side Translation Ticking, Item Ticking, and the Energy Network, as well as an option to change the delay of server-side translation ticking.
- Added new
enable_custom_break_speedsandenable_natural_spawningconfig fields to thefeaturessection. - Added
TypedRegistry. - Added placeholders for permissions:
abyssallib:player_has_permission:<permission>— Checks whether the player has the permission (Boolean).abyssallib:player_has_group:<group>— Checks whether the player belongs to a group (Boolean).abyssallib:player_groups— Gets all groups the player is in (List of String).abyssallib:player_group:<index>— Gets the player's group at a specific index in the sorted group list.abyssallib:player_primary_group— Gets the player's group with the highest weight. This can be inconsistent if multiple groups have the same highest weight.- Added 2 JSON-specific
MergeStrategys for replacing or inheriting from existing loot tables, allowing vanilla loot tables to be merged or replaced. - Added custom block breaking, utilizing the value of
BlockProperties#hardness. - Added
CustomToolcomponent, which behaves similarly to theToolcomponent but for custom blocks. - Added
compressconfig option to the resource-pack section. Enabled by default; currently minifies all JSON, making it useful for packs with a lot of models. - Added
FakePlayerandOfflinePlayerDataAPIs for modifying players while they are offline and for using that data with fake players.
## **Changes:**
RECIPESregistry is now typed, allowing recipes of a specific type to be retrieved usingRECIPES#getByType.- Reflection API is now safer.
- UpdateChecker now accepts a String vararg of ignored identifiers (e.g.
.alpha,.beta, etc.). - Resource Pack Server has been optimized.
external-packsnow supports{"path": boolean}, allowing external packs to be exempted from compression. This is required if a pack is already compressed or encrypted.
## **Fixes:**
- Default (folder) recipe registration is now delayed by 10 ticks, giving other plugins time to register their items.
- Fixed duplicate ghost items caused by SSR and ItemTicker in most cases.
- ItemTicker no longer triggers on inventory updates.
- PackServer will no longer duplicate packs for the client, as packs now use deterministic UUIDs.
- Custom block breaking, utilizes value of BlockProperties#hardness
- CustomTool component, behaves similarly to Tool component but for custom blocks
compressconfig added to resource-pack section, by default true, currently minifies all json so useful for packs with alot of models- FakePlayer and OfflinePlayerData APIs for modification of players that are offline and also using that data for fake players
## **Changes:**
- Resource pack server has been optimized a bit
external-packsfield now supports {"path": boolean}, this allows for exempting external packs for compression (required if pack is compressed OR encrypted)
## **Fixes:**
- PackServer will no longer duplicate packs for client (uses deterministic UUID for packs now)
- Custom block breaking, utilizes value of BlockProperties#hardness
- CustomTool component, behaves similarly to Tool component but for custom blocks
compressconfig added to resource-pack section, by default true, currently minifies all json so useful for packs with alot of models- FakePlayer and OfflinePlayerData APIs for modification of players that are offline and also using that data for fake players
## **Changes:**
- Resource pack server has been optimized a bit
external-packsfield now supports {"path": boolean}, this allows for exempting external packs for compression (required if pack is compressed OR encrypted)
## **Fixes:**
- PackServer will no longer duplicate packs for client (uses deterministic UUID for packs now)
- Custom block breaking, utilizes value of BlockProperties#hardness
- CustomTool component, behaves similarly to Tool component but for custom blocks
compressconfig added to resource-pack section, by default true, currently minifies all json so useful for packs with alot of models- FakePlayer and OfflinePlayerData APIs for modification of players that are offline and also using that data for fake players
## **Changes:**
- Resource pack server has been optimized a bit
external-packsfield now supports {"path": boolean}, this allows for exempting external packs for compression (required if pack is compressed OR encrypted)
## **Fixes:**
- PackServer will no longer duplicate packs for client (uses deterministic UUID for packs now)
- Add 2 JSON specific MergeStrategy for replacing/inheriting from existing loot tables that merge/replace vanilla tables
- Add 2 JSON specific MergeStrategy for replacing/inheriting from existing loot tables that merge/replace vanilla tables
- Add 2 JSON specific MergeStrategy for replacing/inheriting from existing loot tables that merge/replace vanilla tables
- Recipe registration is delayed by 10 ticks so plugins get time to register items.
- Duplicate ghost items caused by SSR and ItemTicker in most cases.
- ItemTicker no longer triggers on inventory update
- Recipe registration is delayed by 10 ticks so plugins get time to register items.
- Duplicate ghost items caused by SSR and ItemTicker in most cases.
- ItemTicker no longer triggers on inventory update
- Recipe registration is delayed by 10 ticks so plugins get time to register items.
- Duplicate ghost items caused by SSR and ItemTicker in most cases.
- ItemTicker no longer triggers on inventory update
- Default (folder) Recipe registration is delayed by 10 ticks so other plugins have time to register items.
- Default (folder) Recipe registration is delayed by 10 ticks so other plugins have time to register items.
- Default (folder) Recipe registration is delayed by 10 ticks so other plugins have time to register items.
- Default (folder) Recipe registration is delayed by 10 ticks so other plugins have time to register items.
## **New:**
- Menu API (Useful for custom containers/crafting UI's as it handles item movement on its own)
- Config options to toggle Item Server-Side Translation Ticking, Item ticking, and Energy network, aswell as option to change delay of server-side translation ticking
- Placeholders for Permissions
abyssallib:player_has_permission:<permission>Checks if the player has the permission (Boolean)abyssallib:player_has_group:<group>Checks if the player belongs to a group (Boolean)abyssallib:player_groupsGets all the groups the player is in (List of String)abyssallib:player_group:<index>Gets the players group of a specific index from the sorted group listabyssallib:player_primary_groupGets the players group that has the highest weight (could be inconsistent if multiple groups use same weight and are highest)
## **New:**
- Menu API (Useful for custom containers/crafting UI's as it handles item movement on its own)
- Config options to toggle Item Server-Side Translation Ticking, Item ticking, and Energy network, aswell as option to change delay of server-side translation ticking
- Placeholders for Permissions
abyssallib:player_has_permission:<permission>Checks if the player has the permission (Boolean)abyssallib:player_has_group:<group>Checks if the player belongs to a group (Boolean)abyssallib:player_groupsGets all the groups the player is in (List of String)abyssallib:player_group:<index>Gets the players group of a specific index from the sorted group listabyssallib:player_primary_groupGets the players group that has the highest weight (could be inconsistent if multiple groups use same weight and are highest)

