Thank you very much McGuffin finally got it working. Here's my final script and if there is anything in here thats not right even though the script works could somebody let me know cause this is my first scripting ive done and dont know if im doing things efficiently or properly.
Scriptname dunWoodenMaskMod extends activemagiceffect ObjectReference Property SanctuaryMarker Auto Location Property DragonPriestSanctuaryLocation Auto ImageSpaceModifier Property AzuraFadeToBlack Auto ImageSpaceModifier Property FadeToBlackBackImod Auto Sound Property TransitionSFX Auto ObjectReference Property maskActual Auto GlobalVariable Property lastUseTime Auto GlobalVariable Property hoursSinceLastUse AutoGlobalVariable Property GameDaysPassed AutoObjectReference selfRefObjectReference warpMarkerfloat lastUTfloat hoursSLUfloat gDPEVENT OnEffectStart(Actor Target, Actor Caster)selfRef = casterlastUT = lastUseTime.GetValue()hoursSLU = hoursSinceLastUse.GetValue()gDP = GameDaysPassed.GetValue()Debug.Trace("Variables = " + lastUT + ", " + hoursSLU + ", " + gDP)if caster == game.GetPlayer() && lastUT != 0.0 hoursSLU = 24.0 * (gDP - lastUT) ;hoursSinceLastUse.SetValue(24.0 * (GameDaysPassed - lastUseTime))endifif caster == game.getPlayer() && !game.getPlayer().IsInCombat() && ((hoursSLU > 24.0) || (lastUT == 0.0)) warpMarker = game.getPlayer().PlaceAtMe(Game.GetForm(00000032)) AzuraFadeToBlack.apply() TransitionSFX.play(caster) utility.wait(2.5) caster.moveTo(SanctuaryMarker) FadeToBlackBackImod.apply() AzuraFadeToBlack.remove() endif endEVENTEVENT onEffectFinish(Actor Target, Actor Caster)if Caster == game.getPlayer() && game.getPlayer() .isInLocation(DragonPriestSanctuaryLocation) == TRUE ;when player removes the mask in sanctuary, return to Skyrim AzuraFadeToBlack.apply() TransitionSFX.play(caster) utility.wait(2.5) game.getPlayer().MoveTo(warpMarker) FadeToBlackBackImod.apply() AzuraFadeToBlack.remove() if caster.getItemCount(maskActual) < 1 ; safety catch - if the player dropped the mask in the sanctuary, add it to inventory so it doesn't get lost. caster.addItem(maskActual) endif hoursSLU = 0.0 hoursSinceLastUse.SetValue(hoursSLU) lastUseTime.SetValue(GameDaysPassed.GetValue()) endifwarpMarker.Delete()endEVENT