ScriptName PlayerVampireQuestScript extends Quest Conditional

;THIS IS FOR BETTER VAMPIRES by Brehanin

EffectShader Property NeckMarksRight auto
EffectShader Property NeckMarksLeft auto

Int Property VampireStatus Auto Conditional

Message Property VampireFeedMessage Auto
Message Property VampireFeedMessage1 Auto
Message Property VampireFeedMessage2 Auto
Message Property VampireFeedMessage3 Auto
Message Property VampireFeedMessage4 Auto
Message Property VampireVictimBecomesVampire Auto
Message Property VampireStageProgressionMessage Auto
Message Property VampireStage1Message Auto
Message Property VampireStage4Message Auto

Quest Property VC01 Auto
Quest Property BetterVampiresConfig Auto
Quest Property DLC1VQ02 Auto

FormList Property CrimeFactions  Auto

Keyword Property Vampire Auto

Faction Property VampirePCFaction  Auto  
Faction Property VampirePCFamily  Auto
Faction Property VampirePCHunters Auto
Faction Property PotentialFollowerFaction  Auto
Faction Property PotentialMarriageFaction  Auto
Faction Property CurrentFollowerFaction  Auto
Faction Property CrimeFactionEastmarch  Auto
Faction Property CrimeFactionFalkreath  Auto
Faction Property CrimeFactionHaafingar Auto
Faction Property CrimeFactionHjaalmarch  Auto
Faction Property CrimeFactionImperial  Auto
Faction Property CrimeFactionOrcs  Auto
Faction Property CrimeFactionPale  Auto
Faction Property CrimeFactionReach  Auto
Faction Property CrimeFactionRift  Auto
Faction Property CrimeFactionSons  Auto
Faction Property CrimeFactionWhiterun  Auto
Faction Property CrimeFactionWinterhold  Auto
Faction Property VigilantOfStendarrFaction  Auto
Faction Property VampireHunter  Auto
Faction Property DummyFaction  Auto
Faction Property DLC1HunterFaction  Auto
Faction Property DLC1DawnguardFaction  Auto
Faction Property DLC1DawnguardExteriorGuardFaction  Auto

Faction Property WERoad02BodyguardFaction Auto
Faction Property MorthalGuardhouseFaction Auto
Faction Property dunDawnstarSanctuaryGuardianFaction Auto
Faction Property MS03ChaletGuardEnemyFaction Auto
Faction Property MQ201ExteriorGuardFaction Auto
Faction Property MQ201PartyGuardFaction Auto
Faction Property DragonsreachBasementGuards Auto
Faction Property CWWhiterunGuardNeutralFaction Auto
Faction Property GuardFactionWindhelm Auto
Faction Property GuardFactionRiften Auto
Faction Property CaravanGuard Auto
Faction Property OrcGuardFaction Auto
Faction Property DA02GuardsPlayerEnemy Auto
Faction Property DA02GuardFaction Auto
Faction Property IsGuardFaction Auto
Faction Property JobGuardCaptainFaction Auto
Faction Property KarthwastenSilverFishGuards Auto
Faction Property GuardFactionCidhnaMine Auto
Faction Property GuardFactionKolskeggr Auto
Faction Property GuardFactionSoljund Auto
Faction Property GuardFactionDawnstar Auto
Faction Property GuardFactionHaafingar Auto
Faction Property GuardFactionSolitude Auto
Faction Property GuardFactionDragonbridge Auto
Faction Property GuardFactionFalkreath Auto	
Faction Property GuardFactionKarthwasten Auto	
Faction Property GuardFactionMarkarth Auto
Faction Property GuardFactionWhiterun Auto
Faction Property CWSonsFaction Auto
Faction Property CWSonsFactionNPC Auto
Faction Property CWImperialFaction Auto
Faction Property CWImperialFactionNPC Auto
			
Faction Property CWMission08AllGiantsPlayerFriendFaction Auto
Faction Property DA02CulistsPlayerEnemy Auto
Faction Property DA02CultistsAreEnemies Auto
Faction Property DA02ElisifAfraidOfPlayer Auto
Faction Property DA07PlayerEnemyFaction Auto
Faction Property DA10PlayerEnemyFaction Auto
Faction Property DA11AttackPlayerFaction Auto
Faction Property DA16OrcAmbushFaction Auto
Faction Property DA16VaerminaHostileFaction Auto
Faction Property DB11KatariahCrewFaction Auto
Faction Property dunMarkarthWizard_SecureAreaFaction Auto
Faction Property dunYsgramorsTombGhostFaction Auto
Faction Property dunKarthwastenPlayerEnemyFaction Auto
Faction Property MarriageRivalAttackFaction Auto
Faction Property MG03CallerFaction Auto
Faction Property MGThalmorFaction Auto
Faction Property MS01PlayerEnemyFaction Auto
Faction Property RiftenRatwayFactionEnemy Auto
Faction Property RiftenSkoomaDealerFactionEnemy Auto
Faction Property T03HatePlayerFaction Auto
Faction Property TG02AringothPlayerEnemyFaction Auto
Faction Property TG04EastEmpireFactionHostile Auto
Faction Property TG07ValdFactionHatesPlayer Auto
Faction Property TG08BMercerHatesPlayerFaction Auto
Faction Property TG09NightingaleEnemyFaction Auto
Faction Property TGTQ04NiranyeAttacksFaction Auto
Faction Property WEAdventureHorseRiderFaction Auto
Faction Property WEPlayerEnemy Auto
Faction Property WEThalmorPlayerEnemyFaction Auto
Faction Property WIPlayerEnemyFaction Auto
Faction Property WIPlayerEnemySpecialCombatFaction Auto

Faction Property DLC1ThrallFaction Auto

Race Property ArgonianRace  Auto  
Race Property ArgonianRaceVampire  Auto  
Race Property BretonRace  Auto  
Race Property BretonRaceVampire  Auto  
Race Property DarkElfRace  Auto  
Race Property DarkElfRaceVampire  Auto  
Race Property ElderRace  Auto  
Race Property ElderRaceVampire  Auto  
Race Property HighElfRace  Auto  
Race Property HighElfRaceVampire  Auto  
Race Property ImperialRace  Auto  
Race Property ImperialRaceVampire  Auto  
Race Property KhajiitRace  Auto  
Race Property KhajiitRaceVampire  Auto  
Race Property NordRace  Auto  
Race Property NordRaceVampire  Auto  
Race Property OrcRace  Auto  
Race Property OrcRaceVampire  Auto  
Race Property RedguardRace  Auto  
Race Property RedguardRaceVampire  Auto  
Race Property FoxRace Auto
Race Property WoodElfRace  Auto  
Race Property WoodElfRaceVampire  Auto  
Race Property CureRace Auto
Race Property DLC1VampireBeastRace Auto

Worldspace Property Sovngarde Auto
Worldspace Property DLC01SoulCairn Auto
Worldspace Property BluePalaceWingWorld Auto

Static Property XMarker Auto

Float Property LastFeedTime Auto
Float Property LastFeedTimeRestoreHealth Auto
Float Property FeedTimer Auto

GlobalVariable Property BetterVampiresML Auto
GlobalVariable Property BVCalculateFeedTimer Auto
GlobalVariable Property VampireFeedReady Auto
GlobalVariable Property PlayerIsVampire  Auto  
GlobalVariable Property GameDaysPassed Auto
GlobalVariable Property VampireSunEffects Auto 
GlobalVariable Property VampireSunDamage Auto 
GlobalVariable Property VampireProgression Auto 
GlobalVariable Property CreateVampire Auto 
GlobalVariable Property VampireStageHated Auto
GlobalVariable Property VampireHunters Auto
GlobalVariable Property VampireRank Auto
GlobalVariable Property VampireRankProgression Auto
GlobalVariable Property VeilOfFearUseCount Auto
GlobalVariable Property VeilOfFearResetCounter Auto
GlobalVariable Property VampireUpdateGameTime Auto
GlobalVariable Property VampireStageGlobal Auto
GlobalVariable Property VampireFeedOffDead Auto
GlobalVariable Property VampireDynamicStages Auto
GlobalVariable Property VampireRevealAuras Auto
GlobalVariable Property VampireCustomRace Auto
Globalvariable Property VampireVictimAppearance Auto
Globalvariable Property VampireDawnguardInstalled Auto
Globalvariable Property VampireJumpingBonus Auto
GlobalVariable Property VampireFoodPotionHealing Auto
GlobalVariable Property VampireNoFoodVar Auto
GlobalVariable Property VampireNoPotionsVar Auto
GlobalVariable Property VampireNoHealingVar Auto
GlobalVariable Property VampireBottledBlood Auto
GlobalVariable Property VampireExtractBlood Auto
GlobalVariable Property VampireNoRedScreen Auto

Globalvariable Property VampireVampireDrain Auto
Globalvariable Property VampireVampiresServant Auto
Globalvariable Property VampireStrength Auto
Globalvariable Property VampireSunDamage2 Auto	
Globalvariable Property VampireFearsEmbrace Auto
Globalvariable Property VampireDomination Auto
Globalvariable Property VampireVampiricMindBlast Auto
Globalvariable Property VampireDeflectLightandShadow Auto	
Globalvariable Property VampireMortalsMask Auto
Globalvariable Property VampireRevealAuras2 Auto
Globalvariable Property VampirePraestareSanguinare Auto
Globalvariable Property VampireFrostCloud Auto	
Globalvariable Property VampireIceFlesh Auto		
Globalvariable Property VampireCallCreature Auto		
Globalvariable Property VampireUnholyGrasp Auto			
Globalvariable Property VampireSanguinemReddere Auto		
Globalvariable Property VampireCombatBonus Auto	
Globalvariable Property VampireInvokeFog Auto		
Globalvariable Property VampireMistwalker Auto			
Globalvariable Property VampireBlinkAttack Auto			
Globalvariable Property VampireSidestepReflexes Auto	
Globalvariable Property VampireFallingDamageReduction2 Auto
GlobalVariable Property VampireNoLevelNeededForRank Auto
GlobalVariable Property VampireStatusMessages Auto
GlobalVariable Property VampirePraestareRemoveAllFactions Auto
GlobalVariable Property VampireExtractingBlood Auto
GlobalVariable Property VampireMenuSpell Auto
GlobalVariable Property VampireNecksBittenDiscovered Auto
GlobalVariable Property VampireSeduction Auto
GlobalVariable Property VampireTollereSanguinare Auto
GlobalVariable Property VampireTurnToAshes Auto
GlobalVariable Property VampireLastTimeFed Auto
GlobalVariable Property VampireHuntersRevertVL Auto
GlobalVariable Property VampireCannotTurnVL Auto
GlobalVariable Property UsingBetterVampiresScripts Auto
GlobalVariable Property BetterVampiresUseHotkey Auto
GlobalVariable Property BetterVampiresHotkey Auto
GlobalVariable Property BetterVampiresHotkeyPressed Auto
GlobalVariable Property VampireRankAbilitiesSatiation Auto
GlobalVariable Property VampireFireWeakness Auto
GlobalVariable Property VampireFrostResistance Auto
GlobalVariable Property VampireAmaranthFeed Auto
GlobalVariable Property VampirePraeceptorPerks Auto
GlobalVariable Property VampireAbilityTimers Auto
GlobalVariable Property VampireNeckMarks Auto
GlobalVariable Property VampireTolanAttacks Auto
GlobalVariable Property EnableVampireBloodPoints Auto
GlobalVariable Property VampireBloodPoints Auto
GlobalVariable Property EnableVampireBloodPointsMeter Auto
GlobalVariable Property BloodMeterDisableFeedTimer Auto
GlobalVariable Property VampireHunterFactionRemoval Auto
GlobalVariable Property BetterVampiresDamage Auto
GlobalVariable Property VampireFeedingAnimation Auto
GlobalVariable Property VampireIdentifyingTurnedNPCs Auto
GlobalVariable Property VampireBloodWard Auto
GlobalVariable Property UsingVampireEnthrallPerk Auto

GlobalVariable Property BVFeedingHotkey Auto
GlobalVariable Property BVNightVampireVision Auto
GlobalVariable Property BVVampiresServant Auto
GlobalVariable Property BVRevealAuras Auto
GlobalVariable Property BVDeflectLight Auto
GlobalVariable Property BVMortalsMask Auto
GlobalVariable Property BVFearsEmbrace Auto
GlobalVariable Property BVSeduction Auto
GlobalVariable Property BVDomination Auto
GlobalVariable Property BVMindBlast Auto
GlobalVariable Property BVFrostCloud Auto
GlobalVariable Property BVCallCreature Auto
GlobalVariable Property BVIceFlesh Auto
GlobalVariable Property BVSanguinemReddere Auto
GlobalVariable Property BVInvokeFog Auto
GlobalVariable Property BVMistwalker Auto
GlobalVariable Property BVBlinkAttack Auto
GlobalVariable Property BVUnholyGrasp Auto
GlobalVariable Property BVCorpseCurse Auto
GlobalVariable Property BVSummonGargoyle Auto
GlobalVariable Property BVBats Auto
GlobalVariable Property BVChangeRevert Auto
GlobalVariable Property BVDrain Auto
GlobalVariable Property BVPraestareSanguinare Auto
GlobalVariable Property BVTollereSanguinare Auto
GlobalVariable Property BVBloodWard Auto

GlobalVariable property BetterVampiresBloodMeterDisplay_Contextual auto

Sound Property MagVampireTransform01  Auto
Sound Property NPCDragonAttackBite Auto  

ActorBase Property LvlVampireHunter Auto
ActorBase Property VampireVigilantTolan Auto
ActorBase Property VampireWEAssassinDarkElfM Auto
ActorBase Property VampireWEAssassinKhajiitF Auto
ActorBase Property VampireWEAssassinArgonianF Auto

Actor Property VampireHunter1 Auto
Actor Property VampireHunter2 Auto
Actor Property VampireHunter3 Auto
Actor Property VampireHunter4 Auto

Float Property DayTime Auto

Idle Property VampireFeedingBedRight Auto
Idle Property VampireFeedingBedrollRight Auto
Idle Property VampireFeedingBedrollLeft Auto
Idle Property IdleCannibalFeedCrouching Auto
Idle Property VampireFeedingBedRight_Loose Auto
Idle Property VampireLordLeftPowerAttackFeedBack Auto
Idle Property pa_HugA Auto
Idle Property IdleVampireStandingFront Auto

ImageSpaceModifier Property VampireTransformIncreaseISMD  Auto
ImageSpaceModifier Property VampireTransformDecreaseISMD  Auto 

EffectShader property VampireChangeFX auto
EffectShader property ShadowMereTransFXS auto
EffectShader property ReanimateFXShader auto

MagicEffect Property ParalysisFFAimedVampireSleep Auto
MagicEffect Property ParalysisFFAimedVampireSleep2 Auto
MagicEffect Property InfluenceAggDownFFAimed Auto
MagicEffect Property VampireRemoveHate Auto

Perk Property VampireFallingDamageReduction Auto
Perk Property VampireFeedCustomRace2 Auto
Perk Property VampireQuickReflexesPerk01 Auto
Perk Property VampireQuickReflexesPerk02 Auto
Perk Property VampireQuickReflexesPerk03 Auto
Perk Property VampireQuickReflexesPerk04 Auto
Perk Property VampireQuickReflexesPerk05 Auto
Perk Property VampireNoFoodPerk Auto
Perk Property VampireNoPotionPerk Auto
Perk Property VampireNoHealingPerk Auto
Perk Property VampireHunterIllusionImmune Auto
Perk Property VampireExtractBloodPotions Auto
Perk Property VampireAmaranth Auto
Perk Property BetterVampiresDamagePerk Auto
Perk Property VampireEnthrallPerk Auto

GlobalVariable Property VampireEnthrallAliasCount Auto
ReferenceAlias Property VampireEnthrallAlias01 Auto
ReferenceAlias Property VampireEnthrallAlias02 Auto
ReferenceAlias Property VampireEnthrallAlias03 Auto
ReferenceAlias Property VampireEnthrallAlias04 Auto
ReferenceAlias Property VampireEnthrallAlias05 Auto
ReferenceAlias Property VampireEnthrallAlias06 Auto
ReferenceAlias Property VampireEnthrallAlias07 Auto
ReferenceAlias Property VampireEnthrallAlias08 Auto
ReferenceAlias Property VampireEnthrallAlias09 Auto
ReferenceAlias Property VampireEnthrallAlias10 Auto
Armor Property ClothesPrisonerTunic Auto
Armor Property ClothesPrisonerShoes Auto
ImageSpaceModifier Property VampireEnthrallCrossFade Auto 
Idle Property pa_DLC1SeranaHoldsVyrthur Auto
Idle Property IdleSearchBody Auto
Sound Property UIHealthHeartbeatALP Auto
Sound Property NPCVampireLordFeedSound Auto
Sound Property VOCShoutFXAnimalAllegianceSound Auto
Sound Property MAGAltarsBlessingFireA2DSound Auto
Keyword Property VampireHunterKeyword Auto
;Spell Property VampireEnthrallCalmSpell Auto

;==============================================================================================
;==============================================================================================
;==============================================================================================

Float Function GetCurrentTimeOfDay() 
 
	DayTime = Utility.GetCurrentGameTime()
	DayTime -= Math.Floor(DayTime) ; Remove "previous in-game days passed" bit
	DayTime *= 24 ; Convert from fraction of a day to number of hours
	Return DayTime
 
EndFunction

;==============================================================================================
;==============================================================================================
;==============================================================================================

Event OnUpdateGameTime()

	UsingBetterVampiresScripts.SetValue(1)

;----------------------------------------------------
; RESETS YOUR LIMIT ON USING FEARS EMBRACE - SO IT CANNOT BE SPAMMED	

	If VeilOfFearUseCount.GetValue() == 3 && GameDaysPassed.Value - VeilOfFearResetCounter.GetValue() >= 1
		VeilOfFearUseCount.SetValue(0)
	EndIf

;----------------------------------------------------		
; IF VAMPIRE HUNTERS FORCE YOU TO REVERT FORM, THIS RESETS IT SO YOU CAN TRANSFORM ONCE AGAIN
	
	If !Game.GetPlayer().IsInCombat()
		VampireCannotTurnVL.SetValue(0)		
	EndIf
	
;----------------------------------------------------	
; FEED TIMER THAT TRACKS HOW LONG SINCE YOU LAST FED
	
	If BVCalculateFeedTimer.GetValue() > 0
		FeedTimer = GameDaysPassed.Value - LastFeedTime
	EndIf

;----------------------------------------------------	
; If BLOOD POINTS DISABLED, SET DEFAULT VALUE (LOWEST NECESSARY)

	;If EnableVampireBloodPoints.GetValue() == 0	&& VampireBloodPoints.GetValue() != 300
	;	VampireBloodPoints.SetValue(300)
	;EndIf	
	
;----------------------------------------------------	
; STAGE AND SATIATION MESSAGES
	
	If  Game.IsMovementControlsEnabled() && Game.IsFightingControlsEnabled() && Game.GetPlayer().GetCombatState() == 0 && VampireUpdateGameTime.GetValue() == 0

		;----------------------------------------------------
		; TWO STAGES OF SATIATION
		
		If VampireDynamicStages.GetValue() == 20000
		
			If (FeedTimer >= 0.75 && FeedTimer < 1 && BloodMeterDisableFeedTimer.GetValue() == 0)|| (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 20)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 20)
					Debug.Notification("... the blood from your last feeding is almost completely gone ...")
				EndIf				
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 20
					VampireBloodPoints.SetValue(20)
				EndIf
			ElseIf (FeedTimer >= 0.5 && FeedTimer < 0.75 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 40)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 40)
					Debug.Notification("... your lust for blood is growing ever stronger ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 40
					VampireBloodPoints.SetValue(40)
				EndIf	
			ElseIf (FeedTimer >= 0.25 && FeedTimer < 0.5 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 60)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 60)				
					Debug.Notification("... you begin to crave the taste of blood once again ...")
				EndIf				
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 60
					VampireBloodPoints.SetValue(60)
				EndIf	
			ElseIf (FeedTimer >= 0.05 && FeedTimer < 0.25 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 80)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 80)				
					Debug.Notification("... you desperately hold on to the warmth of your last victim's blood ...")
				EndIf					
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 80
					VampireBloodPoints.SetValue(80)
				EndIf
			EndIf
			
			
			If (FeedTimer >= 1 && VampireStatus >= 1 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 0 && VampireStatus < 4)
				VampireFeedReady.SetValue(3)
				VampireStatus = 4
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					If VampireStageHated.GetValue() == 10000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage4Message.Show()
					Else
						VampireFeedMessage4.Show()
					EndIf
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					If VampireStageHated.GetValue() == 10000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage4Message.Show()
					Else
						VampireFeedMessage4.Show()
					EndIf
				EndIf
				;----------------------------------------------------	
				If EnableVampireBloodPoints.GetValue() == 10000	
					VampireBloodPoints.SetValue(0)
					If VampireStatusMessages.GetValue() == 0
						Debug.Notification("You have exhausted your blood pool ... you must feed!")
					EndIf	
				EndIf
				If EnableVampireBloodPoints.GetValue() == 0	
					VampireBloodPoints.SetValue(20)
				EndIf					
				VampireProgression(Game.GetPlayer(), 4)
				VampireUpdateGameTime.SetValue(1)
			EndIf
			
			
		;----------------------------------------------------
		; DYNAMIC STAGES OF SATIATION (THEY SPEED UP)
		
		ElseIf VampireDynamicStages.GetValue() == 10000

			If (FeedTimer >= 0.81 && FeedTimer < 0.88 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 20)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 20)				
					Debug.Notification("... the blood from your last feeding is almost completely gone ...")
				EndIf					
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 20
					VampireBloodPoints.SetValue(20)
				EndIf
			ElseIf (FeedTimer >= 0.74 && FeedTimer < 0.81 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 50)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 50)				
					Debug.Notification("... you feel even closer to starvation ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 50
					VampireBloodPoints.SetValue(50)
				EndIf	
			ElseIf (FeedTimer >= 0.66 && FeedTimer < 0.74 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 70)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 70)				
					Debug.Notification("... starvation is looming on the horizon ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 70
					VampireBloodPoints.SetValue(70)
				EndIf
			ElseIf (FeedTimer >= 0.59 && FeedTimer < 0.66 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 90)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 90)				
					Debug.Notification("... your last feeding will only sustain you for a few more hours ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 90
					VampireBloodPoints.SetValue(90)
				EndIf					
			ElseIf (FeedTimer >= 0.51 && FeedTimer < 0.59 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 120)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 120)				
					Debug.Notification("... your lust for blood is now all-consuming ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 120
					VampireBloodPoints.SetValue(120)
				EndIf	
			ElseIf (FeedTimer >= 0.44 && FeedTimer < 0.51 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 140)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 140)				
					Debug.Notification("... your thirst for blood is very strong ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 140
					VampireBloodPoints.SetValue(140)
				EndIf	
			ElseIf (FeedTimer >= 0.37 && FeedTimer < 0.44 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 160)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 160)				
					Debug.Notification("... the smell of blood in the air excites you ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 160
					VampireBloodPoints.SetValue(160)
				EndIf	
			ElseIf (FeedTimer >= 0.30 && FeedTimer < 0.37 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 190)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 190)				
					Debug.Notification("... heartbeats of the living sing to your heightened senses ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 190
					VampireBloodPoints.SetValue(190)
				EndIf	
			ElseIf (FeedTimer >= 0.23 && FeedTimer < 0.30 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 210)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 210)				
					Debug.Notification("... you begin to crave the taste of blood once again ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 210
					VampireBloodPoints.SetValue(210)
				EndIf	
			ElseIf (FeedTimer >= 0.16 && FeedTimer < 0.23 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 230)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 230)				
					Debug.Notification("... the taste of your last feeding is almost gone ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 230
					VampireBloodPoints.SetValue(230)
				EndIf	
			ElseIf (FeedTimer >= 0.09 && FeedTimer < 0.16 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 250)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 250)				
					Debug.Notification("... you desperately hold on to the warmth of your last victim's blood ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 250
					VampireBloodPoints.SetValue(250)
				EndIf	
			ElseIf (FeedTimer >= 0.02 && FeedTimer < 0.09 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 280)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 280)				
					Debug.Notification("... the taste of warm blood in your mouth is still fresh ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 280
					VampireBloodPoints.SetValue(280)
				EndIf	
			EndIf
		
			If (FeedTimer >= 0.88 && VampireStatus == 3 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 0 && VampireStatus < 4)
				VampireFeedReady.SetValue(3)
				VampireStatus = 4
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					If VampireStageHated.GetValue() == 10000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage4Message.Show()
					Else
						VampireFeedMessage4.Show()
					EndIf
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					If VampireStageHated.GetValue() == 10000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage4Message.Show()
					Else
						VampireFeedMessage4.Show()
					EndIf
				EndIf
				;----------------------------------------------------
				If EnableVampireBloodPoints.GetValue() == 10000	
					VampireBloodPoints.SetValue(0)
					If VampireStatusMessages.GetValue() == 0
						Debug.Notification("You have exhausted your blood pool ... you must feed!")
					EndIf					
				EndIf
				If EnableVampireBloodPoints.GetValue() == 0	
					VampireBloodPoints.SetValue(20)
				EndIf					
				VampireProgression(Game.GetPlayer(), 4)
				VampireUpdateGameTime.SetValue(1)
				
			ElseIf (FeedTimer >= 0.75 && VampireStatus == 2 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 100 && VampireStatus < 3)
				VampireFeedReady.SetValue(2)
				VampireStatus = 3
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					VampireFeedMessage3.Show()
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					VampireFeedMessage3.Show()
				EndIf
				;----------------------------------------------------
				If EnableVampireBloodPoints.GetValue() <= 10000	
					If VampireBloodPoints.GetValue() > 100
						VampireBloodPoints.SetValue(100)
					EndIf
				EndIf					
				VampireProgression(Game.GetPlayer(), 3)	
			
			ElseIf (FeedTimer >= 0.5 && VampireStatus == 1 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 200 && VampireStatus < 2)
				VampireFeedReady.SetValue(1)
				VampireStatus = 2
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD				
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					VampireFeedMessage2.Show()
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					VampireFeedMessage2.Show()
				EndIf
				;----------------------------------------------------
				If EnableVampireBloodPoints.GetValue() <= 10000	
					If VampireBloodPoints.GetValue() > 200
						VampireBloodPoints.SetValue(200)
					EndIf
				EndIf					
				VampireProgression(Game.GetPlayer(), 2)	
			EndIf
		
		
		;----------------------------------------------------
		; NORMAL STAGES OF SATIATION
		
		ElseIf VampireDynamicStages.GetValue() == 0

			If (FeedTimer >= 2.8 && FeedTimer < 3.0 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 20)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 20)				
					Debug.Notification("... the blood from your last feeding is almost completely gone ...")
				EndIf					
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 20
					VampireBloodPoints.SetValue(20)
				EndIf
			ElseIf (FeedTimer >= 2.6 && FeedTimer < 2.8 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 50)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 50)				
					Debug.Notification("... you feel even closer to starvation ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 50
					VampireBloodPoints.SetValue(50)
				EndIf		
			ElseIf (FeedTimer >= 2.4 && FeedTimer < 2.6 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 70)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 70)				
					Debug.Notification("... starvation is looming on the horizon ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 70
					VampireBloodPoints.SetValue(70)
				EndIf	
			ElseIf (FeedTimer >= 2.2 && FeedTimer < 2.4 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 90)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 90)				
					Debug.Notification("... your last feeding will only sustain you for a few more hours ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 90
					VampireBloodPoints.SetValue(90)
				EndIf	
			ElseIf (FeedTimer >= 1.8 && FeedTimer < 2.0 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 120)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 120)				
					Debug.Notification("... your lust for blood is now all-consuming ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 120
					VampireBloodPoints.SetValue(120)
				EndIf	
			ElseIf (FeedTimer >= 1.6 && FeedTimer < 1.8 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 140)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 140)				
					Debug.Notification("... your thirst for blood is very strong ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 140
					VampireBloodPoints.SetValue(140)
				EndIf	
			ElseIf (FeedTimer >= 1.4 && FeedTimer < 1.6 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 160)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 160)				
					Debug.Notification("... the smell of blood in the air excites you ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 160
					VampireBloodPoints.SetValue(160)
				EndIf		
			ElseIf (FeedTimer >= 1.2 && FeedTimer < 1.4 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 190)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 190)				
					Debug.Notification("... heartbeats of the living sing to your heightened senses ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 190
					VampireBloodPoints.SetValue(190)
				EndIf	
			ElseIf (FeedTimer >= 0.8 && FeedTimer < 1.0 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 210)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 210)				
					Debug.Notification("... you begin to crave the taste of blood once again ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 210
					VampireBloodPoints.SetValue(210)
				EndIf		
			ElseIf (FeedTimer >= 0.6 && FeedTimer < 0.8 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 230)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 230)				
					Debug.Notification("... the taste of your last feeding is almost gone ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 230
					VampireBloodPoints.SetValue(230)
				EndIf	
			ElseIf (FeedTimer >= 0.4 && FeedTimer < 0.6 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 250)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 250)				
					Debug.Notification("... you desperately hold on to the warmth of your last victim's blood ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 250
					VampireBloodPoints.SetValue(250)
				EndIf	
			ElseIf (FeedTimer >= 0.2 && FeedTimer < 0.4 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 280)
				If (EnableVampireBloodPoints.GetValue() == 0 && VampireStatusMessages.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireStatusMessages.GetValue() == 0 && VampireBloodPoints.GetValue() > 280)				
					Debug.Notification("... the taste of warm blood in your mouth is still fresh ...")
				EndIf
				If EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() > 280
					VampireBloodPoints.SetValue(280)
				EndIf	
			EndIf
		
			If (FeedTimer >= 3 && VampireStatus == 3 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 0 && VampireStatus < 4)
				VampireFeedReady.SetValue(3)
				VampireStatus = 4
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					If VampireStageHated.GetValue() == 10000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage4Message.Show()
					Else
						VampireFeedMessage4.Show()
					EndIf
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					If VampireStageHated.GetValue() == 10000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage4Message.Show()
					Else
						VampireFeedMessage4.Show()
					EndIf
				EndIf
				;----------------------------------------------------
				If EnableVampireBloodPoints.GetValue() == 10000	
					VampireBloodPoints.SetValue(0)
					If VampireStatusMessages.GetValue() == 0
						Debug.Notification("You have exhausted your blood pool ... you must feed!")
					EndIf					
				EndIf
				If EnableVampireBloodPoints.GetValue() == 0	
					VampireBloodPoints.SetValue(20)
				EndIf					
				VampireProgression(Game.GetPlayer(), 4)
				VampireUpdateGameTime.SetValue(1)
				
			ElseIf (FeedTimer >= 2 && VampireStatus == 2 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 100 && VampireStatus < 3)
				VampireFeedReady.SetValue(2)
				VampireStatus = 3
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					VampireFeedMessage3.Show()
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					VampireFeedMessage3.Show()
				EndIf
				;----------------------------------------------------
				If EnableVampireBloodPoints.GetValue() <= 10000	
					If VampireBloodPoints.GetValue() > 100
						VampireBloodPoints.SetValue(100)
					EndIf
				EndIf					
				VampireProgression(Game.GetPlayer(), 3)	
			
			ElseIf (FeedTimer >= 1 && VampireStatus == 1 && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 200 && VampireStatus < 2)
				VampireFeedReady.SetValue(1)
				VampireStatus = 2
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD				
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					VampireFeedMessage2.Show()
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					VampireFeedMessage2.Show()
				EndIf
				;----------------------------------------------------
				If EnableVampireBloodPoints.GetValue() <= 10000	
					If VampireBloodPoints.GetValue() > 200
						VampireBloodPoints.SetValue(200)
					EndIf
				EndIf					
				VampireProgression(Game.GetPlayer(), 2)	
			EndIf
		
		EndIf	
		
	Endif
	
;----------------------------------------------------
; CONTROLS VAMPIRE HUNTERS - IF YOU HAVE THEM ENABLED

	Int NecksBittenThreshold = Utility.RandomInt(6, 9)
	
	;----------------------------------------------------
	; HUNTERS ONLY ATTACK IF OUTSIDE AND IN CERTAIN AREAS - THEY ATTACK AFTER A CERTAIN NUMBER OF VICTIMS HAVE BEEN DISCOVERED
	
	If Game.IsMovementControlsEnabled() && Game.IsFightingControlsEnabled() && Game.GetPlayer().IsInInterior() == 0 && VampireNecksBittenDiscovered.GetValue() >= NecksBittenThreshold && VampireHunters.GetValue() > 0 && Game.GetPlayer().GetWorldSpace() != Sovngarde && Game.GetPlayer().GetWorldSpace() != DLC01SoulCairn && Game.GetPlayer().GetWorldSpace() != BluePalaceWingWorld
	
		utility.WaitMenuMode(2.0)
		Int AttackOrNotDay = Utility.RandomInt(1, 100)
		Int AttackOrNotNight = Utility.RandomInt(1, 100)		
		Int RandomHunters = Utility.RandomInt(1, 4)
		Int RandomTolanAppearance = Utility.RandomInt(4, 6)
		GetCurrentTimeOfDay()
		
		;----------------------------------------------------
		; 25% CHANCE OF ATTACK DURING THE NIGHT AND 50% CHANCE OF ATTACK DURING THE DAY
		
		If (DayTime >= 6 && DayTime < 19 && AttackOrNotDay <= 50) || (DayTime >= 19 && AttackOrNotNight <= 25) || (DayTime < 6 && AttackOrNotNight <= 25)
		
			ObjectReference VampireHunterXmarker = Game.GetPlayer().PlaceAtMe(Xmarker)
			
			Int VampireHunterAttacks = ((Game.GetPlayer().GetAV("Variable01") as Int)+1)
			Game.GetPlayer().SetAV("Variable01", VampireHunterAttacks)
			
			VampireNecksBittenDiscovered.SetValue(0)
			
			While Game.GetPlayer().GetDistance(VampireHunterXMarker) <= 5000 && VampireHunters.GetValue() > 0
			EndWhile
			
			;Int RandomAttackWaitTime = Utility.RandomInt(5,15)
			;Utility.Wait(RandomAttackWaitTime)
			
			While Game.GetPlayer().HasLOS(VampireHunterXMarker) == True && VampireHunters.GetValue() > 0
			EndWhile
			
			If VampireDawnguardInstalled.GetValue() == 10000

				If (Game.GetPlayer().GetAV("Variable01") < RandomTolanAppearance) || VampireTolanAttacks.GetValue() >= 10000 || (Game.GetPlayer().GetAV("Variable01")) >= 10000
				
					VampireHunter1 = VampireHunterXmarker.PlaceActorAtMe(LvlVampireHunter, 4)
					If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
						VampireHunter2 = VampireHunterXmarker.PlaceActorAtMe(LvlVampireHunter, 4)
					ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
						VampireHunter2 = VampireHunterXmarker.PlaceActorAtMe(LvlVampireHunter, 4)
						VampireHunter3 = VampireHunterXmarker.PlaceActorAtMe(LvlVampireHunter, 4)				
					ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
						VampireHunter2 = VampireHunterXmarker.PlaceActorAtMe(LvlVampireHunter, 4)
						VampireHunter3 = VampireHunterXmarker.PlaceActorAtMe(LvlVampireHunter, 4)
						VampireHunter4 = VampireHunterXmarker.PlaceActorAtMe(LvlVampireHunter, 4)
					EndIf				
			
				ElseIf (Game.GetPlayer().GetAV("Variable01") >= RandomTolanAppearance) && VampireTolanAttacks.GetValue() < 10000 && (Game.GetPlayer().GetAV("Variable01")) < 10000
				
					VampireHunter1 = VampireHunterXmarker.PlaceActorAtMe(VampireVigilantTolan, 4)
					If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
						VampireHunter2 = VampireHunterXmarker.PlaceActorAtMe(VampireWEAssassinDarkElfM, 4)
					ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
						VampireHunter2 = VampireHunterXmarker.PlaceActorAtMe(VampireWEAssassinDarkElfM, 4)
						VampireHunter3 = VampireHunterXmarker.PlaceActorAtMe(VampireWEAssassinKhajiitF, 4)
					ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
						VampireHunter2 = VampireHunterXmarker.PlaceActorAtMe(VampireWEAssassinDarkElfM, 4)
						VampireHunter3 = VampireHunterXmarker.PlaceActorAtMe(VampireWEAssassinKhajiitF, 4)
						VampireHunter4 = VampireHunterXmarker.PlaceActorAtMe(VampireWEAssassinArgonianF, 4)
					EndIf	
					
				EndIf
			
			ElseIf VampireDawnguardInstalled.GetValue() == 0
			
				If (Game.GetPlayer().GetAV("Variable01") < RandomTolanAppearance) || VampireTolanAttacks.GetValue() >= 10000 || (Game.GetPlayer().GetAV("Variable01")) >= 10000
				
					VampireHunter1 = VampireHunterXmarker.PlaceActorAtMe(LvlVampireHunter, 4)
					If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
						VampireHunter2 = VampireHunterXmarker.PlaceActorAtMe(LvlVampireHunter, 4)
					ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
						VampireHunter2 = VampireHunterXmarker.PlaceActorAtMe(LvlVampireHunter, 4)
						VampireHunter3 = VampireHunterXmarker.PlaceActorAtMe(LvlVampireHunter, 4)
					ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
						VampireHunter2 = VampireHunterXmarker.PlaceActorAtMe(LvlVampireHunter, 4)
						VampireHunter3 = VampireHunterXmarker.PlaceActorAtMe(LvlVampireHunter, 4)
						VampireHunter4 = VampireHunterXmarker.PlaceActorAtMe(LvlVampireHunter, 4)						
					EndIf				
			
				ElseIf (Game.GetPlayer().GetAV("Variable01") >= RandomTolanAppearance) && VampireTolanAttacks.GetValue() < 10000 && (Game.GetPlayer().GetAV("Variable01")) < 10000
				
					VampireHunter1 = VampireHunterXmarker.PlaceActorAtMe(VampireVigilantTolan, 4)
					If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
						VampireHunter2 = VampireHunterXmarker.PlaceActorAtMe(VampireWEAssassinDarkElfM, 4)
					ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
						VampireHunter2 = VampireHunterXmarker.PlaceActorAtMe(VampireWEAssassinDarkElfM, 4)
						VampireHunter3 = VampireHunterXmarker.PlaceActorAtMe(VampireWEAssassinKhajiitF, 4)
					ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
						VampireHunter2 = VampireHunterXmarker.PlaceActorAtMe(VampireWEAssassinDarkElfM, 4)
						VampireHunter3 = VampireHunterXmarker.PlaceActorAtMe(VampireWEAssassinKhajiitF, 4)
						VampireHunter4 = VampireHunterXmarker.PlaceActorAtMe(VampireWEAssassinArgonianF, 4)						
					EndIf	
					
				EndIf			
			
			EndIf	
					
			Utility.WaitMenuMode(1.0)
			
			;----------------------------------------------------
			; HUNTER STATISTICS - THEY ARE BASED OFF YOUR STATISTICS
			
			Float PlayerHealth = Game.GetPlayer().GetBaseActorValue("Health")
			Float VampireHunter1Health = PlayerHealth*1.5
			VampireHunter1.SetActorValue("Health", VampireHunter1Health)
			If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
				VampireHunter2.SetActorValue("Health", VampireHunter1Health)
			ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
				VampireHunter2.SetActorValue("Health", VampireHunter1Health)
				VampireHunter3.SetActorValue("Health", VampireHunter1Health)
			ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
				VampireHunter2.SetActorValue("Health", VampireHunter1Health)
				VampireHunter3.SetActorValue("Health", VampireHunter1Health)
				VampireHunter4.SetActorValue("Health", VampireHunter1Health)				
			EndIf			
			
			Float PlayerMagicka = (Game.GetPlayer().GetBaseActorValue("Magicka")*1.2)
			VampireHunter1.SetActorValue("Magicka", PlayerMagicka)
			If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
				VampireHunter2.SetActorValue("Magicka", PlayerMagicka)
			ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
				VampireHunter2.SetActorValue("Magicka", PlayerMagicka)
				VampireHunter3.SetActorValue("Magicka", PlayerMagicka)
			ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
				VampireHunter2.SetActorValue("Magicka", PlayerMagicka)
				VampireHunter3.SetActorValue("Magicka", PlayerMagicka)		
				VampireHunter4.SetActorValue("Magicka", PlayerMagicka)				
			EndIf			
			
			VampireHunter1.SetActorValue("Sneak", 100)
			If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
				VampireHunter2.SetActorValue("Sneak", 100)
			ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
				VampireHunter2.SetActorValue("Sneak", 100)
				VampireHunter3.SetActorValue("Sneak", 100)		
			ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
				VampireHunter2.SetActorValue("Sneak", 100)
				VampireHunter3.SetActorValue("Sneak", 100)
				VampireHunter4.SetActorValue("Sneak", 100)					
			EndIf			
			
			Float Player1Hand = (Game.GetPlayer().GetActorValue("OneHanded")*1.2)
			VampireHunter1.SetActorValue("OneHanded", Player1Hand)
			If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
				VampireHunter2.SetActorValue("OneHanded", Player1Hand)
			ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
				VampireHunter2.SetActorValue("OneHanded", Player1Hand)
				VampireHunter3.SetActorValue("OneHanded", Player1Hand)	
			ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
				VampireHunter2.SetActorValue("OneHanded", Player1Hand)
				VampireHunter3.SetActorValue("OneHanded", Player1Hand)		
				VampireHunter4.SetActorValue("OneHanded", Player1Hand)				
			EndIf			
			
			Float Player2Hand= (Game.GetPlayer().GetActorValue("TwoHanded")*1.2)
			VampireHunter1.SetActorValue("TwoHanded", Player2Hand)
			If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
				VampireHunter2.SetActorValue("TwoHanded", Player2Hand)
			ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
				VampireHunter2.SetActorValue("TwoHanded", Player2Hand)
				VampireHunter3.SetActorValue("TwoHanded", Player2Hand)
			ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
				VampireHunter2.SetActorValue("TwoHanded", Player2Hand)
				VampireHunter3.SetActorValue("TwoHanded", Player2Hand)	
				VampireHunter4.SetActorValue("TwoHanded", Player2Hand)				
			EndIf				

			Float PlayerMarksman = (Game.GetPlayer().GetActorValue("Marksman")*1.2)
			VampireHunter1.SetActorValue("Marksman", PlayerMarksman)
			If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
				VampireHunter2.SetActorValue("Marksman", PlayerMarksman)
			ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
				VampireHunter2.SetActorValue("Marksman", PlayerMarksman)
				VampireHunter3.SetActorValue("Marksman", PlayerMarksman)	
			ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
				VampireHunter2.SetActorValue("Marksman", PlayerMarksman)
				VampireHunter3.SetActorValue("Marksman", PlayerMarksman)
				VampireHunter4.SetActorValue("Marksman", PlayerMarksman)				
			EndIf			
			
			Float PlayerBlock = (Game.GetPlayer().GetActorValue("Block")*1.2)
			VampireHunter1.SetActorValue("Block", PlayerBlock)
			If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
				VampireHunter2.SetActorValue("Block", PlayerBlock)
			ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
				VampireHunter2.SetActorValue("Block", PlayerBlock)
				VampireHunter3.SetActorValue("Block", PlayerBlock)	
			ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
				VampireHunter2.SetActorValue("Block", PlayerBlock)
				VampireHunter3.SetActorValue("Block", PlayerBlock)		
				VampireHunter4.SetActorValue("Block", PlayerBlock)				
			EndIf			
			
			Float PlayerDamageResist = (Game.GetPlayer().GetActorValue("DamageResist")*1.2)
			VampireHunter1.ForceActorValue("DamageResist", PlayerDamageResist)
			If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
				VampireHunter2.SetActorValue("DamageResist", PlayerDamageResist)
			ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
				VampireHunter2.SetActorValue("DamageResist", PlayerDamageResist)
				VampireHunter3.SetActorValue("DamageResist", PlayerDamageResist)
			ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
				VampireHunter2.SetActorValue("DamageResist", PlayerDamageResist)
				VampireHunter3.SetActorValue("DamageResist", PlayerDamageResist)
				VampireHunter4.SetActorValue("DamageResist", PlayerDamageResist)				
			EndIf			

			VampireHunter1.AddPerk(VampireHunterIllusionImmune)
			If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
				VampireHunter2.AddPerk(VampireHunterIllusionImmune)
			ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
				VampireHunter2.AddPerk(VampireHunterIllusionImmune)
				VampireHunter3.AddPerk(VampireHunterIllusionImmune)
			ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
				VampireHunter2.AddPerk(VampireHunterIllusionImmune)
				VampireHunter3.AddPerk(VampireHunterIllusionImmune)	
				VampireHunter4.AddPerk(VampireHunterIllusionImmune)					
			EndIf
			
			VampireHunterXmarker.Disable()
			VampireHunterXmarker.Delete()
			
			;VampireNecksBittenDiscovered.SetValue(0)				
			
			;----------------------------------------------------
			; IF YOU ENABLE IT, HUNTERS WHO WOULD NORMALLY BE ALLIED TO OTHER VIGILANTS OR DAWNGUARD 
			; WILL DEFINITELY HATE YOU, BUT WON'T BE ALLIED TO ANY OTHER VANILLA DAWNGUARD NPCs
			
			If VampireHunterFactionRemoval.GetValue() == 10000
				VampireHunter1.RemoveFromAllFactions()
				VampireHunter1.AddToFaction(VampirePCHunters)
				If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
					VampireHunter2.RemoveFromAllFactions()
					VampireHunter2.AddToFaction(VampirePCHunters)
				ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
					VampireHunter2.RemoveFromAllFactions()
					VampireHunter2.AddToFaction(VampirePCHunters)				
					VampireHunter3.RemoveFromAllFactions()
					VampireHunter3.AddToFaction(VampirePCHunters)
				ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
					VampireHunter2.RemoveFromAllFactions()
					VampireHunter2.AddToFaction(VampirePCHunters)				
					VampireHunter3.RemoveFromAllFactions()
					VampireHunter3.AddToFaction(VampirePCHunters)				
					VampireHunter4.RemoveFromAllFactions()
					VampireHunter4.AddToFaction(VampirePCHunters)					
				EndIf
			EndIf	
			
			Utility.Wait(0.5)
			
			;----------------------------------------------------
			; HUNTERS FOLLOW YOU
			
			VampireHunter1.PathToReference(Game.GetPlayer(), 1)
			If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
				VampireHunter2.PathToReference(Game.GetPlayer(), 1)
			ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
				VampireHunter2.PathToReference(Game.GetPlayer(), 1)
				VampireHunter3.PathToReference(Game.GetPlayer(), 1)	
			ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
				VampireHunter2.PathToReference(Game.GetPlayer(), 1)
				VampireHunter3.PathToReference(Game.GetPlayer(), 1)	
				VampireHunter4.PathToReference(Game.GetPlayer(), 1)				
			EndIf			
			
			Utility.Wait(0.5)
			
			;----------------------------------------------------
			; HUNTERS ATTACK YOU
			
			VampireHunter1.StartCombat(Game.GetPlayer())
			If VampireHunters.GetValue() == 20000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 2)
				VampireHunter2.StartCombat(Game.GetPlayer())
			ElseIf VampireHunters.GetValue() == 30000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 3)
				VampireHunter2.StartCombat(Game.GetPlayer())
				VampireHunter3.StartCombat(Game.GetPlayer())
			ElseIf VampireHunters.GetValue() == 40000 || (VampireHunters.GetValue() == 100000 && RandomHunters == 4)
				VampireHunter2.StartCombat(Game.GetPlayer())
				VampireHunter3.StartCombat(Game.GetPlayer())	
				VampireHunter4.StartCombat(Game.GetPlayer())				
			EndIf			
			
			;----------------------------------------------------
			; VAMPIRE HUNTER TRACKING IS RESET
			
			VampireNecksBittenDiscovered.SetValue(0)			
			
		EndIf
	EndIf
	
;----------------------------------------------------
; IF BLOOD POINTS ARE ENABLED, DISPEL ABILITIES WHEN YOUR REACH 0
	
	If VampireBloodPoints.GetValue() <= 0
	
		VampireBloodPoints.SetValue(0)
		
		Game.GetPlayer().DispelSpell(VampireRaiseThrall01)
		Game.GetPlayer().DispelSpell(VampireRaiseThrall02)
		Game.GetPlayer().DispelSpell(VampireRaiseThrall03)
		Game.GetPlayer().DispelSpell(VampireRaiseThrall04)
		Game.GetPlayer().DispelSpell(VampireRaiseThrall05)
		Game.GetPlayer().DispelSpell(VampireCharm2)			
		Game.GetPlayer().DispelSpell(VampireCloak)
		Game.GetPlayer().DispelSpell(VampireInvisibilityPC)
		Game.GetPlayer().DispelSpell(VampireInvisibilityRecast)
		Game.GetPlayer().DispelSpell(VampireHuntersSight)
		Game.GetPlayer().DispelSpell(VampireDetectAll)
		Game.GetPlayer().DispelSpell(VampireDetectAll02)
		Game.GetPlayer().DispelSpell(VampireDetectAll03)
		Game.GetPlayer().DispelSpell(VampireDetectAll04)	
		Game.GetPlayer().DispelSpell(CreateNPCVampireSpell)
		Game.GetPlayer().DispelSpell(TurnOnCreateNPCVampire)
		Game.GetPlayer().DispelSpell(VampireRemoveHateSpell)
		Game.GetPlayer().DispelSpell(VampireRankSummonCreatureSpell)
		Game.GetPlayer().DispelSpell(VampireRankTelekinesis2)
		Game.GetPlayer().DispelSpell(SanguinemReddereVampireSpell)			
		Game.GetPlayer().DispelSpell(VampireRankInvokeFogSpell01)
		Game.GetPlayer().DispelSpell(VampireRankInvokeFogSpell02)
		Game.GetPlayer().DispelSpell(VampireRankInvokeFogSpell03)
		Game.GetPlayer().DispelSpell(VampireRankInvokeFogSpell04)
		Game.GetPlayer().DispelSpell(VampireRankInvokeFogSpell05)
		Game.GetPlayer().DispelSpell(VampireRankMistFormSpell)
		Game.GetPlayer().DispelSpell(VampireRankBlinkAttackSpell)
	
		Game.GetPlayer().DispelSpell(DLC1VampireMistForm)
		Game.GetPlayer().DispelSpell(DLC1VampireRaiseDeadLeftHand01)
		Game.GetPlayer().DispelSpell(DLC1VampireRaiseDeadLeftHand02)
		Game.GetPlayer().DispelSpell(DLC1VampireRaiseDeadLeftHand03)
		Game.GetPlayer().DispelSpell(DLC1VampireRaiseDeadLeftHand04)
		Game.GetPlayer().DispelSpell(DLC1VampireRaiseDeadLeftHand05)
		Game.GetPlayer().DispelSpell(DLC1ConjureGargoyleLeftHand)
		Game.GetPlayer().DispelSpell(DLC1CorpseCurseLeftHand)	
	
	EndIf	

;----------------------------------------------------
; JUMP BONUS REQUIRES SKSE AND IS NOT SAVED BETWEEN SESSIONS - THIS ADDS IT BACK

	If VampireJumpingBonus.GetValue() == 0 && SKSE.GetVersionRelease() > 0
	
		If Game.GetPlayer().HasSpell(VampireJumpBonusSpell)
			Game.GetPlayer().DispelSpell(VampireJumpBonusSpell)
			Game.GetPlayer().RemoveSpell(VampireJumpBonusSpell)
		EndIf	
		Game.GetPlayer().AddSpell(VampireJumpBonusSpell, abVerbose = False)
		
	EndIf
	
;----------------------------------------------------
; IF ENABLED, HAVE THOSE YOU TURNED FEED WHEN THEY HUNGER - WORK IN PROGRESS!

	Int IdentifyingNPCs = 100
	Actor TurnedNPC = Game.FindRandomActorFromRef(Game.GetPlayer(), 5000.0)
	
	If VampireIdentifyingTurnedNPCs.GetValue() == 0
	
		VampireIdentifyingTurnedNPCs.SetValue(10000)		
	
		While IdentifyingNPCs > 0
		
			TurnedNPC = Game.FindRandomActorFromRef(Game.GetPlayer(), 5000.0)
			
			If TurnedNPC.GetAV("Variable05") == 666 && TurnedNPC.IsDead() == 0 && TurnedNPC != Game.GetPlayer() && TurnedNPC.IsInCombat() == 0
				TurnedNPC.SetAV("Variable05", 667)		
				;Debug.Notification("Feeding is being reset for "+TurnedNPC)
				TurnedNPC.RemoveSpell(VampireTurnToAshPileNPC)
				Utility.WaitMenuMode(0.5)
				TurnedNPC.SetAV("Variable05", 667)
				TurnedNPC.AddSpell(VampireTurnToAshPileNPC, abVerbose = False)
			EndIf

			IdentifyingNPCs -= 1
			
		EndWhile
	
	EndIf
	
EndEvent

;==============================================================================================
;==============================================================================================
;==============================================================================================

Function VampireChange(Actor Target)

	UsingBetterVampiresScripts.SetValue(2)
	
;----------------------------------------------------	
; WHEN YOU FIRST TURN INTO A VAMPIRE FROM YOUR DEFAULT RACE
	
	Game.DisablePlayerControls()
	VampireTransformIncreaseISMD.applyCrossFade(2.0)

	;----------------------------------------------------
	; RACE CHANGE - UNLESS A CUSTOM RACE
	
	If VampireCustomRace.GetValue() == 0
	
		if (Target.GetActorBase().GetRace() == ArgonianRace)
			CureRace = ArgonianRace
			Target.SetRace(ArgonianRaceVampire)
		elseif (Target.GetActorBase().GetRace() == BretonRace)
			CureRace = BretonRace
			Target.SetRace(BretonRaceVampire) 
		elseif (Target.GetActorBase().GetRace() == DarkElfRace)
			CureRace = DarkElfRace
			Target.SetRace(DarkElfRaceVampire) 
		elseif (Target.GetActorBase().GetRace() == HighELfRace)
			CureRace = HighELfRace
			Target.SetRace(HighELfRaceVampire) 
		elseif (Target.GetActorBase().GetRace() == ImperialRace)
			CureRace = ImperialRace
			Target.SetRace(ImperialRaceVampire) 
		elseif (Target.GetActorBase().GetRace() == KhajiitRace)
			CureRace = KhajiitRace
			Target.SetRace(KhajiitRaceVampire) 
		elseif (Target.GetActorBase().GetRace() == NordRace)
			CureRace = NordRace
			Target.SetRace(NordRaceVampire) 
		elseif (Target.GetActorBase().GetRace() == OrcRace)
			CureRace = OrcRace
			Target.SetRace(OrcRaceVampire) 
		elseif (Target.GetActorBase().GetRace() == RedguardRace)
			CureRace = RedguardRace
			Target.SetRace(RedguardRaceVampire) 
		elseif (Target.GetActorBase().GetRace() == WoodElfRace)
			CureRace = WoodElfRace
			Target.SetRace(WoodElfRaceVampire) 
		endif

	EndIf	
	
	VampireChangeFX.play(Target)
	ObjectReference myXmarker = Target.PlaceAtMe(Xmarker)
	MAGVampireTransform01.Play(myXmarker)
	myXmarker.Disable()
	utility.wait(2.0)
	imageSpaceModifier.removeCrossFade()
	VampireChangeFX.stop(Target)	
	
	
	;----------------------------------------------------
	; THESE FACTIONS ARE WHAT YOUR CREATURES AND TURNED VICTIMS BELONG TO
	
	Game.GetPlayer().AddtoFaction(VampirePCFamily)
	Game.GetPlayer().AddtoFaction(DummyFaction)
	
	;----------------------------------------------------	
	; REMOVES DISEASES - VAMPIRES ARE IMMUNE
	
	Target.RemoveSpell(DiseaseBoneBreakFever)
	Target.RemoveSpell(DiseaseBrainRot )
	Target.RemoveSpell(DiseaseRattles )
	Target.RemoveSpell(DiseaseRockjoint )
	Target.RemoveSpell(DiseaseWitbane )
	Target.RemoveSpell(DiseasePorphyricHemophelia)
	Target.RemoveSpell(DiseaseAtaxia)

	Target.RemoveSpell(TrapDiseaseBoneBreakFever)
	Target.RemoveSpell(TrapDiseaseBrainRot )
	Target.RemoveSpell(TrapDiseaseRattles )
	Target.RemoveSpell(TrapDiseaseRockjoint )
	Target.RemoveSpell(TrapDiseaseWitbane )
;	Target.RemoveSpell(TrapDiseasePorphyricHemophelia)
	Target.RemoveSpell(TrapDiseaseAtaxia)	
	
	
	;----------------------------------------------------		
	; IDENTIFY YOUR CURRENT STATS	
	
	Int RankNecksBitten = Game.QueryStat("Necks Bitten")
	Int RankPlayerLevel = Game.GetPlayer().GetLevel()

	;----------------------------------------------------		
	; SET NORMAL RANK
	
	If VampireRankProgression.GetValue() == 0

		If (RankNecksBitten >= 1001 && RankPlayerLevel >= 50 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 1001 && VampireNoLevelNeededForRank.GetValue() == 10000)
			If VampireRank.GetValue() != 61000
				Debug.Notification("Rank Vampiris Praeceptor")
				Debug.Notification("You are among the strongest Vampires to walk Tamriel.")	
				VampireRank.SetValue(61000)					
			EndIf	
			Game.GetPlayer().SetActorValue("Variable08", (Game.GetPlayer().GetActorValue("Variable08")+1))
		EndIf
		If (RankNecksBitten >= 1000 && RankPlayerLevel >= 50 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 1000 && VampireNoLevelNeededForRank.GetValue() == 10000)
			If VampireRank.GetValue() != 60000 && VampireRank.GetValue() != 61000
				Debug.Notification("Rank Vampiris Praeceptor")
				Debug.Notification("You are among the strongest Vampires to walk Tamriel.")	
				VampireRank.SetValue(60000)					
			EndIf		
		EndIf
		If (RankNecksBitten >= 500 && RankPlayerLevel >= 40 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 500 && VampireNoLevelNeededForRank.GetValue() == 10000)
			If VampireRank.GetValue() != 50000 && VampireRank.GetValue() < 60000
				Debug.Notification("Rank Vampiris Patrician")
				VampireRank.SetValue(50000)					
			EndIf		
		EndIf
		If (RankNecksBitten >= 250 && RankPlayerLevel >= 30 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 250 && VampireNoLevelNeededForRank.GetValue() == 10000)
			If VampireRank.GetValue() != 40000 && VampireRank.GetValue() < 50000
				Debug.Notification("Rank Vampiris Plebian")
				VampireRank.SetValue(40000)					
			EndIf		
		EndIf	
		If (RankNecksBitten >= 125 && RankPlayerLevel >= 20 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 125 && VampireNoLevelNeededForRank.GetValue() == 10000)
			If VampireRank.GetValue() != 30000 && VampireRank.GetValue() < 40000
				Debug.Notification("Rank Vampiris Oppidanus")
				VampireRank.SetValue(30000)				
			EndIf			
		EndIf
		If (RankNecksBitten >= 50 && RankPlayerLevel >= 10 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 50 && VampireNoLevelNeededForRank.GetValue() == 10000)
			If VampireRank.GetValue() != 20000 && VampireRank.GetValue() < 30000
				Debug.Notification("Rank Vampiris Apparitor")
				VampireRank.SetValue(20000)							
			EndIf	
		EndIf					
		If (RankNecksBitten >= 1 && RankPlayerLevel >= 1 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 1 && VampireNoLevelNeededForRank.GetValue() == 10000)
			If VampireRank.GetValue() != 10000 && VampireRank.GetValue() < 20000
				Debug.Notification("Rank Vampiris Natus")
				VampireRank.SetValue(10000)							
			EndIf				
		EndIf		

	EndIf	
		
	;----------------------------------------------------	
	; SET EASIER RANK
	
	If VampireRankProgression.GetValue() == 10000

		If (RankNecksBitten >= 401 && RankPlayerLevel >= 30 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 401 && VampireNoLevelNeededForRank.GetValue() == 10000)
			If VampireRank.GetValue() != 61000
				Debug.Notification("Rank Vampiris Praeceptor")
				Debug.Notification("You are among the strongest Vampires to walk Tamriel.")	
				VampireRank.SetValue(61000)					
			EndIf
			Game.GetPlayer().SetActorValue("Variable08", (Game.GetPlayer().GetActorValue("Variable08")+1))
		EndIf		
		If (RankNecksBitten >= 400 && RankPlayerLevel >= 30 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 400 && VampireNoLevelNeededForRank.GetValue() == 10000)
			If VampireRank.GetValue() != 60000 && VampireRank.GetValue() != 61000
				Debug.Notification("Rank Vampiris Praeceptor")
				Debug.Notification("You are among the strongest Vampires to walk Tamriel.")		
				VampireRank.SetValue(60000)					
			EndIf		
		EndIf
		If (RankNecksBitten >= 240 && RankPlayerLevel >= 25 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 240 && VampireNoLevelNeededForRank.GetValue() == 10000)
			If VampireRank.GetValue() != 50000 && VampireRank.GetValue() < 60000
				Debug.Notification("Rank Vampiris Patrician")
				VampireRank.SetValue(50000)					
			EndIf		
		EndIf
		If (RankNecksBitten >= 140 && RankPlayerLevel >= 20 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 140 && VampireNoLevelNeededForRank.GetValue() == 10000)
			If VampireRank.GetValue() != 40000 && VampireRank.GetValue() < 50000
				Debug.Notification("Rank Vampiris Plebian")
				VampireRank.SetValue(40000)
			EndIf		
		EndIf
		If (RankNecksBitten >= 80 && RankPlayerLevel >= 15 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 80 && VampireNoLevelNeededForRank.GetValue() == 10000)
			If VampireRank.GetValue() != 30000 && VampireRank.GetValue() < 40000
				Debug.Notification("Rank Vampiris Oppidanus")
				VampireRank.SetValue(30000)	
			EndIf			
		EndIf
		If (RankNecksBitten >= 40 && RankPlayerLevel >= 10 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 40 && VampireNoLevelNeededForRank.GetValue() == 10000)
			If VampireRank.GetValue() != 20000 && VampireRank.GetValue() < 30000
				Debug.Notification("Rank Vampiris Apparitor")
				VampireRank.SetValue(20000)							
			EndIf		
		EndIf				
		If (RankNecksBitten >= 1 && RankPlayerLevel >= 1 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 1 && VampireNoLevelNeededForRank.GetValue() == 10000)
			If VampireRank.GetValue() != 10000 && VampireRank.GetValue() < 20000
				Debug.Notification("Rank Vampiris Natus")
				VampireRank.SetValue(10000)						
			EndIf
		EndIf		
	
	EndIf	

	;----------------------------------------------------	
	; If BLOOD POINTS ENABLED, SET INITIAL VALUES
	
	If EnableVampireBloodPoints.GetValue() == 10000	
		If VampireDynamicStages.GetValue() == 20000
			VampireBloodPoints.SetValue(100)
		ElseIf VampireDynamicStages.GetValue() < 20000
			VampireBloodPoints.SetValue(300)
		EndIf
	EndIf	
	
	;----------------------------------------------------
	; PUTS YOU IN STAGE 1 OF VAMPIRISM
	
	VampireStatus = 1
	VampireProgression(Game.GetPlayer(), 1)	
	
	;----------------------------------------------------
	;STARTS UPDATES TO TRACK SATIATION
	
	RegisterForUpdateGameTime(1)
	LastFeedTime =  GameDaysPassed.Value
	LastFeedTimeRestoreHealth =  GameDaysPassed.Value

	;----------------------------------------------------
	; IMPORTANT FLAG FOR VAMPIRISM
	
	PlayerIsVampire.SetValue(1)
	
	Utility.Wait(1)
	Game.EnablePlayerControls()	

	;----------------------------------------------------
	; IF YOU WERE PREVIOUSLY CURED, THIS RESETS THE QUEST SO YOU CAN BE CURED AGAIN
	
	If VC01.GetStageDone(200) == 1
		VC01.SetStage(25)
	EndIf
	
	VampireLastTimeFed.SetValue(GameDaysPassed.GetValue())

	;----------------------------------------------------
	; JUMP BONUS REQUIRES SKSE AND IS NOT SAVED BETWEEN SESSIONS - THIS ADDS IT BACK

	If VampireJumpingBonus.GetValue() == 0 && SKSE.GetVersionRelease() > 0
	
		If Game.GetPlayer().HasSpell(VampireJumpBonusSpell)
			Utility.Wait(0.5)		
			Game.GetPlayer().DispelSpell(VampireJumpBonusSpell)
			Utility.Wait(0.5)
			Game.GetPlayer().RemoveSpell(VampireJumpBonusSpell)
			Utility.Wait(0.5)	
		EndIf	
		Game.GetPlayer().AddSpell(VampireJumpBonusSpell, abVerbose = False)
		
	EndIf
	
EndFunction

;==============================================================================================
;==============================================================================================
;==============================================================================================

Function VampireFeed(Actor akFeedTarget)

	UsingBetterVampiresScripts.SetValue(3)
	
;----------------------------------------------------
; THESE FACTIONS ARE WHAT YOUR CREATURES AND TURNED VICTIMS BELONG TO
	
	Game.GetPlayer().AddtoFaction(VampirePCFamily)
	Game.GetPlayer().AddtoFaction(DummyFaction)

;----------------------------------------------------
; ONLY IF YOU ARE NOT DRINKING BOTTLED BLOOD
	
	If akFeedTarget != Game.GetPlayer()	&& VampireBottledBlood.GetValue() == 0
		Game.DisablePlayerControls(false, true, false, false, false, false)
	EndIf
	Utility.Wait(1.0)
	
	Float TargetAlreadyDead = 0
	Float SneakFeeding = 0

;----------------------------------------------------	
;ONLY IF YOU ARE NOT DRINKING BOTTLED BLOOD	AND THE TARGET ISN'T A VAMPIRE

If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	&& akFeedTarget.HasKeyword(Vampire) == 0

	;----------------------------------------------------	
	; FEEDING OFF DEAD BODIES

	If (akFeedTarget.IsDead() == True && Game.GetPlayer().GetRace() != DLC1VampireBeastRace)

		TargetAlreadyDead = 1

		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0  && VampireFeedOffDead.GetValue() == 10000 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+50)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+50)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf	
		
		If VampireFeedingAnimation.GetValue() == 10000
			Float Left = Game.GetPlayer().GetAngleZ() - 90
			Float Behind = Game.GetPlayer().GetAngleZ() + 180			
			Float offsetx = (40 * math.sin(Left)) + (40 * math.sin(Behind))
			Float offsety = (40 * math.cos(Left)) + (40 * math.cos(Behind))
			Game.GetPlayer().MoveTo(akFeedTarget, offsetx, offsety, 0, abMatchRotation = false)	
		ElseIf VampireFeedingAnimation.GetValue() == 0
			Float Left = Game.GetPlayer().GetAngleZ() - 90
			Float Behind = Game.GetPlayer().GetAngleZ() + 180			
			Float offsetx = (0 * math.sin(Left)) + (40 * math.sin(Behind))
			Float offsety = (0 * math.cos(Left)) + (40 * math.cos(Behind))
			Game.GetPlayer().MoveTo(akFeedTarget, offsetx, offsety, 0, abMatchRotation = false)
		EndIf		
		
		akFeedTarget.SendAssaultAlarm()

		akFeedTarget.SetActorValue("Variable08", 9)	
		If VampireFeedingAnimation.GetValue() == 0	
			Game.GetPlayer().PlayIdle(IdleCannibalFeedCrouching)
		ElseIf 	VampireFeedingAnimation.GetValue() == 10000
			Game.GetPlayer().PlayIdle(VampireFeedingBedrollLeft)
		EndIf	
		Int instanceID1 = MAGVampireTransform01.Play(akFeedTarget)
		Sound.SetInstanceVolume(instanceID1, 0.4)		
		akFeedTarget.SetActorValue("Variable08", 9)	

		;If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
		;	NeckMarksRight.Play(akFeedTarget, 240)	
		;EndIf				
		
		Utility.Wait(2.0)
		akFeedTarget.SetActorValue("Variable08", 9)	
		
		If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
			;BleedingSpell.Cast(akFeedTarget,akFeedTarget)	
			Game.TriggerScreenBlood(3)
		EndIf			
		
		Game.EnablePlayerControls()
		Utility.Wait(2.0)
		Game.SetPlayerAIDriven(False)			

	EndIf

	;----------------------------------------------------	
	; IF TARGET IS BLEEDING OUT - FORCE FEED

	If akFeedTarget.IsBleedingOut() == True && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep) == False && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep2) == False && Game.GetPlayer().GetRace() != DLC1VampireBeastRace && akFeedTarget.IsDead() == False

		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf		

		If VampireDawnguardInstalled.GetValue() == 10000
			akFeedTarget.SetActorValue("Variable08", 9)
			akFeedTarget.SetActorValue("Variable05", 9)

			Int instanceID1 = MAGVampireTransform01.Play(akFeedTarget)
			Sound.SetInstanceVolume(instanceID1, 0.4)
			
			Utility.Wait(1.0)
			akFeedTarget.DamageActorValue("Health", 1000000)
			akFeedTarget.Kill(Game.GetPlayer())
			
			akFeedTarget.SendAssaultAlarm()
			
		ElseIf VampireDawnguardInstalled.GetValue() == 0
		
			Game.GetPlayer().MoveTo(akFeedTarget, abMatchRotation = false)
			akFeedTarget.SetActorValue("Variable08", 9)
			akFeedTarget.SetActorValue("Variable05", 9)			
			
			Int instanceID3 = MAGVampireTransform01.Play(akFeedTarget)
			Sound.SetInstanceVolume(instanceID3, 0.5)			

			Utility.Wait(1.0)
			akFeedTarget.DamageActorValue("Health", 1000000)
			akFeedTarget.Kill(Game.GetPlayer())
			If CreateVampire.GetValue() == 0
				akFeedTarget.SendAssaultAlarm()
			EndIf
			
		EndIf

		BleedingSpell.Cast(akFeedTarget,akFeedTarget)		
	
		If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
			NeckMarksRight.Play(akFeedTarget, 240)	
		EndIf				
	
		Utility.Wait(1.0)
		
		If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
			Game.TriggerScreenBlood(3)
		EndIf			
						
		Game.EnablePlayerControls()
		Utility.Wait(2.0)
		Game.SetPlayerAIDriven(False)					
			
	EndIf
				
	;----------------------------------------------------	
	; SNEAK FEEDING - REQUIRES DAWNGUARD

	If Game.GetPlayer().IsSneaking() == True && VampireDawnguardInstalled.GetValue() == 10000 && akFeedTarget.GetSleepState() != 3 && akFeedTarget.HasMagicEffect(InfluenceAggDownFFAimed) == False && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep) == False && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep2) == False && akFeedTarget.IsBleedingOut() == False && akFeedTarget.IsDead() == False && Game.GetPlayer().GetRace() != DLC1VampireBeastRace

		SneakFeeding = 1

		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf	
		
		; IF OTHERS SEE YOU, THIS SENDS UP AN ALARM AT YOUR FEEDING

		akFeedTarget.SendAssaultAlarm()
		akFeedTarget.StopCombat()				
		
		;akFeedTarget.SetAV("Confidence", 0)		
		
		Int instanceID1 = MAGVampireTransform01.Play(akFeedTarget)
		Sound.SetInstanceVolume(instanceID1, 0.4)				
		
		Utility.Wait(1.0)
		If akFeedTarget.GetActorValue("Variable08") == 10
			akFeedTarget.RestoreActorValue("Health", 1000000)		
		EndIf				
		
		If akFeedTarget.GetActorValue("Variable08")	== 11
			akFeedTarget.SetActorValue("Variable08", 9)					
			akFeedTarget.DamageActorValue("Health", 1000000)
			;akFeedTarget.Kill(Game.GetPlayer())	
			akFeedTarget.SetActorValue("Variable08", 9)					
		EndIf			

		; 15% CHANCE OF TARGET RUNNING AWAY MID-FEED, 15% CHANCE OF TARGET BREAKING AWAY AND ATTACKING, 70% CHANCE YOU DRAIN VICTIM AND KILL THEM
		If akFeedTarget.IsWeaponDrawn() == False
			Int RandomFeedingVictimEscape = Utility.RandomInt()		
			If RandomFeedingVictimEscape <= 15
				akFeedTarget.SetAV("Confidence", 0)
				akFeedTarget.StartCombat(Game.GetPlayer())
				;VampireNecksBittenDiscovered.SetValue((VampireNecksBittenDiscovered.GetValue())+1)
			ElseIf RandomFeedingVictimEscape > 15 && RandomFeedingVictimEscape <= 30
				akFeedTarget.SetAV("Confidence", 2)	
				akFeedTarget.StartCombat(Game.GetPlayer())
			ElseIf RandomFeedingVictimEscape > 30
				akFeedTarget.SetActorValue("Variable08", 9)				
				akFeedTarget.DamageActorValue("Health", 1000000)
				;akFeedTarget.Kill(Game.GetPlayer())
				akFeedTarget.SetActorValue("Variable08", 9)
				Game.AdvanceSkill("Sneak",50)
			EndIf
		ElseIf akFeedTarget.IsWeaponDrawn() == True
			akFeedTarget.SetAV("Confidence", 2)
			akFeedTarget.StartCombat(Game.GetPlayer())
			akFeedTarget.SetActorValue("Variable08", 999)	
			;VampireNecksBittenDiscovered.SetValue((VampireNecksBittenDiscovered.GetValue())+1)
		EndIf

		BleedingSpell.Cast(akFeedTarget,akFeedTarget)			
		
		If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
			NeckMarksRight.Play(akFeedTarget, 240)	
		EndIf					
		
		Utility.Wait(1.0)
		
		; ONLY IF NOT DRINKING BOTTLED BLOOD
		If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
			Game.TriggerScreenBlood(3)
		EndIf			
						
		Game.EnablePlayerControls()
		Utility.Wait(2.0)
		Game.SetPlayerAIDriven(False)		
				
	EndIf

	;----------------------------------------------------	
	; FEEDING OFF OF THRALLS - REQUIRES DAWNGUARD
	
	If VampireDawnguardInstalled.GetValue() == 10000 && akFeedTarget.IsInFaction(DLC1ThrallFaction) && akFeedTarget.GetSleepState() != 3 && akFeedTarget.HasMagicEffect(InfluenceAggDownFFAimed) == False && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep) == False && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep2) == False && akFeedTarget.IsBleedingOut() == False && akFeedTarget.IsDead() == False && Game.GetPlayer().IsSneaking() == False && Game.GetPlayer().GetRace() != DLC1VampireBeastRace

		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf	
		
		;akFeedTarget.SendAssaultAlarm()
		akFeedTarget.StopCombat()
		
		Int instanceID1 = MAGVampireTransform01.Play(akFeedTarget)
		Sound.SetInstanceVolume(instanceID1, 0.4)				
		
		Utility.Wait(1.0)			
		If akFeedTarget.GetActorValue("Variable08") == 10
			akFeedTarget.RestoreActorValue("Health", 1000000)		
		EndIf				
		
		If akFeedTarget.GetActorValue("Variable08")	== 11
			akFeedTarget.SetActorValue("Variable08", 9)
			akFeedTarget.DamageActorValue("Health", 1000000)
			;akFeedTarget.Kill(Game.GetPlayer())
			akFeedTarget.SetActorValue("Variable08", 9)
			BleedingSpell.Cast(akFeedTarget,akFeedTarget)
			If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
				Game.TriggerScreenBlood(3)
			EndIf			
		EndIf			
		
		;BleedingSpell.Cast(akFeedTarget,akFeedTarget)			
		
		If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
			NeckMarksRight.Play(akFeedTarget, 240)	
		EndIf					
		
		akFeedTarget.StopCombat()
		Utility.Wait(1.0)
		
		;If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
		;	Game.TriggerScreenBlood(3)
		;EndIf			
						
		Game.EnablePlayerControls()
		Utility.Wait(2.0)
		Game.SetPlayerAIDriven(False)
		akFeedTarget.StopCombat()

	EndIf

	;----------------------------------------------------	
	; FEEDING ON SLEEPING VICTIMS
	
	If akFeedTarget.GetSleepState() == 3 && Game.GetPlayer().GetRace() != DLC1VampireBeastRace && akFeedTarget.IsDead() == False

		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf	

		Utility.Wait(2.0)
		If akFeedTarget.GetActorValue("Variable08") == 10
			akFeedTarget.RestoreActorValue("Health", 1000000)		
		EndIf			
		
		If akFeedTarget.GetActorValue("Variable08")	== 11
			akFeedTarget.SetActorValue("Variable08", 9)				
			akFeedTarget.DamageActorValue("Health", 1000000)
			;akFeedTarget.Kill(Game.GetPlayer())
			akFeedTarget.SetActorValue("Variable08", 9)
			BleedingSpell.Cast(akFeedTarget,akFeedTarget)	
			If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
				Game.TriggerScreenBlood(3)
			EndIf					
		EndIf			

		;BleedingSpell.Cast(akFeedTarget,akFeedTarget)
		
		If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
			NeckMarksRight.Play(akFeedTarget, 240)	
		EndIf		

		Utility.Wait(1.0)
		
		;If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
		;	Game.TriggerScreenBlood(3)
		;EndIf			
		
		Game.EnablePlayerControls()
		Utility.Wait(2.0)
		Game.SetPlayerAIDriven(False)
					
	EndIf	

	;----------------------------------------------------	
	; FEEDING ON SEDUCED VICTIMS - DAWNGUARD REQUIRED
	
	If VampireDawnguardInstalled.GetValue() == 10000 && akFeedTarget.HasMagicEffect(InfluenceAggDownFFAimed) && Game.GetPlayer().GetRace() != DLC1VampireBeastRace && akFeedTarget.IsDead() == False

		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf	

		;akFeedTarget.SendAssaultAlarm()		
		
		Int instanceID1 = MAGVampireTransform01.Play(akFeedTarget)
		Sound.SetInstanceVolume(instanceID1, 0.4)	

		If akFeedTarget.GetActorValue("Variable08") == 10
			akFeedTarget.RestoreActorValue("Health", 1000000)		
		EndIf				
		
		If akFeedTarget.GetActorValue("Variable08")	== 11
			akFeedTarget.SetActorValue("Variable08", 9)				
			akFeedTarget.DamageActorValue("Health", 1000000)
			;akFeedTarget.Kill(Game.GetPlayer())
			akFeedTarget.SetActorValue("Variable08", 9)
			BleedingSpell.Cast(akFeedTarget,akFeedTarget)
			If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
				Game.TriggerScreenBlood(3)
			EndIf			
		EndIf			
		
		;BleedingSpell.Cast(akFeedTarget,akFeedTarget)

		If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
			NeckMarksRight.Play(akFeedTarget, 240)	
		EndIf					
		
		Utility.Wait(1.0)
	
		;If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
		;	Game.TriggerScreenBlood(3)
		;EndIf			
		
		Game.EnablePlayerControls()
		Utility.Wait(2.0)
		Game.SetPlayerAIDriven(False)	
		akFeedTarget.SetNotShowOnStealthMeter(False)			
				
	EndIf
			
	;----------------------------------------------------	
	; FEEDING ON SEDUCED VICTIMS - WITHOUT DAWNGUARD
	
	If VampireDawnguardInstalled.GetValue() == 0 && akFeedTarget.HasMagicEffect(InfluenceAggDownFFAimed) == True && akFeedTarget.GetSleepState() != 3 && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep) == False && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep2) == False && akFeedTarget.IsBleedingOut() == False && akFeedTarget.IsDead() == False

		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf	

		If akFeedTarget.HasLOS(Game.GetPlayer())
		Else
			akFeedTarget.SendAssaultAlarm()
		EndIf
		akFeedTarget.StopCombat()	
		
		Game.GetPlayer().PlayIdleWithTarget(pa_HugA, akFeedTarget)

		Int instanceID1 = MAGVampireTransform01.Play(akFeedTarget)
		Sound.SetInstanceVolume(instanceID1, 0.4)	

		Utility.Wait(1.0)
		If akFeedTarget.GetActorValue("Variable08") == 10
			akFeedTarget.RestoreActorValue("Health", 1000000)		
		EndIf				
		
		If akFeedTarget.GetActorValue("Variable08")	== 11
			akFeedTarget.SetActorValue("Variable08", 9)				
			akFeedTarget.DamageActorValue("Health", 1000000)
			;akFeedTarget.Kill(Game.GetPlayer())
			akFeedTarget.SetActorValue("Variable08", 9)
			BleedingSpell.Cast(akFeedTarget,akFeedTarget)
			If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
				Game.TriggerScreenBlood(3)
			EndIf			
		EndIf			
		
		;BleedingSpell.Cast(akFeedTarget,akFeedTarget)

		If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
			NeckMarksRight.Play(akFeedTarget, 240)	
		EndIf					
		
		Utility.Wait(1.0)
		
		;If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
		;	Game.TriggerScreenBlood(3)
		;EndIf			
		
		Game.EnablePlayerControls()
		Utility.Wait(2.0)
		Game.SetPlayerAIDriven(False)	

	EndIf

	;----------------------------------------------------	
	; SNEAK FEEDING - WITHOUT DAWNGUARD
	
	If Game.GetPlayer().IsSneaking() == True && VampireDawnguardInstalled.GetValue() == 0 && akFeedTarget.GetSleepState() != 3 && akFeedTarget.HasMagicEffect(InfluenceAggDownFFAimed) == False && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep) == False && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep2) == False && akFeedTarget.IsBleedingOut() == False && akFeedTarget.IsDead() == False
				
		SneakFeeding = 1

		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf				
		
		akFeedTarget.SendAssaultAlarm()
		akFeedTarget.StopCombat()			
		
		Game.GetPlayer().PlayIdleWithTarget(pa_HugA, akFeedTarget)
	
		;akFeedTarget.SetAV("Confidence", 0)		
		
		Int instanceID1 = MAGVampireTransform01.Play(akFeedTarget)
		Sound.SetInstanceVolume(instanceID1, 0.4)				
		
		Utility.Wait(1.0)
		If akFeedTarget.GetActorValue("Variable08") == 10
			akFeedTarget.RestoreActorValue("Health", 1000000)		
		EndIf				
		
		If akFeedTarget.GetActorValue("Variable08")	== 11
			akFeedTarget.SetActorValue("Variable08", 9)				
			akFeedTarget.DamageActorValue("Health", 1000000)
			;akFeedTarget.Kill(Game.GetPlayer())
			akFeedTarget.SetActorValue("Variable08", 9)				
		EndIf			

		; 15% CHANCE OF TARGET RUNNING AWAY MID-FEED, 15% CHANCE OF TARGET BREAKING AWAY AND ATTACKING, 70% CHANCE YOU DRAIN VICTIM AND KILL THEM
		If akFeedTarget.IsWeaponDrawn() == False
			Int RandomFeedingVictimEscape = Utility.RandomInt()		
			If RandomFeedingVictimEscape <= 15
				akFeedTarget.SetAV("Confidence", 0)
				akFeedTarget.StartCombat(Game.GetPlayer())
				;VampireNecksBittenDiscovered.SetValue((VampireNecksBittenDiscovered.GetValue())+1)
			ElseIf RandomFeedingVictimEscape > 15 && RandomFeedingVictimEscape <= 30
				akFeedTarget.SetAV("Confidence", 2)	
				akFeedTarget.StartCombat(Game.GetPlayer())
			ElseIf RandomFeedingVictimEscape > 30
				akFeedTarget.SetActorValue("Variable08", 9)				
				akFeedTarget.DamageActorValue("Health", 1000000)
				;akFeedTarget.Kill(Game.GetPlayer())
				akFeedTarget.SetActorValue("Variable08", 9)
				Game.AdvanceSkill("Sneak",50)				
			EndIf
		ElseIf akFeedTarget.IsWeaponDrawn() == True
			akFeedTarget.SetAV("Confidence", 2)
			akFeedTarget.StartCombat(Game.GetPlayer())
			akFeedTarget.SetActorValue("Variable08", 999)	
			;VampireNecksBittenDiscovered.SetValue((VampireNecksBittenDiscovered.GetValue())+1)
		EndIf	
		
		BleedingSpell.Cast(akFeedTarget,akFeedTarget)			
		
		If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
			NeckMarksRight.Play(akFeedTarget, 240)	
		EndIf				
		
		Utility.Wait(1.0)
		
		If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
			Game.TriggerScreenBlood(3)
		EndIf			
		
		Game.EnablePlayerControls()
		Utility.Wait(2.0)
		Game.SetPlayerAIDriven(False)		
				
	EndIf		
			
	;----------------------------------------------------	
	; FEAR'S EMBRACE FEEDING (OR OTHER FORMS OF PARALYSIS)
	
	If (akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep) || akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep2) || akFeedTarget.HasMagicEffect(AlchParalysis) || akFeedTarget.HasMagicEffect(ChillrendParalysisFFContact) || akFeedTarget.HasMagicEffect(DLC1ParalysisFFAimed) || akFeedTarget.HasMagicEffect(EnchParalysisFFContact) || akFeedTarget.HasMagicEffect(FXParalyzeMassBodyHolder) || akFeedTarget.HasMagicEffect(MG08ParalysisAbilityEffect) || akFeedTarget.HasMagicEffect(MG08ParalysisSpellEffect) || akFeedTarget.HasMagicEffect(MS08ParalysisFFAimed) || akFeedTarget.HasMagicEffect(ParalysisFFAimed) || akFeedTarget.HasMagicEffect(ParalysisFFAimedVampire) || akFeedTarget.HasMagicEffect(ParalysisFFContact) || akFeedTarget.HasMagicEffect(ParalysisFFSelfArea) || akFeedTarget.HasMagicEffect(ParalysisFFSelfAreaVampire) || akFeedTarget.HasMagicEffect(ParalysisSprigganDeath) || akFeedTarget.HasMagicEffect(PerkDeepFreezeParalysisConcAimed) || akFeedTarget.HasMagicEffect(PerkDeepFreezeParalysisFFAimed) || akFeedTarget.HasMagicEffect(PerkDeepFreezeParalysisFFAimedArea15) || akFeedTarget.HasMagicEffect(PerkDeepFreezeParalysisFFSelfArea40) || akFeedTarget.HasMagicEffect(PerkGrandmaster1HParalysisFFSelf) || akFeedTarget.HasMagicEffect(PerkGrandmaster2HParalysisFFSelf)) && Game.GetPlayer().GetRace() != DLC1VampireBeastRace  && akFeedTarget.IsDead() == False

		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf	

		If VampireFeedingAnimation.GetValue() == 10000
			Float Left = Game.GetPlayer().GetAngleZ() - 90
			Float Behind = Game.GetPlayer().GetAngleZ() + 180			
			Float offsetx = (40 * math.sin(Left)) + (40 * math.sin(Behind))
			Float offsety = (40 * math.cos(Left)) + (40 * math.cos(Behind))
			Game.GetPlayer().MoveTo(akFeedTarget, offsetx, offsety, 0, abMatchRotation = false)	
		ElseIf VampireFeedingAnimation.GetValue() == 0
			Float Left = Game.GetPlayer().GetAngleZ() - 90
			Float Behind = Game.GetPlayer().GetAngleZ() + 180			
			Float offsetx = (0 * math.sin(Left)) + (40 * math.sin(Behind))
			Float offsety = (0 * math.cos(Left)) + (40 * math.cos(Behind))
			Game.GetPlayer().MoveTo(akFeedTarget, offsetx, offsety, 0, abMatchRotation = false)
		EndIf
		
		akFeedTarget.SendAssaultAlarm()
		akFeedTarget.StopCombat()			

		If VampireFeedingAnimation.GetValue() == 0	
			Game.GetPlayer().PlayIdle(IdleCannibalFeedCrouching)
		ElseIf 	VampireFeedingAnimation.GetValue() == 10000
			Game.GetPlayer().PlayIdle(VampireFeedingBedrollLeft)
		EndIf	

		Int instanceID1 = MAGVampireTransform01.Play(akFeedTarget)
		Sound.SetInstanceVolume(instanceID1, 0.4)			
		
		Utility.Wait(1.0)
		If akFeedTarget.GetActorValue("Variable08") == 10
			akFeedTarget.RestoreActorValue("Health", 1000000)		
		EndIf				
		
		If akFeedTarget.GetActorValue("Variable08")	== 11
			akFeedTarget.SetActorValue("Variable08", 9)				
			akFeedTarget.DamageActorValue("Health", 1000000)
			;akFeedTarget.Kill(Game.GetPlayer())	
			akFeedTarget.SetActorValue("Variable08", 9)
			BleedingSpell.Cast(akFeedTarget,akFeedTarget)
			If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
				Game.TriggerScreenBlood(3)
			EndIf			
		EndIf					
		
		;If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
		;	NeckMarksRight.Play(akFeedTarget, 240)	
		;EndIf					
		
		Utility.Wait(1.0)
		
		If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
			BleedingSpell.Cast(akFeedTarget,akFeedTarget)
			Game.TriggerScreenBlood(3)
		EndIf			
		
		Game.EnablePlayerControls()
		Utility.Wait(2.0)
		Game.SetPlayerAIDriven(False)
				
	EndIf

	;----------------------------------------------------	
	; IF YOU ARE A VAMPIRE LORD, YOU CAN FEED ON TARGETS - REQUIRES DAWNGUARD

	If Game.GetPlayer().GetRace() == DLC1VampireBeastRace && VampireDawnguardInstalled.GetValue() == 10000

		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+100)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf

		akFeedTarget.SendAssaultAlarm()
		akFeedTarget.StopCombat()			

		Int instanceID1 = MAGVampireTransform01.Play(akFeedTarget)
		Sound.SetInstanceVolume(instanceID1, 0.4)				
		
		Utility.Wait(1.0)
		
		If akFeedTarget.IsDead() == True
			TargetAlreadyDead = 1		
			akFeedTarget.SetActorValue("Variable08", 9)
		EndIf	
		
		If akFeedTarget.GetActorValue("Variable08") == 10
			akFeedTarget.RestoreActorValue("Health", 1000000)		
		EndIf				

		If akFeedTarget.GetActorValue("Variable08")	== 11
			akFeedTarget.SetActorValue("Variable08", 9)	
			If akFeedTarget.IsBleedingOut() == True
				akFeedTarget.Kill(Game.GetPlayer())
			EndIf			
			akFeedTarget.DamageActorValue("Health", 1000000)
			akFeedTarget.SetActorValue("Variable08", 9)					
		EndIf
		
		If akFeedTarget.HasMagicEffect(InfluenceAggDownFFAimed) || akFeedTarget.IsBleedingOut() == True
			Game.GetPlayer().PlayIdleWithTarget(VampireLordLeftPowerAttackFeedBack, akFeedTarget)
		Else
			;Game.GetPlayer().MoveTo(akFeedTarget, abMatchRotation = false)
		EndIf

		BleedingSpell.Cast(akFeedTarget,akFeedTarget)
		
		If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
			NeckMarksRight.Play(akFeedTarget, 240)	
		EndIf					
		
		Utility.Wait(2.0)
		
		If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
			Game.TriggerScreenBlood(3)
		EndIf			
						
		Game.EnablePlayerControls()
		Utility.Wait(2.0)
		Game.SetPlayerAIDriven(False)	

	EndIf	
	
EndIf

;----------------------------------------------------	
;ONLY IF YOU ARE NOT DRINKING BOTTLED BLOOD	AND THE TARGET IS A VAMPIRE - REQUIRES AMARANTH PERK

If (akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	&& akFeedTarget.HasKeyword(Vampire) == 1)

	;----------------------------------------------------	
	; FEEDING OFF DEAD VAMPIRES

	If akFeedTarget.IsDead() == True && Game.GetPlayer().GetRace() != DLC1VampireBeastRace

		TargetAlreadyDead = 1

		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0  && VampireFeedOffDead.GetValue() == 10000 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+75)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+75)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf
		
		If VampireFeedingAnimation.GetValue() == 10000
			Float Left = Game.GetPlayer().GetAngleZ() - 90
			Float Behind = Game.GetPlayer().GetAngleZ() + 180			
			Float offsetx = (40 * math.sin(Left)) + (40 * math.sin(Behind))
			Float offsety = (40 * math.cos(Left)) + (40 * math.cos(Behind))
			Game.GetPlayer().MoveTo(akFeedTarget, offsetx, offsety, 0, abMatchRotation = false)	
		ElseIf VampireFeedingAnimation.GetValue() == 0
			Float Left = Game.GetPlayer().GetAngleZ() - 90
			Float Behind = Game.GetPlayer().GetAngleZ() + 180			
			Float offsetx = (0 * math.sin(Left)) + (40 * math.sin(Behind))
			Float offsety = (0 * math.cos(Left)) + (40 * math.cos(Behind))
			Game.GetPlayer().MoveTo(akFeedTarget, offsetx, offsety, 0, abMatchRotation = false)
		EndIf
		
		akFeedTarget.SendAssaultAlarm()
		akFeedTarget.SetActorValue("Variable08", 9)			
		If VampireFeedingAnimation.GetValue() == 0	
			Game.GetPlayer().PlayIdle(IdleCannibalFeedCrouching)
		ElseIf 	VampireFeedingAnimation.GetValue() == 10000
			Game.GetPlayer().PlayIdle(VampireFeedingBedrollLeft)
		EndIf	
		Int instanceID1 = MAGVampireTransform01.Play(akFeedTarget)
		Sound.SetInstanceVolume(instanceID1, 0.4)
		akFeedTarget.SetActorValue("Variable08", 9)
		
		;If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
		;	NeckMarksRight.Play(akFeedTarget, 240)	
		;EndIf				
		
		Utility.Wait(2.0)
		akFeedTarget.SetActorValue("Variable08", 9)			
		
		If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
			;BleedingSpell.Cast(akFeedTarget,akFeedTarget)	
			Game.TriggerScreenBlood(3)
		EndIf			
		
		Game.EnablePlayerControls()
		Utility.Wait(2.0)
		Game.SetPlayerAIDriven(False)

		akFeedTarget.SetActorValue("Variable08", 9)				

	EndIf

	;----------------------------------------------------	
	; IF VAMPIRE IS BLEEDING OUT - FORCE FEED

	If akFeedTarget.IsBleedingOut() == True && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep) == False && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep2) == False && Game.GetPlayer().GetRace() != DLC1VampireBeastRace && akFeedTarget.IsDead() == False

		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+150)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+150)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf	

		If VampireDawnguardInstalled.GetValue() == 10000
			akFeedTarget.SetActorValue("Variable08", 9)
			akFeedTarget.SetActorValue("Variable05", 9)

			Int instanceID1 = MAGVampireTransform01.Play(akFeedTarget)
			Sound.SetInstanceVolume(instanceID1, 0.4)
			
			Utility.Wait(1.0)
			akFeedTarget.SetActorValue("Variable08", 9)					
			akFeedTarget.DamageActorValue("Health", 1000000)
			akFeedTarget.Kill(Game.GetPlayer())
			akFeedTarget.SetActorValue("Variable08", 9)					
			akFeedTarget.SendAssaultAlarm()
			
		Else
		
			Game.GetPlayer().MoveTo(akFeedTarget, abMatchRotation = false)
			akFeedTarget.SetActorValue("Variable08", 9)
			akFeedTarget.SetActorValue("Variable05", 9)			
			
			Int instanceID3 = MAGVampireTransform01.Play(akFeedTarget)
			Sound.SetInstanceVolume(instanceID3, 0.5)			

			;Utility.Wait(1.0)
			akFeedTarget.SetActorValue("Variable08", 9)					
			akFeedTarget.DamageActorValue("Health", 1000000)
			akFeedTarget.Kill(Game.GetPlayer())
			akFeedTarget.SetActorValue("Variable08", 9)					
			akFeedTarget.SendAssaultAlarm()	
			
		EndIf

			BleedingSpell.Cast(akFeedTarget,akFeedTarget)		
		
			If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
				NeckMarksRight.Play(akFeedTarget, 240)	
			EndIf				
		
			Utility.Wait(1.0)
			
			If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
				Game.TriggerScreenBlood(3)
			EndIf			
							
			Game.EnablePlayerControls()
			Utility.Wait(2.0)
			Game.SetPlayerAIDriven(False)
			
			akFeedTarget.SetActorValue("Variable08", 9)	
				
	EndIf	
	
	;----------------------------------------------------	
	; FEEDING ON SLEEPING VAMPIRE
	
	If akFeedTarget.GetSleepState() == 3 && akFeedTarget.IsDead() == False

		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+150)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+150)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf	

		Utility.Wait(2.0)
		akFeedTarget.SetActorValue("Variable08", 9)					
		akFeedTarget.DamageActorValue("Health", 1000000)
		;akFeedTarget.Kill(Game.GetPlayer())	
		akFeedTarget.SetActorValue("Variable08", 9)									

		BleedingSpell.Cast(akFeedTarget,akFeedTarget)
		
		If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
			NeckMarksRight.Play(akFeedTarget, 240)	
		EndIf					
		
		Utility.Wait(1.0)
		
		If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
			Game.TriggerScreenBlood(3)
		EndIf			
		
		Game.EnablePlayerControls()
		Utility.Wait(2.0)
		Game.SetPlayerAIDriven(False)
		
		akFeedTarget.SetActorValue("Variable08", 9)				
					
	EndIf		

	;----------------------------------------------------	
	; SNEAK FEEDING ON VAMPIRE - REQUIRES DAWNGUARD

	If Game.GetPlayer().IsSneaking() == True && VampireDawnguardInstalled.GetValue() == 10000 && akFeedTarget.GetSleepState() != 3 && akFeedTarget.HasMagicEffect(InfluenceAggDownFFAimed) == False && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep) == False && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep2) == False && akFeedTarget.IsBleedingOut() == False && akFeedTarget.IsDead() == False  && Game.GetPlayer().GetRace() != DLC1VampireBeastRace

		SneakFeeding = 1
		
		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+150)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+150)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf		
		
		; IF OTHERS SEE YOU, THIS SENDS UP AN ALARM AT YOUR FEEDING
		akFeedTarget.SendAssaultAlarm()
		akFeedTarget.StopCombat()				
		
		Int instanceID1 = MAGVampireTransform01.Play(akFeedTarget)
		Sound.SetInstanceVolume(instanceID1, 0.4)				
		
		Utility.Wait(1.0)
		
		akFeedTarget.SetActorValue("Variable08", 9)					
		akFeedTarget.DamageActorValue("Health", 1000000)
		;akFeedTarget.Kill(Game.GetPlayer())
		akFeedTarget.SetActorValue("Variable08", 9)
		Game.AdvanceSkill("Sneak",50)	

		BleedingSpell.Cast(akFeedTarget,akFeedTarget)			
		
		If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
			NeckMarksRight.Play(akFeedTarget, 240)	
		EndIf					
		
		Utility.Wait(1.0)

		; ONLY IF NOT DRINKING BOTTLED BLOOD
		If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
			Game.TriggerScreenBlood(3)
		EndIf			
						
		Game.EnablePlayerControls()
		Utility.Wait(2.0)
		Game.SetPlayerAIDriven(False)

		akFeedTarget.SetActorValue("Variable08", 9)				
				
	EndIf	

	;----------------------------------------------------	
	; SNEAK FEEDING ON A VAMPIRE - WITHOUT DAWNGUARD
	
	If Game.GetPlayer().IsSneaking() == True && VampireDawnguardInstalled.GetValue() == 0 && akFeedTarget.GetSleepState() != 3 && akFeedTarget.HasMagicEffect(InfluenceAggDownFFAimed) == False && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep) == False && akFeedTarget.HasMagicEffect(ParalysisFFAimedVampireSleep2) == False && akFeedTarget.IsBleedingOut() == False && akFeedTarget.IsDead() == False && Game.GetPlayer().GetRace() != DLC1VampireBeastRace
				
		SneakFeeding = 1

		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+150)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+150)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf		
		
		akFeedTarget.SendAssaultAlarm()
		akFeedTarget.StopCombat()			
		
		Game.GetPlayer().PlayIdleWithTarget(pa_HugA, akFeedTarget)
	
		Int instanceID1 = MAGVampireTransform01.Play(akFeedTarget)
		Sound.SetInstanceVolume(instanceID1, 0.4)				
		
		Utility.Wait(1.0)

		akFeedTarget.SetActorValue("Variable08", 9)					
		akFeedTarget.DamageActorValue("Health", 1000000)
		;akFeedTarget.Kill(Game.GetPlayer())	
		akFeedTarget.SetActorValue("Variable08", 9)
		Game.AdvanceSkill("Sneak",50)

		BleedingSpell.Cast(akFeedTarget,akFeedTarget)			
		
		If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
			NeckMarksRight.Play(akFeedTarget, 240)	
		EndIf					
		
		Utility.Wait(1.0)
		
		If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
			Game.TriggerScreenBlood(3)
		EndIf			
		
		Game.EnablePlayerControls()
		Utility.Wait(2.0)
		Game.SetPlayerAIDriven(False)

		akFeedTarget.SetActorValue("Variable08", 9)					
				
	EndIf		

	;----------------------------------------------------	
	; IF YOU ARE A VAMPIRE LORD, YOU CAN FEED ON VAMPIRES - REQUIRES DAWNGUARD

	If Game.GetPlayer().GetRace() == DLC1VampireBeastRace && VampireDawnguardInstalled.GetValue() == 10000

		If EnableVampireBloodPoints.GetValue() <= 10000 && CreateVampire.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
			If VampireDynamicStages.GetValue() == 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+150)			
				If VampireBloodPoints.GetValue() > 100
					VampireBloodPoints.SetValue(100)
				EndIf
			ElseIf VampireDynamicStages.GetValue() < 20000
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue()+150)			
				If VampireBloodPoints.GetValue() > 300
					VampireBloodPoints.SetValue(300)
				EndIf
			EndIf
		EndIf	
	
		akFeedTarget.SendAssaultAlarm()
		akFeedTarget.StopCombat()			

		akFeedTarget.SetActorValue("Variable08", 9)										

		Int instanceID1 = MAGVampireTransform01.Play(akFeedTarget)
		Sound.SetInstanceVolume(instanceID1, 0.4)				
		
		If akFeedTarget.HasMagicEffect(InfluenceAggDownFFAimed) && akFeedTarget.IsDead() == False || akFeedTarget.IsBleedingOut() == True  && akFeedTarget.IsDead() == False
			Game.GetPlayer().PlayIdleWithTarget(VampireLordLeftPowerAttackFeedBack, akFeedTarget)
		ElseIf akFeedTarget.IsDead() == True
			TargetAlreadyDead = 1
		Else
			;Game.GetPlayer().MoveTo(akFeedTarget, abMatchRotation = false)
		EndIf

		akFeedTarget.SetActorValue("Variable08", 9)
		If akFeedTarget.IsBleedingOut() == True
			akFeedTarget.Kill(Game.GetPlayer())
		EndIf				
		akFeedTarget.DamageActorValue("Health", 1000000)
		akFeedTarget.SetActorValue("Variable08", 9)					

		BleedingSpell.Cast(akFeedTarget,akFeedTarget)
		
		If VampireNeckMarks.GetValue() == 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
			NeckMarksRight.Play(akFeedTarget, 240)	
		EndIf					
		
		Utility.Wait(2.0)
		
		If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0	
			Game.TriggerScreenBlood(3)
		EndIf			
						
		Game.EnablePlayerControls()
		Utility.Wait(2.0)
		Game.SetPlayerAIDriven(False)

		akFeedTarget.SetActorValue("Variable08", 9)					

	EndIf
	
	;----------------------------------------------------	
	; IF YOU HAVE FED ON A VAMPIRE (REQUIRES AMARANTH PERK) - CHANCE OF GAINING SKILLS (67%)
	
	Int ChanceToAbsorbSkill = Utility.RandomInt(1,3)	
	
	If ChanceToAbsorbSkill > 1
		
		Int SkillAbsorbed = Utility.RandomInt(1,18)
		
		If SkillAbsorbed == 1
			If Game.GetPlayer().GetBaseActorValue("OneHanded") == 100
			Else
				Game.GetPlayer().SetActorValue("OneHanded", (Game.GetPlayer().GetBaseActorValue("OneHanded")+1))
				Debug.Notification("You have absorbed some One-Handed skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 2
			If Game.GetPlayer().GetBaseActorValue("TwoHanded") == 100
			Else	
				Game.GetPlayer().SetActorValue("TwoHanded", (Game.GetPlayer().GetBaseActorValue("TwoHanded")+1))
				Debug.Notification("You have absorbed some Two-Handed skill from your victim.")
			EndIf
		ElseIf SkillAbsorbed == 3
			If Game.GetPlayer().GetBaseActorValue("Marksman") == 100
			Else	
				Game.GetPlayer().SetActorValue("Marksman", (Game.GetPlayer().GetBaseActorValue("Marksman")+1))
				Debug.Notification("You have absorbed some Marksman skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 4
			If Game.GetPlayer().GetBaseActorValue("Block") == 100
			Else	
				Game.GetPlayer().SetActorValue("Block", (Game.GetPlayer().GetBaseActorValue("Block")+1))
				Debug.Notification("You have absorbed some Block skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 5
			If Game.GetPlayer().GetBaseActorValue("Smithing") == 100
			Else	
				Game.GetPlayer().SetActorValue("Smithing", (Game.GetPlayer().GetBaseActorValue("Smithing")+1))
				Debug.Notification("You have absorbed some Smithing skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 6
			If Game.GetPlayer().GetBaseActorValue("HeavyArmor") == 100
			Else	
				Game.GetPlayer().SetActorValue("Heavy Armor", (Game.GetPlayer().GetBaseActorValue("HeavyArmor")+1))
				Debug.Notification("You have absorbed some Heavy Armor skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 7
			If Game.GetPlayer().GetBaseActorValue("LightArmor") == 100
			Else	
				Game.GetPlayer().SetActorValue("LightArmor", (Game.GetPlayer().GetBaseActorValue("LightArmor")+1))
				Debug.Notification("You have absorbed some Light Armor skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 8
			If Game.GetPlayer().GetBaseActorValue("Pickpocket") == 100
			Else
				Game.GetPlayer().SetActorValue("Pickpocket", (Game.GetPlayer().GetBaseActorValue("Pickpocket")+1))
				Debug.Notification("You have absorbed some Pickpocket skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 9
			If Game.GetPlayer().GetBaseActorValue("Lockpicking") == 100	
			Else
				Game.GetPlayer().SetActorValue("Lockpicking", (Game.GetPlayer().GetBaseActorValue("Lockpicking")+1))
				Debug.Notification("You have absorbed some Lockpicking skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 10
			If Game.GetPlayer().GetBaseActorValue("Sneak") == 100
			Else	
				Game.GetPlayer().SetActorValue("Sneak", (Game.GetPlayer().GetBaseActorValue("Sneak")+1))
				Debug.Notification("You have absorbed some Sneak skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 11
			If Game.GetPlayer().GetBaseActorValue("Alchemy") == 100	
			Else
				Game.GetPlayer().SetActorValue("Alchemy", (Game.GetPlayer().GetBaseActorValue("Alchemy")+1))
				Debug.Notification("You have absorbed some Alchemy skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 12
			If Game.GetPlayer().GetBaseActorValue("Alteration") == 100
			Else
				Game.GetPlayer().SetActorValue("Alteration", (Game.GetPlayer().GetBaseActorValue("Alteration")+1))
				Debug.Notification("You have absorbed some Alteration skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 13
			If Game.GetPlayer().GetBaseActorValue("Conjuration") == 100
			Else
				Game.GetPlayer().SetActorValue("Conjuration", (Game.GetPlayer().GetBaseActorValue("Conjuration")+1))
				Debug.Notification("You have absorbed some Conjuration skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 14
			If Game.GetPlayer().GetBaseActorValue("Destruction") == 100
			Else
				Game.GetPlayer().SetActorValue("Destruction", (Game.GetPlayer().GetBaseActorValue("Destruction")+1))
				Debug.Notification("You have absorbed some Destruction skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 15
			If Game.GetPlayer().GetBaseActorValue("Illusion") == 100
			Else
				Game.GetPlayer().SetActorValue("Illusion", (Game.GetPlayer().GetBaseActorValue("Illusion")+1))
				Debug.Notification("You have absorbed some Illusion skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 16
			If Game.GetPlayer().GetBaseActorValue("Speechcraft") == 100
			Else
				Game.GetPlayer().SetActorValue("Speechcraft", (Game.GetPlayer().GetBaseActorValue("Speechcraft")+1))
				Debug.Notification("You have absorbed some Speechcraft skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 17
			If Game.GetPlayer().GetBaseActorValue("Restoration") == 100
			Else
				Game.GetPlayer().SetActorValue("Restoration", (Game.GetPlayer().GetBaseActorValue("Restoration")+1))
				Debug.Notification("You have absorbed some Restoration skill from your victim.")
			EndIf	
		ElseIf SkillAbsorbed == 18
			If Game.GetPlayer().GetBaseActorValue("Enchanting") == 100
			Else
				Game.GetPlayer().SetActorValue("Enchanting", (Game.GetPlayer().GetBaseActorValue("Enchanting")+1))
				Debug.Notification("You have absorbed some Enchanting skill from your victim.")
			EndIf				
		EndIf		
		
	EndIf

EndIf

;----------------------------------------------------	
; IF YOU HAVE PRAESTARE SANGUINARE ACTIVE, THIS TURNS YOUR FEEDING VICTIM INTO A VAMPIRE

If CreateVampire.GetValue() > 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0 && akFeedTarget.HasKeyword(Vampire) == 0

		akFeedTarget.StopCombat()	
		akFeedTarget.SetActorValue("Variable05", 666)
		
		VampireTransformDecreaseISMD.applyCrossFade(2.0)
		utility.wait(2.0)
		imageSpaceModifier.removeCrossFade()
		
		;Game.SetPlayerAIDriven(false)
		
		;Game.GetPlayer().AddSpell(CreateNPCVampireSpell, abVerbose = False)
		;utility.wait(1.0)
		CreateNPCVampireSpell.Cast(Game.GetPlayer(), akFeedTarget)
		utility.wait(3.0)

		If akFeedTarget.IsDead() == True
			akFeedTarget.Resurrect()
		EndIf			
		
		akFeedTarget.StopCombat()
		akFeedTarget.StopCombat()		
		
		;VampireTransformDecreaseISMD.applyCrossFade(2.0)		
		
		;----------------------------------------------------
		; CHANGE THEIR DEFAULT RACE INTO A VAMPIRE RACE
		
		If VampireVictimAppearance.GetValue() == 0
			if (akFeedTarget.GetActorBase().GetRace() == ArgonianRace)
				akFeedTarget.SetRace(ArgonianRaceVampire)
			elseif (akFeedTarget.GetActorBase().GetRace() == BretonRace)
				akFeedTarget.SetRace(BretonRaceVampire)
			elseif (akFeedTarget.GetActorBase().GetRace() == DarkElfRace)
				akFeedTarget.SetRace(DarkElfRaceVampire)
			elseif (akFeedTarget.GetActorBase().GetRace() == ElderRace)
				akFeedTarget.SetRace(ElderRaceVampire)				
			elseif (akFeedTarget.GetActorBase().GetRace() == HighElfRace)
				akFeedTarget.SetRace(HighElfRaceVampire)
			elseif (akFeedTarget.GetActorBase().GetRace() == ImperialRace)
				akFeedTarget.SetRace(ImperialRaceVampire)
			elseif (akFeedTarget.GetActorBase().GetRace() == KhajiitRace)
				akFeedTarget.SetRace(KhajiitRaceVampire)
			elseif (akFeedTarget.GetActorBase().GetRace() == NordRace)
				akFeedTarget.SetRace(NordRaceVampire)
			elseif (akFeedTarget.GetActorBase().GetRace() == OrcRace)
				akFeedTarget.SetRace(OrcRaceVampire)
			elseif (akFeedTarget.GetActorBase().GetRace() == RedguardRace)
				akFeedTarget.SetRace(RedguardRaceVampire)
			elseif (akFeedTarget.GetActorBase().GetRace() == WoodElfRace)
				akFeedTarget.SetRace(WoodElfRaceVampire)
			endif
		EndIf
		
		;Many NPCs, like guards, are actually part of the Fox Race
		If (akFeedTarget.GetActorBase().GetRace() == FoxRace)
			akFeedTarget.SetRace(NordRaceVampire)
			akFeedTarget.RemoveFromAllFactions()
		EndIf		
		
		;----------------------------------------------------		
		
		VampireChangeFX.play(akFeedTarget)
		;ObjectReference myXmarker = akFeedTarget.PlaceAtMe(Xmarker)
		;MAGVampireTransform01.Play(myXmarker)
		;myXmarker.Disable()
		utility.wait(2.0)
		;imageSpaceModifier.removeCrossFade()
		VampireChangeFX.stop(akFeedTarget)			
		
		;----------------------------------------------------
		; THIS REQUIRES SKSE AND WAS INTENDED TO RESET THE 3D MODEL AND ELIMINATE THE GREY FACE BUG - DOESN'T WORK CONSISTENTLY...
		
		If akFeedTarget.IsOnMount()
		Else
			If  SKSE.GetVersionRelease() > 0 && VampireVictimAppearance.GetValue() == 0
				Utility.Wait(0.1)	
				;ActorBase akFeedTargetActorBase = akFeedTarget.GetActorBase()
				;Float akFeedTargetOrigWeight = akFeedTarget.GetWeight()
				;Float akFeedTargetNewWeight = Utility.RandomFloat(50.0, 60.0)
				;Float NeckDelta = (akFeedTargetOrigWeight / 100) - (akFeedTargetNewWeight / 100)			
				;akFeedTargetActorBase.SetWeight(akFeedTargetNewWeight)	
				;;victimActorBase.UpdateWeight(NeckDelta)
				String facegen = "bUseFaceGenPreprocessedHeads:General"
				Utility.SetINIBool(facegen, False)
				Utility.Wait(0.5)
				akFeedTarget.QueueNiNodeUpdate() 
				;akFeedTarget.RegenerateHead()
				Utility.Wait(0.5)			
				Utility.SetINIBool(facegen, True)
			EndIf	
		EndIf

		;----------------------------------------------------
		; REMOVE VICTIM FROM ALL FACTIONS - USE WITH CARE
		
		If VampirePraestareRemoveAllFactions.GetValue() == 10000
			akFeedTarget.RemoveFromAllFactions()
		EndIf
		
		;----------------------------------------------------	
		; REMOVE VICTIM FROM SELECTED FACTIONS
		
		;Remove From Crime Factions
		akFeedTarget.RemoveFromFaction(CrimeFactionEastmarch)			
		akFeedTarget.RemoveFromFaction(CrimeFactionFalkreath)	
		akFeedTarget.RemoveFromFaction(CrimeFactionHaafingar)			
		akFeedTarget.RemoveFromFaction(CrimeFactionHjaalmarch)	
		akFeedTarget.RemoveFromFaction(CrimeFactionImperial)	
		akFeedTarget.RemoveFromFaction(CrimeFactionOrcs)	
		akFeedTarget.RemoveFromFaction(CrimeFactionPale)	
		akFeedTarget.RemoveFromFaction(CrimeFactionReach)	
		akFeedTarget.RemoveFromFaction(CrimeFactionRift)	
		akFeedTarget.RemoveFromFaction(CrimeFactionSons)	
		akFeedTarget.RemoveFromFaction(CrimeFactionWhiterun)	
		akFeedTarget.RemoveFromFaction(CrimeFactionWinterhold)	
		akFeedTarget.RemoveFromFaction(VigilantOfStendarrFaction)
		akFeedTarget.RemoveFromFaction(VampireHunter)
		akFeedTarget.RemoveFromFaction(DLC1HunterFaction)
		akFeedTarget.RemoveFromFaction(DLC1DawnguardFaction)
		akFeedTarget.RemoveFromFaction(DLC1DawnguardExteriorGuardFaction)		
		
		;Remove From Guard Factions
		akFeedTarget.RemoveFromFaction(WERoad02BodyguardFaction)
		akFeedTarget.RemoveFromFaction(MorthalGuardhouseFaction)
		akFeedTarget.RemoveFromFaction(dunDawnstarSanctuaryGuardianFaction)
		akFeedTarget.RemoveFromFaction(MS03ChaletGuardEnemyFaction)
		akFeedTarget.RemoveFromFaction(MQ201ExteriorGuardFaction)
		akFeedTarget.RemoveFromFaction(MQ201PartyGuardFaction)
		akFeedTarget.RemoveFromFaction(DragonsreachBasementGuards)
		akFeedTarget.RemoveFromFaction(CWWhiterunGuardNeutralFaction)
		akFeedTarget.RemoveFromFaction(GuardFactionWindhelm)
		akFeedTarget.RemoveFromFaction(GuardFactionRiften)
		akFeedTarget.RemoveFromFaction(CaravanGuard)
		akFeedTarget.RemoveFromFaction(OrcGuardFaction)
		akFeedTarget.RemoveFromFaction(DA02GuardsPlayerEnemy)
		akFeedTarget.RemoveFromFaction(DA02GuardFaction)
		akFeedTarget.RemoveFromFaction(IsGuardFaction)
		akFeedTarget.RemoveFromFaction(JobGuardCaptainFaction)
		akFeedTarget.RemoveFromFaction(KarthwastenSilverFishGuards)
		akFeedTarget.RemoveFromFaction(GuardFactionCidhnaMine)
		akFeedTarget.RemoveFromFaction(GuardFactionKolskeggr)
		akFeedTarget.RemoveFromFaction(GuardFactionSoljund)
		akFeedTarget.RemoveFromFaction(GuardFactionDawnstar)
		akFeedTarget.RemoveFromFaction(GuardFactionHaafingar)
		akFeedTarget.RemoveFromFaction(GuardFactionSolitude)
		akFeedTarget.RemoveFromFaction(GuardFactionDragonbridge)
		akFeedTarget.RemoveFromFaction(GuardFactionFalkreath)	
		akFeedTarget.RemoveFromFaction(GuardFactionKarthwasten)	
		akFeedTarget.RemoveFromFaction(GuardFactionMarkarth)
		akFeedTarget.RemoveFromFaction(GuardFactionWhiterun)
		akFeedTarget.RemoveFromFaction(CWSonsFaction)
		akFeedTarget.RemoveFromFaction(CWSonsFactionNPC)
		akFeedTarget.RemoveFromFaction(CWImperialFaction)
		akFeedTarget.RemoveFromFaction(CWImperialFactionNPC)			
		
		;Remove From Player Hated Factions			
		akFeedTarget.RemoveFromFaction(CWMission08AllGiantsPlayerFriendFaction)
		akFeedTarget.RemoveFromFaction(DA02CulistsPlayerEnemy)
		akFeedTarget.RemoveFromFaction(DA02CultistsAreEnemies)
		akFeedTarget.RemoveFromFaction(DA02ElisifAfraidOfPlayer)
		akFeedTarget.RemoveFromFaction(DA07PlayerEnemyFaction)
		akFeedTarget.RemoveFromFaction(DA10PlayerEnemyFaction)
		akFeedTarget.RemoveFromFaction(DA11AttackPlayerFaction)
		akFeedTarget.RemoveFromFaction(DA16OrcAmbushFaction)
		akFeedTarget.RemoveFromFaction(DA16VaerminaHostileFaction)
		akFeedTarget.RemoveFromFaction(DB11KatariahCrewFaction)
		akFeedTarget.RemoveFromFaction(dunMarkarthWizard_SecureAreaFaction)
		akFeedTarget.RemoveFromFaction(dunYsgramorsTombGhostFaction)
		akFeedTarget.RemoveFromFaction(dunKarthwastenPlayerEnemyFaction)
		akFeedTarget.RemoveFromFaction(MarriageRivalAttackFaction)
		akFeedTarget.RemoveFromFaction(MG03CallerFaction)
		akFeedTarget.RemoveFromFaction(MGThalmorFaction)
		akFeedTarget.RemoveFromFaction(MS01PlayerEnemyFaction)
		akFeedTarget.RemoveFromFaction(RiftenRatwayFactionEnemy)
		akFeedTarget.RemoveFromFaction(RiftenSkoomaDealerFactionEnemy)
		akFeedTarget.RemoveFromFaction(T03HatePlayerFaction)
		akFeedTarget.RemoveFromFaction(TG02AringothPlayerEnemyFaction)
		akFeedTarget.RemoveFromFaction(TG04EastEmpireFactionHostile)
		akFeedTarget.RemoveFromFaction(TG07ValdFactionHatesPlayer)
		akFeedTarget.RemoveFromFaction(TG08BMercerHatesPlayerFaction)
		akFeedTarget.RemoveFromFaction(TG09NightingaleEnemyFaction)
		akFeedTarget.RemoveFromFaction(TGTQ04NiranyeAttacksFaction)
		akFeedTarget.RemoveFromFaction(WEAdventureHorseRiderFaction)
		akFeedTarget.RemoveFromFaction(WEPlayerEnemy)
		akFeedTarget.RemoveFromFaction(WEThalmorPlayerEnemyFaction)
		akFeedTarget.RemoveFromFaction(WIPlayerEnemyFaction)
		akFeedTarget.RemoveFromFaction(WIPlayerEnemySpecialCombatFaction)

		;----------------------------------------------------
		; ADD VICTIM TO A FACTION YOU ARE BOTH IN AS ALLIES
		
		utility.wait(0.5)			
		akFeedTarget.AddtoFaction(VampirePCFamily)
		akFeedTarget.SetFactionRank(VampirePCFamily, 0)
		akFeedTarget.AddtoFaction(DummyFaction)
		akFeedTarget.SetFactionRank(DummyFaction, 0)					
		
		;----------------------------------------------------
		; IF VICTIM ISN'T A POTENTIAL OR CURRENT FOLLOWER, MAKE THEM A POTENTIAL FOLLOWER		
		
		If akFeedTarget.IsInFaction(CurrentFollowerFaction) == True && akFeedTarget.GetFactionRank(CurrentFollowerFaction) >= 0
			;Do Nothing
		Else
			akFeedTarget.AddtoFaction(PotentialFollowerFaction)
			akFeedTarget.SetFactionRank(PotentialFollowerFaction, 0)
			akFeedTarget.AddtoFaction(CurrentFollowerFaction)
			akFeedTarget.SetFactionRank(CurrentFollowerFaction, -1)	
			akFeedTarget.AddtoFaction(PotentialMarriageFaction)
			akFeedTarget.SetFactionRank(PotentialMarriageFaction, 0)			
		EndIf
		
		akFeedTarget.SetRelationshipRank(Game.GetPlayer(), 4)
		Game.GetPlayer().SetRelationshipRank(akFeedTarget, 4)		
		
		;----------------------------------------------------
		; ADJUST THEIR AI SO THEY WILL FIGHT FOR YOU
		
		akFeedTarget.SetActorValue("Assistance", 2)
		akFeedTarget.SetActorValue("Aggression", 1)
		akFeedTarget.SetActorValue("Confidence", 4)
		akFeedTarget.SetActorValue("Morality", 0)
		
		;----------------------------------------------------
		; MAKE THEM CALM TOWARD YOU AFTER THE TRANSFORMATION
		
		akFeedTarget.StopCombat()		
		akFeedTarget.SetAttackActorOnSight(False)
		utility.wait(1.0)
		VampireVictimBecomesVampire.Show()			
		;Game.GetPlayer().RemoveSpell(CreateNPCVampireSpell)
		CreateVampire.SetValue(0)
		Game.GetPlayer().DispelSpell(TurnOnCreateNPCVampire)
		
		;----------------------------------------------------
		; ADD VAMPIRE SKILLS AND ABILITIES
		
		akFeedTarget.AddSpell(VampireTurnToAshPileNPC, abVerbose = False)
		akFeedTarget.AddSpell(ABVampireSkills, abVerbose = False)
		akFeedTarget.AddSpell(ABVampireSkills02, abVerbose = False)
		akFeedTarget.AddSpell(AbVampire02, abVerbose = False)
		akFeedTarget.AddSpell(AbVampire02b, abVerbose = False)
		akFeedTarget.AddSpell(VampireVampirism, abVerbose = False)
		akFeedTarget.AddSpell(crVampireDrain03, abVerbose = False)
		akFeedTarget.AddSpell(VampireCharm, abVerbose = False)			
		;akFeedTarget.AddSpell(VampireRankFrostCloud04, abVerbose = False)
		akFeedTarget.AddSpell(VampireRankIceFleshSpell04, abVerbose = False)
		akFeedTarget.AddSpell(VampireRankMistFormSpell, abVerbose = False)
		akFeedTarget.AddSpell(VampireRaiseThrall02, abVerbose = False)
		akFeedTarget.AddSpell(VampireStrength02, abVerbose = False)
		;akFeedTarget.AddSpell(VampireSunDamageNPC, abVerbose = False)
		akFeedTarget.AddSpell(crVampireSunDamage, abVerbose = False)		
		akFeedTarget.AddSpell(VampireCharisma02, abVerbose = False)
		akFeedTarget.AddSpell(VampireSleep, abVerbose = False)
		akFeedTarget.AddSpell(InvisibilityVampiric, abVerbose = False)
		utility.wait(1.0)			
		akFeedTarget.AddSpell(VampireTurnToAshPileNPC, abVerbose = False)	
		akFeedTarget.SetActorValue("Variable08", 9)
		akFeedTarget.SetActorValue("Variable05", 666)	
		
		
		Game.SetPlayerAIDriven(false)			
		Game.EnablePlayerControls()				
		
Else

;----------------------------------------------------
; IF YOU ARE NOT TURNING SOMEONE, THESE LINES NOW APPLY

	;----------------------------------------------------
	; CONTROLS RED SCREEN
	
	If VampireBottledBlood.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0 && VampireNoRedScreen.GetValue() == 0
		VampireTransformDecreaseISMD.applyCrossFade(2.0)
		utility.wait(2.0)
		imageSpaceModifier.removeCrossFade()
	EndIf
	
	;----------------------------------------------------
	; DAMAGE VICTIM HEALTH IF NOT DRINKING BOTTLED BLOOD
	
	If akFeedTarget.GetActorValue("Health") > 0 && akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0
		float VictimsHealth = akFeedTarget.GetActorValue("Health")
		float DrainDamage = VictimsHealth*0.25	
		akFeedTarget.DamageActorValue("Health", DrainDamage)
		Utility.Wait(0.1)
		akFeedTarget.RemoveSpell(VampireVictimDamage2)
		Utility.Wait(0.1)
		akFeedTarget.AddSpell(VampireVictimDamage2, abVerbose = False)
	EndIf
	
	;----------------------------------------------------
	; RESTORE SOME HEALTH, STAMINA, AND MAGICKA IF NOT DRINKING BOTTLED BLOOD
	
	If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
		If akFeedTarget.HasKeyword(Vampire) == 1
			Game.GetPlayer().RestoreActorValue("Health", 150)
			Game.GetPlayer().RestoreActorValue("Stamina", 75)
			Game.GetPlayer().RestoreActorValue("Magicka", 75)		
		Else
			If TargetAlreadyDead == 0
				Game.GetPlayer().RestoreActorValue("Health", 100)
				Game.GetPlayer().RestoreActorValue("Stamina", 50)
				Game.GetPlayer().RestoreActorValue("Magicka", 50)
			Else
				Game.GetPlayer().RestoreActorValue("Health", 50)
				Game.GetPlayer().RestoreActorValue("Stamina", 25)
				Game.GetPlayer().RestoreActorValue("Magicka", 25)	
			EndIf
		EndIf		
	EndIf	

	;----------------------------------------------------
	; IF NOT DRINKING BOTTLED BLOOD
	
	If akFeedTarget != Game.GetPlayer() && VampireBottledBlood.GetValue() == 0 && VampireExtractingBlood.GetValue() == 0
	
		;----------------------------------------------------
		; ADD TO NECKS BITTEN DISCOVERED (EVENTUALLY BY VICTIM OR OTHER NPCS)
		
		If (TargetAlreadyDead == 1 && VampireFeedOffDead.GetValue() == 10000) || TargetAlreadyDead == 0 || (TargetAlreadyDead == 1 && akFeedTarget.GetActorValue("Variable05") == 9)
			Game.IncrementStat("Necks Bitten")
			Int NecksBittenNow = Game.QueryStat("Necks Bitten")
			VampireNecksBittenDiscovered.SetValue((VampireNecksBittenDiscovered.GetValue())+1)
			
			Int RankNecksBitten = Game.QueryStat("Necks Bitten")
			Int RankPlayerLevel = Game.GetPlayer().GetLevel()

			;----------------------------------------------------		
			; NORMAL RANK PROGRESSION
			
			If VampireRankProgression.GetValue() == 0

				If (RankNecksBitten >= 1001 && RankPlayerLevel >= 50 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 1001 && VampireNoLevelNeededForRank.GetValue() == 10000)
					If VampireRank.GetValue() != 61000
						If VampireRank.GetValue() != 60000
							Game.DisablePlayerControls()
							VampireChangeFX.play(Game.GetPlayer())
							VampireTransformIncreaseISMD.applyCrossFade(2.0)
							ObjectReference myXmarker = Game.GetPlayer().PlaceAtMe(Xmarker)
							MAGVampireTransform01.Play(myXmarker)
							myXmarker.Disable()
							utility.wait(2.0)
							imageSpaceModifier.removeCrossFade()
							VampireChangeFX.stop(Game.GetPlayer())
							utility.wait(1.0)
							Game.EnablePlayerControls()
							Debug.Notification("Rank Vampiris Praeceptor Attained!")
							Debug.Notification("You are among the strongest Vampires to walk Tamriel.")	
						EndIf
						VampireRank.SetValue(61000)					
					EndIf	
					Game.GetPlayer().SetActorValue("Variable08", (Game.GetPlayer().GetActorValue("Variable08")+1))
				EndIf
				If (RankNecksBitten >= 1000 && RankPlayerLevel >= 50 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 1000 && VampireNoLevelNeededForRank.GetValue() == 10000)
					If VampireRank.GetValue() != 60000 && VampireRank.GetValue() != 61000
							Game.DisablePlayerControls()
							VampireChangeFX.play(Game.GetPlayer())
							VampireTransformIncreaseISMD.applyCrossFade(2.0)
							ObjectReference myXmarker = Game.GetPlayer().PlaceAtMe(Xmarker)
							MAGVampireTransform01.Play(myXmarker)
							myXmarker.Disable()
							utility.wait(2.0)
							imageSpaceModifier.removeCrossFade()
							VampireChangeFX.stop(Game.GetPlayer())
						utility.wait(1.0)
						Game.EnablePlayerControls()					
						Debug.Notification("Rank Vampiris Praeceptor Attained!")
						Debug.Notification("You are among the strongest Vampires to walk Tamriel.")	
						VampireRank.SetValue(60000)					
					EndIf		
				EndIf
				If (RankNecksBitten >= 500 && RankPlayerLevel >= 40 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 500 && VampireNoLevelNeededForRank.GetValue() == 10000)
					If VampireRank.GetValue() != 50000 && VampireRank.GetValue() < 60000
						VampireChangeFX.play(Game.GetPlayer())
						VampireTransformIncreaseISMD.applyCrossFade(2.0)
						ObjectReference myXmarker = Game.GetPlayer().PlaceAtMe(Xmarker)
						MAGVampireTransform01.Play(myXmarker)
						myXmarker.Disable()
						utility.wait(2.0)
						imageSpaceModifier.removeCrossFade()
						VampireChangeFX.stop(Game.GetPlayer())
						utility.wait(1.0)
						Game.EnablePlayerControls()					
						Debug.Notification("Rank Vampiris Patrician Attained!")
						;Debug.Notification("The blood of "+(1000-RankNecksBitten)+" more victims will advance you to Praeceptor Rank.")
						VampireRank.SetValue(50000)					
					EndIf		
				EndIf
				If (RankNecksBitten >= 250 && RankPlayerLevel >= 30 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 250 && VampireNoLevelNeededForRank.GetValue() == 10000)
					If VampireRank.GetValue() != 40000 && VampireRank.GetValue() < 50000
						VampireChangeFX.play(Game.GetPlayer())
						VampireTransformIncreaseISMD.applyCrossFade(2.0)
						ObjectReference myXmarker = Game.GetPlayer().PlaceAtMe(Xmarker)
						MAGVampireTransform01.Play(myXmarker)
						myXmarker.Disable()
						utility.wait(2.0)
						imageSpaceModifier.removeCrossFade()
						VampireChangeFX.stop(Game.GetPlayer())
						utility.wait(1.0)
						Game.EnablePlayerControls()					
						Debug.Notification("Rank Vampiris Plebian Attained!")
						;Debug.Notification("The blood of "+(500-RankNecksBitten)+" more victims will advance you to Patrician Rank.")				
						VampireRank.SetValue(40000)					
					EndIf		
				EndIf	
				If (RankNecksBitten >= 125 && RankPlayerLevel >= 20 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 125 && VampireNoLevelNeededForRank.GetValue() == 10000)
					If VampireRank.GetValue() != 30000 && VampireRank.GetValue() < 40000
						VampireChangeFX.play(Game.GetPlayer())
						VampireTransformIncreaseISMD.applyCrossFade(2.0)
						ObjectReference myXmarker = Game.GetPlayer().PlaceAtMe(Xmarker)
						MAGVampireTransform01.Play(myXmarker)
						myXmarker.Disable()
						utility.wait(2.0)
						imageSpaceModifier.removeCrossFade()
						VampireChangeFX.stop(Game.GetPlayer())
						utility.wait(1.0)
						Game.EnablePlayerControls()					
						Debug.Notification("Rank Vampiris Oppidanus Attained!")
						;Debug.Notification("The blood of "+(250-RankNecksBitten)+" more victims will advance you to Plebian Rank.")				
						VampireRank.SetValue(30000)				
					EndIf			
				EndIf
				If (RankNecksBitten >= 50 && RankPlayerLevel >= 10 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 50 && VampireNoLevelNeededForRank.GetValue() == 10000)
					If VampireRank.GetValue() != 20000 && VampireRank.GetValue() < 30000
						VampireChangeFX.play(Game.GetPlayer())
						VampireTransformIncreaseISMD.applyCrossFade(2.0)
						ObjectReference myXmarker = Game.GetPlayer().PlaceAtMe(Xmarker)
						MAGVampireTransform01.Play(myXmarker)
						myXmarker.Disable()
						utility.wait(2.0)
						imageSpaceModifier.removeCrossFade()
						VampireChangeFX.stop(Game.GetPlayer())
						utility.wait(1.0)
						Game.EnablePlayerControls()					
						Debug.Notification("Rank Vampiris Apparitor Attained!")
						;Debug.Notification("The blood of "+(125-RankNecksBitten)+" more victims will advance you to Oppidanus Rank.")
						VampireRank.SetValue(20000)							
					EndIf	
				EndIf					
				If (RankNecksBitten >= 1 && RankPlayerLevel >= 1 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 1 && VampireNoLevelNeededForRank.GetValue() == 10000)
					If VampireRank.GetValue() != 10000 && VampireRank.GetValue() < 20000
						VampireChangeFX.play(Game.GetPlayer())
						VampireTransformIncreaseISMD.applyCrossFade(2.0)
						ObjectReference myXmarker = Game.GetPlayer().PlaceAtMe(Xmarker)
						MAGVampireTransform01.Play(myXmarker)
						myXmarker.Disable()
						utility.wait(2.0)
						imageSpaceModifier.removeCrossFade()
						VampireChangeFX.stop(Game.GetPlayer())
						utility.wait(1.0)
						Game.EnablePlayerControls()					
						Debug.Notification("Rank Vampiris Natus Attained!")
						;Debug.Notification("The blood of "+(50-RankNecksBitten)+" more victims will advance you to Apparitor Rank.")
						VampireRank.SetValue(10000)							
					EndIf				
				EndIf		

				If Game.GetPlayer().GetActorValue("Variable08") >= 80 && VampirePraeceptorPerks.GetValue() == 0 && VampireRank.GetValue() >= 60000
					; Requires SKSE
					Game.AddPerkPoints(1)
					Game.GetPlayer().SetActorValue("Variable08", 0)
					Debug.Notification("The blood of your victims has granted you additional skill.")
					Debug.Notification("1 perk point added")
				EndIf				
				
			EndIf	
				
			;----------------------------------------------------	
			; EASIER RANK PROGRESSION
			
			If VampireRankProgression.GetValue() == 10000

				If (RankNecksBitten >= 401 && RankPlayerLevel >= 30 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 401 && VampireNoLevelNeededForRank.GetValue() == 10000)
					If VampireRank.GetValue() != 61000
						If VampireRank.GetValue() != 60000
							Debug.Notification("Rank Vampiris Praeceptor Attained!")
							Debug.Notification("You are among the strongest Vampires to walk Tamriel.")	
						EndIf
						VampireRank.SetValue(61000)					
					EndIf
					Game.GetPlayer().SetActorValue("Variable08", (Game.GetPlayer().GetActorValue("Variable08")+1))
				EndIf		
				If (RankNecksBitten >= 400 && RankPlayerLevel >= 30 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 400 && VampireNoLevelNeededForRank.GetValue() == 10000)
					If VampireRank.GetValue() != 60000 && VampireRank.GetValue() != 61000
						Debug.Notification("Rank Vampiris Praeceptor Attained!")
						Debug.Notification("You are among the strongest Vampires to walk Tamriel.")		
						VampireRank.SetValue(60000)					
					EndIf		
				EndIf
				If (RankNecksBitten >= 240 && RankPlayerLevel >= 25 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 240 && VampireNoLevelNeededForRank.GetValue() == 10000)
					If VampireRank.GetValue() != 50000 && VampireRank.GetValue() < 60000
						Debug.Notification("Rank Vampiris Patrician Attained!")
						;Debug.Notification("The blood of "+(400-RankNecksBitten)+" more victims will advance you to Praeceptor Rank.")	
						VampireRank.SetValue(50000)					
					EndIf		
				EndIf
				If (RankNecksBitten >= 140 && RankPlayerLevel >= 20 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 140 && VampireNoLevelNeededForRank.GetValue() == 10000)
					If VampireRank.GetValue() != 40000 && VampireRank.GetValue() < 50000
						Debug.Notification("Rank Vampiris Plebian Attained!")
						;Debug.Notification("The blood of "+(240-RankNecksBitten)+" more victims will advance you to Patrician Rank.")				
						VampireRank.SetValue(40000)
					EndIf		
				EndIf
				If (RankNecksBitten >= 80 && RankPlayerLevel >= 15 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 80 && VampireNoLevelNeededForRank.GetValue() == 10000)
					If VampireRank.GetValue() != 30000 && VampireRank.GetValue() < 40000
						Debug.Notification("Rank Vampiris Oppidanus Attained!")
						;Debug.Notification("The blood of "+(140-RankNecksBitten)+" more victims will advance you to Plebian Rank.")				
						VampireRank.SetValue(30000)	
					EndIf			
				EndIf
				If (RankNecksBitten >= 40 && RankPlayerLevel >= 10 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 40 && VampireNoLevelNeededForRank.GetValue() == 10000)
					If VampireRank.GetValue() != 20000 && VampireRank.GetValue() < 30000
						Debug.Notification("Rank Vampiris Apparitor Attained!")
						;Debug.Notification("The blood of "+(80-RankNecksBitten)+" more victims will advance you to Oppidanus Rank.")
						VampireRank.SetValue(20000)							
					EndIf		
				EndIf				
				If (RankNecksBitten >= 1 && RankPlayerLevel >= 1 && VampireNoLevelNeededForRank.GetValue() == 0) || (RankNecksBitten >= 1 && VampireNoLevelNeededForRank.GetValue() == 10000)
					If VampireRank.GetValue() != 10000 && VampireRank.GetValue() < 20000
						Debug.Notification("Rank Vampiris Natus Attained!")
						;Debug.Notification("The blood of "+(40-RankNecksBitten)+" more victims will advance you to Apparitor Rank.")
						VampireRank.SetValue(10000)						
					EndIf
				EndIf		
				
				If Game.GetPlayer().GetActorValue("Variable08") >= 40 && VampirePraeceptorPerks.GetValue() == 0 && VampireRank.GetValue() >= 60000
					; Requires SKSE
					Game.AddPerkPoints(1)
					Game.GetPlayer().SetActorValue("Variable08", 0)
					Debug.Notification("The blood of your victims has granted you additional skill.")
					Debug.Notification("1 perk point added")					
				EndIf	

			EndIf	
			
			;----------------------------------------------------	
			; STATUS MESSAGES AFTER YOU FEED ON A VICTIM - ACCORDING TO YOUR RANK
			
			If VampireStatusMessages.GetValue() == 0			
			
				If VampireRank.GetValue() == 10000
					utility.wait(1.5)
					Debug.Notification(NecksBittenNow+" feedings begin to fill you with power.")
				ElseIf	VampireRank.GetValue() == 20000
					utility.wait(1.5)		
					Debug.Notification(NecksBittenNow+" feedings fill you with a growing sense of power.")				
				ElseIf	VampireRank.GetValue() == 30000
					utility.wait(1.5)		
					Debug.Notification(NecksBittenNow+" feedings further enhance your vampiric powers.")
				ElseIf	VampireRank.GetValue() == 40000
					utility.wait(1.5)		
					Debug.Notification(NecksBittenNow+" feedings fuel your formidable vampiric powers.")
				ElseIf	VampireRank.GetValue() == 50000
					utility.wait(1.5)		
					Debug.Notification(NecksBittenNow+" feedings fill you with immense strength and power.")	
				ElseIf	VampireRank.GetValue() == 60000
					utility.wait(1.5)		
					Debug.Notification(NecksBittenNow+" feedings grant you immeasurable power and status among Vampires.")	
				ElseIf	VampireRank.GetValue() == 61000
					utility.wait(1.5)		
					Debug.Notification(NecksBittenNow+" feedings grant you immeasurable power and status among Vampires.")	
				EndIf
		
			EndIf
			
		EndIf	
				
	EndIf

	;----------------------------------------------------
	; READY YOURSELF FOR FEEDING AGAIN
	
	If ((TargetAlreadyDead == 1 && VampireFeedOffDead.GetValue() == 10000) || TargetAlreadyDead == 0 || (TargetAlreadyDead == 1 && akFeedTarget.GetActorValue("Variable05") == 9)) && VampireExtractingBlood.GetValue() == 0
		VampireFeedReady.SetValue(0)
	EndIf

;----------------------------------------------------
; SET YOUR CHARACTER TO THE APPROPRIATE SATIATION STAGE

If ((TargetAlreadyDead == 1 && VampireFeedOffDead.GetValue() == 10000) || TargetAlreadyDead == 0 || (TargetAlreadyDead == 1 && akFeedTarget.GetActorValue("Variable05") == 9)) && VampireExtractingBlood.GetValue() == 0
	
	;----------------------------------------------------
	; TWO STAGES OF SATIATION
	
	If VampireDynamicStages.GetValue() == 20000	
	
			VampireStatus = 1
			VampireUpdateGameTime.SetValue(0)
			;----------------------------------------------------
			; MESSAGES IF YOU ARE A VAMPIRE LORD
			If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
				If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
					VampireStage1Message.Show()
				Else
					VampireFeedMessage1.Show()
				EndIf
			ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
				If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
					VampireStage1Message.Show()
				Else
					VampireFeedMessage1.Show()
				EndIf
			EndIf
			;----------------------------------------------------			
			VampireProgression(Game.GetPlayer(), 1)
			LastFeedTime =  GameDaysPassed.Value
			LastFeedTimeRestoreHealth = GameDaysPassed.Value	
	
	;----------------------------------------------------
	; DYNAMIC STAGES OF SATIATION (THEY SPEED UP)
	
	ElseIf VampireDynamicStages.GetValue() == 10000	
	
		If ((GameDaysPassed.Value - LastFeedTime >= 1.5) && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 100)
			
			VampireStatus = 3
			VampireUpdateGameTime.SetValue(0)
			;----------------------------------------------------
			; MESSAGES IF YOU ARE A VAMPIRE LORD
			If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
				VampireFeedMessage3.Show()
			ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
				VampireFeedMessage3.Show()
			EndIf
			;----------------------------------------------------				
			VampireProgression(Game.GetPlayer(), 3)
			LastFeedTime =  GameDaysPassed.Value - 1.25
			LastFeedTimeRestoreHealth = GameDaysPassed.Value
	
		ElseIf ((GameDaysPassed.Value - LastFeedTime >= 1.25) && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 200) 
			
			VampireStatus = 2
			VampireUpdateGameTime.SetValue(0)
			;----------------------------------------------------
			; MESSAGES IF YOU ARE A VAMPIRE LORD				
			If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
				VampireFeedMessage2.Show()
			ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
				VampireFeedMessage2.Show()
			EndIf
			;----------------------------------------------------			
			VampireProgression(Game.GetPlayer(), 2)
			LastFeedTime =  GameDaysPassed.Value - 0.75
			LastFeedTimeRestoreHealth = GameDaysPassed.Value
	
		ElseIf ((GameDaysPassed.Value - LastFeedTime >= 0.75) && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 300)
			
			VampireStatus = 1
			VampireUpdateGameTime.SetValue(0)
			;----------------------------------------------------
			; MESSAGES IF YOU ARE A VAMPIRE LORD
			If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
				If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
					VampireStage1Message.Show()
				Else
					VampireFeedMessage1.Show()
				EndIf
			ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
				If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
					VampireStage1Message.Show()
				Else
					VampireFeedMessage1.Show()
				EndIf
			EndIf
			;----------------------------------------------------				
			VampireProgression(Game.GetPlayer(), 1)
			LastFeedTime =  GameDaysPassed.Value
			LastFeedTimeRestoreHealth = GameDaysPassed.Value
		
		ElseIf ((GameDaysPassed.Value - LastFeedTime < 0.75) && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 300)
			
			VampireStatus = 1
			VampireUpdateGameTime.SetValue(0)
			;----------------------------------------------------
			; MESSAGES IF YOU ARE A VAMPIRE LORD
			If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
				If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
					VampireStage1Message.Show()
				Else
					VampireFeedMessage1.Show()
				EndIf
			ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
				If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
					VampireStage1Message.Show()
				Else
					VampireFeedMessage1.Show()
				EndIf
			EndIf
			;----------------------------------------------------				
			VampireProgression(Game.GetPlayer(), 1)
			LastFeedTime =  GameDaysPassed.Value
			LastFeedTimeRestoreHealth = GameDaysPassed.Value
		
		EndIf
	
	;----------------------------------------------------
	; NORMAL STAGES OF SATIATION
	
	ElseIf VampireDynamicStages.GetValue() == 0	
	
		If ((GameDaysPassed.Value - LastFeedTime >= 3) && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 100)
			
			VampireStatus = 3
			VampireUpdateGameTime.SetValue(0)
			;----------------------------------------------------
			; MESSAGES IF YOU ARE A VAMPIRE LORD
			If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
				VampireFeedMessage3.Show()
			ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
				VampireFeedMessage3.Show()
			EndIf
			;----------------------------------------------------				
			VampireProgression(Game.GetPlayer(), 3)
			LastFeedTime =  GameDaysPassed.Value - 2
			LastFeedTimeRestoreHealth = GameDaysPassed.Value
	
		ElseIf ((GameDaysPassed.Value - LastFeedTime >= 2) && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 200) 
			
			VampireStatus = 2
			VampireUpdateGameTime.SetValue(0)
			;----------------------------------------------------
			; MESSAGES IF YOU ARE A VAMPIRE LORD				
			If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
				VampireFeedMessage2.Show()
			ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
				VampireFeedMessage2.Show()
			EndIf
			;----------------------------------------------------			
			VampireProgression(Game.GetPlayer(), 2)
			LastFeedTime =  GameDaysPassed.Value - 1
			LastFeedTimeRestoreHealth = GameDaysPassed.Value
	
		ElseIf ((GameDaysPassed.Value - LastFeedTime >= 1) && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 300)
			
			VampireStatus = 1
			VampireUpdateGameTime.SetValue(0)
			;----------------------------------------------------
			; MESSAGES IF YOU ARE A VAMPIRE LORD
			If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
				If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
					VampireStage1Message.Show()
				Else
					VampireFeedMessage1.Show()
				EndIf
			ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
				If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
					VampireStage1Message.Show()
				Else
					VampireFeedMessage1.Show()
				EndIf
			EndIf
			;----------------------------------------------------				
			VampireProgression(Game.GetPlayer(), 1)
			LastFeedTime =  GameDaysPassed.Value
			LastFeedTimeRestoreHealth = GameDaysPassed.Value
		
		ElseIf ((GameDaysPassed.Value - LastFeedTime < 1) && BloodMeterDisableFeedTimer.GetValue() == 0) || (EnableVampireBloodPoints.GetValue() == 10000 && VampireBloodPoints.GetValue() <= 300)
			
			VampireStatus = 1
			VampireUpdateGameTime.SetValue(0)
			;----------------------------------------------------
			; MESSAGES IF YOU ARE A VAMPIRE LORD
			If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
				If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
					VampireStage1Message.Show()
				Else
					VampireFeedMessage1.Show()
				EndIf
			ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
				If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
					VampireStage1Message.Show()
				Else
					VampireFeedMessage1.Show()
				EndIf
			EndIf
			;----------------------------------------------------				
			VampireProgression(Game.GetPlayer(), 1)
			LastFeedTime =  GameDaysPassed.Value
			LastFeedTimeRestoreHealth = GameDaysPassed.Value
		
		EndIf	
	
	EndIf

	;----------------------------------------------------
	; SET THE TIME YOU JUST FED
	
	VampireLastTimeFed.SetValue(GameDaysPassed.GetValue())
	

EndIf

EndIf

	;----------------------------------------------------
	; SET A DEAD CHARACTER SO THEY CANNOT BE FED ON AGAIN

	If akFeedTarget.IsDead() == True
		akFeedTarget.SetActorValue("Variable08", 9)
	EndIf
		
	;----------------------------------------------------
	; ENABLE YOU TO MOVE IF YOU SOMEHOW GET STUCK IN AN ANIMATION
	
	Game.SetPlayerAIDriven(False)
	Game.EnablePlayerControls()	
	
	;----------------------------------------------------
	; AFTER 15 SECONDS, SNEAK FEEDING VICTIMS THAT RUN AWAY STOP BEING AFRAID
	
	If SneakFeeding == 1
		utility.wait(15.0)
		akFeedTarget.SetAV("Confidence", 2)
		akFeedTarget.StopCombat()
	EndIf	
	
	;----------------------------------------------------
	; RESET VARIABLES IF YOU DRANK BOTTLED BLOOD OR EXTRACTED IT
	
	VampireBottledBlood.SetValue(0)
	VampireExtractingBlood.SetValue(0)	
	
	;----------------------------------------------------
	; UPDATE IS RESET
	
	UnregisterforUpdateGameTime()
	RegisterForUpdateGameTime(1)	
	
EndFunction

;==============================================================================================
;==============================================================================================
;==============================================================================================

Function SetVampireSatiation()

	;----------------------------------------------------
	; TWO STAGES OF SATIATION

		If VampireDynamicStages.GetValue() == 20000	
		
				VampireStatus = 1
				VampireUpdateGameTime.SetValue(0)
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage1Message.Show()
					Else
						VampireFeedMessage1.Show()
					EndIf
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage1Message.Show()
					Else
						VampireFeedMessage1.Show()
					EndIf
				EndIf
				;----------------------------------------------------			
				VampireProgression(Game.GetPlayer(), 1)
				LastFeedTime =  GameDaysPassed.Value
				LastFeedTimeRestoreHealth = GameDaysPassed.Value	
		
		;----------------------------------------------------
		; DYNAMIC STAGES OF SATIATION (THEY SPEED UP)
		
		ElseIf VampireDynamicStages.GetValue() == 10000	
		
			If (EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() >= 0 && VampireBloodPoints.GetValue() < 100)
				
				VampireStatus = 3
				VampireUpdateGameTime.SetValue(0)
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					VampireFeedMessage3.Show()
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					VampireFeedMessage3.Show()
				EndIf
				;----------------------------------------------------				
				VampireProgression(Game.GetPlayer(), 3)
				LastFeedTime =  GameDaysPassed.Value - 1.25
				LastFeedTimeRestoreHealth = GameDaysPassed.Value
		
			ElseIf (EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() >= 100 && VampireBloodPoints.GetValue() < 200) 
				
				VampireStatus = 2
				VampireUpdateGameTime.SetValue(0)
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD				
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					VampireFeedMessage2.Show()
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					VampireFeedMessage2.Show()
				EndIf
				;----------------------------------------------------			
				VampireProgression(Game.GetPlayer(), 2)
				LastFeedTime =  GameDaysPassed.Value - 0.75
				LastFeedTimeRestoreHealth = GameDaysPassed.Value
		
			ElseIf (EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() >= 200 && VampireBloodPoints.GetValue() < 300)
				
				VampireStatus = 1
				VampireUpdateGameTime.SetValue(0)
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage1Message.Show()
					Else
						VampireFeedMessage1.Show()
					EndIf
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage1Message.Show()
					Else
						VampireFeedMessage1.Show()
					EndIf
				EndIf
				;----------------------------------------------------				
				VampireProgression(Game.GetPlayer(), 1)
				LastFeedTime =  GameDaysPassed.Value
				LastFeedTimeRestoreHealth = GameDaysPassed.Value
			
			ElseIf (EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() >= 300)
				
				VampireStatus = 1
				VampireUpdateGameTime.SetValue(0)
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage1Message.Show()
					Else
						VampireFeedMessage1.Show()
					EndIf
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage1Message.Show()
					Else
						VampireFeedMessage1.Show()
					EndIf
				EndIf
				;----------------------------------------------------				
				VampireProgression(Game.GetPlayer(), 1)
				LastFeedTime =  GameDaysPassed.Value
				LastFeedTimeRestoreHealth = GameDaysPassed.Value
			
			EndIf
		
		;----------------------------------------------------
		; NORMAL STAGES OF SATIATION
		
		ElseIf VampireDynamicStages.GetValue() == 0	
		
			If (EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() >= 0 && VampireBloodPoints.GetValue() < 100)
				
				VampireStatus = 3
				VampireUpdateGameTime.SetValue(0)
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					VampireFeedMessage3.Show()
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					VampireFeedMessage3.Show()
				EndIf
				;----------------------------------------------------				
				VampireProgression(Game.GetPlayer(), 3)
				LastFeedTime =  GameDaysPassed.Value - 2
				LastFeedTimeRestoreHealth = GameDaysPassed.Value
		
			ElseIf (EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() >= 100 && VampireBloodPoints.GetValue() < 200)
				
				VampireStatus = 2
				VampireUpdateGameTime.SetValue(0)
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD				
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					VampireFeedMessage2.Show()
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					VampireFeedMessage2.Show()
				EndIf
				;----------------------------------------------------			
				VampireProgression(Game.GetPlayer(), 2)
				LastFeedTime =  GameDaysPassed.Value - 1
				LastFeedTimeRestoreHealth = GameDaysPassed.Value
		
			ElseIf (EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() >= 200 && VampireBloodPoints.GetValue() < 300)
				
				VampireStatus = 1
				VampireUpdateGameTime.SetValue(0)
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage1Message.Show()
					Else
						VampireFeedMessage1.Show()
					EndIf
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage1Message.Show()
					Else
						VampireFeedMessage1.Show()
					EndIf
				EndIf
				;----------------------------------------------------				
				VampireProgression(Game.GetPlayer(), 1)
				LastFeedTime =  GameDaysPassed.Value
				LastFeedTimeRestoreHealth = GameDaysPassed.Value
			
			ElseIf (EnableVampireBloodPoints.GetValue() <= 10000 && VampireBloodPoints.GetValue() >= 300)
				
				VampireStatus = 1
				VampireUpdateGameTime.SetValue(0)
				;----------------------------------------------------
				; MESSAGES IF YOU ARE A VAMPIRE LORD
				If VampireProgression.GetValue() == 0 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace ; Normal Progression
					If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage1Message.Show()
					Else
						VampireFeedMessage1.Show()
					EndIf
				ElseIf VampireProgression.GetValue() == 10000 && Game.GetPlayer().GetRace() == DLC1VampireBeastRace  ; Reverse Progression
					If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
						VampireStage1Message.Show()
					Else
						VampireFeedMessage1.Show()
					EndIf
				EndIf
				;----------------------------------------------------				
				VampireProgression(Game.GetPlayer(), 1)
				LastFeedTime =  GameDaysPassed.Value
				LastFeedTimeRestoreHealth = GameDaysPassed.Value
			
			EndIf
			
		EndIf	


		;----------------------------------------------------
		; UPDATE IS RESET
		
		UnregisterforUpdateGameTime()
		RegisterForUpdateGameTime(1)
		
		;----------------------------------------------------
		; SET THE TIME YOU JUST FED
		
		VampireLastTimeFed.SetValue(GameDaysPassed.GetValue())		
		
EndFunction



;==============================================================================================
;==============================================================================================
;==============================================================================================


Function VampireEnthrall(Actor akEnthrallTarget)

	;----------------------------------------------------
	; YOU CAN ENTHRALL A SLEEPING, BLEEDING OUT, OR SEDUCED VICTIM TO BECOME VAMPIRE CATTLE
	
		Float TargetWillpower = akEnthrallTarget.GetAV("Health") + akEnthrallTarget.GetAV("Stamina")
		Float PlayerWillpower = Game.GetPlayer().GetAV("Health") + Game.GetPlayer().GetAV("Stamina")
		
		Int EnthrallInThirdPerson = 1
		Int VictimIsTooPowerful = 0
		VictimIsTooPowerful = 0
		Int VictimFightsBack = Utility.RandomInt(1, 10)
		
		If (TargetWillpower > PlayerWillpower) && VictimFightsBack >= 6
			VictimIsTooPowerful = 1
		EndIf
		
		If akEnthrallTarget.HasKeyword(VampireHunterKeyword) == False && akEnthrallTarget.GetSleepState() != 3 && (akEnthrallTarget.HasMagicEffect(InfluenceAggDownFFAimed) == True || akEnthrallTarget.IsBleedingOut() == True) && VictimIsTooPowerful == 0

			akEnthrallTarget.StopCombat()
			
			If EnableVampireBloodPoints.GetValue() == 10000
				VampireBloodPoints(40)
			EndIf			
			
			Int instanceID1 = UIHealthHeartbeatALP.Play(Game.GetPlayer())
			Sound.SetInstanceVolume(instanceID1, 1.0)			
			
			utility.wait(1.0)
			
			If Game.GetCameraState() == 0
				EnthrallInThirdPerson = 0
			EndIf
			
			If EnthrallInThirdPerson == 0
				Game.ForceThirdPerson()
			EndIf				
			
			Game.GetPlayer().StopCombat()				
			Game.DisablePlayerControls(false, true, false, false, false, false)
			Utility.Wait(0.5)
			
			Game.GetPlayer().PlayIdleWithTarget(pa_DLC1SeranaHoldsVyrthur, akEnthrallTarget)
			Utility.Wait(1.0)
			Int instanceID2 = NPCVampireLordFeedSound.Play(Game.GetPlayer())
			Sound.SetInstanceVolume(instanceID2, 0.5)
			VampireEnthrallCrossFade.applyCrossFade(1.0)			
			Utility.Wait(1.5)
			Int instanceID3 = NPCVampireLordFeedSound.Play(Game.GetPlayer())
			Sound.SetInstanceVolume(instanceID3, 1.8)
			Utility.Wait(1.0)
			Int instanceID4 = VOCShoutFXAnimalAllegianceSound.Play(Game.GetPlayer())
			Sound.SetInstanceVolume(instanceID4, 2.0)			
			Utility.Wait(1.0)
			Int instanceID5 = MAGAltarsBlessingFireA2DSound.Play(Game.GetPlayer())
			Sound.SetInstanceVolume(instanceID5, 3.5)
			Utility.Wait(0.1)			
			Game.SetPlayerAIDriven(False)		
			
			akEnthrallTarget.RemoveFromAllFactions()
			akEnthrallTarget.UnEquipAll()
			akEnthrallTarget.RemoveAllItems(akTransferTo = Game.GetPlayer())

			If VampireEnthrallAliasCount.GetValue() == 1
				VampireEnthrallAlias01.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(2)
			ElseIf VampireEnthrallAliasCount.GetValue() == 2
				VampireEnthrallAlias02.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(3)
			ElseIf VampireEnthrallAliasCount.GetValue() == 3
				VampireEnthrallAlias03.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(4)
			ElseIf VampireEnthrallAliasCount.GetValue() == 4
				VampireEnthrallAlias04.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(5)
			ElseIf VampireEnthrallAliasCount.GetValue() == 5
				VampireEnthrallAlias05.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(6)
			ElseIf VampireEnthrallAliasCount.GetValue() == 6
				VampireEnthrallAlias06.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(7)
			ElseIf VampireEnthrallAliasCount.GetValue() == 7
				VampireEnthrallAlias07.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(8)
			ElseIf VampireEnthrallAliasCount.GetValue() == 8
				VampireEnthrallAlias08.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(9)
			ElseIf VampireEnthrallAliasCount.GetValue() == 9
				VampireEnthrallAlias09.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(10)
			ElseIf VampireEnthrallAliasCount.GetValue() == 10
				VampireEnthrallAlias10.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(1)
			EndIf			

			akEnthrallTarget.EquipItem(ClothesPrisonerTunic, true)
			akEnthrallTarget.EquipItem(ClothesPrisonerShoes, true)

			akEnthrallTarget.SetActorValue("Assistance", 0)
			akEnthrallTarget.SetActorValue("Aggression", 0)
			akEnthrallTarget.SetActorValue("Confidence", 0)
			akEnthrallTarget.SetActorValue("Morality", 0)			
			
			akEnthrallTarget.StopCombat()			
			
			Utility.Wait(3.0)
			Debug.SendAnimationEvent(Game.GetPlayer(), "IdleForceDefaultState")
			Game.EnablePlayerControls()
			Utility.Wait(0.5)
			If EnthrallInThirdPerson == 0
				Game.ForceFirstPerson()
			EndIf				
			imageSpaceModifier.removeCrossFade()
			Sound.StopInstance(instanceID1)			
		
			If akEnthrallTarget.IsInFaction(CurrentFollowerFaction) == True && akEnthrallTarget.GetFactionRank(CurrentFollowerFaction) >= 0
				akEnthrallTarget.AddtoFaction(DLC1ThrallFaction)	
			Else
				akEnthrallTarget.AddtoFaction(DLC1ThrallFaction)	
				akEnthrallTarget.AddtoFaction(PotentialFollowerFaction)
				akEnthrallTarget.SetFactionRank(PotentialFollowerFaction, 0)
				akEnthrallTarget.AddtoFaction(CurrentFollowerFaction)
				akEnthrallTarget.SetFactionRank(CurrentFollowerFaction, -1)	
			EndIf
			
			akEnthrallTarget.SetRelationshipRank(Game.GetPlayer(), 4)
			Game.GetPlayer().SetRelationshipRank(akEnthrallTarget, 4)			
		
			akEnthrallTarget.StopCombat()		
		
		ElseIf akEnthrallTarget.HasKeyword(VampireHunterKeyword) == False && akEnthrallTarget.GetSleepState() == 3 && VictimIsTooPowerful == 0
		
			akEnthrallTarget.StopCombat()
			
			If EnableVampireBloodPoints.GetValue() == 10000
				VampireBloodPoints(40)
			EndIf			
			
			Int instanceID1 = UIHealthHeartbeatALP.Play(Game.GetPlayer())
			Sound.SetInstanceVolume(instanceID1, 1.0)			
			
			utility.wait(1.0)
			
			If Game.GetCameraState() == 0
				EnthrallInThirdPerson = 0
			EndIf
			
			If EnthrallInThirdPerson == 0
				Game.ForceThirdPerson()
			EndIf				
			
			Game.GetPlayer().StopCombat()				
			Game.DisablePlayerControls(false, true, false, false, false, false)
			Utility.Wait(0.5)
			
			Game.GetPlayer().PlayIdleWithTarget(IdleSearchBody, akEnthrallTarget)
			Utility.Wait(1.0)
			Int instanceID2 = NPCVampireLordFeedSound.Play(Game.GetPlayer())
			Sound.SetInstanceVolume(instanceID2, 0.5)
			VampireEnthrallCrossFade.applyCrossFade(1.0)			
			Utility.Wait(1.5)
			Int instanceID3 = NPCVampireLordFeedSound.Play(Game.GetPlayer())
			Sound.SetInstanceVolume(instanceID3, 1.8)
			Utility.Wait(1.0)
			Int instanceID4 = VOCShoutFXAnimalAllegianceSound.Play(Game.GetPlayer())
			Sound.SetInstanceVolume(instanceID4, 2.0)			
			Utility.Wait(1.0)
			Int instanceID5 = MAGAltarsBlessingFireA2DSound.Play(Game.GetPlayer())
			Sound.SetInstanceVolume(instanceID5, 2.0)
			Utility.Wait(0.1)			
			Game.SetPlayerAIDriven(False)		
			
			akEnthrallTarget.RemoveFromAllFactions()
			akEnthrallTarget.UnEquipAll()
			akEnthrallTarget.RemoveAllItems(akTransferTo = Game.GetPlayer())

			If VampireEnthrallAliasCount.GetValue() == 1
				VampireEnthrallAlias01.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(2)
			ElseIf VampireEnthrallAliasCount.GetValue() == 2
				VampireEnthrallAlias02.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(3)
			ElseIf VampireEnthrallAliasCount.GetValue() == 3
				VampireEnthrallAlias03.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(4)
			ElseIf VampireEnthrallAliasCount.GetValue() == 4
				VampireEnthrallAlias04.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(5)
			ElseIf VampireEnthrallAliasCount.GetValue() == 5
				VampireEnthrallAlias05.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(6)
			ElseIf VampireEnthrallAliasCount.GetValue() == 6
				VampireEnthrallAlias06.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(7)
			ElseIf VampireEnthrallAliasCount.GetValue() == 7
				VampireEnthrallAlias07.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(8)
			ElseIf VampireEnthrallAliasCount.GetValue() == 8
				VampireEnthrallAlias08.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(9)
			ElseIf VampireEnthrallAliasCount.GetValue() == 9
				VampireEnthrallAlias09.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(10)
			ElseIf VampireEnthrallAliasCount.GetValue() == 10
				VampireEnthrallAlias10.ForceRefTo(akEnthrallTarget)
				VampireEnthrallAliasCount.SetValue(1)
			EndIf	

			akEnthrallTarget.EquipItem(ClothesPrisonerTunic, true)
			akEnthrallTarget.EquipItem(ClothesPrisonerShoes, true)

			akEnthrallTarget.SetActorValue("Assistance", 0)
			akEnthrallTarget.SetActorValue("Aggression", 0)
			akEnthrallTarget.SetActorValue("Confidence", 0)
			akEnthrallTarget.SetActorValue("Morality", 0)			
			
			akEnthrallTarget.StopCombat()			
			
			Utility.Wait(3.0)
			Debug.SendAnimationEvent(Game.GetPlayer(), "IdleForceDefaultState")
			Game.EnablePlayerControls()
			Utility.Wait(0.5)
			If EnthrallInThirdPerson == 0
				Game.ForceFirstPerson()
			EndIf				
			imageSpaceModifier.removeCrossFade()
			Sound.StopInstance(instanceID1)			
		
			If akEnthrallTarget.IsInFaction(CurrentFollowerFaction) == True && akEnthrallTarget.GetFactionRank(CurrentFollowerFaction) >= 0
				akEnthrallTarget.AddtoFaction(DLC1ThrallFaction)	
			Else
				akEnthrallTarget.AddtoFaction(DLC1ThrallFaction)	
				akEnthrallTarget.AddtoFaction(PotentialFollowerFaction)
				akEnthrallTarget.SetFactionRank(PotentialFollowerFaction, 0)
				akEnthrallTarget.AddtoFaction(CurrentFollowerFaction)
				akEnthrallTarget.SetFactionRank(CurrentFollowerFaction, -1)	
			EndIf
			
			akEnthrallTarget.SetRelationshipRank(Game.GetPlayer(), 4)
			Game.GetPlayer().SetRelationshipRank(akEnthrallTarget, 4)
		
			akEnthrallTarget.StopCombat()		
		
		ElseIf akEnthrallTarget.HasKeyword(VampireHunterKeyword) == True || VictimIsTooPowerful == 1
		  
			akEnthrallTarget.DispelSpell(VampireCharm)
			Utility.Wait(1.0)						
			Debug.Notification("Your victim is too strong to be enthralled ...")
			akEnthrallTarget.SendAssaultAlarm()
			akEnthrallTarget.StartCombat(Game.GetPlayer())
						
		EndIf		

EndFunction


;==============================================================================================
;==============================================================================================
;==============================================================================================


Function VampireBite(Actor akBiteTarget)

	;----------------------------------------------------
	; COMBAT BITING WILL ATTACK AND DRAIN A VICTIM OF HEALTH - IF THEY HAVE LESS HEALTH THAN YOU DO 
	
	If Game.GetPlayer().GetAV("Health") > akBiteTarget.GetAV("Health")
	
		;----------------------------------------------------
		; YOU NEED AT LEAST 50 STAMINA TO ATTEMPT A COMBAT BITE
		
		If Game.GetPlayer().GetAV("Stamina") >= 50
		
			Int CombatBiteInThirdPerson = 1

			If Game.GetCameraState() == 0
				CombatBiteInThirdPerson = 0
			EndIf
		
			If VampireDawnguardInstalled.GetValue() == 10000
				Game.GetPlayer().PlayIdleWithTarget(IdleVampireStandingFront, akBiteTarget)
				Game.GetPlayer().DamageActorValue("Stamina", 50)				
				akBiteTarget.EnableAI(false)
				akBiteTarget.EnableAI()			
				Utility.Wait(1.0)
				Int instanceID1 = NPCDragonAttackBite.Play(akBiteTarget)
				Sound.SetInstanceVolume(instanceID1, 0.5)
				akBiteTarget.SendAssaultAlarm()
				Utility.Wait(1.7)				
				If CombatBiteInThirdPerson == 0
					Game.ForceFirstPerson()
					CombatBiteInThirdPerson = 1
				EndIf
				Utility.Wait(0.3)		
			ElseIf VampireDawnguardInstalled.GetValue() == 0
				Game.GetPlayer().MoveTo(akBiteTarget, 70.0 * Math.Sin(akBiteTarget.GetAngleZ()), 70.0 * Math.Cos(akBiteTarget.GetAngleZ()), 0, abMatchRotation = false)	
				Game.GetPlayer().DamageActorValue("Stamina", 50)
				Int instanceID1 = NPCDragonAttackBite.Play(akBiteTarget)
				Sound.SetInstanceVolume(instanceID1, 0.5)
				Utility.Wait(1.0)
				akBiteTarget.SendAssaultAlarm()
			EndIf

			akBiteTarget.EvaluatePackage()
			akBiteTarget.EvaluatePackage()			
			
			;----------------------------------------------------
			; DRAIN VICTIM OF HEALTH
			
			Int RandomHealthBonus = Utility.RandomInt(10,20)
			Int HealthDamage = (Game.GetPlayer().GetLevel() + RandomHealthBonus)
			; DOUBLE DAMAGE IF USING ML VERSION
			If BetterVampiresML.GetValue() == 10000
				RandomHealthBonus = Utility.RandomInt(20,40)
				HealthDamage = (Game.GetPlayer().GetLevel()*2 + RandomHealthBonus)
			EndIf			
			
			akBiteTarget.EnableAI(false)
			akBiteTarget.EnableAI()
			akBiteTarget.EvaluatePackage()
			akBiteTarget.EvaluatePackage()			
			
			akBiteTarget.StartDeferredKill()
			
			;Debug.Notification(("Victim has "+(akBiteTarget.GetActorValue("Health") as Int)+" Health.  Bite Does "+HealthDamage+" damage."))
			If (akBiteTarget.GetActorValue("Health")as Int) <= HealthDamage
				;Debug.Notification("Trying to kill ...")
				akBiteTarget.DamageActorValue("Health", 1000000)
			ElseIf (akBiteTarget.GetActorValue("Health")as Int) > HealthDamage
				;Debug.Notification("Doing Normal Damage ...")
				akBiteTarget.DamageActorValue("Health", HealthDamage)
			EndIf 
			
			Game.GetPlayer().RestoreActorValue("Health", HealthDamage)				
			akBiteTarget.EndDeferredKill()
			
			;----------------------------------------------------
			; RE-DRAW YOUR WEAPON IF IT WAS PUT AWAY FOR THE ANIMATION
			
			Utility.Wait(0.2)
			Game.EnablePlayerControls()	
			Utility.Wait(0.2)
			Game.SetPlayerAIDriven(False)			
			Utility.Wait(0.2)
			Game.GetPlayer().DrawWeapon()
			Utility.Wait(0.2)
			Game.GetPlayer().DrawWeapon()
			Utility.Wait(0.2)
			Game.GetPlayer().DrawWeapon()			
			
			akBiteTarget.StartCombat(Game.GetPlayer())
			
		ElseIf Game.GetPlayer().GetAV("Stamina") < 50
		
			If VampireStatusMessages.GetValue() == 0
				Debug.Notification("You lack the stamina to attempt a combat bite.")	
			EndIf
			
		EndIf	
		
	Else
	
		If VampireStatusMessages.GetValue() == 0
			Debug.Notification("Your target is still too strong for you to attempt a combat bite.")
		EndIf
		
	EndIf	
		
EndFunction

;==============================================================================================
;==============================================================================================
;==============================================================================================

Function VampireProgression(Actor Player, Int VampireStage)

	UsingBetterVampiresScripts.SetValue(4)

	;----------------------------------------------------	
	; REMOVE THE OLD CONFIGURATION POWER	
	
	If VampireMenuSpell.GetValue() == 0
		Game.GetPlayer().AddSpell(BetterVampiresMenuOptionsSpell, abVerbose = False)
	ElseIf VampireMenuSpell.GetValue() == 10000
		Game.GetPlayer().RemoveSpell(BetterVampiresMenuOptionsSpell)		
	EndIf
	
	;----------------------------------------------------
	; THESE FACTIONS ARE WHAT YOUR CREATURES AND TURNED VICTIMS BELONG TO
	
	Game.GetPlayer().AddtoFaction(VampirePCFamily)
	Game.GetPlayer().AddtoFaction(DummyFaction)	

	;----------------------------------------------------
	; OLD VERSIONS OF DRAIN ARE REMOVED, NEW VERSIONS ARE ADDED

		Player.RemoveSpell(VampireDrain01)
		Player.RemoveSpell(VampireDrain02)
		Player.RemoveSpell(VampireDrain03)
		Player.RemoveSpell(VampireDrain04)

	If Player.GetLevel() >= 1 && Player.GetLevel() < 10 && Player.HasSpell(VampireDrain05) == False
		Player.AddSpell(VampireDrain05, abVerbose = False)
		Player.RemoveSpell(VampireDrain06)
		Player.RemoveSpell(VampireDrain07)
		Player.RemoveSpell(VampireDrain08)
		Player.RemoveSpell(VampireDrain09)
		Player.RemoveSpell(VampireDrain10)	
		Player.RemoveSpell(VampireDrain11)
		Player.RemoveSpell(VampireDrain12)
		Player.RemoveSpell(VampireDrain13)
	EndIf	
		
	If Player.GetLevel() >= 10 && Player.GetLevel() < 20 && Player.HasSpell(VampireDrain06) == False
		Player.AddSpell(VampireDrain06, abVerbose = False)
		Player.RemoveSpell(VampireDrain05)	
		Player.RemoveSpell(VampireDrain07)
		Player.RemoveSpell(VampireDrain08)
		Player.RemoveSpell(VampireDrain09)
		Player.RemoveSpell(VampireDrain10)	
		Player.RemoveSpell(VampireDrain11)
		Player.RemoveSpell(VampireDrain12)
		Player.RemoveSpell(VampireDrain13)		
	EndIf

	If Player.GetLevel() >= 20 && Player.GetLevel() < 30 && Player.HasSpell(VampireDrain07) == False
		Player.AddSpell(VampireDrain07, abVerbose = False)
		Player.RemoveSpell(VampireDrain05)	
		Player.RemoveSpell(VampireDrain06)
		Player.RemoveSpell(VampireDrain08)
		Player.RemoveSpell(VampireDrain09)
		Player.RemoveSpell(VampireDrain10)	
		Player.RemoveSpell(VampireDrain11)
		Player.RemoveSpell(VampireDrain12)
		Player.RemoveSpell(VampireDrain13)			
	EndIf

	If Player.GetLevel() >= 30 && Player.GetLevel() < 40 && Player.HasSpell(VampireDrain08) == False
		Player.AddSpell(VampireDrain08, abVerbose = False)
		Player.RemoveSpell(VampireDrain05)	
		Player.RemoveSpell(VampireDrain06)
		Player.RemoveSpell(VampireDrain07)
		Player.RemoveSpell(VampireDrain09)
		Player.RemoveSpell(VampireDrain10)	
		Player.RemoveSpell(VampireDrain11)
		Player.RemoveSpell(VampireDrain12)
		Player.RemoveSpell(VampireDrain13)			
	EndIf

	If Player.GetLevel() >= 40 && Player.GetLevel() < 50 && Player.HasSpell(VampireDrain09) == False
		Player.AddSpell(VampireDrain09, abVerbose = False)
		Player.RemoveSpell(VampireDrain05)	
		Player.RemoveSpell(VampireDrain06)
		Player.RemoveSpell(VampireDrain07)
		Player.RemoveSpell(VampireDrain08)
		Player.RemoveSpell(VampireDrain10)	
		Player.RemoveSpell(VampireDrain11)
		Player.RemoveSpell(VampireDrain12)
		Player.RemoveSpell(VampireDrain13)			
	EndIf

	If Player.GetLevel() >= 50 && Player.GetLevel() < 60 && Player.HasSpell(VampireDrain10) == False
		Player.AddSpell(VampireDrain10, abVerbose = False)
		Player.RemoveSpell(VampireDrain05)	
		Player.RemoveSpell(VampireDrain06)
		Player.RemoveSpell(VampireDrain07)
		Player.RemoveSpell(VampireDrain08)
		Player.RemoveSpell(VampireDrain09)
		Player.RemoveSpell(VampireDrain11)
		Player.RemoveSpell(VampireDrain12)
		Player.RemoveSpell(VampireDrain13)			
	EndIf

	If Player.GetLevel() >= 60 && Player.GetLevel() < 70 && Player.HasSpell(VampireDrain11) == False
		Player.AddSpell(VampireDrain11, abVerbose = False)
		Player.RemoveSpell(VampireDrain05)	
		Player.RemoveSpell(VampireDrain06)
		Player.RemoveSpell(VampireDrain07)
		Player.RemoveSpell(VampireDrain08)
		Player.RemoveSpell(VampireDrain09)
		Player.RemoveSpell(VampireDrain10)	
		Player.RemoveSpell(VampireDrain12)
		Player.RemoveSpell(VampireDrain13)			
	EndIf

	If Player.GetLevel() >= 70 && Player.GetLevel() < 80 && Player.HasSpell(VampireDrain12) == False
		Player.AddSpell(VampireDrain12, abVerbose = False)
		Player.RemoveSpell(VampireDrain05)	
		Player.RemoveSpell(VampireDrain06)
		Player.RemoveSpell(VampireDrain07)
		Player.RemoveSpell(VampireDrain08)
		Player.RemoveSpell(VampireDrain09)
		Player.RemoveSpell(VampireDrain10)	
		Player.RemoveSpell(VampireDrain11)
		Player.RemoveSpell(VampireDrain13)			
	EndIf

	If Player.GetLevel() >= 80 && Player.HasSpell(VampireDrain13) == False
		Player.AddSpell(VampireDrain13, abVerbose = False)
		Player.RemoveSpell(VampireDrain05)	
		Player.RemoveSpell(VampireDrain06)
		Player.RemoveSpell(VampireDrain07)
		Player.RemoveSpell(VampireDrain08)
		Player.RemoveSpell(VampireDrain09)
		Player.RemoveSpell(VampireDrain10)	
		Player.RemoveSpell(VampireDrain11)
		Player.RemoveSpell(VampireDrain12)
	EndIf	

;----------------------------------------------------
; REVERSE VAMPIRE PROGRESSION	
	
If VampireProgression.GetValue() == 10000

	;----------------------------------------------------
	; REVERSE STAGE 2
	
	If VampireStage == 2
		If Game.GetPlayer().GetRace() != DLC1VampireBeastRace
			VampireFeedMessage2.Show()
		EndIf	
		; STOP BEING HATED BY EVERYONE
		Game.GetPlayer().RemoveFromFaction(VampirePCFaction)
		Game.GetPlayer().SetAttackActorOnSight(False)
		VampireStageGlobal.SetValue(2)		

		Player.AddSpell(ABVampireSkills, abVerbose = False)
		Player.AddSpell(ABVampireSkills02, abVerbose = False)
		Player.RemoveSpell(AbVampire01)
		Player.RemoveSpell(AbVampire03)
		Player.RemoveSpell(AbVampire04)
		Player.RemoveSpell(AbVampire01b)
		Player.RemoveSpell(AbVampire03b)
		Player.RemoveSpell(AbVampire04b)
		Player.AddSpell(AbVampire02, abVerbose = False)
		Player.AddSpell(AbVampire02b, abVerbose = False)
		Player.AddSpell(VampireVampirism, abVerbose = False)
		If VampireTurnToAshes.GetValue() == 0
			Player.AddSpell(VampireTurnToAshPile, abVerbose = False)
		EndIf
		
		Player.RemoveSpell(VampireRaiseThrall01)
		Player.RemoveSpell(VampireRaiseThrall03)
		Player.RemoveSpell(VampireRaiseThrall04)
		Player.AddSpell(VampireRaiseThrall02, abVerbose = False)
		Player.RemoveSpell(VampireStrength01)
		;Player.RemoveSpell(VampireStrength02)		
		Player.RemoveSpell(VampireStrength03)
		Player.RemoveSpell(VampireStrength04)
		If VampireStrength.GetValue() == 0
			Player.AddSpell(VampireStrength02, abVerbose = False)
		EndIf
		Player.RemoveSpell(VampireSunDamage01)
		;Player.RemoveSpell(VampireSunDamage02)
		Player.RemoveSpell(VampireSunDamage03)
		Player.RemoveSpell(VampireSunDamage04)
		If VampireSunDamage2.GetValue() == 0
			Player.AddSpell(VampireSunDamage02, abVerbose = False)
		EndIf
		Player.RemoveSpell(VampireCharisma01)
		Player.AddSpell(VampireCharisma02, abVerbose = False)
		
		If Player.HasSpell(VampireSleep) == False
			Player.AddSpell(VampireSleep, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireCharm) == False		
			Player.AddSpell(VampireCharm, abVerbose = False)
		EndIf		
		If Player.HasSpell(VampireCharm2) == False		
			Player.AddSpell(VampireCharm2, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireInvisibilityPC) == False	
			Player.AddSpell(VampireInvisibilityPC, abVerbose = False)
		EndIf	
		If Player.HasSpell(VampireHuntersSight) == False		
			Player.AddSpell(VampireHuntersSight, abVerbose = False)
		EndIf
		If Player.HasSpell(TurnOnCreateNPCVampire) == False		
			Player.AddSpell(TurnOnCreateNPCVampire, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRemoveHateSpell) == False		
			Player.AddSpell(VampireRemoveHateSpell, abVerbose = False)	
		EndIf	
		If Player.HasSpell(CureNPCVampire) == False
			Player.AddSpell(CureNPCVampire, abVerbose = False)				
		EndIf			
		
		Player.RemoveSpell(VampireCloak)
		Player.DispelSpell(VampireDetectAll04)
		Player.RemoveSpell(VampireDetectAll04)
		
	;----------------------------------------------------
	; REVERSE STAGE 3
		
	ElseIf VampireStage == 3
		If Game.GetPlayer().GetRace() != DLC1VampireBeastRace
			VampireFeedMessage3.Show()
		EndIf	
		; STOP BEING HATED BY EVERYONE		
		Game.GetPlayer().RemoveFromFaction(VampirePCFaction)
		Game.GetPlayer().SetAttackActorOnSight(False)
		VampireStageGlobal.SetValue(3)		

		Player.AddSpell(ABVampireSkills, abVerbose = False)
		Player.AddSpell(ABVampireSkills02, abVerbose = False)
		Player.RemoveSpell(AbVampire02)
		Player.RemoveSpell(AbVampire01)
		Player.RemoveSpell(AbVampire04)
		Player.RemoveSpell(AbVampire01b)
		Player.RemoveSpell(AbVampire04b)
		Player.RemoveSpell(AbVampire02b)
		Player.AddSpell(AbVampire03, abVerbose = False)
		Player.AddSpell(AbVampire03b, abVerbose = False)
		Player.AddSpell(VampireVampirism, abVerbose = False)
		If VampireTurnToAshes.GetValue() == 0
			Player.AddSpell(VampireTurnToAshPile, abVerbose = False)
		EndIf
		
		Player.RemoveSpell(VampireRaiseThrall02)
		Player.RemoveSpell(VampireRaiseThrall01)
		Player.RemoveSpell(VampireRaiseThrall04)
		Player.AddSpell(VampireRaiseThrall03, abVerbose = False)
		Player.RemoveSpell(VampireStrength01)
		Player.RemoveSpell(VampireStrength02)
		;Player.RemoveSpell(VampireStrength03)
		Player.RemoveSpell(VampireStrength04)
		If VampireStrength.GetValue() == 0
			Player.AddSpell(VampireStrength03, abVerbose = False)
		EndIf	
		Player.RemoveSpell(VampireSunDamage01)
		Player.RemoveSpell(VampireSunDamage02)
		;Player.RemoveSpell(VampireSunDamage03)
		Player.RemoveSpell(VampireSunDamage04)
		If VampireSunDamage2.GetValue() == 0
			Player.AddSpell(VampireSunDamage03, abVerbose = False)
		EndIf	
		Player.RemoveSpell(VampireCharisma01)
		Player.RemoveSpell(VampireCharisma02)

		If Player.HasSpell(VampireSleep) == False
			Player.AddSpell(VampireSleep, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireHuntersSight) == False		
			Player.AddSpell(VampireHuntersSight, abVerbose = False)
		EndIf
		If Player.HasSpell(TurnOnCreateNPCVampire) == False		
			Player.AddSpell(TurnOnCreateNPCVampire, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRemoveHateSpell) == False		
			Player.AddSpell(VampireRemoveHateSpell, abVerbose = False)	
		EndIf	
		If Player.HasSpell(CureNPCVampire) == False
			Player.AddSpell(CureNPCVampire, abVerbose = False)				
		EndIf			
		If Player.HasSpell(VampireCharm) == False		
			Player.AddSpell(VampireCharm, abVerbose = False)
		EndIf		
		
		Player.RemoveSpell(VampireCloak)
		Player.DispelSpell(VampireDetectAll04)		
		Player.RemoveSpell(VampireDetectAll04)
		Player.RemoveSpell(VampireCharm2)		
		Player.RemoveSpell(VampireInvisibilityPC)
	
	;----------------------------------------------------
	; REVERSE STAGE 4	
		
	ElseIf VampireStage == 4
		; BE HATED BY EVERYONE - IF YOU HAVE IT ENABLED
		If VampireStageHated.GetValue() == 10000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
			If Game.GetPlayer().GetRace() != DLC1VampireBeastRace
				VampireStage4Message.Show()
			EndIf
			Game.GetPlayer().AddToFaction(VampirePCFaction)
			Game.GetPlayer().SetAttackActorOnSight()
		Else
		; STOP BEING HATED BY EVERYONE
			If Game.GetPlayer().GetRace() != DLC1VampireBeastRace		
				VampireFeedMessage4.Show()
			EndIf	
			Game.GetPlayer().RemoveFromFaction(VampirePCFaction)
			Game.GetPlayer().SetAttackActorOnSight(False)
		EndIf
		VampireStageGlobal.SetValue(4)		

		Player.AddSpell(ABVampireSkills, abVerbose = False)
		Player.AddSpell(ABVampireSkills02, abVerbose = False)
		Player.RemoveSpell(AbVampire01)
		Player.RemoveSpell(AbVampire02)
		Player.RemoveSpell(AbVampire03)
		Player.RemoveSpell(AbVampire02b)
		Player.RemoveSpell(AbVampire03b)
		Player.RemoveSpell(AbVampire01b)
		Player.AddSpell(AbVampire04, abVerbose = False)
		Player.AddSpell(AbVampire04b, abVerbose = False)
		Player.AddSpell(VampireVampirism, abVerbose = False)
		If VampireTurnToAshes.GetValue() == 0
			Player.AddSpell(VampireTurnToAshPile, abVerbose = False)
		EndIf
		
		Player.RemoveSpell(VampireRaiseThrall01)
		Player.RemoveSpell(VampireRaiseThrall02)
		Player.RemoveSpell(VampireRaiseThrall03)
		Player.AddSpell(VampireRaiseThrall04, abVerbose = False)
		Player.RemoveSpell(VampireStrength01)
		Player.RemoveSpell(VampireStrength02)
		Player.RemoveSpell(VampireStrength03)
		;Player.RemoveSpell(VampireStrength04)
		If VampireStrength.GetValue() == 0		
			Player.AddSpell(VampireStrength04, abVerbose = False)
		EndIf	
		Player.RemoveSpell(VampireSunDamage01)
		Player.RemoveSpell(VampireSunDamage02)
		Player.RemoveSpell(VampireSunDamage03)
		;Player.RemoveSpell(VampireSunDamage04)
		If VampireSunDamage2.GetValue() == 0
			Player.AddSpell(VampireSunDamage04, abVerbose = False)
		EndIf
		Player.RemoveSpell(VampireCharisma02)
		Player.RemoveSpell(VampireCharisma01)

		If Player.HasSpell(VampireHuntersSight) == False		
			Player.AddSpell(VampireHuntersSight, abVerbose = False)
		EndIf
		If Player.HasSpell(TurnOnCreateNPCVampire) == False		
			Player.AddSpell(TurnOnCreateNPCVampire, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRemoveHateSpell) == False		
			Player.AddSpell(VampireRemoveHateSpell, abVerbose = False)	
		EndIf	
		If Player.HasSpell(CureNPCVampire) == False
			Player.AddSpell(CureNPCVampire, abVerbose = False)				
		EndIf	
		
		If (VampireRevealAuras.GetValue() == 10000)		
			VampireRevealAuras.SetValue(0)	
		EndIf
		Player.RemoveSpell(VampireDetectAll03)
		
		Player.RemoveSpell(VampireCloak)
		Player.DispelSpell(VampireDetectAll04)		
		Player.RemoveSpell(VampireDetectAll04)
		Player.RemoveSpell(VampireCharm2)		
		Player.RemoveSpell(VampireInvisibilityPC)
		Player.RemoveSpell(VampireCharm)
		Player.RemoveSpell(VampireSleep)		

	;----------------------------------------------------
	; REVERSE STAGE 1
		
	ElseIf VampireStage == 1
		; BE HATED BY EVERYONE - IF YOU HAVE IT ENABLED	
		If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
			If Game.GetPlayer().GetRace() != DLC1VampireBeastRace		
				VampireStage1Message.Show()
			EndIf
			Game.GetPlayer().AddToFaction(VampirePCFaction)
			Game.GetPlayer().SetAttackActorOnSight()
		Else
		; STOP BEING HATED BY EVERYONE
			If Game.GetPlayer().GetRace() != DLC1VampireBeastRace		
				VampireFeedMessage1.Show()
			EndIf	
			Game.GetPlayer().RemoveFromFaction(VampirePCFaction)
			Game.GetPlayer().SetAttackActorOnSight(False)
		EndIf
		VampireStageGlobal.SetValue(1)		

		Player.AddSpell(ABVampireSkills, abVerbose = False)
		Player.AddSpell(ABVampireSkills02, abVerbose = False)
		Player.RemoveSpell(AbVampire02)
		Player.RemoveSpell(AbVampire03)
		Player.RemoveSpell(AbVampire04)
		Player.RemoveSpell(AbVampire04b)
		Player.RemoveSpell(AbVampire02b)
		Player.RemoveSpell(AbVampire03b)
		Player.AddSpell(AbVampire01, abVerbose = False)
		Player.AddSpell(AbVampire01b, abVerbose = False)
		Player.AddSpell(VampireVampirism, abVerbose = False)
		If VampireTurnToAshes.GetValue() == 0
			Player.AddSpell(VampireTurnToAshPile, abVerbose = False)
		EndIf
		
		Player.RemoveSpell(VampireRaiseThrall02)
		Player.RemoveSpell(VampireRaiseThrall03)
		Player.RemoveSpell(VampireRaiseThrall04)
		Player.AddSpell(VampireRaiseThrall01, abVerbose = False)
		;Player.RemoveSpell(VampireStrength01)
		Player.RemoveSpell(VampireStrength02)
		Player.RemoveSpell(VampireStrength03)
		Player.RemoveSpell(VampireStrength04)
		If VampireStrength.GetValue() == 0		
			Player.AddSpell(VampireStrength01, abVerbose = False)
		EndIf
		;Player.RemoveSpell(VampireSunDamage01)
		Player.RemoveSpell(VampireSunDamage02)
		Player.RemoveSpell(VampireSunDamage03)
		Player.RemoveSpell(VampireSunDamage04)
		If VampireSunDamage2.GetValue() == 0
			Player.AddSpell(VampireSunDamage01, abVerbose = False)
		EndIf
		Player.AddSpell(VampireCharisma01, abVerbose = False)
		Player.RemoveSpell(VampireCharisma02)

		If Player.HasSpell(VampireSleep) == False
			Player.AddSpell(VampireSleep, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireCharm) == False		
			Player.AddSpell(VampireCharm, abVerbose = False)
		EndIf				
		If Player.HasSpell(VampireCharm2) == False		
			Player.AddSpell(VampireCharm2, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireInvisibilityPC) == False	
			Player.AddSpell(VampireInvisibilityPC, abVerbose = False)
		EndIf	
		If Player.HasSpell(VampireHuntersSight) == False		
			Player.AddSpell(VampireHuntersSight, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireDetectAll04) == False		
			Player.AddSpell(VampireDetectAll04, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireCloak) == False		
			Player.AddSpell(VampireCloak, abVerbose = False)
		EndIf		
		If Player.HasSpell(TurnOnCreateNPCVampire) == False		
			Player.AddSpell(TurnOnCreateNPCVampire, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRemoveHateSpell) == False		
			Player.AddSpell(VampireRemoveHateSpell, abVerbose = False)	
		EndIf	
		If Player.HasSpell(CureNPCVampire) == False
			Player.AddSpell(CureNPCVampire, abVerbose = False)				
		EndIf	
				
	EndIf

;----------------------------------------------------
; NORMAL VAMPIRE PROGRESSION

Else

	;----------------------------------------------------
	; NORMAL STAGE 2
	
	If VampireStage == 2
		If Game.GetPlayer().GetRace() != DLC1VampireBeastRace	
			VampireFeedMessage2.Show()
		EndIf	
		; STOP BEING HATED BY EVERYONE			
		Game.GetPlayer().RemoveFromFaction(VampirePCFaction)
		Game.GetPlayer().SetAttackActorOnSight(False)
		VampireStageGlobal.SetValue(2)			

		Player.AddSpell(ABVampireSkills, abVerbose = False)
		Player.AddSpell(ABVampireSkills02, abVerbose = False)
		Player.RemoveSpell(AbVampire02)
		Player.RemoveSpell(AbVampire01)
		Player.RemoveSpell(AbVampire04)
		Player.RemoveSpell(AbVampire01b)
		Player.RemoveSpell(AbVampire04b)
		Player.RemoveSpell(AbVampire03b)
		Player.AddSpell(AbVampire03, abVerbose = False)
		Player.AddSpell(AbVampire02b, abVerbose = False)
		Player.AddSpell(VampireVampirism, abVerbose = False)
		If VampireTurnToAshes.GetValue() == 0
			Player.AddSpell(VampireTurnToAshPile, abVerbose = False)
		EndIf
			
		Player.RemoveSpell(VampireRaiseThrall02)
		Player.RemoveSpell(VampireRaiseThrall01)
		Player.RemoveSpell(VampireRaiseThrall04)
		Player.AddSpell(VampireRaiseThrall03, abVerbose = False)
		Player.RemoveSpell(VampireStrength01)
		Player.RemoveSpell(VampireStrength02)
		;Player.RemoveSpell(VampireStrength03)
		Player.RemoveSpell(VampireStrength04)
		If VampireStrength.GetValue() == 0
			Player.AddSpell(VampireStrength03, abVerbose = False)
		EndIf
		Player.RemoveSpell(VampireSunDamage01)
		;Player.RemoveSpell(VampireSunDamage02)
		Player.RemoveSpell(VampireSunDamage03)
		Player.RemoveSpell(VampireSunDamage04)
		If VampireSunDamage2.GetValue() == 0
			Player.AddSpell(VampireSunDamage02, abVerbose = False)
		EndIf
		Player.RemoveSpell(VampireCharisma01)
		Player.AddSpell(VampireCharisma02, abVerbose = False)

		If Player.HasSpell(VampireSleep) == False
			Player.AddSpell(VampireSleep, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireHuntersSight) == False		
			Player.AddSpell(VampireHuntersSight, abVerbose = False)
		EndIf
		If Player.HasSpell(TurnOnCreateNPCVampire) == False		
			Player.AddSpell(TurnOnCreateNPCVampire, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRemoveHateSpell) == False		
			Player.AddSpell(VampireRemoveHateSpell, abVerbose = False)	
		EndIf	
		If Player.HasSpell(CureNPCVampire) == False
			Player.AddSpell(CureNPCVampire, abVerbose = False)				
		EndIf			
		If Player.HasSpell(VampireCharm) == False		
			Player.AddSpell(VampireCharm, abVerbose = False)
		EndIf
		
		Player.RemoveSpell(VampireCloak)
		Player.DispelSpell(VampireDetectAll04)		
		Player.RemoveSpell(VampireDetectAll04)
		Player.RemoveSpell(VampireCharm2)		
		Player.RemoveSpell(VampireInvisibilityPC)
		
	;----------------------------------------------------
	; NORMAL STAGE 3		

	ElseIf VampireStage == 3
		If Game.GetPlayer().GetRace() != DLC1VampireBeastRace	
			VampireFeedMessage3.Show()
		EndIf	
		; STOP BEING HATED BY EVERYONE			
		Game.GetPlayer().RemoveFromFaction(VampirePCFaction)
		Game.GetPlayer().SetAttackActorOnSight(False)
		VampireStageGlobal.SetValue(3)			

		Player.AddSpell(ABVampireSkills, abVerbose = False)
		Player.AddSpell(ABVampireSkills02, abVerbose = False)
		Player.RemoveSpell(AbVampire01)
		Player.RemoveSpell(AbVampire03)
		Player.RemoveSpell(AbVampire04)
		Player.RemoveSpell(AbVampire01b)
		Player.RemoveSpell(AbVampire02b)
		Player.RemoveSpell(AbVampire04b)
		Player.AddSpell(AbVampire02, abVerbose = False)
		Player.AddSpell(AbVampire03b, abVerbose = False)
		Player.AddSpell(VampireVampirism, abVerbose = False)
		If VampireTurnToAshes.GetValue() == 0
			Player.AddSpell(VampireTurnToAshPile, abVerbose = False)
		EndIf
				
		Player.RemoveSpell(VampireRaiseThrall01)
		Player.RemoveSpell(VampireRaiseThrall03)
		Player.RemoveSpell(VampireRaiseThrall04)
		Player.AddSpell(VampireRaiseThrall02, abVerbose = False)
		Player.RemoveSpell(VampireStrength01)
		;Player.RemoveSpell(VampireStrength02)
		Player.RemoveSpell(VampireStrength03)
		Player.RemoveSpell(VampireStrength04)
		If VampireStrength.GetValue() == 0
			Player.AddSpell(VampireStrength02, abVerbose = False)
		EndIf	
		Player.RemoveSpell(VampireSunDamage01)
		Player.RemoveSpell(VampireSunDamage02)
		;Player.RemoveSpell(VampireSunDamage03)
		Player.RemoveSpell(VampireSunDamage04)
		If VampireSunDamage2.GetValue() == 0
			Player.AddSpell(VampireSunDamage03, abVerbose = False)
		EndIf
		Player.RemoveSpell(VampireCharisma01)
		Player.RemoveSpell(VampireCharisma02)
		
		If Player.HasSpell(VampireSleep) == False
			Player.AddSpell(VampireSleep, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireCharm) == False		
			Player.AddSpell(VampireCharm, abVerbose = False)
		EndIf				
		If Player.HasSpell(VampireCharm2) == False		
			Player.AddSpell(VampireCharm2, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireInvisibilityPC) == False	
			Player.AddSpell(VampireInvisibilityPC, abVerbose = False)
		EndIf	
		If Player.HasSpell(VampireHuntersSight) == False		
			Player.AddSpell(VampireHuntersSight, abVerbose = False)
		EndIf
		If Player.HasSpell(TurnOnCreateNPCVampire) == False		
			Player.AddSpell(TurnOnCreateNPCVampire, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRemoveHateSpell) == False		
			Player.AddSpell(VampireRemoveHateSpell, abVerbose = False)	
		EndIf	
		If Player.HasSpell(CureNPCVampire) == False
			Player.AddSpell(CureNPCVampire, abVerbose = False)				
		EndIf

		Player.RemoveSpell(VampireCloak)
		Player.DispelSpell(VampireDetectAll04)		
		Player.RemoveSpell(VampireDetectAll04)
		
	;----------------------------------------------------
	; NORMAL STAGE 4	
		
	ElseIf VampireStage == 4
		; BE HATED BY EVERYONE - IF YOU HAVE IT ENABLED	
		If VampireStageHated.GetValue() == 10000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
			If Game.GetPlayer().GetRace() != DLC1VampireBeastRace	
				VampireStage4Message.Show()
			EndIf	
			Game.GetPlayer().AddToFaction(VampirePCFaction)
			Game.GetPlayer().SetAttackActorOnSight()
		Else
		; STOP BEING HATED BY EVERYONE
			If Game.GetPlayer().GetRace() != DLC1VampireBeastRace	
				VampireFeedMessage4.Show()
			EndIf	
			Game.GetPlayer().RemoveFromFaction(VampirePCFaction)
			Game.GetPlayer().SetAttackActorOnSight(False)
		EndIf
		VampireStageGlobal.SetValue(4)			

		Player.AddSpell(ABVampireSkills, abVerbose = False)
		Player.AddSpell(ABVampireSkills02, abVerbose = False)
		Player.RemoveSpell(AbVampire02)
		Player.RemoveSpell(AbVampire03)
		Player.RemoveSpell(AbVampire04)
		Player.RemoveSpell(AbVampire01b)
		Player.RemoveSpell(AbVampire02b)
		Player.RemoveSpell(AbVampire03b)
		Player.AddSpell(AbVampire01, abVerbose = False)
		Player.AddSpell(AbVampire04b, abVerbose = False)
		Player.AddSpell(VampireVampirism, abVerbose = False)
		If VampireTurnToAshes.GetValue() == 0
			Player.AddSpell(VampireTurnToAshPile, abVerbose = False)
		EndIf
				
		Player.RemoveSpell(VampireRaiseThrall02)
		Player.RemoveSpell(VampireRaiseThrall03)
		Player.RemoveSpell(VampireRaiseThrall04)
		Player.AddSpell(VampireRaiseThrall01, abVerbose = False)
		;Player.RemoveSpell(VampireStrength01)
		Player.RemoveSpell(VampireStrength02)
		Player.RemoveSpell(VampireStrength03)
		Player.RemoveSpell(VampireStrength04)
		If VampireStrength.GetValue() == 0
			Player.AddSpell(VampireStrength01, abVerbose = False)
		EndIf
		Player.RemoveSpell(VampireSunDamage01)
		Player.RemoveSpell(VampireSunDamage02)
		Player.RemoveSpell(VampireSunDamage03)
		;Player.RemoveSpell(VampireSunDamage04)
		If VampireSunDamage2.GetValue() == 0
			Player.AddSpell(VampireSunDamage04, abVerbose = False)
		EndIf
		Player.RemoveSpell(VampireCharisma01)
		Player.RemoveSpell(VampireCharisma02)
		
		If Player.HasSpell(VampireSleep) == False
			Player.AddSpell(VampireSleep, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireCharm) == False		
			Player.AddSpell(VampireCharm, abVerbose = False)
		EndIf				
		If Player.HasSpell(VampireCharm2) == False		
			Player.AddSpell(VampireCharm2, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireInvisibilityPC) == False	
			Player.AddSpell(VampireInvisibilityPC, abVerbose = False)
		EndIf	
		If Player.HasSpell(VampireHuntersSight) == False		
			Player.AddSpell(VampireHuntersSight, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireDetectAll04) == False		
			Player.AddSpell(VampireDetectAll04, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireCloak) == False		
			Player.AddSpell(VampireCloak, abVerbose = False)
		EndIf		
		If Player.HasSpell(TurnOnCreateNPCVampire) == False		
			Player.AddSpell(TurnOnCreateNPCVampire, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRemoveHateSpell) == False		
			Player.AddSpell(VampireRemoveHateSpell, abVerbose = False)	
		EndIf
		If Player.HasSpell(CureNPCVampire) == False
			Player.AddSpell(CureNPCVampire, abVerbose = False)				
		EndIf	
		
	;----------------------------------------------------
	; NORMAL STAGE 1
		
	ElseIf VampireStage == 1
		; BE HATED BY EVERYONE - IF YOU HAVE IT ENABLED		
		If VampireStageHated.GetValue() == 20000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
			If Game.GetPlayer().GetRace() != DLC1VampireBeastRace	
				VampireStage1Message.Show()
			EndIf	
			Game.GetPlayer().AddToFaction(VampirePCFaction)
			Game.GetPlayer().SetAttackActorOnSight()
		Else
		; STOP BEING HATED BY EVERYONE
			If Game.GetPlayer().GetRace() != DLC1VampireBeastRace	
				VampireFeedMessage1.Show()
			EndIf	
			Game.GetPlayer().RemoveFromFaction(VampirePCFaction)
			Game.GetPlayer().SetAttackActorOnSight(False)
		EndIf
		VampireStageGlobal.SetValue(1)			

		Player.AddSpell(ABVampireSkills, abVerbose = False)
		Player.AddSpell(ABVampireSkills02, abVerbose = False)
		Player.RemoveSpell(AbVampire01)
		Player.RemoveSpell(AbVampire02)
		Player.RemoveSpell(AbVampire03)
		Player.RemoveSpell(AbVampire02b)
		Player.RemoveSpell(AbVampire03b)
		Player.RemoveSpell(AbVampire04b)
		Player.AddSpell(AbVampire04, abVerbose = False)
		Player.AddSpell(AbVampire01b, abVerbose = False)
		Player.AddSpell(VampireVampirism, abVerbose = False)
		If VampireTurnToAshes.GetValue() == 0
			Player.AddSpell(VampireTurnToAshPile, abVerbose = False)
		EndIf
				
		Player.RemoveSpell(VampireRaiseThrall01)
		Player.RemoveSpell(VampireRaiseThrall02)
		Player.RemoveSpell(VampireRaiseThrall03)
		Player.AddSpell(VampireRaiseThrall04, abVerbose = False)
		Player.RemoveSpell(VampireStrength01)
		Player.RemoveSpell(VampireStrength02)
		Player.RemoveSpell(VampireStrength03)
		;Player.RemoveSpell(VampireStrength04)
		If VampireStrength.GetValue() == 0		
			Player.AddSpell(VampireStrength04, abVerbose = False)
		EndIf
		;Player.RemoveSpell(VampireSunDamage01)
		Player.RemoveSpell(VampireSunDamage02)
		Player.RemoveSpell(VampireSunDamage03)
		Player.RemoveSpell(VampireSunDamage04)
		If VampireSunDamage2.GetValue() == 0
			Player.AddSpell(VampireSunDamage01, abVerbose = False)
		EndIf
		Player.RemoveSpell(VampireCharisma02)
		Player.AddSpell(VampireCharisma01, abVerbose = False)

		If Player.HasSpell(VampireHuntersSight) == False		
			Player.AddSpell(VampireHuntersSight, abVerbose = False)
		EndIf
		If Player.HasSpell(TurnOnCreateNPCVampire) == False		
			Player.AddSpell(TurnOnCreateNPCVampire, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRemoveHateSpell) == False		
			Player.AddSpell(VampireRemoveHateSpell, abVerbose = False)	
		EndIf	
		If Player.HasSpell(CureNPCVampire) == False
			Player.AddSpell(CureNPCVampire, abVerbose = False)				
		EndIf	

		If (VampireRevealAuras.GetValue() == 10000)		
			VampireRevealAuras.SetValue(0)	
		EndIf
		Player.RemoveSpell(VampireDetectAll03)
		
		Player.RemoveSpell(VampireCloak)
		Player.DispelSpell(VampireDetectAll04)		
		Player.RemoveSpell(VampireDetectAll04)
		Player.RemoveSpell(VampireCharm2)		
		Player.RemoveSpell(VampireInvisibilityPC)
		Player.RemoveSpell(VampireCharm)
		Player.RemoveSpell(VampireSleep)
		
	EndIf

EndIf

	;----------------------------------------------------
	; IF YOU CHOOSE TO BE HATED AT EVERY STAGE

	If VampireStageHated.GetValue() == 30000 && Game.GetPlayer().HasMagicEffect(VampireRemoveHate) == False
		Game.GetPlayer().AddToFaction(VampirePCFaction)
		Game.GetPlayer().SetAttackActorOnSight()
	EndIf
	
;----------------------------------------------------
; RANK PROGRESSION

	;----------------------------------------------------
	; IF YOU ENABLED IT, POTIONS, FOOD, AND HEALING SPELLS WILL HAVE NO EFFECT
	
	;If VampireFoodPotionHealing.GetValue() == 10000
	;	Game.GetPlayer().AddPerk(VampireNoFoodPerk)
	;	Game.GetPlayer().AddPerk(VampireNoPotionPerk)
	;	Game.GetPlayer().AddPerk(VampireNoHealingPerk)
	;ElseIf VampireFoodPotionHealing.GetValue() == 0
	;	Player.RemovePerk(VampireNoFoodPerk)
	;	Player.RemovePerk(VampireNoPotionPerk)
	;	Player.RemovePerk(VampireNoHealingPerk)
	;EndIf
	
	;----------------------------------------------------
	; FALLING DAMAGE REDUCTION
	
	Player.AddPerk(VampireFallingDamageReduction)
	
	;----------------------------------------------------
	; TURN NPCs INTO VAMPIRE CATTLE
	
	If VampireDawnguardInstalled.GetValue() == 10000
		Player.AddPerk(VampireEnthrallPerk)
	EndIf	
	
	;----------------------------------------------------
	; ADJUST DAMAGE OUTPUT
	
	Player.AddPerk(BetterVampiresDamagePerk)	

	;----------------------------------------------------
	; SIDESTEP REFLEXES
	
	If VampireSidestepReflexes.GetValue() == 0
		If VampireRank.GetValue() == 20000
			Player.AddPerk(VampireQuickReflexesPerk01)
			Player.RemovePerk(VampireQuickReflexesPerk02)
			Player.RemovePerk(VampireQuickReflexesPerk03)
			Player.RemovePerk(VampireQuickReflexesPerk04)
			Player.RemovePerk(VampireQuickReflexesPerk05)		
			Player.RemoveSpell(VampireQuickReflexesSpell02)
			Player.RemoveSpell(VampireQuickReflexesSpell03)
			Player.RemoveSpell(VampireQuickReflexesSpell04)
			Player.RemoveSpell(VampireQuickReflexesSpell05)			
		ElseIf VampireRank.GetValue() == 30000
			Player.AddPerk(VampireQuickReflexesPerk02)
			Player.RemovePerk(VampireQuickReflexesPerk01)
			Player.RemovePerk(VampireQuickReflexesPerk03)
			Player.RemovePerk(VampireQuickReflexesPerk04)
			Player.RemovePerk(VampireQuickReflexesPerk05)		
			Player.RemoveSpell(VampireQuickReflexesSpell01)
			Player.RemoveSpell(VampireQuickReflexesSpell03)
			Player.RemoveSpell(VampireQuickReflexesSpell04)
			Player.RemoveSpell(VampireQuickReflexesSpell05)	
		ElseIf VampireRank.GetValue() == 40000
			Player.AddPerk(VampireQuickReflexesPerk03)
			Player.RemovePerk(VampireQuickReflexesPerk01)
			Player.RemovePerk(VampireQuickReflexesPerk02)
			Player.RemovePerk(VampireQuickReflexesPerk04)
			Player.RemovePerk(VampireQuickReflexesPerk05)		
			Player.RemoveSpell(VampireQuickReflexesSpell01)
			Player.RemoveSpell(VampireQuickReflexesSpell02)
			Player.RemoveSpell(VampireQuickReflexesSpell04)
			Player.RemoveSpell(VampireQuickReflexesSpell05)
		ElseIf VampireRank.GetValue() == 50000
			Player.AddPerk(VampireQuickReflexesPerk04)
			Player.RemovePerk(VampireQuickReflexesPerk01)
			Player.RemovePerk(VampireQuickReflexesPerk03)
			Player.RemovePerk(VampireQuickReflexesPerk02)
			Player.RemovePerk(VampireQuickReflexesPerk05)		
			Player.RemoveSpell(VampireQuickReflexesSpell01)
			Player.RemoveSpell(VampireQuickReflexesSpell03)
			Player.RemoveSpell(VampireQuickReflexesSpell02)
			Player.RemoveSpell(VampireQuickReflexesSpell05)
		ElseIf VampireRank.GetValue() >= 60000
			Player.AddPerk(VampireQuickReflexesPerk05)
			Player.RemovePerk(VampireQuickReflexesPerk01)
			Player.RemovePerk(VampireQuickReflexesPerk03)
			Player.RemovePerk(VampireQuickReflexesPerk04)
			Player.RemovePerk(VampireQuickReflexesPerk02)		
			Player.RemoveSpell(VampireQuickReflexesSpell01)
			Player.RemoveSpell(VampireQuickReflexesSpell03)
			Player.RemoveSpell(VampireQuickReflexesSpell04)
			Player.RemoveSpell(VampireQuickReflexesSpell02)		
		EndIf
	
	;----------------------------------------------------	
	; REMOVE SIDESTEP REFLEXES IF YOU WANT	
	
	ElseIf VampireSidestepReflexes.GetValue() == 1
		Player.RemovePerk(VampireQuickReflexesPerk01)
		Player.RemovePerk(VampireQuickReflexesPerk02)
		Player.RemovePerk(VampireQuickReflexesPerk03)
		Player.RemovePerk(VampireQuickReflexesPerk04)
		Player.RemovePerk(VampireQuickReflexesPerk05)		
		Player.RemoveSpell(VampireQuickReflexesSpell01)
		Player.RemoveSpell(VampireQuickReflexesSpell02)
		Player.RemoveSpell(VampireQuickReflexesSpell03)
		Player.RemoveSpell(VampireQuickReflexesSpell04)
		Player.RemoveSpell(VampireQuickReflexesSpell05)		
	EndIf
	
	Float Rank = VampireRank.GetValue()

	;----------------------------------------------------
	; RANK 1
	
	If Rank == 10000
		Player.RemoveSpell(VampireRankCombatBonusSpell02)
		Player.RemoveSpell(VampireRankCombatBonusSpell03)
		Player.RemoveSpell(VampireRankCombatBonusSpell04)
		Player.RemoveSpell(VampireRankCombatBonusSpell05)	
		Player.RemoveSpell(VampireRankCombatBonusSpell06)		
		Player.RemoveSpell(VampireRankInvokeFogSpell01)
		Player.RemoveSpell(VampireRankInvokeFogSpell02)
		Player.RemoveSpell(VampireRankInvokeFogSpell03)
		Player.RemoveSpell(VampireRankInvokeFogSpell04)
		Player.RemoveSpell(VampireRankInvokeFogSpell05)
		Player.RemoveSpell(VampireRankMistFormSpell)
		Player.RemoveSpell(VampireRankBlinkAttackSpell)
		Player.RemoveSpell(VampireRankFrostCloud02)
		Player.RemoveSpell(VampireRankFrostCloud03)
		Player.RemoveSpell(VampireRankFrostCloud04)
		Player.RemoveSpell(VampireRankFrostCloud05)
		Player.RemoveSpell(VampireRankFrostCloud06)
		Player.RemoveSpell(VampireRankBloodWard02)
		Player.RemoveSpell(VampireRankBloodWard03)
		Player.RemoveSpell(VampireRankBloodWard04)
		Player.RemoveSpell(VampireRankBloodWard05)
		Player.RemoveSpell(VampireRankBloodWard06)
		Player.RemoveSpell(VampireRankIceFleshSpell01)
		Player.RemoveSpell(VampireRankIceFleshSpell02)
		Player.RemoveSpell(VampireRankIceFleshSpell03)
		Player.RemoveSpell(VampireRankIceFleshSpell04)
		Player.RemoveSpell(VampireRankIceFleshSpell05)
		Player.RemoveSpell(VampireRankIceFleshSpell06)
		Player.RemoveSpell(VampireRankTelekinesis2)
		Player.RemoveSpell(SanguinemReddereVampireSpell)
		If Player.HasSpell(VampireRankCombatBonusSpell01) == False && VampireCombatBonus.GetValue() == 0
			Player.AddSpell(VampireRankCombatBonusSpell01, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankFrostCloud01) == False			
			Player.AddSpell(VampireRankFrostCloud01, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankBloodWard01) == False			
			Player.AddSpell(VampireRankBloodWard01, abVerbose = False)
		EndIf		
		If Player.HasSpell(VampireRankSummonCreatureSpell) == False			
			Player.AddSpell(VampireRankSummonCreatureSpell, abVerbose = False)
		EndIf		

	;----------------------------------------------------
	; RANK 2
	
	ElseIf Rank == 20000
		Player.RemoveSpell(VampireRankCombatBonusSpell01)
		Player.RemoveSpell(VampireRankCombatBonusSpell03)
		Player.RemoveSpell(VampireRankCombatBonusSpell04)
		Player.RemoveSpell(VampireRankCombatBonusSpell05)	
		Player.RemoveSpell(VampireRankCombatBonusSpell06)		
		Player.RemoveSpell(VampireRankInvokeFogSpell02)
		Player.RemoveSpell(VampireRankInvokeFogSpell03)
		Player.RemoveSpell(VampireRankInvokeFogSpell04)
		Player.RemoveSpell(VampireRankInvokeFogSpell05)
		Player.RemoveSpell(VampireRankMistFormSpell)
		Player.RemoveSpell(VampireRankBlinkAttackSpell)	
		Player.RemoveSpell(VampireRankFrostCloud01)
		Player.RemoveSpell(VampireRankFrostCloud03)
		Player.RemoveSpell(VampireRankFrostCloud04)
		Player.RemoveSpell(VampireRankFrostCloud05)
		Player.RemoveSpell(VampireRankFrostCloud06)
		Player.RemoveSpell(VampireRankBloodWard01)
		Player.RemoveSpell(VampireRankBloodWard03)
		Player.RemoveSpell(VampireRankBloodWard04)
		Player.RemoveSpell(VampireRankBloodWard05)
		Player.RemoveSpell(VampireRankBloodWard06)		
		Player.RemoveSpell(VampireRankIceFleshSpell01)
		Player.RemoveSpell(VampireRankIceFleshSpell03)
		Player.RemoveSpell(VampireRankIceFleshSpell04)
		Player.RemoveSpell(VampireRankIceFleshSpell05)
		Player.RemoveSpell(VampireRankIceFleshSpell06)
		Player.RemoveSpell(VampireRankTelekinesis2)
		If Player.HasSpell(VampireRankCombatBonusSpell02) == False && VampireCombatBonus.GetValue() == 0			
			Player.AddSpell(VampireRankCombatBonusSpell02, abVerbose = False)
		EndIf	
		If Player.HasSpell(VampireRankInvokeFogSpell01) == False				
			Player.AddSpell(VampireRankInvokeFogSpell01, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankFrostCloud02) == False			
			Player.AddSpell(VampireRankFrostCloud02, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankBloodWard02) == False			
			Player.AddSpell(VampireRankBloodWard02, abVerbose = False)
		EndIf		
		If Player.HasSpell(VampireRankSummonCreatureSpell) == False			
			Player.AddSpell(VampireRankSummonCreatureSpell, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankIceFleshSpell02) == False			
			Player.AddSpell(VampireRankIceFleshSpell02, abVerbose = False)
		EndIf

	;----------------------------------------------------
	; RANK 3
	
	ElseIf Rank == 30000
		Player.RemoveSpell(VampireRankCombatBonusSpell01)
		Player.RemoveSpell(VampireRankCombatBonusSpell02)
		Player.RemoveSpell(VampireRankCombatBonusSpell04)
		Player.RemoveSpell(VampireRankCombatBonusSpell05)	
		Player.RemoveSpell(VampireRankCombatBonusSpell06)		
		Player.RemoveSpell(VampireRankInvokeFogSpell01)
		Player.RemoveSpell(VampireRankInvokeFogSpell03)
		Player.RemoveSpell(VampireRankInvokeFogSpell04)
		Player.RemoveSpell(VampireRankInvokeFogSpell05)
		Player.RemoveSpell(VampireRankBlinkAttackSpell)	
		Player.RemoveSpell(VampireRankFrostCloud01)
		Player.RemoveSpell(VampireRankFrostCloud02)
		Player.RemoveSpell(VampireRankFrostCloud04)
		Player.RemoveSpell(VampireRankFrostCloud05)
		Player.RemoveSpell(VampireRankFrostCloud06)
		Player.RemoveSpell(VampireRankBloodWard01)
		Player.RemoveSpell(VampireRankBloodWard02)
		Player.RemoveSpell(VampireRankBloodWard04)
		Player.RemoveSpell(VampireRankBloodWard05)
		Player.RemoveSpell(VampireRankBloodWard06)		
		Player.RemoveSpell(VampireRankIceFleshSpell01)
		Player.RemoveSpell(VampireRankIceFleshSpell02)
		Player.RemoveSpell(VampireRankIceFleshSpell04)
		Player.RemoveSpell(VampireRankIceFleshSpell05)
		Player.RemoveSpell(VampireRankIceFleshSpell06)
		Player.RemoveSpell(VampireRankTelekinesis2)
		If Player.HasSpell(VampireRankCombatBonusSpell03) == False && VampireCombatBonus.GetValue() == 0	
			Player.AddSpell(VampireRankCombatBonusSpell03, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankInvokeFogSpell02) == False	
			Player.AddSpell(VampireRankInvokeFogSpell02, abVerbose = False)
		EndIf	
		If Player.HasSpell(VampireRankMistFormSpell) == False	
			Player.AddSpell(VampireRankMistFormSpell, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankFrostCloud03) == False			
			Player.AddSpell(VampireRankFrostCloud03, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankBloodWard03) == False			
			Player.AddSpell(VampireRankBloodWard03, abVerbose = False)
		EndIf		
		If Player.HasSpell(VampireRankSummonCreatureSpell) == False			
			Player.AddSpell(VampireRankSummonCreatureSpell, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankIceFleshSpell03) == False			
			Player.AddSpell(VampireRankIceFleshSpell03, abVerbose = False)
		EndIf	
		If Player.HasSpell(SanguinemReddereVampireSpell) == False			
			Player.AddSpell(SanguinemReddereVampireSpell, abVerbose = False)
		EndIf		

	;----------------------------------------------------
	; RANK 4
	
	ElseIf Rank == 40000
		Player.RemoveSpell(VampireRankCombatBonusSpell01)
		Player.RemoveSpell(VampireRankCombatBonusSpell02)
		Player.RemoveSpell(VampireRankCombatBonusSpell03)
		Player.RemoveSpell(VampireRankCombatBonusSpell05)	
		Player.RemoveSpell(VampireRankCombatBonusSpell06)		
		Player.RemoveSpell(VampireRankInvokeFogSpell01)
		Player.RemoveSpell(VampireRankInvokeFogSpell02)
		Player.RemoveSpell(VampireRankInvokeFogSpell04)
		Player.RemoveSpell(VampireRankInvokeFogSpell05)
		Player.RemoveSpell(VampireRankFrostCloud01)
		Player.RemoveSpell(VampireRankFrostCloud02)
		Player.RemoveSpell(VampireRankFrostCloud03)
		Player.RemoveSpell(VampireRankFrostCloud05)
		Player.RemoveSpell(VampireRankFrostCloud06)
		Player.RemoveSpell(VampireRankBloodWard01)
		Player.RemoveSpell(VampireRankBloodWard02)
		Player.RemoveSpell(VampireRankBloodWard03)
		Player.RemoveSpell(VampireRankBloodWard05)
		Player.RemoveSpell(VampireRankBloodWard06)		
		Player.RemoveSpell(VampireRankIceFleshSpell01)
		Player.RemoveSpell(VampireRankIceFleshSpell02)
		Player.RemoveSpell(VampireRankIceFleshSpell03)
		Player.RemoveSpell(VampireRankIceFleshSpell05)
		Player.RemoveSpell(VampireRankIceFleshSpell06)
		If Player.HasSpell(VampireRankCombatBonusSpell04) == False && VampireCombatBonus.GetValue() == 0			
			Player.AddSpell(VampireRankCombatBonusSpell04, abVerbose = False)
		EndIf	
		If Player.HasSpell(VampireRankInvokeFogSpell03) == False			
			Player.AddSpell(VampireRankInvokeFogSpell03, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankMistFormSpell) == False			
			Player.AddSpell(VampireRankMistFormSpell, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankBlinkAttackSpell) == False			
			Player.AddSpell(VampireRankBlinkAttackSpell, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankFrostCloud04) == False			
			Player.AddSpell(VampireRankFrostCloud04, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankBloodWard04) == False			
			Player.AddSpell(VampireRankBloodWard04, abVerbose = False)
		EndIf		
		If Player.HasSpell(VampireRankSummonCreatureSpell) == False			
			Player.AddSpell(VampireRankSummonCreatureSpell, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankIceFleshSpell04) == False			
			Player.AddSpell(VampireRankIceFleshSpell04, abVerbose = False)
		EndIf	
		If Player.HasSpell(VampireRankTelekinesis2) == False			
			Player.AddSpell(VampireRankTelekinesis2, abVerbose = False)
		EndIf	
		If Player.HasSpell(SanguinemReddereVampireSpell) == False			
			Player.AddSpell(SanguinemReddereVampireSpell, abVerbose = False)
		EndIf		

	;----------------------------------------------------
	; RANK 5
	
	ElseIf Rank == 50000
		Player.RemoveSpell(VampireRankCombatBonusSpell01)
		Player.RemoveSpell(VampireRankCombatBonusSpell02)
		Player.RemoveSpell(VampireRankCombatBonusSpell03)
		Player.RemoveSpell(VampireRankCombatBonusSpell04)
		Player.RemoveSpell(VampireRankCombatBonusSpell06)		
		Player.RemoveSpell(VampireRankInvokeFogSpell01)
		Player.RemoveSpell(VampireRankInvokeFogSpell02)
		Player.RemoveSpell(VampireRankInvokeFogSpell03)
		Player.RemoveSpell(VampireRankInvokeFogSpell05)
		Player.RemoveSpell(VampireRankFrostCloud01)
		Player.RemoveSpell(VampireRankFrostCloud02)
		Player.RemoveSpell(VampireRankFrostCloud03)
		Player.RemoveSpell(VampireRankFrostCloud04)
		Player.RemoveSpell(VampireRankFrostCloud06)
		Player.RemoveSpell(VampireRankBloodWard01)
		Player.RemoveSpell(VampireRankBloodWard02)
		Player.RemoveSpell(VampireRankBloodWard03)
		Player.RemoveSpell(VampireRankBloodWard04)
		Player.RemoveSpell(VampireRankBloodWard06)			
		Player.RemoveSpell(VampireRankIceFleshSpell01)
		Player.RemoveSpell(VampireRankIceFleshSpell02)
		Player.RemoveSpell(VampireRankIceFleshSpell03)
		Player.RemoveSpell(VampireRankIceFleshSpell04)
		Player.RemoveSpell(VampireRankIceFleshSpell06)	
		If Player.HasSpell(VampireRankCombatBonusSpell05) == False && VampireCombatBonus.GetValue() == 0			
			Player.AddSpell(VampireRankCombatBonusSpell05, abVerbose = False)
		EndIf	
		If Player.HasSpell(VampireRankInvokeFogSpell04) == False			
			Player.AddSpell(VampireRankInvokeFogSpell04, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankMistFormSpell) == False			
			Player.AddSpell(VampireRankMistFormSpell, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankBlinkAttackSpell) == False			
			Player.AddSpell(VampireRankBlinkAttackSpell, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankFrostCloud05) == False			
			Player.AddSpell(VampireRankFrostCloud05, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankBloodWard05) == False			
			Player.AddSpell(VampireRankBloodWard05, abVerbose = False)
		EndIf		
		If Player.HasSpell(VampireRankSummonCreatureSpell) == False			
			Player.AddSpell(VampireRankSummonCreatureSpell, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankIceFleshSpell05) == False			
			Player.AddSpell(VampireRankIceFleshSpell05, abVerbose = False)
		EndIf	
		If Player.HasSpell(VampireRankTelekinesis2) == False			
			Player.AddSpell(VampireRankTelekinesis2, abVerbose = False)
		EndIf	
		If Player.HasSpell(SanguinemReddereVampireSpell) == False			
			Player.AddSpell(SanguinemReddereVampireSpell, abVerbose = False)
		EndIf
		If Player.HasPerk(VampireAmaranth) == True
			Player.RemovePerk(VampireAmaranth)
		EndIf			

	;----------------------------------------------------
	; RANK 6
		
	ElseIf Rank == 60000
		Player.RemoveSpell(VampireRankCombatBonusSpell01)
		Player.RemoveSpell(VampireRankCombatBonusSpell02)
		Player.RemoveSpell(VampireRankCombatBonusSpell03)
		Player.RemoveSpell(VampireRankCombatBonusSpell04)
		Player.RemoveSpell(VampireRankCombatBonusSpell05)		
		Player.RemoveSpell(VampireRankInvokeFogSpell01)
		Player.RemoveSpell(VampireRankInvokeFogSpell02)
		Player.RemoveSpell(VampireRankInvokeFogSpell03)
		Player.RemoveSpell(VampireRankInvokeFogSpell04)	
		Player.RemoveSpell(VampireRankFrostCloud01)
		Player.RemoveSpell(VampireRankFrostCloud02)
		Player.RemoveSpell(VampireRankFrostCloud03)
		Player.RemoveSpell(VampireRankFrostCloud04)
		Player.RemoveSpell(VampireRankFrostCloud05)
		Player.RemoveSpell(VampireRankBloodWard01)
		Player.RemoveSpell(VampireRankBloodWard02)
		Player.RemoveSpell(VampireRankBloodWard03)
		Player.RemoveSpell(VampireRankBloodWard04)
		Player.RemoveSpell(VampireRankBloodWard05)		
		Player.RemoveSpell(VampireRankIceFleshSpell01)
		Player.RemoveSpell(VampireRankIceFleshSpell02)
		Player.RemoveSpell(VampireRankIceFleshSpell03)
		Player.RemoveSpell(VampireRankIceFleshSpell04)
		Player.RemoveSpell(VampireRankIceFleshSpell05)	
		If Player.HasSpell(VampireRankCombatBonusSpell06) == False && VampireCombatBonus.GetValue() == 0			
			Player.AddSpell(VampireRankCombatBonusSpell06, abVerbose = False)
		EndIf	
		If Player.HasSpell(VampireRankInvokeFogSpell05) == False	
			Player.AddSpell(VampireRankInvokeFogSpell05, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankMistFormSpell) == False			
			Player.AddSpell(VampireRankMistFormSpell, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankBlinkAttackSpell) == False			
			Player.AddSpell(VampireRankBlinkAttackSpell, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankFrostCloud06) == False			
			Player.AddSpell(VampireRankFrostCloud06, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankBloodWard06) == False			
			Player.AddSpell(VampireRankBloodWard06, abVerbose = False)
		EndIf		
		If Player.HasSpell(VampireRankSummonCreatureSpell) == False			
			Player.AddSpell(VampireRankSummonCreatureSpell, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankIceFleshSpell06) == False			
			Player.AddSpell(VampireRankIceFleshSpell06, abVerbose = False)
		EndIf	
		If Player.HasSpell(VampireRankTelekinesis2) == False			
			Player.AddSpell(VampireRankTelekinesis2, abVerbose = False)
		EndIf	
		If Player.HasSpell(SanguinemReddereVampireSpell) == False			
			Player.AddSpell(SanguinemReddereVampireSpell, abVerbose = False)
		EndIf		
		If Player.HasPerk(VampireAmaranth) == False && VampireAmaranthFeed.GetValue() == 0
			Player.AddPerk(VampireAmaranth)
		EndIf		
		
	;----------------------------------------------------
	; RANK 6+
	; MAY ADD ABILITIES BEYOND RANK 6 IN THE FUTURE ...
		
	ElseIf Rank == 61000
		Player.RemoveSpell(VampireRankCombatBonusSpell01)
		Player.RemoveSpell(VampireRankCombatBonusSpell02)
		Player.RemoveSpell(VampireRankCombatBonusSpell03)
		Player.RemoveSpell(VampireRankCombatBonusSpell04)
		Player.RemoveSpell(VampireRankCombatBonusSpell05)		
		Player.RemoveSpell(VampireRankInvokeFogSpell01)
		Player.RemoveSpell(VampireRankInvokeFogSpell02)
		Player.RemoveSpell(VampireRankInvokeFogSpell03)
		Player.RemoveSpell(VampireRankInvokeFogSpell04)
		Player.RemoveSpell(VampireRankFrostCloud01)
		Player.RemoveSpell(VampireRankFrostCloud02)
		Player.RemoveSpell(VampireRankFrostCloud03)
		Player.RemoveSpell(VampireRankFrostCloud04)
		Player.RemoveSpell(VampireRankFrostCloud05)
		Player.RemoveSpell(VampireRankBloodWard01)
		Player.RemoveSpell(VampireRankBloodWard02)
		Player.RemoveSpell(VampireRankBloodWard03)
		Player.RemoveSpell(VampireRankBloodWard04)
		Player.RemoveSpell(VampireRankBloodWard05)		
		Player.RemoveSpell(VampireRankIceFleshSpell01)
		Player.RemoveSpell(VampireRankIceFleshSpell02)
		Player.RemoveSpell(VampireRankIceFleshSpell03)
		Player.RemoveSpell(VampireRankIceFleshSpell04)
		Player.RemoveSpell(VampireRankIceFleshSpell05)			
		If Player.HasSpell(VampireRankCombatBonusSpell06) == False && VampireCombatBonus.GetValue() == 0			
			Player.AddSpell(VampireRankCombatBonusSpell06, abVerbose = False)
		EndIf	
		If Player.HasSpell(VampireRankInvokeFogSpell05) == False	
			Player.AddSpell(VampireRankInvokeFogSpell05, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankMistFormSpell) == False			
			Player.AddSpell(VampireRankMistFormSpell, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankBlinkAttackSpell) == False			
			Player.AddSpell(VampireRankBlinkAttackSpell, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankFrostCloud06) == False			
			Player.AddSpell(VampireRankFrostCloud06, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankBloodWard06) == False			
			Player.AddSpell(VampireRankBloodWard06, abVerbose = False)
		EndIf			
		If Player.HasSpell(VampireRankSummonCreatureSpell) == False			
			Player.AddSpell(VampireRankSummonCreatureSpell, abVerbose = False)
		EndIf
		If Player.HasSpell(VampireRankIceFleshSpell06) == False			
			Player.AddSpell(VampireRankIceFleshSpell06, abVerbose = False)
		EndIf	
		If Player.HasSpell(VampireRankTelekinesis2) == False			
			Player.AddSpell(VampireRankTelekinesis2, abVerbose = False)
		EndIf		
		If Player.HasSpell(SanguinemReddereVampireSpell) == False			
			Player.AddSpell(SanguinemReddereVampireSpell, abVerbose = False)
		EndIf
		If Player.HasPerk(VampireAmaranth) == False && VampireAmaranthFeed.GetValue() == 0
			Player.AddPerk(VampireAmaranth)
		EndIf	
		
	EndIf
	
;----------------------------------------------------
; OPTIONS FOR REMOVING SPELLS AND ABILITIES THE PLAYER DOES NOT WANT

	If VampireVampireDrain.GetValue() == 10000
		Player.RemoveSpell(VampireDrain01)
		Player.RemoveSpell(VampireDrain02)
		Player.RemoveSpell(VampireDrain03)
		Player.RemoveSpell(VampireDrain04)
		Player.RemoveSpell(VampireDrain05)	
		Player.RemoveSpell(VampireDrain06)
		Player.RemoveSpell(VampireDrain07)
		Player.RemoveSpell(VampireDrain08)
		Player.RemoveSpell(VampireDrain09)
		Player.RemoveSpell(VampireDrain10)	
		Player.RemoveSpell(VampireDrain11)
		Player.RemoveSpell(VampireDrain12)
		Player.RemoveSpell(VampireDrain13)
	EndIf
	If 	VampireVampiresServant.GetValue() == 10000
		Player.RemoveSpell(VampireRaiseThrall01)
		Player.RemoveSpell(VampireRaiseThrall02)
		Player.RemoveSpell(VampireRaiseThrall03)
		Player.RemoveSpell(VampireRaiseThrall04)
		Player.RemoveSpell(VampireRaiseThrall05)
	EndIf	
	If VampireStrength.GetValue() == 10000
		Player.RemoveSpell(VampireStrength01)
		Player.RemoveSpell(VampireStrength02)
		Player.RemoveSpell(VampireStrength03)
		Player.RemoveSpell(VampireStrength04)
		Player.RemoveSpell(VampireStrength05)
	EndIf
	If VampireSunDamage2.GetValue() == 10000	
		Player.RemoveSpell(VampireSunDamage01)
		Player.RemoveSpell(VampireSunDamage02)
		Player.RemoveSpell(VampireSunDamage03)
		Player.RemoveSpell(VampireSunDamage04)
		Player.RemoveSpell(VampireSunDamage05)		
		Player.RemoveSpell(VampireBurnInSun10)
		Player.RemoveSpell(VampireBurnInSun09)
		Player.RemoveSpell(VampireBurnInSun08)
		Player.RemoveSpell(VampireBurnInSun07)
		Player.RemoveSpell(VampireBurnInSun06)		
		Player.RemoveSpell(VampireBurnInSun05)
		Player.RemoveSpell(VampireBurnInSun04)
		Player.RemoveSpell(VampireBurnInSun03)
		Player.RemoveSpell(VampireBurnInSun02)
		Player.RemoveSpell(VampireBurnInSun01)
	EndIf	
	If VampireFearsEmbrace.GetValue() == 10000	
		Player.RemoveSpell(VampireSleep)
		Player.RemoveSpell(VampireSleep2)
		Player.RemoveSpell(VampireSleep3)
	EndIf
	If VampireDomination.GetValue() == 10000
		Player.RemoveSpell(VampireCharm2)
	EndIf
	If VampireVampiricMindBlast.GetValue() == 10000	
		Player.RemoveSpell(VampireCloak)
	EndIf
	If VampireDeflectLightandShadow.GetValue() == 10000	
		Player.RemoveSpell(VampireInvisibilityPC)
		Player.RemoveSpell(VampireInvisibilityRecast)
	EndIf
	If VampireMortalsMask.GetValue() == 10000	
		Player.RemoveSpell(VampireRemoveHateSpell)
	EndIf
	If VampireRevealAuras2.GetValue() == 10000
		Player.RemoveSpell(VampireDetectAll)
		Player.RemoveSpell(VampireDetectAll02)
		Player.RemoveSpell(VampireDetectAll03)
		Player.RemoveSpell(VampireDetectAll04)	
	EndIf
	If VampirePraestareSanguinare.GetValue() == 10000	
		Player.RemoveSpell(CreateNPCVampireSpell)
		Player.RemoveSpell(TurnOnCreateNPCVampire)	
	EndIf
	If VampireDawnguardInstalled.GetValue() == 10000 && UsingVampireEnthrallPerk.GetValue() == 10000	
		Player.RemovePerk(VampireEnthrallPerk)
	EndIf	
	If VampireFrostCloud.GetValue() == 10000		
		Player.RemoveSpell(VampireRankFrostCloud01)
		Player.RemoveSpell(VampireRankFrostCloud02)
		Player.RemoveSpell(VampireRankFrostCloud03)
		Player.RemoveSpell(VampireRankFrostCloud04)
		Player.RemoveSpell(VampireRankFrostCloud05)
		Player.RemoveSpell(VampireRankFrostCloud06)
	EndIf
	If VampireBloodWard.GetValue() == 10000		
		Player.RemoveSpell(VampireRankBloodWard01)
		Player.RemoveSpell(VampireRankBloodWard02)
		Player.RemoveSpell(VampireRankBloodWard03)
		Player.RemoveSpell(VampireRankBloodWard04)
		Player.RemoveSpell(VampireRankBloodWard05)
		Player.RemoveSpell(VampireRankBloodWard06)
	EndIf	
	If VampireIceFlesh.GetValue() == 10000			
		Player.RemoveSpell(VampireRankIceFleshSpell01)
		Player.RemoveSpell(VampireRankIceFleshSpell02)
		Player.RemoveSpell(VampireRankIceFleshSpell03)
		Player.RemoveSpell(VampireRankIceFleshSpell04)
		Player.RemoveSpell(VampireRankIceFleshSpell05)
		Player.RemoveSpell(VampireRankIceFleshSpell06)
	EndIf
	If VampireCallCreature.GetValue() == 10000			
		Player.RemoveSpell(VampireRankSummonCreatureSpell)
	EndIf
	If VampireUnholyGrasp.GetValue() == 10000			
		Player.RemoveSpell(VampireRankTelekinesis2)
	EndIf
	If VampireSanguinemReddere.GetValue() == 10000			
		Player.RemoveSpell(SanguinemReddereVampireSpell)
	EndIf
	If VampireCombatBonus.GetValue() == 10000		
		Player.RemoveSpell(VampireRankCombatBonusSpell01)
		Player.RemoveSpell(VampireRankCombatBonusSpell02)
		Player.RemoveSpell(VampireRankCombatBonusSpell03)
		Player.RemoveSpell(VampireRankCombatBonusSpell04)
		Player.RemoveSpell(VampireRankCombatBonusSpell05)	
		Player.RemoveSpell(VampireRankCombatBonusSpell06)
	EndIf
	If VampireInvokeFog.GetValue() == 10000			
		Player.RemoveSpell(VampireRankInvokeFogSpell01)
		Player.RemoveSpell(VampireRankInvokeFogSpell02)
		Player.RemoveSpell(VampireRankInvokeFogSpell03)
		Player.RemoveSpell(VampireRankInvokeFogSpell04)
		Player.RemoveSpell(VampireRankInvokeFogSpell05)
	EndIf
	If VampireMistwalker.GetValue() == 10000			
		Player.RemoveSpell(VampireRankMistFormSpell)
	EndIf
	If VampireBlinkAttack.GetValue() == 10000			
		Player.RemoveSpell(VampireRankBlinkAttackSpell)
	EndIf
	If VampireSeduction.GetValue() == 10000			
		Player.RemoveSpell(VampireCharm)
	EndIf
	If VampireTollereSanguinare.GetValue() == 10000			
		Player.RemoveSpell(CureNPCVampire)
	EndIf
	If VampireSidestepReflexes.GetValue() == 10000		
		Player.RemovePerk(VampireQuickReflexesPerk01)
		Player.RemovePerk(VampireQuickReflexesPerk02)
		Player.RemovePerk(VampireQuickReflexesPerk03)
		Player.RemovePerk(VampireQuickReflexesPerk04)
		Player.RemovePerk(VampireQuickReflexesPerk05)
		Player.RemoveSpell(VampireQuickReflexesSpell01)
		Player.RemoveSpell(VampireQuickReflexesSpell02)
		Player.RemoveSpell(VampireQuickReflexesSpell03)
		Player.RemoveSpell(VampireQuickReflexesSpell04)
		Player.RemoveSpell(VampireQuickReflexesSpell05)
	EndIf	
	If VampireFallingDamageReduction2.GetValue() == 10000	
		Player.RemovePerk(VampireFallingDamageReduction)
	EndIf
	If VampireDawnguardInstalled.GetValue() == 10000&& UsingVampireEnthrallPerk.GetValue() == 10000	
		Player.RemovePerk(VampireEnthrallPerk)
	EndIf	
	If VampireJumpingBonus.GetValue() == 10000
		Player.RemoveSpell(VampireJumpBonusSpell)
	EndIf			
	If VampireTurnToAshes.GetValue() == 10000
		Player.DispelSpell(VampireTurnToAshPile)
		Player.RemoveSpell(VampireTurnToAshPile)
	EndIf
	If VampireMenuSpell.GetValue() == 10000
		Player.RemoveSpell(BetterVampiresMenuOptionsSpell)
	EndIf
	If VampireFrostResistance.GetValue() == 10000
		Player.RemoveSpell(AbVampire01)
		Player.RemoveSpell(AbVampire02)
		Player.RemoveSpell(AbVampire03)
		Player.RemoveSpell(AbVampire04)
	EndIf
	If VampireFireWeakness.GetValue() == 10000
		Player.RemoveSpell(AbVampire01b)		
		Player.RemoveSpell(AbVampire02b)
		Player.RemoveSpell(AbVampire03b)
		Player.RemoveSpell(AbVampire04b)
	EndIf
	If VampireAmaranthFeed.GetValue() == 10000
		Player.RemovePerk(VampireAmaranth)
	EndIf	
	
;----------------------------------------------------
; IF RANK ABILITIES ARE SET TO DEPEND UPON SATIATION, THEY ARE REMOVED HERE		
			
	If (VampireRankAbilitiesSatiation.GetValue() == 10000 && VampireProgression.GetValue() == 10000 && VampireStageGlobal.GetValue() == 2) || (VampireRankAbilitiesSatiation.GetValue() == 10000 && VampireProgression.GetValue() == 0 && VampireStageGlobal.GetValue() == 3)
		Player.RemoveSpell(SanguinemReddereVampireSpell)
		Player.RemoveSpell(VampireRankBlinkAttackSpell)
		Player.DispelSpell(VampireRankMistFormSpell)
		Player.RemoveSpell(VampireRankMistFormSpell)			
	EndIf
	If (VampireRankAbilitiesSatiation.GetValue() == 10000 && VampireProgression.GetValue() == 10000 && VampireStageGlobal.GetValue() == 3) || (VampireRankAbilitiesSatiation.GetValue() == 10000 && VampireProgression.GetValue() == 0 && VampireStageGlobal.GetValue() == 2)
		Player.RemoveSpell(SanguinemReddereVampireSpell)
		Player.RemoveSpell(VampireRankBlinkAttackSpell)
		Player.DispelSpell(VampireRankMistFormSpell)
		Player.RemoveSpell(VampireRankMistFormSpell)
		Player.RemoveSpell(VampireRankInvokeFogSpell01)
		Player.RemoveSpell(VampireRankInvokeFogSpell02)
		Player.RemoveSpell(VampireRankInvokeFogSpell03)
		Player.RemoveSpell(VampireRankInvokeFogSpell04)
		Player.RemoveSpell(VampireRankInvokeFogSpell05)
		Player.RemoveSpell(VampireRankTelekinesis2)			
	EndIf
	If (VampireRankAbilitiesSatiation.GetValue() == 10000 && VampireProgression.GetValue() == 10000 && VampireStageGlobal.GetValue() == 4) || (VampireRankAbilitiesSatiation.GetValue() == 10000 && VampireProgression.GetValue() == 0 && VampireStageGlobal.GetValue() == 1)
		Player.RemoveSpell(SanguinemReddereVampireSpell)
		Player.RemoveSpell(VampireRankBlinkAttackSpell)
		Player.DispelSpell(VampireRankMistFormSpell)
		Player.RemoveSpell(VampireRankMistFormSpell)
		Player.RemoveSpell(VampireRankInvokeFogSpell01)
		Player.RemoveSpell(VampireRankInvokeFogSpell02)
		Player.RemoveSpell(VampireRankInvokeFogSpell03)
		Player.RemoveSpell(VampireRankInvokeFogSpell04)
		Player.RemoveSpell(VampireRankInvokeFogSpell05)
		Player.RemoveSpell(VampireRankTelekinesis2)
		Player.RemoveSpell(VampireRankIceFleshSpell01)
		Player.RemoveSpell(VampireRankIceFleshSpell02)
		Player.RemoveSpell(VampireRankIceFleshSpell03)
		Player.RemoveSpell(VampireRankIceFleshSpell04)
		Player.RemoveSpell(VampireRankIceFleshSpell05)
		Player.RemoveSpell(VampireRankIceFleshSpell06)
		Player.RemoveSpell(VampireRankSummonCreatureSpell)	
		Player.RemovePerk(VampireAmaranth)
	EndIf
	
	If BetterVampiresUseHotkey.GetValue() == 10000	
		RegisterHotkeys()
	ElseIf BetterVampiresUseHotkey.GetValue() == 0
		UnregisterForAllKeys()	
	EndIf

;----------------------------------------------------
; BLOOD POINTS ARE ADJUSTED HERE WHEN YOU FEED
	
	;If EnableVampireBloodPoints.GetValue() == 10000
	
	;	If VampireStageGlobal.GetValue() == 1	
	;		If VampireDynamicStages.GetValue() == 20000 && VampireBloodPoints.GetValue() > 100
	;			VampireBloodPoints.SetValue(100)
	;		ElseIf VampireDynamicStages.GetValue() < 20000 && VampireBloodPoints.GetValue() > 300
	;			VampireBloodPoints.SetValue(300)
	;		EndIf
	;	ElseIf VampireStageGlobal.GetValue() == 2	
	;		If VampireBloodPoints.GetValue() > 200
	;			VampireBloodPoints.SetValue(200)
	;		EndIf
	;	ElseIf VampireStageGlobal.GetValue() == 3	
	;		If VampireBloodPoints.GetValue() > 100
	;			VampireBloodPoints.SetValue(100)
	;		EndIf
	;	ElseIf VampireStageGlobal.GetValue() == 4	
	;		If VampireBloodPoints.GetValue() > 0
	;			VampireBloodPoints.SetValue(0)
	;		EndIf
	;	EndIf

	;ElseIf EnableVampireBloodPoints.GetValue() == 0
	
	;	If VampireStageGlobal.GetValue() == 1	
	;		If VampireDynamicStages.GetValue() == 20000 && VampireBloodPoints.GetValue() < 70
	;			VampireBloodPoints.SetValue(70)
	;		ElseIf VampireDynamicStages.GetValue() < 20000 && VampireBloodPoints.GetValue() < 210
	;			VampireBloodPoints.SetValue(210)
	;		EndIf
	;	ElseIf VampireStageGlobal.GetValue() == 2	
	;		If VampireBloodPoints.GetValue() < 110
	;			VampireBloodPoints.SetValue(110)
	;		EndIf
	;	ElseIf VampireStageGlobal.GetValue() == 3	
	;		If VampireBloodPoints.GetValue() < 30
	;			VampireBloodPoints.SetValue(30)
	;		EndIf
	;	ElseIf VampireStageGlobal.GetValue() == 4	
	;		If VampireBloodPoints.GetValue() != 20
	;			VampireBloodPoints.SetValue(20)
	;		EndIf
	;	EndIf
		
	;EndIf	
	
	;----------------------------------------------------
	; JUMPING BONUS ONLY WORKS WITH SKSE, IT WILL NOT PERSIST IN SAVES SO HAS TO BE ADDED EACH TIME
	
	If VampireJumpingBonus.GetValue() == 0 && SKSE.GetVersionRelease() > 0
	
		If Player.HasSpell(VampireJumpBonusSpell)
			Utility.Wait(0.5)		
			Player.DispelSpell(VampireJumpBonusSpell)
			Utility.Wait(0.5)
			Player.RemoveSpell(VampireJumpBonusSpell)
			Utility.Wait(0.5)		
		EndIf	
		Player.AddSpell(VampireJumpBonusSpell, abVerbose = False)	
	
	EndIf
	
	;----------------------------------------------------
	; IF YOU CHOOSE, POTIONS, HEALING SPELLS, AND FOOD EFFECTIVENESS ARE DISABLED HERE
	
	If VampireNoFoodVar.GetValue() == 10000
		Game.GetPlayer().AddPerk(VampireNoFoodPerk)
	ElseIf	VampireNoFoodVar.GetValue() == 0
		Game.GetPlayer().RemovePerk(VampireNoFoodPerk)
	EndIf	
	
	If VampireNoPotionsVar.GetValue() == 10000
		Game.GetPlayer().AddPerk(VampireNoPotionPerk)
	ElseIf	VampireNoPotionsVar.GetValue() == 0
		Game.GetPlayer().RemovePerk(VampireNoPotionPerk)
	EndIf	

	If VampireNoHealingVar.GetValue() == 10000
		Game.GetPlayer().AddPerk(VampireNoHealingPerk)
	ElseIf	VampireNoHealingVar.GetValue() == 0
		Game.GetPlayer().RemovePerk(VampireNoHealingPerk)
	EndIf		
	
	
EndFunction

;==============================================================================================
;==============================================================================================
;==============================================================================================

Function VampireCure(Actor Player)

	UsingBetterVampiresScripts.SetValue(0)

	;----------------------------------------------------
	; CURE YOUR CHARACTER OF VAMPIRISM AND RESET THEM TO THEIR DEFAULT RACE
	; FALION QUEST IS REQUIRED, OR USE MY "RESET SANGUINARE VAMPIRIS" MENU OPTION
	
	Game.IncrementStat( "Vampirism Cures" )
	
	;----------------------------------------------------
	; STOP TRACKING THE FEED TIMER
	
	UnregisterforUpdateGameTime()

	VampireStatus = 0
	
	;----------------------------------------------------
	; PLAYER IS NO LONGER HATED
	
	Player.RemoveFromFaction(VampirePCFaction)
	Player.RemoveFromFaction(VampirePCFamily)
	Player.RemoveFromFaction(DummyFaction)	
	Player.SetAttackActorOnSight(False)
	
	;----------------------------------------------------
	; REMOVE ALL SPELLS AND ABILITIES 
	
	Player.RemoveSpell(VampireVampirism)
	Player.DispelSpell(VampireTurnToAshPile)	
	Player.RemoveSpell(VampireTurnToAshPile)	
	Player.RemoveSpell(ABVampireSkills)
	Player.RemoveSpell(ABVampireSkills02)
	Player.RemoveSpell(AbVampire01)
	Player.RemoveSpell(AbVampire02)
	Player.RemoveSpell(AbVampire03)
	Player.RemoveSpell(AbVampire04)
	Player.RemoveSpell(AbVampire05)	
	Player.RemoveSpell(AbVampire01b)
	Player.RemoveSpell(AbVampire02b)
	Player.RemoveSpell(AbVampire03b)
	Player.RemoveSpell(AbVampire04b)
	Player.RemoveSpell(AbVampire05b)
	Player.RemoveSpell(VampireDrain01)
	Player.RemoveSpell(VampireDrain02)
	Player.RemoveSpell(VampireDrain03)
	Player.RemoveSpell(VampireDrain04)
	Player.RemoveSpell(VampireDrain05)	
	Player.RemoveSpell(VampireDrain06)
	Player.RemoveSpell(VampireDrain07)
	Player.RemoveSpell(VampireDrain08)
	Player.RemoveSpell(VampireDrain09)
	Player.RemoveSpell(VampireDrain10)	
	Player.RemoveSpell(VampireDrain11)
	Player.RemoveSpell(VampireDrain12)
	Player.RemoveSpell(VampireDrain13)
	Player.RemoveSpell(VampireRaiseThrall01)
	Player.RemoveSpell(VampireRaiseThrall02)
	Player.RemoveSpell(VampireRaiseThrall03)
	Player.RemoveSpell(VampireRaiseThrall04)
	Player.RemoveSpell(VampireRaiseThrall05)
	Player.RemoveSpell(VampireStrength01)
	Player.RemoveSpell(VampireStrength02)
	Player.RemoveSpell(VampireStrength03)
	Player.RemoveSpell(VampireStrength04)
	Player.RemoveSpell(VampireStrength05)	
	Player.RemoveSpell(VampireSunDamage01)
	Player.RemoveSpell(VampireSunDamage02)
	Player.RemoveSpell(VampireSunDamage03)
	Player.RemoveSpell(VampireSunDamage04)
	Player.RemoveSpell(VampireSunDamage05)	
	
	Player.RemoveSpell(VampireBurnInSun10)
	Player.RemoveSpell(VampireBurnInSun09)
	Player.RemoveSpell(VampireBurnInSun08)
	Player.RemoveSpell(VampireBurnInSun07)
	Player.RemoveSpell(VampireBurnInSun06)		
	Player.RemoveSpell(VampireBurnInSun05)
	Player.RemoveSpell(VampireBurnInSun04)
	Player.RemoveSpell(VampireBurnInSun03)
	Player.RemoveSpell(VampireBurnInSun02)
	Player.RemoveSpell(VampireBurnInSun01)		
	
	Player.RemoveSpell(VampireSleep)
	Player.RemoveSpell(VampireSleep2)
	Player.RemoveSpell(VampireSleep3)		
	Player.RemoveSpell(VampireCharm)
	Player.RemoveSpell(VampireCharm2)	
	Player.RemoveSpell(VampireCloak)
	Player.RemoveSpell(VampireInvisibilityPC)
	Player.RemoveSpell(VampireInvisibilityRecast)
	Player.RemoveSpell(VampireCharisma01) 	
	Player.RemoveSpell(VampireCharisma02) 		
	Player.RemoveSpell(VampireHuntersSight)
	Player.RemoveSpell(VampireDetectAll)
	Player.RemoveSpell(VampireDetectAll02)
	Player.RemoveSpell(VampireDetectAll03)
	Player.RemoveSpell(VampireDetectAll04)	
	Player.RemoveSpell(CreateNPCVampireSpell)
	Player.RemoveSpell(TurnOnCreateNPCVampire)
	Player.RemoveSpell(CureNPCVampire)			
	
	Player.RemoveSpell(VampireRemoveHateSpell)	
	
	Player.RemoveSpell(VampireRankFrostCloud01)
	Player.RemoveSpell(VampireRankFrostCloud02)
	Player.RemoveSpell(VampireRankFrostCloud03)
	Player.RemoveSpell(VampireRankFrostCloud04)
	Player.RemoveSpell(VampireRankFrostCloud05)
	Player.RemoveSpell(VampireRankFrostCloud06)
	Player.RemoveSpell(VampireRankBloodWard01)
	Player.RemoveSpell(VampireRankBloodWard02)
	Player.RemoveSpell(VampireRankBloodWard03)
	Player.RemoveSpell(VampireRankBloodWard04)
	Player.RemoveSpell(VampireRankBloodWard05)
	Player.RemoveSpell(VampireRankBloodWard06)	
	Player.RemoveSpell(VampireRankIceFleshSpell01)
	Player.RemoveSpell(VampireRankIceFleshSpell02)
	Player.RemoveSpell(VampireRankIceFleshSpell03)
	Player.RemoveSpell(VampireRankIceFleshSpell04)
	Player.RemoveSpell(VampireRankIceFleshSpell05)
	Player.RemoveSpell(VampireRankIceFleshSpell06)
	Player.RemoveSpell(VampireRankSummonCreatureSpell)
	Player.RemoveSpell(VampireRankTelekinesis2)
	Player.RemoveSpell(SanguinemReddereVampireSpell)
	Player.RemoveSpell(VampireRankCombatBonusSpell01)
	Player.RemoveSpell(VampireRankCombatBonusSpell02)
	Player.RemoveSpell(VampireRankCombatBonusSpell03)
	Player.RemoveSpell(VampireRankCombatBonusSpell04)
	Player.RemoveSpell(VampireRankCombatBonusSpell05)	
	Player.RemoveSpell(VampireRankCombatBonusSpell06)		
	Player.RemoveSpell(VampireRankInvokeFogSpell01)
	Player.RemoveSpell(VampireRankInvokeFogSpell02)
	Player.RemoveSpell(VampireRankInvokeFogSpell03)
	Player.RemoveSpell(VampireRankInvokeFogSpell04)
	Player.RemoveSpell(VampireRankInvokeFogSpell05)
	Player.RemoveSpell(VampireRankMistFormSpell)
	Player.RemoveSpell(VampireRankBlinkAttackSpell)
	Player.RemoveSpell(VampireQuickReflexesSpell01)
	Player.RemoveSpell(VampireQuickReflexesSpell02)
	Player.RemoveSpell(VampireQuickReflexesSpell03)
	Player.RemoveSpell(VampireQuickReflexesSpell04)
	Player.RemoveSpell(VampireQuickReflexesSpell05)
	Player.RemoveSpell(VampireJumpBonusSpell)

	Player.RemovePerk(VampireFeedCustomRace2)
	Player.RemovePerk(VampireFallingDamageReduction)
	Player.RemovePerk(BetterVampiresDamagePerk)
	Player.RemovePerk(VampireQuickReflexesPerk01)
	Player.RemovePerk(VampireQuickReflexesPerk02)
	Player.RemovePerk(VampireQuickReflexesPerk03)
	Player.RemovePerk(VampireQuickReflexesPerk04)
	Player.RemovePerk(VampireQuickReflexesPerk05)	
	Player.RemovePerk(VampireNoFoodPerk)
	Player.RemovePerk(VampireNoPotionPerk)
	Player.RemovePerk(VampireNoHealingPerk)				
	Player.RemovePerk(VampireExtractBloodPotions)		
	Player.RemovePerk(VampireAmaranth)
	If VampireDawnguardInstalled.GetValue() == 10000
		Player.RemovePerk(VampireEnthrallPerk)		
	EndIf
	
	;----------------------------------------------------
	; RETURN TO DEFAULT RACE
	
	if (Player.GetRace() == ArgonianRaceVampire)
		Player.SetRace(ArgonianRace)
	elseif (Player.GetRace() == BretonRaceVampire)
		Player.SetRace(BretonRace) 
	elseif (Player.GetRace() == DarkElfRaceVampire)
		Player.SetRace(DarkElfRace) 
	elseif (Player.GetRace() == HighELfRaceVampire)
		Player.SetRace(HighElfRace) 
	elseif (Player.GetRace() == ImperialRaceVampire)
		Player.SetRace(ImperialRace) 
	elseif (Player.GetRace() == KhajiitRaceVampire)
		Player.SetRace(KhajiitRace) 
	elseif (Player.GetRace() == NordRaceVampire)
		Player.SetRace(NordRace) 
	elseif (Player.GetRace() == OrcRaceVampire)
		Player.SetRace(OrcRace) 
	elseif (Player.GetRace() == RedguardRaceVampire)
		Player.SetRace(RedguardRace) 
	elseif (Player.GetRace() == WoodElfRaceVampire)
		Player.SetRace(WoodElfRace) 
	endif

	PlayerIsVampire.SetValue(0)
	VampireBloodPoints.SetValue(0)

	UnregisterForAllKeys() ; Hotkeys are now unregistered
	
	;----------------------------------------------------
	; VAMPIRE SIGHT IS ATTACHED TO YOU AS A RACE, AND CAN ONLY BE REMOVED WHEN YOU ARE NO LONGER A VAMPIRE RACE
	
	Player.RemoveSpell(VampireHuntersSight)	
	
EndFunction

;==============================================================================================
;==============================================================================================
;==============================================================================================

Function VampireBloodPoints (Int BloodPointsCost)

	;----------------------------------------------------	
	; DO YOU HAVE BLOOD POINTS ENABLED?
	
	If EnableVampireBloodPoints.GetValue() == 10000
		
		;----------------------------------------------------	
		; DO YOU HAVE ENOUGH BLOOD POINTS?  IF SO, DEDUCT THE COST

		If VampireBloodPoints.GetValue() >= BloodPointsCost

			If VampireAbilityTimers.GetValue() != 0 || BloodMeterDisableFeedTimer.GetValue() != 0
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue() - (BloodPointsCost*2))
			ElseIf VampireAbilityTimers.GetValue() == 0 && BloodMeterDisableFeedTimer.GetValue() == 0
				VampireBloodPoints.SetValue(VampireBloodPoints.GetValue() - BloodPointsCost)
			EndIf	

			;----------------------------------------------------	
			; SATIATION MESSAGES (IF YOU HAVE THEM ENABLED)
			
			If  Game.IsMovementControlsEnabled() && Game.IsFightingControlsEnabled()

				;Debug.Notification(BloodPointsCost+" Blood Points Spent")
			
				If BloodPointsCost == 5
					;No messages if using Detect All Creatures as Vampire Lord
				ElseIf BloodPointsCost != 5
			
					;----------------------------------------------------
					; TWO STAGES OF SATIATION
					
					If VampireDynamicStages.GetValue() == 20000
					
						If VampireStatusMessages.GetValue() == 0 && EnableVampireBloodPointsMeter.GetValue() == 0
					
							If VampireBloodPoints.GetValue() <= 20
								Debug.Notification("... the blood from your last feeding is almost completely gone ...")
							ElseIf VampireBloodPoints.GetValue() <= 40
								Debug.Notification("... your lust for blood is growing ever stronger ...")
							ElseIf VampireBloodPoints.GetValue() <= 60
								Debug.Notification("... you begin to crave the taste of blood once again ...")
							ElseIf VampireBloodPoints.GetValue() <= 80
								Debug.Notification("... you desperately hold on to the warmth of your last victim's blood ...")
							EndIf
						
						EndIf
						
						
					;----------------------------------------------------
					; DYNAMIC STAGES OF SATIATION (THEY SPEED UP)
					
					ElseIf VampireDynamicStages.GetValue() == 10000

						If VampireStatusMessages.GetValue() == 0 && EnableVampireBloodPointsMeter.GetValue() == 0		
					
							If VampireBloodPoints.GetValue() <= 20
								Debug.Notification("... the blood from your last feeding is almost completely gone ...")
							ElseIf VampireBloodPoints.GetValue() <= 50
								Debug.Notification("... you feel even closer to starvation ...")
							ElseIf VampireBloodPoints.GetValue() <= 70
								Debug.Notification("... starvation is looming on the horizon ...")
							ElseIf VampireBloodPoints.GetValue() <= 90
								Debug.Notification("... your last feeding will only sustain you for a few more hours ...")
							ElseIf VampireBloodPoints.GetValue() <= 120
								Debug.Notification("... your lust for blood is now all-consuming ...")
							ElseIf VampireBloodPoints.GetValue() <= 140
								Debug.Notification("... your thirst for blood is very strong ...")
							ElseIf VampireBloodPoints.GetValue() <= 160
								Debug.Notification("... the smell of blood in the air excites you ...")
							ElseIf VampireBloodPoints.GetValue() <= 190
								Debug.Notification("... heartbeats of the living sing to your heightened senses ...")
							ElseIf VampireBloodPoints.GetValue() <= 210
								Debug.Notification("... you begin to crave the taste of blood once again ...")
							ElseIf VampireBloodPoints.GetValue() <= 230
								Debug.Notification("... the taste of your last feeding is almost gone ...")
							ElseIf VampireBloodPoints.GetValue() <= 250
								Debug.Notification("... you desperately hold on to the warmth of your last victim's blood ...")
							ElseIf VampireBloodPoints.GetValue() <= 280
								Debug.Notification("... the taste of warm blood in your mouth is still fresh ...")
							EndIf
					
						EndIf			
					
					
					;----------------------------------------------------
					; NORMAL STAGES OF SATIATION
					
					ElseIf VampireDynamicStages.GetValue() == 0

						If VampireStatusMessages.GetValue() == 0 && EnableVampireBloodPointsMeter.GetValue() == 0		
					
							If VampireBloodPoints.GetValue() <= 20
								Debug.Notification("... the blood from your last feeding is almost completely gone ...")
							ElseIf VampireBloodPoints.GetValue() <= 50
								Debug.Notification("... you feel even closer to starvation ...")
							ElseIf VampireBloodPoints.GetValue() <= 70
								Debug.Notification("... starvation is looming on the horizon ...")
							ElseIf VampireBloodPoints.GetValue() <= 90
								Debug.Notification("... your last feeding will only sustain you for a few more hours ...")
							ElseIf VampireBloodPoints.GetValue() <= 120
								Debug.Notification("... your lust for blood is now all-consuming ...")
							ElseIf VampireBloodPoints.GetValue() <= 140
								Debug.Notification("... your thirst for blood is very strong ...")
							ElseIf VampireBloodPoints.GetValue() <= 160
								Debug.Notification("... the smell of blood in the air excites you ...")
							ElseIf VampireBloodPoints.GetValue() <= 190
								Debug.Notification("... heartbeats of the living sing to your heightened senses ...")
							ElseIf VampireBloodPoints.GetValue() <= 210
								Debug.Notification("... you begin to crave the taste of blood once again ...")
							ElseIf VampireBloodPoints.GetValue() <= 230
								Debug.Notification("... the taste of your last feeding is almost gone ...")
							ElseIf VampireBloodPoints.GetValue() <= 250
								Debug.Notification("... you desperately hold on to the warmth of your last victim's blood ...")
							ElseIf VampireBloodPoints.GetValue() <= 280
								Debug.Notification("... the taste of warm blood in your mouth is still fresh ...")
							EndIf
					
						EndIf
						
					EndIf	
				
				EndIf

			EndIf	
		
		;----------------------------------------------------	
		; IF YOU DON'T HAVE ENOUGH BLOOD POINTS
		
		ElseIf VampireBloodPoints.GetValue() < BloodPointsCost
		
			Debug.Notification("You have exhausted your blood pool ... you must feed!")
			VampireBloodPoints.SetValue(0)
			
			;Dispel abilities
			Game.GetPlayer().DispelSpell(VampireRaiseThrall01)
			Game.GetPlayer().DispelSpell(VampireRaiseThrall02)
			Game.GetPlayer().DispelSpell(VampireRaiseThrall03)
			Game.GetPlayer().DispelSpell(VampireRaiseThrall04)
			Game.GetPlayer().DispelSpell(VampireRaiseThrall05)
			Game.GetPlayer().DispelSpell(VampireCharm2)			
			Game.GetPlayer().DispelSpell(VampireCloak)
			Game.GetPlayer().DispelSpell(VampireInvisibilityPC)
			Game.GetPlayer().DispelSpell(VampireInvisibilityRecast)
			Game.GetPlayer().DispelSpell(VampireHuntersSight)
			Game.GetPlayer().DispelSpell(VampireDetectAll)
			Game.GetPlayer().DispelSpell(VampireDetectAll02)
			Game.GetPlayer().DispelSpell(VampireDetectAll03)
			Game.GetPlayer().DispelSpell(VampireDetectAll04)	
			Game.GetPlayer().DispelSpell(CreateNPCVampireSpell)
			Game.GetPlayer().DispelSpell(TurnOnCreateNPCVampire)
			Game.GetPlayer().DispelSpell(VampireRemoveHateSpell)
			Game.GetPlayer().DispelSpell(VampireRankSummonCreatureSpell)
			Game.GetPlayer().DispelSpell(VampireRankTelekinesis2)
			Game.GetPlayer().DispelSpell(SanguinemReddereVampireSpell)			
			Game.GetPlayer().DispelSpell(VampireRankInvokeFogSpell01)
			Game.GetPlayer().DispelSpell(VampireRankInvokeFogSpell02)
			Game.GetPlayer().DispelSpell(VampireRankInvokeFogSpell03)
			Game.GetPlayer().DispelSpell(VampireRankInvokeFogSpell04)
			Game.GetPlayer().DispelSpell(VampireRankInvokeFogSpell05)
			Game.GetPlayer().DispelSpell(VampireRankMistFormSpell)
			Game.GetPlayer().DispelSpell(VampireRankBlinkAttackSpell)
		
			Game.GetPlayer().DispelSpell(DLC1VampireMistForm)
			Game.GetPlayer().DispelSpell(DLC1VampireRaiseDeadLeftHand01)
			Game.GetPlayer().DispelSpell(DLC1VampireRaiseDeadLeftHand02)
			Game.GetPlayer().DispelSpell(DLC1VampireRaiseDeadLeftHand03)
			Game.GetPlayer().DispelSpell(DLC1VampireRaiseDeadLeftHand04)
			Game.GetPlayer().DispelSpell(DLC1VampireRaiseDeadLeftHand05)
			Game.GetPlayer().DispelSpell(DLC1ConjureGargoyleLeftHand)
			Game.GetPlayer().DispelSpell(DLC1CorpseCurseLeftHand)		
		
		EndIf	
		
	EndIf

EndFunction

;==============================================================================================
;==============================================================================================
;==============================================================================================

Function RegisterHotkeys()

;----------------------------------------------------
	; ENABLES YOUR HOTKEYS IF THEY ARE TURNED ON

	If BetterVampiresUseHotkey.GetValue() == 10000
		UnregisterForAllKeys()
		Int VampireStatusKey = BetterVampiresHotkey.GetValue() as Int ; 45 or X is default
		Int VampireFeedingKey = BVFeedingHotkey.GetValue() as Int ;47 or V is default
		Int BVNightVampireVisionHotkey = BVNightVampireVision.GetValue() as Int ; 211 or Delete is default
		Int BVRevealAurasHotkey = BVRevealAuras.GetValue() as Int ; 211 or Delete is default
		Int BVDeflectLightHotkey = BVDeflectLight.GetValue() as Int ; 211 or Delete is default
		Int BVMortalsMaskHotkey = BVMortalsMask.GetValue() as Int ; 211 or Delete is default
		If BVMortalsMask.GetValue() >= 1000
			BVMortalsMaskHotkey = (BVMortalsMask.GetValue() - 1000) as Int ; 211 or Delete is default
		EndIf	
		Int BVFearsEmbraceHotkey = BVFearsEmbrace.GetValue() as Int ; 211 or Delete is default
		Int BVSeductionHotkey = BVSeduction.GetValue() as Int ; 211 or Delete is default
		Int BVDominationHotkey = BVDomination.GetValue() as Int ; 211 or Delete is default
		Int BVMindBlastHotkey = BVMindBlast.GetValue() as Int ; 211 or Delete is default
		Int BVFrostCloudHotkey = BVFrostCloud.GetValue() as Int ; 211 or Delete is default
		If BVFrostCloud.GetValue() >= 1000
			BVFrostCloudHotkey = (BVFrostCloud.GetValue() - 1000) as Int ; 211 or Delete is default
		EndIf		
		Int BVCallCreatureHotkey = BVCallCreature.GetValue() as Int ; 211 or Delete is default
		Int BVIceFleshHotkey = BVIceFlesh.GetValue() as Int ; 211 or Delete is default
		If BVIceFlesh.GetValue() >= 1000
			BVIceFleshHotkey = (BVIceFlesh.GetValue() - 1000) as Int ; 211 or Delete is default
		EndIf
		Int BVBloodWardHotkey = BVBloodWard.GetValue() as Int ; 211 or Delete is default
		If BVBloodWard.GetValue() >= 1000
			BVBloodWardHotkey = (BVBloodWard.GetValue() - 1000) as Int ; 211 or Delete is default
		EndIf		
		Int BVSanguinemReddereHotkey = BVSanguinemReddere.GetValue() as Int ; 211 or Delete is default
		Int BVInvokeFogHotkey = BVInvokeFog.GetValue() as Int ; 211 or Delete is default
		Int BVMistwalkerHotkey = BVMistwalker.GetValue() as Int ; 211 or Delete is default
		Int BVBlinkAttackHotkey = BVBlinkAttack.GetValue() as Int ; 211 or Delete is default
		Int BVUnholyGraspHotkey = BVUnholyGrasp.GetValue() as Int ; 211 or Delete is default
		Int BVVampiresServantHotkey = BVVampiresServant.GetValue() as Int ; 211 or Delete is default
		Int BVCorpseCurseHotkey = BVCorpseCurse.GetValue() as Int ; 211 or Delete is default
		Int BVSummonGargoyleHotkey = BVSummonGargoyle.GetValue() as Int ; 211 or Delete is default
		Int BVBatsHotkey = BVBats.GetValue() as Int ; 211 or Delete is default
		Int BVChangeRevertHotkey = BVChangeRevert.GetValue() as Int ; 211 or Delete is default
		Int BVDrainHotkey = BVDrain.GetValue() as Int ; 211 or Delete is default
		If BVDrain.GetValue() >= 1000
			BVDrainHotkey = (BVDrain.GetValue() - 1000) as Int ; 211 or Delete is default
		EndIf
		Int BVPraestareSanguinareHotkey = BVPraestareSanguinare.GetValue() as Int ; 211 or Delete is default
		Int BVTollereSanguinareHotkey = BVTollereSanguinare.GetValue() as Int ; 211 or Delete is default		
		If BVTollereSanguinare.GetValue() >= 1000
			BVTollereSanguinareHotkey = (BVTollereSanguinare.GetValue() - 1000) as Int ; 211 or Delete is default
		EndIf
		RegisterForKey(VampireStatusKey) ; 45 or X is default
		RegisterForKey(VampireFeedingKey) ; 47 or V is default
		RegisterForKey(BVNightVampireVisionHotkey) ; 211 or Delete is default
		RegisterForKey(BVRevealAurasHotkey) ; 211 or Delete is default
		RegisterForKey(BVDeflectLightHotkey) ; 211 or Delete is default
		RegisterForKey(BVMortalsMaskHotkey) ; 211 or Delete is default
		RegisterForKey(BVFearsEmbraceHotkey) ; 211 or Delete is default
		RegisterForKey(BVSeductionHotkey) ; 211 or Delete is default
		RegisterForKey(BVDominationHotkey) ; 211 or Delete is default
		RegisterForKey(BVMindBlastHotkey) ; 211 or Delete is default
		RegisterForKey(BVFrostCloudHotkey) ; 211 or Delete is default
		RegisterForKey(BVCallCreatureHotkey) ; 211 or Delete is default
		RegisterForKey(BVIceFleshHotkey) ; 211 or Delete is default
		RegisterForKey(BVBloodWardHotkey) ; 211 or Delete is default		
		RegisterForKey(BVSanguinemReddereHotkey) ; 211 or Delete is default
		RegisterForKey(BVInvokeFogHotkey) ; 211 or Delete is default
		RegisterForKey(BVMistwalkerHotkey) ; 211 or Delete is default
		RegisterForKey(BVBlinkAttackHotkey) ; 211 or Delete is default
		RegisterForKey(BVUnholyGraspHotkey) ; 211 or Delete is default
		RegisterForKey(BVVampiresServantHotkey) ; 211 or Delete is default
		RegisterForKey(BVCorpseCurseHotkey) ; 211 or Delete is default
		RegisterForKey(BVSummonGargoyleHotkey) ; 211 or Delete is default
		RegisterForKey(BVBatsHotkey) ; 211 or Delete is default
		RegisterForKey(BVChangeRevertHotkey) ; 211 or Delete is default	
		RegisterForKey(BVDrainHotkey) ; 211 or Delete is default
		RegisterForKey(BVPraestareSanguinareHotkey) ; 211 or Delete is default
		RegisterForKey(BVTollereSanguinareHotkey) ; 211 or Delete is default		
		UnRegisterForKey(211)
	ElseIf BetterVampiresUseHotkey.GetValue() == 0
		UnregisterForAllKeys()
	EndIf	

EndFunction

;==============================================================================================
;==============================================================================================
;==============================================================================================

Event OnKeyDown(Int BVKeyPressed)

	If (!Utility.IsInMenuMode())

		If BetterVampiresHotkeyPressed.GetValue() == 1
			;Do Nothing - waiting for last press to process
		Else
			BetterVampiresHotkeyPressed.SetValue(1)

			If BetterVampiresUseHotkey.GetValue() == 10000
			
				Int VampireStatusKey = BetterVampiresHotkey.GetValue() as Int ; 45 or X is default
				Int VampireFeedingKey = BVFeedingHotkey.GetValue() as Int ;47 or V is default				
				Int BVNightVampireVisionHotkey = BVNightVampireVision.GetValue() as Int ; 211 or Delete is default
				Int BVRevealAurasHotkey = BVRevealAuras.GetValue() as Int ; 211 or Delete is default
				Int BVDeflectLightHotkey = BVDeflectLight.GetValue() as Int ; 211 or Delete is default
				Int BVMortalsMaskHotkey = BVMortalsMask.GetValue() as Int ; 211 or Delete is default
				If BVMortalsMask.GetValue() >= 1000
					BVMortalsMaskHotkey = (BVMortalsMask.GetValue() - 1000) as Int ; 211 or Delete is default
				EndIf	
				Int BVFearsEmbraceHotkey = BVFearsEmbrace.GetValue() as Int ; 211 or Delete is default
				Int BVSeductionHotkey = BVSeduction.GetValue() as Int ; 211 or Delete is default
				Int BVDominationHotkey = BVDomination.GetValue() as Int ; 211 or Delete is default
				Int BVMindBlastHotkey = BVMindBlast.GetValue() as Int ; 211 or Delete is default
				Int BVFrostCloudHotkey = BVFrostCloud.GetValue() as Int ; 211 or Delete is default
				If BVFrostCloud.GetValue() >= 1000
					BVFrostCloudHotkey = (BVFrostCloud.GetValue() - 1000) as Int ; 211 or Delete is default
				EndIf		
				Int BVCallCreatureHotkey = BVCallCreature.GetValue() as Int ; 211 or Delete is default
				Int BVIceFleshHotkey = BVIceFlesh.GetValue() as Int ; 211 or Delete is default
				If BVIceFlesh.GetValue() >= 1000
					BVIceFleshHotkey = (BVIceFlesh.GetValue() - 1000) as Int ; 211 or Delete is default
				EndIf
				Int BVBloodWardHotkey = BVBloodWard.GetValue() as Int ; 211 or Delete is default
				If BVBloodWard.GetValue() >= 1000
					BVBloodWardHotkey = (BVBloodWard.GetValue() - 1000) as Int ; 211 or Delete is default
				EndIf					
				Int BVSanguinemReddereHotkey = BVSanguinemReddere.GetValue() as Int ; 211 or Delete is default
				Int BVInvokeFogHotkey = BVInvokeFog.GetValue() as Int ; 211 or Delete is default
				Int BVMistwalkerHotkey = BVMistwalker.GetValue() as Int ; 211 or Delete is default
				Int BVBlinkAttackHotkey = BVBlinkAttack.GetValue() as Int ; 211 or Delete is default
				Int BVUnholyGraspHotkey = BVUnholyGrasp.GetValue() as Int ; 211 or Delete is default
				Int BVVampiresServantHotkey = BVVampiresServant.GetValue() as Int ; 211 or Delete is default
				Int BVCorpseCurseHotkey = BVCorpseCurse.GetValue() as Int ; 211 or Delete is default
				Int BVSummonGargoyleHotkey = BVSummonGargoyle.GetValue() as Int ; 211 or Delete is default
				Int BVBatsHotkey = BVBats.GetValue() as Int ; 211 or Delete is default
				Int BVChangeRevertHotkey = BVChangeRevert.GetValue() as Int ; 211 or Delete is default
				Int BVDrainHotkey = BVDrain.GetValue() as Int ; 211 or Delete is default
				If BVDrain.GetValue() >= 1000
					BVDrainHotkey = (BVDrain.GetValue() - 1000) as Int ; 211 or Delete is default
				EndIf
				Int BVPraestareSanguinareHotkey = BVPraestareSanguinare.GetValue() as Int ; 211 or Delete is default
				Int BVTollereSanguinareHotkey = BVTollereSanguinare.GetValue() as Int ; 211 or Delete is default		
				If BVTollereSanguinare.GetValue() >= 1000
					BVTollereSanguinareHotkey = (BVTollereSanguinare.GetValue() - 1000) as Int ; 211 or Delete is default
				EndIf		
					
				;----------------------------------------------------
				; ACTIONS IF HOTKEY IS PRESSED	
	
	
				If BVKeyPressed == BVNightVampireVisionHotkey
					If Game.GetPlayer().HasSpell(VampireHuntersSight)
						If Game.GetPlayer().GetEquippedSpell(2) == VampireHuntersSight
						Else		
							Game.GetPlayer().EquipSpell(VampireHuntersSight,2)
						EndIf
						Utility.Wait(0.4)
						Int MappedShoutKey = Input.GetMappedKey("Shout")
						Input.TapKey(MappedShoutKey)
					EndIf
				EndIf		
			
				;--------------------------
				
				If BVKeyPressed == BVRevealAurasHotkey
					If Game.GetPlayer().GetRace() == DLC1VampireBeastRace
						If Game.GetPlayer().HasSpell(DLC1VampireDetectLife)
							If Game.GetPlayer().GetEquippedSpell(2) == DLC1VampireDetectLife
							Else
								Game.GetPlayer().EquipSpell(DLC1VampireDetectLife,2)
							EndIf
							Utility.Wait(0.4)
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)
						EndIf				
					Else
						If Game.GetPlayer().HasSpell(VampireDetectAll04)
							If Game.GetPlayer().GetEquippedSpell(2) == VampireDetectAll04
							Else				
								Game.GetPlayer().EquipSpell(VampireDetectAll04,2)
							EndIf
							Utility.Wait(0.4)
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)
						EndIf
					EndIf
				EndIf		

				;--------------------------
				
				If BVKeyPressed == BVMistwalkerHotkey
					If Game.GetPlayer().GetRace() == DLC1VampireBeastRace
						If Game.GetPlayer().HasSpell(DLC1VampireMistForm)
							If Game.GetPlayer().GetEquippedSpell(2) == DLC1VampireMistForm
							Else				
								Game.GetPlayer().EquipSpell(DLC1VampireMistForm,2)
							EndIf
							Utility.Wait(0.4)						
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)
						EndIf				
					Else
						If Game.GetPlayer().HasSpell(VampireRankMistFormSpell)
							If Game.GetPlayer().GetEquippedSpell(2) == VampireRankMistFormSpell
							Else					
								Game.GetPlayer().EquipSpell(VampireRankMistFormSpell,2)
							EndIf
							Utility.Wait(0.4)
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)
						EndIf
					EndIf
				EndIf
				
				;--------------------------
				
				If BVKeyPressed == BVVampiresServantHotkey
					If Game.GetPlayer().GetRace() == DLC1VampireBeastRace
						If Game.GetPlayer().HasSpell(DLC1VampireRaiseDeadLeftHand01)
							If Game.GetPlayer().GetEquippedSpell(0) == DLC1VampireRaiseDeadLeftHand01
							Else			
								Game.GetPlayer().EquipSpell(DLC1VampireRaiseDeadLeftHand01,0)
							EndIf
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(2.0)
							;Input.ReleaseKey(MappedLeftKey)
						ElseIf Game.GetPlayer().HasSpell(DLC1VampireRaiseDeadLeftHand02)
							If Game.GetPlayer().GetEquippedSpell(0) == DLC1VampireRaiseDeadLeftHand02
							Else			
								Game.GetPlayer().EquipSpell(DLC1VampireRaiseDeadLeftHand02,0)
							EndIf
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(2.0)
							;Input.ReleaseKey(MappedLeftKey)
						ElseIf Game.GetPlayer().HasSpell(DLC1VampireRaiseDeadLeftHand03)
							If Game.GetPlayer().GetEquippedSpell(0) == DLC1VampireRaiseDeadLeftHand03
							Else			
								Game.GetPlayer().EquipSpell(DLC1VampireRaiseDeadLeftHand03,0)
							EndIf
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(2.0)
							;Input.ReleaseKey(MappedLeftKey)
						ElseIf Game.GetPlayer().HasSpell(DLC1VampireRaiseDeadLeftHand04)
							If Game.GetPlayer().GetEquippedSpell(0) == DLC1VampireRaiseDeadLeftHand04
							Else			
								Game.GetPlayer().EquipSpell(DLC1VampireRaiseDeadLeftHand04,0)
							EndIf
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(2.0)
							;Input.ReleaseKey(MappedLeftKey)
						ElseIf Game.GetPlayer().HasSpell(DLC1VampireRaiseDeadLeftHand05)
							If Game.GetPlayer().GetEquippedSpell(0) == DLC1VampireRaiseDeadLeftHand05
							Else			
								Game.GetPlayer().EquipSpell(DLC1VampireRaiseDeadLeftHand05,0)
							EndIf
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(2.0)
							;Input.ReleaseKey(MappedLeftKey)					
						EndIf				
					Else
						If Game.GetPlayer().HasSpell(VampireRaiseThrall01)
							If Game.GetPlayer().GetEquippedSpell(2) == VampireRaiseThrall01
							Else				
								Game.GetPlayer().EquipSpell(VampireRaiseThrall01,2)
							EndIf
							Utility.Wait(0.4)
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)
						ElseIf Game.GetPlayer().HasSpell(VampireRaiseThrall02)
							If Game.GetPlayer().GetEquippedSpell(2) == VampireRaiseThrall02
							Else				
								Game.GetPlayer().EquipSpell(VampireRaiseThrall02,2)
							EndIf
							Utility.Wait(0.4)
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)
						ElseIf Game.GetPlayer().HasSpell(VampireRaiseThrall03)
							If Game.GetPlayer().GetEquippedSpell(2) == VampireRaiseThrall03
							Else				
								Game.GetPlayer().EquipSpell(VampireRaiseThrall03,2)
							EndIf
							Utility.Wait(0.4)
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)
						ElseIf Game.GetPlayer().HasSpell(VampireRaiseThrall04)
							If Game.GetPlayer().GetEquippedSpell(2) == VampireRaiseThrall04
							Else				
								Game.GetPlayer().EquipSpell(VampireRaiseThrall04,2)
							EndIf
							Utility.Wait(0.4)
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)
						ElseIf Game.GetPlayer().HasSpell(VampireRaiseThrall05)
							If Game.GetPlayer().GetEquippedSpell(2) == VampireRaiseThrall05
							Else				
								Game.GetPlayer().EquipSpell(VampireRaiseThrall05,2)
							EndIf
							Utility.Wait(0.4)
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)		
						EndIf
					EndIf
				EndIf		

				;--------------------------
				
				If BVKeyPressed == BVCorpseCurseHotkey
					If Game.GetPlayer().GetRace() == DLC1VampireBeastRace
						If Game.GetPlayer().HasSpell(DLC1CorpseCurseLeftHand)
							If Game.GetPlayer().GetEquippedSpell(0) == DLC1CorpseCurseLeftHand
							Else					
								Game.GetPlayer().EquipSpell(DLC1CorpseCurseLeftHand,0)
							EndIf
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(2.0)
							;Input.ReleaseKey(MappedLeftKey)	
						EndIf				
					EndIf
				EndIf
				
				;--------------------------
				
				If BVKeyPressed == BVSummonGargoyleHotkey
					If Game.GetPlayer().GetRace() == DLC1VampireBeastRace
						If Game.GetPlayer().HasSpell(DLC1ConjureGargoyleLeftHand)
							If Game.GetPlayer().GetEquippedSpell(0) == DLC1ConjureGargoyleLeftHand
							Else				
								Game.GetPlayer().EquipSpell(DLC1ConjureGargoyleLeftHand,0)
							EndIf
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(2.0)
							;Input.ReleaseKey(MappedLeftKey)	
						EndIf				
					EndIf
				EndIf		
				
				;--------------------------
				
				If BVKeyPressed == BVBatsHotkey
					If Game.GetPlayer().GetRace() == DLC1VampireBeastRace
						If Game.GetPlayer().HasSpell(DLC1VampireBats)
							If Game.GetPlayer().GetEquippedSpell(2) == DLC1VampireBats
							Else				
								Game.GetPlayer().EquipSpell(DLC1VampireBats,2)
							EndIf
							Utility.Wait(0.4)
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)
						EndIf				
					EndIf
				EndIf		
				
				;--------------------------
				
				If BVKeyPressed == BVChangeRevertHotkey
					If Game.GetPlayer().GetRace() == DLC1VampireBeastRace
						If Game.GetPlayer().HasSpell(DLC1RevertForm)
							If Game.GetPlayer().GetEquippedSpell(2) == DLC1RevertForm
							Else				
								Game.GetPlayer().EquipSpell(DLC1RevertForm,2)
							EndIf
							Utility.Wait(0.4)
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)
						EndIf
					Else 
						If Game.GetPlayer().HasSpell(DLC1VampireChange)
							If Game.GetPlayer().GetEquippedSpell(2) == DLC1VampireChange
							Else				
								Game.GetPlayer().EquipSpell(DLC1VampireChange,2)
							EndIf
							Utility.Wait(0.4)
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)
						EndIf
					EndIf
				EndIf		
				
				;--------------------------		

				If BVKeyPressed == BVDeflectLightHotkey
					If Game.GetPlayer().GetRace() == DLC1VampireBeastRace
					Else
						If Game.GetPlayer().HasSpell(VampireInvisibilityPC)
							If Game.GetPlayer().GetEquippedSpell(2) == VampireInvisibilityPC
							Else				
								Game.GetPlayer().EquipSpell(VampireInvisibilityPC,2)
							EndIf
							Utility.Wait(0.4)
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)
						EndIf
					EndIf	
				EndIf		
			
				;--------------------------

				If BVKeyPressed == BVMortalsMaskHotkey
					If Game.GetPlayer().GetRace() == DLC1VampireBeastRace
					Else		
						If Game.GetPlayer().HasSpell(VampireRemoveHateSpell)
							If BVMortalsMask.GetValue() >= 1000
								If Game.GetPlayer().GetEquippedSpell(1) == VampireRemoveHateSpell
								Else					
									Game.GetPlayer().EquipSpell(VampireRemoveHateSpell,1)
								EndIf
							Else
								If Game.GetPlayer().GetEquippedSpell(0) == VampireRemoveHateSpell
								Else					
									Game.GetPlayer().EquipSpell(VampireRemoveHateSpell,0)
								EndIf
							EndIf	
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(3.0)
							;Input.ReleaseKey(MappedLeftKey)
						EndIf
					EndIf	
				EndIf		
			
				;--------------------------

				If BVKeyPressed == BVFearsEmbraceHotkey
					If Game.GetPlayer().GetRace() == DLC1VampireBeastRace
					Else		
						If Game.GetPlayer().HasSpell(VampireSleep)
							If Game.GetPlayer().GetEquippedSpell(2) == VampireSleep
							Else				
								Game.GetPlayer().EquipSpell(VampireSleep,2)
							EndIf
							Utility.Wait(0.4)
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)
						EndIf
					EndIf	
				EndIf		
			
				;--------------------------

				If BVKeyPressed == BVSeductionHotkey
					If Game.GetPlayer().HasSpell(VampireCharm)
						If Game.GetPlayer().GetEquippedSpell(2) == VampireCharm
						Else			
							Game.GetPlayer().EquipSpell(VampireCharm,2)
						EndIf
						Utility.Wait(0.4)
						Int MappedShoutKey = Input.GetMappedKey("Shout")
						Input.TapKey(MappedShoutKey)
					EndIf
				EndIf		
			
				;--------------------------

				If BVKeyPressed == BVDominationHotkey
					If Game.GetPlayer().HasSpell(VampireCharm2)
						If Game.GetPlayer().GetEquippedSpell(2) == VampireCharm2
						Else			
							Game.GetPlayer().EquipSpell(VampireCharm2,2)
						EndIf
						Utility.Wait(0.4)
						Int MappedShoutKey = Input.GetMappedKey("Shout")
						Input.TapKey(MappedShoutKey)
					EndIf
				EndIf		
			
				;--------------------------

				If BVKeyPressed == BVMindBlastHotkey
					If Game.GetPlayer().HasSpell(VampireCloak)
						If Game.GetPlayer().GetEquippedSpell(2) == VampireCloak
						Else			
							Game.GetPlayer().EquipSpell(VampireCloak,2)
						EndIf
						Utility.Wait(0.4)
						Int MappedShoutKey = Input.GetMappedKey("Shout")
						Input.TapKey(MappedShoutKey)
					EndIf
				EndIf		
			
				;--------------------------

				If BVKeyPressed == BVCallCreatureHotkey
					If Game.GetPlayer().HasSpell(VampireRankSummonCreatureSpell)
						If Game.GetPlayer().GetEquippedSpell(2) == VampireRankSummonCreatureSpell
						Else						
							Game.GetPlayer().EquipSpell(VampireRankSummonCreatureSpell,2)
						EndIf
						Utility.Wait(0.4)
						Int MappedShoutKey = Input.GetMappedKey("Shout")
						Input.TapKey(MappedShoutKey)
					EndIf
				EndIf		
			
				;--------------------------

				If BVKeyPressed == BVIceFleshHotkey
					If Game.GetPlayer().HasSpell(VampireRankIceFleshSpell01)
						If BVIceFlesh.GetValue() >= 1000
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankIceFleshSpell01
							Else					
								Game.GetPlayer().EquipSpell(VampireRankIceFleshSpell01,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankIceFleshSpell01
							Else					
								Game.GetPlayer().EquipSpell(VampireRankIceFleshSpell01,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankIceFleshSpell02)
						If BVIceFlesh.GetValue() >= 1000			
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankIceFleshSpell02
							Else					
								Game.GetPlayer().EquipSpell(VampireRankIceFleshSpell02,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankIceFleshSpell02
							Else					
								Game.GetPlayer().EquipSpell(VampireRankIceFleshSpell02,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankIceFleshSpell03)
						If BVIceFlesh.GetValue() >= 1000			
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankIceFleshSpell03
							Else					
								Game.GetPlayer().EquipSpell(VampireRankIceFleshSpell03,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankIceFleshSpell03
							Else					
								Game.GetPlayer().EquipSpell(VampireRankIceFleshSpell03,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankIceFleshSpell04)
						If BVIceFlesh.GetValue() >= 1000			
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankIceFleshSpell04
							Else					
								Game.GetPlayer().EquipSpell(VampireRankIceFleshSpell04,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankIceFleshSpell04
							Else					
								Game.GetPlayer().EquipSpell(VampireRankIceFleshSpell04,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankIceFleshSpell05)
						If BVIceFlesh.GetValue() >= 1000			
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankIceFleshSpell05
							Else					
								Game.GetPlayer().EquipSpell(VampireRankIceFleshSpell05,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankIceFleshSpell05
							Else					
								Game.GetPlayer().EquipSpell(VampireRankIceFleshSpell05,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankIceFleshSpell06)
						If BVIceFlesh.GetValue() >= 1000			
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankIceFleshSpell06
							Else					
								Game.GetPlayer().EquipSpell(VampireRankIceFleshSpell06,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankIceFleshSpell06
							Else					
								Game.GetPlayer().EquipSpell(VampireRankIceFleshSpell06,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)				
					EndIf
				EndIf		

				;--------------------------

				If BVKeyPressed == BVBloodWardHotkey
					If Game.GetPlayer().HasSpell(VampireRankBloodWard01)
						If BVBloodWard.GetValue() >= 1000
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankBloodWard01
							Else					
								Game.GetPlayer().EquipSpell(VampireRankBloodWard01,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankBloodWard01
							Else					
								Game.GetPlayer().EquipSpell(VampireRankBloodWard01,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankBloodWard02)
						If BVBloodWard.GetValue() >= 1000			
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankBloodWard02
							Else					
								Game.GetPlayer().EquipSpell(VampireRankBloodWard02,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankBloodWard02
							Else					
								Game.GetPlayer().EquipSpell(VampireRankBloodWard02,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankBloodWard03)
						If BVBloodWard.GetValue() >= 1000			
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankBloodWard03
							Else					
								Game.GetPlayer().EquipSpell(VampireRankBloodWard03,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankBloodWard03
							Else					
								Game.GetPlayer().EquipSpell(VampireRankBloodWard03,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankBloodWard04)
						If BVBloodWard.GetValue() >= 1000			
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankBloodWard04
							Else					
								Game.GetPlayer().EquipSpell(VampireRankBloodWard04,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankBloodWard04
							Else					
								Game.GetPlayer().EquipSpell(VampireRankBloodWard04,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankBloodWard05)
						If BVBloodWard.GetValue() >= 1000			
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankBloodWard05
							Else					
								Game.GetPlayer().EquipSpell(VampireRankBloodWard05,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankBloodWard05
							Else					
								Game.GetPlayer().EquipSpell(VampireRankBloodWard05,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankBloodWard06)
						If BVBloodWard.GetValue() >= 1000			
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankBloodWard06
							Else					
								Game.GetPlayer().EquipSpell(VampireRankBloodWard06,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankBloodWard06
							Else					
								Game.GetPlayer().EquipSpell(VampireRankBloodWard06,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)				
					EndIf
				EndIf	
				
				;--------------------------

				If BVKeyPressed == BVSanguinemReddereHotkey
					If Game.GetPlayer().HasSpell(SanguinemReddereVampireSpell)
						If Game.GetPlayer().GetEquippedSpell(2) == SanguinemReddereVampireSpell
						Else			
							Game.GetPlayer().EquipSpell(SanguinemReddereVampireSpell,2)
						EndIf
						Utility.Wait(0.4)					
						Int MappedShoutKey = Input.GetMappedKey("Shout")
						Input.TapKey(MappedShoutKey)
					EndIf
				EndIf		
			
				;--------------------------

				If BVKeyPressed == BVInvokeFogHotkey
					If Game.GetPlayer().HasSpell(VampireRankInvokeFogSpell01)
						If Game.GetPlayer().GetEquippedSpell(2) == VampireRankInvokeFogSpell01
						Else			
							Game.GetPlayer().EquipSpell(VampireRankInvokeFogSpell01,2)
						EndIf
						Utility.Wait(0.4)
						Int MappedShoutKey = Input.GetMappedKey("Shout")
						Input.TapKey(MappedShoutKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankInvokeFogSpell02)
						If Game.GetPlayer().GetEquippedSpell(2) == VampireRankInvokeFogSpell02
						Else			
							Game.GetPlayer().EquipSpell(VampireRankInvokeFogSpell02,2)
						EndIf
						Utility.Wait(0.4)
						Int MappedShoutKey = Input.GetMappedKey("Shout")
						Input.TapKey(MappedShoutKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankInvokeFogSpell03)
						If Game.GetPlayer().GetEquippedSpell(2) == VampireRankInvokeFogSpell03
						Else			
							Game.GetPlayer().EquipSpell(VampireRankInvokeFogSpell03,2)
						EndIf
						Utility.Wait(0.4)
						Int MappedShoutKey = Input.GetMappedKey("Shout")
						Input.TapKey(MappedShoutKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankInvokeFogSpell04)
						If Game.GetPlayer().GetEquippedSpell(2) == VampireRankInvokeFogSpell04
						Else			
							Game.GetPlayer().EquipSpell(VampireRankInvokeFogSpell04,2)
						EndIf
						Utility.Wait(0.4)
						Int MappedShoutKey = Input.GetMappedKey("Shout")
						Input.TapKey(MappedShoutKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankInvokeFogSpell05)
						If Game.GetPlayer().GetEquippedSpell(2) == VampireRankInvokeFogSpell05
						Else			
							Game.GetPlayer().EquipSpell(VampireRankInvokeFogSpell05,2)
						EndIf
						Utility.Wait(0.4)
						Int MappedShoutKey = Input.GetMappedKey("Shout")
						Input.TapKey(MappedShoutKey)			
					EndIf
				EndIf		
			
				;--------------------------

				If BVKeyPressed == BVBlinkAttackHotkey
					If Game.GetPlayer().HasSpell(VampireRankBlinkAttackSpell)
						If Game.GetPlayer().GetEquippedSpell(2) == VampireRankBlinkAttackSpell
						Else			
							Game.GetPlayer().EquipSpell(VampireRankBlinkAttackSpell,2)
						EndIf
						Utility.Wait(0.4)
						Int MappedShoutKey = Input.GetMappedKey("Shout")
						Input.TapKey(MappedShoutKey)
					EndIf
				EndIf		
			
				;--------------------------

				If BVKeyPressed == BVUnholyGraspHotkey
					If Game.GetPlayer().GetRace() == DLC1VampireBeastRace
						If Game.GetPlayer().HasSpell(DLC1VampiresGrip)
							If Game.GetPlayer().GetEquippedSpell(0) == DLC1VampiresGrip
							Else			
								Game.GetPlayer().EquipSpell(DLC1VampiresGrip,0)
							EndIf
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(2.0)
							;Input.ReleaseKey(MappedLeftKey)
						EndIf	
					Else		
						If Game.GetPlayer().HasSpell(VampireRankTelekinesis2)
							If Game.GetPlayer().GetEquippedSpell(2) == VampireRankTelekinesis2
							Else				
								Game.GetPlayer().EquipSpell(VampireRankTelekinesis2,2)
							EndIf
							Utility.Wait(0.4)
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)
						EndIf
					EndIf	
				EndIf		
			
				;--------------------------

				If BVKeyPressed == BVFrostCloudHotkey
					If Game.GetPlayer().HasSpell(VampireRankFrostCloud01)
						If BVFrostCloud.GetValue() >= 1000
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankFrostCloud01
							Else					
								Game.GetPlayer().EquipSpell(VampireRankFrostCloud01,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankFrostCloud01
							Else					
								Game.GetPlayer().EquipSpell(VampireRankFrostCloud01,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankFrostCloud02)
						If BVFrostCloud.GetValue() >= 1000
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankFrostCloud02
							Else					
								Game.GetPlayer().EquipSpell(VampireRankFrostCloud02,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankFrostCloud02
							Else					
								Game.GetPlayer().EquipSpell(VampireRankFrostCloud02,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankFrostCloud03)
						If BVFrostCloud.GetValue() >= 1000
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankFrostCloud03
							Else					
								Game.GetPlayer().EquipSpell(VampireRankFrostCloud03,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankFrostCloud03
							Else					
								Game.GetPlayer().EquipSpell(VampireRankFrostCloud03,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankFrostCloud04)
						If BVFrostCloud.GetValue() >= 1000
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankFrostCloud04
							Else					
								Game.GetPlayer().EquipSpell(VampireRankFrostCloud04,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankFrostCloud04
							Else					
								Game.GetPlayer().EquipSpell(VampireRankFrostCloud04,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankFrostCloud05)
						If BVFrostCloud.GetValue() >= 1000
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankFrostCloud05
							Else					
								Game.GetPlayer().EquipSpell(VampireRankFrostCloud05,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankFrostCloud05
							Else					
								Game.GetPlayer().EquipSpell(VampireRankFrostCloud05,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)
					ElseIf Game.GetPlayer().HasSpell(VampireRankFrostCloud06)
						If BVFrostCloud.GetValue() >= 1000
							If Game.GetPlayer().GetEquippedSpell(1) == VampireRankFrostCloud06
							Else					
								Game.GetPlayer().EquipSpell(VampireRankFrostCloud06,1)
							EndIf
						Else
							If Game.GetPlayer().GetEquippedSpell(0) == VampireRankFrostCloud06
							Else					
								Game.GetPlayer().EquipSpell(VampireRankFrostCloud06,0)
							EndIf
						EndIf	
						;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
						;Input.HoldKey(MappedLeftKey)
						;Utility.Wait(3.0)
						;Input.ReleaseKey(MappedLeftKey)		
					EndIf
				EndIf		

				;--------------------------

				If BVKeyPressed == BVDrainHotkey
					If Game.GetPlayer().GetRace() == DLC1VampireBeastRace
					Else
						If Game.GetPlayer().HasSpell(VampireDrain05)
							If BVDrain.GetValue() >= 1000
								If Game.GetPlayer().GetEquippedSpell(1) == VampireDrain05
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain05,1)
								EndIf
							Else
								If Game.GetPlayer().GetEquippedSpell(0) == VampireDrain05
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain05,0)
								EndIf
							EndIf	
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(3.0)
							;Input.ReleaseKey(MappedLeftKey)
						ElseIf Game.GetPlayer().HasSpell(VampireDrain06)
							If BVDrain.GetValue() >= 1000
								If Game.GetPlayer().GetEquippedSpell(1) == VampireDrain06
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain06,1)
								EndIf
							Else
								If Game.GetPlayer().GetEquippedSpell(0) == VampireDrain06
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain06,0)
								EndIf
							EndIf	
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(3.0)
							;Input.ReleaseKey(MappedLeftKey)
						ElseIf Game.GetPlayer().HasSpell(VampireDrain07)
							If BVDrain.GetValue() >= 1000
								If Game.GetPlayer().GetEquippedSpell(1) == VampireDrain07
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain07,1)
								EndIf
							Else
								If Game.GetPlayer().GetEquippedSpell(0) == VampireDrain07
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain07,0)
								EndIf
							EndIf	
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(3.0)
							;Input.ReleaseKey(MappedLeftKey)
						ElseIf Game.GetPlayer().HasSpell(VampireDrain08)
							If BVDrain.GetValue() >= 1000
								If Game.GetPlayer().GetEquippedSpell(1) == VampireDrain08
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain08,1)
								EndIf
							Else
								If Game.GetPlayer().GetEquippedSpell(0) == VampireDrain08
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain08,0)
								EndIf
							EndIf	
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(3.0)
							;Input.ReleaseKey(MappedLeftKey)
						ElseIf Game.GetPlayer().HasSpell(VampireDrain09)
							If BVDrain.GetValue() >= 1000
								If Game.GetPlayer().GetEquippedSpell(1) == VampireDrain09
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain09,1)
								EndIf
							Else
								If Game.GetPlayer().GetEquippedSpell(0) == VampireDrain09
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain09,0)
								EndIf
							EndIf	
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(3.0)
							;Input.ReleaseKey(MappedLeftKey)
						ElseIf Game.GetPlayer().HasSpell(VampireDrain10)
							If BVDrain.GetValue() >= 1000
								If Game.GetPlayer().GetEquippedSpell(1) == VampireDrain10
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain10,1)
								EndIf
							Else
								If Game.GetPlayer().GetEquippedSpell(0) == VampireDrain10
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain10,0)
								EndIf
							EndIf	
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(3.0)
							;Input.ReleaseKey(MappedLeftKey)
						ElseIf Game.GetPlayer().HasSpell(VampireDrain11)
							If BVDrain.GetValue() >= 1000
								If Game.GetPlayer().GetEquippedSpell(1) == VampireDrain11
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain11,1)
								EndIf
							Else
								If Game.GetPlayer().GetEquippedSpell(0) == VampireDrain11
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain11,0)
								EndIf
							EndIf	
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(3.0)
							;Input.ReleaseKey(MappedLeftKey)
						ElseIf Game.GetPlayer().HasSpell(VampireDrain12)
							If BVDrain.GetValue() >= 1000
								If Game.GetPlayer().GetEquippedSpell(1) == VampireDrain12
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain12,1)
								EndIf
							Else
								If Game.GetPlayer().GetEquippedSpell(0) == VampireDrain12
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain12,0)
								EndIf
							EndIf	
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(3.0)
							;Input.ReleaseKey(MappedLeftKey)
						ElseIf Game.GetPlayer().HasSpell(VampireDrain13)
							If BVDrain.GetValue() >= 1000
								If Game.GetPlayer().GetEquippedSpell(1) == VampireDrain13
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain13,1)
								EndIf
							Else
								If Game.GetPlayer().GetEquippedSpell(0) == VampireDrain13
								Else					
									Game.GetPlayer().EquipSpell(VampireDrain13,0)
								EndIf
							EndIf	
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(3.0)
							;Input.ReleaseKey(MappedLeftKey)				
						EndIf
					EndIf	
				EndIf		

				;--------------------------

				If BVKeyPressed == BVPraestareSanguinareHotkey
					If Game.GetPlayer().GetRace() == DLC1VampireBeastRace
					Else
						If Game.GetPlayer().HasSpell(TurnOnCreateNPCVampire)
							If Game.GetPlayer().GetEquippedSpell(2) == TurnOnCreateNPCVampire
							Else			
								Game.GetPlayer().EquipSpell(TurnOnCreateNPCVampire,2)
							EndIf
							Utility.Wait(0.4)
							Int MappedShoutKey = Input.GetMappedKey("Shout")
							Input.TapKey(MappedShoutKey)
						EndIf
					EndIf	
				EndIf
				
				;--------------------------

				If BVKeyPressed == BVTollereSanguinareHotkey
					If Game.GetPlayer().GetRace() == DLC1VampireBeastRace
					Else		
						If Game.GetPlayer().HasSpell(CureNPCVampire)
							If BVTollereSanguinare.GetValue() >= 1000
								If Game.GetPlayer().GetEquippedSpell(1) == CureNPCVampire
								Else					
									Game.GetPlayer().EquipSpell(CureNPCVampire,1)
								EndIf
							Else
								If Game.GetPlayer().GetEquippedSpell(0) == CureNPCVampire
								Else					
									Game.GetPlayer().EquipSpell(CureNPCVampire,0)
								EndIf
							EndIf	
							;Int MappedLeftKey = Input.GetMappedKey("Left Attack/Block")
							;Input.HoldKey(MappedLeftKey)
							;Utility.Wait(3.0)
							;Input.ReleaseKey(MappedLeftKey)
						EndIf
					EndIf	
				EndIf		
				
				;--------------------------					
				
				If BVKeyPressed == VampireFeedingKey
					If PlayerIsVampire.GetValue() == 1
						VampireFeedingHotkeySpell.Cast(Game.GetPlayer())
					Else
						Debug.Notification("Skyrim does not have PlayerIsVampire = 1")
						Debug.Notification("You are not flagged as a Vampire")
					EndIf	
				EndIf
				
				;--------------------------		
				
				If BVKeyPressed == VampireStatusKey		
					
					If 	PlayerIsVampire.GetValue() == 1
					
						Debug.Notification("")
					
						String RankMessage = "-Rank NOT Identified Yet-"
						String StageMessage = "-Stage NOT Identified Yet-"
						Float TimeElapsed = (GameDaysPassed.GetValue() - VampireLastTimeFed.GetValue())*24
						Int TimeElapsedHours = Math.Floor((GameDaysPassed.GetValue() - VampireLastTimeFed.GetValue())*24)						
						Int VampireBloodPointsMessage = Math.Floor(VampireBloodPoints.GetValue())
				
											
						If VampireRank.GetValue() == 10000
							RankMessage = "NATUS"
						ElseIf VampireRank.GetValue() == 20000
							RankMessage = "APPARITOR"
						ElseIf VampireRank.GetValue() == 30000
							RankMessage = "OPPIDANUS"
						ElseIf VampireRank.GetValue() == 40000
							RankMessage = "PLEBIAN"
						ElseIf VampireRank.GetValue() == 50000
							RankMessage = "PATRICIAN"
						ElseIf VampireRank.GetValue() >= 60000
							RankMessage = "PRAECEPTOR"
						EndIf
				
						If VampireStageGlobal.GetValue() == 1
							StageMessage = "Stage 1: Fully Fed"
						ElseIf VampireStageGlobal.GetValue() == 2
							StageMessage = "Stage 2: Stirring Blood Lust"
						ElseIf VampireStageGlobal.GetValue() == 3
							StageMessage = "Stage 3: Unbearable Blood Lust"
						ElseIf VampireStageGlobal.GetValue() == 4
							StageMessage = "Stage 4: Blood Starved"
						EndIf
					
						
						If EnableVampireBloodPoints.GetValue() == 10000
							If VampireBloodPoints.GetValue() > 0
							
								Debug.Notification(RankMessage+"     "+StageMessage+"  ("+TimeElapsedHours+"h since fed)"+"     "+VampireBloodPointsMessage+" Blood Points")
							
							ElseIf 	VampireBloodPoints.GetValue() <= 0
							
								Debug.Notification(RankMessage+"     "+StageMessage+"  ("+TimeElapsedHours+"h since fed)"+"     0 Blood Points")
								
							EndIf	
							
							If BetterVampiresBloodMeterDisplay_Contextual.GetValue() == 2
								VampireBloodPoints.SetValue((VampireBloodPoints.GetValue() - 1))
								Utility.Wait(3)
								VampireBloodPoints.SetValue((VampireBloodPoints.GetValue() + 1))
							EndIf

						ElseIf EnableVampireBloodPoints.GetValue() == 0		
						
							Debug.Notification(RankMessage+"     "+StageMessage+"  ("+TimeElapsedHours+"h since fed)")
							
						EndIf	
					
					Else
					
						Debug.Notification("Skyrim does not have PlayerIsVampire = 1")
						Debug.Notification("You are not flagged as a Vampire")
					
					EndIf
						
				EndIf
			
				Utility.Wait(0.4)
				BetterVampiresHotkeyPressed.SetValue(0)
			
			EndIf
			
		EndIf	
		
	EndIf	
		
EndEvent

;==============================================================================================
;==============================================================================================
;==============================================================================================

Spell Property BleedingSpell Auto

Spell Property crVampireSunDamage Auto
Spell Property VampireCureDisease Auto
Spell Property DiseasePorphyricHemophelia Auto

Spell Property DiseaseAtaxia auto
Spell Property DiseaseBoneBreakFever Auto
Spell Property DiseaseBrainRot Auto
Spell Property DiseaseRattles Auto
Spell Property DiseaseRockjoint auto
Spell Property DiseaseWitbane Auto

Spell Property TrapDiseaseBoneBreakFever Auto
Spell Property TrapDiseaseBrainRot Auto
Spell Property TrapDiseaseRattles Auto
Spell Property TrapDiseaseRockjoint Auto
Spell Property TrapDiseaseWitbane Auto
Spell Property TrapDiseaseAtaxia Auto

Spell Property VampireVampirism Auto
Spell Property VampireTurnToAshPile Auto
Spell Property ABVampireSkills Auto
Spell Property ABVampireSkills02 Auto
Spell Property AbVampire01 Auto
Spell Property AbVampire02 Auto
Spell Property AbVampire03 Auto
Spell Property AbVampire04 Auto
Spell Property AbVampire05 Auto
Spell Property AbVampire01b Auto
Spell Property AbVampire02b Auto
Spell Property AbVampire03b Auto
Spell Property AbVampire04b Auto
Spell Property AbVampire05b Auto
Spell Property VampireDrain01 Auto
Spell Property VampireDrain02 Auto
Spell Property VampireDrain03 Auto
Spell Property VampireDrain04 Auto
Spell Property VampireDrain05 Auto
Spell Property VampireDrain06 Auto
Spell Property VampireDrain07 Auto
Spell Property VampireDrain08 Auto
Spell Property VampireDrain09 Auto
Spell Property VampireDrain10 Auto
Spell Property VampireDrain11 Auto
Spell Property VampireDrain12 Auto
Spell Property VampireDrain13 Auto
Spell Property VampireRaiseThrall01 Auto
Spell Property VampireRaiseThrall02 Auto
Spell Property VampireRaiseThrall03 Auto
Spell Property VampireRaiseThrall04 Auto
Spell Property VampireRaiseThrall05 Auto
Spell Property VampireStrength01 Auto
Spell Property VampireStrength02 Auto
Spell Property VampireStrength03 Auto
Spell Property VampireStrength04 Auto
Spell Property VampireStrength05 Auto
Spell Property VampireSunDamage01 Auto
Spell Property VampireSunDamage02 Auto
Spell Property VampireSunDamage03 Auto
Spell Property VampireSunDamage04 Auto
Spell Property VampireSunDamage05 Auto

Spell Property VampireBurnInSun01 Auto
Spell Property VampireBurnInSun02 Auto
Spell Property VampireBurnInSun03 Auto
Spell Property VampireBurnInSun04 Auto
Spell Property VampireBurnInSun05 Auto
Spell Property VampireBurnInSun06 Auto
Spell Property VampireBurnInSun07 Auto
Spell Property VampireBurnInSun08 Auto
Spell Property VampireBurnInSun09 Auto
Spell Property VampireBurnInSun10 Auto

Spell Property VampireSleep Auto
Spell Property VampireSleep2 Auto
Spell Property VampireSleep3 Auto
Spell Property VampireCharm Auto
Spell Property VampireCharm2 Auto
Spell Property VampireCloak Auto
Spell Property VampireInvisibilityPC Auto
Spell Property VampireInvisibilityRecast Auto
Spell Property VampireCharisma01 Auto
Spell Property VampireCharisma02 Auto
Spell Property VampireHuntersSight Auto
Spell Property VampireDetectAll Auto
Spell Property VampireDetectAll02 Auto
Spell Property VampireDetectAll03 Auto
Spell Property VampireDetectAll04 Auto
Spell Property CreateNPCVampireSpell Auto
Spell Property TurnOnCreateNPCVampire Auto
Spell Property CureNPCVampire Auto

Spell Property VampireRemoveHateSpell Auto

Spell Property BetterVampiresMenuOptionsSpell Auto

Spell Property VampireVictimDamage2 Auto

;For NPC Vampires you create
Spell Property InvisibilityVampiric Auto
Spell Property VampireSunDamageNPC Auto
Spell Property VampireTurnToAshPileNPC Auto
Spell Property crVampireDrain03 Auto

;For Vampire Ranks
Spell Property VampireRankCombatBonusSpell01 Auto
Spell Property VampireRankCombatBonusSpell02 Auto
Spell Property VampireRankCombatBonusSpell03 Auto
Spell Property VampireRankCombatBonusSpell04 Auto
Spell Property VampireRankCombatBonusSpell05 Auto
Spell Property VampireRankCombatBonusSpell06 Auto
Spell Property VampireRankFrostCloud01 Auto
Spell Property VampireRankFrostCloud02 Auto
Spell Property VampireRankFrostCloud03 Auto
Spell Property VampireRankFrostCloud04 Auto
Spell Property VampireRankFrostCloud05 Auto
Spell Property VampireRankFrostCloud06 Auto
Spell Property VampireRankBloodWard01 Auto
Spell Property VampireRankBloodWard02 Auto
Spell Property VampireRankBloodWard03 Auto
Spell Property VampireRankBloodWard04 Auto
Spell Property VampireRankBloodWard05 Auto
Spell Property VampireRankBloodWard06 Auto
Spell Property VampireRankIceFleshSpell01 Auto
Spell Property VampireRankIceFleshSpell02 Auto
Spell Property VampireRankIceFleshSpell03 Auto
Spell Property VampireRankIceFleshSpell04 Auto
Spell Property VampireRankIceFleshSpell05 Auto
Spell Property VampireRankIceFleshSpell06 Auto
Spell Property VampireRankSummonCreatureSpell Auto
Spell Property VampireRankTelekinesis2 Auto
Spell Property SanguinemReddereVampireSpell Auto
Spell Property VampireRankInvokeFogSpell01 Auto
Spell Property VampireRankInvokeFogSpell02 Auto
Spell Property VampireRankInvokeFogSpell03 Auto
Spell Property VampireRankInvokeFogSpell04 Auto
Spell Property VampireRankInvokeFogSpell05 Auto
Spell Property VampireRankMistFormSpell Auto
Spell Property VampireRankBlinkAttackSpell Auto
Spell Property VampireQuickReflexesSpell01 Auto
Spell Property VampireQuickReflexesSpell02 Auto
Spell Property VampireQuickReflexesSpell03 Auto
Spell Property VampireQuickReflexesSpell04 Auto
Spell Property VampireQuickReflexesSpell05 Auto
Spell Property VampireJumpBonusSpell Auto
Spell Property VampireFeedingHotkeySpell Auto

Spell Property DLC1RevertForm Auto
Spell Property DLC1SunFire Auto
Spell Property DLC1SunFire2 Auto
Spell Property DLC1VampireDetectLife Auto
Spell Property DLC1VampireMistForm Auto
Spell Property DLC1VampireRaiseDeadLeftHand01 Auto
Spell Property DLC1VampireRaiseDeadLeftHand02 Auto
Spell Property DLC1VampireRaiseDeadLeftHand03 Auto
Spell Property DLC1VampireRaiseDeadLeftHand04 Auto
Spell Property DLC1VampireRaiseDeadLeftHand05 Auto
Spell Property DLC1ConjureGargoyleLeftHand Auto
Spell Property DLC1CorpseCurseLeftHand Auto
Spell Property DLC1VampireBats Auto
Spell Property DLC1VampireChange Auto
Spell Property DLC1VampiresGrip Auto

MagicEffect Property AlchParalysis Auto
MagicEffect Property ChillrendParalysisFFContact Auto
MagicEffect Property DLC1ParalysisFFAimed Auto
MagicEffect Property doomSerpentParalyzeEffect Auto
MagicEffect Property EnchParalysisFFContact Auto
MagicEffect Property FXParalyzeMassBodyHolder Auto
MagicEffect Property MG08ParalysisAbilityEffect Auto
MagicEffect Property MG08ParalysisSpellEffect Auto
MagicEffect Property MS08ParalysisFFAimed Auto
MagicEffect Property ParalysisFFAimed Auto
MagicEffect Property ParalysisFFAimedVampire Auto
MagicEffect Property ParalysisFFContact Auto
MagicEffect Property ParalysisFFSelfArea Auto
MagicEffect Property ParalysisFFSelfAreaVampire Auto
MagicEffect Property ParalysisSprigganDeath Auto
MagicEffect Property PerkDeepFreezeParalysisConcAimed Auto
MagicEffect Property PerkDeepFreezeParalysisFFAimed Auto
MagicEffect Property PerkDeepFreezeParalysisFFAimedArea15 Auto
MagicEffect Property PerkDeepFreezeParalysisFFSelfArea40 Auto
MagicEffect Property PerkGrandmaster1HParalysisFFSelf Auto
MagicEffect Property PerkGrandmaster2HParalysisFFSelf Auto
