Zakum Helmet as a logo

mason's maple matrix

AboutChangelog

Informal Bug Report

Erel Bugs - PTS v.269

A comprehensive breakdown of the bugs I'm currently aware of with Erel as of PTS v.269, with supporting evidence pulled from the skill data. XML dumps used for demonstration purposes.

1.Boost Node FailuresMajor

5th job Enhancement Nodes that grant +120% Final Damage are not registering the upgraded SHINE versions of their target skills in the psdSkill (passive skill data) property.

1.1SHINE Spear of Lugh and Stellar Strike Not Boosted

  • Boost Node: Spear of Lugh Boost - Skill ID 400004390
  • Effect: +120% Final Damage to Spear of Lugh
  • Bug: Does NOT apply to SHINE Spear of Lugh, nor to the activation skill Stellar Strike.

Proof - psdSkill only lists the pre-SHINE chain:

<dir name="psdSkill">
  <dir name="181001000" /> <!-- Spear of Lugh (1st job) -->
  <dir name="181101003" /> <!-- Enhanced Spear of Lugh I -->
  <dir name="181111002" /> <!-- Enhanced Spear of Lugh II -->
  <dir name="181121000" /> <!-- Enhanced Spear of Lugh III -->
</dir>
No entry exists for SHINE Spear of Lugh or Stellar Strike.

1.2SHINE Fury of Roan Not Boosted

  • Effect: +120% Final Damage to Fury of Roan
  • Bug: Does NOT apply to SHINE Fury of Roan.

Proof:

<dir name="psdSkill">
  <dir name="181101000" /> <!-- Fury of Roan -->
  <dir name="181101001" /> <!-- Second Fury of Roan; carries values for [Shining Sentinel].
                                Has 0 animation (used when chained with Lugh). -->
  <dir name="181121004" /> <!-- Enhanced Fury of Roan I -->
  <dir name="181121005" /> <!-- Enhanced Fury of Roan I duplicate; 0 animation chain variant. -->
</dir>
No entry for SHINE Fury of Roan.

1.3SHINE Sting of Roan Not Boosted

  • Effect: +120% Final Damage to Sting of Roan
  • Bug: Does NOT apply to SHINE Sting of Roan.

Proof:

<dir name="psdSkill">
  <dir name="181121001" /> <!-- Sting of Roan; 0 animation chain variant. -->
  <dir name="181121002" /> <!-- Sting of Roan. -->
</dir>
No entry for SHINE Sting of Roan.

2.Shining Sentinel Not Upgraded on SHINE MasteryMajor

When the player unlocks SHINE Fury of Roan and SHINE Sting of Roan, the Shining Sentinel sub-skills they trigger should be upgraded to a stronger version. They are not.

Intended values (level 30):

SkillHitsDamage
SHINE Fury of Roan - Shining Sentinel6200%
Fury of Roan - Shining Sentinel4150%

Reality: only one skill exists for each, and it never changes.

  • 181101002 - Shining Sentinel (Fury of Roan)
  • 181121003 - Shining Sentinel (Sting of Roan)

Evidence - extraSkillInfo Comparison

Fury of Roan (pre-SHINE):

<dir name="181101000"> <!-- Fury of Roan -->
  <dir name="extraSkillInfo"> <!-- Skills cast when this is used -->
    <dir name="0">
      <int32 name="skill" value="181101002" /> <!-- Shining Sentinel (Fury of Roan) -->
      <int32 name="delay" value="0" />
    </dir>
    <dir name="1">
      <int32 name="skill" value="400011171" /> <!-- Sentinel Captain: Fury of Roan -->
      <int32 name="delay" value="0" />
    </dir>
  </dir>
</dir>

SHINE Fury of Roan:

<dir name="181141002"> <!-- SHINE Fury of Roan -->
  <dir name="extraSkillInfo">
    <dir name="0">
      <int32 name="skill" value="181101002" /> <!-- Shining Sentinel (Fury of Roan) - SAME ID as above -->
      <int32 name="delay" value="0" />
    </dir>
    <dir name="1">
      <int32 name="skill" value="400011174" /> <!-- Sentinel Captain: SHINE Fury of Roan -->
      <int32 name="delay" value="0" />
    </dir>
  </dir>
</dir>
Only the Sentinel Captain (summoned via Eternal Guardian) is upgraded. Shining Sentinel reuses the same ID and is therefore never improved.

Evidence - Shining Sentinel Skill Definition

<dir name="181101002">
  <dir name="common">
    <int32 name="maxLevel" value="20" />
    <string name="damage" value="50+5*x" />        <!-- (50 + 5*20) = 150%; no path to 200% -->
    <string name="mobCount" value="3" />
    <string name="attackCount" value="4" />        <!-- Hardcoded 4 hits; no path to 6 -->
    <vector name="lt" value="-617, -490" />
    <vector name="rb" value="721, 170" />
    <string name="time" value="10" />
    <string name="attackDelay" value="2900" />
    <string name="s" value="80" />
  </dir>
</dir>
No variable exists to increase damage to 200% or attack count to 6.
The same bug exists for Sting of Roan; proof is identical and omitted.

3.Sentinel Captain - Wrong Hit Counts and Damage FormulaMinor

The Eternal Guardian tooltip states that Captain's Fury of Roan and Captain's Sting of Roan should each hit 8 enemies, 13 times, for 556% at level 30 (formula 256 + 10*x).

The actual data is wrong for both - and they're wrong in different ways, suggesting their values got crossed.

3.1Sentinel Captain: Sting of Roan (400011172)

  • Wrong: mob count (6 instead of 8) and damage formula
  • Right: attack count (13)
<dir name="400011172"> <!-- Sentinel Captain: Sting of Roan -->
  <dir name="common">
    <int32 name="maxLevel" value="30" />
    <string name="cooltime" value="10" />
    <string name="damage" value="256+6*x" />   <!-- 436% at lvl 30; tooltip expects 256+10*x = 556% -->
    <string name="attackCount" value="13" />   <!-- Correct -->
    <string name="mobCount" value="6" />       <!-- Incorrect; should be 8 -->
    <vector name="lt" value="-652, -467" />
    <vector name="rb" value="445, 84" />
    <string name="x" value="600" />
    <string name="ignoreMobpdpR" value="100" />
    <string name="u" value="-60" />
  </dir>
</dir>

3.2Sentinel Captain: Fury of Roan (400011171)

  • Wrong: attack count (6 instead of 13) and damage formula
  • Right: mob count (8)
<dir name="400011171"> <!-- Sentinel Captain: Fury of Roan -->
  <dir name="common">
    <int32 name="maxLevel" value="30" />
    <string name="cooltime" value="10" />
    <string name="damage" value="256+6*x" />   <!-- 436% at lvl 30; tooltip expects 256+10*x = 556% -->
    <string name="attackCount" value="6" />    <!-- Incorrect; should be 13 -->
    <string name="mobCount" value="8" />       <!-- Correct -->
    <vector name="lt" value="-652, -467" />
    <vector name="rb" value="445, 84" />
    <string name="x" value="780" />
    <string name="ignoreMobpdpR" value="100" />
    <string name="u" value="-60" />
  </dir>
</dir>
It looks like attack count and mob count got swapped between the two skills, and both share an incorrect damage scaling coefficient.
It is important to note that these only apply to the NON-SHINE versions of Sentinel Captain. SHINE Sentinel Captain has the correct numbers.
Another thing to note about Sentinel Captain is that while this might not be a bug per-se, when he copies the attacks for Fury of Roan and Sting of Roan, they are not boosted by the 5th job boosts for Fury/Sting of Roan. In Comparison, the 6th job “Destruction of Roan Boost” DOES boost Sentinel Captain's Destruction of Roan copy. Additionally, the 6th job “Eternal Guardian Boost” applies boosts to Sentinel Captain's Fury and Sting of Roan (both SHINE and non-SHINE). I'm not comfortable labelling this is a bug, but it's worth noting for balance reasons.

4.Sentinel Rise UnderperformingMajor

Sentinel Rise is dealing less damage than expected, even though the values in the files appear correct. There is likely a hidden interaction at play.

Test conditions:

  • Level 16 Erda Shower → 690% per hit.
  • Shining Sentinels expected: 690% (150 base + 160%p + 180%p + 200%p).
  • As expected, Erda Shower and Shining Sentinel deal roughly equal damage.

The problem:

  • Sentinel Rise should deal 8 summons × 12 hits × 940% per hit.
  • In the reference test below, Erda Link “Sentinel Rise Boost” was activated, which adds +11% Final Damage, so each hit should land at 940% × 1.11.
  • Maximum per-hit damage on Sentinel Rise should therefore far exceed Shining Sentinel - but it lands lower.

Reference image: BA screenshot

Status: root cause unknown. Numbers look right in the files; in-game damage is lower than the formula predicts.

5.Ascent (Radiant Spear) - Wrong Tooltip"Minor

5.1Radiant Spear is Actually a 2-Part Skill

Two Ascent skills exist in the files:

181141502 - Visible Ascent

PropertyValue
Damage formula607 + 125 * level 4357% at level 30
Attack count12
Activation count26
DescriptionMP Cost: #mpCon, Invincible during casting
Throws a spear imbued with the penetrating power of light, dealing #damage% damage to up to #mobCount enemies #attackCount times, #dummyStr times

181141503 - Hidden Ascent

PropertyValue
Damage formula1000 + 210 * level 7300% at level 30
Attack count15
Activation countNot listed
DescriptionMP Cost: #mpCon, Invincible during casting
Throws a spear imbued with the penetrating power of light, dealing #damage% damage to up to #mobCount enemies #attackCount times, #dummyStr times
Afterwards, waves of light attack enemies #dummyStr4 times, dealing #dummyStr2% damage #dummyStr3 times
Ignore Defense: +#dummyStr5%, Boss Damage: +#dummyStr6%, Critical Rate: #cr%
None of the dummyStr variables are defined, but the in-game cast produces 357 hits, implying an activation count of 3 for the hidden part.

Conclusion: Radiant Spear is a 2-part skill where the tooltip describes only the first part:

  • Part 1: 4357% × 12 hits × 26 activations
  • Part 2 (hidden): 7300% × 15 hits × 3 activations

5.2Innate Stat Bonuses Not Shown In-Game

Although the hidden second-ascent description mentions them, the in-game tooltip omits:

  • +60% Ignore Defense
  • +40% Boss Damage
  • +100% Critical Rate

These are baked into the Ascent skill but never communicated to the player.

Update - 2026-06-07

More bugs!

I also added severity labels - these are obviously subjective!

6.Radiant Sentinel - Wrong Values + Extra HitsMajor

Radiant Sentinel is an attack summoned when attacking with Spear of Lugh, granted by the 5th job passive Eternal Light.

The tooltip of Eternal Light states that Radiant Sentinel should attack 6 times for 250% damage at level 30, using the formula 130 + 4 * level.

Eternal Light Tooltip
Eternal Light Tooltip

A battle analysis (see image below) of the skill makes it immediately clear those numbers are wrong. Inspecting the skill data confirms it:

<dir name="400011166"> <!-- Radiant Sentinel (Eternal Light) -->
  <dir name="common">
    <int32 name="maxLevel" value="30" />
    <string name="damage" value="600+6*x" />   <!-- Actual damage the skill applies -->
    <string name="time" value="10" />
    <string name="mobCount" value="6" />       <!-- Mobs hit per cast -->
    <string name="attackCount" value="8" />    <!-- Hits per cast -->
    <vector name="lt" value="-617, -490" />
    <vector name="rb" value="721, 170" />
    <string name="attackDelay" value="2900" />
    <string name="s" value="90" />
    <string name="cooltime" value="10" />
  </dir>
</dir>
Notably, attackCount and mobCount have swapped values vs. what the Eternal Light tooltip describes (tooltip implies 6 hits, 8 mobs; data shows 8 hits, 6 mobs).

While the damage value (780% at level 30) looks correct when compared to other skills, the skill does not hit the correct number of times in-game.

Battle Analysis of Radiant Sentinel hititng 12 times
Radiant Sentinel should hit 8 times; not 12.
I have no idea what causes this - nothing in the data that I've been able to discern explains this.

7.Origin (Fall of Melin) Hits 1540 Times Instead of 1554Minor

As with all 2-part skills, Fall of Melin is split across two skill IDs:

  • 181141500 - Part 1: 14 hits × 70 activations, 254 + 7 * level
  • 181141501 - Part 2: 14 hits × 40 activations, 219 + 7 * level
<dir name="181141500"> <!-- Tooltip shown for Fall of Melin -->
  <dir name="common">
    <int32 name="maxLevel" value="30" />
    <string name="mpCon" value="1200" />
    <string name="mobCount" value="15" />
    <string name="attackCount" value="14" />   <!-- Part 1 attack count -->
    <string name="damage" value="254+7*x" />   <!-- Part 1 damage -->
    <string name="x" value="70" />             <!-- Part 1 activations -->
    <string name="y" value="219+7*x" />        <!-- Tooltip placeholder: Part 2 damage -->
    <string name="z" value="15" />             <!-- Tooltip placeholder: Part 2 mob count -->
    <string name="v" value="14" />             <!-- Tooltip placeholder: Part 2 attack count -->
    <string name="s" value="41" />             <!-- Tooltip placeholder: Part 2 activations -->
    <string name="cooltime" value="360" />
    <string name="updatableTime" value="7000" />
    <string name="ndTime" value="8440" />
    <string name="ignoreMobpdpR" value="log10(x)*20+log30(x)*30" />
    <string name="bdR" value="log20(x)*20+log30(x)*30" />
    <vector name="lt" value="-1200, -800" />
    <vector name="rb" value="1200, 800" />
  </dir>
</dir>

Tooltip template string:

MP Cost: #mpCon, Invincible during casting
Max Enemies Hit: #mobCount, Damage: #damage%, Number of Attacks: #attackCount, Blows: #x
Afterwards, Damage: #y%, Number of Attacks: #v, Blows: #s
Cooldown: #cooltime sec
<dir name="181141501">
  <dir name="common">
    <int32 name="maxLevel" value="30" />
    <string name="damage" value="219+7*x" />
    <string name="mobCount" value="15" />
    <string name="attackCount" value="14" />
    <string name="x" value="40" />             <!-- Part 2 activations -->
    <vector name="lt" value="-1200, -800" />
    <vector name="rb" value="1200, 800" />
  </dir>
</dir>
Note: the tooltip placeholder s = 41 in 181141500 (the tooltip) does not match 181141501.x = 40. The tooltip claims Part 2 activates 41 times, but the per-skill data says 40.

Testing in-game with a battle analysis reveals the actual behavior:

  • Part 1 deals 966 hits (= 14 × 69 activations)
  • Part 2 deals 574 hits (= 14 × 41 activations)
  • Total: 1540 hits
BA showing Part 1 only doing 966 hits
BA showing Part 2 doing 574 hits
BA showing total hit count of 1540

The cause is the multiAttackInfo array, which is what the game actually uses to schedule hits. Each entry triggers one cast of the referenced skill ID (which then deals attackCount = 14 hits). The array is presumably generated automatically - and it generated 110 entries instead of 111 since part 2 has 1 fewer hit than intended. As a result, the auto-generation appears to have messed up the sequencing.

Truncated for clarity:

<dir name="multiAttackInfo">
  <dir name="0"><int32 name="attackTime" value="30"/><int32 name="x" value="181141500"/></dir>
  <dir name="1"><int32 name="attackTime" value="30"/><int32 name="x" value="181141500"/></dir>
  ... <!-- entries 2 through 67 all reference 181141500 -->
  <dir name="68">
    <int32 name="attackTime" value="30" />
    <int32 name="x" value="181141500" />
  </dir>
  <dir name="69">                                  <!-- SHOULD still be 181141500, since this is 0-indexed -->
    <int32 name="attackTime" value="2300" />
    <int32 name="x" value="181141501" />            <!-- but switches to part 2 here -->
  </dir>
  <dir name="70"><int32 name="attackTime" value="10"/><int32 name="x" value="181141501"/></dir>
  ... <!-- entries 71 through 108 all reference 181141501 -->
  <dir name="109"><int32 name="attackTime" value="10"/><int32 name="x" value="181141501"/></dir>
</dir>

What this tells us:

  • 0–68 (69 entries) trigger Part 1 → 69 × 14 = 966 hits
  • 69–109 (41 entries) trigger Part 2 → 41 × 14 = 574 hits
  • Total: 110 entries, when there should be 111 (70 + 41).
The generator appears to have honored the tooltip placeholder s = 41 for Part 2's entry count, but came up one entry short overall. Part 2 got its intended 41 activations; Part 1 silently absorbed the missing one, ending up with 69 instead of 70.

Damage breakdown at level 30:

  • Part 1: 254 + 7 × 30 = 464% per hit
  • Part 2: 219 + 7 × 30 = 429% per hit
ScenarioMathTotal
Expected(464 × 14 × 70) + (429 × 14 × 41)700,966%
Actual(464 × 14 × 69) + (429 × 14 × 41)694,470%
Origin is dealing roughly ~0.9% less damage than intended. Obviously the origin is very weak in general, but this bug does not have a significant impact.

8.Ascent and Origin Do Not Play Female AnimationsTrivial

Pretty self-explanatory. Female-character animations for Origin and Ascent exist in the game files but aren't being used - female Erel characters play the male animations for both skills.

9.Destruction of Roan - Extra Hit During Eternal GuardianMinor

Destruction of Roan hits one extra time when the Eternal Guardian buff is active.

<dir name="400011176"> <!-- Destruction of Roan -->
  <dir name="common">
    <int32 name="maxLevel" value="30" />
    <string name="mpCon" value="450" />
    <string name="damage" value="680+40*x" />
    <string name="attackCount" value="8" />     <!-- Hits per activation -->
    <string name="updatableTime" value="1800" /><!-- Hold duration in ms -->
    <string name="mobCount" value="15" />
    <string name="attackDelay" value="120" />   <!-- Delay between activations -->
    <string name="cooltime" value="120" />
    <vector name="lt" value="-540, -600" />
    <vector name="rb" value="99, 25" />
    <string name="s" value="40" />
    <string name="t" value="1.8" />
    <string name="u" value="300" />
  </dir>
</dir>

Math: with a 1800ms hold duration and 120ms delay between activations, the skill should activate
1800 / 120 = 15 times, each dealing 8 hits → 120 hits total. In normal use, that's exactly what we see.

However, when Eternal Guardian is active, Destruction of Roan instead hits 128 times (16 activations) - alongside the Sentinel Captain doing its own 128 hits. It's not clear from the visible data why the extra activation occurs.

BA of Destruction of Roan hits
BA of Destruction of Roan hits + Sentinel Captain during Eternal Guardian

10.Erda Link - Cooldown Reduction Rush Stones Use Wrong StatMinor

Erel Light has five Rush Stones that should grant Skill Cooldown Reduction. Three are wired up correctly, but two are linked to the wrong stat. The name, description, and icon all say cooldown - but the actual stat being granted is something else.

Example of an incorrect stone - name, description, and icon all reference cooldown, but the applied stat is abnormalDamR (Abnormal Status Damage Rate):

<dir name="37">
  <int32 name="maxLevel" value="1" />
  <dir name="passive">
    <dir name="0">
      <dir name="0">  <!-- Value when inactive -->
        <int32 name="abnormalDamR" value="0" />  <!-- WRONG STAT -->
      </dir>
      <dir name="1">  <!-- Value when active -->
        <int32 name="abnormalDamR" value="1" />  <!-- WRONG STAT -->
      </dir>
    </dir>
  </dir>
  <string name="name" value="Skill Cooldown" />
  <string name="desc" value="Decreases skill cooldown by 1%." />
</dir>

Example of a correct stone - uses coolTimeR as expected:

<dir name="36">
  <int32 name="maxLevel" value="1" />
  <dir name="passive">
    <dir name="0">
      <dir name="0">
        <int32 name="coolTimeR" value="0" />
      </dir>
      <dir name="1">
        <int32 name="coolTimeR" value="1" />
      </dir>
    </dir>
  </dir>
  <string name="name" value="Skill Cooldown" />
  <string name="desc" value="Decreases skill cooldown by 1%." />
</dir>
The other broken stone is Rush Stone ID 41 - same issue, both should be granting coolTimeR instead of abnormalDamR.

11.Stellar Strike - Damage Doesn't Match TooltipMajor

SHINE Spear of Lugh's tooltip has a couple of issues. The big one: Stellar Strike - the follow-up attack it summons — does noticeably less damage in-game than the tooltip claims.

How the skills are wired: when you cast SHINE Spear of Lugh (181141000), its extraSkillInfo summons Eternal Light and Stellar Strike (181141001):

<dir name="181141000"> <!-- SHINE Spear of Lugh -->
  <dir name="common">
    <int32 name="maxLevel" value="30" />
    <string name="mpCon" value="20+2*d(x/5)" />
    <string name="damage" value="470+x*8+4" />  <!-- SHINE Spear of Lugh's own damage -->
    <string name="mobCount" value="8" />
    <string name="attackCount" value="8" />
    <vector name="lt" value="-482, -280" />
    <vector name="rb" value="20, 60" />
    <string name="y" value="9" />
    <string name="x" value="15" />
    <string name="s" value="565+x*2+10" />      <!-- Tooltip placeholder: Stellar Strike damage. 635% at lvl 30. -->
    <string name="u" value="10" />              <!-- Tooltip placeholder: Stellar Strike attack count -->
    <string name="a" value="6" />               <!-- Tooltip placeholder: Stellar Strike chase cut count -->
  </dir>
  <dir name="extraSkillInfo"> <!-- Skills cast when SHINE Spear of Lugh is used -->
    <dir name="0">
      <int32 name="skill" value="400011165" /> <!-- Eternal Light -->
      <int32 name="delay" value="0" />
    </dir>
    <dir name="1">
      <int32 name="skill" value="181141001" /> <!-- Stellar Strike -->
      <int32 name="delay" value="0" />
    </dir>
  </dir>
</dir>

11.1Tooltip Damage Formula vs Actual Skill DataMajor

The tooltip displays Stellar Strike's damage using placeholder s on SHINE Spear of Lugh (above), which evaluates to 565 + x*2 + 10 635% at level 30.

But the actual Stellar Strike skill (181141001) defines its damage as 320 + 8*x560% at level 30:

<dir name="181141001"> <!-- Stellar Strike -->
  <dir name="common">
    <int32 name="maxLevel" value="30" />
    <string name="attackCount" value="10" />
    <string name="mobCount" value="15" />
    <string name="damage" value="320+8*x" />    <!-- Actual damage. 560% at lvl 30. -->
    <vector name="lt" value="-784, -437" />
    <vector name="rb" value="84, 32" />
    <string name="updatableTime" value="2800" />
  </dir>
</dir>

Verification - compare Stellar Strike against Erda Shower (690% per hit at level 16).

ScenarioStellar Strike damageExpected gap vs Erda Shower (690%)
If tooltip is correct635%~8% (690 / 635)
If skill data is correct560%~23% (690 / 560)

Test conditions: 198 attacks each side (3 Stellar Strike procs × 66 hits and 33 Erda Shower casts × 6 hits). +20% Boss / +20% Damage Hyper Skills for Spear of Lugh were removed to make the math simple.

Battle analysis comparing 198 Stellar Strike hits against 198 Erda Shower hits
Stellar Strike vs Erda Shower, 198 hits each - observed cumulative damage gap is ~21.5%
The observed gap (~21.5%) lines up almost exactly with Stellar Strike actually dealing 560%, not the tooltip's claimed 635%. The skill is under-tuned by roughly 12% relative to its tooltip.

11.2Number of Chase Cuts Uses Wrong PlaceholderTrivial

The SHINE Spear of Lugh tooltip template string references #dummyStr where it should reference #a for the chase cut count (a = 6 in the skill data above):

MP Cost: #mpCon, Max Enemies Hit: #mobCount, Damage: #damage%, Number of Attacks: #attackCount
Upon using Spear of Lugh #y times, the Sentinel Captain is summoned and strikes.
#c[Blown]#: Max Enemies Hit: #x, Damage: #s%, Number of Attacks: #u, Number of Chase Cuts: #dummyStr
#dummyStr is undefined, so the chase cut count never renders in the tooltip. Should be #a.