Skip to content

Split Personality (Shadow variant) silently fails, "Shadow" missing from tree class data, alternate start never activates #2163

@norbert-berenyi

Description

@norbert-berenyi

Check version

  • I'm running the latest version of Path of Building and I've verified this by checking the changelog

Check for duplicates

  • I've checked for duplicate open and closed issues by using the search function of the issue tracker

Check for support

  • I've checked that the behaviour is supposed to be supported. If it isn't please open a feature request instead (Red text is a feature request).

What platform are you running Path of Building on?

Windows

What is the behaviour in-game?

The Split Personality Ruby (Shadow variant) with the mod Can Allocate Passive Skills from the Shadow's starting point, socketed into an allocated jewel socket, allows allocating passive skills directly from the Shadow's (monk's) starting point.

What is the behaviour in Path of Building?

The same jewel does nothing. Clicking nodes at the Shadow start still paths the entire way from my existing allocated tree instead of allocating from the alternate start. Character: Mercenary (Gemling Legionnaire), 0.5 tree, v0.20.0 (also reproduced on dev build 1a0fc7d, which includes #2126).

Root cause (from reading the source):
ModParser.lua extracts the class name "Shadow" from the mod.
PassiveSpec.lua (BuildAllDependsAndPaths) then looks it up:

lua local classData = className and self.tree.classes[self.tree.classNameMap[className]] ​

TreeData/0_5/tree.json only contains: Ranger, Huntress, Warrior, Mercenary, Druid, Witch, Sorceress, Monk, no "Shadow" entry. The lookup returns nil, alternateClassStartNodes stays empty, and the feature silently no-ops. The Ranger variant works because "Ranger" exists in classNameMap, and the test added in #2126 only covers the Ranger variant.

Verified workaround: editing the jewel text to ...from the Monk's starting point makes it work, since Shadow shares the Monk start location.

Suggested fix: alias paired class names (Shadow → Monk start) in classNameMap or in the AlternateClassStart handling so all jewel variants resolve.

How to reproduce the issue

  1. Create a new build, class Mercenary (any ascendancy; tested with Gemling Legionnaire), 0.5 tree.
  2. Allocate a path from the Mercenary start to any jewel socket and allocate the socket.
  3. On the Items tab, add the unique jewel "Split Personality Ruby" and set its mod to
    Can Allocate Passive Skills from the Shadow's starting point (the Shadow variant).
  4. Socket the jewel into the allocated jewel socket on the tree.
  5. Go to the Shadow's starting point on the tree and click a node directly adjacent to the class start.
  6. Observe: PoB allocates the full path from the existing tree instead of starting a new cluster at the alternate start (point counter jumps by the whole bridge length instead of +1).
  7. Edit the jewel mod text to ...from the Monk's starting point and repeat step 5, now it correctly allocates +1 as a disconnected cluster, confirming the "Shadow" class-name lookup is the failure point.

PoB for PoE2 build code

https://poe.ninja/poe2/builds/runesofaldur/character/Jezie-4328/JonathanDodgers?timemachine=week-1

Screenshots

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions