It isn't clear *why* you want to move one side of a door. Are you trying to accomplish something like the elevator in Gommorah, which can teleport you to one of four different levels? The script for this is very helpful to understand one good way to do this. It has a "case statement" for followers, which is not ideal, but it does show how to use markerheading's instead of door teleports.
I'm the author of HB's Wasteland Tent, and I'm working on the next version. The last version accomplished it using generalized code to move the followers, and there were no doors were involved; the tent itself was an activator, and both player and followers, both vanilla and modder-added, moved to markers, not doors.
:)
Here's the code:
ScriptName WSTTentExteriorScriptNVSEfloat hdgAngleref tentshort bSaveshort bPlayerMovedref rFollowershort nFollowersshort ListIndexBegin GameMode if ( bSave == 1 ) PlaySound DRSMetalIndustrialSingleOpen player.Disable player.MoveTo WSTEntryMarker player.Enable 0 label 0 ; Top of Loop set rFollower to 0; set nFollowers to ListGetCount WSTFollowersList set ListIndex to ( nFollowers - 1 ) label 1 ; Loop Top set rFollower to ListGetNthForm WSTFollowersList, ListIndex ListRemoveNthForm WSTFollowersList, ListIndex if ( rFollower.GetCurrentAIProcedure == 11 ) if ( rFollower.GetPackageTarget == Player ) if ( rFollower.GetDisabled ) ; Empty else if ( rFollower.GetDead ) ; Empty else if ( rFollower.GetUnconscious ) ; Empty else rFollower.Disable rFollower.MoveTo WSTEntryMarker 0, 64, 0 rFollower.Enable 0 rFollower.EvaluatePackage endif endif endif endif endif set ListIndex to ( ListIndex - 1 ) if ( ListIndex >= 0 ) goto 1 endif set bSave to 0 AutoSave endif ; ( bSave == 1 )End ; GameModeBegin OnActivate Player if ( Player.IsSneaking == 1 ) WSTTravelMarker.Disable ShowMap WSTTravelMarker, 0 player.AddItem WSTTentManualBase, 1 Disable MarkForDelete else set tent to this set hdgAngle to ( Player.GetHeadingAngle tent ) if ( ( WSTTravelMarker.GetDistance Player <= 120 ) && ( hdgAngle >= -45 && hdgAngle <= 45 ) ) ; This loop must be completed within a single frame. label 0 ; Loop Init set nFollowers to GetNumRefs 200, 1024 set rFollower to GetFirstRef 200, 1024 label 1 ; Top Of Loop if ( nFollowers ) rFollower.ListAddReference WSTFollowersList set rFollower to GetNextRef set nFollowers to ( nFollowers - 1 ) goto 1 endif set bSave to 1 endif endifEnd
Looks like I'll end up using it again!