Fsang Improvements 1.34.72
Forge 1.20.1 / FSang18's Heroes 12.4.1

Thermal Googles:
  Adds fsang_improvements:thermal_googles to FSang18's Heroes' Tools creative
  tab. The supplied Blockbench model and its two embedded textures are packaged
  into the mod for both the inventory item and wearable head model. The Googles
  occupy only the helmet armor slot and provide exactly one armor point.
  While worn, a client-side thermal shader heavily converts world geometry to
  a cold blue palette while leaving bright blue sky pixels mostly unchanged.
  A complete projected copy of every rendered living entity is drawn every
  frame at 110% scale and converted to solid orange by the thermal shader. The
  copy uses the entity's real renderer, so player skins, armor, held items, and
  other model layers remain covered at every distance. Red/orange block colors
  are not treated as targets and are converted to blue with the rest of the
  world. Any client integration failure is caught and safely disables the
  projected copy rather than crashing the render thread. Carrying or holding
  the item does not enable vision.

Kryptonite Gas Bomb:
  Adds a charge-to-throw Kryptonite Gas Bomb using the supplied OBJ and texture.
  Bombs stack to 16. On impact the projectile anchors visibly to the nearest
  floor and expands a spherical Kryptonite Air wave to an eight-block radius.
  The wave converts only normal air, grows outward, and completes in exactly
  70 server ticks (3.5 seconds), after which the spent bomb disappears.

Gas Mask:
  Adds fsang_improvements:gas_mask to FSang18's Heroes' Tools creative tab.
  It is a helmet-only armor item worth exactly one armor point. Its wearable
  model and item model are converted from the supplied Blockbench/OBJ assets,
  and it uses the supplied gas-mask texture. While equipped in the head armor
  slot, it displays a thin translucent white cloudy visor overlay for the
  wearer only. Carrying or holding the mask does not activate the overlay.
  Its JEI-compatible shaped crafting recipe uses six iron ingots, two white
  stained glass panes, and one black dye in the supplied 3x3 arrangement.
  While worn, it completely prevents Kryptonite Air poisoning and damage for
  the first three continuous minutes of exposure. At three minutes the wearer
  receives Kryptonite Poisoning I and normal Kryptonite Air damage; after one
  additional minute the effect upgrades to level II. Leaving Kryptonite Air
  resets the continuous exposure timer. This protection never applies to any
  Kryptonian variant: Kryptonians are poisoned and damaged immediately even
  while wearing the Gas Mask.

Flash Ring:
  Adds fsang_improvements:flash_ring to FSang18's Heroes' Tools creative tab
  and permits it in the custom Curios Ring slot. The item uses the alternate
  ring mesh extracted from the supplied Blockbench/OBJ model, with both supplied
  textures assigned through Forge's 3D OBJ item renderer. While the ring is in
  the custom Curios Ring slot, crouch-right-clicking the ground or air deploys
  the complete FSang Classic Flash armor set. Holding the ring does nothing.
  Any exact armor stacks already equipped, including their full NBT, are moved
  into empty hotbar slots before the Flash armor is equipped. Deployment safely
  stops if there are not enough empty hotbar slots, and activating an already
  deployed set cannot duplicate it. Sneak-right-clicking again while the full
  Classic Flash set is equipped retracts it into the ring. Each armor piece's
  enchantments are stored on that exact ring and restored on its next
  deployment, while durability damage is discarded so every redeployed piece
  is fully repaired. A deployed suit must be fully equipped before its ring can
  deploy or retract it again. The unused ring starts with the original closed
  mesh. Deployment immediately changes it to the second mesh for two seconds,
  then changes it to the supplied nosuit mesh and nosuit textures. That nosuit
  appearance remains permanently, including after the armor returns to the
  ring. The neutral and two-second meshes use the corrected, swapped ordering.
  The transition uses a persistent 40-tick ring countdown and automatically
  repairs rings left on the intermediate mesh by version 1.24.2. All three
  visual states retain the same held-item and Curios transforms.
  When the equipped suit is returned, the empty nosuit ring changes to the open
  mesh for two seconds and then settles on the closed mesh with the suit stored.
  The retraction and deployment animations use separate persistent targets, so
  they remain synchronized and cannot finish on each other's mesh. The source
  OBJ's reversed object ordering is handled explicitly, making the final stored
  state use the actual Blockbench closed mesh. Curios refuses to remove the
  Flash Ring from the Ring slot while it uses either the open or nosuit mesh;
  removal is allowed only after it reaches the closed mesh.
  Flash armor cannot be bound to a BioLock.
  In either hand, it renders at 20% of its initial held size and is pitched so
  its held transform uses translation X -0.1, Y 0.5, Z -0.2 and right-hand
  rotation X 10, Y 0, Z 0, with a mirrored left-hand Y rotation.
  When equipped in the Curios Ring slot, a client-side renderer attaches it to
  the right hand using the same third-person item transform as when it is held,
  plus a Curios-only movement offset of -0.5 on X, -2 on Y, and +0.5 on Z,
  with a 360-degree rotation around X and a 270-degree rotation around Z.
  Three additional normal-Flash visual copies are displayed exactly as
  "Flash Ring (Wally West)", "Flash Ring (Wally West - Rebirth)", and
  "Flash Ring (Year One - Future Flash)". They deploy FSang's flash_wally,
  flash_rebirth, and flash_year_one_future sets respectively. FSang defines the
  Year One Future Flash set with chestplate, leggings, and boots only, so that
  ring intentionally leaves the helmet slot unchanged and stores those three
  official pieces. Each copy retains the full ring animation, storage,
  enchantment, repair, preservation, and removal-lock behavior.

Reverse Flash Ring:
  Adds fsang_improvements:reverse_flash_ring as a complete counterpart to the
  Flash Ring in FSang's Tools tab and the custom Curios Ring slot. It uses the
  supplied Reverse Flash closed, open, and nosuit OBJ meshes and their matching
  textures while retaining the Flash Ring's exact position and rotations.
  Sneak-right-clicking deploys the complete FSang Reverse Flash Classic armor
  set; repeating the action with all four pieces equipped stores the suit again.
  Enchantments persist on that specific ring, durability resets when stored,
  preexisting armor is preserved in empty hotbar slots, both visual transitions
  last two seconds, and the ring cannot be removed unless its mesh is closed.
  A separate fsang_improvements:reverse_flash_ring_dark_multiverse copy is
  displayed exactly as "Reverse Flash Ring (Dark Multiverse)". It reuses the
  Reverse Flash ring's supplied models and textures but exclusively deploys and
  stores FSang's four-piece Reverse Flash Dark Multiverse armor set.

Kid Flash Ring and Zoom Ring:
  Adds fsang_improvements:kid_flash_ring and fsang_improvements:zoom_ring to
  FSang's Tools tab and the custom Curios Ring slot. Kid Flash deploys the full
  Young Justice Kid Flash set; Zoom deploys the full CW Zoom set. Each uses its
  supplied closed, open, and nosuit meshes and textures. Kid Flash intentionally
  shares the normal Flash nosuit geometry while using the files supplied in its
  own folder. Both rings retain the same transforms, armor preservation,
  enchantment storage, durability repair, two-second transitions, duplication
  protection, and closed-only Curios removal as the existing Flash-family rings.
  The Zoom Ring alone uses a Curios Z offset of -0.06 while the other rings
  remain at Z +0.5.

Flash-family ring recipes:
  Adds JEI-compatible shaped recipes matching all eight supplied titled recipe
  images. Each recipe places the represented suit chestplate at top-center,
  leggings at middle-left, helmet at center when that suit has one, boots at
  middle-right, and its circuit at bottom-center. Four nuggets occupy the
  corners. Flash, Reverse Flash, and Kid Flash recipes use Gold Nuggets plus an
  FSang Golden Circuit; Zoom uses Iron Nuggets plus an FSang Iron Circuit. The
  Year One Future Flash recipe intentionally leaves its center slot empty.

Kryptonite Air testing block:
  Adds fsang_improvements:kryptonite_air for WorldEdit testing. It is
  non-solid, has no collision, drops nothing, cannot be broken by players, and
  uses a translucent green tint so filled regions remain visible. Like air, it
  can be replaced directly by placing another block in its position. After
  three minutes in a loaded chunk, it turns back into normal air. It currently
  applies Kryptonite Poisoning I whenever any part of a player's hitbox is
  inside it. After one continuous minute, the effect upgrades to level II.
  Leaving the Kryptonite Air resets that one-minute exposure timer. Every player
  takes half a heart of damage per second at level I and one heart per second at
  level II. Kryptonians also receive FSang's normal Kryptonite weaknesses.

Kryptonite Ring:
  Adds fsang_improvements:kryptonite_ring to FSang18's Heroes' Tools creative
  tab. Curios accepts it only in the custom Ring slot. While equipped there, it
  applies FSang's Kryptonite Poisoning at shard strength plus half a heart of
  damage per second to the wearer and all Kryptonian player variants within
  five blocks. A Kryptonian also receives the poisoning and damage while the
  ring is anywhere in their normal inventory or hotbar; backpacks, chests, and
  other external containers do not count. The five-block aura only works while
  the ring is equipped. One small green particle follows the wearer's right
  hand while the ring is equipped.
  Its JEI-compatible shaped recipe uses one FSang Kryptonite Shard in the
  top-center and Iron Nuggets in the other eight crafting-grid positions.

BioLock item:
  Adds fsang_improvements:biolock to FSang18's Heroes' Tools creative tab.
  It uses the supplied Biolock_neutral texture and stacks to one. Sneak while
  right-clicking it in the main hand with a complete matching FSang tech armor
  set equipped to activate BioLock on that set. All four marked armor names
  remain green to indicate activation. The BioLock and all four armor pieces
  share a persistent unique connection. Sneak-right-clicking that same equipped
  set with the same BioLock removes the connection, restores the armor's
  original names, and privately reports "BioLock Deactivated for <armor set>".
  Activation and deactivation can be repeated indefinitely. A connected
  BioLock cannot overwrite another set, and a connected set cannot be claimed
  by another BioLock. Armor NBT is updated in place without rewriting equipment
  slots, preventing FSang/Palladium from duplicating an armor piece. Every bound
  armor piece also stores the activating player's UUID, so protection follows
  the item through chests, dropped-item storage, and other inventories. If a
  different player equips a bound piece, the server immediately removes it
  from the armor slot and returns it to that player's inventory (or drops it if
  their inventory is full). If the owner is online, only the owner receives
  "<player> is trying to equip your armor". Notices are limited to once per
  second per player and BioLock connection to prevent chat spam.
  The BioLock uses its neutral texture while unbound, Biolock_unlocked while
  connected to armor used by its owner, and Biolock_locked after another player
  attempts to equip the protected armor. Deactivation restores the neutral
  texture, and a later legitimate owner equip restores the unlocked texture.
  Its shaped crafting recipe is JEI-compatible and uses four Iron Ingots in
  the corners, Diamond Circuits at top-center and bottom-center, Iron Nuggets
  at middle-left and middle-right, and unaugmented Human DNA in the center.

Command (operator permission level 2):
  /FSsymbiotetokens <add|set|remove> <targets> <amount>

Examples:
  /FSsymbiotetokens add Steve 5
  /FSsymbiotetokens set @a 10
  /FSsymbiotetokens remove @e[type=minecraft:player] 2

The target argument accepts player names and entity selectors including @s, @p,
@r, @a, and @e. Non-player entities selected by @e are ignored. Players without
an active natural or artificial symbiote are not modified and produce the red
message "Player Does Not Possess Symbiote".

Natural symbiotes use FSang.2.Symb.Nat. Artificial symbiotes use
FSang.2.Symb.Art. A player with both has both token pools updated.

Gamerule (disabled by default):
  /gamerule FSKeepAgeAfterDeath true
  /gamerule FSKeepAgeAfterDeath false

When enabled, the player's last living fsang_age property is preserved at death
and restored after respawn. When disabled, deaths use FSang's normal age reset.

Arc Reactor Model 1 gamerule (disabled by default):
  /gamerule FSallowarcreactor1 true
  /gamerule FSallowarcreactor1 false

When enabled, players with an active primary ability may equip only
fsang:iron_man_arc_reactor_1. All later Arc Reactor models, scarabs, rings,
Symbiotes, and other secondary equipment continue using the normal lock rules.
While the gamerule is true, the primary/secondary lock warning is completely
silenced, including during permitted Model 1 equips. Equipment enforcement and
warning delivery are server-authoritative so a client validation tick cannot
produce a duplicate or gamerule-ignoring message.
When the gamerule is changed back to false, Model 1 is removed from the Curios
body slot within half a second and returned to the player's inventory. Further
Model 1 equip attempts remain blocked while a primary ability is active.

Power stacking gamerule (stacking disabled by default):
  /gamerule FSAllowPowerStacking true
  /gamerule FSAllowPowerStacking false

When false, the server checks every player twice per second and permits only one
categorized Palladium power source in total. A player cannot retain two primary
powers, two secondary powers, or a primary together with a secondary. This
includes Curios item powers such as Scarabs, Arc Reactors, and rings. The power
the player already had is preserved and later power sources are removed.
Setting FSAllowPowerStacking to true permits multiple powers and immediately
disables both this one-power restriction and the older primary/secondary Curios
equipment lock.
FSang primary and secondary powers use their exact maintained categories.
Visible powers supplied by other Palladium addons are discovered dynamically;
common secondary naming conventions are recognized without adding those addons
as dependencies. Hidden and temporary implementation powers are ignored.
Curios slots are discovered through Curios' public equipped-item search rather
than a fixed slot list. Custom slots such as A New Corps' lantern_rings are
therefore included automatically, as are custom slots from other addons.
An item's Curios slot, namespace, name, and item tags never mark it as a power.
Only an actual, non-hidden Palladium power returned for that exact Curios item
and slot is counted. Ordinary equipment such as Sophisticated Backpacks remains
wearable in every Curios slot under both gamerules unless Palladium explicitly
assigns a real categorized power to that item.
Equipped Curios secondaries are counted as powers as well. This prevents a
Symbiote from activating while an Arc Reactor or another secondary is equipped,
and prevents an Arc Reactor or another secondary from being equipped while a
Symbiote or other categorized power is active. Rejected Symbiote containers are
not consumed.

Unique active-role gamerule (disabled by default):
  /gamerule FSonlyoneofeverything true
  /gamerule FSonlyoneofeverything false

When true, items remain fully obtainable through meteors, capture, crafting,
Creative inventory, /give, pickup, containers, and theft. The gamerule only
checks active Palladium powers. The first online player retaining a particular
active power is kept; if another player activates that same power, the
duplicate is immediately removed from the second player.
Natural Symbiotes are compared by their named Symbiote_Assigner identity, so
two active Venoms conflict while Venom and Carnage can coexist. A matching
True Symbioses /Symbioses form counts as the same named Symbiote and a duplicate
form is returned to the player's normal body. ReMorphed and True Symbioses
remain optional.
FSang primaries, secondaries, Arc Reactors, Iron Man powers, Lantern Rings,
Scarabs, Cosmic Boards, and other active role powers are covered. Visible
Palladium powers from other addons are discovered dynamically without making
those addons dependencies.
Population/species origins are shareable and do not claim a unique role:
Amazonian, Asgardian, Atlantean, Kree Hybrid, Kryptonian, Green Martian, and
Viltrumite variants. X-Gene/Mutant DNA, every Scarab color, Shazam, Sentry, and
named-character Arachnid DNA such as Peter Parker and Miles Morales remain
unique.
Both gamerules use the same Curios item-power detector. Scarabs are resolved
from curios:back with an explicit fsang:scarab_* fallback, because equipped
Scarabs do not appear in the player's intrinsic power-ID list. Each item color
is retained as its own identity: two Blue Scarabs conflict, while a Blue and a
Red Scarab are separate unique roles. A rejected Scarab is removed from the
back slot and returned to that player's inventory.
With FSAllowPowerStacking false and FSonlyoneofeverything true, each player is
limited to one power source while protected roles are independently prevented
from being active on multiple players.
Equipment and item-use events trigger targeted checks. Because Palladium has no
universal public event for every optional addon's direct power changes, a
lightweight per-player role fingerprint runs once per second as a fallback.
It queues a server-wide comparison only when that fingerprint actually changes;
the gamerule no longer scans every player on every server tick.
Powers deliberately granted with /FSgivepower or /FSsetpower bypass this
gamerule. Powers recorded in FSang DNA Combination's FSangDNAHybrids data also
bypass it, and the DNA Combination mod remains optional.

Meteor Symbiote capture:
  Symbiote silverfish released from a Mysterious Block receive one of FSang's
  30 natural identities with an equal 1-in-30 chance. The uniqueness gamerule
  does not change spawning, random selection, or item acquisition.
  Right-clicking one with an Empty
  Symbiote Container captures it and changes that container into the matching
  Stored Symbiote. Capturing removes the mob without triggering its death
  reward.
  The meteor Symbiote overlay is tinted using synchronized RGB scores matching
  its assigned name, such as red Carnage, green Lasher, yellow-orange Phage,
  or blue Curse. The compatibility layer references FSang's installed texture;
  no FSang texture is included in this mod.

Targeted age command (operator permission level 2):
  /FSang.Age <add|set|remove> <amount> <targets>

Examples:
  /FSang.Age add 20 Steve
  /FSang.Age set 100 @a
  /FSang.Age remove 5 @e[type=minecraft:player]

The target is required. Player names and entity selectors are supported;
non-player entities selected by @e are ignored.

DNA age carryover:
  Equipping FSang primary DNA preserves the player's existing age instead of
  allowing Viltrumite or Asgardian DNA initialization to reset it. FSang's
  fsang_age property and FSang.Age scoreboard are synchronized during equip,
  so the new DNA's age-based health, strength, and armor buffs immediately use
  the full carried age. Symbiote bond age remains a separate progression.

Faster Viltrumite age scaling:
  Every Viltrumite variant now gains one full heart, one attack-damage point,
  and one armor point per 20 age. This supplements FSang's native slow scaling
  without replacing or copying its power files. Existing DNA age caps remain.

Primary/secondary ability lock:
  While any supported FSang primary ability is active, ability equipment cannot
  be placed in Curios body, back, or ring slots. This covers arc reactors
  (including Model 1), Blue Beetle scarabs, and ring-style ability items. A
  rejected item stays in the inventory slot it came from. FSang secondary
  powers granted by another route are removed automatically. Rejected
  Symbiotes are restored to the same hand slot so FSang cannot consume them.
  Exception: all six arachnid DNA powers can equip any natural or artificial
  Symbiote. When FSallowarcreactor1 is true, Model 1 is also allowed; later Arc
  Reactors, scarabs, rings, and other secondaries remain locked.

Reusable keys:
  Iron, Golden, Diamond, and Netherite Keys are returned to the player's
  inventory after use instead of being consumed.

Stackable Kryptonite:
  Kryptonite Shards stack to 64. Per-item exposure NBT is removed completely so
  matching Kryptonite stacks combine normally. FSang's player-side poisoning
  behavior remains active.

Forward destructive flight:
  At 100% destructive flight, supported Kryptonian and Viltrumite powers mine
  the player's body-sized path along the actual movement direction before
  collision is calculated. The sweep extends two blocks past the upcoming
  movement. Only blocks intersecting that projected body path are affected.
  Matching client-side collision prediction prevents a server update delay
  from slowing the player before the destruction packet arrives.

Admin power commands (operator permission level 2):
  /FSgivepower <power> <targets>   Adds a loaded power without removing others.
  /FSsetpower <power> <targets>    Replaces all powers with the selected power.
  /FSremovepower <power> <targets> Removes one selected power.
  /FSclearpowers <targets>         Removes every power from the selected players.

Power IDs are validated against Palladium's live registry and suggested while
typing. Player names and selectors such as @a are supported. The abandoned
downward-flight locking experiment is not included.

After a power is removed, cleared, or replaced, current health is clamped to
the recalculated maximum after Palladium removes the old health modifiers.
Health still supplied by remaining powers, equipment, and effects is preserved.
