Ok, having a bit of a freak out right now about this.
Initially the methodology stated above (JustinOther) worked perfectly. I don't know how or what's changed but now BlockActivation() does not seem to work properly on the very first activation. All subsequent activations work flawlessly.
This is a major problem.
Initial tests were conducted by COC into cell from main menu. Current tests involve the same thing + using existing clean save (my actual game save).
Script 1:
Spoiler Scriptname MDHYouCannotTakeMeHahaScript extends ObjectReference{Prevents Player from taking scummy broken Guide book that they shouldn't be able to anyway}ObjectReference Property GuideStatic AutoObjectReference Property GuideRead AutoEvent OnLoad()SetMotionType(GuideStatic.Motion_Keyframed) BlockActivation()EndEventEvent OnActivate(ObjectReference akActionRef) If akActionRef == game.getPlayer() GuideRead.Activate(akActionRef) endifEndEvent
Script 2:
Spoiler Scriptname MDHYouCannotTakeMeHahaScript02 extends ObjectReference{Dictates seconday part of non-book-taking}Event OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer)DropObject(akNewContainer) SetScale(0.0)EndEvent
Please excuse naming convention haha.
The only thing that has changed that I can possibly think of as relevant, is that another object nearby now also uses BlockActivation. Both objects conform to the same problematic behaviour.
*EDIT: Got it sorted. All I had to do was change where BlockActivation() was called. Changed to OnLoad event.
Updated posted script.