Infinite Upgrades

Infusion

Infusion is the gear-upgrade system. It is server-authoritative: the server validates the slots, computes the chance and soul cost, rolls the attempt, consumes souls, and writes the result.

Eligible Items

An item is accepted by the gear slot if it is one of these:

  • A mining tool: pickaxe, shovel, axe, hoe, or another DiggerItem fallback.
  • A combat item with managed combat attributes.

Default managed combat attributes:

  • Attack Damage
  • Attack Speed
  • Armor
  • Armor Toughness
  • Knockback Resistance

Mining tools can also gain Block Speed, a custom Infinite Upgrades stat.

Infusion Screen

Right-clicking an Angel or Demon statue opens that side's ritual screen. The left panel is the active ritual, the right panel is the scrollable details view, and the reputation bar sits above the main ritual panel.

Neutral reputation bar
Angel infusion main panel Angel infuse button
Angel infusion details panel
Angel screen: the fill rises over the ritual panel, then the success/fail sprite plays above the output area.
Neutral reputation bar
Demon infusion main panel Demon infuse button
Demon infusion details panel
Demon screen: the layout is the same, but the textures, button, progress fill, and result animation switch to Demon assets.
What the screen is showing

The details panel updates from the server-backed menu state. It can show the next attempt's chance, the exact soul cost once known, possible stat changes, existing totals, and recent history. During an active ritual, the progress fill animates over the main panel and the infuse button is locked until the server finishes the attempt.

Angel vs Demon

Angel

Angel upgrades every eligible stat on the item in one successful batch. For example, a sword with Attack Damage and Attack Speed can receive both stat changes at once.

Demon

Demon upgrades one eligible stat per successful batch. When multiple stats are eligible, Demon uses configured weights to choose which stat is touched.

Choosing a side

Angel is better when you want steady progress across the whole item. Demon is better when you are willing to gamble on one stat becoming much stronger.

Chance

Base success chance comes from the server config and the item's current upgrade level. The config can use:

  • A flat decrement curve.
  • An exponential curve.
  • Exact per-level overrides.

Reputation is then added on top as a bonus or penalty for the side you are using. The final chance is clamped between 0% and 100%.

Soul Cost

Soul cost is based on the item's current level and is computed server-side. The default model is:

TEXT
cost = baseCost * (exponentialBase ^ currentLevel) * scale

Manual level overrides can replace the formula for specific target levels.

Preview And Details

The output slot can show a preview item before the attempt is finished. Preview stacks are marked internally and cannot be taken as final results.

The details panel can show:

  • Final chance.
  • Base chance and reputation adjustment.
  • Soul cost and available souls.
  • Possible upgrades for the current item.
  • Current upgrade totals.
  • Recent upgrade history.

Success

On success:

  • The item level increases by 1, up to the configured max level.
  • The touched stat steps are written to upgrade history.
  • Totals are recalculated from the frozen base values and stored step sums.
  • The item tooltip receives a visual +N level suffix.
  • Attribute tooltip lines show the total upgrade percent where possible.
  • Mining tools show Block Speed when present.

Failure

On failure:

  • Reputation still moves toward the side used, using the failure delta.
  • The latest successful upgrade batch is rolled back when possible.
  • The output item is returned with the downgraded state.
Failure can remove progress

Failures do not destroy the item, but they can undo the latest level of upgrade progress. This is why reputation, chance, and soul cost matter before pressing the button.

Upgrade Data

Upgraded items store data under iu_upgrade:

  • level: current upgrade level.
  • bases: frozen base values for managed attributes.
  • totals: current summed percent per stat.
  • history: each success or downgrade batch.

The frozen-base model lets the mod recompute upgraded values consistently instead of repeatedly stacking floating-point edits onto the current item.

Block Speed Details

Block Speed is stored separately as iu_tool_speed_bonus, as a fractional value. For example, 0.15 means +15%.

The block-breaking hook only applies the bonus when:

  • The held item is a mining tool.
  • The block is being broken with the correct tool.
  • The current computed break speed is above zero.

The resulting speed is:

TEXT
newSpeed = originalSpeed * (1 + blockSpeedBonus)

Support This Project

Like this wiki and these mods?

Every bit of support helps me keep building features, writing docs, and shipping updates.

Back to top