Skip to content

Respawn the puppet for any non-playable beast race - #37

Open
NutyoPR wants to merge 1 commit into
absol89:API-playtestfrom
NutyoPR:nonplayable-beast-race
Open

NutyoPR wants to merge 1 commit into
absol89:API-playtestfrom
NutyoPR:nonplayable-beast-race

Conversation

@NutyoPR

@NutyoPR NutyoPR commented Nov 8, 2026 •

Copy link
Copy Markdown

AI SLOPPED PR Respawn the puppet for any non-playable race, not just the vanilla werewolf / Vampire Lord

Problem

PlayerService::RunBeastFormDetection only fires BeastFormChangeEvent (and so the RequestRespawn with the serialized appearance) when the local player's race is 0xCDD84 (WerewolfBeastRace) or 0x200283A (DLC1VampireBeastRace).

Mods that transform the player with SetRace into their own beast races are never detected. Enderal's Theriantrophist wolf form (_00E_Theriantrophist_PlayerWerewolfRace, set by _00E_Theriantrophist_WolfFormSC) is one: the behavior graph is synced (the client logs BehaviorVar::Patch ... Werewolf signature iState_WerewolfBeastDefault for formID 14), but the puppet is never respawned with the new race. Other players see the human body stretched over the werewolf skeleton and animations, and it stays human-shaped after the form ends.

Change

  • isBeastRace keeps the two vanilla IDs and additionally treats any non-playable race as a beast race, so entering and leaving such a race triggers the existing respawn path.
  • Playable races are excluded, so race changes in the RaceSex menu behave exactly as before (no respawn spam while picking a race).
  • TESRace gains the RACE_DATA flags field (0x108, kPlayable = 1 << 0) with a static_assert on the offset. The layout matches CommonLibSSE-NG (RACE_DATA data; // 0E8, flags; // 20).

No protocol, server or behavior-graph changes; the vanilla werewolf / Vampire Lord path is unchanged.

Testing

  • Enderal SE 2.1.4 on Skyrim 1.7.104, two clients: drinking Wolf Blood now respawns the drinker's puppet as the wolf on the other client, and back to the original race when the form ends.
  • Vanilla werewolf / Vampire Lord: unchanged (still matched by ID first).
  • RaceSex menu race switching: no respawns (playable races).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant