Scriptname SuH_MCM extends SKI_ConfigBase

SuH_Fun Property _Fun auto
DialogueFollowerScript Property DialogueFollower Auto
Quest Property pDialogueFollower  Auto

;ent/ Variables / Objects
;ent/ Object variables
Actor Property PlayerAlias auto
Actor Property PlayerRef Auto
Actor Property SuH_actor_dog Auto
Actor Property SuH_actor_wolf Auto
Actor Property SuH_actor_horse Auto
Actor Property SuH_actor_skeever Auto
Actor Property SuH_actor_familiar Auto
Actor Property SuH_actor_bear Auto
Actor Property SuH_actor_sabrecat Auto
Actor Property SuH_actor_draugr Auto
Actor Property SuH_actor_troll Auto
Actor Property SuH_actor_spriggan Auto
Actor Property SuH_actor_horker Auto
Actor Property SuH_actor_falmer Auto
Actor Property SuH_actor_husky Auto
actor property SuH_actor_bristle auto
actor property SuH_actor_seeker auto
actor property SuH_actor_gargoyle auto
actor property SuH_actor_netch auto
actor property SuH_actor_riekling auto
Spell Property SuH_spell_petself Auto
Spell Property SuH_spell_pettarget Auto
ActorBase Property PlayerBase Auto
Armor property SuH_armor_regalglow auto
ObjectReference Property SuH_sdr_spawnpoint Auto 
ObjectReference Property SuH_realm_portalpoint Auto 
ObjectReference Property SuH_realm_petreturn Auto 
ObjectReference Property SuH_realm_petreturnbear Auto 
ObjectReference Property SuH_realm_petreturnbristle Auto 
ObjectReference Property SuH_realm_petreturndog Auto 
ObjectReference Property SuH_realm_petreturndraugr Auto 
ObjectReference Property SuH_realm_petreturnfalmer Auto 
ObjectReference Property SuH_realm_petreturnfamiliar Auto 
ObjectReference Property SuH_realm_petreturngargoyle Auto 
ObjectReference Property SuH_realm_petreturnhorker Auto 
ObjectReference Property SuH_realm_petreturnhorse Auto 
ObjectReference Property SuH_realm_petreturnhusky Auto 
ObjectReference Property SuH_realm_petreturnwolf Auto 
ObjectReference Property SuH_realm_petreturnskeever Auto 
ObjectReference Property SuH_realm_petreturnnetch Auto 
ObjectReference Property SuH_realm_petreturnriekling Auto 
ObjectReference Property SuH_realm_petreturnsabrecat Auto 
ObjectReference Property SuH_realm_petreturnseeker Auto 
ObjectReference Property SuH_realm_petreturnspriggan Auto 
ObjectReference Property SuH_realm_petreturntroll Auto 
GlobalVariable Property SuH_SETallowdrainkill auto
GlobalVariable Property SuH_PCScaphealth auto
GlobalVariable Property SuH_PCScaphealthitem auto
GlobalVariable Property SuH_PCScapmagicka auto
GlobalVariable Property SuH_PCScapmagickaitem auto
GlobalVariable Property SuH_PCScapstamina auto
GlobalVariable Property SuH_PCScapstaminaitem auto
GlobalVariable Property SuH_PCSdesire auto
GlobalVariable Property SuH_PCSxp auto
GlobalVariable Property SuH_PCSxpgain auto
GlobalVariable Property SuH_PCSxpgainitem auto
GlobalVariable Property SuH_PCSabsorbhealth auto
GlobalVariable Property SuH_PCSabsorbmagicka auto
GlobalVariable Property SuH_PCSabsorbstamina auto
GlobalVariable Property SuH_PCSspermhealth auto
GlobalVariable Property SuH_PCSspermmagicka auto
GlobalVariable Property SuH_PCSspermstamina auto
GlobalVariable Property SuH_PCSmilkhealth auto
GlobalVariable Property SuH_PCSmilkmagicka auto
GlobalVariable Property SuH_PCSmilkstamina auto
GlobalVariable Property SuH_PCSstackmaxsex auto
GlobalVariable Property SuH_PCSstackmaxsperm auto
GlobalVariable Property SuH_PCSstackmaxmilk auto
GlobalVariable Property SuH_PCSstacksex auto
GlobalVariable Property SuH_PCSstacksperm auto
GlobalVariable Property SuH_PCSstackmilk auto
GlobalVariable Property SuH_PCSsp auto
GlobalVariable Property SuH_PCSspearned auto
GlobalVariable Property SuH_PCSforce auto
GlobalVariable Property SuH_PCSeffectmulti auto
GlobalVariable Property SuH_PCSdesiregain auto
GlobalVariable Property SuH_PCSbpoint auto
GlobalVariable Property SuH_PCSdpoint auto
GlobalVariable Property SuH_PCSspoint auto
GlobalVariable Property SuH_PCSmpoint auto
GlobalVariable Property SuH_PCSbdsm auto
GlobalVariable Property SuH_PCSbdsmspecial auto
GlobalVariable Property SuH_SETcombatseduction auto
GlobalVariable Property SuH_SETnpc2npchealth auto
GlobalVariable Property SuH_SETnpc2pchealth auto
GlobalVariable Property SuH_SETpc2npchealth auto
GlobalVariable Property SuH_SETallowmalehomo auto
GlobalVariable Property SuH_SETallowfemalehomo auto
GlobalVariable Property SuH_SETessentialacts auto
GlobalVariable Property SuH_SETconsentdrain auto
GlobalVariable Property SuH_SETdesiredrain auto
GlobalVariable Property SuH_SETdeathdrops auto
GlobalVariable Property SuH_SETalwaysdrainkill auto
GlobalVariable Property SuH_SETspecialdeath auto
GlobalVariable Property SuH_SETsdloseitems auto
GlobalVariable Property SuH_SETsdlosegold auto
GlobalVariable Property SuH_SETsdloseequip auto
GlobalVariable Property SuH_SETrestrictact auto
GlobalVariable Property SuH_SETdesirecap auto
GlobalVariable Property SuH_SETrandomdeathspawn auto
GlobalVariable Property SuH_MODversion auto
GlobalVariable Property SuH_MCMversion auto
GlobalVariable Property SuH_rank_perfectorgasm auto
GlobalVariable Property SuH_rank_perfectorgasm2 auto
GlobalVariable Property SuH_rank_lusciousliquids auto
GlobalVariable Property SuH_rank_lusciousliquids2 auto
GlobalVariable Property SuH_rank_masochist auto
GlobalVariable Property SuH_rank_masochist2 auto
GlobalVariable Property SuH_rank_selfstacker auto
GlobalVariable Property SuH_rank_valuestacker auto
GlobalVariable Property SuH_rank_savingessence auto
GlobalVariable Property SuH_rank_savingessence2 auto
GlobalVariable Property SuH_rank_giftedconsent auto
GlobalVariable Property SuH_rank_forcemaster auto
GlobalVariable Property SuH_rank_bdsm auto
GlobalVariable Property SuH_rank_deviouspartner auto
GlobalVariable Property SuH_rank_deviouspartner2 auto
GlobalVariable Property SuH_rank_formalbeauty auto
GlobalVariable Property SuH_rank_formalbeauty2 auto
GlobalVariable Property SuH_rank_seducer auto
GlobalVariable Property SuH_rank_regalglow auto
GlobalVariable Property SuH_rank_violence auto
GlobalVariable Property SuH_rank_violence2 auto
GlobalVariable Property SuH_rank_violence3 auto
GlobalVariable Property SuH_ORcaphealth auto
GlobalVariable Property SuH_ORcapmagicka auto
GlobalVariable Property SuH_ORcapstamina auto
GlobalVariable Property SuH_ORabsorbhealth auto
GlobalVariable Property SuH_ORabsorbmagicka auto
GlobalVariable Property SuH_ORabsorbstamina auto
GlobalVariable Property SuH_PETsummonlevel auto
GlobalVariable Property SuH_PETsummonxp auto
GlobalVariable Property SuH_PETactive auto
GlobalVariable Property SuH_PETactivedog auto
GlobalVariable Property SuH_PETdoglevel auto
GlobalVariable Property SuH_PETdogdesire auto
GlobalVariable Property SuH_PETdogeffect auto
GlobalVariable Property SuH_PETactivewolf auto
GlobalVariable Property SuH_PETwolflevel auto
GlobalVariable Property SuH_PETwolfdesire auto
GlobalVariable Property SuH_PETwolfeffect auto
GlobalVariable Property SuH_PETactivehorse auto
GlobalVariable Property SuH_PEThorselevel auto
GlobalVariable Property SuH_PEThorsedesire auto
GlobalVariable Property SuH_PEThorseeffect auto
GlobalVariable Property SuH_PETactiveskeever auto
GlobalVariable Property SuH_PETskeeverlevel auto
GlobalVariable Property SuH_PETskeeverdesire auto
GlobalVariable Property SuH_PETskeevereffect auto
GlobalVariable Property SuH_PETactivefamiliar auto
GlobalVariable Property SuH_PETfamiliarlevel auto
GlobalVariable Property SuH_PETfamiliardesire auto
GlobalVariable Property SuH_PETfamiliareffect auto
GlobalVariable Property SuH_PETactivebear auto
GlobalVariable Property SuH_PETbearlevel auto
GlobalVariable Property SuH_PETbeardesire auto
GlobalVariable Property SuH_PETbeareffect auto
GlobalVariable Property SuH_PETactivesabrecat auto
GlobalVariable Property SuH_PETsabrecatlevel auto
GlobalVariable Property SuH_PETsabrecatdesire auto
GlobalVariable Property SuH_PETsabrecateffect auto
GlobalVariable Property SuH_PETactivedraugr auto
GlobalVariable Property SuH_PETdraugrlevel auto
GlobalVariable Property SuH_PETdraugrdesire auto
GlobalVariable Property SuH_PETdraugreffect auto
GlobalVariable Property SuH_PETactivetroll auto
GlobalVariable Property SuH_PETtrolllevel auto
GlobalVariable Property SuH_PETtrolldesire auto
GlobalVariable Property SuH_PETtrolleffect auto
GlobalVariable Property SuH_PETactivespriggan auto
GlobalVariable Property SuH_PETsprigganlevel auto
GlobalVariable Property SuH_PETspriggandesire auto
GlobalVariable Property SuH_PETsprigganeffect auto
GlobalVariable Property SuH_PETactivehorker auto
GlobalVariable Property SuH_PEThorkerlevel auto
GlobalVariable Property SuH_PEThorkerdesire auto
GlobalVariable Property SuH_PEThorkereffect auto
GlobalVariable Property SuH_PETactivefalmer auto
GlobalVariable Property SuH_PETfalmerlevel auto
GlobalVariable Property SuH_PETfalmerdesire auto
GlobalVariable Property SuH_PETfalmereffect auto
GlobalVariable property SuH_PETdogunlock auto
GlobalVariable property SuH_PETwolfunlock auto
GlobalVariable property SuH_PEThorseunlock auto
GlobalVariable property SuH_PETskeeverunlock auto
GlobalVariable property SuH_PETfamiliarunlock auto
GlobalVariable property SuH_PETbearunlock auto
GlobalVariable property SuH_PETsabrecatunlock auto
GlobalVariable property SuH_PETdraugrunlock auto
GlobalVariable property SuH_PETtrollunlock auto
GlobalVariable property SuH_PETsprigganunlock auto
GlobalVariable property SuH_PEThorkerunlock auto
GlobalVariable property SuH_PETfalmerunlock auto
GlobalVariable property SuH_SETinvactmale auto
GlobalVariable property SuH_SETinvactfemale auto
GlobalVariable property SuH_SETinvactmalecreature auto
GlobalVariable property SuH_SETinvactfemalecreature auto
GlobalVariable property SuH_PETactivehusky auto
GlobalVariable property SuH_PEThuskyunlock auto
GlobalVariable property SuH_PEThuskydesire auto
GlobalVariable property SuH_PEThuskylevel auto
GlobalVariable property SuH_PEThuskyeffect auto
GlobalVariable property SuH_PETactivebristle auto
GlobalVariable property SuH_PETbristleunlock auto
GlobalVariable property SuH_PETbristledesire auto
GlobalVariable property SuH_PETbristlelevel auto
GlobalVariable property SuH_PETbristleeffect auto
GlobalVariable property SuH_PETactiveseeker auto
GlobalVariable property SuH_PETseekerunlock auto
GlobalVariable property SuH_PETseekerdesire auto
GlobalVariable property SuH_PETseekerlevel auto
GlobalVariable property SuH_PETseekereffect auto
GlobalVariable property SuH_PETactivegargoyle auto
GlobalVariable property SuH_PETgargoyleunlock auto
GlobalVariable property SuH_PETgargoyledesire auto
GlobalVariable property SuH_PETgargoylelevel auto
GlobalVariable property SuH_PETgargoyleeffect auto
GlobalVariable property SuH_PETactivenetch auto
GlobalVariable property SuH_PETnetchunlock auto
GlobalVariable property SuH_PETnetchdesire auto
GlobalVariable property SuH_PETnetchlevel auto
GlobalVariable property SuH_PETnetcheffect auto
GlobalVariable property SuH_PETactiveriekling auto
GlobalVariable property SuH_PETrieklingunlock auto
GlobalVariable property SuH_PETrieklingdesire auto
GlobalVariable property SuH_PETrieklinglevel auto
GlobalVariable property SuH_PETrieklingeffect auto
GlobalVariable property SuH_perk_orgasm auto
GlobalVariable property SuH_perk_orgasml auto
GlobalVariable property SuH_perk_npcorgasm auto
GlobalVariable property SuH_perk_npcorgasml auto
GlobalVariable property SuH_perk_absorb auto
GlobalVariable property SuH_perk_absorbl auto
GlobalVariable property SuH_perk_sperm auto
GlobalVariable property SuH_perk_sperml auto
GlobalVariable property SuH_perk_milk auto
GlobalVariable property SuH_perk_milkl auto
GlobalVariable property SuH_SETnpcabsorb auto
;end/
;ent/ status
int status_health
int status_magicka
int status_stamina
int status_desire
int status_xp
int status_xpgain
int status_stacksex
int status_stacksperm
int status_stackmilk
int status_SETdrainkill
int status_SETcombatseduction
int status_SETnpc2npchealth
int status_SETnpc2pchealth
int status_SETpc2npchealth
int status_SETallowmalehomo
int status_SETallowfemalehomo
int status_SETessentialacts
int status_SETconsentdrain
int status_SETdesiredrain
int status_SETdeathdrops
int status_SETeffectmulti
int status_SETdesiregain
int status_SETalwaysdrainkill
int status_SETspecialdeath
int status_SETsdloseitems
int status_SETsdlosegold
int status_SETsdloseequip
int status_SETrestrictact
int status_SETdesirecap
int status_SETrandomdeathspawn
int status_sdsetspawn
int status_ORcaphealth
int status_ORcapmagicka
int status_ORcapstamina
int status_ORabsorbhealth
int status_ORabsorbmagicka
int status_ORabsorbstamina
int status_SETinvact
int status_SETinvactmale
int status_SETinvactfemale
int status_SETinvactmalecreature
int status_SETinvactfemalecreature
int status_version
int status_SETpetspells
int status_SETnpcabsorb
;end/
;ent/ skill
int skill_sp
int skill_spnext
int skill_xp
int skill_convert
int skill_alchemy
int skill_alteration
int skill_block
int skill_conjuration
int skill_destruction
int skill_enchanting
int skill_heavyarmor
int skill_illusion
int skill_lightarmor
int skill_lockpicking
int skill_marksman
int skill_onehanded
int skill_pickpocket
int skill_restoration
int skill_smithing
int skill_sneak
int skill_speechcraft
int skill_twohanded
;end/
;ent/ heart
int heart_caphealth
int heart_capmagicka
int heart_capstamina
int heart_absorbhealth
int heart_absorbmagicka
int heart_absorbstamina
int heart_spermhealth
int heart_spermmagicka
int heart_spermstamina
int heart_milkhealth
int heart_milkmagicka
int heart_milkstamina
int heart_stacksex
int heart_stacksperm
int heart_stackmilk
int heart_xp
int heart_xpgain
;end/
;ent/ spell
int spell_xp
int spell_point
int spell_reset
int spell_perfectorgasm
int spell_perfectorgasmrank
int spell_perfectorgasmrank2
int spell_lusciousliquids
int spell_lusciousliquidsrank
int spell_lusciousliquidsrank2
int spell_masochist
int spell_masochistrank
int spell_masochistrank2
int spell_selfstacker
int spell_selfstackerrank
int spell_valuestacker
int spell_valuestackerrank
int spell_savingessence
int spell_savingessencerank
int spell_savingessencerank2
int spell_giftedconsent
int spell_giftedconsentrank
int spell_forcemaster
int spell_forcemasterrank
int spell_deviouspartner
int spell_deviouspartnerrank
int spell_deviouspartnerrank2
int spell_formalbeauty
int spell_formalbeautyrank
int spell_formalbeautyrank2
int spell_seducer
int spell_seducerrank
int spell_regalglow
int spell_regalglowrank
int spell_violence
int spell_violencerank
int spell_violencerank2
int spell_violencerank3
;end/
;ent/ perk
int perk_orgasm
int perk_absorb
int perk_sperm
int perk_milk
;end/
;ent/ Pets
int pet_summonxp
int pet_summonlevel
int pet_currentleader
int pet_currentleaderindex
int pet_leaderdesire
int pet_dog
int pet_doglevel
int pet_dogdesire
int pet_wolf
int pet_wolflevel
int pet_wolfdesire
int pet_horse
int pet_horselevel
int pet_horsedesire
int pet_skeever
int pet_skeeverlevel
int pet_skeeverdesire
int pet_familiar
int pet_familiarlevel
int pet_familiardesire
int pet_bear
int pet_bearlevel
int pet_beardesire
int pet_sabrecat
int pet_sabrecatlevel
int pet_sabrecatdesire
int pet_draugr
int pet_draugrlevel
int pet_draugrdesire
int pet_troll
int pet_trolllevel
int pet_trolldesire
int pet_spriggan
int pet_sprigganlevel
int pet_spriggandesire
int pet_horker
int pet_horkerlevel
int pet_horkerdesire
int pet_falmer
int pet_falmerlevel
int pet_falmerdesire
int pet_husky
int pet_huskylevel
int pet_huskydesire
int pet_bristle
int pet_bristlelevel
int pet_bristledesire
int pet_seeker
int pet_seekerlevel
int pet_seekerdesire
int pet_gargoyle
int pet_gargoylelevel
int pet_gargoyledesire
int pet_netch
int pet_netchlevel
int pet_netchdesire
int pet_riekling
int pet_rieklinglevel
int pet_rieklingdesire
;end/
;ent/ help
int help_credit
int help_version
int help1
int help2
int help3
int help4
int help5
int help6
int help7
int help8
int help9
int help10
int help11
int help12
int help13
int help14
int help15
int help16
int help17
int help18
int help19
int help20
int help21
int help22
int help23
int help24
int help25
int r1
int r2
int r3
int r4
int r5
int r6
int r7
int r8
int r9
int r10
int r11
int r12
int r13
int r14
int r15
int r16
int r17
int r18
int r19
int r20
int r21
int r22
int r23
int r24
int r25
int r26
int r27
int r28
int r29
int r30
int r31
int r32
int r33
int r34
int r35
int r36
int r37
int r38
int r39
int r40
int r41
int r42
int r43
int r44
int r45
int r46
int r47
int r48
int r49
int r50
int r51
int r52
int r53
int r54
int r55
int r56
int r57
int r58
;end/
int ftMCM
int ftstatus
int ftskill
int ftheart
int ftpassives
int ftsoul
int ftperk
int fthelp
string[] petleaderlist
string[] peteffectlist
;end/

;ent/ Init
Event OnConfigInit()
	ModName = "_Succubus Heart"
	Pages = new string[6]
		Pages[0] = "Status / Settings"
		Pages[1] = "Skill Levels"
		Pages[2] = "Heart Levels"
		Pages[3] = "Passives"
		Pages[4] = "Soul Pets"
		Pages[5] = "Help"
endEvent
;end/

;ent/ MCMupdate
Function MCMupdate()
	float MCMversion = SuH_MCMversion.GetValue()
	; If MCMversion < 3.442
		; parent.OnInit()
		; petleaderlist = new string[12]
		; petleaderlist[0] = "Dog"
		; petleaderlist[1] = "Wolf"
		; petleaderlist[2] = "Familiar"
		; petleaderlist[3] = "Horse"
		; petleaderlist[4] = "Horker"
		; petleaderlist[5] = "Skeever"
		; petleaderlist[6] = "Bear"
		; petleaderlist[7] = "Sabre Cat"
		; petleaderlist[8] = "Troll"
		; petleaderlist[9] = "Draugr"
		; petleaderlist[10] = "Spriggan"
		; petleaderlist[11] = "Falmer"
		; SuH_MCMversion.SetValue(4.11)
	; endIf
	if MCMversion != 0 && MCMversion < 4.111
		ftsoul = 0
		SuH_MCMversion.SetValue(4.12)
	endIf
	If MCMversion < 4.151
		ModName = "_Succubus Heart"
		Pages = new string[7]
			Pages[0] = "Status / Settings"
			Pages[1] = "Skill Levels"
			Pages[2] = "Heart Levels"
			Pages[3] = "Passives"
			Pages[4] = "Soul Pets"
			Pages[5] = "Perks"
			Pages[6] = "Help"
		SuH_MCMversion.SetValue(4.151)
	endIf
endFunction
;end/

;ent/ OnPageReset
Event OnPageReset(string page)
	;ent/ Initial Page
	if (page == "")
		if ftMCM != 1
			debug.MessageBox("Welcome to the Succubus Heart MCM! Upon first entering each page a short description will be displayed describing the page and its basic functions. If you want more in-depth explanations please check out the Help MCM page or read-about on the mod's forums.")
			ftMCM = 1
		endIf
        LoadCustomContent("SuH/SuH_cover.swf")
        return
    else
        UnloadCustomContent()
    endIf
	;end/
	;ent/ Status / Settings
	if (page == "Status / Settings")
		if ftstatus != 1
			debug.MessageBox("This is the Status / Settings MCM. Here you can view an overview of some key stats within Succubus Heart as well as change various settings. I highly recommend checking down the full options list to enable/disabling anything you want/don't want in your game. Also check out Succubus Heart's Optional Features such as Combat Seduction to either fulfill gameplay needs or to ensure they're disabled for compatibility.")
			ftstatus = 1
		endIf
		SetCursorFillMode(TOP_TO_BOTTOM)		
		;ent/ Variables
		int playerHealth = PlayerRef.GetBaseActorValue("health") as int
		int playerMagicka = PlayerRef.GetBaseActorValue("magicka") as int
		int playerStamina = PlayerRef.GetBaseActorValue("stamina") as int
		int plvl = PlayerRef.GetLevel() as int
		int healthCap = Math.Floor(SuH_PCScaphealth.GetValue()+plvl*4)
		int magickaCap = Math.Floor(SuH_PCScapmagicka.GetValue()+plvl*3)
		int staminaCap = Math.Floor(SuH_PCScapstamina.GetValue()+plvl*3)
		int desireV = SuH_PCSdesire.GetValue() as int
		int XP = SuH_PCSxp.GetValue() as int
		int XPgain = SuH_PCSxpgain.GetValue() as int
		int XPgainV = XPgain
		int stacksex = SuH_PCSstacksex.GetValue() as int
		int stacksperm = SuH_PCSstacksperm.GetValue() as int
		int stackmilk = SuH_PCSstackmilk.GetValue() as int
		int stackmaxsex = SuH_PCSstackmaxsex.GetValue() as int
		int stackmaxsperm = SuH_PCSstackmaxsperm.GetValue() as int
		int stackmaxmilk = SuH_PCSstackmaxmilk.GetValue() as int
		bool SETdrainkill = SuH_SETallowdrainkill.GetValue() as bool
		bool SETcombatseduction = SuH_SETcombatseduction.GetValue() as bool
		int SETnpc2pchealth = Math.Floor(SuH_SETnpc2pchealth.GetValue()*100)
		int SETpc2npchealth = Math.Floor(SuH_SETpc2npchealth.GetValue()*100)
		int SETnpc2npchealth = Math.Floor(SuH_SETnpc2npchealth.GetValue()*100)
		int SETallowmalehomo = SuH_SETallowmalehomo.GetValue() as int
		int SETallowfemalehomo = SuH_SETallowfemalehomo.GetValue() as int
		bool SETessentialacts = SuH_SETessentialacts.GetValue() as bool
		bool SETconsentdrain = SuH_SETconsentdrain.GetValue() as bool
		bool SETdesiredrain = SuH_SETdesiredrain.GetValue() as bool
		bool SETdeathdrops = SuH_SETdeathdrops.GetValue() as bool
		int ORcaphealth = SuH_ORcaphealth.GetValue() as int
		int ORcapmagicka = SuH_ORcapmagicka.GetValue() as int
		int ORcapstamina = SuH_ORcapstamina.GetValue() as int
		int ORabsorbhealth = SuH_ORcaphealth.GetValue() as int
		int ORabsorbmagicka = SuH_ORcapmagicka.GetValue() as int
		int ORabsorbstamina = SuH_ORcapstamina.GetValue() as int
		int effectmulti = Math.Floor(100 * SuH_PCSeffectmulti.GetValue())
		float SETdesiregain = SuH_PCSdesiregain.GetValue()
		bool SETalwaysdrainkill = SuH_SETalwaysdrainkill.GetValue() as bool
		bool SETspecialdeath = SuH_SETspecialdeath.GetValue() as bool
		bool SETsdloseitems = SuH_SETsdloseitems.GetValue() as bool
		bool SETsdlosegold = SuH_SETsdlosegold.GetValue() as bool
		bool SETsdloseequip = SuH_SETsdloseequip.GetValue() as bool
		bool SETrestrictact = SuH_SETrestrictact.GetValue() as bool
		int SETdesirecap = SuH_SETdesirecap.GetValue() as int
		int SETrandomdeathspawn = SuH_SETrandomdeathspawn.GetValue() as int
		bool SETinvactmale = SuH_SETinvactmale.GetValue() as bool
		bool SETinvactfemale = SuH_SETinvactfemale.GetValue() as bool
		bool SETinvactmalecreature = SuH_SETinvactmalecreature.GetValue() as bool
		bool SETinvactfemalecreature = SuH_SETinvactfemalecreature.GetValue() as bool
		bool SETnpcabsorb = SuH_SETnpcabsorb.GetValue() as bool
		int SETpetspells = 0
		if playerRef.HasSpell(SuH_spell_petself)
			SETpetspells = 1
		else
			SETpetspells = 0
		endIF
		;end/
		;ent/ Left Side
		SetCursorPosition(0)
		; Status
		AddHeaderOption("Status ")
		if ORcaphealth == 0
			status_health = AddTextOption("Health ", playerHealth+"/"+healthCap)
		else
			status_health = AddTextOption("Health ", playerHealth+"/overwritten")
		endIf
		if ORcapmagicka == 0
			status_magicka = AddTextOption("Magicka ", playerMagicka+"/"+magickaCap)
		else
			status_magicka = AddTextOption("Magicka ", playerMagicka+"/overwritten")
		endIf
		if ORcapstamina == 0
			status_stamina = AddTextOption("Stamina ", playerStamina+"/"+staminaCap)
		else
			status_stamina = AddTextOption("Stamina ", playerStamina+"/overwritten")
		endIf
		status_stacksex = AddTextOption("Sex Stacks", stacksex+"/"+stackmaxsex)
		status_stacksperm = AddTextOption("Sperm Stacks", stacksperm+"/"+stackmaxsperm)
		status_stackmilk = AddTextOption("Milk Stacks", stackmilk+"/"+stackmaxmilk)
		AddEmptyOption()
		; Gameplay Options
		AddHeaderOption("Gameplay Options")
		status_SETeffectmulti = AddSliderOption("Progression Multiplier",effectmulti, "{0}%")
		status_SETnpcabsorb = AddToggleOption("Absorb From NPCs", SETnpcabsorb)
		status_SETdrainkill = AddToggleOption("Allow Drain to Kill", SETdrainkill)
		status_SETconsentdrain = AddToggleOption("Allow Consensual Drain", SETconsentdrain)
		status_SETdesiredrain = AddToggleOption("Allow Desire Drain", SETdesiredrain)
		status_SETalwaysdrainkill = AddToggleOption("Drain Always Kills ", SETalwaysdrainkill)
		status_SETdeathdrops = AddToggleOption("Death Drops ", SETdeathdrops)
		status_SETdesiregain = AddSliderOption("Desire Generation ", SETdesiregain)
		status_SETdesirecap = AddSliderOption("Desire Drain Trigger ", SETdesirecap, "{0}")
		status_SETpetspells = AddToggleOption("Display Pet Spells", SETpetspells)
		AddEmptyOption()
		; Animation Options
		AddHeaderOption("Animation Options")
		status_SETallowmalehomo = AddToggleOption("Allow Male Homosexuals", SETallowmalehomo)
		status_SETallowfemalehomo = AddToggleOption("Allow Female Homosexuals", SETallowfemalehomo)
		status_SETrestrictact = AddToggleOption("Restrict Act ", SETrestrictact)
		status_SETessentialacts = AddToggleOption("NPCs Essential in Acts", SETessentialacts)
		AddEmptyOption()
		; Overrides
		AddHeaderOption("Status Overrides")
		status_ORcaphealth = AddSliderOption("Health Cap",ORcaphealth,"{0}")
		status_ORcapmagicka = AddSliderOption("Magicka Cap",ORcapmagicka,"{0}")
		status_ORcapstamina = AddSliderOption("Stamina Cap",ORcapstamina,"{0}")
		status_ORabsorbhealth = AddSliderOption("Health Absorption",ORabsorbhealth,"{0}")
		status_ORabsorbmagicka = AddSliderOption("Magicka Absorption",ORabsorbhealth,"{0}")
		status_ORabsorbstamina = AddSliderOption("Stamina Absorption",ORabsorbhealth,"{0}")
		;end/
		;ent/ Right Side
		SetCursorPosition(1)
		; Status
		AddHeaderOption("Status ")
		status_desire = AddTextOption("Desire ", desireV)
		status_xp = AddTextOption("XP ", XP)
		status_xpgain = AddTextOption("XP Gain ", XPgainV+"%")
		AddEmptyOption()
		AddEmptyOption()
		AddEmptyOption()
		AddEmptyOption()
		; Mechanic Options
		AddHeaderOption("Mechanic Options ")
		status_SETcombatseduction = AddToggleOption("Combat Seduction", SETcombatseduction)
		status_SETnpc2pchealth = AddSliderOption("NPC to PC", SETnpc2pchealth, "{0}% Health")
		status_SETpc2npchealth = AddSliderOption("PC to NPC", SETpc2npchealth, "{0}% Health")
		status_SETnpc2npchealth = AddSliderOption("NPC to NPC", SETnpc2npchealth, "{0}% Health")
		AddEmptyOption()
		status_SETspecialdeath = AddToggleOption("Death Override", SETspecialdeath)
		status_SETrandomdeathspawn = AddToggleOption("Force Random Death Respawn", SETrandomdeathspawn)
		status_SETsdloseitems = AddToggleOption("Lose Items on Death", SETsdloseitems)
		status_SETsdlosegold = AddToggleOption("Lose Gold on Death", SETsdlosegold)
		status_SETsdloseequip = AddToggleOption("Destroy Equipped on Death", SETsdloseequip)
		AddEmptyOption()
		float modv = SuH_MODversion.GetValue()
		status_version = AddTextOption("Succubus Heart Version "+modv, " ")
		;status_SETinvact = AddTextOption("'Virgin' Protection", " ")
		;status_SETinvactmale = AddToggleOption("Protect Males", SETinvactmale)
		;status_SETinvactfemale = AddToggleOption("Protect Females", SETinvactfemale)
		;status_SETinvactmalecreature = AddToggleOption("Protect Male Creatures", SETinvactmalecreature)
		;status_SETinvactfemalecreature = AddToggleOption("Protect Females Creatures", SETinvactfemalecreature)
		;AddEmptyOption()
		;end/
	;end/
	;ent/ Skill Levels
	elseIf (page == "Skill Levels")
		if ftskill != 1
			debug.MessageBox("This is the Skill Levels Menu. Here you can spend SP to level Skyrim's usual skills, such as Heavy Armor, or maybe even a useless stat like lockpicking... (seriously, does anyone even level that?). Costs increase with skill level and SP only gets more difficult to obtain so you may want to save points for your primary skills. SP is earned by gaining Status over your Status Cap, for a more in-depth explanation check the highlight info and Help MCM.")
			ftskill = 1
		endIf
		;ent/ Variables
			int alchemylvl = playerRef.GetBaseActorValue("alchemy") as int
			int alchemycost = Math.Ceiling(alchemylvl*0.1)
			int alterationlvl = playerRef.GetBaseActorValue("alteration") as int
			int alterationcost = Math.Ceiling(alterationlvl*0.1)
			int blocklvl = playerRef.GetBaseActorValue("block") as int
			int blockcost = Math.Ceiling(blocklvl*0.1)
			int conjurationlvl = playerRef.GetBaseActorValue("conjuration") as int
			int conjurationcost = Math.Ceiling(conjurationlvl*0.1)
			int destructionlvl = playerRef.GetBaseActorValue("destruction") as int
			int destructioncost = Math.Ceiling(destructionlvl*0.1)
			int enchantinglvl = playerRef.GetBaseActorValue("enchanting") as int
			int enchantingcost = Math.Ceiling(enchantinglvl*0.1)
			int heavyarmorlvl = playerRef.GetBaseActorValue("heavyarmor") as int
			int heavyarmorcost = Math.Ceiling(heavyarmorlvl*0.1)
			int illusionlvl = playerRef.GetBaseActorValue("illusion") as int
			int illusioncost = Math.Ceiling(illusionlvl*0.1)
			int lightarmorlvl = playerRef.GetBaseActorValue("lightarmor") as int
			int lightarmorcost = Math.Ceiling(lightarmorlvl*0.1)
			int lockpickinglvl = playerRef.GetBaseActorValue("lockpicking") as int
			int lockpickingcost = Math.Ceiling(lockpickinglvl*0.1)
			int marksmanlvl = playerRef.GetBaseActorValue("marksman") as int
			int marksmancost = Math.Ceiling(marksmanlvl*0.1)
			int onehandedlvl = playerRef.GetBaseActorValue("onehanded") as int
			int onehandedcost = Math.Ceiling(onehandedlvl*0.1)
			int pickpocketlvl = playerRef.GetBaseActorValue("pickpocket") as int
			int pickpocketcost = Math.Ceiling(pickpocketlvl*0.1)
			int restorationlvl = playerRef.GetBaseActorValue("restoration") as int
			int restorationcost = Math.Ceiling(restorationlvl*0.1)
			int smithinglvl = playerRef.GetBaseActorValue("smithing") as int
			int smithingcost = Math.Ceiling(smithinglvl*0.1)
			int sneaklvl = playerRef.GetBaseActorValue("sneak") as int
			int sneakcost = Math.Ceiling(sneaklvl*0.1)
			int speechcraftlvl = playerRef.GetBaseActorValue("speechcraft") as int
			int speechcraftcost = Math.Ceiling(speechcraftlvl*0.1)
			int twohandedlvl = playerRef.GetBaseActorValue("twohanded") as int
			int twohandedcost = Math.Ceiling(twohandedlvl*0.1)
		;end/
		;ent/ SP calculation
			int plvl = PlayerRef.GetLevel()
			float plvlmod = 1
			if plvl < 11 ; 30% cap
				plvlmod = 1 - (plvl*0.03)
			elseif plvl < 21 ; 50% cap
				plvlmod = 1 - ((plvl - 20)*0.02 + 0.3)
			elseif plvl < 31 ; 70% cap
				plvlmod = 1 - ((plvl - 30)*0.01 + 0.5)
			elseif plvl < 51 ; 75% cap
				plvlmod = 1 - ((plvl - 50)*0.005 + 0.7)
			elseif plvl > 60 ; 99.9% cap
				plvlmod = 1 - ((plvl - 60)*0.0025 + 0.75)
				if plvlmod > 1
					plvlmod = 1 - 0.999
				endIf
			endIf
			int xp = SuH_PCSxp.GetValue() as int
			int force = SuH_PCSforce.GetValue() as int
			int sp = SuH_PCSsp.GetValue() as int
			int spearned = SuH_PCSspearned.GetValue() as int
			float fmaster = 1 - (SuH_rank_forcemaster.GetValue() * 0.02)
			int spcost = Math.Floor((spearned*0.2*60)*plvlmod*fmaster)
			if force >= spcost
				int x = 0
				int y = 0
				int z = 0
				int forceSpent = 0
				int spgained = 0
				int newcost = 0
				int i = 0
				while i != 1
					x = force - forceSpent
					y = spearned + spgained
					newcost = Math.Floor((y*0.2*60)*plvlmod*fmaster)
					if x >= newcost
						forceSpent += newcost
						spgained += 1
					else
						z = sp + spgained
						SuH_PCSforce.SetValue(x)
						SuH_PCSspearned.SetValue(y)
						SuH_PCSsp.SetValue(z)
						debug.MessageBox(spgained+" SP was earned")
						i = 1
					endIf
				endWhile
				xp = SuH_PCSxp.GetValue() as int
				force = SuH_PCSforce.GetValue() as int
				sp = SuH_PCSsp.GetValue() as int
				spearned = SuH_PCSspearned.GetValue() as int
				spcost = Math.Floor((spearned*0.2*60)*plvlmod*fmaster)
			endIf
			int spnext = Math.Floor(spcost-force)
		;end/
		SetCursorFillMode(TOP_TO_BOTTOM)
		;ent/ Left Side
		SetCursorPosition(0)
		skill_sp = AddTextOption("Skill Points", sp)
		skill_spnext = AddTextOption("Till Next Skill Point", spnext+" Force")
		AddHeaderOption("Level Skills")
		skill_alchemy = AddTextOption("Alchemy ", alchemylvl+" ["+alchemycost+" SP]")
		skill_block = AddTextOption("Block ", blocklvl+" ["+blockcost+" SP]")
		skill_destruction = AddTextOption("Destruction ", destructionlvl+" ["+destructioncost+" SP]")
		skill_heavyarmor = AddTextOption("Heavy Armor ", heavyarmorlvl+" ["+heavyarmorcost+" SP]")
		skill_lightarmor = AddTextOption("Light Armor ", lightarmorlvl+" ["+lightarmorcost+" SP]")
		skill_marksman = AddTextOption("Marksman ", marksmanlvl+" ["+marksmancost+" SP]")
		skill_pickpocket = AddTextOption("Pickpocket ", pickpocketlvl+" ["+pickpocketcost+" SP]")
		skill_smithing = AddTextOption("Smithing ", smithinglvl+" ["+smithingcost+" SP]")
		skill_speechcraft = AddTextOption("Speechcraft ", speechcraftlvl+" ["+speechcraftcost+" SP]")
		;end/
		;ent/ Right Side
		SetCursorPosition(1)
		skill_xp = AddTextOption("XP available", xp)
		skill_convert = AddSliderOption("XP to Force (10->1)",0,"{0}")
		AddHeaderOption("Level Skills")
		skill_alteration = AddTextOption("Alteration ", alterationlvl+" ["+alterationcost+" SP]")
		skill_conjuration = AddTextOption("Conjuration ", conjurationlvl+" ["+conjurationcost+" SP]")
		skill_enchanting = AddTextOption("Enchanting ", enchantinglvl+" ["+enchantingcost+" SP]")
		skill_illusion = AddTextOption("Illusion ", illusionlvl+" ["+illusioncost+" SP]")
		skill_lockpicking = AddTextOption("Lockpicking ", lockpickinglvl+" ["+lockpickingcost+" SP]")
		skill_onehanded = AddTextOption("One-Handed ", onehandedlvl+" ["+onehandedcost+" SP]")
		skill_restoration = AddTextOption("Restoration ", restorationlvl+" ["+restorationcost+" SP]")
		skill_sneak = AddTextOption("Sneak ", sneaklvl+" ["+sneakcost+" SP]")
		skill_twohanded = AddTextOption("Two-Handed ", twohandedlvl+" ["+twohandedcost+" SP]")
		;end/
	;end/
	;ent/ Heart Levels
	elseIf (page == "Heart Levels")
		if ftheart != 1
			debug.MessageBox("This is the Heart Levels Menu. Here you can level various Succubus Heart Stats, most note-ably Status Caps and Absorption. These stats will effect many of Succubus Heart's sex effects and increase the max status you can achieve using the mod. You'll probably want to check-in on this menu from time to time to increase your abilities as they'll grant a fiar amount of power and allow new passives to be learned. For more check the Help MCM. [Special Tip : Use the 'set to default' key to set tracking, you'll then receive a quick notification when the skill can be leveled!]")
			ftheart = 1
		endIf
		;ent/ Variables
		int caphealth = SuH_PCScaphealth.GetValue() as int
		int caphealthitem = SuH_PCScaphealthitem.GetValue() as int
		int caphealthcost = Math.Floor(((caphealth-caphealthitem)*0.12)*15+20)
		int caphealthdisplay = Math.Floor(caphealth + (PlayerRef.GetLevel()*4))
		int capmagicka = SuH_PCScapmagicka.GetValue() as int
		int capmagickaitem = SuH_PCScapmagickaitem.GetValue() as int
		int capmagickacost = Math.Floor(((capmagicka-capmagickaitem)*0.12)*15+20)
		int capmagickadisplay = Math.Floor(capmagicka + (PlayerRef.GetLevel()*3))
		int capstamina = SuH_PCScapstamina.GetValue() as int
		int capstaminaitem = SuH_PCScapstaminaitem.GetValue() as int
		int capstaminacost = Math.Floor(((capstamina-capstaminaitem)*0.12)*15+20)
		int capstaminadisplay = Math.Floor(capstamina + (PlayerRef.GetLevel()*3))
		int absorbhealth = SuH_PCSabsorbhealth.GetValue() as int
		int absorbhealthcost = Math.Floor(absorbhealth*2.2*280)
		int absorbmagicka = SuH_PCSabsorbmagicka.GetValue() as int
		int absorbmagickacost = Math.Floor(absorbmagicka*2.2*280)
		int absorbstamina = SuH_PCSabsorbstamina.GetValue() as int
		int absorbstaminacost = Math.Floor(absorbstamina*2.2*280)
		int stacksex = SuH_PCSstackmaxsex.GetValue() as int
		int stacksexcost = Math.Floor(stacksex*2.8*240)
		int stacksperm = SuH_PCSstackmaxsperm.GetValue() as int
		int stackspermcost = Math.Floor(stacksperm*2.8*240)
		int stackmilk = SuH_PCSstackmaxmilk.GetValue() as int
		int stackmilkcost = Math.Floor(stackmilk*2.8*240)
		int spermhealth = SuH_PCSspermhealth.GetValue() as int
		int spermhealthcost = Math.Floor(spermhealth*1.8*200)
		int spermmagicka = SuH_PCSspermmagicka.GetValue() as int
		int spermmagickacost = Math.Floor(spermmagicka*1.8*200)
		int spermstamina = SuH_PCSspermstamina.GetValue() as int
		int spermstaminacost = Math.Floor(spermstamina*1.8*200)
		int milkhealth = SuH_PCSmilkhealth.GetValue() as int
		int milkhealthcost = Math.Floor(milkhealth*1.8*200)
		int milkmagicka = SuH_PCSmilkmagicka.GetValue() as int
		int milkmagickacost = Math.Floor(milkmagicka*1.8*200)
		int milkstamina = SuH_PCSmilkstamina.GetValue() as int
		int milkstaminacost = Math.Floor(milkstamina*1.8*200)
		int xp = SuH_PCSxp.GetValue() as int
		int xpgain = SuH_PCSxpgain.GetValue() as int
		int xpgainitem = SuH_PCSxpgainitem.GetValue() as int
		int xpgaincost = Math.Floor(((xpgain - (99+xpgainitem))*2.0*350)*0.5)
		int xpgaindisplay = xpgain
		;end/
		SetCursorFillMode(TOP_TO_BOTTOM)
		;ent/ Left Side
		SetCursorPosition(0)
		heart_xp = AddTextOption("XP available", xp)
		AddHeaderOption("Heart Levels")
		heart_caphealth = AddTextOption("Health Cap", caphealthdisplay+" ["+caphealthcost+" XP]")
		heart_capmagicka = AddTextOption("Magicka Cap", capmagickadisplay+" ["+capmagickacost+" XP]")
		heart_capstamina = AddTextOption("Stamina Cap", capstaminadisplay+" ["+capstaminacost+" XP]")
		AddEmptyOption()
		heart_stacksex = AddTextOption("Max Sex Stacks", stacksex+" ["+stacksexcost+" XP]")
		heart_stacksperm = AddTextOption("Max Sperm Stacks", stacksperm+" ["+stackspermcost+" XP]")
		heart_stackmilk = AddTextOption("Max Milk Stacks", stackmilk+" ["+stackmilkcost+" XP]")
		AddEmptyOption()
		heart_xpgain = AddTextOption("XP Gain", xpgaindisplay+"% ["+xpgaincost+" XP]")
		AddEmptyOption()
		AddEmptyOption()
		;end/
		;ent/ Right Side
		SetCursorPosition(1)
		AddEmptyOption()
		AddHeaderOption("Heart Levels")
		heart_absorbhealth = AddTextOption("Health Absorption", absorbhealth+" ["+absorbhealthcost+" XP]")
		heart_absorbmagicka = AddTextOption("Magicka Absorption", absorbmagicka+" ["+absorbmagickacost+" XP]")
		heart_absorbstamina = AddTextOption("Stamina Absorption", absorbstamina+" ["+absorbstaminacost+" XP]")
		AddEmptyOption()
		heart_spermhealth = AddTextOption("Sperm Health Bonus", spermhealth+" ["+spermhealthcost+" XP]")
		heart_spermmagicka = AddTextOption("Sperm Magicka Bonus", spermmagicka+" ["+spermmagickacost+" XP]")
		heart_spermstamina = AddTextOption("Sperm Stamina Bonus", spermstamina+" ["+spermstaminacost+" XP]")
		AddEmptyOption()
		heart_milkhealth = AddTextOption("Milk Health Bonus", milkhealth+" ["+milkhealthcost+" XP]")
		heart_milkmagicka = AddTextOption("Milk Magicka Bonus", milkmagicka+" ["+milkmagickacost+" XP]")
		heart_milkstamina = AddTextOption("Milk Stamina Bonus", milkstamina+" ["+milkstaminacost+" XP]")
		;end/
	;end/
	;ent/ Passives
	elseIf (page == "Passives")
		if ftpassives != 1
			debug.MessageBox("This is the Passives Menu. Here you can learn various extra abilities to add to your Succubus Powers. These abilities are 'always on' and add benefits with some having costs. Passives require BDSM Rating which is earned by leveling Heart Skills in the Heart Levels MCM. Different Passives and Heart Abilities will also have a BDSM Type which can have an effect on some passives. Read the Highlight info on abilities and check out the Help MCM for more.")
			ftpassives = 1
		endIf
		SetCursorFillMode(TOP_TO_BOTTOM)
		;ent/ Variables
		int xp = SuH_PCSxp.GetValue() as int
		int perfectorgasmrank = SuH_rank_perfectorgasm.GetValue() as int
		int perfectorgasmrank2 = SuH_rank_perfectorgasm2.GetValue() as int
		int perfectorgasmrankall = perfectorgasmrank + perfectorgasmrank2
		int perfectorgasmcost = Math.Floor(12+(perfectorgasmrankall*0.1*12))
		int lusciousliquidsrank = SuH_rank_lusciousliquids.GetValue() as int
		int lusciousliquidsrank2 = SuH_rank_lusciousliquids2.GetValue() as int
		int lusciousliquidsrankall = lusciousliquidsrank + lusciousliquidsrank2
		int lusciousliquidscost = Math.Floor(24+(lusciousliquidsrankall*0.1*24))
		int masochistrank = SuH_rank_masochist.GetValue() as int
		int masochistrank2 = SuH_rank_masochist2.GetValue() as int
		int masochistrankall = masochistrank + masochistrank2
		int masochistcost = Math.Floor(12+(masochistrankall*0.1*12))
		int selfstackerrank = SuH_rank_selfstacker.GetValue() as int
		int selfstackercost = Math.Floor(30+(selfstackerrank*0.1*30))
		int valuestackerrank = SuH_rank_valuestacker.GetValue() as int
		int valuestackercost = Math.Floor(30+(valuestackerrank*0.1*30))
		int savingessencerank = SuH_rank_savingessence.GetValue() as int
		int savingessencerank2 = SuH_rank_savingessence2.GetValue() as int
		int savingessencerankall = savingessencerank + savingessencerank2
		int savingessencecost = Math.Floor(30+(savingessencerankall*0.1*30))
		int giftedconsentrank = SuH_rank_giftedconsent.GetValue() as int
		int giftedconsentcost = Math.Floor(12+(giftedconsentrank*0.1*12))
		int forcemasterrank = SuH_rank_forcemaster.GetValue() as int
		int forcemastercost = Math.Floor(30+(forcemasterrank*0.1*30))
		int deviouspartnerrank = SuH_rank_deviouspartner.GetValue() as int
		int deviouspartnerrank2 = SuH_rank_deviouspartner2.GetValue() as int
		int deviouspartnerrankall = deviouspartnerrank + deviouspartnerrank2
		int deviouspartnercost = Math.Floor(24+(deviouspartnerrankall*0.1*24))
		int formalbeautyrank = SuH_rank_formalbeauty.GetValue() as int
		int formalbeautyrank2 = SuH_rank_formalbeauty2.GetValue() as int
		int formalbeautyrankall = formalbeautyrank + formalbeautyrank2
		int formalbeautycost = Math.Floor(24+(formalbeautyrankall*0.1*24))
		int violencerank = SuH_rank_violence.GetValue() as int
		int violencerank2 = SuH_rank_violence2.GetValue() as int
		int violencerank3 = SuH_rank_violence3.GetValue() as int
		int violencerankall = violencerank + violencerank2 + violencerank3
		int violencecost = Math.Floor(30+(violencerankall*0.1*30))
		int seducerrank = SuH_rank_seducer.GetValue() as int
		int seducercost = Math.Floor(30+(seducerrank*0.1*30))
		int regalglowrank = SuH_rank_regalglow.GetValue() as int
		int regalglowcost = Math.Floor(24+(regalglowrank*0.1*24))
		int bpoint = SuH_PCSbpoint.GetValue() as int
		int dpoint = SuH_PCSdpoint.GetValue() as int
		int spoint = SuH_PCSspoint.GetValue() as int
		int mpoint = SuH_PCSmpoint.GetValue() as int
		int bdsmrating = SuH_PCSbdsm.GetValue() as int
		int bdsmrank = SuH_rank_bdsm.GetValue() as int
		int bdsmrankcost = Math.Floor((1200*bdsmrank)*1.6+1200)
		string Lbdsmrating = " "
		if dpoint >= bpoint && dpoint >= spoint && dpoint >= mpoint
			Lbdsmrating = "Desire"
		elseif bpoint >= spoint && bpoint >= mpoint
			Lbdsmrating = "Body"
		elseif spoint >= mpoint
			Lbdsmrating = "Soul"
		else
			Lbdsmrating = "Mind"
		endIf
		;end/
		;ent/ Left Side
		SetCursorPosition(0)
			spell_point = AddTextOption("BDSM Rating", bdsmrating+" ["+Lbdsmrating+"]")
			AddEmptyOption()
			; Combat Passives
			AddHeaderOption("Combat Passives")
			spell_masochist = AddTextOption("Masochist", "rank "+masochistrankall)
			spell_masochistrank = AddTextOption(" - - Desire Up", masochistcost)
			spell_masochistrank2 = AddTextOption(" - - Stamina Up", masochistcost)
			spell_violence = AddTextOption("Violence", "rank "+violencerankall)
			spell_violencerank = AddTextOption(" - - Health Up", violencecost)
			spell_violencerank2 = AddTextOption(" - - Magicka Up", violencecost)
			spell_violencerank3 = AddTextOption(" - - Stamina Up", violencecost)
			spell_regalglow = AddTextOption("Regal Glow", "rank "+regalglowrank)
			spell_regalglowrank = AddTextOption(" - - Armor Up", regalglowcost)
			spell_savingessence = AddTextOption("Saving Essence", "rank "+savingessencerankall)
			spell_savingessencerank = AddTextOption(" - - Recover Up", savingessencecost)
			spell_savingessencerank2 = AddTextOption(" - - Reduce Cooldown", savingessencecost)
			; Sex Passives
			AddHeaderOption("Sex Passives")
			spell_seducer = AddTextOption("Seducer ", "rank "+seducerrank)
			spell_seducerrank = AddTextOption(" - - Cost Down ", seducercost)
			spell_deviouspartner = AddTextOption("Devious Partner ", "rank "+deviouspartnerrankall)
			spell_deviouspartnerrank = AddTextOption(" - - Gold Up ", deviouspartnercost)
			spell_deviouspartnerrank2 = AddTextOption(" - - Conversion Up ", deviouspartnercost)
			spell_perfectorgasm = AddTextOption("Perfect Orgasm", "rank "+perfectorgasmrankall)
			spell_perfectorgasmrank = AddTextOption(" - - Rare Up", perfectorgasmcost)
			spell_perfectorgasmrank2 = AddTextOption(" - - Drop Up", perfectorgasmcost)
			spell_giftedconsent = AddTextOption("Gifted Consent", "rank "+giftedconsentrank)
			spell_giftedconsentrank = AddTextOption(" - - Status Up", giftedconsentcost)
		;end/
		;ent/ Right Side
		SetCursorPosition(1)
			spell_xp = AddTextOption("Increase Rating", bdsmrankcost+" XP")
			spell_reset = AddTextOption(" - - Reset Passives and BDSM rating ", " ")
			; Supportive Passives
			AddHeaderOption("Supportive Passives")
			spell_lusciousliquids = AddTextOption("Luscious Liquids", "rank "+lusciousliquidsrankall)
			spell_lusciousliquidsrank = AddTextOption(" - - Heal Up", lusciousliquidscost)
			spell_lusciousliquidsrank2 = AddTextOption(" - - Recovery Up", lusciousliquidscost)
			spell_formalbeauty = AddTextOption("Formal Beauty", "rank "+formalbeautyrankall)
			spell_formalbeautyrank = AddTextOption(" - - Effect Up", formalbeautycost)
			spell_formalbeautyrank2 = AddTextOption(" - - Frequency Up", formalbeautycost)
			spell_forcemaster = AddTextOption("Force Master", "rank "+forcemasterrank)
			spell_forcemasterrank = AddTextOption(" - - Cost Down", forcemastercost)
			spell_valuestacker = AddTextOption("Value Stacker", "rank "+valuestackerrank)
			spell_valuestackerrank = AddTextOption(" - - Value Up", valuestackercost)
			spell_selfstacker = AddTextOption("Self Stacker", "rank "+selfstackerrank)
			spell_selfstackerrank = AddTextOption(" - - Stack Up", selfstackercost)
			;end/
		;end/
	;ent/ Perks
	elseIf (page == "Perks")
		if ftperk != 1
			debug.MessageBox("This is the Perks MCM. As different actions are done within Succubus Heart perks will rank up granting additional bonuses.")
			ftperk = 1
		endIf
		;ent/ Variables
			float x = 0.0
			float k = 0.0
			string ps = "Undefined"
			
			int orgasmc = SuH_perk_orgasm.GetValue() as int
			int orgasml = SuH_perk_orgasml.GetValue() as int
			float orgasmn = Math.Floor((((orgasml * 0.3) * 200) * 0.2) + 5)
			x = (orgasmc / orgasmn)
			ps = "....."
			if x >= 0.98
				ps = "IIIIIIIIII"
			elseif x >= 0.9
				ps = "IIIIIIIII."
			elseif x >= 0.8
				ps = "IIIIIIII.."
			elseif x >= 0.7
				ps = "IIIIIII..."
			elseif x >= 0.6
				ps = "IIIIII...."
			elseif x >= 0.5
				ps = "IIIII....."
			elseif x >= 0.4
				ps = "IIII......"
			elseif x >= 0.3
				ps = "III......."
			elseif x >= 0.2
				ps = "II........"
			elseif x >= 0.1
				ps = "I........."
			else
				ps = ".........."
			endIf
			string orgasms = ps
			int absorbc = SuH_perk_absorb.GetValue() as int
			int absorbl = SuH_perk_absorbl.GetValue() as int
			float absorbn = Math.Floor((((absorbl * 0.3) * 800) * 0.2) + 20)
			x = (absorbc / absorbn)
			ps = "....."
			if x >= 0.98
				ps = "IIIIIIIIII"
			elseif x >= 0.9
				ps = "IIIIIIIII."
			elseif x >= 0.8
				ps = "IIIIIIII.."
			elseif x >= 0.7
				ps = "IIIIIII..."
			elseif x >= 0.6
				ps = "IIIIII...."
			elseif x >= 0.5
				ps = "IIIII....."
			elseif x >= 0.4
				ps = "IIII......"
			elseif x >= 0.3
				ps = "III......."
			elseif x >= 0.2
				ps = "II........"
			elseif x >= 0.1
				ps = "I........."
			else
				ps = ".........."
			endIf
			string absorbs = ps
			int spermc = SuH_perk_sperm.GetValue() as int
			int sperml = SuH_perk_sperml.GetValue() as int
			float spermn = Math.Floor((((sperml * 0.3) * 400) * 0.2) + 10)
			x = (spermc / spermn)
			ps = "....."
			if x >= 0.98
				ps = "IIIIIIIIII"
			elseif x >= 0.9
				ps = "IIIIIIIII."
			elseif x >= 0.8
				ps = "IIIIIIII.."
			elseif x >= 0.7
				ps = "IIIIIII..."
			elseif x >= 0.6
				ps = "IIIIII...."
			elseif x >= 0.5
				ps = "IIIII....."
			elseif x >= 0.4
				ps = "IIII......"
			elseif x >= 0.3
				ps = "III......."
			elseif x >= 0.2
				ps = "II........"
			elseif x >= 0.1
				ps = "I........."
			else
				ps = ".........."
			endIf
			string sperms = ps
			int milkc = SuH_perk_milk.GetValue() as int
			int milkl = SuH_perk_milkl.GetValue() as int
			float milkn = Math.Floor((((milkl * 0.3) * 400) * 0.2) + 10)
			x = (milkc / milkn)
			ps = "....."
			if x >= 0.98
				ps = "IIIIIIIIII"
			elseif x >= 0.9
				ps = "IIIIIIIII."
			elseif x >= 0.8
				ps = "IIIIIIII.."
			elseif x >= 0.7
				ps = "IIIIIII..."
			elseif x >= 0.6
				ps = "IIIIII...."
			elseif x >= 0.5
				ps = "IIIII....."
			elseif x >= 0.4
				ps = "IIII......"
			elseif x >= 0.3
				ps = "III......."
			elseif x >= 0.2
				ps = "II........"
			elseif x >= 0.1
				ps = "I........."
			else
				ps = ".........."
			endIf
			string milks = ps
		;end/
		SetCursorFillMode(TOP_TO_BOTTOM)
		;ent/ Left Side
		SetCursorPosition(0)
		AddHeaderOption("Perks")
		perk_orgasm = AddTextOption("Have Orgasm : Rank "+orgasml, orgasms) ;+12 BDSM
		perk_absorb = AddTextOption("Absorb Status : Rank "+absorbl, absorbs) ;+1% XP Gain
		perk_sperm = AddTextOption("Consume Sperm : Rank "+sperml, sperms) ;+5 Health Cap
		perk_milk = AddTextOption("Consume Milk : Rank "+milkl, milks) ;+5 Health Cap
		;end/
		;ent/ Right Side
		SetCursorPosition(1)
		;end/
	;end/
	;ent/ Pets
	elseIf (page == "Soul Pets")
		if ftsoul != 1
			debug.MessageBox("This is the Soul Pets MCM, a separate mod fully integrated into Succubus Heart! This MCM allows the summoning of various pets which level through sex acts and combat. Pets generate Desire over-time however when summoned and in action they will lose Desire, when desire reaches below zero they will return to the Succubus Realm. If a Soul Pet dies they will de-summmon and lose some status. Check the highlight info and Help MCM for more.")
			ftsoul = 1
		endIf
		;ent/ Variables
			int summonlevel = SuH_PETsummonlevel.GetValue() as int
			int summonxp = SuH_PETsummonxp.GetValue() as int
			int summontill = Math.Floor((summonlevel*1.8) * 40 + 20)
			int summonnext = summontill - summonxp
			int leaderdesire = 0 ;NEEDS FILLED
			int doglevel = SuH_PETdoglevel.GetValue() as int
			int dogdesire = SuH_PETdogdesire.GetValue() as int
			int dogeffect = SuH_PETdogeffect.GetValue() as int
			int wolflevel = SuH_PETwolflevel.GetValue() as int
			int wolfdesire = SuH_PETwolfdesire.GetValue() as int
			int wolfeffect = SuH_PETwolfeffect.GetValue() as int
			int horselevel = SuH_PEThorselevel.GetValue() as int
			int horsedesire = SuH_PEThorsedesire.GetValue() as int
			int horseeffect = SuH_PEThorseeffect.GetValue() as int
			int skeeverlevel = SuH_PETskeeverlevel.GetValue() as int
			int skeeverdesire = SuH_PETskeeverdesire.GetValue() as int
			int skeevereffect = SuH_PETskeevereffect.GetValue() as int
			int familiarlevel = SuH_PETfamiliarlevel.GetValue() as int
			int familiardesire = SuH_PETfamiliardesire.GetValue() as int
			int familiareffect = SuH_PETfamiliareffect.GetValue() as int
			int bearlevel = SuH_PETbearlevel.GetValue() as int
			int beardesire = SuH_PETbeardesire.GetValue() as int
			int beareffect = SuH_PETbeareffect.GetValue() as int
			int sabrecatlevel = SuH_PETsabrecatlevel.GetValue() as int
			int sabrecatdesire = SuH_PETsabrecatdesire.GetValue() as int
			int sabrecateffect = SuH_PETsabrecateffect.GetValue() as int
			int draugrlevel = SuH_PETdraugrlevel.GetValue() as int
			int draugrdesire = SuH_PETdraugrdesire.GetValue() as int
			int draugreffect = SuH_PETdraugreffect.GetValue() as int
			int trolllevel = SuH_PETtrolllevel.GetValue() as int
			int trolldesire = SuH_PETtrolldesire.GetValue() as int
			int trolleffect = SuH_PETtrolleffect.GetValue() as int
			int sprigganlevel = SuH_PETsprigganlevel.GetValue() as int
			int spriggandesire = SuH_PETspriggandesire.GetValue() as int
			int sprigganeffect = SuH_PETsprigganeffect.GetValue() as int
			int horkerlevel = SuH_PEThorkerlevel.GetValue() as int
			int horkerdesire = SuH_PEThorkerdesire.GetValue() as int
			int horkereffect = SuH_PEThorkereffect.GetValue() as int
			int falmerlevel = SuH_PETfalmerlevel.GetValue() as int
			int falmerdesire = SuH_PETfalmerdesire.GetValue() as int
			int falmereffect = SuH_PETfalmereffect.GetValue() as int
			int huskylevel = SuH_PEThuskylevel.GetValue() as int
			int huskydesire = SuH_PEThuskydesire.GetValue() as int
			int huskyeffect = SuH_PEThuskyeffect.GetValue() as int
			int bristlelevel = SuH_PETbristlelevel.GetValue() as int
			int bristledesire = SuH_PETbristledesire.GetValue() as int
			int bristleeffect = SuH_PETbristleeffect.GetValue() as int
			int seekerlevel = SuH_PETseekerlevel.GetValue() as int
			int seekerdesire = SuH_PETseekerdesire.GetValue() as int
			int seekereffect = SuH_PETseekereffect.GetValue() as int
			int gargoylelevel = SuH_PETgargoylelevel.GetValue() as int
			int gargoyledesire = SuH_PETgargoyledesire.GetValue() as int
			int gargoyleeffect = SuH_PETgargoyleeffect.GetValue() as int
			int netchlevel = SuH_PETnetchlevel.GetValue() as int
			int netchdesire = SuH_PETnetchdesire.GetValue() as int
			int netcheffect = SuH_PETnetcheffect.GetValue() as int
			int rieklinglevel = SuH_PETrieklinglevel.GetValue() as int
			int rieklingdesire = SuH_PETrieklingdesire.GetValue() as int
			int rieklingeffect = SuH_PETrieklingeffect.GetValue() as int
			string lpetleader = " "
			string ldog
			string lwolf
			string lhorse
			string lskeever
			string lfamiliar
			string lbear
			string lsabrecat
			string ldraugr
			string ltroll
			string lspriggan
			string lhorker
			string lfalmer
			string lhusky
			string lbristle
			string lseeker
			string lgargoyle
			string lnetch
			string lriekling
			; level 0
			if SuH_PETactivedog.GetValue()
				ldog = "Active"
			else
				ldog = "Idle"
			endIf
			; level 4
			if summonlevel > 3
				if SuH_PETactivefamiliar.GetValue()
					lfamiliar = "Active"
				else
					lfamiliar = "Idle"
				endIf
				if SuH_PETactivesabrecat.GetValue()
					lsabrecat = "Active"
				else
					lsabrecat = "Idle"
				endIf
				if SuH_PETactivefalmer.GetValue()
					lfalmer = "Active"
				else
					lfalmer = "Idle"
				endIf
				if SuH_PETactivetroll.GetValue()
					ltroll = "Active"
				else
					ltroll = "Idle"
				endIf
				if SuH_PETactivegargoyle.GetValue()
					lgargoyle = "Active"
				else
					lgargoyle = "Idle"
				endIf
			endIF
			; level 3
			if summonlevel > 2
				if SuH_PETactivehorse.GetValue()
					lhorse = "Active"
				else
					lhorse = "Idle"
				endIf
				if SuH_PETactivebear.GetValue()
					lbear = "Active"
				else
					lbear = "Idle"
				endIf
				if SuH_PETactivespriggan.GetValue()
					lspriggan = "Active"
				else
					lspriggan = "Idle"
				endIf
				if SuH_PETactivehorker.GetValue()
					lhorker = "Active"
				else
					lhorker = "Idle"
				endIf
				if SuH_PETactivehorker.GetValue()
					lhorker = "Active"
				else
					lhorker = "Idle"
				endIf
				if SuH_PETactivehusky.GetValue()
					lhusky = "Active"
				else
					lhusky = "Idle"
				endIf
				if SuH_PETactiveseeker.GetValue()
					lseeker = "Active"
				else
					lseeker = "Idle"
				endIf
			endIF
			; level 2
			if summonlevel > 1
				if SuH_PETactivewolf.GetValue()
					lwolf = "Active"
				else
					lwolf = "Idle"
				endIf
				if SuH_PETactivedraugr.GetValue()
					ldraugr = "Active"
				else
					ldraugr = "Idle"
				endIf
				; level 1
				if SuH_PETactivebristle.GetValue()
					lbristle = "Active"
				else
					lbristle = "Idle"
				endIf
				if SuH_PETactivenetch.GetValue()
					lnetch = "Active"
				else
					lnetch = "Idle"
				endIf
				if SuH_PETactiveriekling.GetValue()
					lriekling = "Active"
				else
					lriekling = "Idle"
				endIf
			endIf
			if summonlevel > 0
				if SuH_PETactiveskeever.GetValue()
					lskeever = "Active"
				else
					lskeever = "Idle"
				endIf
			endIF
		;end/
		
		peteffectlist = new string[6]
		peteffectlist[0] = "No Special Effect"
		peteffectlist[1] = "Damage Target Stamina"
		peteffectlist[2] = "Heal Target Health"
		peteffectlist[3] = "Damage Target Magicka"
		peteffectlist[4] = "Gain HeartXP For Master"
		peteffectlist[5] = "Damage Target Health"
		
		SetCursorFillMode(TOP_TO_BOTTOM)
		;ent/ Left Side
		SetCursorPosition(0)
		AddHeaderOption("Pet Status")
		pet_summonlevel = AddTextOption("Summoner Level", summonlevel)
		AddHeaderOption("Pet Selection")
		pet_dog = AddTextOption("Dog : Level "+doglevel+" : Desire "+dogdesire, ldog)
		pet_dogdesire = AddMenuOption("Sex Effect", peteffectlist[dogeffect])
		AddEmptyOption()
		if summonlevel > 1
			pet_wolf = AddTextOption("Wolf : Level "+wolflevel+" : Desire "+wolfdesire, lwolf)
			pet_wolfdesire = AddMenuOption("Sex Effect", peteffectlist[wolfeffect])
			AddEmptyOption()
		else
			pet_wolf = AddTextOption("Wolf : Locked", " ")
			pet_wolfdesire = AddTextOption(" "," ")
			AddEmptyOption()
		endIf
		if summonlevel > 2
			pet_husky = AddTextOption("Husky : Level "+huskylevel+" : Desire "+huskydesire, lhusky)
			pet_huskydesire = AddMenuOption("Sex Effect", peteffectlist[huskyeffect])
			AddEmptyOption()
		else
			pet_husky = AddTextOption("Husky : Locked", " ")
			pet_huskydesire = AddTextOption(" "," ")
			AddEmptyOption()
		endIf
		if summonlevel > 3
			pet_familiar = AddTextOption("Flame Familiar : Level "+familiarlevel+" : Desire "+familiardesire, lfamiliar)
			pet_familiardesire = AddMenuOption("Sex Effect", peteffectlist[familiareffect])
			AddEmptyOption()
		else
			pet_familiar = AddTextOption("Flame Familiar : Locked", " ")
			pet_familiardesire = AddTextOption(" "," ")
			AddEmptyOption()
		endIf
		
		if summonlevel > 1
			pet_netch = AddTextOption("Netch : Level "+netchlevel+" : Desire "+netchdesire, lnetch)
			pet_netchdesire = AddMenuOption("Sex Effect", peteffectlist[netcheffect])
			AddEmptyOption()
			pet_bristle = AddTextOption("Bristle : Level "+bristlelevel+" : Desire "+bristledesire, lbristle)
			pet_bristledesire = AddMenuOption("Sex Effect", peteffectlist[bristleeffect])
			AddEmptyOption()
		else
			pet_netch = AddTextOption("Netch : Locked", " ")
			pet_netchdesire = AddTextOption(" "," ")
			AddEmptyOption()
			pet_bristle = AddTextOption("bristle : Locked", " ")
			pet_bristledesire = AddTextOption(" "," ")
			AddEmptyOption()
		endIf
		if summonlevel > 2
			pet_horse = AddTextOption("Horse : Level "+horselevel+" : Desire "+horsedesire, lhorse)
			pet_horsedesire = AddMenuOption("Sex Effect", peteffectlist[horseeffect])
			AddEmptyOption()
			pet_seeker = AddTextOption("Seeker : Level "+seekerlevel+" : Desire "+seekerdesire, lseeker)
			pet_seekerdesire = AddMenuOption("Sex Effect", peteffectlist[seekereffect])
			AddEmptyOption()
		else
			pet_horse = AddTextOption("Horse : Locked", " ")
			pet_horsedesire = AddTextOption(" "," ")
			AddEmptyOption()
			pet_seeker = AddTextOption("Seeker : Locked", " ")
			pet_seekerdesire = AddTextOption(" "," ")
			AddEmptyOption()
		endIf
		;end/
		;ent/ Right Side
		SetCursorPosition(1)
		AddHeaderOption("Pet Status")
		pet_summonxp = AddTextOption("XP to next...", summonnext)
		;pet_currentleader = AddMenuOption("Pet Leader", petleaderlist[pet_currentleaderindex])
		;pet_leaderdesire = AddTextOption("Leader Desire", leaderdesire)
		AddHeaderOption(" ")
		if summonlevel > 1
			pet_draugr = AddTextOption("Draugr : Level "+draugrlevel+" : Desire "+draugrdesire, ldraugr)
			pet_draugrdesire = AddMenuOption("Sex Effect", peteffectlist[draugreffect])
			AddEmptyOption()
			pet_riekling = AddTextOption("Riekling : Level "+rieklinglevel+" : Desire "+rieklingdesire, lriekling)
			pet_rieklingdesire = AddMenuOption("Sex Effect", peteffectlist[rieklingeffect])
			AddEmptyOption()
		else
			pet_draugr = AddTextOption("Draugr : Locked", " ")
			pet_draugrdesire = AddTextOption(" "," ")
			AddEmptyOption()
			pet_riekling = AddTextOption("Riekling : Locked", " ")
			pet_rieklingdesire = AddTextOption(" "," ")
			AddEmptyOption()
		endIf
		if summonlevel > 2
			pet_spriggan = AddTextOption("Spriggan : Level "+sprigganlevel+" : Desire "+spriggandesire, lspriggan)
			pet_spriggandesire = AddMenuOption("Sex Effect", peteffectlist[sprigganeffect])
			AddEmptyOption()
		else
			pet_spriggan = AddTextOption("Spriggan : Locked", " ")
			pet_spriggandesire = AddTextOption(" "," ")
			AddEmptyOption()
		endIF
		if summonlevel > 3
			pet_falmer = AddTextOption("Falmer : Level "+falmerlevel+" : Desire "+falmerdesire, lfalmer)
			pet_falmerdesire = AddMenuOption("Sex Effect", peteffectlist[falmereffect])
			AddEmptyOption()
		else
			pet_falmer = AddTextOption("Falmer : Locked", " ")
			pet_falmerdesire = AddTextOption(" "," ")
			AddEmptyOption()
		endIF
		
		if summonlevel > 0
			pet_skeever = AddTextOption("Skeever : Level "+skeeverlevel+" : Desire : "+skeeverdesire, lskeever)
			pet_skeeverdesire = AddMenuOption("Sex Effect", peteffectlist[skeevereffect])
			AddEmptyOption()
		else
			pet_skeever = AddTextOption("Skeever : Locked", " ")
			pet_skeeverdesire = AddTextOption(" "," ")
			AddEmptyOption()
		endIf
		if summonlevel > 2
			pet_bear = AddTextOption("Bear : Level "+bearlevel+" : Desire "+beardesire, lbear)
			pet_beardesire = AddMenuOption("Sex Effect", peteffectlist[beareffect])
			AddEmptyOption()
			pet_horker = AddTextOption("Horker : Level "+horkerlevel+" : Desire "+horkerdesire, lhorker)
			pet_horkerdesire = AddMenuOption("Sex Effect", peteffectlist[horkereffect])
			AddEmptyOption()
		else
			pet_bear = AddTextOption("Bear : Locked", " ")
			pet_beardesire = AddTextOption(" "," ")
			AddEmptyOption()
			pet_horker = AddTextOption("Horker : Locked", " ")
			pet_horkerdesire = AddTextOption(" "," ")
			AddEmptyOption()
		endIF
		if summonlevel > 3
			pet_sabrecat = AddTextOption("Sabre Cat : Level "+sabrecatlevel+" : Desire "+sabrecatdesire, lsabrecat)
			pet_sabrecatdesire = AddMenuOption("Sex Effect", peteffectlist[sabrecateffect])
			AddEmptyOption()
			pet_troll = AddTextOption("Troll : Level "+trolllevel+" : Desire "+trolldesire, ltroll)
			pet_trolldesire = AddMenuOption("Sex Effect", peteffectlist[trolleffect])
			AddEmptyOption()
			pet_gargoyle = AddTextOption("Gargoyle : Level "+gargoylelevel+" : Desire "+gargoyledesire, lgargoyle)
			pet_gargoyledesire = AddMenuOption("Sex Effect", peteffectlist[gargoyleeffect])
			AddEmptyOption()
		else
			pet_sabrecat = AddTextOption("Sabre Cat : Locked", " ")
			pet_sabrecatdesire = AddTextOption(" "," ")
			AddEmptyOption()
			pet_troll = AddTextOption("Troll : Locked", " ")
			pet_trolldesire = AddTextOption(" "," ")
			AddEmptyOption()
			pet_gargoyle = AddTextOption("Gargoyle : Locked", " ")
			pet_gargoyledesire = AddTextOption(" "," ")
			AddEmptyOption()
		endIF
		;end/
	;end/
	;ent/ Help
	elseIf (page == "Help")
		if fthelp != 1
			debug.MessageBox("This is the Help MCM. Here you can view various bits of info about Succubus Heart and its mechanics as well as a reference list for everything included in the mod. Succubus Heart is fairly complex but no advanced understanding is required to use the mod.")
			fthelp = 1
		endIf
		SetCursorFillMode(TOP_TO_BOTTOM)
		;ent/ Left Side
		SetCursorPosition(0)
			; NOTE : un-used... help10 help15 help16 help17 help18 help14 help13 (Some r## unused as well)
		AddHeaderOption("Basic Mechanics")
		help1 = AddTextOption("Earning XP", " ")
		help4 = AddTextOption("Earning SP", " ")
		help3 = AddTextOption("Desire ", " ")
		help5 = AddTextOption("Absorption", " ")
		help11 = AddTextOption("Stacks ", " ")
		help8 = AddTextOption("Sex Drops", " ")
		help9 = AddTextOption("Death Drops", " ")
		help20 = AddTextOption("Soul Pets", " ")
		help21 = AddTextOption("Succubus Realm", " ")
		help12 = AddTextOption("Combat Seduction", " ")
		help19 = AddTextOption("Death Override", " ")
		AddEmptyOption()
		AddHeaderOption("Item Reference (Mod Items)")
		r31 = AddTextOption("Dog [Incubus]", "Soul Pet")
		r32 = AddTextOption("Wolf [Incubus]", "Soul Pet")
		r33 = AddTextOption("Horse [Incubus]", "Soul Pet")
		r36 = AddTextOption("Skeever [Incubus]", "Soul Pet")
		r37 = AddTextOption("Flame Familiar [Incubus]", "Soul Pet")
		r38 = AddTextOption("Bear [Incubus]", "Soul Pet")
		r39 = AddTextOption("Sabre Cat [Incubus]", "Soul Pet")
		r40 = AddTextOption("Draugr [Incubus]", "Soul Pet")
		r41 = AddTextOption("Troll [Incubus]", "Soul Pet")
		r42 = AddTextOption("Spriggan [Incubus]", "Soul Pet")
		r43 = AddTextOption("Horker [Incubus]", "Soul Pet")
		r44 = AddTextOption("Falmer [Incubus]", "Soul Pet")
		r50 = AddTextOption("Husky [Incubus]", "Soul Pet")
		r54 = AddTextOption("Bristleback [Incubus]", "Soul Pet")
		r55 = AddTextOption("Seeker [Incubus]", "Soul Pet")
		r56 = AddTextOption("Gargoyle [Incubus]", "Soul Pet")
		r57 = AddTextOption("Netch [Incubus]", "Soul Pet")
		r58 = AddTextOption("Riekling [Incubus]", "Soul Pet")
		;end/
		;ent/ Right Side
		SetCursorPosition(1)
		AddHeaderOption("Advanced Mechanics")
		help22 = AddTextOption("Tracking ", " ")
		help2 = AddTextOption("XP Mechanics ", " ")
		help23 = AddTextOption("SP Mechanics ", " ")
		help24 = AddTextOption("Desire Consumption ", " ")
		help6 = AddTextOption("BDSM Rating ", " ")
		help7 = AddTextOption("Passives ", " ")
		help25 = AddTextOption("Pet Sex Effects ", " ")
		AddEmptyOption()
		AddHeaderOption("Item Reference (Mod Items)")
		r1 = AddTextOption("Sexual Enrage ", "[Desire] Spell")
		r2 = AddTextOption("Sexual Entice ", "[Desire] Spell")
		r3 = AddTextOption("Self Pleasure ", "[Auto-Learned] Spell")
		r4 = AddTextOption("Night's Embrace ", "[Auto-Learned] Spell")
		r34 = AddTextOption("Succubus Realm -Connect- ", "[Auto-Learned] Spell")
		r35 = AddTextOption("Succubus Realm -Disconnect- ", "[Auto-Learned] Spell")
		r30 = AddTextOption("Train Pet ", "Pet Spell")
		r51 = AddTextOption("Summon Random Pet ", "Pet Spell")
		r52 = AddTextOption("Summon Horse Pet ", "Pet Spell")
		r53 = AddTextOption("Pet Rape Target", "Pet Spell")
		r13 = AddTextOption("Masochist ", "Combat Passive")
		r16 = AddTextOption("Saving Essence ", "Combat Passive")
		r48 = AddTextOption("Regal Glow ", "Combat Passive")
		r11 = AddTextOption("Perfect Orgasm ", "Sex Passive")
		r45 = AddTextOption("Devious Partner ", "Sex Passive")
		r47 = AddTextOption("Seducer ", "Sex Passive")
		r12 = AddTextOption("Luscious Liquids ", "Assist Passive")
		r14 = AddTextOption("Self Stacker ", "Assist Passive")
		r15 = AddTextOption("Value Stacker ", "Assist Passive")
		r17 = AddTextOption("Gifted Consent ", "Assist Passive")
		r29 = AddTextOption("Force Master ", "Assist Passive")
		r46 = AddTextOption("Formal Beauty ", "Assist Passive")
		r18 = AddTextOption("Sperm ", "[Sex Drop] Item")
		r19= AddTextOption("Breast Milk ", "[Sex Drop] Item")
		r20= AddTextOption("Vitality Stone ", "[Sex Drop] Item")
		r21 = AddTextOption("Empower Stone ", "[Sex Drop] Item")
		r22 = AddTextOption("Specialty Stone ", "[Sex Drop] Item")
		r23 = AddTextOption("Soul of Force ", "[Death Drop] Item")
		r24 = AddTextOption("Soul of Experience ", "[Death Drop] Item")
		r25 = AddTextOption("Soul of Life ", "[Death Drop] Item")
		r26 = AddTextOption("Soul of Magic ", "[Death Drop] Item")
		r27 = AddTextOption("Soul of Power ", "[Death Drop] Item")
		r28 = AddTextOption("Soul of Desire ", "[Death Drop] Item")
		;end/
	;end/
	endIf
endEvent
;end/
;ent/ OnOptionSelect
Event OnOptionSelect(int option)
	;ent/ Status / Settings
	if(CurrentPage == "Status / Settings")
		if(option == status_SETnpcabsorb)
			if SuH_SETnpcabsorb.GetValue()
				SuH_SETnpcabsorb.SetValue(0)
				SetToggleOptionValue(status_SETnpcabsorb, FALSE)
			else
				SuH_SETnpcabsorb.SetValue(1)
				SetToggleOptionValue(status_SETnpcabsorb, TRUE)
			endIf
		elseif(option == status_SETdrainkill)
			if SuH_SETallowdrainkill.GetValue()
				SuH_SETallowdrainkill.SetValue(0)
				SetToggleOptionValue(status_SETdrainkill, FALSE)
			else
				SuH_SETallowdrainkill.SetValue(1)
				SetToggleOptionValue(status_SETdrainkill, TRUE)
			endIf
		elseif(option == status_SETcombatseduction)
			if SuH_SETcombatseduction.GetValue()
				SuH_SETcombatseduction.SetValue(0)
				SetToggleOptionValue(status_SETcombatseduction, FALSE)
			else
				SuH_SETcombatseduction.SetValue(1)
				SetToggleOptionValue(status_SETcombatseduction, TRUE)
			endIf
		elseif(option == status_SETpetspells)
			if playerRef.HasSpell(SuH_spell_petself)
				playerRef.RemoveSpell(SuH_spell_petself)
				playerRef.RemoveSpell(SuH_spell_pettarget)
				SetToggleOptionValue(status_SETpetspells, FALSE)
			else
				playerRef.AddSpell(SuH_spell_petself)
				playerRef.AddSpell(SuH_spell_pettarget)
				SetToggleOptionValue(status_SETpetspells, TRUE)
			endIf
		elseif(option == status_SETallowmalehomo)
			if SuH_SETallowmalehomo.GetValue()
				SuH_SETallowmalehomo.SetValue(0)
				SetToggleOptionValue(status_SETallowmalehomo, FALSE)
			else
				SuH_SETallowmalehomo.SetValue(1)
				SetToggleOptionValue(status_SETallowmalehomo, TRUE)
			endIf
		elseif(option == status_SETallowfemalehomo)
			if SuH_SETallowfemalehomo.GetValue()
				SuH_SETallowfemalehomo.SetValue(0)
				SetToggleOptionValue(status_SETallowfemalehomo, FALSE)
			else
				SuH_SETallowfemalehomo.SetValue(1)
				SetToggleOptionValue(status_SETallowfemalehomo, TRUE)
			endIf
		elseif(option == status_SETessentialacts)
			if SuH_SETessentialacts.GetValue()
				SuH_SETessentialacts.SetValue(0)
				SetToggleOptionValue(status_SETessentialacts, FALSE)
			else
				SuH_SETessentialacts.SetValue(1)
				SetToggleOptionValue(status_SETessentialacts, TRUE)
			endIf
		elseif(option == status_SETconsentdrain)
			if SuH_SETconsentdrain.GetValue()
				SuH_SETconsentdrain.SetValue(0)
				SetToggleOptionValue(status_SETconsentdrain, FALSE)
			else
				SuH_SETconsentdrain.SetValue(1)
				SetToggleOptionValue(status_SETconsentdrain, TRUE)
			endIf
		elseif(option == status_SETdesiredrain)
			if SuH_SETdesiredrain.GetValue()
				SuH_SETdesiredrain.SetValue(0)
				SetToggleOptionValue(status_SETdesiredrain, FALSE)
			else
				SuH_SETdesiredrain.SetValue(1)
				SetToggleOptionValue(status_SETdesiredrain, TRUE)
			endIf
		elseif(option == status_SETdeathdrops)
			if SuH_SETdeathdrops.GetValue()
				SuH_SETdeathdrops.SetValue(0)
				SetToggleOptionValue(status_SETdeathdrops, FALSE)
			else
				SuH_SETdeathdrops.SetValue(1)
				SetToggleOptionValue(status_SETdeathdrops, TRUE)
			endIf
		elseif(option == status_SETalwaysdrainkill)
			if SuH_SETalwaysdrainkill.GetValue()
				SuH_SETalwaysdrainkill.SetValue(0)
				SetToggleOptionValue(status_SETalwaysdrainkill, FALSE)
			else
				SuH_SETalwaysdrainkill.SetValue(1)
				SetToggleOptionValue(status_SETalwaysdrainkill, TRUE)
			endIf
		elseif(option == status_SETspecialdeath)
			if SuH_SETspecialdeath.GetValue()
				PlayerBase.SetEssential(False)
				;PlayerRef.SetNoBleedoutRecovery(True)
				SuH_SETspecialdeath.SetValue(0)
				SetToggleOptionValue(status_SETspecialdeath, FALSE)
			else
				PlayerBase.SetEssential(True)
				SuH_SETspecialdeath.SetValue(1)
				SetToggleOptionValue(status_SETspecialdeath, TRUE)
			endIf
		elseif(option == status_SETsdloseitems)
			if SuH_SETsdloseitems.GetValue()
				SuH_SETsdloseitems.SetValue(0)
				SetToggleOptionValue(status_SETsdloseitems, FALSE)
			else
				SuH_SETsdloseitems.SetValue(1)
				SetToggleOptionValue(status_SETsdloseitems, TRUE)
			endIf
		elseif(option == status_SETsdlosegold)
			if SuH_SETsdlosegold.GetValue()
				SuH_SETsdlosegold.SetValue(0)
				SetToggleOptionValue(status_SETsdlosegold, FALSE)
			else
				SuH_SETsdlosegold.SetValue(1)
				SetToggleOptionValue(status_SETsdlosegold, TRUE)
			endIf
		elseif(option == status_SETsdloseequip)
			if SuH_SETsdloseequip.GetValue()
				SuH_SETsdloseequip.SetValue(0)
				SetToggleOptionValue(status_SETsdloseequip, FALSE)
			else
				SuH_SETsdloseequip.SetValue(1)
				SetToggleOptionValue(status_SETsdloseequip, TRUE)
			endIf
		elseif(option == status_SETrestrictact)
			if SuH_SETrestrictact.GetValue()
				SuH_SETrestrictact.SetValue(0)
				SetToggleOptionValue(status_SETrestrictact, FALSE)
			else
				SuH_SETrestrictact.SetValue(1)
				SetToggleOptionValue(status_SETrestrictact, TRUE)
			endIf
		elseif(option == status_SETrandomdeathspawn)
			if SuH_SETrandomdeathspawn.GetValue()
				SuH_SETrandomdeathspawn.SetValue(0)
				SetToggleOptionValue(status_SETrandomdeathspawn, FALSE)
			else
				SuH_SETrandomdeathspawn.SetValue(1)
				SetToggleOptionValue(status_SETrandomdeathspawn, TRUE)
			endIf
		elseif(option == status_SETinvactmale)
			if SuH_SETinvactmale.GetValue()
				SuH_SETinvactmale.SetValue(0)
				SetToggleOptionValue(status_SETinvactmale, FALSE)
			else
				SuH_SETinvactmale.SetValue(1)
				SetToggleOptionValue(status_SETinvactmale, TRUE)
			endIf
		elseif(option == status_SETinvactfemale)
			if SuH_SETinvactfemale.GetValue()
				SuH_SETinvactfemale.SetValue(0)
				SetToggleOptionValue(status_SETinvactfemale, FALSE)
			else
				SuH_SETinvactfemale.SetValue(1)
				SetToggleOptionValue(status_SETinvactfemale, TRUE)
			endIf
		elseif(option == status_SETinvactmalecreature)
			if SuH_SETinvactmalecreature.GetValue()
				SuH_SETinvactmalecreature.SetValue(0)
				SetToggleOptionValue(status_SETinvactmalecreature, FALSE)
			else
				SuH_SETinvactmalecreature.SetValue(1)
				SetToggleOptionValue(status_SETinvactmalecreature, TRUE)
			endIf
		elseif(option == status_SETinvactfemalecreature)
			if SuH_SETinvactfemalecreature.GetValue()
				SuH_SETinvactfemalecreature.SetValue(0)
				SetToggleOptionValue(status_SETinvactfemalecreature, FALSE)
			else
				SuH_SETinvactfemalecreature.SetValue(1)
				SetToggleOptionValue(status_SETinvactfemalecreature, TRUE)
			endIf
		endIf
	;end/
	;ent/ Skill Levels
	elseIf(CurrentPage == "Skill Levels")
		if(option == skill_alchemy)
			int sp = SuH_PCSsp.GetValue() as int
			int alchemylvl = playerRef.GetBaseActorValue("alchemy") as int
			int alchemycost = Math.Ceiling(alchemylvl*0.1)
			if sp >= alchemycost
				sp -= alchemycost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("Alchemy")
				alchemylvl = playerRef.GetBaseActorValue("alchemy") as int
				alchemycost = Math.Ceiling(alchemylvl*0.1)
				SetTextOptionValue(skill_alchemy, alchemylvl+" ["+alchemycost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_alteration)
			int sp = SuH_PCSsp.GetValue() as int
			int alterationlvl = playerRef.GetBaseActorValue("alteration") as int
			int alterationcost = Math.Ceiling(alterationlvl*0.1)
			if sp >= alterationcost
				sp -= alterationcost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("alteration")
				alterationlvl = playerRef.GetBaseActorValue("alteration") as int
				alterationcost = Math.Ceiling(alterationlvl*0.1)
				SetTextOptionValue(skill_alteration, alterationlvl+" ["+alterationcost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_block)
			int sp = SuH_PCSsp.GetValue() as int
			int blocklvl = playerRef.GetBaseActorValue("block") as int
			int blockcost = Math.Ceiling(blocklvl*0.1)
			if sp >= blockcost
				sp -= blockcost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("block")
				blocklvl = playerRef.GetBaseActorValue("block") as int
				blockcost = Math.Ceiling(blocklvl*0.1)
				SetTextOptionValue(skill_block, blocklvl+" ["+blockcost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_conjuration)
			int sp = SuH_PCSsp.GetValue() as int
			int conjurationlvl = playerRef.GetBaseActorValue("conjuration") as int
			int conjurationcost = Math.Ceiling(conjurationlvl*0.1)
			if sp >= conjurationcost
				sp -= conjurationcost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("conjuration")
				conjurationlvl = playerRef.GetBaseActorValue("conjuration") as int
				conjurationcost = Math.Ceiling(conjurationlvl*0.1)
				SetTextOptionValue(skill_conjuration, conjurationlvl+" ["+conjurationcost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_destruction)
			int sp = SuH_PCSsp.GetValue() as int
			int destructionlvl = playerRef.GetBaseActorValue("destruction") as int
			int destructioncost = Math.Ceiling(destructionlvl*0.1)
			if sp >= destructioncost
				sp -= destructioncost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("destruction")
				destructionlvl = playerRef.GetBaseActorValue("destruction") as int
				destructioncost = Math.Ceiling(destructionlvl*0.1)
				SetTextOptionValue(skill_destruction, destructionlvl+" ["+destructioncost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_enchanting)
			int sp = SuH_PCSsp.GetValue() as int
			int enchantinglvl = playerRef.GetBaseActorValue("enchanting") as int
			int enchantingcost = Math.Ceiling(enchantinglvl*0.1)
			if sp >= enchantingcost
				sp -= enchantingcost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("enchanting")
				enchantinglvl = playerRef.GetBaseActorValue("enchanting") as int
				enchantingcost = Math.Ceiling(enchantinglvl*0.1)
				SetTextOptionValue(skill_enchanting, enchantinglvl+" ["+enchantingcost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_heavyarmor)
			int sp = SuH_PCSsp.GetValue() as int
			int heavyarmorlvl = playerRef.GetBaseActorValue("heavyarmor") as int
			int heavyarmorcost = Math.Ceiling(heavyarmorlvl*0.1)
			if sp >= heavyarmorcost
				sp -= heavyarmorcost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("heavyarmor")
				heavyarmorlvl = playerRef.GetBaseActorValue("heavyarmor") as int
				heavyarmorcost = Math.Ceiling(heavyarmorlvl*0.1)
				SetTextOptionValue(skill_heavyarmor, heavyarmorlvl+" ["+heavyarmorcost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_illusion)
			int sp = SuH_PCSsp.GetValue() as int
			int illusionlvl = playerRef.GetBaseActorValue("illusion") as int
			int illusioncost = Math.Ceiling(illusionlvl*0.1)
			if sp >= illusioncost
				sp -= illusioncost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("illusion")
				illusionlvl = playerRef.GetBaseActorValue("illusion") as int
				illusioncost = Math.Ceiling(illusionlvl*0.1)
				SetTextOptionValue(skill_illusion, illusionlvl+" ["+illusioncost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_lightarmor)
			int sp = SuH_PCSsp.GetValue() as int
			int lightarmorlvl = playerRef.GetBaseActorValue("lightarmor") as int
			int lightarmorcost = Math.Ceiling(lightarmorlvl*0.1)
			if sp >= lightarmorcost
				sp -= lightarmorcost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("lightarmor")
				lightarmorlvl = playerRef.GetBaseActorValue("lightarmor") as int
				lightarmorcost = Math.Ceiling(lightarmorlvl*0.1)
				SetTextOptionValue(skill_lightarmor, lightarmorlvl+" ["+lightarmorcost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_lockpicking)
			int sp = SuH_PCSsp.GetValue() as int
			int lockpickinglvl = playerRef.GetBaseActorValue("lockpicking") as int
			int lockpickingcost = Math.Ceiling(lockpickinglvl*0.1)
			if sp >= lockpickingcost
				sp -= lockpickingcost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("lockpicking")
				lockpickinglvl = playerRef.GetBaseActorValue("lockpicking") as int
				lockpickingcost = Math.Ceiling(lockpickinglvl*0.1)
				SetTextOptionValue(skill_lockpicking, lockpickinglvl+" ["+lockpickingcost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_marksman)
			int sp = SuH_PCSsp.GetValue() as int
			int marksmanlvl = playerRef.GetBaseActorValue("marksman") as int
			int marksmancost = Math.Ceiling(marksmanlvl*0.1)
			if sp >= marksmancost
				sp -= marksmancost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("marksman")
				marksmanlvl = playerRef.GetBaseActorValue("marksman") as int
				marksmancost = Math.Ceiling(marksmanlvl*0.1)
				SetTextOptionValue(skill_marksman, marksmanlvl+" ["+marksmancost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_onehanded)
			int sp = SuH_PCSsp.GetValue() as int
			int onehandedlvl = playerRef.GetBaseActorValue("onehanded") as int
			int onehandedcost = Math.Ceiling(onehandedlvl*0.1)
			if sp >= onehandedcost
				sp -= onehandedcost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("onehanded")
				onehandedlvl = playerRef.GetBaseActorValue("onehanded") as int
				onehandedcost = Math.Ceiling(onehandedlvl*0.1)
				SetTextOptionValue(skill_onehanded, onehandedlvl+" ["+onehandedcost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_pickpocket)
			int sp = SuH_PCSsp.GetValue() as int
			int pickpocketlvl = playerRef.GetBaseActorValue("pickpocket") as int
			int pickpocketcost = Math.Ceiling(pickpocketlvl*0.1)
			if sp >= pickpocketcost
				sp -= pickpocketcost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("pickpocket")
				pickpocketlvl = playerRef.GetBaseActorValue("pickpocket") as int
				pickpocketcost = Math.Ceiling(pickpocketlvl*0.1)
				SetTextOptionValue(skill_pickpocket, pickpocketlvl+" ["+pickpocketcost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_restoration)
			int sp = SuH_PCSsp.GetValue() as int
			int restorationlvl = playerRef.GetBaseActorValue("restoration") as int
			int restorationcost = Math.Ceiling(restorationlvl*0.1)
			if sp >= restorationcost
				sp -= restorationcost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("restoration")
				restorationlvl = playerRef.GetBaseActorValue("restoration") as int
				restorationcost = Math.Ceiling(restorationlvl*0.1)
				SetTextOptionValue(skill_restoration, restorationlvl+" ["+restorationcost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_smithing)
			int sp = SuH_PCSsp.GetValue() as int
			int smithinglvl = playerRef.GetBaseActorValue("smithing") as int
			int smithingcost = Math.Ceiling(smithinglvl*0.1)
			if sp >= smithingcost
				sp -= smithingcost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("smithing")
				smithinglvl = playerRef.GetBaseActorValue("smithing") as int
				smithingcost = Math.Ceiling(smithinglvl*0.1)
				SetTextOptionValue(skill_smithing, smithinglvl+" ["+smithingcost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_sneak)
			int sp = SuH_PCSsp.GetValue() as int
			int sneaklvl = playerRef.GetBaseActorValue("sneak") as int
			int sneakcost = Math.Ceiling(sneaklvl*0.1)
			if sp >= sneakcost
				sp -= sneakcost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("sneak")
				sneaklvl = playerRef.GetBaseActorValue("sneak") as int
				sneakcost = Math.Ceiling(sneaklvl*0.1)
				SetTextOptionValue(skill_sneak, sneaklvl+" ["+sneakcost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_speechcraft)
			int sp = SuH_PCSsp.GetValue() as int
			int speechcraftlvl = playerRef.GetBaseActorValue("speechcraft") as int
			int speechcraftcost = Math.Ceiling(speechcraftlvl*0.1)
			if sp >= speechcraftcost
				sp -= speechcraftcost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("speechcraft")
				speechcraftlvl = playerRef.GetBaseActorValue("speechcraft") as int
				speechcraftcost = Math.Ceiling(speechcraftlvl*0.1)
				SetTextOptionValue(skill_speechcraft, speechcraftlvl+" ["+speechcraftcost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		elseif(option == skill_twohanded)
			int sp = SuH_PCSsp.GetValue() as int
			int twohandedlvl = playerRef.GetBaseActorValue("twohanded") as int
			int twohandedcost = Math.Ceiling(twohandedlvl*0.1)
			if sp >= twohandedcost
				sp -= twohandedcost
				SuH_PCSsp.SetValue(sp)
				Game.IncrementSkill("twohanded")
				twohandedlvl = playerRef.GetBaseActorValue("twohanded") as int
				twohandedcost = Math.Ceiling(twohandedlvl*0.1)
				SetTextOptionValue(skill_twohanded, twohandedlvl+" ["+twohandedcost+" SP]")
				SetTextOptionValue(skill_sp, SuH_PCSsp.GetValue() as int)
			endIf
		endIf
	;end/
	;ent/ Heart Levels
	elseIf(CurrentPage == "Heart Levels")
		if(option == heart_caphealth)
			int xp = SuH_PCSxp.GetValue() as int
			int caphealth = SuH_PCScaphealth.GetValue() as int
			int caphealthitem = SuH_PCScaphealthitem.GetValue() as int
			int caphealthcost = Math.Floor(((caphealth-caphealthitem)*0.12)*15+20)
			if xp >= caphealthcost
				xp -= caphealthcost
				SuH_PCSxp.SetValue(xp)
				SuH_PCScaphealth.SetValue(caphealth+1)
				caphealth = SuH_PCScaphealth.GetValue() as int
				caphealthcost = Math.Floor((caphealth*0.12)*15+20)
				int plvl = PlayerRef.GetLevel() as int
				int caphealthdisplay = Math.Floor(SuH_PCScaphealth.GetValue()+plvl*4)
				_Fun.BDSMcalc("b", 1)
				SetTextOptionValue(heart_caphealth, caphealthdisplay+" ["+caphealthcost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		elseif(option == heart_capmagicka)
			int xp = SuH_PCSxp.GetValue() as int
			int capmagicka = SuH_PCScapmagicka.GetValue() as int
			int capmagickaitem = SuH_PCScapmagickaitem.GetValue() as int
			int capmagickacost = Math.Floor(((capmagicka-capmagickaitem)*0.12)*15+20)
			if xp >= capmagickacost
				xp -= capmagickacost
				SuH_PCSxp.SetValue(xp)
				SuH_PCScapmagicka.SetValue(capmagicka+1)
				capmagicka = SuH_PCScapmagicka.GetValue() as int
				capmagickacost = Math.Floor((capmagicka*0.12)*15+20)
				int plvl = PlayerRef.GetLevel() as int
				int capmagickadisplay = Math.Floor(SuH_PCScapmagicka.GetValue()+plvl*3)
				_Fun.BDSMcalc("m", 1)
				SetTextOptionValue(heart_capmagicka, capmagickadisplay+" ["+capmagickacost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		elseif(option == heart_capstamina)
			int xp = SuH_PCSxp.GetValue() as int
			int capstamina = SuH_PCScapstamina.GetValue() as int
			int capstaminaitem = SuH_PCScapstaminaitem.GetValue() as int
			int capstaminacost = Math.Floor(((capstamina-capstaminaitem)*0.12)*15+20)
			if xp >= capstaminacost
				xp -= capstaminacost
				SuH_PCSxp.SetValue(xp)
				SuH_PCScapstamina.SetValue(capstamina+1)
				capstamina = SuH_PCScapstamina.GetValue() as int
				capstaminacost = Math.Floor((capstamina*0.12)*15+20)
				int plvl = PlayerRef.GetLevel() as int
				int capstaminadisplay = Math.Floor(SuH_PCScapstamina.GetValue()+plvl*3)
				_Fun.BDSMcalc("s", 1)
				SetTextOptionValue(heart_capstamina, capstaminadisplay+" ["+capstaminacost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		elseif(option == heart_stacksex)
			int xp = SuH_PCSxp.GetValue() as int
			int stacksex = SuH_PCSstackmaxsex.GetValue() as int
			int stacksexcost = Math.Floor(stacksex*2.8*240)
			if xp >= stacksexcost
				xp -= stacksexcost
				SuH_PCSxp.SetValue(xp)
				SuH_PCSstackmaxsex.SetValue(stacksex+1)
				stacksex = SuH_PCSstackmaxsex.GetValue() as int
				stacksexcost = Math.Floor(stacksex*2.8*240)
				_Fun.BDSMcalc("d", 5)
				SetTextOptionValue(heart_stacksex, stacksex+" ["+stacksexcost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		elseif(option == heart_stacksperm)
			int xp = SuH_PCSxp.GetValue() as int
			int stacksperm = SuH_PCSstackmaxsperm.GetValue() as int
			int stackspermcost = Math.Floor(stacksperm*2.8*240)
			if xp >= stackspermcost
				xp -= stackspermcost
				SuH_PCSxp.SetValue(xp)
				SuH_PCSstackmaxsperm.SetValue(stacksperm+1)
				stacksperm = SuH_PCSstackmaxsperm.GetValue() as int
				stackspermcost = Math.Floor(stacksperm*2.8*240)
				_Fun.BDSMcalc("d", 5)
				SetTextOptionValue(heart_stacksperm, stacksperm+" ["+stackspermcost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		elseif(option == heart_stackmilk)
			int xp = SuH_PCSxp.GetValue() as int
			int stackmilk = SuH_PCSstackmaxmilk.GetValue() as int
			int stackmilkcost = Math.Floor(stackmilk*2.8*240)
			if xp >= stackmilkcost
				xp -= stackmilkcost
				SuH_PCSxp.SetValue(xp)
				SuH_PCSstackmaxmilk.SetValue(stackmilk+1)
				stackmilk = SuH_PCSstackmaxmilk.GetValue() as int
				stackmilkcost = Math.Floor(stackmilk*2.8*240)
				_Fun.BDSMcalc("d", 5)
				SetTextOptionValue(heart_stackmilk, stackmilk+" ["+stackmilkcost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		elseif(option == heart_absorbhealth)
			int xp = SuH_PCSxp.GetValue() as int
			int absorbhealth = SuH_PCSabsorbhealth.GetValue() as int
			int absorbhealthcost = Math.Floor(absorbhealth*2.2*280)
			if xp >= absorbhealthcost
				xp -= absorbhealthcost
				SuH_PCSxp.SetValue(xp)
				SuH_PCSabsorbhealth.SetValue(absorbhealth+1)
				absorbhealth = SuH_PCSabsorbhealth.GetValue() as int
				absorbhealthcost = Math.Floor(absorbhealth*2.2*280)
				_Fun.BDSMcalc("b", 5)
				SetTextOptionValue(heart_absorbhealth, absorbhealth+" ["+absorbhealthcost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		elseif(option == heart_absorbmagicka)
			int xp = SuH_PCSxp.GetValue() as int
			int absorbmagicka = SuH_PCSabsorbmagicka.GetValue() as int
			int absorbmagickacost = Math.Floor(absorbmagicka*2.2*280)
			if xp >= absorbmagickacost
				xp -= absorbmagickacost
				SuH_PCSxp.SetValue(xp)
				SuH_PCSabsorbmagicka.SetValue(absorbmagicka+1)
				absorbmagicka = SuH_PCSabsorbmagicka.GetValue() as int
				absorbmagickacost = Math.Floor(absorbmagicka*2.2*280)
				_Fun.BDSMcalc("m", 5)
				SetTextOptionValue(heart_absorbmagicka, absorbmagicka+" ["+absorbmagickacost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		elseif(option == heart_absorbstamina)
			int xp = SuH_PCSxp.GetValue() as int
			int absorbstamina = SuH_PCSabsorbstamina.GetValue() as int
			int absorbstaminacost = Math.Floor(absorbstamina*2.2*280)
			if xp >= absorbstaminacost
				xp -= absorbstaminacost
				SuH_PCSxp.SetValue(xp)
				SuH_PCSabsorbstamina.SetValue(absorbstamina+1)
				absorbstamina = SuH_PCSabsorbstamina.GetValue() as int
				absorbstaminacost = Math.Floor(absorbstamina*2.2*280)
				_Fun.BDSMcalc("s", 5)
				SetTextOptionValue(heart_absorbstamina, absorbstamina+" ["+absorbstaminacost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		elseif(option == heart_spermhealth)
			int xp = SuH_PCSxp.GetValue() as int
			int spermhealth = SuH_PCSspermhealth.GetValue() as int
			int spermhealthcost = Math.Floor(spermhealth*1.8*200)
			if xp >= spermhealthcost
				xp -= spermhealthcost
				SuH_PCSxp.SetValue(xp)
				SuH_PCSspermhealth.SetValue(spermhealth+1)
				spermhealth = SuH_PCSspermhealth.GetValue() as int
				spermhealthcost = Math.Floor(spermhealth*1.8*200)
				_Fun.BDSMcalc("b", 2)
				SetTextOptionValue(heart_spermhealth, spermhealth+" ["+spermhealthcost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		elseif(option == heart_spermmagicka)
			int xp = SuH_PCSxp.GetValue() as int
			int spermmagicka = SuH_PCSspermmagicka.GetValue() as int
			int spermmagickacost = Math.Floor(spermmagicka*1.8*200)
			if xp >= spermmagickacost
				xp -= spermmagickacost
				SuH_PCSxp.SetValue(xp)
				SuH_PCSspermmagicka.SetValue(spermmagicka+1)
				spermmagicka = SuH_PCSspermmagicka.GetValue() as int
				spermmagickacost = Math.Floor(spermmagicka*1.8*200)
				_Fun.BDSMcalc("m", 2)
				SetTextOptionValue(heart_spermmagicka, spermmagicka+" ["+spermmagickacost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		elseif(option == heart_spermstamina)
			int xp = SuH_PCSxp.GetValue() as int
			int spermstamina = SuH_PCSspermstamina.GetValue() as int
			int spermstaminacost = Math.Floor(spermstamina*1.8*200)
			if xp >= spermstaminacost
				xp -= spermstaminacost
				SuH_PCSxp.SetValue(xp)
				SuH_PCSspermstamina.SetValue(spermstamina+1)
				spermstamina = SuH_PCSspermstamina.GetValue() as int
				spermstaminacost = Math.Floor(spermstamina*1.8*200)
				_Fun.BDSMcalc("s", 2)
				SetTextOptionValue(heart_spermstamina, spermstamina+" ["+spermstaminacost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		elseif(option == heart_milkhealth)
			int xp = SuH_PCSxp.GetValue() as int
			int milkhealth = SuH_PCSmilkhealth.GetValue() as int
			int milkhealthcost = Math.Floor(milkhealth*1.8*200)
			if xp >= milkhealthcost
				xp -= milkhealthcost
				SuH_PCSxp.SetValue(xp)
				SuH_PCSmilkhealth.SetValue(milkhealth+1)
				milkhealth = SuH_PCSmilkhealth.GetValue() as int
				milkhealthcost = Math.Floor(milkhealth*1.8*200)
				_Fun.BDSMcalc("b", 2)
				SetTextOptionValue(heart_milkhealth, milkhealth+" ["+milkhealthcost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		elseif(option == heart_milkmagicka)
			int xp = SuH_PCSxp.GetValue() as int
			int milkmagicka = SuH_PCSmilkmagicka.GetValue() as int
			int milkmagickacost = Math.Floor(milkmagicka*1.8*200)
			if xp >= milkmagickacost
				xp -= milkmagickacost
				SuH_PCSxp.SetValue(xp)
				SuH_PCSmilkmagicka.SetValue(milkmagicka+1)
				milkmagicka = SuH_PCSmilkmagicka.GetValue() as int
				milkmagickacost = Math.Floor(milkmagicka*1.8*200)
				_Fun.BDSMcalc("m", 2)
				SetTextOptionValue(heart_milkmagicka, milkmagicka+" ["+milkmagickacost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		elseif(option == heart_milkstamina)
			int xp = SuH_PCSxp.GetValue() as int
			int milkstamina = SuH_PCSmilkstamina.GetValue() as int
			int milkstaminacost = Math.Floor(milkstamina*1.8*200)
			if xp >= milkstaminacost
				xp -= milkstaminacost
				SuH_PCSxp.SetValue(xp)
				SuH_PCSmilkstamina.SetValue(milkstamina+1)
				milkstamina = SuH_PCSmilkstamina.GetValue() as int
				milkstaminacost = Math.Floor(milkstamina*1.8*200)
				_Fun.BDSMcalc("s", 2)
				SetTextOptionValue(heart_milkstamina, milkstamina+" ["+milkstaminacost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		elseif(option == heart_xpgain)
			int xp = SuH_PCSxp.GetValue() as int
			int xpgain = SuH_PCSxpgain.GetValue() as int
			int xpgainitem = SuH_PCSxpgainitem.GetValue() as int
			int xpgaincost = Math.Floor(((xpgain - (99+xpgainitem))*2.0*350)*0.5)
			if xp >= xpgaincost
				xp -= xpgaincost
				SuH_PCSxp.SetValue(xp)
				xpgain += 2
				SuH_PCSxpgain.SetValue(xpgain)
				int xpgaindisplay = xpgain
				xpgaincost = Math.Floor(((xpgain - (99+xpgainitem))*2.0*350)*0.5)
				_Fun.BDSMcalc("d", 10)
				SetTextOptionValue(heart_xpgain, xpgaindisplay+"% ["+xpgaincost+" XP]")
				SetTextOptionValue(heart_xp, xp)
			endIf
		endIf
	;end/
	;ent/ Passives
	elseIf(CurrentPage == "Passives") ; NOTE T1=12 T2=24 T3=30
				int xp = SuH_PCSxp.GetValue() as int
				int b = SuH_PCSbpoint.GetValue() as int
				int d = SuH_PCSdpoint.GetValue() as int
				int s = SuH_PCSspoint.GetValue() as int
				int m = SuH_PCSmpoint.GetValue() as int
				int bdsm = SuH_PCSbdsm.GetValue() as int
				int bdsmspecial = SuH_PCSbdsmspecial.GetValue() as int
		if(option == spell_xp)
				int bdsmrank = SuH_rank_bdsm.GetValue() as int
				int bdsmrankcost = Math.Floor((1200*bdsmrank)*1.6+1200)
			if xp >= bdsmrankcost
				b += 5
				d += 5
				s += 5
				m += 5
				bdsm += 20
				SuH_PCSbpoint.SetValue(b)
				SuH_PCSdpoint.SetValue(d)
				SuH_PCSspoint.SetValue(s)
				SuH_PCSmpoint.SetValue(m)
				SuH_PCSbdsm.SetValue(bdsm)
				xp -= bdsmrankcost
				SuH_PCSxp.SetValue(xp)
				bdsmrank += 1
				SuH_rank_bdsm.SetValue(bdsmrank)
				bdsmrankcost = Math.Floor((1200*bdsmrank)*1.6+1200)
				;debug.MessageBox("BodyDesireSoulMind Rating has been increased!")
				SetTextOptionValue(spell_xp, bdsmrankcost+" XP")
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
			endIf
		elseif(option == spell_reset)
			b = Math.Floor((SuH_PCScaphealth.GetValue() - 100)+((SuH_PCSabsorbhealth.GetValue() - 1)*5)+((SuH_PCSspermhealth.GetValue() - 1)*2)+((SuH_PCSmilkhealth.GetValue() - 1)*2)+(SuH_rank_bdsm.GetValue() * 5)+(SuH_perk_orgasml.GetValue() * 3)) 
			d = Math.Floor(((SuH_PCSstackmaxsex.GetValue()+SuH_PCSstackmaxsperm.GetValue()+SuH_PCSstackmaxmilk.GetValue()+(SuH_PCSxpgain.GetValue()- 100) - 3)*5)+(SuH_rank_bdsm.GetValue() * 5)+(SuH_perk_orgasml.GetValue() * 3))
			s = Math.Floor((SuH_PCScapstamina.GetValue() - 100)+((SuH_PCSabsorbstamina.GetValue() - 1)*5)+((SuH_PCSspermstamina.GetValue() - 1)*2)+((SuH_PCSmilkstamina.GetValue() - 1)*2)+(SuH_rank_bdsm.GetValue() * 5)+(SuH_perk_orgasml.GetValue() * 3))
			m = Math.Floor((SuH_PCScapmagicka.GetValue() - 100)+((SuH_PCSabsorbmagicka.GetValue() - 1)*5)+((SuH_PCSspermmagicka.GetValue() - 1)*2)+((SuH_PCSmilkmagicka.GetValue() - 1)*2)+(SuH_rank_bdsm.GetValue() * 5)+(SuH_perk_orgasml.GetValue() * 3))
			SuH_PCSbpoint.SetValue(b)
			SuH_PCSdpoint.SetValue(d)
			SuH_PCSspoint.SetValue(s)
			SuH_PCSmpoint.SetValue(m)
			int bdsmrating = b+d+s+m
			SuH_PCSbdsm.SetValue(bdsmrating)
			if d >= b && d >= s && d >= m
				SuH_PCSbdsmspecial.SetValue(2)
			elseif b >= s && b >= m
				SuH_PCSbdsmspecial.SetValue(1)
			elseif s >= m
				SuH_PCSbdsmspecial.SetValue(3)
			else
				SuH_PCSbdsmspecial.SetValue(4)
			endIf
			SuH_rank_masochist.SetValue(0)
			SuH_rank_masochist2.SetValue(0)
			SuH_rank_perfectorgasm.SetValue(0)
			SuH_rank_perfectorgasm2.SetValue(0)
			SuH_rank_giftedconsent.SetValue(0)
			SuH_rank_lusciousliquids.SetValue(0)
			SuH_rank_lusciousliquids2.SetValue(0)
			SuH_rank_forcemaster.SetValue(0)
			SuH_rank_savingessence.SetValue(0)
			SuH_rank_savingessence2.SetValue(0)
			SuH_rank_valuestacker.SetValue(0)
			SuH_rank_selfstacker.SetValue(0)
			SuH_rank_deviouspartner.SetValue(0)
			SuH_rank_deviouspartner2.SetValue(0)
			SuH_rank_regalglow.SetValue(0)
			SuH_rank_formalbeauty.SetValue(0)
			SuH_rank_formalbeauty2.SetValue(0)
			SuH_rank_violence.SetValue(0)
			SuH_rank_violence2.SetValue(0)
			SuH_rank_violence3.SetValue(0)
			SuH_rank_seducer.SetValue(0)
			playerRef.UnequipItem(SuH_armor_regalglow, abSilent=true)
			debug.MessageBox("Passives have been reset to Level 0 and BDSM Rating has been re-calculated.")
			ForcePageReset()
		elseif(option == spell_perfectorgasmrank)
				int perfectorgasmrank = SuH_rank_perfectorgasm.GetValue() as int
				int perfectorgasmrank2 = SuH_rank_perfectorgasm2.GetValue() as int
				int perfectorgasmrankall = perfectorgasmrank + perfectorgasmrank2
				int perfectorgasmcost = Math.Floor(12+(perfectorgasmrankall*0.1*12))
			if	perfectorgasmrank >= 95
				debug.MessageBox("Perfect Orgasm has reached its max rank on this path!")
			elseif bdsm >= perfectorgasmcost
				d += perfectorgasmcost
				bdsm -= perfectorgasmcost
				SuH_PCSdpoint.SetValue(d)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				perfectorgasmrank += 1
				SuH_rank_perfectorgasm.SetValue(perfectorgasmrank)
				perfectorgasmrankall = perfectorgasmrank + perfectorgasmrank2
				perfectorgasmcost = Math.Floor(12+(perfectorgasmrankall*0.1*12))
				SetTextOptionValue(spell_perfectorgasm, "rank "+ perfectorgasmrankall)
				SetTextOptionValue(spell_perfectorgasmrank, perfectorgasmcost)
				SetTextOptionValue(spell_perfectorgasmrank2, perfectorgasmcost)
			endIf
		elseif(option == spell_perfectorgasmrank2)
				int perfectorgasmrank = SuH_rank_perfectorgasm.GetValue() as int
				int perfectorgasmrank2 = SuH_rank_perfectorgasm2.GetValue() as int
				int perfectorgasmrankall = perfectorgasmrank + perfectorgasmrank2
				int perfectorgasmcost = Math.Floor(12+(perfectorgasmrankall*0.1*12))
			if	perfectorgasmrank2 >= 20
				debug.MessageBox("Perfect Orgasm has reached its max rank on this path!")
			elseif bdsm >= perfectorgasmcost
				d += perfectorgasmcost
				bdsm -= perfectorgasmcost
				SuH_PCSdpoint.SetValue(d)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				perfectorgasmrank2 += 1
				SuH_rank_perfectorgasm2.SetValue(perfectorgasmrank2)
				perfectorgasmrankall = perfectorgasmrank + perfectorgasmrank2
				perfectorgasmcost = Math.Floor(12+(perfectorgasmrankall*0.1*12))
				SetTextOptionValue(spell_perfectorgasm, "rank "+ perfectorgasmrankall)
				SetTextOptionValue(spell_perfectorgasmrank, perfectorgasmcost)
				SetTextOptionValue(spell_perfectorgasmrank2, perfectorgasmcost)
			endIf
		elseif(option == spell_lusciousliquidsrank)
				int lusciousliquidsrank = SuH_rank_lusciousliquids.GetValue() as int
				int lusciousliquidsrank2 = SuH_rank_lusciousliquids2.GetValue() as int
				int lusciousliquidsrankall = lusciousliquidsrank + lusciousliquidsrank2
				int lusciousliquidscost = Math.Floor(24+(lusciousliquidsrankall*0.1*24))
			if bdsm >= lusciousliquidscost
				s += lusciousliquidscost
				bdsm -= lusciousliquidscost
				SuH_PCSspoint.SetValue(s)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				lusciousliquidsrank += 1
				SuH_rank_lusciousliquids.SetValue(lusciousliquidsrank)
				lusciousliquidsrankall = lusciousliquidsrank + lusciousliquidsrank2
				lusciousliquidscost = Math.Floor(24+(lusciousliquidsrankall*0.1*24))
				SetTextOptionValue(spell_lusciousliquids, "rank "+ lusciousliquidsrankall)
				SetTextOptionValue(spell_lusciousliquidsrank, lusciousliquidscost)
				SetTextOptionValue(spell_lusciousliquidsrank2, lusciousliquidscost)
			endIf
		elseif(option == spell_lusciousliquidsrank2)
				int lusciousliquidsrank = SuH_rank_lusciousliquids.GetValue() as int
				int lusciousliquidsrank2 = SuH_rank_lusciousliquids2.GetValue() as int
				int lusciousliquidsrankall = lusciousliquidsrank + lusciousliquidsrank2
				int lusciousliquidscost = Math.Floor(24+(lusciousliquidsrankall*0.1*24))
			if bdsm >= lusciousliquidscost
				m += lusciousliquidscost
				bdsm -= lusciousliquidscost
				SuH_PCSmpoint.SetValue(m)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				lusciousliquidsrank2 += 1
				SuH_rank_lusciousliquids2.SetValue(lusciousliquidsrank2)
				lusciousliquidsrankall = lusciousliquidsrank + lusciousliquidsrank2
				lusciousliquidscost = Math.Floor(24+(lusciousliquidsrankall*0.1*24))
				SetTextOptionValue(spell_lusciousliquids, "rank "+ lusciousliquidsrankall)
				SetTextOptionValue(spell_lusciousliquidsrank, lusciousliquidscost)
				SetTextOptionValue(spell_lusciousliquidsrank2, lusciousliquidscost)
			endIf
		elseif(option == spell_masochistrank)
				int masochistrank = SuH_rank_masochist.GetValue() as int
				int masochistrank2 = SuH_rank_masochist2.GetValue() as int
				int masochistrankall = masochistrank + masochistrank2
				int masochistcost = Math.Floor(12+(masochistrankall*0.1*12))
			if bdsm >= masochistcost
				b += masochistcost
				bdsm -= masochistcost
				SuH_PCSbpoint.SetValue(b)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				masochistrank += 1
				SuH_rank_masochist.SetValue(masochistrank)
				masochistrankall = masochistrank + masochistrank2
				masochistcost = Math.Floor(12+(masochistrankall*0.1*12))
				SetTextOptionValue(spell_masochist, "rank "+masochistrankall)
				SetTextOptionValue(spell_masochistrank, masochistcost)
				SetTextOptionValue(spell_masochistrank2, masochistcost)
			endif
		elseif(option == spell_masochistrank2)
				int masochistrank = SuH_rank_masochist.GetValue() as int
				int masochistrank2 = SuH_rank_masochist2.GetValue() as int
				int masochistrankall = masochistrank + masochistrank2
				int masochistcost = Math.Floor(12+(masochistrankall*0.1*12))
			if bdsm >= masochistcost
				s += masochistcost
				bdsm -= masochistcost
				SuH_PCSspoint.SetValue(s)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				masochistrank2 += 1
				SuH_rank_masochist2.SetValue(masochistrank2)
				masochistrankall = masochistrank + masochistrank2
				masochistcost = Math.Floor(12+(masochistrankall*0.1*12))
				SetTextOptionValue(spell_masochist, "rank "+masochistrankall)
				SetTextOptionValue(spell_masochistrank, masochistcost)
				SetTextOptionValue(spell_masochistrank2, masochistcost)
			endif
		elseif(option == spell_selfstackerrank)
				int selfstackerrank = SuH_rank_selfstacker.GetValue() as int
				int selfstackercost = Math.Floor(30+(selfstackerrank*0.1*30))
			if bdsm >= selfstackercost
				d += selfstackercost
				bdsm -= selfstackercost
				SuH_PCSdpoint.SetValue(d)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				selfstackerrank += 1
				SuH_rank_selfstacker.SetValue(selfstackerrank)
				selfstackercost = Math.Floor(30+(selfstackerrank*0.1*30))
				SetTextOptionValue(spell_selfstacker, "rank "+selfstackerrank)
				SetTextOptionValue(spell_selfstackerrank, selfstackercost)
			endif
		elseif(option == spell_valuestackerrank)
				int valuestackerrank = SuH_rank_valuestacker.GetValue() as int
				int valuestackercost = Math.Floor(30+(valuestackerrank*0.1*30))
			if bdsm >= valuestackercost
				d += valuestackercost
				bdsm -= valuestackercost
				SuH_PCSdpoint.SetValue(d)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				valuestackerrank += 1
				SuH_rank_valuestacker.SetValue(valuestackerrank)
				valuestackercost = Math.Floor(30+(valuestackerrank*0.1*30))
				SetTextOptionValue(spell_valuestacker, "rank "+valuestackerrank)
				SetTextOptionValue(spell_valuestackerrank, valuestackercost)
			endif
		elseif(option == spell_savingessencerank)
				int savingessencerank = SuH_rank_savingessence.GetValue() as int
				int savingessencerank2 = SuH_rank_savingessence2.GetValue() as int
				int savingessencerankall = savingessencerank + savingessencerank2
				int savingessencecost = Math.Floor(30+(savingessencerankall*0.1*30))
			if bdsm >= savingessencecost
				b += savingessencecost
				bdsm -= savingessencecost
				SuH_PCSbpoint.SetValue(b)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				savingessencerank += 1
				savingessencerankall += 1
				SuH_rank_savingessence.SetValue(savingessencerank)
				savingessencecost = Math.Floor(30+(savingessencerankall*0.1*30))
				SetTextOptionValue(spell_savingessence, "rank "+savingessencerankall)
				SetTextOptionValue(spell_savingessencerank, savingessencecost)
				SetTextOptionValue(spell_savingessencerank2, savingessencecost)
			endif
		elseif(option == spell_savingessencerank2)
				int savingessencerank = SuH_rank_savingessence.GetValue() as int
				int savingessencerank2 = SuH_rank_savingessence2.GetValue() as int
				int savingessencerankall = savingessencerank + savingessencerank2
				int savingessencecost = Math.Floor(30+(savingessencerankall*0.1*30))
			if savingessencerank2 >= 19
				debug.MessageBox("Saving Essence has reached its max rank on this path!")
			elseif bdsm >= savingessencecost
				m += savingessencecost
				bdsm -= savingessencecost
				SuH_PCSmpoint.SetValue(m)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				savingessencerank2 += 1
				savingessencerankall += 1
				SuH_rank_savingessence2.SetValue(savingessencerank2)
				savingessencecost = Math.Floor(30+(savingessencerankall*0.1*30))
				SetTextOptionValue(spell_savingessence, "rank "+savingessencerankall)
				SetTextOptionValue(spell_savingessencerank, savingessencecost)
				SetTextOptionValue(spell_savingessencerank2, savingessencecost)
			endif
		elseif(option == spell_giftedconsentrank)
				int giftedconsentrank = SuH_rank_giftedconsent.GetValue() as int
				int giftedconsentcost = Math.Floor(12+(giftedconsentrank*0.1*12))
			if bdsm >= giftedconsentcost
				m += giftedconsentcost
				bdsm -= giftedconsentcost
				SuH_PCSmpoint.SetValue(m)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				giftedconsentrank += 1
				SuH_rank_giftedconsent.SetValue(giftedconsentrank)
				giftedconsentcost = Math.Floor(12+(giftedconsentrank*0.1*12))
				SetTextOptionValue(spell_giftedconsent, "rank "+giftedconsentrank)
				SetTextOptionValue(spell_giftedconsentrank, giftedconsentcost)
			endif
		elseif(option == spell_forcemasterrank)
				int forcemasterrank = SuH_rank_forcemaster.GetValue() as int
				int forcemastercost = Math.Floor(30+(forcemasterrank*0.1*30))
			if forcemasterrank >= 49
				debug.MessageBox("Force Master has reached its max rank!")
			elseif bdsm >= forcemastercost
				m += forcemastercost
				bdsm -= forcemastercost
				SuH_PCSmpoint.SetValue(m)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				forcemasterrank += 1
				SuH_rank_forcemaster.SetValue(forcemasterrank)
				forcemastercost = Math.Floor(30+(forcemasterrank*0.1*30))
				SetTextOptionValue(spell_forcemaster, "rank "+forcemasterrank)
				SetTextOptionValue(spell_forcemasterrank, forcemastercost)
			endif
		elseif(option == spell_deviouspartnerrank)
				int deviouspartnerrank = SuH_rank_deviouspartner.GetValue() as int
				int deviouspartnerrank2 = SuH_rank_deviouspartner2.GetValue() as int
				int deviouspartnerrankall = deviouspartnerrank + deviouspartnerrank2
				int deviouspartnercost = Math.Floor(24+(deviouspartnerrankall*0.1*24))
			if bdsm >= deviouspartnercost
				s += deviouspartnercost
				bdsm -= deviouspartnercost
				SuH_PCSspoint.SetValue(s)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				deviouspartnerrank += 1
				deviouspartnerrankall += 1
				SuH_rank_deviouspartner.SetValue(deviouspartnerrank)
				deviouspartnercost = Math.Floor(24+(deviouspartnerrankall*0.1*24))
				SetTextOptionValue(spell_deviouspartner, "rank "+deviouspartnerrankall)
				SetTextOptionValue(spell_deviouspartnerrank, deviouspartnercost)
				SetTextOptionValue(spell_deviouspartnerrank2, deviouspartnercost)
			endif
		elseif(option == spell_deviouspartnerrank2)
				int deviouspartnerrank = SuH_rank_deviouspartner.GetValue() as int
				int deviouspartnerrank2 = SuH_rank_deviouspartner2.GetValue() as int
				int deviouspartnerrankall = deviouspartnerrank + deviouspartnerrank2
				int deviouspartnercost = Math.Floor(24+(deviouspartnerrankall*0.1*24))
			if bdsm >= deviouspartnercost
				m += deviouspartnercost
				bdsm -= deviouspartnercost
				SuH_PCSmpoint.SetValue(m)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				deviouspartnerrank2 += 1
				deviouspartnerrankall += 1
				SuH_rank_deviouspartner2.SetValue(deviouspartnerrank2)
				deviouspartnercost = Math.Floor(24+(deviouspartnerrankall*0.1*24))
				SetTextOptionValue(spell_deviouspartner, "rank "+deviouspartnerrankall)
				SetTextOptionValue(spell_deviouspartnerrank, deviouspartnercost)
				SetTextOptionValue(spell_deviouspartnerrank2, deviouspartnercost)
			endif
		elseif(option == spell_formalbeautyrank)
				int formalbeautyrank = SuH_rank_formalbeauty.GetValue() as int
				int formalbeautyrank2 = SuH_rank_formalbeauty2.GetValue() as int
				int formalbeautyrankall = formalbeautyrank + formalbeautyrank2
				int formalbeautycost = Math.Floor(24+(formalbeautyrankall*0.1*24))
			if bdsm >= formalbeautycost
				bdsm -= formalbeautycost
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				formalbeautyrank += 1
				formalbeautyrankall += 1
				SuH_rank_formalbeauty.SetValue(formalbeautyrank)
				formalbeautycost = Math.Floor(24+(formalbeautyrankall*0.1*24))
				SetTextOptionValue(spell_formalbeauty, "rank "+formalbeautyrankall)
				SetTextOptionValue(spell_formalbeautyrank, formalbeautycost)
				SetTextOptionValue(spell_formalbeautyrank2, formalbeautycost)
			endif
		elseif(option == spell_formalbeautyrank2)
				int formalbeautyrank = SuH_rank_formalbeauty.GetValue() as int
				int formalbeautyrank2 = SuH_rank_formalbeauty2.GetValue() as int
				int formalbeautyrankall = formalbeautyrank + formalbeautyrank2
				int formalbeautycost = Math.Floor(24+(formalbeautyrankall*0.1*24))
			if formalbeautyrank2 > 14
				debug.MessageBox("Frequency is already capped!")
			elseif bdsm >= formalbeautycost
				bdsm -= formalbeautycost
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				formalbeautyrank2 += 1
				formalbeautyrankall += 1
				SuH_rank_formalbeauty2.SetValue(formalbeautyrank2)
				formalbeautycost = Math.Floor(24+(formalbeautyrankall*0.1*24))
				SetTextOptionValue(spell_formalbeauty, "rank "+formalbeautyrankall)
				SetTextOptionValue(spell_formalbeautyrank, formalbeautycost)
				SetTextOptionValue(spell_formalbeautyrank2, formalbeautycost)
			endif
		elseif(option == spell_seducerrank)
				int seducerrank = SuH_rank_seducer.GetValue() as int
				int seducercost = Math.Floor(30+(seducerrank*0.1*30))
			if seducerrank >= 18
				debug.MessageBox("Cost Down has reached its max rank!")
			elseif bdsm >= seducercost
				m += seducercost
				bdsm -= seducercost
				SuH_PCSmpoint.SetValue(m)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				seducerrank += 1
				SuH_rank_seducer.SetValue(seducerrank)
				seducercost = Math.Floor(30+(seducerrank*0.1*30))
				SetTextOptionValue(spell_seducer, "rank "+seducerrank)
				SetTextOptionValue(spell_seducerrank, seducercost)
			endif
		elseif(option == spell_regalglowrank)
				int regalglowrank = SuH_rank_regalglow.GetValue() as int
				int regalglowcost = Math.Floor(24+(regalglowrank*0.1*24))
			if bdsm >= regalglowcost
				b += regalglowcost
				bdsm -= regalglowcost
				SuH_PCSbpoint.SetValue(b)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				regalglowrank += 1
				SuH_rank_regalglow.SetValue(regalglowrank)
				regalglowcost = Math.Floor(24+(regalglowrank*0.1*24))
				SetTextOptionValue(spell_regalglow, "rank "+ regalglowrank)
				SetTextOptionValue(spell_regalglowrank, regalglowcost)
			endIf
		elseif(option == spell_violencerank)
				int violencerank = SuH_rank_violence.GetValue() as int
				int violencerank2 = SuH_rank_violence2.GetValue() as int
				int violencerank3 = SuH_rank_violence3.GetValue() as int
				int violencerankall = violencerank + violencerank2 + violencerank3
				int violencecost = Math.Floor(30+(violencerankall*0.1*30))
			if bdsm >= violencecost
				b += violencecost
				bdsm -= violencecost
				SuH_PCSbpoint.SetValue(b)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				violencerank += 1
				violencerankall += 1
				SuH_rank_violence.SetValue(violencerank)
				violencecost = Math.Floor(30+(violencerankall*0.1*30))
				SetTextOptionValue(spell_violence, "rank "+violencerankall)
				SetTextOptionValue(spell_violencerank, violencecost)
				SetTextOptionValue(spell_violencerank2, violencecost)
				SetTextOptionValue(spell_violencerank3, violencecost)
			endif
		elseif(option == spell_violencerank2)
				int violencerank = SuH_rank_violence.GetValue() as int
				int violencerank2 = SuH_rank_violence2.GetValue() as int
				int violencerank3 = SuH_rank_violence3.GetValue() as int
				int violencerankall = violencerank + violencerank2 + violencerank3
				int violencecost = Math.Floor(30+(violencerankall*0.1*30))
			if bdsm >= violencecost
				b += violencecost
				bdsm -= violencecost
				SuH_PCSbpoint.SetValue(b)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				violencerank2 += 1
				violencerankall += 1
				SuH_rank_violence2.SetValue(violencerank2)
				violencecost = Math.Floor(30+(violencerankall*0.1*30))
				SetTextOptionValue(spell_violence, "rank "+violencerankall)
				SetTextOptionValue(spell_violencerank, violencecost)
				SetTextOptionValue(spell_violencerank2, violencecost)
				SetTextOptionValue(spell_violencerank3, violencecost)
			endif
		elseif(option == spell_violencerank3)
				int violencerank = SuH_rank_violence.GetValue() as int
				int violencerank2 = SuH_rank_violence2.GetValue() as int
				int violencerank3 = SuH_rank_violence3.GetValue() as int
				int violencerankall = violencerank + violencerank2 + violencerank3
				int violencecost = Math.Floor(30+(violencerankall*0.1*30))
			if bdsm >= violencecost
				b += violencecost
				bdsm -= violencecost
				SuH_PCSbpoint.SetValue(b)
				SuH_PCSbdsm.SetValue(bdsm)
				string Lbdsmrating = " "
				if d >= b && d >= s && d >= m
					Lbdsmrating = "Desire"
					SuH_PCSbdsmspecial.SetValue(2)
				elseif b >= s && b >= m
					Lbdsmrating = "Body"
					SuH_PCSbdsmspecial.SetValue(1)
				elseif s >= m
					Lbdsmrating = "Soul"
					SuH_PCSbdsmspecial.SetValue(3)
				else
					Lbdsmrating = "Mind"
					SuH_PCSbdsmspecial.SetValue(4)
				endIf
				SetTextOptionValue(spell_point, bdsm+" ["+Lbdsmrating+"]")
				violencerank3 += 1
				violencerankall += 1
				SuH_rank_violence3.SetValue(violencerank3)
				violencecost = Math.Floor(30+(violencerankall*0.1*30))
				SetTextOptionValue(spell_violence, "rank "+violencerankall)
				SetTextOptionValue(spell_violencerank, violencecost)
				SetTextOptionValue(spell_violencerank2, violencecost)
				SetTextOptionValue(spell_violencerank3, violencecost)
			endif
		endIf
	;end/
	;ent/ Soul Pets
	elseif(CurrentPage == "Soul Pets")
		if(option == pet_dog)
				int y = SuH_PETdogdesire.GetValue() as int
			if SuH_PETactivedog.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_dog.MoveTo(SuH_realm_petreturndog)
				SuH_PETactivedog.SetValue(0)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PETdogunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_dog.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_dog)
						SuH_PETactivedog.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
		elseif(option == pet_wolf)
				int y = SuH_PETwolfdesire.GetValue() as int
			if SuH_PETactivewolf.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_wolf.MoveTo(SuH_realm_petreturnwolf)
				SuH_PETactivewolf.SetValue(0)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PETwolfunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_wolf.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_wolf)
						SuH_PETactivewolf.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
		elseif(option == pet_horse)
				int y = SuH_PEThorsedesire.GetValue() as int
			if SuH_PETactivehorse.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_horse.MoveTo(SuH_realm_petreturnhorse)
				SuH_PETactivehorse.SetValue(0)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PEThorseunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_horse.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_horse)
						SuH_PETactivehorse.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
		elseif(option == pet_skeever)
				int y = SuH_PETskeeverdesire.GetValue() as int
			if SuH_PETactiveskeever.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_skeever.MoveTo(SuH_realm_petreturnskeever)
				SuH_PETactiveskeever.SetValue(0)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PETskeeverunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_skeever.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_skeever)
						SuH_PETactiveskeever.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
		elseif(option == pet_familiar)
				int y = SuH_PETfamiliardesire.GetValue() as int
			if SuH_PETactivefamiliar.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_familiar.MoveTo(SuH_realm_petreturnfamiliar)
				SuH_PETactivefamiliar.SetValue(0)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PETfamiliarunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_familiar.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_familiar)
						SuH_PETactivefamiliar.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
		elseif(option == pet_bear)
				int y = SuH_PETbeardesire.GetValue() as int
			if SuH_PETactivebear.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_bear.MoveTo(SuH_realm_petreturnbear)
				SuH_PETactivebear.SetValue(0)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PETbearunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_bear.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_bear)
						SuH_PETactivebear.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
		elseif(option == pet_sabrecat)
				int x = SuH_PETactive.GetValue() as int
				int y = SuH_PETsabrecatdesire.GetValue() as int
			if SuH_PETactivesabrecat.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_sabrecat.MoveTo(SuH_realm_petreturnsabrecat)
				SuH_PETactivesabrecat.SetValue(0)
				x -= 1
				SuH_PETactive.SetValue(x)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PETsabrecatunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_sabrecat.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_sabrecat)
						SuH_PETactivesabrecat.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
		elseif(option == pet_draugr)
				int x = SuH_PETactive.GetValue() as int
				int y = SuH_PETdraugrdesire.GetValue() as int
			if SuH_PETactivedraugr.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_draugr.MoveTo(SuH_realm_petreturndraugr)
				SuH_PETactivedraugr.SetValue(0)
				x -= 1
				SuH_PETactive.SetValue(x)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PETdraugrunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_draugr.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_draugr)
						SuH_PETactivedraugr.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
		elseif(option == pet_troll)
				int x = SuH_PETactive.GetValue() as int
				int y = SuH_PETtrolldesire.GetValue() as int
			if SuH_PETactivetroll.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_troll.MoveTo(SuH_realm_petreturntroll)
				SuH_PETactivetroll.SetValue(0)
				x -= 1
				SuH_PETactive.SetValue(x)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PETtrollunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_troll.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_troll)
						SuH_PETactivetroll.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
		elseif(option == pet_spriggan)
				int x = SuH_PETactive.GetValue() as int
				int y = SuH_PETspriggandesire.GetValue() as int
			if SuH_PETactivespriggan.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_spriggan.MoveTo(SuH_realm_petreturnspriggan)
				SuH_PETactivespriggan.SetValue(0)
				x -= 1
				SuH_PETactive.SetValue(x)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PETsprigganunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_spriggan.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_spriggan)
						SuH_PETactivespriggan.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
		elseif(option == pet_horker)
				int x = SuH_PETactive.GetValue() as int
				int y = SuH_PEThorkerdesire.GetValue() as int
			if SuH_PETactivehorker.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_horker.MoveTo(SuH_realm_petreturnhorker)
				SuH_PETactivehorker.SetValue(0)
				x -= 1
				SuH_PETactive.SetValue(x)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PEThorkerunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_horker.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_horker)
						SuH_PETactivehorker.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
		elseif(option == pet_falmer)
				int x = SuH_PETactive.GetValue() as int
				int y = SuH_PETfalmerdesire.GetValue() as int
			if SuH_PETactivefalmer.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_falmer.MoveTo(SuH_realm_petreturnfalmer)
				SuH_PETactivefalmer.SetValue(0)
				x -= 1
				SuH_PETactive.SetValue(x)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PETfalmerunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_falmer.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_falmer)
						SuH_PETactivefalmer.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
			
			
		elseif(option == pet_husky)
				int x = SuH_PETactive.GetValue() as int
				int y = SuH_PEThuskydesire.GetValue() as int
			if SuH_PETactivehusky.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_husky.MoveTo(SuH_realm_petreturnhusky)
				SuH_PETactivehusky.SetValue(0)
				x -= 1
				SuH_PETactive.SetValue(x)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PEThuskyunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_husky.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_husky)
						SuH_PETactivehusky.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
			
		elseif(option == pet_bristle)
				int x = SuH_PETactive.GetValue() as int
				int y = SuH_PETbristledesire.GetValue() as int
			if SuH_PETactivebristle.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_bristle.MoveTo(SuH_realm_petreturnbristle)
				SuH_PETactivebristle.SetValue(0)
				x -= 1
				SuH_PETactive.SetValue(x)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PETbristleunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_bristle.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_bristle)
						SuH_PETactivebristle.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
			
		elseif(option == pet_seeker)
				int x = SuH_PETactive.GetValue() as int
				int y = SuH_PETseekerdesire.GetValue() as int
			if SuH_PETactiveseeker.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_seeker.MoveTo(SuH_realm_petreturnseeker)
				SuH_PETactiveseeker.SetValue(0)
				x -= 1
				SuH_PETactive.SetValue(x)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PETseekerunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_seeker.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_seeker)
						SuH_PETactiveseeker.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
			
		elseif(option == pet_gargoyle)
				int x = SuH_PETactive.GetValue() as int
				int y = SuH_PETgargoyledesire.GetValue() as int
			if SuH_PETactivegargoyle.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_gargoyle.MoveTo(SuH_realm_petreturngargoyle)
				SuH_PETactivegargoyle.SetValue(0)
				x -= 1
				SuH_PETactive.SetValue(x)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PETgargoyleunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_gargoyle.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_gargoyle)
						SuH_PETactivegargoyle.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
			
		elseif(option == pet_netch)
				int x = SuH_PETactive.GetValue() as int
				int y = SuH_PETnetchdesire.GetValue() as int
			if SuH_PETactivenetch.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_netch.MoveTo(SuH_realm_petreturnnetch)
				SuH_PETactivenetch.SetValue(0)
				x -= 1
				SuH_PETactive.SetValue(x)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PETnetchunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_netch.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_netch)
						SuH_PETactivenetch.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
			
		elseif(option == pet_riekling)
				int x = SuH_PETactive.GetValue() as int
				int y = SuH_PETrieklingdesire.GetValue() as int
			if SuH_PETactiveriekling.GetValue()
				(pDialogueFollower as DialogueFollowerScript).DismissAnimal()
				SuH_actor_riekling.MoveTo(SuH_realm_petreturnriekling)
				SuH_PETactiveriekling.SetValue(0)
				x -= 1
				SuH_PETactive.SetValue(x)
				debug.MessageBox("Pet has been returned to the Succubus Realm")
				ForcePageReset()
			elseif SuH_PETrieklingunlock.GetValue()
				string summonedPET = "none"
				if SuH_PETactivedog.getValue()
					summonedPET = "dog"
				elseif SuH_PETactivewolf.getValue()
					summonedPET = "wolf"
				elseif SuH_PETactivehorse.getValue()
					summonedPET = "horse"
				elseif SuH_PETactiveskeever.getValue()
					summonedPET = "skeever"
				elseif SuH_PETactivefamiliar.getValue()
					summonedPET = "familiar"
				elseif SuH_PETactivebear.getValue()
					summonedPET = "bear"
				elseif SuH_PETactivesabrecat.getValue()
					summonedPET = "sabrecat"
				elseif SuH_PETactivedraugr.getValue()
					summonedPET = "draugr"
				elseif SuH_PETactivetroll.getValue()
					summonedPET = "troll"
				elseif SuH_PETactivespriggan.getValue()
					summonedPET = "spriggan"
				elseif SuH_PETactivehorker.getValue()
					summonedPET = "horker"
				elseif SuH_PETactivefalmer.getValue()
					summonedPET = "falmer"
				elseif SuH_PETactivehusky.getValue()
					summonedPET = "husky"
				elseif SuH_PETactivebristle.getValue()
					summonedPET = "bristle"
				elseif SuH_PETactiveseeker.getValue()
					summonedPET = "seeker"
				elseif SuH_PETactivegargoyle.getValue()
					summonedPET = "gargoyle"
				elseif SuH_PETactivenetch.getValue()
					summonedPET = "netch"
				elseif SuH_PETactiveriekling.getValue()
					summonedPET = "riekling"
				endIf
				if summonedPET == "none"
					if y >= 100
						SuH_actor_riekling.MoveTo(PlayerRef)
						(DialogueFollower as DialogueFollowerScript).SetAnimal(SuH_actor_riekling)
						SuH_PETactiveriekling.SetValue(1)
						debug.MessageBox("Pet has been summoned!")
						ForcePageReset()
					else
						debug.MessageBox("Pet doesn't have enough Desire to be summoned!")
					endIf
				else
					debug.MessageBox("Too many summons are currently following you! Return some home to summon more.")
				endIf
			else
				debug.MessageBox("Pet is still uncontrollable! Train more to strengthen your abilities!")
			endIf
			
			
			
		endIf
	;end/
	endIf
endEvent
;end/
;ent/ OnOptionMenuOpen
event OnOptionMenuOpen(int option)
    ;if (option == pet_currentleader)
    ;    SetMenuDialogOptions(petleaderlist)
    ;    SetMenuDialogStartIndex(pet_currentleaderindex)
    ;    SetMenuDialogDefaultIndex(1)
    if (option == pet_dogdesire)
		int x = SuH_PETdogeffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_wolfdesire)
		int x = SuH_PETwolfeffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_familiardesire)
		int x = SuH_PETfamiliareffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_skeeverdesire)
		int x = SuH_PETskeevereffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_beardesire)
		int x = SuH_PETbeareffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_sabrecatdesire)
		int x = SuH_PETsabrecateffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_trolldesire)
		int x = SuH_PETtrolleffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_horsedesire)
		int x = SuH_PEThorseeffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_horkerdesire)
		int x = SuH_PEThorkereffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_draugrdesire)
		int x = SuH_PETdraugreffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_spriggandesire)
		int x = SuH_PETsprigganeffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_falmerdesire)
		int x = SuH_PETfalmereffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_huskydesire)
		int x = SuH_PEThuskyeffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_bristledesire)
		int x = SuH_PETbristleeffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_seekerdesire)
		int x = SuH_PETseekereffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_gargoyledesire)
		int x = SuH_PETgargoyleeffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_netchdesire)
		int x = SuH_PETnetcheffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
    elseif (option == pet_rieklingdesire)
		int x = SuH_PETrieklingeffect.GetValue() as int
		SetMenuDialogOptions(peteffectlist)
		SetMenuDialogStartIndex(x)
		SetMenuDialogDefaultIndex(0)
	endIf
endEvent
;end/
;ent/ OnOptionMenuAccept
event OnOptionMenuAccept(int option, int index)
    ;if (option == pet_currentleader)
    ;    pet_currentleaderindex = index
    ;    SetMenuOptionValue(pet_currentleader, petleaderlist[pet_currentleaderindex])
    if (option == pet_dogdesire)
		SuH_PETdogeffect.SetValue(index)
		SetMenuOptionValue(pet_dogdesire, peteffectlist[index])
    elseif (option == pet_wolfdesire)
		SuH_PETwolfeffect.SetValue(index)
		SetMenuOptionValue(pet_wolfdesire, peteffectlist[index])
    elseif (option == pet_familiardesire)
		SuH_PETfamiliareffect.SetValue(index)
		SetMenuOptionValue(pet_familiardesire, peteffectlist[index])
    elseif (option == pet_skeeverdesire)
		SuH_PETskeevereffect.SetValue(index)
		SetMenuOptionValue(pet_skeeverdesire, peteffectlist[index])
    elseif (option == pet_beardesire)
		SuH_PETbeareffect.SetValue(index)
		SetMenuOptionValue(pet_beardesire, peteffectlist[index])
    elseif (option == pet_sabrecatdesire)
		SuH_PETsabrecateffect.SetValue(index)
		SetMenuOptionValue(pet_sabrecatdesire, peteffectlist[index])
    elseif (option == pet_trolldesire)
		SuH_PETtrolleffect.SetValue(index)
		SetMenuOptionValue(pet_trolldesire, peteffectlist[index])
    elseif (option == pet_horsedesire)
		SuH_PEThorseeffect.SetValue(index)
		SetMenuOptionValue(pet_horsedesire, peteffectlist[index])
    elseif (option == pet_horkerdesire)
		SuH_PEThorkereffect.SetValue(index)
		SetMenuOptionValue(pet_horkerdesire, peteffectlist[index])
    elseif (option == pet_draugrdesire)
		SuH_PETdraugreffect.SetValue(index)
		SetMenuOptionValue(pet_draugrdesire, peteffectlist[index])
    elseif (option == pet_spriggandesire)
		SuH_PETsprigganeffect.SetValue(index)
		SetMenuOptionValue(pet_spriggandesire, peteffectlist[index])
    elseif (option == pet_falmerdesire)
		SuH_PETfalmereffect.SetValue(index)
		SetMenuOptionValue(pet_falmerdesire, peteffectlist[index])
    elseif (option == pet_huskydesire)
		SuH_PEThuskyeffect.SetValue(index)
		SetMenuOptionValue(pet_huskydesire, peteffectlist[index])
    elseif (option == pet_bristledesire)
		SuH_PETbristleeffect.SetValue(index)
		SetMenuOptionValue(pet_bristledesire, peteffectlist[index])
    elseif (option == pet_seekerdesire)
		SuH_PETseekereffect.SetValue(index)
		SetMenuOptionValue(pet_seekerdesire, peteffectlist[index])
    elseif (option == pet_gargoyledesire)
		SuH_PETgargoyleeffect.SetValue(index)
		SetMenuOptionValue(pet_gargoyledesire, peteffectlist[index])
    elseif (option == pet_netchdesire)
		SuH_PETnetcheffect.SetValue(index)
		SetMenuOptionValue(pet_netchdesire, peteffectlist[index])
    elseif (option == pet_rieklingdesire)
		SuH_PETrieklingeffect.SetValue(index)
		SetMenuOptionValue(pet_rieklingdesire, peteffectlist[index])
    endIf
endEvent
;end/
;ent/ OnOptionSliderOpen
Event OnOptionSliderOpen(int option)
	if(CurrentPage == "Status / Settings")
		if(option == status_SETnpc2pchealth)
			SetSliderDialogStartValue(SuH_SETnpc2pchealth.GetValue()*100)
			SetSliderDialogDefaultValue(20)
			SetSliderDialogRange(0,100)
			SetSliderDialogInterval(5)
		elseIf(option == status_SETpc2npchealth)
			SetSliderDialogStartValue(SuH_SETpc2npchealth.GetValue()*100)
			SetSliderDialogDefaultValue(20)
			SetSliderDialogRange(0,100)
			SetSliderDialogInterval(5)
		elseIf(option == status_SETnpc2npchealth)
			SetSliderDialogStartValue(SuH_SETnpc2npchealth.GetValue()*100)
			SetSliderDialogDefaultValue(20)
			SetSliderDialogRange(0,100)
			SetSliderDialogInterval(5)
		elseIf(option == status_ORcaphealth)
			SetSliderDialogStartValue(SuH_ORcaphealth.GetValue())
			SetSliderDialogDefaultValue(0)
			SetSliderDialogRange(0,100000)
			SetSliderDialogInterval(10)
		elseIf(option == status_ORcapmagicka)
			SetSliderDialogStartValue(SuH_ORcapmagicka.GetValue())
			SetSliderDialogDefaultValue(0)
			SetSliderDialogRange(0,100000)
			SetSliderDialogInterval(10)
		elseIf(option == status_ORcapstamina)
			SetSliderDialogStartValue(SuH_ORcapstamina.GetValue())
			SetSliderDialogDefaultValue(0)
			SetSliderDialogRange(0,100000)
			SetSliderDialogInterval(10)
		elseIf(option == status_ORabsorbhealth)
			SetSliderDialogStartValue(SuH_ORabsorbhealth.GetValue())
			SetSliderDialogDefaultValue(0)
			SetSliderDialogRange(0,1000)
			SetSliderDialogInterval(1)
		elseIf(option == status_ORabsorbmagicka)
			SetSliderDialogStartValue(SuH_ORabsorbmagicka.GetValue())
			SetSliderDialogDefaultValue(0)
			SetSliderDialogRange(0,1000)
			SetSliderDialogInterval(1)
		elseIf(option == status_ORabsorbstamina)
			SetSliderDialogStartValue(SuH_ORabsorbstamina.GetValue())
			SetSliderDialogDefaultValue(0)
			SetSliderDialogRange(0,1000)
			SetSliderDialogInterval(1)
		elseIf(option == status_SETeffectmulti)
			SetSliderDialogStartValue(SuH_PCSeffectmulti.GetValue()*100)
			SetSliderDialogDefaultValue(0)
			SetSliderDialogRange(0,1000)
			SetSliderDialogInterval(1)
		elseIf(option == status_SETdesiregain)
			SetSliderDialogStartValue(SuH_PCSdesiregain.GetValue())
			SetSliderDialogDefaultValue(1)
			SetSliderDialogRange(0,100)
			SetSliderDialogInterval(0.2)
		elseIf(option == status_SETdesirecap)
			SetSliderDialogStartValue(SuH_SETdesirecap.GetValue())
			SetSliderDialogDefaultValue(1200)
			SetSliderDialogRange(0,100000)
			SetSliderDialogInterval(10.0)
		endIf
	elseIf(CurrentPage == "Skill Levels")
		if(option == skill_convert)
			int x = SuH_PCSxp.GetValue() as int
			int y = Math.Floor(x/10)
			int z = y*10
			SetSliderDialogStartValue(0)
			SetSliderDialogDefaultValue(0)
			SetSliderDialogRange(0,z)
			SetSliderDialogInterval(10)
		endIf
	endIf
endEvent
;end/
;ent/ OnOptionSliderAccept
Event OnOptionSliderAccept(int option, float value)
	if(CurrentPage == "Status / Settings")
		if(option == status_SETnpc2pchealth)
			SuH_SETnpc2pchealth.SetValue(value/100)
			SetSliderOptionValue(status_SETnpc2pchealth, value, "{0}% Health")
		elseif(option == status_SETpc2npchealth)
			SuH_SETpc2npchealth.SetValue(value/100)
			SetSliderOptionValue(status_SETpc2npchealth, value, "{0}% Health")
		elseif(option == status_SETnpc2npchealth)
			SuH_SETnpc2npchealth.SetValue(value/100)
			SetSliderOptionValue(status_SETnpc2npchealth, value, "{0}% Health")
		elseif(option == status_ORcaphealth)
			SuH_ORcaphealth.SetValue(value)
			SetSliderOptionValue(status_ORcaphealth, value, "{0}")
			if value > 0
				int playerHealth = PlayerRef.GetBaseActorValue("health") as int
				SetTextOptionValue(status_health, playerHealth+"/overwritten")
			else
				int playerHealth = PlayerRef.GetBaseActorValue("health") as int
				int healthCap = SuH_PCScaphealth.GetValue() as int
				SetTextOptionValue(status_health, playerHealth+"/"+healthCap)
			endIf
		elseif(option == status_ORcapmagicka)
			SuH_ORcapmagicka.SetValue(value)
			SetSliderOptionValue(status_ORcapmagicka, value, "{0}")
			if value > 0
				int playerMagicka = PlayerRef.GetBaseActorValue("magicka") as int
				SetTextOptionValue(status_magicka, playerMagicka+"/overwritten")
			else
				int playerMagicka = PlayerRef.GetBaseActorValue("magicka") as int
				int magickaCap = SuH_PCScapmagicka.GetValue() as int
				SetTextOptionValue(status_magicka, playerMagicka+"/"+magickaCap)
			endIf
		elseif(option == status_ORcapstamina)
			SuH_ORcapstamina.SetValue(value)
			SetSliderOptionValue(status_ORcapstamina, value, "{0}")
			if value > 0
				int playerStamina = PlayerRef.GetBaseActorValue("stamina") as int
				SetTextOptionValue(status_stamina, playerStamina+"/overwritten")
			else
				int playerStamina = PlayerRef.GetBaseActorValue("stamina") as int
				int staminaCap = SuH_PCScapstamina.GetValue() as int
				SetTextOptionValue(status_stamina, playerStamina+"/"+staminaCap)
			endIf
		elseif(option == status_ORabsorbhealth)
			SuH_ORcaphealth.SetValue(value)
			SetSliderOptionValue(status_ORabsorbhealth, value, "{0}")
		elseif(option == status_ORabsorbmagicka)
			SuH_ORcapmagicka.SetValue(value)
			SetSliderOptionValue(status_ORabsorbmagicka, value, "{0}")
		elseif(option == status_ORabsorbstamina)
			SuH_ORcapstamina.SetValue(value)
			SetSliderOptionValue(status_ORabsorbstamina, value, "{0}")
		elseif(option == status_SETeffectmulti)
			SuH_PCSeffectmulti.SetValue(value/100)
			SetSliderOptionValue(status_SETeffectmulti, value, "{0}%")
		elseif(option == status_SETdesiregain)
			SuH_PCSdesiregain.SetValue(value)
			SetSliderOptionValue(status_SETdesiregain, value, "{0}")
		elseif(option == status_SETdesirecap)
			SuH_SETdesirecap.SetValue(value)
			SetSliderOptionValue(status_SETdesirecap, value, "{0}")
		endIf
	elseIf(CurrentPage == "Skill Levels")
		if(option == skill_convert)
			int x = Math.Floor(value/10)
			int y = SuH_PCSforce.GetValue() as int
			int z = SuH_PCSxp.GetValue() as int
			SuH_PCSxp.SetValue(z-value)
			SuH_PCSforce.SetValue(y+x)
			ForcePageReset()
		endIf
	endIf
endEvent
;end/
;ent/ OnOptionDefault
Event OnOptionDefault(int option)
	if(CurrentPage == "Heart Levels")
		if(option == heart_caphealth)
			int caphealth = SuH_PCScaphealth.GetValue() as int
			int caphealthitem = SuH_PCScaphealthitem.GetValue() as int
			int caphealthcost = Math.Floor(((caphealth-caphealthitem)*0.12)*15+20)
			_Fun.trackSet(caphealthcost, "Health Cap")
			debug.MessageBox("Tracking Set")
		elseif(option == heart_capmagicka)
			int capmagicka = SuH_PCScapmagicka.GetValue() as int
			int capmagickaitem = SuH_PCScapmagickaitem.GetValue() as int
			int capmagickacost = Math.Floor(((capmagicka-capmagickaitem)*0.12)*15+20)
			_Fun.trackSet(capmagickacost, "Magicka Cap")
			debug.MessageBox("Tracking Set")
		elseif(option == heart_capstamina)
			int capstamina = SuH_PCScapstamina.GetValue() as int
			int capstaminaitem = SuH_PCScapstaminaitem.GetValue() as int
			int capstaminacost = Math.Floor(((capstamina-capstaminaitem)*0.12)*15+20)
			_Fun.trackSet(capstaminacost, "Stamina Cap")
			debug.MessageBox("Tracking Set")
		elseif(option == heart_stacksex)
			int stacksex = SuH_PCSstackmaxsex.GetValue() as int
			int stacksexcost = Math.Floor(stacksex*2.8*240)
			_Fun.trackSet(stacksexcost, "Max Sex Stacks")
			debug.MessageBox("Tracking Set")
		elseif(option == heart_stacksperm)
			int stacksperm = SuH_PCSstackmaxsperm.GetValue() as int
			int stackspermcost = Math.Floor(stacksperm*2.8*240)
			_Fun.trackSet(stackspermcost, "Max Sperm Stacks")
			debug.MessageBox("Tracking Set")
		elseif(option == heart_stackmilk)
			int stackmilk = SuH_PCSstackmaxmilk.GetValue() as int
			int stackmilkcost = Math.Floor(stackmilk*2.8*240)
			_Fun.trackSet(stackmilkcost, "Max Milk Stacks")
			debug.MessageBox("Tracking Set")
		elseif(option == heart_absorbhealth)
			int absorbhealth = SuH_PCSabsorbhealth.GetValue() as int
			int absorbhealthcost = Math.Floor(absorbhealth*2.2*280)
			_Fun.trackSet(absorbhealthcost, "Health Absorption")
			debug.MessageBox("Tracking Set")
		elseif(option == heart_absorbmagicka)
			int absorbmagicka = SuH_PCSabsorbmagicka.GetValue() as int
			int absorbmagickacost = Math.Floor(absorbmagicka*2.2*280)
			_Fun.trackSet(absorbmagickacost, "Magicka Absorption")
			debug.MessageBox("Tracking Set")
		elseif(option == heart_absorbstamina)
			int absorbstamina = SuH_PCSabsorbstamina.GetValue() as int
			int absorbstaminacost = Math.Floor(absorbstamina*2.2*280)
			_Fun.trackSet(absorbstaminacost, "Stamina Absorption")
			debug.MessageBox("Tracking Set")
		elseif(option == heart_spermhealth)
			int spermhealth = SuH_PCSspermhealth.GetValue() as int
			int spermhealthcost = Math.Floor(spermhealth*1.8*200)
			_Fun.trackSet(spermhealthcost, "Sperm Health Bonus")
			debug.MessageBox("Tracking Set")
		elseif(option == heart_spermmagicka)
			int spermmagicka = SuH_PCSspermmagicka.GetValue() as int
			int spermmagickacost = Math.Floor(spermmagicka*1.8*200)
			_Fun.trackSet(spermmagickacost, "Sperm Magicka Bonus")
			debug.MessageBox("Tracking Set")
		elseif(option == heart_spermstamina)
			int spermstamina = SuH_PCSspermstamina.GetValue() as int
			int spermstaminacost = Math.Floor(spermstamina*1.8*200)
			_Fun.trackSet(spermstaminacost, "Sperm Stamina Bonus")
			debug.MessageBox("Tracking Set")
		elseif(option == heart_milkhealth)
			int milkhealth = SuH_PCSmilkhealth.GetValue() as int
			int milkhealthcost = Math.Floor(milkhealth*1.8*200)
			_Fun.trackSet(milkhealthcost, "Milk Health Bonus")
			debug.MessageBox("Tracking Set")
		elseif(option == heart_milkmagicka)
			int milkmagicka = SuH_PCSmilkmagicka.GetValue() as int
			int milkmagickacost = Math.Floor(milkmagicka*1.8*200)
			_Fun.trackSet(milkmagickacost, "Milk Magicka Bonus")
			debug.MessageBox("Tracking Set")
		elseif(option == heart_milkstamina)
			int milkstamina = SuH_PCSmilkstamina.GetValue() as int
			int milkstaminacost = Math.Floor(milkstamina*1.8*200)
			_Fun.trackSet(milkstaminacost, "Milk Stamina Bonus")
			debug.MessageBox("Tracking Set")
		elseif(option == heart_xpgain)
			float xpgain = SuH_PCSxpgain.GetValue()
			int xpgainitem = SuH_PCSxpgainitem.GetValue() as int
			int xpgaincost = Math.Floor(((xpgain - (99+xpgainitem))*2.0*350)*0.5)
			_Fun.trackSet(xpgaincost, "XP Gain")
			debug.MessageBox("Tracking Set")
		endIf
	elseif(CurrentPage == "Passives")
		if(option == spell_xp)
			float xpgain = SuH_PCSxpgain.GetValue()
			int bdsmrank = SuH_rank_bdsm.GetValue() as int
			int bdsmrankcost = Math.Floor((1200*bdsmrank)*1.6+1200)
			_Fun.trackSet(bdsmrankcost, "BodyDesireSoulMind Rating")
			debug.MessageBox("Tracking Set")
		endIf
	endIf
endEvent
;end/
;ent/ OnOptionHighlight
Event OnOptionHighlight(int option)
	;ent/ Status
	if(CurrentPage == "Status / Settings")
		if(option == status_health)
			SetInfoText("Current Base Health / Cap [Gain Health through absorption. Cap can be increased through Heart Levels and Items.]")
		elseif(option == status_magicka)
			SetInfoText("Current Base Magicka / Cap [Gain Magicka through absorption. Cap can be increased through Heart Levels and Items.]")
		elseif(option == status_SETpetspells)
			SetInfoText("Toggle display of Pet Spells on the player, toggle this off if you don't wish to use the Soul Pets feature. [Default : Enabled]")
		elseif(option == status_stamina)
			SetInfoText("Current Base Stamina / Cap [Gain Stamina through absorption. Cap can be increased through Heart Levels and Items.]")
		elseif(option == status_desire)
			SetInfoText("Current Desire Value. [Upon orgasm 80% of Desire converts to XP. When above a certain Desire level status will slowly convert to Force. Desire slowly generates over time.]")
		elseif(option == status_xp)
			SetInfoText("Current XP Value. [Gain XP through Sexual Acts and Items.]")
		elseif(option == status_xpgain)
			SetInfoText("Current XP gain percentage. [Increases all XP earned by a percentage. ex. 100 XP earned with 114% gain grants 114 XP. Increase through Heart Levels or Items.]")
		elseif(option == status_stacksex)
			SetInfoText("Sex Stacks / Cap [Gain Sex Stacks after a Act. Sex Stacks decay over time, losing 1 every 5 minutes. Increase Max Stacks through Heart Levels or Items.]")
		elseif(option == status_stacksperm)
			SetInfoText("Sperm Stacks / Cap [Gain Sperm Stacks by consuming Sperm. Sperm Stacks decay over time, losing 1 every minute. Increase Max Stacks through Heart Levels or Items.]")
		elseif(option == status_stackmilk)
			SetInfoText("Milk Stacks / Cap [Gain Milk Stacks by consuming Breast Milk. Milk Stacks decay over time, losing 1 every minute. Increase Max Stacks through Heart Levels or Items.]")
		elseif(option == status_SETdrainkill)
			SetInfoText("When enabled characters can be killed by sex drain when their Health reduces below 1. [Default : Enabled]")
		elseif(option == status_SETallowmalehomo)
			SetInfoText("When enabled Succubus Heart will trigger Male/Male act through Seduction Spells or Combat Seduction [Will prevent Male/Male when disabled]. Has no effect on other mods. [Defailt : Disabled]")
		elseif(option == status_SETallowfemalehomo)
			SetInfoText("When enabled Succubus Heart will trigger Female/Female act through Seduction Spells or Combat Seduction [Will prevent Female/Female when disabled]. Has no effect on other mods. [Defailt : Enabled]")
		elseif(option == status_SETessentialacts)
			SetInfoText("Attempts to make NPCs temporarily essential when in Acts. [WARNING: This can cause bugs with high script lag and certain quests, use with caution!] [Default : Disabled]")
		elseif(option == status_SETcombatseduction)
			SetInfoText("When enabled characters in combat that fall below the set Health Thresholds will submit to their attacker. [This is a Light weight Submit Type mod built in, leave disabled if you use another submit mod. May cause some bugs/glitches like other submit mods, use with caution!] [Default : Disabled]")
		elseif(option == status_SETnpc2pchealth)
			SetInfoText("Health Threshold for NPCs to submit to the Player. When an NPC falls below this threshold if hit by the player they will submit. [Default : 30%]")
		elseif(option == status_SETnpc2npchealth)
			SetInfoText("Health Threshold for NPCs to submit to other NPCs. When an NPC falls below this threshold if hit by another NPC they will submit. [Default : 30%]")
		elseif(option == status_SETpc2npchealth)
			SetInfoText("Health Threshold for PC to submit to NPCs. When the Player falls below this threshold and is hit by an NPC they will submit. [Default : 30%]")
		elseif(option == status_SETconsentdrain)
			SetInfoText("When enabled consensual partners will be effected by absorption. [Will prevent drain on consensual partners if disabled] [Default : Disabled]")
		elseif(option == status_SETdesiredrain)
			SetInfoText("When enabled once Desire reaches high enough Status will slowly convert into Force [Disabling will prevent this feature] [Default : Disabled]")
		elseif(option == status_ORcaphealth)
			SetInfoText("Overrides the leveled Health Cap and replaces it with the fixed value selected [Set to 0 to disable] [Default : 0/Disabled]")
		elseif(option == status_ORcapmagicka)
			SetInfoText("Overrides the leveled Magicka Cap and replaces it with the fixed value selected [Set to 0 to disable] [Default : 0/Disabled]")
		elseif(option == status_ORcapstamina)
			SetInfoText("Overrides the leveled Stamina Cap and replaces it with the fixed value selected [Set to 0 to disable] [Default : 0/Disabled]")
		elseif(option == status_ORabsorbhealth)
			SetInfoText("Overrides the leveled Health Absorption and replaces it with the fixed value selected [Set to 0 to disable] [Default : 0/Disabled]")
		elseif(option == status_ORabsorbmagicka)
			SetInfoText("Overrides the leveled Magicka Absorption and replaces it with the fixed value selected [Set to 0 to disable] [Default : 0/Disabled]")
		elseif(option == status_ORabsorbstamina)
			SetInfoText("Overrides the leveled Stamina Absorption and replaces it with the fixed value selected [Set to 0 to disable] [Default : 0/Disabled]")
		elseif(option == status_SETdeathdrops)
			SetInfoText("When enabled characters will have a soul in their inventory after death. [Will be prevented if disabled] [Default : Enabled]")
		elseIf(option == status_SETeffectmulti)
			SetInfoText("Changes all drain and xp gain/absorption effects calculated by percentage. [Can be used to speed up/slow down progression - Example 100% with 10 drain will drain 10 points, 120% with 10 drain will drain 12 points]")
		elseIf(option == status_SETdesiregain)
			SetInfoText("Sets Desire gained per second [Updated every 5 seconds] [Default : 1]")
		elseIf(option == status_SETalwaysdrainkill)
			SetInfoText("When enabled status drain from acts will always kill the target. [Default : Disabled]")
		elseIf(option == status_SETspecialdeath)
			SetInfoText("(Death Override Mode) With this mode enabled instead of the player dieing and being asked to re-load the character will instead respawn in the Succubus Realm [Default : Disabled] WARNING : Disable if you use any other Death Alternative mod!")
		elseIf(option == status_SETsdloseitems)
			SetInfoText("(Death Override Mode) Upon death the player will lose all lose-able items (Items can be re-purchased from Tali in the Succubus Realm) [Default : Enabled]")
		elseIf(option == status_SETsdlosegold)
			SetInfoText("(Death Override Mode) Upon death the player will lose all gold they currently hold. [Default : Disabled]")
		elseIf(option == status_SETsdloseequip)
			SetInfoText("(Death Override Mode) Upon death the player's current equipment will be destroyed (These items can't be re-purchased from Tali) [Default : Enabled]")
		elseIf(option == status_SETrestrictact)
			SetInfoText("When enabled will restrict female aggressors to using cowgirl animations (only effects Succubus Heart animations) [Default : Enabled]")
		elseIf(option == status_SETdesirecap)
			SetInfoText("Set when Desire Drain starts to take effect (When above this amount desire will convert Status into Force when Desire Drain is enabled) [Default : 1200]")
		elseIf(option == status_SETrandomdeathspawn)
			SetInfoText("When enabled, after 'dieing' Succubus Realm -Disconnect- will force a random respawn when leaving the realm. [Default : Disabled]")
		elseIf(option == status_SETinvact)
			SetInfoText("'Virgin' Protection makes characters un-killable until they participate in an act. [Has no effect on NPCs that are already essential][This applies when loading a character, so you may need to access a new location, save/quit/load for all NPCs to be effected]")
		elseIf(option == status_SETinvactmale)
			SetInfoText("Makes Males 'virgin' protected [Default : Disabled]")
		elseIf(option == status_SETinvactfemale)
			SetInfoText("Makes Females 'virgin' protected [Default : Disabled]")
		elseIf(option == status_SETinvactmalecreature)
			SetInfoText("Makes Male Creatures 'virgin' protected [Default : Disabled]")
		elseIf(option == status_SETinvactfemalecreature)
			SetInfoText("Makes Females Creatures 'virgin' protected [Default : Disabled]")
		elseIf(option == status_SETnpcabsorb)
			SetInfoText("Allows Status Drain to effect NPCs - Dropping their Max Health/Magicka/Stamina [Note: Mod is balanced around this idea] [Default : Enabled]")
		endIf
	;end/
	;ent/ Skill Levels
	elseif(CurrentPage == "Skill Levels")
		if(option == skill_sp)
			SetInfoText("Current SP Available. [Gain SP through Force or Items. SP can be spent on leveling Skills.]")
		elseif(option == skill_spnext)
			SetInfoText("Force till next SP. [Gain Force through absorbing past your Status Caps, Items, or converting XP. The Force required for SP increases the more SP earned this way.]")
		elseif(option == skill_xp)
			SetInfoText("Current XP Available. [Can be converted to Force for SP at a 10 to 1 ratio]")
		elseif(option == skill_convert)
			SetInfoText("Convert XP to Force at a 10 to 1 ration. [ex. 100 XP will give 10 Force]")
		elseif(option == skill_alchemy)
			SetInfoText("Level-up Alchemy")
		elseif(option == skill_alteration)
			SetInfoText("Level-up Alteration")
		elseif(option == skill_block)
			SetInfoText("Level-up Block")
		elseif(option == skill_conjuration)
			SetInfoText("Level-up Conjuration")
		elseif(option == skill_destruction)
			SetInfoText("Level-up Destruction")
		elseif(option == skill_enchanting)
			SetInfoText("Level-up Enchanting")
		elseif(option == skill_heavyarmor)
			SetInfoText("Level-up Heavy Armor")
		elseif(option == skill_illusion)
			SetInfoText("Level-up Illusion")
		elseif(option == skill_lightarmor)
			SetInfoText("Level-up Light Armor")
		elseif(option == skill_illusion)
			SetInfoText("Level-up Illusion")
		elseif(option == skill_lockpicking)
			SetInfoText("Level-up Lockpicking")
		elseif(option == skill_marksman)
			SetInfoText("Level-up Marksman")
		elseif(option == skill_onehanded)
			SetInfoText("Level-up One-Handed")
		elseif(option == skill_pickpocket)
			SetInfoText("Level-up Pickpocket")
		elseif(option == skill_restoration)
			SetInfoText("Level-up Restoration")
		elseif(option == skill_smithing)
			SetInfoText("Level-up Smithing")
		elseif(option == skill_sneak)
			SetInfoText("Level-up Sneak")
		elseif(option == skill_speechcraft)
			SetInfoText("Level-up speechcraft")
		elseif(option == skill_twohanded)
			SetInfoText("Level-up Two-Handed")
		endIf
	;end/
	;ent/ Heart Levels
	elseif(CurrentPage == "heart Levels")
		if(option == heart_xp)
			SetInfoText("Current XP Available. [Can spend XP to level Abilities.]")
		elseif(option == heart_caphealth)
			SetInfoText("Increases the Max Health Absorption can reach.[Increases by 1 per level] + 1 Body Rating")
		elseif(option == heart_capmagicka)
			SetInfoText("Increases the Max Magicka Absorption can reach.[Increases by 1 per level] + 1 Mind Rating")
		elseif(option == heart_capstamina)
			SetInfoText("Increases the Max Stamina Absorption can reach.[Increases by 1 per level] + 1 Soul Rating")
		elseif(option == heart_stacksex)
			SetInfoText("Increases the number of Sex Stacks which can be stored.[Increases by 1 per level] + 5 Desire Rating")
		elseif(option == heart_stacksperm)
			SetInfoText("Increases the number of Sperm Stacks which can be stored.[Increases by 1 per level] + 5 Desire Rating")
		elseif(option == heart_stackmilk)
			SetInfoText("Increases the number of Milk Stacks which can be stored.[Increases by 1 per level] + 5 Desire Rating")
		elseif(option == heart_xpgain)
			SetInfoText("Increases the XP gain multiplier. [Increases by 2% when leveled] + 5 Desire Rating")
		elseif(option == heart_absorbhealth)
			SetInfoText("Increases Health absorbed in acts per-tick. [Increases by 1 per level] + 5 Body Rating")
		elseif(option == heart_absorbmagicka)
			SetInfoText("Increases Magicka absorbed in acts per-tick. [Increases by 1 per level] + 5 Mind Rating")
		elseif(option == heart_absorbstamina)
			SetInfoText("Increases Stamina absorbed in acts per-tick. [Increases by 1 per level] + 5 Soul Rating")
		elseif(option == heart_spermhealth)
			SetInfoText("Increases Health earned when consuming Sperm. [Increases by 1 per level] + 2 Body Rating")
		elseif(option == heart_spermmagicka)
			SetInfoText("Increases Magicka earned when consuming Sperm. [Increases by 1 per level] + 2 Mind Rating")
		elseif(option == heart_spermstamina)
			SetInfoText("Increases Stamina earned when consuming Sperm. [Increases by 1 per level] + 2 Soul Rating")
		elseif(option == heart_milkhealth)
			SetInfoText("Increases Health earned when consuming Milk. [Increases by 1 per level] + 2 Body Rating")
		elseif(option == heart_milkmagicka)
			SetInfoText("Increases Magicka earned when consuming Milk. [Increases by 1 per level] + 2 Mind Rating")
		elseif(option == heart_milkstamina)
			SetInfoText("Increases Stamina earned when consuming Milk. [Increases by 1 per level] + 2 Soul Rating")
		endIf
	;end/
	;ent/ Passives
	elseif(CurrentPage == "Passives")
		if(option == spell_xp)
			SetInfoText("Use XP to increase the BodyDesireSoulMind Rating by 20 (5 of each trait).")
		elseif(option == spell_point)
			int b = SuH_PCSbpoint.GetValue() as int
			int d = SuH_PCSdpoint.GetValue() as int
			int s = SuH_PCSspoint.GetValue() as int
			int m = SuH_PCSmpoint.GetValue() as int
			SetInfoText("Current BodyDesireSoulMind Rating and which stat currently excels. [True values are "+b+" Body : "+d+" Desire : "+s+" Soul : "+m+" Mind]")
		elseif(option == spell_reset)
			SetInfoText("Resets all Passives to Level 0 and re-calculates BodyDesireSoulMind Rating. Useful if you wish to change passives or find BDSM Ratings acting weird. [Note : Individual BDSM ratings can go into the negative and be considered normal, however BDSM itself should never drop below zero]")
		elseIf(option == spell_perfectorgasm)
			int x = SuH_rank_perfectorgasm.GetValue() as int
			int y = Math.Floor(SuH_rank_perfectorgasm2.GetValue()*10)
			int z = Math.Floor(SuH_rank_perfectorgasm2.GetValue()*5)
			SetInfoText("Climax is often the best part! Increases the chance of a Rare Drop upon orgasms by "+x+"%. May also sacrifice "+y+" Status for a "+z+"% chance at receiving a death drop as well.")
		elseIf(option == spell_perfectorgasmrank)
			SetInfoText("Adds 1% to Perfect Orgasm's Rare Drop Boost. + Desire Rating")
		elseIf(option == spell_perfectorgasmrank2)
			SetInfoText("Sacrifice another 10 Status for 5% extra chance at a Death Drop. + Desire Rating")
		elseIf(option == spell_lusciousliquids)
			int x = Math.Floor(SuH_rank_lusciousliquids.GetValue()*5)
			int y = Math.Floor(SuH_rank_lusciousliquids2.GetValue()*5)
			SetInfoText("Certain fluids are more desire-able than others. Sperm and Milk heals "+x+" Health and restores "+y+" Magicka and Stamina when consumed. +: Mind Specialty adds 20% to the effect :+")
		elseIf(option == spell_lusciousliquidsrank)
			SetInfoText("Sperm and Milk will Heal 5 more Health. + Soul Rating")
		elseIf(option == spell_lusciousliquidsrank2)
			SetInfoText("Sperm and Milk will Recover 5 more Magicka and Stamina. + Mind Rating")
		elseIf(option == spell_masochist)
			int x = Math.Floor(5 * SuH_rank_masochist.GetValue())
			int y = Math.Floor(5 * SuH_rank_masochist2.GetValue())
			int z = SuH_rank_masochist2.GetValue() as int
			SetInfoText("Pain is just extra excitement! When hit, lose "+z+" health but generate "+x+" Desire and recover "+y+" Stamina.")
		elseIf(option == spell_masochistrank)
			SetInfoText("Generate 5 more Desire when hit. + Body Rating")
		elseIf(option == spell_masochistrank2)
			SetInfoText("Lose 1 more Health but recover 5 more Stamina when hit. + Soul Rating")
		elseIf(option == spell_selfstacker)
			int x = SuH_rank_selfstacker.GetValue() as int
			SetInfoText("A little taste never hurt. Grants "+x+" stack upon orgasm based on gender. [m/sperm f/milk]")
		elseIf(option == spell_selfstackerrank)
			SetInfoText("Adds 1 to Self Stacker's effect. + Desire Rating")
		elseIf(option == spell_valuestacker)
			int x = SuH_rank_valuestacker.GetValue() as int
			SetInfoText("Savoring every last drop... Increases number of stacks earned by "+x+".")
		elseIf(option == spell_valuestackerrank)
			SetInfoText("Adds 1 to Value Stacker's effect. + Desire Rating")
		elseIf(option == spell_savingessence)
			int x = Math.Floor(2 * SuH_rank_savingessence.GetValue())
			int y = Math.Floor(20 - SuH_rank_savingessence2.GetValue())
			SetInfoText("Harvesting true potential. When hit below 30% Health, recover "+x+" Health per sex/sperm/milk stack (Uses combined value). After activating Saving Essence goes on cooldown for "+y+" minutes.")
		elseIf(option == spell_savingessencerank)
			SetInfoText("Recover 2 more Health per stack. + Body Rating")
		elseIf(option == spell_savingessencerank2)
			SetInfoText("Decrease cooldown by 1 minute. + Mind Rating")
		elseIf(option == spell_giftedconsent)
			int x = SuH_rank_giftedconsent.GetValue() as int
			SetInfoText("Lovers are better with health. Grants consensual parters with "+x+" Health/Magicka/Stamina per-tick. [Applies before drain if consent drain is enabled]")
		elseIf(option == spell_giftedconsentrank)
			SetInfoText("Adds 1 to Gifted Consent's effect. + Mind Rating")
		elseIf(option == spell_forcemaster)
			int x = SuH_rank_forcemaster.GetValue() as int
			SetInfoText("Master of progression. Decreases the Force required to earn SP by "+x*2+"%.")
		elseIf(option == spell_forcemasterrank)
			SetInfoText("Adds 2% to Force Master's effect. + Mind Rating")
		elseIf(option == spell_deviouspartner)
			int x = SuH_rank_deviouspartner.GetValue() as int
			int y = Math.Floor(10 * SuH_rank_deviouspartner2.GetValue())
			int z = y * 2
			SetInfoText("Playing by the rules is for 'normal' partners. Passively steal "+x+" gold from your partners. May also, on orgasm, sacrifice "+y+" stamina, converting it into "+z+" gold.")
		elseIf(option == spell_deviouspartnerrank)
			SetInfoText("Steal 1 more gold every tick. + Soul Rating")
		elseIf(option == spell_deviouspartnerrank2)
			SetInfoText("Sacrifice 10 more stamina for 20 more gold conversion on orgasm. + Mind Rating")
		elseIf(option == spell_formalbeauty)
			int x = SuH_rank_formalbeauty.GetValue() as int
			int y = Math.Floor(30 - (SuH_rank_formalbeauty2.GetValue() * 2))
			SetInfoText("Inner beauty can sometimes be better than visuals. Generate "+x+" status per-stack every "+y+" seconds. Sex Stacks grant Health, Sperm Stacks grant Magicka, Milk Stacks grants Stamina. +: Desire Specialty increases effect by 20% :+")
		elseIf(option == spell_formalbeautyrank)
			SetInfoText("Generate 1 more status per-tick. No Rating Effect")
		elseIf(option == spell_formalbeautyrank2)
			SetInfoText("Increase Formal Beauty Frequency by 2 seconds. [Frequency caps at 0, ticking every second] No Rating Effect")
		elseIf(option == spell_seducer)
			int x = SuH_rank_seducer.GetValue() as int
			int y = Math.Floor(90 - (x*5))
			SetInfoText("Influence has a price, and it's worth it. Seduction Spells consume "+y+"% Health/Magicka/Stamina when successful.")
		elseIf(option == spell_seducerrank)
			SetInfoText("Reduce Successful Seduction cost by 5%. + Mind Rating")
		elseIf(option == spell_regalglow)
			int x = SuH_rank_regalglow.GetValue() as int
			int y = Math.Floor(x * 2)
			SetInfoText("Non-magic armor is just a bit too heavy. Equip 'Regal Glow' when not wearing any body armor, increasing Armor Rating by "+y+". [Regal Glow is effected by Light Armor enhancements][Compatibility : When Regal Glow is active the player counts as wearing body armor]")
		elseIf(option == spell_regalglowrank)
			SetInfoText("Adds 2 Armor to Regal Glow. + Body Rating")
		elseIf(option == spell_violence)
			int x = SuH_rank_violence.GetValue() as int
			int y = SuH_rank_violence2.GetValue() as int
			int z = SuH_rank_violence3.GetValue() as int
			SetInfoText("Making violence viable. When hitting an enemy absorb "+x+" Health, "+y+" Magicka, "+z+" Stamina. This effect can only happen once every 5 seconds.")
		elseIf(option == spell_violencerank)
			SetInfoText("Increase Health Absorption on hit by 1")
		elseIf(option == spell_violencerank2)
			SetInfoText("Increase Magicka Absorption on hit by 1")
		elseIf(option == spell_violencerank3)
			SetInfoText("Increase Stamina Absorption on hit by 1")
		endIf
	;end/
	;ent/ Perks
	elseif(CurrentPage == "Perks")
		if(option == perk_orgasm)
				int x = SuH_perk_orgasm.GetValue() as int
			SetInfoText("(Total Count = "+x+") Have the main character experience an orgasm. +12 BDSM per-rank")
		elseif(option == perk_absorb)
				int x = SuH_perk_absorb.GetValue() as int
			SetInfoText("(Total Count = "+x+") Absorb status from an NPC (or yourself... ^.-) in a sex act +1% XP Gain per rank")
		elseif(option == perk_sperm)
				int x = SuH_perk_sperm.GetValue() as int
			SetInfoText("(Total Count = "+x+") Consume Sperm. +5 Health Cap per rank")
		elseif(option == perk_milk)
				int x = SuH_perk_milk.GetValue() as int
			SetInfoText("(Total Count = "+x+") Consume Milk. +5 Health Cap per rank")
		endIF
	;end/
	;ent/ Soul Pets
	elseif(CurrentPage == "Soul Pets")
		if(option == pet_summonlevel)
			SetInfoText("Current Summoner Level (Increase by leveling up pets or obtaining bonuses)")
		elseif(option == pet_summonxp)
			SetInfoText("Summoner XP needed for next Summoner Level (Gain Summoner XP by leveling up pets or obtaining bonuses)")
		elseif(option == pet_currentleader)
			SetInfoText("Currently Disabled - Leader mechanic for when pets are summoned")
		elseif(option == pet_leaderdesire)
			SetInfoText("Currently Disabled - Tracks leader's desire")
		elseif(option == pet_dog)
			SetInfoText("Common Dog Summon, makes a great travel companion if you can stand barking.")
		elseif(option == pet_wolf)
			SetInfoText("Black Wolf Summon, he's a bit of a fright for locals.")
		elseif(option == pet_horse)
			SetInfoText("Brown Horse Summon, best ridden... unconventionally... =^.-=")
		elseif(option == pet_skeever)
			SetInfoText("Simple Skeever Summon, [insert cheesy pun about giant rats]")
		elseif(option == pet_familiar)
			SetInfoText("Flame Familiar Summon, he had a spider.")
		elseif(option == pet_bear)
			SetInfoText("Black Bear Summon, enjoys hibernation between summons.")
		elseif(option == pet_sabrecat)
			SetInfoText("Sabre Cat Summon, no yarn included.")
		elseif(option == pet_draugr)
			SetInfoText("Basic Draugr Summon, he was a man before... stuff happened.")
		elseif(option == pet_troll)
			SetInfoText("Troll Summon, he also does dank memes.")
		elseif(option == pet_spriggan)
			SetInfoText("Basic Spriggan Summon, nature's wood-light.")
		elseif(option == pet_horker)
			SetInfoText("Horker Summon, Horker.. with a PORKER! (I'm not sorry)")
		elseif(option == pet_falmer)
			SetInfoText("Basic Falmer Summon, oh how his race has fallen.")
		elseif(option == pet_husky)
			SetInfoText("Husky Summon, warm fur, warm blood.")
		elseif(option == pet_bristle)
			SetInfoText("Bristleback Summon, He can be a bit of a boar.")
		elseif(option == pet_Seeker)
			SetInfoText("Seeker Summon, the search is finally over.")
		elseif(option == pet_gargoyle)
			SetInfoText("Gargoyle Summon, he tends to prefer cliff sides and tall buildings.")
		elseif(option == pet_netch)
			SetInfoText("Netch Summon, I ran out of jokes.")
		elseif(option == pet_riekling)
			SetInfoText("Riekling Summon, only slightly better than a goblin.")
		elseif(option == pet_dogdesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_wolfdesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_horsedesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_skeeverdesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_familiardesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_beardesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_sabrecatdesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_draugrdesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_trolldesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_spriggandesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_horkerdesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_falmerdesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_huskydesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_bristledesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_seekerdesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_gargoyledesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_netchdesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		elseif(option == pet_rieklingdesire)
			SetInfoText("Sex Effects will apply to characters in acts with each pet. Theses effects scale based on the pet and summoner's combined level. [Note : Negative effects won't effect the player]")
		else
			SetInfoText(" ")
		endIf
	;end/
	;ent/ Help
	elseif(CurrentPage == "Help")
		;ent/ Descriptions
		;ent/ Basic Mechanics
		if(option == help1) ;Earning XP
			SetInfoText("XP [Short for 'Heart XP'] is obtained through Sex Acts and various items [such as milk/sperm]. XP can then be spent on various upgrades for your character. [Advanced notes available]")
		elseif(option == help2) ;XP Mechanics
			SetInfoText("When earning XP a few factors go into play, the base earning value [Determined by the act/item/spell/mod], Player level [adds a small bonus to the base value, determined by the act/item/spell/mod], XP Gain Stat [As expected, if the base is 10XP with a 110% XP gain stat, you earn 11XP instead], and Desire [Explained in Desire Consumption]. [Note : When player is an aggressor 20% is added, while as a victim 20% is subtracted]")
		elseif(option == help4) ;Earning SP
			SetInfoText("SP [Short for 'Skill Points'] is obtained when absorbing over the max-status allowed. When status is absorbed, any amount over the player's cap is turned into 'Force', then once enough Force is obtained an SP is earned. SP can then be spent on leveling Skills. Optionally XP can be converted into Force to earn SP more quickly. [Advanced notes available]")
		elseif(option == help23) ;SP Mechanics
			SetInfoText("SP requires Force to obtain, however the required amount is modified in a few ways. For every SP earned through Force Conversion [reaching the required Force value] the cost for another SP increases, however the value needed decreases with each Player Level. The Force Master Passive can also decrease the Force requirement.")
		elseif(option == help3) ;Desire
			SetInfoText("Desire generates naturally over time [this value can also be configured in the Settings Menu]. Desire is consumed in Sex Acts and by some Passives to provide a bonus. Optionally in the Settings Menu negative effects can be added to having high Desire. [Advanced Notes Available]")
		elseif(option == help24) ;Desire Consumption
			SetInfoText("Desire currently only offers boosts within Sex Acts. While in an Act 5% Desire is consumed each tick and is added directly into the XP earned that tick. Upon orgasm 80% Desire is consumed and added directly into the XP earned.")
		elseif(option == help5) ;Absorption
			SetInfoText("While in Sex Acts a Succubus/Incubus will drain partners of their Status, taking Max Health/Magicka/Stamina and increasing their own Max Health/Magicka/Stamina. When the player is involved the amount absorbed is determined by their Absorption Stats [which can be leveled with XP] however they can only earn Status up to their Cap [The Status Caps increase by 2 each Player Level and can also be increased with XP]. NPC Absorption stats and caps are all based on Level. [Note : When player is an aggressor 20% is added, while as a victim 20% is subtracted]")
		elseif(option == help11) ;Stacks
			SetInfoText("Sex/Sperm/Milk Stacks are earned by Orgasms/Consuming Sperm/Consuming Milk and are used by Passives for different bonuses. Instead of being Consumed Stacks Decay over time. Sex Stacks will decrease by 1 every 5 minutes, while Sperm/Milk Stacks will decrease by 1 every minute. Max Stacks and Stacks Earned can be increased with XP and Passives respectively. [Note: Stacks can't go below Zero.")
		elseif(option == help8) ;Sex Drops
			SetInfoText("Sex Drops are items obtained through character Orgasms. There are 2 types of Sex Drops, Basic and Rare. Basic drops are Sperm and Milk, these are always given to a character's partner when they orgasm. Rare Drops are special items given along-side sperm/milk, these items give large bonuses to the player and are fairly value-able, but they don't always drop and are fairly rare.")
		elseif(option == help9) ;Death Drops
			SetInfoText("Death Drops are items obtained from characters that die. When a character dies a 'Soul' item is added to their inventory, which can then be looted by the player. These souls provide different bonuses and act as a stable way for the player to progress without Sex Acts. These drops range from common to rare.")
		elseif(option == help20) ;Soul Pets
			SetInfoText("Soul Pets is external mod, integrated fully into Succubus Heart! Soul Pets allows several pets to be summoned, each gaining XP as they fight or participate in Sex Acts. Upon a Pet Level, Summoner XP is gained, which can then increase the Summoner Level, and the Pet gains some Status. To unlock new Pets and Abilities higher Levels will be required. Pets generate desire overtime and consumed when gaining XP. If Desire reaches 0 or the pet dies they will return the the Succubus Realm, if returning through death they will lose some of their Status Points.")
		elseif(option == help21) ;Succubus Realm
			SetInfoText("The Succubus Realm [which can be entered/exited using the connect/disconnect spells provided, fast travel can also be used to exit] is the 'Realm of the Heart' and acts as another world separated from Skyrim. This realm contains Succubus and Incubus NPCs along with a location for the player to explore. The Realm Entrances also provide a decent 'home base' location.")
		elseif(option == help12) ;Combat Seduction
			SetInfoText("Combat Seduction is a built-in Combat Submit mod! This feature has characters fall victim to aggressors [starts sex acts] when characters fall below the configured Health Thresholds. Combat Seduction is built to be light weight however it lacks any advanced features, so while it stands on it's own fairly well those looking for advanced features should make sure to disable this if they use any other Combat Submit mod.")
		elseif(option == help19) ;Death Override Mode
			SetInfoText("Death Override Mode is a built-in Death Alternative mod! With this feature the player will transport back into the Succubus Realm instead of dieing. Various effects can be configured to customize what effects this has. Disable if you use any other Death Alternative mods, or else things WILL break. [Note: The core design of Death Override Mode is to create Rogue-light features and encourage careful play]")
		;end/
		;ent/ Advanced Mechanics
		elseif(option == help6) ;BDSM Rating
			SetInfoText("Body Desire Soul Mind rating represent the Player Character's Succubus Rating. Improving different abilities will increase the overall BDSM Rating while learning Passives will decrease this rating, both improving abilities and learning Passives will increase different traits. BDSM will display a dominate trait based on the rating with the highest value, which can then alter the effects of some Passives.")
		elseif(option == help7) ;Passives
			SetInfoText("Passives will give the Player Character 'always on' abilities which trigger under specific conditions. Each Passive may have multiple paths which will change different aspects of each passive and can be ranked up just like abilities. BDSM Rating is required to learn Passives, acting similar to XP or SP and increasing as the Passive levels, however Passives can be reset at any time, returning the BDSM Rating to where it was.")
		elseif(option == help22) ;Tracking
			SetInfoText("Use the 'set to default' key on anything that requires XP to level and the required XP will be tracked (Will show a 'Tracking Set' message if done properly). Upon obtaining the proper XP a notification will let you know the selected ability can be level.")
		elseif(option == help25) ;Pet Sex Effects
			SetInfoText("Soul Pets can be assigned a sex effect. This effect will apply to characters in acts with them and scale based on the pet and summoner's level. Harmful effects won't apply to the player while beneficial ones will. [Note : Some Succubus Heart passives can also be used to help pets gain power, such as Gifted Consent which can grant status, counteracting death penalties]")
		;end/
		;end/
		;ent/ Reference
		elseif(option == r1)
			SetInfoText("Sexual Enrage : Spell : Seduction :Forces target to aggressively act")
		elseif(option == r2)
			SetInfoText("Sexual Entice : Spell : Seduction : Forces target into consensual act")
		elseif(option == r3)
			SetInfoText("Self Pleasure : Spell : Seduction : Automatically learned on MOD update [Begins solo act]")
		elseif(option == r4)
			SetInfoText("Night's Embrace : Spell : Seduction : Automatically learned on MOD update [Forces a sleeping target to submit, only works if target is sleeping]")
		elseif(option == r5)
			SetInfoText("Focus Shot : Spell : Heart : Obtained with XP [Has Base / Love / Hate variants] [Low Damage Spell]")
		elseif(option == r6)
			SetInfoText("Soul Bend : Spell : Heart : Obtained with XP [Has Base / Love / Hate variants] [High Damage Spell]")
		elseif(option == r7)
			SetInfoText("Intimate Touch : Spell : Heart : Obtained with XP [Has Base / Love / Hate variants] [Unaggressive Spell]")
		elseif(option == r8)
			SetInfoText("Vital Drain : Spell : Heart : Obtained with XP [Has Base / Love / Hate variants] [Draining Spell]")
		elseif(option == r9)
			SetInfoText("Cursed Blood : Spell : Heart : Obtained with XP [Has Base / Love / Hate variants] [Curse Spell]")
		elseif(option == r10)
			SetInfoText("Spirit Mend : Spell : Heart : Obtained with XP [Has Base / Love / Hate variants] [Recovery Spell]")
		elseif(option == r11)
			SetInfoText("Perfect Orgasm : Sex Passive : Improves orgasm benefits.")
		elseif(option == r47)
			SetInfoText("Seducer : Sex Passive : Effects Seduction Spells.")
		elseif(option == r12)
			SetInfoText("Luscious Liquids : Assist Passive : Improves consumption benefits of Milk and Sperm.")
		elseif(option == r13)
			SetInfoText("Masochist : Combat Passive : Grants bonuses and effects when hit.")
		elseif(option == r48)
			SetInfoText("Regal Glow : Combat Passive : Grants bonuses when not wearing armor.")
		elseif(option == r49)
			SetInfoText("Violence : Combat Passive : Grants absorption on hit.")
		elseif(option == r14)
			SetInfoText("Self Stacker : Assist Passive : Grants value with your own gender's stacks.")
		elseif(option == r15)
			SetInfoText("Value Stacker : Assist Passive : Triggers with Stack acquisition.")
		elseif(option == r16)
			SetInfoText("Saving Essence : Assist Passive : A boost useful in near-death situations.")
		elseif(option == r17)
			SetInfoText("Gifted Consent : Assist Passive : Grants partners bonuses.")
		elseif(option == r29)
			SetInfoText("Force Master : Assist Passive : Changes Force flow.")
		elseif(option == r46)
			SetInfoText("Formal Beauty : Assist Passive : Generates Status based on BDSM Rating.")
		elseif(option == r45)
			SetInfoText("Devious Partner : Sex Passive : Adds thief type tactics into sex acts.")
		elseif(option == r18)
			SetInfoText("Sperm : Item : Sex Drop : Drops from male orgasms [Grants XP and Absorption Effects]")
		elseif(option == r19)
			SetInfoText("Breast Milk : Item : Sex Drop : Drops from female orgasms [Grants XP and Absorption Effects]")
		elseif(option == r20)
			SetInfoText("Vitality Stone : Item : Sex Drop : Rare drop from orgasms [Increases Health, Magicka, and Stamina caps by 5]")
		elseif(option == r21)
			SetInfoText("Empower Stone : Item : Sex Drop : Rare drop from orgasms [Increases XP gain by 1%]")
		elseif(option == r22)
			SetInfoText("Specialty Stone : Item : Sex Drop : Rare drop from orgasms [Grants 3 SP - Doesn't effect Force Requirement]")
		elseif(option == r23)
			SetInfoText("Soul of Force : Item : Death Drop : Common drop from dying characters [Grants 100 Force]")
		elseif(option == r24)
			SetInfoText("Soul of Experience : Item : Death Drop : Common drop from dying characters [Grants bonus experience with a 250 Base Value]")
		elseif(option == r25)
			SetInfoText("Soul of Life : Item : Death Drop : Uncommon drop from dying characters [Increases Health Cap by 2]")
		elseif(option == r26)
			SetInfoText("Soul of Magic : Item : Death Drop : Uncommon drop from dying characters [Increases Magicka Cap by 2]")
		elseif(option == r27)
			SetInfoText("Soul of Power : Item : Death Drop : Uncommon drop from dying characters [Increases Stamina Cap by 2]")
		elseif(option == r28)
			SetInfoText("Soul of Desire : Item : Death Drop : Common drop from dying characters [Grants 800 Desire]")
		elseif(option == r30)
			SetInfoText("Train Pet : Spell : Pet : Trains the currently summoned pet (Prioritizes leader pet)")
		elseif(option == r31)
			SetInfoText("Dog [Incubus] : Actor : Soul Pet : Common Dog Summon")
		elseif(option == r32)
			SetInfoText("Wolf [Incubus] : Actor : Soul Pet : Black Wolf Summon")
		elseif(option == r33)
			SetInfoText("Horse [Incubus] : Actor : Soul Pet : Brown Horse Summon")
		elseif(option == r36)
			SetInfoText("Skeever [Incubus] : Actor : Soul Pet : Simple Skeever Summon")
		elseif(option == r37)
			SetInfoText("Flame Familiar [Incubus] : Actor : Soul Pet : Flame Familiar Summon")
		elseif(option == r38)
			SetInfoText("Bear [Incubus] : Actor : Soul Pet : Black Bear Summon")
		elseif(option == r39)
			SetInfoText("Sabre Cat [Incubus] : Actor : Soul Pet : Sabre Cat Summon")
		elseif(option == r40)
			SetInfoText("Draugr [Incubus] : Actor : Soul Pet : Simple Draugr Summon")
		elseif(option == r41)
			SetInfoText("Troll [Incubus] : Actor : Soul Pet : Black Troll Summon")
		elseif(option == r42)
			SetInfoText("Spriggan [Succubus] : Actor : Soul Pet : Simple Spriggan Summon")
		elseif(option == r43)
			SetInfoText("Horker [Incubus] : Actor : Soul Pet : Horker Summon")
		elseif(option == r44)
			SetInfoText("Falmer [Incubus] : Actor : Soul Pet : Simple Falmer Summon")
		elseif(option == r34)
			SetInfoText("Succubus Realm -Connect- : Spell : Teleports to the Succubus Realm entry point")
		elseif(option == r35)
			SetInfoText("Succubus Realm -Disconnect- : Spell : Returns from the Succubus Realm at the last teleported location (Teleports to the shrine if 'Spawn at Shrine' is enabled)")
		;end/
		endIf
	;end/
	endIf
endEvent
;end/