Oh boy, there are many things wrong here. First off you use the same variable in two separate, independant situations. Second, you must declare your variable outside of the begin block.
scn 1HHToolsRemnantDead Short DoOnce Begin OnDeath SetStage 11Quest1HHTOOLS 5 End Begin OnActivate If GetIsDead == 1if DoOnce == 0 player.additem 1111HHCaptainNote1 1 SetStage 11Quest1HHTOOLS 10 Set DoOnce to 1 ElseActivateEndIfEndIfend
Place this script ON the NPC in question, this will make it so you don't have to reference him in it, and so you KNOW it runs. Second, you must declare variables outside of all your blocks (do it at the very start) and declaring them more than once does nothing, or is just bad, so don't. If anything make DoOnce1 and DoOnce2 instead. Also, The OnDeath begin block only runs the one time the NPC dies (provided he is unique), so you dont need a DoOnce variable for that, as it only occurs once. Also, I added the 'else activate' lines, so after the one activate that adds the note, the player can then normally loot the body as if he were any other NPC, so long as he is dead. If he is alive, the player simply cannot activate/speak to him until they kill him and do the one 'gather note' thing. Again, hope this helps.