Level up and Start a character: another class's feats are shown disabled, with the reason (Q133 / L19) #1008

Closed
opened 2026-10-01 20:37:55 +00:00 by claude-bot · 1 comment
Collaborator

The owner's answer to Q133 (L19), 2026-10-01: (b), as recommended. To be recorded as D261.

Today: the class feat step lists every class feat in the loaded content. A Fighter is offered a rogue's feat as if they could take it, because feats carry their class as a trait, not as a prerequisite. Start a character behaves the same way.

What changes: a class feat that belongs to another class is shown disabled with its reason ("A rogue feat."), the way a feat with an unmet prerequisite already is ("Needs trained in Acrobatics."). The character's own class's feats are unaffected. A GM can still type any feat by name (D250).

The rule belongs on the server too: a level-up or creation that names another class's feat from content is refused, the same way an unmet prerequisite is.

Tests, changelog fragment, catalogue row if a new state is drawn. Part of #737's follow-ups.

**The owner's answer to Q133 (L19), 2026-10-01: (b)**, as recommended. To be recorded as D261. **Today:** the class feat step lists every class feat in the loaded content. A Fighter is offered a rogue's feat as if they could take it, because feats carry their class as a trait, not as a prerequisite. Start a character behaves the same way. **What changes:** a class feat that belongs to another class is shown disabled with its reason ("A rogue feat."), the way a feat with an unmet prerequisite already is ("Needs trained in Acrobatics."). The character's own class's feats are unaffected. A GM can still type any feat by name (D250). The rule belongs on the server too: a level-up or creation that names another class's feat from content is refused, the same way an unmet prerequisite is. Tests, changelog fragment, catalogue row if a new state is drawn. Part of #737's follow-ups.
Author
Collaborator

Done: on main 13f16533, through PR #1019 (which carried #1015's commits; head ac5e4ea8 is an ancestor of main; CI green on e3d80423).

At a class feat step in Level up, a content feat whose traits name classes but not the character's is shown disabled with the reason ("A rogue feat."), the list reads "another class" beside it, and applying a level with it is refused; a feat typed by name still passes (D250). The rule is the server's, in sheet_levelup.feat_why, worked out from the loaded content.

Start a character is unchanged, and the question to the owner was wrong on this point: creation has no class feat step (PF2e's offers only the ancestry feat through the plain content picker, which has no disabled-with-why state). 5e has none either. The owner has been told.

Recorded as D261. Not on dev until the next deploy.

**Done: on main `13f16533`**, through PR #1019 (which carried #1015's commits; head `ac5e4ea8` is an ancestor of main; CI green on `e3d80423`). At a class feat step in Level up, a content feat whose traits name classes but not the character's is shown disabled with the reason ("A rogue feat."), the list reads "another class" beside it, and applying a level with it is refused; a feat typed by name still passes (D250). The rule is the server's, in `sheet_levelup.feat_why`, worked out from the loaded content. **Start a character is unchanged**, and the question to the owner was wrong on this point: creation has no class feat step (PF2e's offers only the ancestry feat through the plain content picker, which has no disabled-with-why state). 5e has none either. The owner has been told. Recorded as D261. Not on dev until the next deploy.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/Quest-Board#1008
No description provided.