
Welcome to Amethyst Core, a library mod focused on building magically-themed mods! It currently powers Amethyst Imbuement and other upcoming mods in that family. While being magically themed, this library has a lot of other functionality too!
See the wiki for more details, as well as the KDoc within the source.
There is a lot you can do with Amethyst Core, including but not limited to:
- Implementing your own Modifier System; a parallel alternative to Minecraft's Enchantment system
- Creating extensions for Amethyst Imbuement
- Creating distinct magic mods that have compatibility with Amethyst Imbuement
- Implementing a consistent and auto-syncing configuration system
- Building a magical wand with any number of abilities
- Building modular Trinkets
- Easily registering custom item models a la the Trident
- Registering to a ticking Event Registry
- Building and registering additions to loot tables easily
- Spawn particles that track the player and visually appear where desired on the player's screen
- Register persistent effects that you want to trigger over time without needing to track the effect within custom ticking code
And much more!
Modifiers
The Modifier Framework is a flexible and extensible system designed as a parallel to the vanilla Enchanting system. Modifiers aim to solve two of the biggest problems I found with Enchanting: They are easily removable, and they do not internalize their functionality (besides a couple damage methods). Enchantments are also more boring than they could be, displaying their tier with a simple number. Modifiers aim to fix all of those issues!
- Modifiers are designed to be permanent, acting more like affixes. Grindstones can't remove them, for example.
- Modifiers internalize their functions, and can be called as one unit rather than piecemeal.
- Modifiers act via a "family tree" that allow for flavorful tiers. Think of a sword going from "Rusty" to "Shiny" to "Gleaming" etc.
The library comes with builtin helper method for displaying modifiers

See the wiki link above for more details on these features. Once implemented, a Modifier system can do just about anything. Amethyst Cores built-in AugmentModifier does things from affecting mana cost and cooldown, to changing spell damage or range, to even triggering advanced effects like afflicting every mob in a 12 block radius around the caster with Wither upon any successful spell cast.
Modifers can be as simple as a container for passing vanilla AttributeModifiers, or much more complex than the AugmentModifier described above. They could even be used purely for flavor, if desired!
Magic Mod Utilities
Amethyst Core contains everything you need to develop a magic-themed mod in the style of Amethyst Imbuement. The library, however, does not include any crafting or progression systems. This is up to you! YOu can either follow along exactly how Amethyst Imbuement does, with imbuing recipes, and tiered augments in scepters, or craft your own unique systems. Blood rituals maybe? Nature-themed magic? Sky's the limit.
Scepters
A framework for building a wide array of Amethyst Imbuement style Scepters is included, from the most barebone AbstractScepterItem you can take almost any direction, to a DefaultScepterItem that is almost fully implemented for creating an Amethyst Imbuement compatible Scepter(s) of your own.
Augments
Build enhanced enchantments either for use with Scepters, or for adding to trinkets and equipment. Utilities for advanced functionality like passive ticking effects, effects on equip, etc.
Trinkets
Utilities for building Trinket compatible items that can utilize the Augment system. As seen in Amethyst Imbuement, this allows for modular trinkets and items that aren't limited to predefined benefits.
Mana-based Items
Interfaces and utilities for developing an item that uses "mana" instead of durability. Items won't break at minimum durability, they can be easily "healed" and there is a Helper for auto-healing (mana regeneration). Items can also be checked to see if a certain action is possible with the current mana in the item.
And Much More!
Look through the wiki and source code documentation for all that Amethyst Core has to offer!
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 | ||||
| 12h ago | 1 |
- Updated optional RPG series compat to the breaking changes in the 0.10.x Spell Power Attributes updates. Spell Power Attributes 0.9.19 and lower is no longer supported.
- Add new TagStyle methods
- Add getTag() back
- Impl new Fzzy Core 0.5.0 modifier defaults methods
- Low mana messages now send to the action bar by default (middle fo the screen messages just above the hotbar)
FzzyPort implementation- New methods for directly setting a scepters active spell (not just from scrolling)
- Added new living entity attribute Mana Regeneration
- Tweaked the base scepter classes with updated active spell getting
- Added new
checkCanUseimpl to the base scepters to avoid infinite use of 1 mana spells. SlashAugmentusesSpellDamageSourcenow- Added `amethyst_core:any" as a possible input to the SpellCriterion
isAcceptableItem on modifiers not taking into account if the modifier is already maxed out.- Fixed an oopsies on Player Experience math
- Added new AFTER_CAST event in SpCompat that provides a Spell-Power scoped after cast event, providing magic schools and other pertinent info.
- Added spell critical chance and spell critical multiplier Entity Attributes
- Added new integration with Spell Power Attributes, for adding spell power attributes if SPA is loaded.
- Added special dual-purpose methods for Cooldown, cirtical chance, and critical damage. Adds wither SPA or AC attributes with appropriately scaled values depending on if SPA is loaded or not.
- Player Experience attribute now removes it's bonus if experience is removed using the addExperience method, in an effort to balance "Feedback loops" from mods like Spelunkery
- Updated with new Fzzy Core 0.3.0 modifier system implementation.
- Improved memory usage.
- Removed ModifyModifierEvent in RegisterModifiers, as it is no longer needed for innate modifiers.
- Implemented better flavor test generation.
- Attempt a fix at a constant [amount] of XP per tick, presumably caused by some source adding 0 XP repeatedly.
### Fixes
- Fixed tooltips not updating right away on dedicated client/server environments when you add a new modifier.
- Fixed some spells being shown as disabled even when not.
### Changes
- Added new fzzy-config spell configuration system, with built-in back-compatibility to the old method of implementing AugmentStats.
### Additions
- Added interop with Spell Power Attributes. Spells of the appropriate types (fire, ice, etc) will be empowered by the corresponding spell powers.
- Player Experience is now a living entity attribute, so things like splash potions or modifiers don't crash the game by trying to add a player attribute to a non-player. It still only does anything on players.
- Change how cooldown and mana cost attributes work so positive changes reduce duration, and negative modifiers increase duration, to make them more intuitive. Previously a reduction in attribute reduced CD/MC, but it shows as red in MC, implying that you are getting a bad effect.
- Player Experience is now a living entity attribute, so things like splash potions or modifiers don't crash the game by trying to add a player attribute to a non-player. It still only does anything on players.
- Change how cooldown and mana cost attributes work so positive changes reduce duration, and negative modifiers increase duration, to make them more intuitive. Previously a reduction in attribute reduced CD/MC, but it shows as red in MC, implying that you are getting a bad effect.
- Player Experience is now a living entity attribute, so things like splash potions or modifiers don't crash the game by trying to add a player attribute to a non-player. It still only does anything on players.
- Change how cooldown and mana cost attributes work so positive changes reduce duration, and negative modifiers increase duration, to make them more intuitive. Previously a reduction in attribute reduced CD/MC, but it shows as red in MC, implying that you are getting a bad effect.
- Player Experience is now a living entity attribute, so things like splash potions or modifiers don't crash the game by trying to add a player attribute to a non-player. It still only does anything on players.
- Change how cooldown and mana cost attributes work so positive changes reduce duration, and negative modifiers increase duration, to make them more intuitive. Previously a reduction in attribute reduced CD/MC, but it shows as red in MC, implying that you are getting a bad effect.
- Port to 1.20/1.20.1
- Added switch for scepters to reject spells they shouldn't be able to take.
- Added more interfacing for entities in prep for the coming combi-update.
- Fallback spells no longer re-apply when you craft a scepter to the next tier.
- removed a mixin duplicated from fzzy-core
- Port to 1.19.4
- Added switch for scepters to reject spells they shouldn't be able to take.
- Added more interfacing for entities in prep for the coming combi-update.
- Fallback spells no longer re-apply when you craft a scepter to the next tier.
- removed a mixin duplicated from fzzy-core
- Added switch for scepters to reject spells they shouldn't be able to take.
- Added more interfacing for entities in prep for the coming combi-update.
- Fallback spells no longer re-apply when you craft a scepter to the next tier.
- removed a mixin duplicated from fzzy-core
- Added switch for scepters to reject spells they shouldn't be able to take.
- Added more interfacing for entities in prep for the coming combi-update.
- Fallback spells no longer re-apply when you craft a scepter to the next tier.
- removed a mixin duplicated from fzzy-core
### Changes
- Changed
AugmentScepterItemimplementation, flattening the class path. - the
ModifySpellEventnow takes the spell itself as additional context.
### Additions
- Added
AugmentSwordItemandAugmentMiningItemto hook into for various types of tools that can also cast spells. - Integrated scepters with the _Pack It Up!_ Magicpack.
### Changes
- Changed
AugmentScepterItemimplementation, flattening the class path. - the
ModifySpellEventnow takes the spell itself as additional context.
### Additions
- Added
AugmentSwordItemandAugmentMiningItemto hook into for various types of tools that can also cast spells. - Integrated scepters with the _Pack It Up!_ Magicpack.
- Added a set of spell-theme entity attrbiutes ranging from spell damage to player experience gain for use in various trinkets and satatus effects etc.
- Added three scepter events.
ModifyModifiersEventfor modifying the collection of scepter modifiers considered in the spell cast, ModifySpellEvent for modifying what the spell is doing, what spell is cast, or stopping spell casting completely, andAfterSpellEventfor hooking into a successful spell cast likepostHitin an MC Item class. - Updated ScepterAugment configs to have a PvPmode
- Generalized how spellcasting works, enabling spells to be cast by non-player entities (in most cases)
- Added methods for randomly rolling scepter modifiers
- Slash augments updated to include PvpMode support
- Scepter Tiers no longer a basic int, now a class that wraps a specific item tag, scepters are sorted via this tag now.
- Added Common Protection API support to prevent misuse of spells inside claims.
- Implement new helper typing system in FC 0.2.0
- Added a set of spell-theme entity attrbiutes ranging from spell damage to player experience gain for use in various trinkets and satatus effects etc.
- Added three scepter events.
ModifyModifiersEventfor modifying the collection of scepter modifiers considered in the spell cast, ModifySpellEvent for modifying what the spell is doing, what spell is cast, or stopping spell casting completely, andAfterSpellEventfor hooking into a successful spell cast likepostHitin an MC Item class. - Updated ScepterAugment configs to have a PvPmode
- Generalized how spellcasting works, enabling spells to be cast by non-player entities (in most cases)
- Added methods for randomly rolling scepter modifiers
- Slash augments updated to include PvpMode support
- Scepter Tiers no longer a basic int, now a class that wraps a specific item tag, scepters are sorted via this tag now.
- Added Common Protection API support to prevent misuse of spells inside claims.
- Implement new helper typing system in FC 0.2.0
### Fixes
- Fixed missing class exception in a PlayerEntity mixin
### Fixes
- Fixed missing class exception in a PlayerEntity mixin
### Fixes
- Fixed missing class exception in a PlayerEntity mixin
### Fixes
- Fixed lore books not syncing the spell shown when the book is read for the first time.
### Fixes
- Fixed lore books not syncing the spell shown when the book is read for the first time.



