Any info on this would be very helpful for me!
What is the actual difference between the two? I'm not native English, so I didn't quite catch the exact difference.



Scriptname blablabla{flying}objectReference property gdadotHeartExitMarker autoobjectReference property gdadotHeartExitMarkerTop autoEvent OnActivate(ObjectReference akActionRef) Debug.Notification(" Activated! ") Debug.Notification(akActionRef) akActionRef.TranslateToRef(gdadotHeartExitMarker, 150) utility.wait(2.5) akActionRef.TranslateToRef(gdadotHeartExitMarkerTop, 4000) utility.wait(4.5) akActionRef.StopTranslation()endEvent



scriptName ShanaMovesUpEffectScript extends ActiveMagicEffect{Scripted magic effect blablabla.};====; VARIABLES /=============/objectReference CastFromHereReffloat Xfloat Yfloat Zfloat height = 600.0;=============== EVENTS /=============/Event OnEffectStart(Actor Target, Actor Caster) Debug.Trace(" OnEffectStart ") CastFromHereRef = Target as ObjectReference ;CastFromHereRef.setMotionType( CastFromHereRef.Motion_Keyframed ) X = CastFromHereRef.X Y = CastFromHereRef.Y Z = CastFromHereRef.Z ;CastFromHereRef.SplineTranslateTo(X, Y, Z + height, CastFromHereRef.GetAngleX(), CastFromHereRef.GetAngleY(), CastFromHereRef.GetAngleZ(), 600) CastFromHereRef.TranslateTo(X, Y, Z + height, CastFromHereRef.GetAngleX(), CastFromHereRef.GetAngleY(), CastFromHereRef.GetAngleZ(), 600)EndEventEvent OnEffectFinish(Actor Target, Actor Caster) Debug.Trace(" OnEffectFinish") ;CastFromHereRef.setMotionType( CastFromHereRef.Motion_Dynamic )EndEventSo now I do not understand why I changed movement type or end using SplineTranslateTo instead, although I remember I had some issues before switching...

I wish to play this sound: FXExplosionCatapultNearScriptname BallisticLaunchingScript extends ObjectReference{Lancelot, Galahad, and I jump out of the rabbit...}import gameimport utilityimport RedwoodsToolsfloat property BaseForce auto ; Default basic force.float Forcebool StopMoving = FalseObjectReference FlyTarget ; a marker to make the splines for the flying segmentObjectReference MoveWhatActivator Property FlyTargetType Auto ; The object type being used to keep track of the "next" position to fly to.Float FlySpeedSound BoomSound Whooshfloat DXfloat DYfloat Dzfloat RotXfloat RotYfloat RotZfunction PlayCannon(objectreference Here) Boom = BoomSound Whoosh = WhooshSound Boom.Play(Here) Whoosh.Play(Here)endfunctionfunction FindCannonPosition(ObjectReference A, ObjectReference B) ; Do the math before we play the sounds Moveto(A,0.0,0.0,-5000.0) Force = DistanceBetween(A,B) / 30.0 if Force > 80.0 Force = 80.0 endifendfunctionFunction MoveToNextPoint() FlySpeed = DistanceBetween(Gvar.Node,FlyTarget) / 2.0 FlyTarget.MoveTo(FlyTarget,DX,DY,DZ) ; Player will have moved by now. FlyTarget.SetAngle(Flytarget.GetAngleX()+RotX,Flytarget.GetAngleY()+RotY,Flytarget.GetAngleZ()+RotZ)EndFunctionFunction ComputeNextPoint() if !FlyTarget FlyTarget = MoveWhat.PlaceAtMe(FlyTargetType,1) FlyTarget.MoveTo(MoveWhat,0.0,0.0,0.0,false) endif DX = (Gvar.Node.X - FlyTarget.x) / 2.0 DY = (Gvar.Node.Y - FlyTarget.y) / 2.0 if GetDistance(Gvar.Node) > 2000 DZ = (Gvar.Node.Z - FlyTarget.z) / 2.0 + 1000 else DZ = (Gvar.Node.Z - FlyTarget.z) / 2.0 + 100 endif RotX = RandomFloat(-360.0,360.0) RotY = RandomFloat(-360.0,360.0) RotZ = RandomFloat(-360.0,360.0) ; Tumble at randomEndFunctionfunction FireCannon(float ForceFactor) ; Use the FusRohDah Cannon! PushActorAway(MoveWhat,Force*ForceFactor)endFunctionEvent OnInit() MoveWhat = Game.GetPlayer() FindCannonPosition(MoveWhat,Gvar.Node) ; Find start position for the cannon PlayCannon(MoveWhat) FireCannon(1.0) RegisterForSingleUpdate(4) Wait(2.0) ComputeNextPoint() EndEventEvent OnUpdate(); Start moving the player with translates if !StopMoving if MoveWhat.GetDistance(Gvar.Node) < 400.0 StopMoving = True Delete() else MoveToNextPoint() MoveWhat.TranslateToRef(FlyTarget,FlySpeed) MoveTo(MoveWhat) TranslateToRef(FlyTarget,FlySpeed) ; The cannon target follows the player to try to catch the OnTranslationCompleated Event ComputeNextPoint() ; Start doing the math for next point now, no time to lose! RegisterForSingleUpdate(2.0) endif endifEndEventEvent OnTranslationComplete() Debug.Notification("Translation Complete") ; Never fires.EndEventEvent OnTranslationAlmostComplete() MoveToNextPoint()EndEventSound Property WhooshSound AutoSound Property BoomSound AutoNodeVariableScript Property GVar AutoScriptname BallisticLaunchingScript extends ObjectReference{Lancelot, Galahad, and I jump out of the rabbit...}import gameimport utilityimport RedwoodsToolsfloat property BaseForce auto ; Default basic force.float Forcebool StopMoving = FalseObjectReference FlyTarget ; a marker to make the splines for the flying segmentObjectReference MoveWhatActivator Property FlyTargetType Auto ; The object type being used to keep track of the "next" position to fly to.Float FlySpeedSound BoomSound Whooshfloat DXfloat DYfloat Dzfloat RotXfloat RotYfloat RotZfunction PlayCannon(objectreference Here) Boom = BoomSound Whoosh = WhooshSound Boom.Play(Here) Whoosh.Play(Here)endfunctionfunction FindCannonPosition(ObjectReference A, ObjectReference B) ; Do the math before we play the sounds Moveto(A,0.0,0.0,-5000.0) Force = DistanceBetween(A,B) / 30.0 if Force > 80.0 Force = 80.0 endifendfunctionFunction MoveToNextPoint() FlySpeed = DistanceBetween(Gvar.Node,FlyTarget) / 2.0 FlyTarget.MoveTo(FlyTarget,DX,DY,DZ) ; Player will have moved by now. FlyTarget.SetAngle(Flytarget.GetAngleX()+RotX,Flytarget.GetAngleY()+RotY,Flytarget.GetAngleZ()+RotZ)EndFunctionFunction ComputeNextPoint() if !FlyTarget FlyTarget = MoveWhat.PlaceAtMe(FlyTargetType,1) FlyTarget.MoveTo(MoveWhat,0.0,0.0,0.0,false) endif DX = (Gvar.Node.X - FlyTarget.x) / 2.0 DY = (Gvar.Node.Y - FlyTarget.y) / 2.0 if GetDistance(Gvar.Node) > 2000 DZ = (Gvar.Node.Z - FlyTarget.z) / 2.0 + 1000 else DZ = (Gvar.Node.Z - FlyTarget.z) / 2.0 + 100 endif RotX = RandomFloat(-360.0,360.0) RotY = RandomFloat(-360.0,360.0) RotZ = RandomFloat(-360.0,360.0) ; Tumble at randomEndFunctionfunction FireCannon(float ForceFactor) ; Use the FusRohDah Cannon! PushActorAway(MoveWhat,Force*ForceFactor)endFunctionEvent OnInit() MoveWhat = Game.GetPlayer() FindCannonPosition(MoveWhat,Gvar.Node) ; Find start position for the cannon PlayCannon(MoveWhat) FireCannon(1.0) RegisterForSingleUpdate(4) Wait(2.0) ComputeNextPoint() EndEventEvent OnUpdate(); Start moving the player with translates if !StopMoving if MoveWhat.GetDistance(Gvar.Node) < 400.0 StopMoving = True Delete() else MoveToNextPoint() MoveWhat.TranslateToRef(FlyTarget,FlySpeed) MoveTo(MoveWhat) TranslateToRef(FlyTarget,FlySpeed) ; The cannon target follows the player to try to catch the OnTranslationCompleated Event ComputeNextPoint() ; Start doing the math for next point now, no time to lose! RegisterForSingleUpdate(2.0) endif endifEndEventEvent OnTranslationComplete() Debug.Notification("Translation Complete") ; Never fires.EndEventEvent OnTranslationAlmostComplete() MoveToNextPoint()EndEventSound Property WhooshSound AutoSound Property BoomSound AutoNodeVariableScript Property GVar AutoScriptname BallisticLaunchingScript extends ObjectReference{Lancelot, Galahad, and I jump out of the rabbit...}import gameimport utilityfloat Forcebool StopMoving = FalseBool FirstUpdate = TrueFlightNodeTargetScript FlyTarget ; a marker in the airActivator Property FlyTargetType Auto ; The object type being used to keep track of the "next" position to fly to.ObjectReference MoveWhat ; Me. Saves tons of function calls to Game.GetPlayer()Float FlySpeed ; How fast to move.Sound BoomSound Whooshfunction PlayCannon(objectreference Here) Boom = BoomSound Whoosh = WhooshSound Boom.Play(Here) Whoosh.Play(Here)endfunctionfunction FindCannonPosition(ObjectReference A, ObjectReference B) ; Do the math before we play the sounds Moveto(A,0.0,0.0,-5000.0) Force = A.GetDistance(B) / 30.0 if Force > 80.0 Force = 80.0 endifendfunctionfunction FireCannon(float ForceFactor) ; Use the FusRohDah Cannon!; PushActorAway(Game.GetPlayer(),Force * ForceFactor)endFunctionEvent OnInit() MoveWhat = Game.GetPlayer() SetMotionType(Motion_Keyframed) ; Shouldn't be necessary for a bare bones activator, but just to be sure... FindCannonPosition(MoveWhat,Gvar.Node) ; Find start position for the cannon if !FlyTarget FlyTarget = (PlaceAtMe(FlyTargetType,1) as FlightNodeTargetScript) FlyTarget.MoveTo(FlyTarget,0.0,0.0,8000) endif PlayCannon(MoveWhat) FireCannon(1.0) MoveTo(FlyTarget) ; Both objects should now be at the same place. - Verified. RegisterForSingleUpdate(4) FlyTarget.StartComputing(self) ; Start the FlyTarget thinking about where it should go next.EndEventEvent OnUpdate() ; Start moving the player with translates if MoveWhat.GetDistance(Gvar.Node) < 200.0 ; At the destination case. MoveWhat.SetMotionType(MoveWhat.Motion_Dynamic) Delete() else MoveWhat.SetMotionType(MoveWhat.Motion_Keyframed) Try to defy gravity...doesn't work. FlySpeed = FlyTarget.MoveToNextPoint() ; Move FlyTarget to it's next positionDebug.Notification("CannonToFlyMarker: " + GetDistance(FlyTarget))Debug.Notification("Speed: " + FlySpeed) TranslateToRef(FlyTarget,FlySpeed) ; This call is doing nothing.; Flytarget gets further and further away until it reaches the destination, but the cannon object stays put. MoveWhat.StopTranslation() ; Hover for a moment.; MoveWhat.TranslateToRef(FlyTarget,FlySpeed/1.25) ; Move me to the fly object. Currently disabled for bug checking. RegisterForSingleUpdate(2.0) ; Since we can't catch the OnTranslationComplete, have to guess. endifEndEventEvent OnTranslationComplete() Debug.Notification("Translation Complete") ; can't get this to fire by using translations of cannon object - it doesn't translate. Ever.EndEventEvent OnTranslationAlmostComplete()EndEventSound Property WhooshSound AutoSound Property BoomSound AutoNodeVariableScript Property GVar Auto