Star-Up — Gear Upgrade Progression

How equipment scales when you star up (升星) from ★0 → ★1 → ★2 → ★3.

Source: reverse-engineered from MainScripts.dll (HybridCLR HotUpdate). Full decompiled C# in data-session/intermediate/decompiled_equip.cs (EquipHelper.GetEquipAttr + EquipHelper.GetEquipBond). The math is NOT stored in any DataTable — it's hot-loaded code, so re-extract + re-decompile after every patch (datamine-extractor agent does this automatically).

Star cap

EquipHelper.GetMaxStarByIDs(string IDs) returns 3 for every gear in the game. So max star = ★3 across all rarities (SS / S / A / B / C). No per-step cap variation, no per-IDs override.

To star up gear: collect duplicates of the same gear (same IDs), spend the duplicates + gold per EquipHelper.GetUpgradeRequireNum(step, currentStar):

GetUpgradeRequireNum:
  if Step ∈ {SS}: 1 dup per star (always)
  else: 1 + currentStar × 4   →  ★0→★1: 1 dup,  ★1→★2: 5 dups,  ★2→★3: 9 dups

Gold cost is per-step lookup via PriceDataTable.UpgradePrice(step) (not yet decompiled — values shown in-game directly).

Stat scaling formula

Each gear has an UpgradeAttr field listing 1–3 stat names (CN keys, e.g. 精神,生命,初始魔力 → SPI/HP/Mana). At star s, the game cycles through that list and adds +1 to each named stat per iteration. Iteration count depends on the gear's Step:

Step equipUpgTimes Iters at ★1 Iters at ★2 Iters at ★3
SS 8 8 16 24
S 4 4 8 12
A 2 2 4 6
B 1 1 2 3
C 1 1 2 3

The cycle is round-robin — at ★3 SS, 24 iterations across 3 stats means +8 to each stat in UpgradeAttr. At intermediate stars the distribution can be uneven (e.g. SS at ★2: 16 iters across 3 stats → 6/5/5).

Stat dispatch (Attr.Add(string type, int value))

CN key in UpgradeAttr maps to Attr field as follows:

UpgradeAttr (CN) Attr field Display
生命 CONS HP
力量 STR STR
精神 INT SPI
敏捷 DEX AGI
速度 SPD SPD
幸运 Luck LUK
韧性 Tough Toughness
全属性 STR + INT + DEX All Stats (3 fields at once)
魔力上限 MaxMagic Max Mana
初始魔力 InitialMagic Starting Mana
行动回魔 ActionMagic Action Mana
受击回魔 HitMagic Hit Mana

These CN keys are the canonical lookup keys in source data — wiki output displays the EN equivalent in the right column.

Bond scaling formula

Each gear has 3 bond slots: Pure (basic), Title (theme), Enhance (skill). Each slot stores Name[BaseLevel] (e.g. Eternal[1]). On star up, the slot at index i gets +1 if star > i:

Slot Index Unlocks at
Pure 0 ★1
Title 1 ★2
Enhance 2 ★3

So at ★3 every bond slot gets +1 to its base level. Final bond level is then capped by the bond's max tier (= number of comma-separated entries in BondDataTable.Value1, e.g. Sharp/Sturdy = 6 tiers max, Fair Trade = 2 tiers max).

Legacy/Heritage adds another +1 to every bond on top of the star-up bonus (same MaxLevel cap applies). Legacy does NOT modify raw stats.

Verification examples

Live decompile-verified at all 4 stars:

Z00000_942 Philosopher's Stone — SS · UpgradeAttr = SPI/HP/Mana · base INT 10 / CONS 5 / Mana 5

INT CONS Mana Pure Title Enhance
0 10 5 5 Eternal[1] World[1] Fair Trade[1]
1 13 8 7 Eternal[2] World[1] Fair Trade[1]
2 16 10 10 Eternal[2] World[2] Fair Trade[1]
3 18 13 13 Eternal[2] World[2] Fair Trade[2]

Z50006_131 Hero Sword — S · UpgradeAttr = STR/HP/Tough · base STR 6 / CONS 2 / Tough 2

STR CONS Tough Pure Title Enhance
0 6 2 2 Frustrate[1] Heroine[1] Heroine's Blessing[1]
1 8 3 3 Frustrate[2] Heroine[1] Heroine's Blessing[1]
2 9 5 4 Frustrate[2] Heroine[2] Heroine's Blessing[1]
3 10 6 6 Frustrate[2] Heroine[2] Heroine's Blessing[2]

For per-gear progression tables across all 1234 gear: see <span class="broken-link" title="missing: starup-gear-info">starup-gear-info</span> (split into 5 per-tier files: <span class="broken-link" title="missing: ss-gear">ss-gear</span>, <span class="broken-link" title="missing: s-gear">s-gear</span>, <span class="broken-link" title="missing: a-gear">a-gear</span>, <span class="broken-link" title="missing: b-gear">b-gear</span>, <span class="broken-link" title="missing: c-gear">c-gear</span>).

Implementation notes