Context / setup
- Modpack: NeoForge 1.21.1
- Mods: SimplySwords 1.70.2, SimplyTooltips (hard dependency of SimplySwords), RarityCore
- We use RarityCore to give SimplySwords unique weapons their own consistent
rarity color/border across the pack (a KubeJS script registers
simplyswords:uniques with RarityCore at rarity tier 7). RarityCore only
renders color/border, no tooltip content.
- To avoid a rendering conflict between RarityCore's own tooltip border and
SimplyTooltips' own rendering, we set
enableTooltipRendering = false in config/simplytooltips/config.toml.
This is currently an all-or-nothing switch for SimplyTooltips' entire
rendering pipeline.
Problem
SimplySwords' Awakening feature (1.70.x, levels 0-8 per unique weapon) ships,
according to your own addon docs
(developer-docs/api/client-integration.md in the SimplySwords repo, section
"Simply Tooltips"), a dedicated rendering component registered into
SimplyTooltips for UniqueWeaponItem instances:
"This supplies the standard lore and stat layout, unique rarity, awakening
progress frame, sealed-ability presentation, and level-aware reveal
animation."
As soon as we set enableTooltipRendering = false (to let RarityCore own the
border/color styling), SimplySwords falls back completely to a vanilla
fallback tooltip. That removes not just the awakening progress display, but
also the "sealed-ability presentation" - the vanilla fallback always shows the
full "Unique Effect: ..." description text of a unique weapon in full,
regardless of the actual awakening level, even at level 0 (confirmed in-game).
The same docs also state that even SimplySwords' own compatibility tooltip
provider (for items that don't extend UniqueWeaponItem) does not support
sealing:
"The compatibility provider parses ordinary lore and stats but does not add
the awakening progress presentation."
So the sealing/reveal animation is entirely tied to SimplyTooltips' active,
full rendering pipeline.
Why this is a real compatibility problem
For modpacks that use a generic rarity mod like RarityCore (to render rarity
styling consistently across many mods, not just SimplySwords), the current
choice is:
- Keep SimplyTooltips rendering on -> the generic rarity mod can't apply its
own styling to SimplySwords items without conflicts.
- Turn SimplyTooltips rendering off entirely -> the rarity mod's styling
works, but SimplySwords' entire Awakening presentation (including the
intended spoiler-free ability sealing) is lost - the vanilla fallback ends
up showing more information than intended (the unique ability is fully
spoiled even at level 0).
Option 2 is particularly unfortunate because it's not just a visual downgrade
- it actively undermines the intended gameplay design (ability only revealed
at a certain progression level).
Suggestion
A more granular config option (or API hook) that disables only the
border/color part of SimplyTooltips' rendering while keeping
addon-registered content providers (like SimplySwords' Awakening sealing)
active. That way, other mods (like RarityCore) wouldn't need any changes at
all - they could keep applying their own border/color styling independently,
while SimplyTooltips stays responsible for content, including sealing.
If there's already a way to do this that we've overlooked (e.g. via
assets/simplytooltips/item_themes/*.json, which according to the docs can
assign themes - but seemingly only color themes, not a choice of rendering
pipeline), we'd be happy to hear about it.
Reproduction
- Install SimplySwords 1.70.2+ and SimplyTooltips, hold a unique weapon at
Awakening level 0 -> the tooltip normally shows the sealed/hidden ability
info (default behavior).
- Set
enableTooltipRendering = false in
config/simplytooltips/config.toml, restart the game.
- Look at the same weapon again -> "Unique Effect: " with its full
description text is now immediately and fully visible, regardless of the
actual Awakening level.
Additional info, in case it helps
As a workaround for our own modpack, we tried re-displaying the Awakening
level manually via KubeJS, by directly calling the official
net.sweenus.simplyswords.api.AwakeningApi
(getLevel/isAbilityUnlocked/getAbilityUnlockLevel). That works for a
simple text line ("Awakening: 3/8, Ability locked - unlocks at 4"), but it
cannot replicate the actual "sealed-ability presentation" (hiding the
already-present description text), because KubeJS' tooltip API can only
append/remove individual text lines - it can't read existing tooltip content
nor drive the animated renderer component itself. So this really can only be
solved at the renderer level.
Thanks for reading - if there's an obvious workaround we've missed, please let
us know!
Context / setup
rarity color/border across the pack (a KubeJS script registers
simplyswords:uniqueswith RarityCore at rarity tier 7). RarityCore onlyrenders color/border, no tooltip content.
SimplyTooltips' own rendering, we set
enableTooltipRendering = falseinconfig/simplytooltips/config.toml.This is currently an all-or-nothing switch for SimplyTooltips' entire
rendering pipeline.
Problem
SimplySwords' Awakening feature (1.70.x, levels 0-8 per unique weapon) ships,
according to your own addon docs
(
developer-docs/api/client-integration.mdin the SimplySwords repo, section"Simply Tooltips"), a dedicated rendering component registered into
SimplyTooltips for
UniqueWeaponIteminstances:As soon as we set
enableTooltipRendering = false(to let RarityCore own theborder/color styling), SimplySwords falls back completely to a vanilla
fallback tooltip. That removes not just the awakening progress display, but
also the "sealed-ability presentation" - the vanilla fallback always shows the
full "Unique Effect: ..." description text of a unique weapon in full,
regardless of the actual awakening level, even at level 0 (confirmed in-game).
The same docs also state that even SimplySwords' own compatibility tooltip
provider (for items that don't extend
UniqueWeaponItem) does not supportsealing:
So the sealing/reveal animation is entirely tied to SimplyTooltips' active,
full rendering pipeline.
Why this is a real compatibility problem
For modpacks that use a generic rarity mod like RarityCore (to render rarity
styling consistently across many mods, not just SimplySwords), the current
choice is:
own styling to SimplySwords items without conflicts.
works, but SimplySwords' entire Awakening presentation (including the
intended spoiler-free ability sealing) is lost - the vanilla fallback ends
up showing more information than intended (the unique ability is fully
spoiled even at level 0).
Option 2 is particularly unfortunate because it's not just a visual downgrade
at a certain progression level).
Suggestion
A more granular config option (or API hook) that disables only the
border/color part of SimplyTooltips' rendering while keeping
addon-registered content providers (like SimplySwords' Awakening sealing)
active. That way, other mods (like RarityCore) wouldn't need any changes at
all - they could keep applying their own border/color styling independently,
while SimplyTooltips stays responsible for content, including sealing.
If there's already a way to do this that we've overlooked (e.g. via
assets/simplytooltips/item_themes/*.json, which according to the docs canassign themes - but seemingly only color themes, not a choice of rendering
pipeline), we'd be happy to hear about it.
Reproduction
Awakening level 0 -> the tooltip normally shows the sealed/hidden ability
info (default behavior).
enableTooltipRendering = falseinconfig/simplytooltips/config.toml, restart the game.description text is now immediately and fully visible, regardless of the
actual Awakening level.
Additional info, in case it helps
As a workaround for our own modpack, we tried re-displaying the Awakening
level manually via KubeJS, by directly calling the official
net.sweenus.simplyswords.api.AwakeningApi(
getLevel/isAbilityUnlocked/getAbilityUnlockLevel). That works for asimple text line ("Awakening: 3/8, Ability locked - unlocks at 4"), but it
cannot replicate the actual "sealed-ability presentation" (hiding the
already-present description text), because KubeJS' tooltip API can only
append/remove individual text lines - it can't read existing tooltip content
nor drive the animated renderer component itself. So this really can only be
solved at the renderer level.
Thanks for reading - if there's an obvious workaround we've missed, please let
us know!