Repository navigation
Conversation
Actor::KillImpl (ID 37896) adds the base's death items to every dying actor except reanimated corpses, so a summoned flame atronach still gets its fire salts. The summon vanishes right after, but the item add went through the inventory hook and was synced to the server and every other player. AddDeathItems now skips commanded actors, as it already skips remote ones. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
absol89
marked this pull request as draft
October 24, 2026 14:52
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Actor::KillImpl (ID 37896) adds the base's death items to every dying actor except reanimated corpses, so a summoned flame atronach still gets its fire salts. The summon vanishes right after, but the item add went through the inventory hook and was synced to the server and every other player. In vanilla singleplayer skyrim, the players cannot farm elemental salts this way.
AddDeathItems now skips commanded actors, as it already skips remote ones. My client party leader froze so we investigated:
What it does
HookAddDeathItemsnow also returns early for commanded actors (summons and raised thralls), the same way italready does for remote actors. Their death items are never added, so nothing about them is synced.
Why
Actor::KillImpl(ID 37896) callsAddDeathItems(ID 37198) for every dying actor except one whose life state iskReanimate((flags & 0x1E00000) != 0x800000). A summoned creature isn't excluded, so a conjured or NPC-summonedflame atronach gets its base's death items (Fire Salts,
0003AD5E) when it dies.In the base game nobody notices, because the summon vanishes right after. In Skyrim Together the add goes
through
HookAddInventoryItem→InventoryChangeEvent→RequestInventoryChanges, so the owner sends the server aninventory change for an actor that is about to be removed, and the server forwards it to the other players. From a
client log, right before the summon is handed off and removed:
There is no body to loot, so the item and its traffic are wasted, and the other clients briefly hold an inventory
entry for an entity that is being deleted.
Changes
Code/client/Games/Skyrim/Actor.cpp:HookAddDeathItemsskipsIsCommandedActor()actors.Raised thralls are commanded too, but the game already skips them (
kReanimate), so nothing changes for them.Normal NPCs and creatures still get their death items as before.
How to test
connected to a server.
tp_client.logthere should be noSending item request, item: 3AD5E, ... target object: <atronach>line.Before this change there is one, right before
Sending death state truefor the atronach.still added and lootable as before.
Done so far:
🤖 Generated with Claude Code
Note: The freeze behavior will be adressed in a separate PR, I havent tested how this effects npc summoned atros