Scriptname RaceMenuPluginWeapons extends RaceMenuBase

bool Property WEAPONS_ENABLED = true AutoReadOnly ; Set this to false to rebuild if you don't want weapon scales

bool Property QUIVER_ENABLED = true AutoReadOnly ; Set this to false to rebuild if you don't want quiver styles

;Common Nodes
string Property NINODE_AXE = "WeaponAxe" AutoReadOnly
string Property NINODE_MACE = "WeaponMace" AutoReadOnly
string Property NINODE_SWORD = "WeaponSword" AutoReadOnly
string Property NINODE_DAGGER = "WeaponDagger" AutoReadOnly
string Property NINODE_WEAPON_BACK = "WeaponBack" AutoReadOnly
string Property NINODE_BOW = "WeaponBow" AutoReadOnly
string Property NINODE_QUIVER = "QUIVER" AutoReadOnly

;Dual Sheath Nodes
string Property NINODE_AXE_LEFT = "WeaponAxeLeft" AutoReadOnly
string Property NINODE_MACE_LEFT = "WeaponMaceLeft" AutoReadOnly
string Property NINODE_SWORD_LEFT = "WeaponSwordLeft" AutoReadOnly
string Property NINODE_DAGGER_LEFT = "WeaponDaggerLeft" AutoReadOnly
string Property NINODE_SHIELD_BACK = "ShieldBack" AutoReadOnly
string Property NINODE_STAFF = "WeaponStaff" AutoReadOnly
string Property NINODE_STAFF_LEFT = "WeaponStaffLeft" AutoReadOnly

;XPMS specific
string Property NINODE_BOLT = "BOLT" AutoReadOnly

;XPMSE specific
string Property NINODE_BOLT_QUIVER = "BOLT_QUIVER" AutoReadOnly

;XPMSE specific (CME)
string Property NINODE_AXE_DEFAULT_CME = "CME WeaponAxeDefault" AutoReadOnly
string Property NINODE_AXE_REVERSE_CME = "CME WeaponAxeReverse" AutoReadOnly
string Property NINODE_AXE_BACK_CME = "CME WeaponAxeOnBack" AutoReadOnly
string Property NINODE_AXE_LEFT_DEFAULT_CME = "CME WeaponAxeLeftDefault" AutoReadOnly
string Property NINODE_AXE_REVERSE_LEFT_CME = "CME WeaponAxeLeftReverse" AutoReadOnly
string Property NINODE_AXE_BACK_LEFT_CME = "CME WeaponAxeLeftOnBack" AutoReadOnly
string Property NINODE_MACE_DEFAULT_CME = "CME WeaponMaceDefault" AutoReadOnly
string Property NINODE_MACE_LEFT_DEFAULT_CME = "CME WeaponMaceLeftDefault" AutoReadOnly
string Property NINODE_SWORD_DEFAULT_CME = "CME WeaponSwordDefault" AutoReadOnly
string Property NINODE_SWORD_BACK_CME = "CME WeaponSwordOnBack" AutoReadOnly
string Property NINODE_SWORD_SWP_CME = "CME WeaponSwordSWP" AutoReadOnly
string Property NINODE_SWORD_FSM_CME = "CME WeaponSwordFSM" AutoReadOnly
string Property NINODE_SWORD_LEFTHIP_CME = "CME WeaponSwordLeftHip" AutoReadOnly
string Property NINODE_SWORD_LEFT_DEFAULT_CME = "CME WeaponSwordLeftDefault" AutoReadOnly
string Property NINODE_SWORD_LEFT_BACK_CME = "CME WeaponSwordLeftOnBack" AutoReadOnly
string Property NINODE_SWORD_LEFT_SWP_CME = "CME WeaponSwordLeftSWP" AutoReadOnly
string Property NINODE_SWORD_LEFT_FSM_CME = "CME WeaponSwordLeftFSM" AutoReadOnly
string Property NINODE_SWORD_LEFT_LEFTHIP_CME = "CME WeaponSwordLeftLeftHip" AutoReadOnly
string Property NINODE_DAGGER_DEFAULT_CME = "CME WeaponDaggerDefault" AutoReadOnly
string Property NINODE_DAGGER_BACKHIP_CME = "CME WeaponDaggerBackHip" AutoReadOnly
string Property NINODE_DAGGER_ANKLE_CME = "CME WeaponDaggerAnkle" AutoReadOnly
string Property NINODE_DAGGER_LEFT_DEFAULT_CME = "CME WeaponDaggerLeftDefault" AutoReadOnly
string Property NINODE_DAGGER_LEFT_BACKHIP_CME = "CME WeaponDaggerLeftBackHip" AutoReadOnly
string Property NINODE_DAGGER_LEFT_ANKLE_CME = "CME WeaponDaggerLeftAnkle" AutoReadOnly
string Property NINODE_WEAPON_BACK_DEFAULT_CME = "CME WeaponBackDefault" AutoReadOnly
string Property NINODE_WEAPON_BACK_SWP_CME = "CME WeaponBackSWP" AutoReadOnly
string Property NINODE_WEAPON_BACK_FSM_CME = "CME WeaponBackFSM" AutoReadOnly
string Property NINODE_SHIELD_BACK_DEFAULT_CME = "CME ShieldBackDefault" AutoReadOnly
string Property NINODE_STAFF_DEFAULT_CME = "CME WeaponStaffDefault" AutoReadOnly
string Property NINODE_STAFF_LEFT_DEFAULT_CME = "CME WeaponStaffLeftDefault" AutoReadOnly
string Property NINODE_BOW_DEFAULT_CME = "CME WeaponBowDefault" AutoReadOnly
string Property NINODE_BOW_CHESKO_CME = "CME WeaponBowChesko" AutoReadOnly
string Property NINODE_BOW_BETTER_CME = "CME WeaponBowBetter" AutoReadOnly
string Property NINODE_BOW_FSM_CME = "CME WeaponBowFSM" AutoReadOnly
string Property NINODE_QUIVER_DEFAULT_CME = "CME QUIVERDefault" AutoReadOnly
string Property NINODE_QUIVER_CHESKO_CME = "CME QUIVERChesko" AutoReadOnly
string Property NINODE_QUIVER_LEFTHIP_CME = "CME QUIVERLeftHipBolt" AutoReadOnly
string Property NINODE_BOLT_CME = "CME BOLT" AutoReadOnly
string Property NINODE_BOLT_QUIVER_CME = "CME BOLT_QUIVER" AutoReadOnly

;XPMSE specific (MOV)
string Property NINODE_AXE_DEFAULT_MOV = "MOV WeaponAxeDefault" AutoReadOnly
string Property NINODE_AXE_REVERSE_MOV = "MOV WeaponAxeReverse" AutoReadOnly
string Property NINODE_AXE_BACK_MOV = "MOV WeaponAxeOnBack" AutoReadOnly
string Property NINODE_AXE_LEFT_DEFAULT_MOV = "MOV WeaponAxeLeftDefault" AutoReadOnly
string Property NINODE_AXE_REVERSE_LEFT_MOV = "MOV WeaponAxeLeftReverse" AutoReadOnly
string Property NINODE_AXE_BACK_LEFT_MOV = "MOV WeaponAxeLeftOnBack" AutoReadOnly
string Property NINODE_MACE_DEFAULT_MOV = "MOV WeaponMaceDefault" AutoReadOnly
string Property NINODE_MACE_LEFT_DEFAULT_MOV = "MOV WeaponMaceLeftDefault" AutoReadOnly
string Property NINODE_SWORD_DEFAULT_MOV = "MOV WeaponSwordDefault" AutoReadOnly
string Property NINODE_SWORD_BACK_MOV = "MOV WeaponSwordOnBack" AutoReadOnly
string Property NINODE_SWORD_SWP_MOV = "MOV WeaponSwordSWP" AutoReadOnly
string Property NINODE_SWORD_FSM_MOV = "MOV WeaponSwordFSM" AutoReadOnly
string Property NINODE_SWORD_LEFTHIP_MOV = "MOV WeaponSwordLeftHip" AutoReadOnly
string Property NINODE_SWORD_LEFT_DEFAULT_MOV = "MOV WeaponSwordLeftDefault" AutoReadOnly
string Property NINODE_SWORD_LEFT_BACK_MOV = "MOV WeaponSwordLeftOnBack" AutoReadOnly
string Property NINODE_SWORD_LEFT_SWP_MOV = "MOV WeaponSwordLeftSWP" AutoReadOnly
string Property NINODE_SWORD_LEFT_FSM_MOV = "MOV WeaponSwordLeftFSM" AutoReadOnly
string Property NINODE_SWORD_LEFT_LEFTHIP_MOV = "MOV WeaponSwordLeftLeftHip" AutoReadOnly
string Property NINODE_DAGGER_DEFAULT_MOV = "MOV WeaponDaggerDefault" AutoReadOnly
string Property NINODE_DAGGER_BACKHIP_MOV = "MOV WeaponDaggerBackHip" AutoReadOnly
string Property NINODE_DAGGER_ANKLE_MOV = "MOV WeaponDaggerAnkle" AutoReadOnly
string Property NINODE_DAGGER_LEFT_DEFAULT_MOV = "MOV WeaponDaggerLeftDefault" AutoReadOnly
string Property NINODE_DAGGER_LEFT_BACKHIP_MOV = "MOV WeaponDaggerLeftBackHip" AutoReadOnly
string Property NINODE_DAGGER_LEFT_ANKLE_MOV = "MOV WeaponDaggerLeftAnkle" AutoReadOnly
string Property NINODE_WEAPON_BACK_DEFAULT_MOV = "MOV WeaponBackDefault" AutoReadOnly
string Property NINODE_WEAPON_BACK_SWP_MOV = "MOV WeaponBackSWP" AutoReadOnly
string Property NINODE_WEAPON_BACK_FSM_MOV = "MOV WeaponBackFSM" AutoReadOnly
string Property NINODE_SHIELD_BACK_DEFAULT_MOV = "MOV ShieldBackDefault" AutoReadOnly
string Property NINODE_STAFF_DEFAULT_MOV = "MOV WeaponStaffDefault" AutoReadOnly
string Property NINODE_STAFF_LEFT_DEFAULT_MOV = "MOV WeaponStaffLeftDefault" AutoReadOnly
string Property NINODE_BOW_DEFAULT_MOV = "MOV WeaponBowDefault" AutoReadOnly
string Property NINODE_BOW_CHESKO_MOV = "MOV WeaponBowChesko" AutoReadOnly
string Property NINODE_BOW_BETTER_MOV = "MOV WeaponBowBetter" AutoReadOnly
string Property NINODE_BOW_FSM_MOV = "MOV WeaponBowFSM" AutoReadOnly
string Property NINODE_QUIVER_DEFAULT_MOV = "MOV QUIVERDefault" AutoReadOnly
string Property NINODE_QUIVER_CHESKO_MOV = "MOV QUIVERChesko" AutoReadOnly
string Property NINODE_QUIVER_LEFTHIP_MOV = "MOV QUIVERLeftHipBolt" AutoReadOnly
string Property NINODE_BOLT_MOV = "MOV BOLT" AutoReadOnly
string Property NINODE_BOLT_QUIVER_MOV = "MOV BOLT_QUIVER" AutoReadOnly

;Callbacks Table
string Property CALLBACK_AXE_STYLE = "XPMSEChangeAxeStyle" AutoReadOnly
string Property CALLBACK_AXE_SCALE = "XPMSEChangeAxeScale" AutoReadOnly
string Property CALLBACK_AXE_POSX = "XPMSEChangeAxePosX" AutoReadOnly
string Property CALLBACK_AXE_POSY = "XPMSEChangeAxePosY" AutoReadOnly
string Property CALLBACK_AXE_POSZ = "XPMSEChangeAxePosZ" AutoReadOnly
string Property CALLBACK_AXE_ROTY = "XPMSEChangeAxeRotY" AutoReadOnly
string Property CALLBACK_AXE_ROTP = "XPMSEChangeAxeRotP" AutoReadOnly
string Property CALLBACK_AXE_ROTR = "XPMSEChangeAxeRotR" AutoReadOnly
string Property CALLBACK_AXE_LEFT_STYLE = "XPMSEChangeAxeLeftStyle" AutoReadOnly
string Property CALLBACK_AXE_LEFT_SCALE = "XPMSEChangeAxeLeftScale" AutoReadOnly
string Property CALLBACK_AXE_LEFT_POSX = "XPMSEChangeAxeLeftPosX" AutoReadOnly
string Property CALLBACK_AXE_LEFT_POSY = "XPMSEChangeAxeLeftPosY" AutoReadOnly
string Property CALLBACK_AXE_LEFT_POSZ = "XPMSEChangeAxeLeftPosZ" AutoReadOnly
string Property CALLBACK_AXE_LEFT_ROTY = "XPMSEChangeAxeLeftRotY" AutoReadOnly
string Property CALLBACK_AXE_LEFT_ROTP = "XPMSEChangeAxeLeftRotP" AutoReadOnly
string Property CALLBACK_AXE_LEFT_ROTR = "XPMSEChangeAxeLeftRotR" AutoReadOnly
string Property CALLBACK_MACE_STYLE = "XPMSEChangeMaceStyle" AutoReadOnly
string Property CALLBACK_MACE_SCALE = "XPMSEChangeMaceScale" AutoReadOnly
string Property CALLBACK_MACE_POSX = "XPMSEChangeMacePosX" AutoReadOnly
string Property CALLBACK_MACE_POSY = "XPMSEChangeMacePosY" AutoReadOnly
string Property CALLBACK_MACE_POSZ = "XPMSEChangeMacePosZ" AutoReadOnly
string Property CALLBACK_MACE_ROTY = "XPMSEChangeMaceRotY" AutoReadOnly
string Property CALLBACK_MACE_ROTP = "XPMSEChangeMaceRotP" AutoReadOnly
string Property CALLBACK_MACE_ROTR = "XPMSEChangeMaceRotR" AutoReadOnly
string Property CALLBACK_MACE_LEFT_STYLE = "XPMSEChangeMaceLeftStyle" AutoReadOnly
string Property CALLBACK_MACE_LEFT_SCALE = "XPMSEChangeMaceLeftScale" AutoReadOnly
string Property CALLBACK_MACE_LEFT_POSX = "XPMSEChangeMaceLeftPosX" AutoReadOnly
string Property CALLBACK_MACE_LEFT_POSY = "XPMSEChangeMaceLeftPosY" AutoReadOnly
string Property CALLBACK_MACE_LEFT_POSZ = "XPMSEChangeMaceLeftPosZ" AutoReadOnly
string Property CALLBACK_MACE_LEFT_ROTY = "XPMSEChangeMaceLeftRotY" AutoReadOnly
string Property CALLBACK_MACE_LEFT_ROTP = "XPMSEChangeMaceLeftRotP" AutoReadOnly
string Property CALLBACK_MACE_LEFT_ROTR = "XPMSEChangeMaceLeftRotR" AutoReadOnly
string Property CALLBACK_SWORD_STYLE = "XPMSEChangeSwordStyle" AutoReadOnly
string Property CALLBACK_SWORD_SCALE = "XPMSEChangeSwordScale" AutoReadOnly
string Property CALLBACK_SWORD_POSX = "XPMSEChangeSwordPosX" AutoReadOnly
string Property CALLBACK_SWORD_POSY = "XPMSEChangeSwordPosY" AutoReadOnly
string Property CALLBACK_SWORD_POSZ = "XPMSEChangeSwordPosZ" AutoReadOnly
string Property CALLBACK_SWORD_ROTY = "XPMSEChangeSwordRotY" AutoReadOnly
string Property CALLBACK_SWORD_ROTP = "XPMSEChangeSwordRotP" AutoReadOnly
string Property CALLBACK_SWORD_ROTR = "XPMSEChangeSwordRotR" AutoReadOnly
string Property CALLBACK_SWORD_LEFT_STYLE = "XPMSEChangeSwordLeftStyle" AutoReadOnly
string Property CALLBACK_SWORD_LEFT_SCALE = "XPMSEChangeSwordLeftScale" AutoReadOnly
string Property CALLBACK_SWORD_LEFT_POSX = "XPMSEChangeSwordLeftPosX" AutoReadOnly
string Property CALLBACK_SWORD_LEFT_POSY = "XPMSEChangeSwordLeftPosY" AutoReadOnly
string Property CALLBACK_SWORD_LEFT_POSZ = "XPMSEChangeSwordLeftPosZ" AutoReadOnly
string Property CALLBACK_SWORD_LEFT_ROTY = "XPMSEChangeSwordLeftRotY" AutoReadOnly
string Property CALLBACK_SWORD_LEFT_ROTP = "XPMSEChangeSwordLeftRotP" AutoReadOnly
string Property CALLBACK_SWORD_LEFT_ROTR = "XPMSEChangeSwordLeftRotR" AutoReadOnly
string Property CALLBACK_DAGGER_STYLE = "XPMSEChangeDaggerStyle" AutoReadOnly
string Property CALLBACK_DAGGER_SCALE = "XPMSEChangeDaggerScale" AutoReadOnly
string Property CALLBACK_DAGGER_POSX = "XPMSEChangeDaggerPosX" AutoReadOnly
string Property CALLBACK_DAGGER_POSY = "XPMSEChangeDaggerPosY" AutoReadOnly
string Property CALLBACK_DAGGER_POSZ = "XPMSEChangeDaggerPosZ" AutoReadOnly
string Property CALLBACK_DAGGER_ROTY = "XPMSEChangeDaggerRotY" AutoReadOnly
string Property CALLBACK_DAGGER_ROTP = "XPMSEChangeDaggerRotP" AutoReadOnly
string Property CALLBACK_DAGGER_ROTR = "XPMSEChangeDaggerRotR" AutoReadOnly
string Property CALLBACK_DAGGER_LEFT_STYLE = "XPMSEChangeDaggerLeftStyle" AutoReadOnly
string Property CALLBACK_DAGGER_LEFT_SCALE = "XPMSEChangeDaggerLeftScale" AutoReadOnly
string Property CALLBACK_DAGGER_LEFT_POSX = "XPMSEChangeDaggerLeftPosX" AutoReadOnly
string Property CALLBACK_DAGGER_LEFT_POSY = "XPMSEChangeDaggerLeftPosY" AutoReadOnly
string Property CALLBACK_DAGGER_LEFT_POSZ = "XPMSEChangeDaggerLeftPosZ" AutoReadOnly
string Property CALLBACK_DAGGER_LEFT_ROTY = "XPMSEChangeDaggerLeftRotY" AutoReadOnly
string Property CALLBACK_DAGGER_LEFT_ROTP = "XPMSEChangeDaggerLeftRotP" AutoReadOnly
string Property CALLBACK_DAGGER_LEFT_ROTR = "XPMSEChangeDaggerLeftRotR" AutoReadOnly
string Property CALLBACK_WEAPON_BACK_STYLE = "XPMSEChangeWeaponBackStyle" AutoReadOnly
string Property CALLBACK_WEAPON_BACK_SCALE = "XPMSEChangeWeaponBackScale" AutoReadOnly
string Property CALLBACK_WEAPON_BACK_POSX = "XPMSEChangeWeaponBackPosX" AutoReadOnly
string Property CALLBACK_WEAPON_BACK_POSY = "XPMSEChangeWeaponBackPosY" AutoReadOnly
string Property CALLBACK_WEAPON_BACK_POSZ = "XPMSEChangeWeaponBackPosZ" AutoReadOnly
string Property CALLBACK_WEAPON_BACK_ROTY = "XPMSEChangeWeaponBackRotY" AutoReadOnly
string Property CALLBACK_WEAPON_BACK_ROTP = "XPMSEChangeWeaponBackRotP" AutoReadOnly
string Property CALLBACK_WEAPON_BACK_ROTR = "XPMSEChangeWeaponBackRotR" AutoReadOnly
string Property CALLBACK_SHIELD_BACK_STYLE = "XPMSEChangeShieldBackStyle" AutoReadOnly
string Property CALLBACK_SHIELD_BACK_SCALE = "XPMSEChangeShieldBackScale" AutoReadOnly
string Property CALLBACK_SHIELD_BACK_POSX = "XPMSEChangeShieldBackPosX" AutoReadOnly
string Property CALLBACK_SHIELD_BACK_POSY = "XPMSEChangeShieldBackPosY" AutoReadOnly
string Property CALLBACK_SHIELD_BACK_POSZ = "XPMSEChangeShieldBackPosZ" AutoReadOnly
string Property CALLBACK_SHIELD_BACK_ROTY = "XPMSEChangeShieldBackRotY" AutoReadOnly
string Property CALLBACK_SHIELD_BACK_ROTP = "XPMSEChangeShieldBackRotP" AutoReadOnly
string Property CALLBACK_SHIELD_BACK_ROTR = "XPMSEChangeShieldBackRotR" AutoReadOnly
string Property CALLBACK_STAFF_STYLE = "XPMSEChangeStaffStyle" AutoReadOnly
string Property CALLBACK_STAFF_SCALE = "XPMSEChangeStaffScale" AutoReadOnly
string Property CALLBACK_STAFF_POSX = "XPMSEChangeStaffPosX" AutoReadOnly
string Property CALLBACK_STAFF_POSY = "XPMSEChangeStaffPosY" AutoReadOnly
string Property CALLBACK_STAFF_POSZ = "XPMSEChangeStaffPosZ" AutoReadOnly
string Property CALLBACK_STAFF_ROTY = "XPMSEChangeStaffRotY" AutoReadOnly
string Property CALLBACK_STAFF_ROTP = "XPMSEChangeStaffRotP" AutoReadOnly
string Property CALLBACK_STAFF_ROTR = "XPMSEChangeStaffRotR" AutoReadOnly
string Property CALLBACK_STAFF_LEFT_STYLE = "XPMSEChangeStaffLeftStyle" AutoReadOnly
string Property CALLBACK_STAFF_LEFT_SCALE = "XPMSEChangeStaffLeftScale" AutoReadOnly
string Property CALLBACK_STAFF_LEFT_POSX = "XPMSEChangeStaffLeftPosX" AutoReadOnly
string Property CALLBACK_STAFF_LEFT_POSY = "XPMSEChangeStaffLeftPosY" AutoReadOnly
string Property CALLBACK_STAFF_LEFT_POSZ = "XPMSEChangeStaffLeftPosZ" AutoReadOnly
string Property CALLBACK_STAFF_LEFT_ROTY = "XPMSEChangeStaffLeftRotY" AutoReadOnly
string Property CALLBACK_STAFF_LEFT_ROTP = "XPMSEChangeStaffLeftRotP" AutoReadOnly
string Property CALLBACK_STAFF_LEFT_ROTR = "XPMSEChangeStaffLeftRotR" AutoReadOnly
string Property CALLBACK_BOW_STYLE = "XPMSEChangeBowStyle" AutoReadOnly
string Property CALLBACK_BOW_SCALE = "XPMSEChangeBowScale" AutoReadOnly
string Property CALLBACK_BOW_POSX = "XPMSEChangeBowPosX" AutoReadOnly
string Property CALLBACK_BOW_POSY = "XPMSEChangeBowPosY" AutoReadOnly
string Property CALLBACK_BOW_POSZ = "XPMSEChangeBowPosZ" AutoReadOnly
string Property CALLBACK_BOW_ROTY = "XPMSEChangeBowRotY" AutoReadOnly
string Property CALLBACK_BOW_ROTP = "XPMSEChangeBowRotP" AutoReadOnly
string Property CALLBACK_BOW_ROTR = "XPMSEChangeBowRotR" AutoReadOnly
string Property CALLBACK_QUIVER_STYLE = "XPMSEChangeQuiverStyle" AutoReadOnly
string Property CALLBACK_QUIVER_SCALE = "XPMSEChangeQuiverScale" AutoReadOnly
string Property CALLBACK_QUIVER_POSX = "XPMSEChangeQuiverPosX" AutoReadOnly
string Property CALLBACK_QUIVER_POSY = "XPMSEChangeQuiverPosY" AutoReadOnly
string Property CALLBACK_QUIVER_POSZ = "XPMSEChangeQuiverPosZ" AutoReadOnly
string Property CALLBACK_QUIVER_ROTY = "XPMSEChangeQuiverRotY" AutoReadOnly
string Property CALLBACK_QUIVER_ROTP = "XPMSEChangeQuiverRotP" AutoReadOnly
string Property CALLBACK_QUIVER_ROTR = "XPMSEChangeQuiverRotR" AutoReadOnly
string Property CALLBACK_BOLT_STYLE = "XPMSEChangeBoltStyle" AutoReadOnly
string Property CALLBACK_BOLT_SCALE = "XPMSEChangeBoltScale" AutoReadOnly
string Property CALLBACK_BOLT_POSX = "XPMSEChangeBoltPosX" AutoReadOnly
string Property CALLBACK_BOLT_POSY = "XPMSEChangeBoltPosY" AutoReadOnly
string Property CALLBACK_BOLT_POSZ = "XPMSEChangeBoltPosZ" AutoReadOnly
string Property CALLBACK_BOLT_ROTY = "XPMSEChangeBoltRotY" AutoReadOnly
string Property CALLBACK_BOLT_ROTP = "XPMSEChangeBoltRotP" AutoReadOnly
string Property CALLBACK_BOLT_ROTR = "XPMSEChangeBoltRotR" AutoReadOnly
string Property CALLBACK_BOLT_QUIVER_STYLE = "XPMSEChangeBoltQuiverStyle" AutoReadOnly
string Property CALLBACK_BOLT_QUIVER_SCALE = "XPMSEChangeBoltQuiverScale" AutoReadOnly
string Property CALLBACK_BOLT_QUIVER_POSX = "XPMSEChangeBoltQuiverPosX" AutoReadOnly
string Property CALLBACK_BOLT_QUIVER_POSY = "XPMSEChangeBoltQuiverPosY" AutoReadOnly
string Property CALLBACK_BOLT_QUIVER_POSZ = "XPMSEChangeBoltQuiverPosZ" AutoReadOnly
string Property CALLBACK_BOLT_QUIVER_ROTY = "XPMSEChangeBoltQuiverRotY" AutoReadOnly
string Property CALLBACK_BOLT_QUIVER_ROTP = "XPMSEChangeBoltQuiverRotP" AutoReadOnly
string Property CALLBACK_BOLT_QUIVER_ROTR = "XPMSEChangeBoltQuiverRotR" AutoReadOnly

; If you are making your own scaling mod, use your own key name
string Property MOD_OVERRIDE_KEY = "RMWPlugin" AutoReadOnly

string Property CATEGORY_WEAPON = "rsm_weapon" AutoReadOnly

; NiOverride version data
int Property NIOVERRIDE_VERSION = 3 AutoReadOnly
int Property NIOVERRIDE_SCRIPT_VERSION = 2 AutoReadOnly

bool _versionValid = false

;Arrays
float[] _axe_Position
float[] _axe_Rotation
float[] _axeLeft_Position
float[] _axeLeft_Rotation
float[] _mace_Position
float[] _mace_Rotation
float[] _maceLeft_Position
float[] _maceLeft_Rotation
float[] _sword_Position
float[] _sword_Rotation
float[] _swordLeft_Position
float[] _swordLeft_Rotation
float[] _dagger_Position
float[] _dagger_Rotation
float[] _daggerLeft_Position
float[] _daggerLeft_Rotation
float[] _weaponBack_Position
float[] _weaponBack_Rotation
float[] _shieldBack_Position
float[] _shieldBack_Rotation
float[] _staff_Position
float[] _staff_Rotation
float[] _staffLeft_Position
float[] _staffLeft_Rotation
float[] _bow_Position
float[] _bow_Rotation
float[] _quiver_Position
float[] _quiver_Rotation
float[] _bolt_Position
float[] _bolt_Rotation
float[] _boltquiver_Position
float[] _boltquiver_Rotation

float _axe_Style
float _axeLeft_Style
float _mace_Style
float _maceLeft_Style
float _sword_Style
float _swordLeft_Style
float _dagger_Style
float _daggerLeft_Style
float _weaponBack_Style
float _shieldBack_Style
float _staff_Style
float _staffLeft_Style
float _bow_Style
float _quiver_Style
float _bolt_Style
float _boltquiver_Style

Event OnCategoryRequest()
	AddCategory(CATEGORY_WEAPON, "$CATEGORY WEAPONS")
EndEvent

Event OnStartup()
	parent.OnStartup()

	int nioverrideVersion = SKSE.GetPluginVersion("NiOverride")
	int nioverrideScriptVersion = NiOverride.GetScriptVersion()

	; Check NiOverride version, disable most features if this fails
	if nioverrideVersion >= NIOVERRIDE_VERSION && nioverrideScriptVersion >= NIOVERRIDE_SCRIPT_VERSION
		_versionValid = true
	Else
		_versionValid = false
	Endif
EndEvent

; Add Custom sliders here
Event OnSliderRequest(Actor target, ActorBase targetBase, Race actorRace, bool isFemale)
	If WEAPONS_ENABLED
		If NetImmerse.HasNode(target, NINODE_AXE_DEFAULT_MOV, false) && NetImmerse.HasNode(target, NINODE_AXE_REVERSE_MOV, false) && NetImmerse.HasNode(target, NINODE_AXE_BACK_MOV, false)
			AddSliderEx("$Axe Style", CATEGORY_WEAPON, CALLBACK_AXE_STYLE, 0.00, 2.00, 1.00, _axe_Style)
		Endif
		If NetImmerse.HasNode(target, NINODE_AXE, false)
			AddSliderEx("$Axe Scale", CATEGORY_WEAPON, CALLBACK_AXE_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_AXE))
		Endif
		If NetImmerse.HasNode(target, NINODE_AXE_DEFAULT_CME, false) && NetImmerse.HasNode(target, NINODE_AXE_REVERSE_CME, false) && NetImmerse.HasNode(target, NINODE_AXE_BACK_CME, false)
			_axe_Position = GetNodePosition(target, isFemale, NINODE_AXE_DEFAULT_CME)
			AddSliderEx("$Axe Pos X", CATEGORY_WEAPON, CALLBACK_AXE_POSX, -20.00, 20.00, 0.01, _axe_Position[0])
			AddSliderEx("$Axe Pos Y", CATEGORY_WEAPON, CALLBACK_AXE_POSY, -20.00, 20.00, 0.01, _axe_Position[1])
			AddSliderEx("$Axe Pos Z", CATEGORY_WEAPON, CALLBACK_AXE_POSZ, -20.00, 20.00, 0.01, _axe_Position[2])
			_axe_Rotation = GetNodeRotation(target, isFemale, NINODE_AXE_DEFAULT_CME)
			AddSliderEx("$Axe Rot Y", CATEGORY_WEAPON, CALLBACK_AXE_ROTY, -180.0, 180.0, 0.01, _axe_Rotation[0])
			AddSliderEx("$Axe Rot P", CATEGORY_WEAPON, CALLBACK_AXE_ROTP, -180.0, 180.0, 0.01, _axe_Rotation[1])
			AddSliderEx("$Axe Rot R", CATEGORY_WEAPON, CALLBACK_AXE_ROTR, -180.0, 180.0, 0.01, _axe_Rotation[2])
		Endif
		If NetImmerse.HasNode(target, NINODE_AXE_LEFT_DEFAULT_MOV, false) && NetImmerse.HasNode(target, NINODE_AXE_REVERSE_LEFT_MOV, false) && NetImmerse.HasNode(target, NINODE_AXE_BACK_LEFT_MOV, false)
			AddSliderEx("$Axe Left Style", CATEGORY_WEAPON, CALLBACK_AXE_LEFT_STYLE, 0.00, 2.00, 1.00, _axeLeft_Style)
		Endif
		If NetImmerse.HasNode(target, NINODE_AXE_LEFT, false)
			AddSliderEx("$Axe Left Scale", CATEGORY_WEAPON, CALLBACK_AXE_LEFT_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_AXE_LEFT))
		Endif
		If NetImmerse.HasNode(target, NINODE_AXE_LEFT_DEFAULT_CME, false) && NetImmerse.HasNode(target, NINODE_AXE_REVERSE_LEFT_CME, false) && NetImmerse.HasNode(target, NINODE_AXE_BACK_LEFT_CME, false)
			_axeLeft_Position = GetNodePosition(target, isFemale, NINODE_AXE_LEFT_DEFAULT_CME)
			AddSliderEx("$Axe Left Pos X", CATEGORY_WEAPON, CALLBACK_AXE_LEFT_POSX, -20.00, 20.00, 0.01, _axeLeft_Position[0])
			AddSliderEx("$Axe Left Pos Y", CATEGORY_WEAPON, CALLBACK_AXE_LEFT_POSY, -20.00, 20.00, 0.01, _axeLeft_Position[1])
			AddSliderEx("$Axe Left Pos Z", CATEGORY_WEAPON, CALLBACK_AXE_LEFT_POSZ, -20.00, 20.00, 0.01, _axeLeft_Position[2])
			_axeLeft_Rotation = GetNodeRotation(target, isFemale, NINODE_AXE_LEFT_DEFAULT_CME)
			AddSliderEx("$Axe Left Rot Y", CATEGORY_WEAPON, CALLBACK_AXE_LEFT_ROTY, -180.0, 180.0, 0.01, _axeLeft_Rotation[0])
			AddSliderEx("$Axe Left Rot P", CATEGORY_WEAPON, CALLBACK_AXE_LEFT_ROTP, -180.0, 180.0, 0.01, _axeLeft_Rotation[1])
			AddSliderEx("$Axe Left Rot R", CATEGORY_WEAPON, CALLBACK_AXE_LEFT_ROTR, -180.0, 180.0, 0.01, _axeLeft_Rotation[2])
		Endif
		If NetImmerse.HasNode(target, NINODE_MACE_DEFAULT_MOV, false)
			AddSliderEx("$Mace Style", CATEGORY_WEAPON, CALLBACK_MACE_STYLE, 0.00, 0.00, 1.00, _mace_Style)
		Endif
		If NetImmerse.HasNode(target, NINODE_MACE, false)
			AddSliderEx("$Mace Scale", CATEGORY_WEAPON, CALLBACK_MACE_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_MACE))
		Endif
		If NetImmerse.HasNode(target, NINODE_MACE_DEFAULT_CME, false)
			_mace_Position = GetNodePosition(target, isFemale, NINODE_MACE_DEFAULT_CME)
			AddSliderEx("$Mace Pos X", CATEGORY_WEAPON, CALLBACK_MACE_POSX, -20.00, 20.00, 0.01, _mace_Position[0])
			AddSliderEx("$Mace Pos Y", CATEGORY_WEAPON, CALLBACK_MACE_POSY, -20.00, 20.00, 0.01, _mace_Position[1])
			AddSliderEx("$Mace Pos Z", CATEGORY_WEAPON, CALLBACK_MACE_POSZ, -20.00, 20.00, 0.01, _mace_Position[2])
			_mace_Rotation = GetNodeRotation(target, isFemale, NINODE_MACE_DEFAULT_CME)
			AddSliderEx("$Mace Rot Y", CATEGORY_WEAPON, CALLBACK_MACE_ROTY, -180.0, 180.0, 0.01, _mace_Rotation[0])
			AddSliderEx("$Mace Rot P", CATEGORY_WEAPON, CALLBACK_MACE_ROTP, -180.0, 180.0, 0.01, _mace_Rotation[1])
			AddSliderEx("$Mace Rot R", CATEGORY_WEAPON, CALLBACK_MACE_ROTR, -180.0, 180.0, 0.01, _mace_Rotation[2])
		Endif
		If NetImmerse.HasNode(target, NINODE_MACE_LEFT_DEFAULT_MOV, false)
			AddSliderEx("$Mace Left Style", CATEGORY_WEAPON, CALLBACK_MACE_LEFT_STYLE, 0.00, 0.00, 1.00, _maceLeft_Style)
		Endif
		If NetImmerse.HasNode(target, NINODE_MACE_LEFT, false)
			AddSliderEx("$Mace Left Scale", CATEGORY_WEAPON, CALLBACK_MACE_LEFT_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_MACE_LEFT))
		Endif
		If NetImmerse.HasNode(target, NINODE_MACE_LEFT_DEFAULT_CME, false)
			_maceLeft_Position = GetNodePosition(target, isFemale, NINODE_MACE_LEFT_DEFAULT_CME)
			AddSliderEx("$Mace Left Pos X", CATEGORY_WEAPON, CALLBACK_MACE_LEFT_POSX, -20.00, 20.00, 0.01, _maceLeft_Position[0])
			AddSliderEx("$Mace Left Pos Y", CATEGORY_WEAPON, CALLBACK_MACE_LEFT_POSY, -20.00, 20.00, 0.01, _maceLeft_Position[1])
			AddSliderEx("$Mace Left Pos Z", CATEGORY_WEAPON, CALLBACK_MACE_LEFT_POSZ, -20.00, 20.00, 0.01, _maceLeft_Position[2])
			_maceLeft_Rotation = GetNodeRotation(target, isFemale, NINODE_MACE_LEFT_DEFAULT_CME)
			AddSliderEx("$Mace Left Rot Y", CATEGORY_WEAPON, CALLBACK_MACE_LEFT_ROTY, -180.0, 180.0, 0.01, _maceLeft_Rotation[0])
			AddSliderEx("$Mace Left Rot P", CATEGORY_WEAPON, CALLBACK_MACE_LEFT_ROTP, -180.0, 180.0, 0.01, _maceLeft_Rotation[1])
			AddSliderEx("$Mace Left Rot R", CATEGORY_WEAPON, CALLBACK_MACE_LEFT_ROTR, -180.0, 180.0, 0.01, _maceLeft_Rotation[2])
		Endif		
		If NetImmerse.HasNode(target, NINODE_SWORD_DEFAULT_MOV, false) && NetImmerse.HasNode(target, NINODE_SWORD_BACK_MOV, false) && NetImmerse.HasNode(target, NINODE_SWORD_SWP_MOV, false) && NetImmerse.HasNode(target, NINODE_SWORD_FSM_MOV, false) && NetImmerse.HasNode(target, NINODE_SWORD_LEFTHIP_MOV, false)
			AddSliderEx("$Sword Style", CATEGORY_WEAPON, CALLBACK_SWORD_STYLE, 0.00, 4.00, 1.00, _sword_Style)
		Endif
		If NetImmerse.HasNode(target, NINODE_SWORD, false)
			AddSliderEx("$Sword Scale", CATEGORY_WEAPON, CALLBACK_SWORD_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_SWORD))
		Endif
		If NetImmerse.HasNode(target, NINODE_SWORD_DEFAULT_CME, false) && NetImmerse.HasNode(target, NINODE_SWORD_BACK_CME, false) && NetImmerse.HasNode(target, NINODE_SWORD_SWP_CME, false) && NetImmerse.HasNode(target, NINODE_SWORD_FSM_CME, false) && NetImmerse.HasNode(target, NINODE_SWORD_LEFTHIP_CME, false)
			_sword_Position = GetNodePosition(target, isFemale, NINODE_SWORD_DEFAULT_CME)
			AddSliderEx("$Sword Pos X", CATEGORY_WEAPON, CALLBACK_SWORD_POSX, -20.00, 20.00, 0.01, _sword_Position[0])
			AddSliderEx("$Sword Pos Y", CATEGORY_WEAPON, CALLBACK_SWORD_POSY, -20.00, 20.00, 0.01, _sword_Position[1])
			AddSliderEx("$Sword Pos Z", CATEGORY_WEAPON, CALLBACK_SWORD_POSZ, -20.00, 20.00, 0.01, _sword_Position[2])
			_sword_Rotation = GetNodeRotation(target, isFemale, NINODE_SWORD_DEFAULT_CME)
			AddSliderEx("$Sword Rot Y", CATEGORY_WEAPON, CALLBACK_SWORD_ROTY, -180.0, 180.0, 0.01, _sword_Rotation[0])
			AddSliderEx("$Sword Rot P", CATEGORY_WEAPON, CALLBACK_SWORD_ROTP, -180.0, 180.0, 0.01, _sword_Rotation[1])
			AddSliderEx("$Sword Rot R", CATEGORY_WEAPON, CALLBACK_SWORD_ROTR, -180.0, 180.0, 0.01, _sword_Rotation[2])
		Endif
		If NetImmerse.HasNode(target, NINODE_SWORD_LEFT_DEFAULT_MOV, false) && NetImmerse.HasNode(target, NINODE_SWORD_LEFT_BACK_MOV, false) && NetImmerse.HasNode(target, NINODE_SWORD_LEFT_SWP_MOV, false) && NetImmerse.HasNode(target, NINODE_SWORD_LEFT_FSM_MOV, false) && NetImmerse.HasNode(target, NINODE_SWORD_LEFT_LEFTHIP_MOV, false)
			AddSliderEx("$Sword Left Style", CATEGORY_WEAPON, CALLBACK_SWORD_LEFT_STYLE, 0.00, 4.00, 1.00, _swordLeft_Style)
		Endif
		If NetImmerse.HasNode(target, NINODE_SWORD_LEFT, false)
			AddSliderEx("$Sword Left Scale", CATEGORY_WEAPON, CALLBACK_SWORD_LEFT_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_SWORD_LEFT))
		Endif
		If NetImmerse.HasNode(target, NINODE_SWORD_LEFT_DEFAULT_CME, false) && NetImmerse.HasNode(target, NINODE_SWORD_LEFT_BACK_CME, false) && NetImmerse.HasNode(target, NINODE_SWORD_LEFT_SWP_CME, false) && NetImmerse.HasNode(target, NINODE_SWORD_LEFT_FSM_CME, false) && NetImmerse.HasNode(target, NINODE_SWORD_LEFT_LEFTHIP_CME, false)
			_swordLeft_Position = GetNodePosition(target, isFemale, NINODE_SWORD_LEFT_DEFAULT_CME)
			AddSliderEx("$Sword Left Pos X", CATEGORY_WEAPON, CALLBACK_SWORD_LEFT_POSX, -20.00, 20.00, 0.01, _swordLeft_Position[0])
			AddSliderEx("$Sword Left Pos Y", CATEGORY_WEAPON, CALLBACK_SWORD_LEFT_POSY, -20.00, 20.00, 0.01, _swordLeft_Position[1])
			AddSliderEx("$Sword Left Pos Z", CATEGORY_WEAPON, CALLBACK_SWORD_LEFT_POSZ, -20.00, 20.00, 0.01, _swordLeft_Position[2])
			_swordLeft_Rotation = GetNodeRotation(target, isFemale, NINODE_SWORD_LEFT_DEFAULT_CME)
			AddSliderEx("$Sword Left Rot Y", CATEGORY_WEAPON, CALLBACK_SWORD_LEFT_ROTY, -180.0, 180.0, 0.01, _swordLeft_Rotation[0])
			AddSliderEx("$Sword Left Rot P", CATEGORY_WEAPON, CALLBACK_SWORD_LEFT_ROTP, -180.0, 180.0, 0.01, _swordLeft_Rotation[1])
			AddSliderEx("$Sword Left Rot R", CATEGORY_WEAPON, CALLBACK_SWORD_LEFT_ROTR, -180.0, 180.0, 0.01, _swordLeft_Rotation[2])
		Endif
		If NetImmerse.HasNode(target, NINODE_DAGGER_DEFAULT_MOV, false) && NetImmerse.HasNode(target, NINODE_DAGGER_BACKHIP_MOV, false) && NetImmerse.HasNode(target, NINODE_DAGGER_ANKLE_MOV, false)
			AddSliderEx("$Dagger Style", CATEGORY_WEAPON, CALLBACK_DAGGER_STYLE, 0.00, 2.00, 1.00, _dagger_Style)
		Endif
		If NetImmerse.HasNode(target, NINODE_DAGGER, false)
			AddSliderEx("$Dagger Scale", CATEGORY_WEAPON, CALLBACK_DAGGER_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_DAGGER))
		Endif
		If NetImmerse.HasNode(target, NINODE_DAGGER_DEFAULT_CME, false) && NetImmerse.HasNode(target, NINODE_DAGGER_BACKHIP_CME, false) && NetImmerse.HasNode(target, NINODE_DAGGER_ANKLE_CME, false)
			_dagger_Position = GetNodePosition(target, isFemale, NINODE_DAGGER_DEFAULT_CME)
			AddSliderEx("$Dagger Pos X", CATEGORY_WEAPON, CALLBACK_DAGGER_POSX, -20.00, 20.00, 0.01, _dagger_Position[0])
			AddSliderEx("$Dagger Pos Y", CATEGORY_WEAPON, CALLBACK_DAGGER_POSY, -20.00, 20.00, 0.01, _dagger_Position[1])
			AddSliderEx("$Dagger Pos Z", CATEGORY_WEAPON, CALLBACK_DAGGER_POSZ, -20.00, 20.00, 0.01, _dagger_Position[2])
			_dagger_Rotation = GetNodeRotation(target, isFemale, NINODE_DAGGER_DEFAULT_CME)
			AddSliderEx("$Dagger Rot Y", CATEGORY_WEAPON, CALLBACK_DAGGER_ROTY, -180.0, 180.0, 0.01, _dagger_Rotation[0])
			AddSliderEx("$Dagger Rot P", CATEGORY_WEAPON, CALLBACK_DAGGER_ROTP, -180.0, 180.0, 0.01, _dagger_Rotation[1])
			AddSliderEx("$Dagger Rot R", CATEGORY_WEAPON, CALLBACK_DAGGER_ROTR, -180.0, 180.0, 0.01, _dagger_Rotation[2])
		Endif
		If NetImmerse.HasNode(target, NINODE_DAGGER_LEFT_DEFAULT_MOV, false) && NetImmerse.HasNode(target, NINODE_DAGGER_LEFT_BACKHIP_MOV, false) && NetImmerse.HasNode(target, NINODE_DAGGER_LEFT_ANKLE_MOV, false)
			AddSliderEx("$Dagger Left Style", CATEGORY_WEAPON, CALLBACK_DAGGER_LEFT_STYLE, 0.00, 2.00, 1.00, _daggerLeft_Style)
		Endif
		If NetImmerse.HasNode(target, NINODE_DAGGER_LEFT, false)
			AddSliderEx("$Dagger Left Scale", CATEGORY_WEAPON, CALLBACK_DAGGER_LEFT_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_DAGGER_LEFT))
		Endif
		If NetImmerse.HasNode(target, NINODE_DAGGER_LEFT_DEFAULT_CME, false) && NetImmerse.HasNode(target, NINODE_DAGGER_LEFT_BACKHIP_CME, false) && NetImmerse.HasNode(target, NINODE_DAGGER_LEFT_ANKLE_CME, false)
			_daggerLeft_Position = GetNodePosition(target, isFemale, NINODE_DAGGER_LEFT_DEFAULT_CME)
			AddSliderEx("$Dagger Left Pos X", CATEGORY_WEAPON, CALLBACK_DAGGER_LEFT_POSX, -20.00, 20.00, 0.01, _daggerLeft_Position[0])
			AddSliderEx("$Dagger Left Pos Y", CATEGORY_WEAPON, CALLBACK_DAGGER_LEFT_POSY, -20.00, 20.00, 0.01, _daggerLeft_Position[1])
			AddSliderEx("$Dagger Left Pos Z", CATEGORY_WEAPON, CALLBACK_DAGGER_LEFT_POSZ, -20.00, 20.00, 0.01, _daggerLeft_Position[2])
			_daggerLeft_Rotation = GetNodeRotation(target, isFemale, NINODE_DAGGER_LEFT_DEFAULT_CME)
			AddSliderEx("$Dagger Left Rot Y", CATEGORY_WEAPON, CALLBACK_DAGGER_LEFT_ROTY, -180.0, 180.0, 0.01, _daggerLeft_Rotation[0])
			AddSliderEx("$Dagger Left Rot P", CATEGORY_WEAPON, CALLBACK_DAGGER_LEFT_ROTP, -180.0, 180.0, 0.01, _daggerLeft_Rotation[1])
			AddSliderEx("$Dagger Left Rot R", CATEGORY_WEAPON, CALLBACK_DAGGER_LEFT_ROTR, -180.0, 180.0, 0.01, _daggerLeft_Rotation[2])
		Endif
		If NetImmerse.HasNode(target, NINODE_WEAPON_BACK_DEFAULT_MOV, false) && NetImmerse.HasNode(target, NINODE_WEAPON_BACK_SWP_MOV, false) && NetImmerse.HasNode(target, NINODE_WEAPON_BACK_FSM_MOV, false)
			AddSliderEx("$Weapon Back Style", CATEGORY_WEAPON, CALLBACK_WEAPON_BACK_STYLE, 0.00, 2.00, 1.00, _weaponBack_Style)
		Endif
		If NetImmerse.HasNode(target, NINODE_WEAPON_BACK, false)
			AddSliderEx("$Weapon Back Scale", CATEGORY_WEAPON, CALLBACK_WEAPON_BACK_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_WEAPON_BACK))
		Endif
		If NetImmerse.HasNode(target, NINODE_WEAPON_BACK_DEFAULT_CME, false) && NetImmerse.HasNode(target, NINODE_WEAPON_BACK_SWP_CME, false) && NetImmerse.HasNode(target, NINODE_WEAPON_BACK_FSM_CME, false)
			_weaponBack_Position = GetNodePosition(target, isFemale, NINODE_WEAPON_BACK_DEFAULT_CME)
			AddSliderEx("$Weapon Back Pos X", CATEGORY_WEAPON, CALLBACK_WEAPON_BACK_POSX, -20.00, 20.00, 0.01, _weaponBack_Position[0])
			AddSliderEx("$Weapon Back Pos Y", CATEGORY_WEAPON, CALLBACK_WEAPON_BACK_POSY, -20.00, 20.00, 0.01, _weaponBack_Position[1])
			AddSliderEx("$Weapon Back Pos Z", CATEGORY_WEAPON, CALLBACK_WEAPON_BACK_POSZ, -20.00, 20.00, 0.01, _weaponBack_Position[2])
			_weaponBack_Rotation = GetNodeRotation(target, isFemale, NINODE_WEAPON_BACK_DEFAULT_CME)
			AddSliderEx("$Weapon Back Rot Y", CATEGORY_WEAPON, CALLBACK_WEAPON_BACK_ROTY, -180.0, 180.0, 0.01, _weaponBack_Rotation[0])
			AddSliderEx("$Weapon Back Rot P", CATEGORY_WEAPON, CALLBACK_WEAPON_BACK_ROTP, -180.0, 180.0, 0.01, _weaponBack_Rotation[1])
			AddSliderEx("$Weapon Back Rot R", CATEGORY_WEAPON, CALLBACK_WEAPON_BACK_ROTR, -180.0, 180.0, 0.01, _weaponBack_Rotation[2])
		Endif
		If NetImmerse.HasNode(target, NINODE_SHIELD_BACK_DEFAULT_MOV, false)
			AddSliderEx("$Shield Back Style", CATEGORY_WEAPON, CALLBACK_SHIELD_BACK_STYLE, 0.00, 0.00, 1.00, _shieldBack_Style)
		Endif
		If NetImmerse.HasNode(target, NINODE_SHIELD_BACK, false)
			AddSliderEx("$Shield Back Scale", CATEGORY_WEAPON, CALLBACK_SHIELD_BACK_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_SHIELD_BACK))
		Endif
		If NetImmerse.HasNode(target, NINODE_SHIELD_BACK_DEFAULT_CME, false)
			_shieldBack_Position = GetNodePosition(target, isFemale, NINODE_SHIELD_BACK_DEFAULT_CME)
			AddSliderEx("$Shield Back Pos X", CATEGORY_WEAPON, CALLBACK_SHIELD_BACK_POSX, -20.00, 20.00, 0.01, _shieldBack_Position[0])
			AddSliderEx("$Shield Back Pos Y", CATEGORY_WEAPON, CALLBACK_SHIELD_BACK_POSY, -20.00, 20.00, 0.01, _shieldBack_Position[1])
			AddSliderEx("$Shield Back Pos Z", CATEGORY_WEAPON, CALLBACK_SHIELD_BACK_POSZ, -20.00, 20.00, 0.01, _shieldBack_Position[2])
			_shieldBack_Rotation = GetNodeRotation(target, isFemale, NINODE_SHIELD_BACK_DEFAULT_CME)
			AddSliderEx("$Shield Back Rot Y", CATEGORY_WEAPON, CALLBACK_SHIELD_BACK_ROTY, -180.0, 180.0, 0.01, _shieldBack_Rotation[0])
			AddSliderEx("$Shield Back Rot P", CATEGORY_WEAPON, CALLBACK_SHIELD_BACK_ROTP, -180.0, 180.0, 0.01, _shieldBack_Rotation[1])
			AddSliderEx("$Shield Back Rot R", CATEGORY_WEAPON, CALLBACK_SHIELD_BACK_ROTR, -180.0, 180.0, 0.01, _shieldBack_Rotation[2])
		Endif
		If NetImmerse.HasNode(target, NINODE_STAFF_DEFAULT_MOV, false)
			AddSliderEx("$Staff Style", CATEGORY_WEAPON, CALLBACK_STAFF_STYLE, 0.00, 0.00, 1.00, _staff_Style)
		Endif
		If NetImmerse.HasNode(target, NINODE_STAFF, false)
			AddSliderEx("$Staff Scale", CATEGORY_WEAPON, CALLBACK_STAFF_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_STAFF))
		Endif
		If NetImmerse.HasNode(target, NINODE_STAFF_DEFAULT_CME, false)
			_staff_Position = GetNodePosition(target, isFemale, NINODE_STAFF_DEFAULT_CME)
			AddSliderEx("$Staff Pos X", CATEGORY_WEAPON, CALLBACK_STAFF_POSX, -20.00, 20.00, 0.01, _staff_Position[0])
			AddSliderEx("$Staff Pos Y", CATEGORY_WEAPON, CALLBACK_STAFF_POSY, -20.00, 20.00, 0.01, _staff_Position[1])
			AddSliderEx("$Staff Pos Z", CATEGORY_WEAPON, CALLBACK_STAFF_POSZ, -20.00, 20.00, 0.01, _staff_Position[2])
			_staff_Rotation = GetNodeRotation(target, isFemale, NINODE_STAFF_DEFAULT_CME)
			AddSliderEx("$Staff Rot Y", CATEGORY_WEAPON, CALLBACK_STAFF_ROTY, -180.0, 180.0, 0.01, _staff_Rotation[0])
			AddSliderEx("$Staff Rot P", CATEGORY_WEAPON, CALLBACK_STAFF_ROTP, -180.0, 180.0, 0.01, _staff_Rotation[1])
			AddSliderEx("$Staff Rot R", CATEGORY_WEAPON, CALLBACK_STAFF_ROTR, -180.0, 180.0, 0.01, _staff_Rotation[2])
		Endif
		If NetImmerse.HasNode(target, NINODE_STAFF_LEFT_DEFAULT_MOV, false)
			AddSliderEx("$Staff Left Style", CATEGORY_WEAPON, CALLBACK_STAFF_LEFT_STYLE, 0.00, 0.00, 1.00, _staffLeft_Style)
		Endif
		If NetImmerse.HasNode(target, NINODE_STAFF_LEFT, false)
			AddSliderEx("$Staff Left Scale", CATEGORY_WEAPON, CALLBACK_STAFF_LEFT_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_STAFF_LEFT))
		Endif
		If NetImmerse.HasNode(target, NINODE_STAFF_LEFT_DEFAULT_CME, false)
			_staffLeft_Position = GetNodePosition(target, isFemale, NINODE_STAFF_LEFT_DEFAULT_CME)
			AddSliderEx("$Staff Left Pos X", CATEGORY_WEAPON, CALLBACK_STAFF_LEFT_POSX, -20.00, 20.00, 0.01, _staffLeft_Position[0])
			AddSliderEx("$Staff Left Pos Y", CATEGORY_WEAPON, CALLBACK_STAFF_LEFT_POSY, -20.00, 20.00, 0.01, _staffLeft_Position[1])
			AddSliderEx("$Staff Left Pos Z", CATEGORY_WEAPON, CALLBACK_STAFF_LEFT_POSZ, -20.00, 20.00, 0.01, _staffLeft_Position[2])
			_staffLeft_Rotation = GetNodeRotation(target, isFemale, NINODE_STAFF_LEFT_DEFAULT_CME)
			AddSliderEx("$Staff Left Rot Y", CATEGORY_WEAPON, CALLBACK_STAFF_LEFT_ROTY, -180.0, 180.0, 0.01, _staffLeft_Rotation[0])
			AddSliderEx("$Staff Left Rot P", CATEGORY_WEAPON, CALLBACK_STAFF_LEFT_ROTP, -180.0, 180.0, 0.01, _staffLeft_Rotation[1])
			AddSliderEx("$Staff Left Rot R", CATEGORY_WEAPON, CALLBACK_STAFF_LEFT_ROTR, -180.0, 180.0, 0.01, _staffLeft_Rotation[2])
		Endif
		If NetImmerse.HasNode(target, NINODE_BOW_DEFAULT_MOV, false) && NetImmerse.HasNode(target, NINODE_BOW_CHESKO_MOV, false) && NetImmerse.HasNode(target, NINODE_BOW_BETTER_MOV, false) && NetImmerse.HasNode(target, NINODE_BOW_FSM_MOV, false)
			AddSliderEx("$Bow Style", CATEGORY_WEAPON, CALLBACK_BOW_STYLE, 0.00, 3.00, 1.00, _bow_Style)
		Endif
		If NetImmerse.HasNode(target, NINODE_BOW, false)
			AddSliderEx("$Bow Scale", CATEGORY_WEAPON, CALLBACK_BOW_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_BOW))
		Endif
		If NetImmerse.HasNode(target, NINODE_BOW_DEFAULT_CME, false) && NetImmerse.HasNode(target, NINODE_BOW_CHESKO_CME, false) && NetImmerse.HasNode(target, NINODE_BOW_BETTER_CME, false) && NetImmerse.HasNode(target, NINODE_BOW_FSM_CME, false)
			_bow_Position = GetNodePosition(target, isFemale, NINODE_BOW_DEFAULT_CME)
			AddSliderEx("$Bow Pos X", CATEGORY_WEAPON, CALLBACK_BOW_POSX, -20.00, 20.00, 0.01, _bow_Position[0])
			AddSliderEx("$Bow Pos Y", CATEGORY_WEAPON, CALLBACK_BOW_POSY, -20.00, 20.00, 0.01, _bow_Position[1])
			AddSliderEx("$Bow Pos Z", CATEGORY_WEAPON, CALLBACK_BOW_POSZ, -20.00, 20.00, 0.01, _bow_Position[2])
			_bow_Rotation = GetNodeRotation(target, isFemale, NINODE_BOW_DEFAULT_CME)
			AddSliderEx("$Bow Rot Y", CATEGORY_WEAPON, CALLBACK_BOW_ROTY, -180.0, 180.0, 0.01, _bow_Rotation[0])
			AddSliderEx("$Bow Rot P", CATEGORY_WEAPON, CALLBACK_BOW_ROTP, -180.0, 180.0, 0.01, _bow_Rotation[1])
			AddSliderEx("$Bow Rot R", CATEGORY_WEAPON, CALLBACK_BOW_ROTR, -180.0, 180.0, 0.01, _bow_Rotation[2])
		Endif
		If QUIVER_ENABLED
			If NetImmerse.HasNode(target, NINODE_QUIVER_DEFAULT_MOV, false) && NetImmerse.HasNode(target, NINODE_QUIVER_CHESKO_MOV, false) && NetImmerse.HasNode(target, NINODE_QUIVER_LEFTHIP_MOV, false)
				AddSliderEx("$Quiver Style", CATEGORY_WEAPON, CALLBACK_QUIVER_STYLE, 0.00, 2.00, 1.00, _quiver_Style)
			Endif
		Endif
		If NetImmerse.HasNode(target, NINODE_QUIVER, false)
			AddSliderEx("$Quiver Scale", CATEGORY_WEAPON, CALLBACK_QUIVER_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_QUIVER))
		Endif
		If NetImmerse.HasNode(target, NINODE_QUIVER_DEFAULT_CME, false) && NetImmerse.HasNode(target, NINODE_QUIVER_CHESKO_CME, false) && NetImmerse.HasNode(target, NINODE_QUIVER_LEFTHIP_CME, false)
			_quiver_Position = GetNodePosition(target, isFemale, NINODE_QUIVER_DEFAULT_CME)
			AddSliderEx("$Quiver Pos X", CATEGORY_WEAPON, CALLBACK_QUIVER_POSX, -20.00, 20.00, 0.01, _quiver_Position[0])
			AddSliderEx("$Quiver Pos Y", CATEGORY_WEAPON, CALLBACK_QUIVER_POSY, -20.00, 20.00, 0.01, _quiver_Position[1])
			AddSliderEx("$Quiver Pos Z", CATEGORY_WEAPON, CALLBACK_QUIVER_POSZ, -20.00, 20.00, 0.01, _quiver_Position[2])
			_quiver_Rotation = GetNodeRotation(target, isFemale, NINODE_QUIVER_DEFAULT_CME)
			AddSliderEx("$Quiver Rot Y", CATEGORY_WEAPON, CALLBACK_QUIVER_ROTY, -180.0, 180.0, 0.01, _quiver_Rotation[0])
			AddSliderEx("$Quiver Rot P", CATEGORY_WEAPON, CALLBACK_QUIVER_ROTP, -180.0, 180.0, 0.01, _quiver_Rotation[1])
			AddSliderEx("$Quiver Rot R", CATEGORY_WEAPON, CALLBACK_QUIVER_ROTR, -180.0, 180.0, 0.01, _quiver_Rotation[2])
		Endif
		If NetImmerse.HasNode(target, NINODE_BOLT_MOV, false)
			AddSliderEx("$Bolt Style", CATEGORY_WEAPON, CALLBACK_BOLT_STYLE, 0.00, 0.00, 1.00, _bolt_Style)
		Endif
		If NetImmerse.HasNode(target, NINODE_BOLT, false)
			AddSliderEx("$Bolt Scale", CATEGORY_WEAPON, CALLBACK_BOLT_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_BOLT))
		Endif
		If NetImmerse.HasNode(target, NINODE_BOLT_CME, false)
			_bolt_Position = GetNodePosition(target, isFemale, NINODE_BOLT_CME)
			AddSliderEx("$Bolt Pos X", CATEGORY_WEAPON, CALLBACK_BOLT_POSX, -20.00, 20.00, 0.01, _bolt_Position[0])
			AddSliderEx("$Bolt Pos Y", CATEGORY_WEAPON, CALLBACK_BOLT_POSY, -20.00, 20.00, 0.01, _bolt_Position[1])
			AddSliderEx("$Bolt Pos Z", CATEGORY_WEAPON, CALLBACK_BOLT_POSZ, -20.00, 20.00, 0.01, _bolt_Position[2])
			_bolt_Rotation = GetNodeRotation(target, isFemale, NINODE_BOLT_CME)
			AddSliderEx("$Bolt Rot Y", CATEGORY_WEAPON, CALLBACK_BOLT_ROTY, -180.0, 180.0, 0.01, _bolt_Rotation[0])
			AddSliderEx("$Bolt Rot P", CATEGORY_WEAPON, CALLBACK_BOLT_ROTP, -180.0, 180.0, 0.01, _bolt_Rotation[1])
			AddSliderEx("$Bolt Rot R", CATEGORY_WEAPON, CALLBACK_BOLT_ROTR, -180.0, 180.0, 0.01, _bolt_Rotation[2])
		Endif
		If NetImmerse.HasNode(target, NINODE_BOLT_QUIVER_MOV, false)
			AddSliderEx("$BoltQuiver Style", CATEGORY_WEAPON, CALLBACK_BOLT_QUIVER_STYLE, 0.00, 0.00, 1.00, _boltquiver_Style)
		Endif
		If NetImmerse.HasNode(target, NINODE_BOLT_QUIVER, false)
			AddSliderEx("$BoltQuiver Scale", CATEGORY_WEAPON, CALLBACK_BOLT_QUIVER_SCALE, 0.1, 3.00, 0.01, GetNodeScale(target, isFemale, NINODE_BOLT_QUIVER))
		Endif
		If NetImmerse.HasNode(target, NINODE_BOLT_QUIVER_CME, false)
			_boltquiver_Position = GetNodePosition(target, isFemale, NINODE_BOLT_QUIVER_CME)
			AddSliderEx("$BoltQuiver Pos X", CATEGORY_WEAPON, CALLBACK_BOLT_QUIVER_POSX, -20.00, 20.00, 0.01, _boltquiver_Position[0])
			AddSliderEx("$BoltQuiver Pos Y", CATEGORY_WEAPON, CALLBACK_BOLT_QUIVER_POSY, -20.00, 20.00, 0.01, _boltquiver_Position[1])
			AddSliderEx("$BoltQuiver Pos Z", CATEGORY_WEAPON, CALLBACK_BOLT_QUIVER_POSZ, -20.00, 20.00, 0.01, _boltquiver_Position[2])
			_boltquiver_Rotation = GetNodeRotation(target, isFemale, NINODE_BOLT_QUIVER_CME)
			AddSliderEx("$BoltQuiver Rot Y", CATEGORY_WEAPON, CALLBACK_BOLT_QUIVER_ROTY, -180.0, 180.0, 0.01, _boltquiver_Rotation[0])
			AddSliderEx("$BoltQuiver Rot P", CATEGORY_WEAPON, CALLBACK_BOLT_QUIVER_ROTP, -180.0, 180.0, 0.01, _boltquiver_Rotation[1])
			AddSliderEx("$BoltQuiver Rot R", CATEGORY_WEAPON, CALLBACK_BOLT_QUIVER_ROTR, -180.0, 180.0, 0.01, _boltquiver_Rotation[2])
		Endif
	Endif
EndEvent

Event OnSliderChanged(string callback, float value)
	bool isFemale = _targetActorBase.GetSex() as bool
	If _versionValid
		If callback == CALLBACK_AXE_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_AXE, value)
		Elseif callback == CALLBACK_MACE_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_MACE, value)
		Elseif callback == CALLBACK_SWORD_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_SWORD, value)
		Elseif callback == CALLBACK_DAGGER_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_DAGGER, value)
		Elseif callback == CALLBACK_WEAPON_BACK_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_WEAPON_BACK, value)
		Elseif callback == CALLBACK_BOW_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_BOW, value)
		Elseif callback == CALLBACK_QUIVER_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_QUIVER, value)
		Elseif callback == CALLBACK_AXE_LEFT_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_AXE_LEFT, value)
		Elseif callback == CALLBACK_MACE_LEFT_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_MACE_LEFT, value)
		Elseif callback == CALLBACK_SWORD_LEFT_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_SWORD_LEFT, value)
		Elseif callback == CALLBACK_DAGGER_LEFT_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_DAGGER_LEFT, value)		
		Elseif callback == CALLBACK_SHIELD_BACK_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_SHIELD_BACK, value)
		Elseif callback == CALLBACK_STAFF_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_STAFF, value)		
		Elseif callback == CALLBACK_STAFF_LEFT_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_STAFF_LEFT, value)		
		Elseif callback == CALLBACK_BOLT_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_BOLT, value)
		Elseif callback == CALLBACK_BOLT_QUIVER_SCALE
			SetNodeScale(_targetActor, isFemale, NINODE_BOLT_QUIVER, value)	
		Elseif callback == CALLBACK_AXE_STYLE
			If value == 0.0
				_axe_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_AXE, NINODE_AXE_DEFAULT_MOV)
			ElseIf value == 1.0
				_axe_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_AXE, NINODE_AXE_REVERSE_MOV)
			ElseIf value == 2.0
				_axe_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_AXE, NINODE_AXE_BACK_MOV)
			EndIf
		Elseif callback == CALLBACK_AXE_LEFT_STYLE
			If value == 0.0
				_axeLeft_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_AXE_LEFT, NINODE_AXE_LEFT_DEFAULT_MOV)
			ElseIf value == 1.0
				_axeLeft_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_AXE_LEFT, NINODE_AXE_REVERSE_LEFT_MOV)
			ElseIf value == 2.0
				_axeLeft_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_AXE_LEFT, NINODE_AXE_BACK_LEFT_MOV)
			EndIf
		Elseif callback == CALLBACK_MACE_STYLE
			If value == 0.0
				_mace_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_AXE, NINODE_MACE_DEFAULT_MOV)
			EndIf
		Elseif callback == CALLBACK_MACE_LEFT_STYLE
			If value == 0.0
				_maceLeft_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_MACE_LEFT, NINODE_MACE_LEFT_DEFAULT_MOV)
			EndIf
		Elseif callback == CALLBACK_SWORD_STYLE
			If value == 0.0
				_sword_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_SWORD, NINODE_SWORD_DEFAULT_MOV)
			ElseIf value == 1.0
				_sword_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_SWORD, NINODE_SWORD_BACK_MOV)
			ElseIf value == 2.0
				_sword_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_SWORD, NINODE_SWORD_SWP_MOV)
			ElseIf value == 3.0
				_sword_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_SWORD, NINODE_SWORD_FSM_MOV)
			ElseIf value == 4.0
				_sword_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_SWORD, NINODE_SWORD_LEFTHIP_MOV)
			EndIf
		Elseif callback == CALLBACK_SWORD_LEFT_STYLE
			If value == 0.0
				_swordLeft_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_SWORD_LEFT, NINODE_SWORD_LEFT_DEFAULT_MOV)
			ElseIf value == 1.0
				_swordLeft_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_SWORD_LEFT, NINODE_SWORD_LEFT_BACK_MOV)
			ElseIf value == 2.0
				_swordLeft_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_SWORD_LEFT, NINODE_SWORD_LEFT_SWP_MOV)
			ElseIf value == 3.0
				_swordLeft_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_SWORD_LEFT, NINODE_SWORD_LEFT_FSM_MOV)
			ElseIf value == 4.0
				_swordLeft_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_SWORD_LEFT, NINODE_SWORD_LEFT_LEFTHIP_MOV)
			EndIf
		Elseif callback == CALLBACK_DAGGER_STYLE
			If value == 0.0
				_dagger_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_DAGGER, NINODE_DAGGER_DEFAULT_MOV)
			ElseIf value == 1.0
				_dagger_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_DAGGER, NINODE_DAGGER_BACKHIP_MOV)
			ElseIf value == 2.0
				_dagger_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_DAGGER, NINODE_DAGGER_ANKLE_MOV)
			EndIf
		Elseif callback == CALLBACK_DAGGER_LEFT_STYLE
			If value == 0.0
				_daggerLeft_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_DAGGER_LEFT, NINODE_DAGGER_LEFT_DEFAULT_MOV)
			ElseIf value == 1.0
				_daggerLeft_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_DAGGER_LEFT, NINODE_DAGGER_LEFT_BACKHIP_MOV)
			ElseIf value == 2.0
				_daggerLeft_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_DAGGER_LEFT, NINODE_DAGGER_LEFT_ANKLE_MOV)
			EndIf
		Elseif callback == CALLBACK_WEAPON_BACK_STYLE
			If value == 0.0
				_weaponBack_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_WEAPON_BACK, NINODE_WEAPON_BACK_DEFAULT_MOV)
			ElseIf value == 1.0
				_weaponBack_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_WEAPON_BACK, NINODE_WEAPON_BACK_SWP_MOV)
			ElseIf value == 2.0
				_weaponBack_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_WEAPON_BACK, NINODE_WEAPON_BACK_FSM_MOV)
			EndIf
		Elseif callback == CALLBACK_SHIELD_BACK_STYLE
			If value == 0.0
				_shieldBack_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_SHIELD_BACK, NINODE_SHIELD_BACK_DEFAULT_MOV)
			EndIf
		Elseif callback == CALLBACK_STAFF_STYLE
			If value == 0.0
				_staff_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_STAFF, NINODE_STAFF_DEFAULT_MOV)
			EndIf
		Elseif callback == CALLBACK_STAFF_LEFT_STYLE
			If value == 0.0
				_staffLeft_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_STAFF_LEFT, NINODE_STAFF_LEFT_DEFAULT_MOV)
			EndIf
		Elseif callback == CALLBACK_BOW_STYLE
			If value == 0.0
				_bow_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_BOW, NINODE_BOW_DEFAULT_MOV)
			ElseIf value == 1.0
				_bow_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_BOW, NINODE_BOW_CHESKO_MOV)
			ElseIf value == 2.0
				_bow_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_BOW, NINODE_BOW_BETTER_MOV)
			ElseIf value == 3.0
				_bow_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_BOW, NINODE_BOW_FSM_MOV)
			EndIf
		Elseif callback == CALLBACK_QUIVER_STYLE
			If value == 0.0
				_quiver_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_QUIVER, NINODE_QUIVER_DEFAULT_MOV)
			ElseIf value == 1.0
				_quiver_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_QUIVER, NINODE_QUIVER_CHESKO_MOV)
			ElseIf value == 2.0
				_quiver_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_QUIVER, NINODE_QUIVER_LEFTHIP_MOV)
			EndIf
		Elseif callback == CALLBACK_BOLT_STYLE
			If value == 0.0
				_bolt_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_BOLT, NINODE_BOLT_MOV)
			EndIf
		Elseif callback == CALLBACK_BOLT_QUIVER_STYLE
			If value == 0.0
				_boltQuiver_Style = value
				SetNodeParent(_targetActor, isFemale, NINODE_BOLT_QUIVER, NINODE_BOLT_QUIVER_MOV)
			EndIf
		Elseif callback == CALLBACK_AXE_POSX || callback == CALLBACK_AXE_POSY || callback == CALLBACK_AXE_POSZ
			If callback == CALLBACK_AXE_POSX
				_axe_Position[0] = value
			ElseIf callback == CALLBACK_AXE_POSY
				_axe_Position[1] = value
			ElseIf callback == CALLBACK_AXE_POSZ
				_axe_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_AXE_DEFAULT_CME, _axe_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_AXE_REVERSE_CME, _axe_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_AXE_BACK_CME, _axe_Position)
		Elseif callback == CALLBACK_AXE_ROTY || callback == CALLBACK_AXE_ROTP || callback == CALLBACK_AXE_ROTR
			If callback == CALLBACK_AXE_ROTY
				_axe_Rotation[0] = value
			ElseIf callback == CALLBACK_AXE_ROTP
				_axe_Rotation[1] = value
			ElseIf callback == CALLBACK_AXE_ROTR
				_axe_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_AXE_DEFAULT_CME, _axe_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_AXE_REVERSE_CME, _axe_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_AXE_BACK_CME, _axe_Rotation)
		Elseif callback == CALLBACK_AXE_LEFT_POSX || callback == CALLBACK_AXE_LEFT_POSY || callback == CALLBACK_AXE_LEFT_POSZ
			If callback == CALLBACK_AXE_LEFT_POSX
				_axeLeft_Position[0] = value
			ElseIf callback == CALLBACK_AXE_LEFT_POSY
				_axeLeft_Position[1] = value
			ElseIf callback == CALLBACK_AXE_LEFT_POSZ
				_axeLeft_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_AXE_LEFT_DEFAULT_CME, _axeLeft_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_AXE_REVERSE_LEFT_CME, _axeLeft_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_AXE_BACK_LEFT_CME, _axeLeft_Position)
		Elseif callback == CALLBACK_AXE_LEFT_ROTY || callback == CALLBACK_AXE_LEFT_ROTP || callback == CALLBACK_AXE_LEFT_ROTR
			If callback == CALLBACK_AXE_LEFT_ROTY
				_axeLeft_Rotation[0] = value
			ElseIf callback == CALLBACK_AXE_LEFT_ROTP
				_axeLeft_Rotation[1] = value
			ElseIf callback == CALLBACK_AXE_LEFT_ROTR
				_axeLeft_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_AXE_LEFT_DEFAULT_CME, _axeLeft_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_AXE_REVERSE_LEFT_CME, _axeLeft_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_AXE_BACK_LEFT_CME, _axeLeft_Rotation)
		Elseif callback == CALLBACK_MACE_POSX || callback == CALLBACK_MACE_POSY || callback == CALLBACK_MACE_POSZ
			If callback == CALLBACK_MACE_POSX
				_mace_Position[0] = value
			ElseIf callback == CALLBACK_MACE_POSY
				_mace_Position[1] = value
			ElseIf callback == CALLBACK_MACE_POSZ
				_mace_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_MACE_DEFAULT_CME, _mace_Position)
		Elseif callback == CALLBACK_MACE_ROTY || callback == CALLBACK_MACE_ROTP || callback == CALLBACK_MACE_ROTR
			If callback == CALLBACK_MACE_ROTY
				_mace_Rotation[0] = value
			ElseIf callback == CALLBACK_MACE_ROTP
				_mace_Rotation[1] = value
			ElseIf callback == CALLBACK_MACE_ROTR
				_mace_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_MACE_DEFAULT_CME, _mace_Rotation)
		Elseif callback == CALLBACK_MACE_LEFT_POSX || callback == CALLBACK_MACE_LEFT_POSY || callback == CALLBACK_MACE_LEFT_POSZ
			If callback == CALLBACK_MACE_LEFT_POSX
				_maceLeft_Position[0] = value
			ElseIf callback == CALLBACK_MACE_LEFT_POSY
				_maceLeft_Position[1] = value
			ElseIf callback == CALLBACK_MACE_LEFT_POSZ
				_maceLeft_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_MACE_LEFT_DEFAULT_CME, _maceLeft_Position)
		Elseif callback == CALLBACK_MACE_LEFT_ROTY || callback == CALLBACK_MACE_LEFT_ROTP || callback == CALLBACK_MACE_LEFT_ROTR
			If callback == CALLBACK_MACE_LEFT_ROTY
				_maceLeft_Rotation[0] = value
			ElseIf callback == CALLBACK_MACE_LEFT_ROTP
				_maceLeft_Rotation[1] = value
			ElseIf callback == CALLBACK_MACE_LEFT_ROTR
				_maceLeft_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_MACE_LEFT_DEFAULT_CME, _maceLeft_Rotation)
		Elseif callback == CALLBACK_SWORD_POSX || callback == CALLBACK_SWORD_POSY || callback == CALLBACK_SWORD_POSZ
			If callback == CALLBACK_SWORD_POSX
				_sword_Position[0] = value
			ElseIf callback == CALLBACK_SWORD_POSY
				_sword_Position[1] = value
			ElseIf callback == CALLBACK_SWORD_POSZ
				_sword_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_SWORD_DEFAULT_CME, _sword_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_SWORD_BACK_CME, _sword_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_SWORD_SWP_CME, _sword_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_SWORD_FSM_CME, _sword_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_SWORD_LEFTHIP_CME, _sword_Position)
		Elseif callback == CALLBACK_SWORD_ROTY || callback == CALLBACK_SWORD_ROTP || callback == CALLBACK_SWORD_ROTR
			If callback == CALLBACK_SWORD_ROTY
				_sword_Rotation[0] = value
			ElseIf callback == CALLBACK_SWORD_ROTP
				_sword_Rotation[1] = value
			ElseIf callback == CALLBACK_SWORD_ROTR
				_sword_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_SWORD_DEFAULT_CME, _sword_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_SWORD_BACK_CME, _sword_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_SWORD_SWP_CME, _sword_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_SWORD_FSM_CME, _sword_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_SWORD_LEFTHIP_CME, _sword_Rotation)
		Elseif callback == CALLBACK_SWORD_LEFT_POSX || callback == CALLBACK_SWORD_LEFT_POSY || callback == CALLBACK_SWORD_LEFT_POSZ
			If callback == CALLBACK_SWORD_LEFT_POSX
				_swordLeft_Position[0] = value
			ElseIf callback == CALLBACK_SWORD_LEFT_POSY
				_swordLeft_Position[1] = value
			ElseIf callback == CALLBACK_SWORD_LEFT_POSZ
				_swordLeft_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_SWORD_LEFT_DEFAULT_CME, _swordLeft_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_SWORD_LEFT_BACK_CME, _swordLeft_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_SWORD_LEFT_SWP_CME, _swordLeft_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_SWORD_LEFT_FSM_CME, _swordLeft_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_SWORD_LEFT_LEFTHIP_CME, _swordLeft_Position)
		Elseif callback == CALLBACK_SWORD_LEFT_ROTY || callback == CALLBACK_SWORD_LEFT_ROTP || callback == CALLBACK_SWORD_LEFT_ROTR
			If callback == CALLBACK_SWORD_LEFT_ROTY
				_swordLeft_Rotation[0] = value
			ElseIf callback == CALLBACK_SWORD_LEFT_ROTP
				_swordLeft_Rotation[1] = value
			ElseIf callback == CALLBACK_SWORD_LEFT_ROTR
				_swordLeft_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_SWORD_LEFT_DEFAULT_CME, _swordLeft_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_SWORD_LEFT_BACK_CME, _swordLeft_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_SWORD_LEFT_SWP_CME, _swordLeft_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_SWORD_LEFT_FSM_CME, _swordLeft_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_SWORD_LEFT_LEFTHIP_CME, _swordLeft_Rotation)
		Elseif callback == CALLBACK_DAGGER_POSX || callback == CALLBACK_DAGGER_POSY || callback == CALLBACK_DAGGER_POSZ
			If callback == CALLBACK_DAGGER_POSX
				_dagger_Position[0] = value
			ElseIf callback == CALLBACK_DAGGER_POSY
				_dagger_Position[1] = value
			ElseIf callback == CALLBACK_DAGGER_POSZ
				_dagger_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_DAGGER_DEFAULT_CME, _dagger_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_DAGGER_BACKHIP_CME, _dagger_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_DAGGER_ANKLE_CME, _dagger_Position)
		Elseif callback == CALLBACK_DAGGER_ROTY || callback == CALLBACK_DAGGER_ROTP || callback == CALLBACK_DAGGER_ROTR
			If callback == CALLBACK_DAGGER_ROTY
				_dagger_Rotation[0] = value
			ElseIf callback == CALLBACK_DAGGER_ROTP
				_dagger_Rotation[1] = value
			ElseIf callback == CALLBACK_DAGGER_ROTR
				_dagger_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_DAGGER_DEFAULT_CME, _dagger_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_DAGGER_BACKHIP_CME, _dagger_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_DAGGER_ANKLE_CME, _dagger_Rotation)
		Elseif callback == CALLBACK_DAGGER_LEFT_POSX || callback == CALLBACK_DAGGER_LEFT_POSY || callback == CALLBACK_DAGGER_LEFT_POSZ
			If callback == CALLBACK_DAGGER_LEFT_POSX
				_daggerLeft_Position[0] = value
			ElseIf callback == CALLBACK_DAGGER_LEFT_POSY
				_daggerLeft_Position[1] = value
			ElseIf callback == CALLBACK_DAGGER_LEFT_POSZ
				_daggerLeft_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_DAGGER_LEFT_DEFAULT_CME, _daggerLeft_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_DAGGER_LEFT_BACKHIP_CME, _daggerLeft_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_DAGGER_LEFT_ANKLE_CME, _daggerLeft_Position)
		Elseif callback == CALLBACK_DAGGER_LEFT_ROTY || callback == CALLBACK_DAGGER_LEFT_ROTP || callback == CALLBACK_DAGGER_LEFT_ROTR
			If callback == CALLBACK_DAGGER_LEFT_ROTY
				_daggerLeft_Rotation[0] = value
			ElseIf callback == CALLBACK_DAGGER_LEFT_ROTP
				_daggerLeft_Rotation[1] = value
			ElseIf callback == CALLBACK_DAGGER_LEFT_ROTR
				_daggerLeft_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_DAGGER_LEFT_DEFAULT_CME, _daggerLeft_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_DAGGER_LEFT_BACKHIP_CME, _daggerLeft_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_DAGGER_LEFT_ANKLE_CME, _daggerLeft_Rotation)
		Elseif callback == CALLBACK_WEAPON_BACK_POSX || callback == CALLBACK_WEAPON_BACK_POSY || callback == CALLBACK_WEAPON_BACK_POSZ
			If callback == CALLBACK_WEAPON_BACK_POSX
				_weaponBack_Position[0] = value
			ElseIf callback == CALLBACK_WEAPON_BACK_POSY
				_weaponBack_Position[1] = value
			ElseIf callback == CALLBACK_WEAPON_BACK_POSZ
				_weaponBack_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_WEAPON_BACK_DEFAULT_CME, _weaponBack_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_WEAPON_BACK_SWP_CME, _weaponBack_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_WEAPON_BACK_FSM_CME, _weaponBack_Position)
		Elseif callback == CALLBACK_WEAPON_BACK_ROTY || callback == CALLBACK_WEAPON_BACK_ROTP || callback == CALLBACK_WEAPON_BACK_ROTR
			If callback == CALLBACK_WEAPON_BACK_ROTY
				_weaponBack_Rotation[0] = value
			ElseIf callback == CALLBACK_WEAPON_BACK_ROTP
				_weaponBack_Rotation[1] = value
			ElseIf callback == CALLBACK_WEAPON_BACK_ROTR
				_weaponBack_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_WEAPON_BACK_DEFAULT_CME, _weaponBack_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_WEAPON_BACK_SWP_CME, _weaponBack_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_WEAPON_BACK_FSM_CME, _weaponBack_Rotation)
		Elseif callback == CALLBACK_SHIELD_BACK_POSX || callback == CALLBACK_SHIELD_BACK_POSY || callback == CALLBACK_SHIELD_BACK_POSZ
			If callback == CALLBACK_SHIELD_BACK_POSX
				_shieldBack_Position[0] = value
			ElseIf callback == CALLBACK_SHIELD_BACK_POSY
				_shieldBack_Position[1] = value
			ElseIf callback == CALLBACK_SHIELD_BACK_POSZ
				_shieldBack_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_SHIELD_BACK_DEFAULT_CME, _shieldBack_Position)
		Elseif callback == CALLBACK_SHIELD_BACK_ROTY || callback == CALLBACK_SHIELD_BACK_ROTP || callback == CALLBACK_SHIELD_BACK_ROTR
			If callback == CALLBACK_SHIELD_BACK_ROTY
				_shieldBack_Rotation[0] = value
			ElseIf callback == CALLBACK_SHIELD_BACK_ROTP
				_shieldBack_Rotation[1] = value
			ElseIf callback == CALLBACK_SHIELD_BACK_ROTR
				_shieldBack_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_SHIELD_BACK_DEFAULT_CME, _shieldBack_Rotation)	
		Elseif callback == CALLBACK_STAFF_POSX || callback == CALLBACK_STAFF_POSY || callback == CALLBACK_STAFF_POSZ
			If callback == CALLBACK_STAFF_POSX
				_staff_Position[0] = value
			ElseIf callback == CALLBACK_STAFF_POSY
				_staff_Position[1] = value
			ElseIf callback == CALLBACK_STAFF_POSZ
				_staff_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_STAFF_DEFAULT_CME, _staff_Position)
		Elseif callback == CALLBACK_STAFF_ROTY || callback == CALLBACK_STAFF_ROTP || callback == CALLBACK_STAFF_ROTR
			If callback == CALLBACK_STAFF_ROTY
				_staff_Rotation[0] = value
			ElseIf callback == CALLBACK_STAFF_ROTP
				_staff_Rotation[1] = value
			ElseIf callback == CALLBACK_STAFF_ROTR
				_staff_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_STAFF_DEFAULT_CME, _staff_Rotation)		
		Elseif callback == CALLBACK_STAFF_LEFT_POSX || callback == CALLBACK_STAFF_LEFT_POSY || callback == CALLBACK_STAFF_LEFT_POSZ
			If callback == CALLBACK_STAFF_LEFT_POSX
				_shieldBack_Position[0] = value
			ElseIf callback == CALLBACK_STAFF_LEFT_POSY
				_shieldBack_Position[1] = value
			ElseIf callback == CALLBACK_STAFF_LEFT_POSZ
				_shieldBack_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_STAFF_LEFT_DEFAULT_CME, _staffLeft_Position)
		Elseif callback == CALLBACK_STAFF_LEFT_ROTY || callback == CALLBACK_STAFF_LEFT_ROTP || callback == CALLBACK_STAFF_LEFT_ROTR
			If callback == CALLBACK_STAFF_LEFT_ROTY
				_staffLeft_Rotation[0] = value
			ElseIf callback == CALLBACK_STAFF_LEFT_ROTP
				_staffLeft_Rotation[1] = value
			ElseIf callback == CALLBACK_STAFF_LEFT_ROTR
				_staffLeft_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_STAFF_LEFT_DEFAULT_CME, _staffLeft_Rotation)	
		Elseif callback == CALLBACK_BOW_POSX || callback == CALLBACK_BOW_POSY || callback == CALLBACK_BOW_POSZ
			If callback == CALLBACK_BOW_POSX
				_bow_Position[0] = value
			ElseIf callback == CALLBACK_BOW_POSY
				_bow_Position[1] = value
			ElseIf callback == CALLBACK_BOW_POSZ
				_bow_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_BOW_DEFAULT_CME, _bow_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_BOW_CHESKO_CME, _bow_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_BOW_BETTER_CME, _bow_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_BOW_FSM_CME, _bow_Position)
		Elseif callback == CALLBACK_BOW_ROTY || callback == CALLBACK_BOW_ROTP || callback == CALLBACK_BOW_ROTR
			If callback == CALLBACK_BOW_ROTY
				_bow_Rotation[0] = value
			ElseIf callback == CALLBACK_BOW_ROTP
				_bow_Rotation[1] = value
			ElseIf callback == CALLBACK_BOW_ROTR
				_bow_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_BOW_DEFAULT_CME, _bow_Rotation)		
			SetNodeRotation(_targetActor, isFemale, NINODE_BOW_CHESKO_CME, _bow_Rotation)		
			SetNodeRotation(_targetActor, isFemale, NINODE_BOW_BETTER_CME, _bow_Rotation)		
			SetNodeRotation(_targetActor, isFemale, NINODE_BOW_FSM_CME, _bow_Rotation)	
		Elseif callback == CALLBACK_QUIVER_POSX || callback == CALLBACK_QUIVER_POSY || callback == CALLBACK_QUIVER_POSZ
			If callback == CALLBACK_QUIVER_POSX
				_quiver_Position[0] = value
			ElseIf callback == CALLBACK_QUIVER_POSY
				_quiver_Position[1] = value
			ElseIf callback == CALLBACK_QUIVER_POSZ
				_quiver_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_QUIVER_DEFAULT_CME, _quiver_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_QUIVER_CHESKO_CME, _quiver_Position)
			SetNodePosition(_targetActor, isFemale, NINODE_QUIVER_LEFTHIP_CME, _quiver_Position)
		Elseif callback == CALLBACK_QUIVER_ROTY || callback == CALLBACK_QUIVER_ROTP || callback == CALLBACK_QUIVER_ROTR
			If callback == CALLBACK_QUIVER_ROTY
				_quiver_Rotation[0] = value
			ElseIf callback == CALLBACK_QUIVER_ROTP
				_quiver_Rotation[1] = value
			ElseIf callback == CALLBACK_QUIVER_ROTR
				_quiver_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_QUIVER_DEFAULT_CME, _quiver_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_QUIVER_CHESKO_CME, _quiver_Rotation)
			SetNodeRotation(_targetActor, isFemale, NINODE_QUIVER_LEFTHIP_CME, _quiver_Rotation)
		Elseif callback == CALLBACK_BOLT_POSX || callback == CALLBACK_BOLT_POSY || callback == CALLBACK_BOLT_POSZ
			If callback == CALLBACK_BOLT_POSX
				_bolt_Position[0] = value
			ElseIf callback == CALLBACK_BOLT_POSY
				_bolt_Position[1] = value
			ElseIf callback == CALLBACK_BOLT_POSZ
				_bolt_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_BOLT_CME, _bolt_Position)
		Elseif callback == CALLBACK_BOLT_ROTY || callback == CALLBACK_BOLT_ROTP || callback == CALLBACK_BOLT_ROTR
			If callback == CALLBACK_BOLT_ROTY
				_bolt_Rotation[0] = value
			ElseIf callback == CALLBACK_BOLT_ROTP
				_bolt_Rotation[1] = value
			ElseIf callback == CALLBACK_BOLT_ROTR
				_bolt_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_BOLT_CME, _bolt_Rotation)
		Elseif callback == CALLBACK_BOLT_QUIVER_POSX || callback == CALLBACK_BOLT_QUIVER_POSY || callback == CALLBACK_BOLT_QUIVER_POSZ
			If callback == CALLBACK_BOLT_QUIVER_POSX
				_boltquiver_Position[0] = value
			ElseIf callback == CALLBACK_BOLT_QUIVER_POSY
				_boltquiver_Position[1] = value
			ElseIf callback == CALLBACK_BOLT_QUIVER_POSZ
				_boltquiver_Position[2] = value
			EndIf
			SetNodePosition(_targetActor, isFemale, NINODE_BOLT_QUIVER_CME, _boltquiver_Position)				
		Elseif callback == CALLBACK_BOLT_QUIVER_ROTY || callback == CALLBACK_BOLT_QUIVER_ROTP || callback == CALLBACK_BOLT_QUIVER_ROTR
			If callback == CALLBACK_BOLT_QUIVER_ROTY
				_boltquiver_Rotation[0] = value
			ElseIf callback == CALLBACK_BOLT_QUIVER_ROTP
				_boltquiver_Rotation[1] = value
			ElseIf callback == CALLBACK_BOLT_QUIVER_ROTR
				_boltquiver_Rotation[2] = value
			EndIf
			SetNodeRotation(_targetActor, isFemale, NINODE_BOLT_QUIVER_CME, _boltquiver_Rotation)	
		Endif
	Endif
EndEvent

Function SetNodeScale(Actor akActor, bool isFemale, string nodeName, float value)
	If value != 1.0
		NiOverride.AddNodeTransformScale(akActor, false, isFemale, nodeName, MOD_OVERRIDE_KEY, value)
		NiOverride.AddNodeTransformScale(akActor, true, isFemale, nodeName, MOD_OVERRIDE_KEY, value)
	Else
		NiOverride.RemoveNodeTransformScale(akActor, false, isFemale, nodeName, MOD_OVERRIDE_KEY)
		NiOverride.RemoveNodeTransformScale(akActor, true, isFemale, nodeName, MOD_OVERRIDE_KEY)
	Endif
	NiOverride.UpdateNodeTransform(akActor, false, isFemale, nodeName)
	NiOverride.UpdateNodeTransform(akActor, true, isFemale, nodeName)
EndFunction

Function SetNodeRotation(Actor akActor, bool isFemale, string nodeName, float[] values)
	If values[0] != 0.0 || values[1] != 0.0 || values[2] != 0.0
		NiOverride.AddNodeTransformRotation(akActor, false, isFemale, nodeName, MOD_OVERRIDE_KEY, values)
		NiOverride.AddNodeTransformRotation(akActor, true, isFemale, nodeName, MOD_OVERRIDE_KEY, values)
	Else
		NiOverride.RemoveNodeTransformRotation(akActor, false, isFemale, nodeName, MOD_OVERRIDE_KEY)
		NiOverride.RemoveNodeTransformRotation(akActor, true, isFemale, nodeName, MOD_OVERRIDE_KEY)
	Endif
	NiOverride.UpdateNodeTransform(akActor, false, isFemale, nodeName)
	NiOverride.UpdateNodeTransform(akActor, true, isFemale, nodeName)
EndFunction

Function SetNodePosition(Actor akActor, bool isFemale, string nodeName, float[] values)
	If values[0] != 0.0 || values[1] != 0.0 || values[2] != 0.0
		NiOverride.AddNodeTransformPosition(akActor, false, isFemale, nodeName, MOD_OVERRIDE_KEY, values)
		NiOverride.AddNodeTransformPosition(akActor, true, isFemale, nodeName, MOD_OVERRIDE_KEY, values)
	Else
		NiOverride.RemoveNodeTransformPosition(akActor, false, isFemale, nodeName, MOD_OVERRIDE_KEY)
		NiOverride.RemoveNodeTransformPosition(akActor, true, isFemale, nodeName, MOD_OVERRIDE_KEY)
	Endif
	NiOverride.UpdateNodeTransform(akActor, false, isFemale, nodeName)
	NiOverride.UpdateNodeTransform(akActor, true, isFemale, nodeName)
EndFunction

Function SetNodeParent(Actor akActor, bool isFemale, string nodeName, string newParent)
	NiOverride.SetNodeDestination(akActor, false, isFemale, nodeName, newParent)
	NiOverride.SetNodeDestination(akActor, true, isFemale, nodeName, newParent)
	NiOverride.UpdateNodeTransform(akActor, false, isFemale, nodeName)
	NiOverride.UpdateNodeTransform(akActor, true, isFemale, nodeName)
EndFunction

float Function GetNodeScale(Actor akActor, bool isFemale, string nodeName)
	return NiOverride.GetNodeTransformScale(akActor, false, isFemale, nodeName, MOD_OVERRIDE_KEY)
EndFunction

float[] Function GetNodeRotation(Actor akActor, bool isFemale, string nodeName)
	return NiOverride.GetNodeTransformRotation(akActor, false, isFemale, nodeName, MOD_OVERRIDE_KEY)
EndFunction

float[] Function GetNodePosition(Actor akActor, bool isFemale, string nodeName)
	return NiOverride.GetNodeTransformPosition(akActor, false, isFemale, nodeName, MOD_OVERRIDE_KEY)
EndFunction