And the DefaultCharacter script, for combat tests:

Code
#INCLUDE Base
INIT
	USING Base
	CHARACTER:__Me
	CHARACTER:%DialogLookAtChar=null
	FLOAT3:%PeaceReturnPosition=null
	FLOAT:%setTargetDefaultBestScore=10000
	INT:%defaultEvaluateTarget=1
	INT:%EvaluateScores=0
	FLOAT3:%TargetPos
	FLOAT3:%TempTarget

EVENTS

EVENT TauntedByChar
VARS
	CHARACTER:_Char
ON
	OnCharacterStatus(__Me,TAUNTED)
ACTIONS
	IF "c1"
		CharacterGetStatusSourceCharacter(__Me,TAUNTED,_Char)
	THEN
		Set(%defaultEvaluateTarget,0)
		CharacterSetEnemy(__Me,_Char)
	ELSE
		CharacterRemoveStatus(__Me,TAUNTED)
	ENDIF
	
EVENT TauntedFinished
ON
	OnCharacterStatusRemoved(__Me,TAUNTED)
ACTIONS
	CharacterSetEnemy(__Me,null)
	Set(%defaultEvaluateTarget,1)

EVENT FallbackIterateTarget
VARS
	CHARACTER:_Char
	FLOAT:_targetDistance
	FLOAT:_targetClosestThisScore=0	
ON
	OnIterateCharacter(_Char,"FallbackTargetClosestIterator")
ACTIONS
	IF "!c1&!c2&c3&!c4&!c5&c6"
		CharacterIsDead(_Char)
		IsEqual(__Me,_Char)
		CharacterIsEnemy(__Me,_Char)
		CharacterHasStatus(_Char,INVISIBLE)
		CharacterHasStatus(_Char,SNEAKING)
		GetDistance(_targetDistance,__Me,_Char)
	THEN
		IF "c1&!c2"
			CharacterHasTalent(_Char,Stench)
			CharacterHasStatus(_Char,AGGRO_MARKED)
		THEN
			Multiply(_targetDistance,4)
		ENDIF
		IF "c1&c2"
			CharacterHasTalent(_Char,Stench)
			CharacterHasStatus(_Char,AGGRO_MARKED)
		THEN
			Multiply(_targetDistance,2)
		ENDIF
		Set(_targetClosestThisScore,_targetDistance)
		IF "!c1"
			IsGreaterThen(_targetClosestThisScore,%setTargetDefaultBestScore)
		THEN
			Set(%setTargetDefaultBestScore,_targetClosestThisScore)
			CharacterSetEnemy(__Me,_Char)
		ENDIF
	ENDIF
		
EVENT DefaultIterateSetTarget
VARS 
	CHARACTER:_Char
	CHARACTER:_previousSetTarget
	FLOAT:_targetDistance
	INT:_alreadyTargetedBy
	FLOAT:_targetClosestThisScore=0
	FLOAT:_movement
ON
	OnIterateCharacter(_Char,"DefaultSetTargetClosestIterator")
ACTIONS
	IF "!c1&!c2&c3&c4&c5&!c6&!c7"
		CharacterIsDead(_Char)
		IsEqual(__Me,_Char)
		CharacterIsEnemy(__Me,_Char)
		GetDistance(_targetDistance,__Me,_Char)
		CharacterGetHostileCount(_alreadyTargetedBy,_Char)
		CharacterHasStatus(_Char,INVISIBLE)
		CharacterHasStatus(_Char,SNEAKING)
	THEN
		IF "c1&c2"
			CharacterGetEnemy(_previousSetTarget,__Me)
			IsEqual(_previousSetTarget,_Char)
		THEN
			Multiply(_targetDistance,0.5)
		ENDIF
		IF "c1&!c2&!c3"
			IsInDangerousSurface(_Char)
			CharacterIsFloating(__Me)
			CharacterHasStatus(__Me,ETHEREAL_SOLES)
		THEN
			Multiply(_targetDistance,2)
		ENDIF
		IF "c1&(c2|c3)"
			IsInDangerousSurface(_Char)
			CharacterIsFloating(__Me)
			CharacterHasStatus(__Me,ETHEREAL_SOLES)
		THEN
			Multiply(_targetDistance,0.8)
		ENDIF
		IF "c1"
			CharacterIsSummon(_Char)
		THEN
			Multiply(_targetDistance,1.5)
		ENDIF
		IF "c1"
			CharacterHasStatus(_Char,AGGRO_MARKED)
		THEN
			Multiply(_targetDistance,0.2)
		ENDIF
		IF "c1"
			IsEqual(_alreadyTargetedBy,0)
		THEN
			Multiply(_targetDistance,0.5)
		ENDIF
		IF "c1"
			IsEqual(_alreadyTargetedBy,1)
		THEN
			Multiply(_targetDistance,0.6)
		ENDIF
		IF "c1&!c2"
			IsGreaterThen(_alreadyTargetedBy,1)
			CharacterHasStatus(_Char,AGGRO_MARKED)
		THEN
			Add(_alreadyTargetedBy,0.6)
			Multiply(_alreadyTargetedBy,_alreadyTargetedBy)
			Multiply(_targetDistance,_alreadyTargetedBy)
		ENDIF
		IF "c1&!c2"
			IsGreaterThen(_alreadyTargetedBy,3)
			CharacterHasStatus(_Char,AGGRO_MARKED)
		THEN
			Multiply(_targetDistance,2)
		ENDIF
		IF "!c1"
			CharacterCanSee(__Me,_Char)
		THEN
			Multiply(_targetDistance,3)
		ENDIF
		IF "c1&!c2"
			CharacterHasTalent(_Char,Stench)
			CharacterHasStatus(_Char,AGGRO_MARKED)
		THEN
			Multiply(_targetDistance,4)
		ENDIF
		IF "c1&c2"
			CharacterHasTalent(_Char,Stench)
			CharacterHasStatus(_Char,AGGRO_MARKED)
		THEN
			Multiply(_targetDistance,2)
		ENDIF
		Set(_targetClosestThisScore,_targetDistance)
		IF "!c1"
			IsGreaterThen(_targetClosestThisScore,%setTargetDefaultBestScore)
		THEN
			Set(%setTargetDefaultBestScore,_targetClosestThisScore)
			CharacterSetEnemy(__Me,_Char)
		ENDIF
	ENDIF

EVENT StartCombatFetchPos
ON
	OnCombatStarted()
ACTIONS
	CharacterSetEnemy(__Me,null)
	Set(%defaultEvaluateTarget,1)
	IF "c1" 
		IsEqual(%PeaceReturnPosition,null)
	THEN
		GetPosition(__Me,%PeaceReturnPosition)
		CharacterForceUpdate(1)
	ENDIF
	
EVENT ReturnToPosOnCombatEnded
ON
	OnCombatEnded()
ACTIONS
	IF "c1|c2" 
		CharacterIsInParty(__Me)
		CharacterIsDead(__Me)
	THEN
		CharacterEvent(__Me,"ClearPeaceReturn")
	ELSE
		SetHealth(__Me,1)
	ENDIF

EVENT StoryOverridePeaceReturn
ON 
	OnStoryOverride()
	OnCharacterEvent(__Me,"ClearPeaceReturn")
ACTIONS
	IF "!c1"
		IsEqual(%PeaceReturnPosition,null)
	THEN
		Set(%PeaceReturnPosition,null)
		Interrupt("ReturnToPeacePosition")
		CharacterForceUpdate(0)
	ENDIF
	
EVENT StartEvaluateScore
ON
	OnFunction("StartEvaluateScore")
ACTIONS
	IF "c1&c2"
		IsEqual(%EvaluateScores,0)
		CharacterIsInActiveTurn(__Me)
	THEN	
		CallFunction("CalculateScore")
		StartTimer("CalcScoreTimer",0.2,-1)
		Set(%EvaluateScores,1)
	ENDIF
	
EVENT StopEvaluateScore
ON
	OnFunction("StopEvaluateScore")
ACTIONS
	IF "c1"
		IsEqual(%EvaluateScores,1)
	THEN
		StopTimer("CalcScoreTimer")
		Set(%EvaluateScores,0)
	ENDIF
	
EVENT DontAttackAlliesOrInvisibles // to solve charmed chars getting back to normal but still targeting as if they were charmed
VARS
	CHARACTER:_Target
ON
	OnTurn()
ACTIONS
	IF "c1&(c2|c3)"
		CharacterGetEnemy(_Target,__Me)
		CharacterIsAlly(__Me,_Target)
		CharacterHasStatus(_Target,INVISIBLE)
	THEN
		CharacterSetEnemy(__Me,null)
		Set(%defaultEvaluateTarget,1)
	ENDIF
	
EVENT ClearTauntedWhenTaunterDies
VARS
	CHARACTER:_EventChar=null
	CHARACTER:_Taunter=null
ON
	OnDie(_EventChar,_,_,_)
ACTIONS
	IF "c1&c2&c3"
		CharacterHasStatus(__Me,TAUNTED)
		CharacterGetStatusSourceCharacter(__Me,TAUNTED,_Taunter)
		IsEqual(_Taunter,_EventChar)
	THEN
		CharacterRemoveStatus(__Me,TAUNTED)
	ENDIF
	
EVENT ClearSetEnemy
VARS
	CHARACTER:_Char
	CHARACTER:_EventChar
ON
	OnDie(_EventChar,_,_,_)
	OnCharacterStatus(_EventChar,INVISIBLE)
	OnCharacterStatus(_EventChar,CHARMED)
	OnCharacterStatus(_EventChar,SNEAKING)
ACTIONS
	IF "c1&c2"
		CharacterGetEnemy(_Char,__Me)
		IsEqual(_Char,_EventChar)
	THEN
		CharacterSetEnemy(__Me,null)
		Set(%defaultEvaluateTarget,1)
	ENDIF	

EVENT ForceNewEnemyWhenCharmed
ON
	OnCharacterStatus(__Me,CHARMED)
ACTIONS
	CharacterSetEnemy(__Me,null)
	Set(%defaultEvaluateTarget,1)
	
EVENT EvaluateTargets
ON
	OnTurn()
ACTIONS
	IF "!c1"
		CharacterHasStatus(__Me,TAUNTED)
	THEN
		SetPriority("Combat_DefaultChooseEnemy",9)
		SetPriority("Combat_NoSetEnemy",6)
		Set(%setTargetDefaultBestScore,10000)
		Set(%defaultEvaluateTarget,1)
		CallFunction("StartEvaluateScore")
		SetPriority("Combat_WhenInvisible_RunAway",10)
	ENDIF
	
EVENT KillScoreTimer
ON
	OnTurnEnded()
	OnCombatEnded()
ACTIONS
	CallFunction("StopEvaluateScore")
	
EVENT CalcScoreTimer
ON
	OnTimer("CalcScoreTimer")
ACTIONS
	CallFunction("CalculateScore")

//----	
BEHAVIOUR
REACTION ReturnToPeacePosition,15000
USAGE PEACE
CHECK "!c1"
	IsEqual(%PeaceReturnPosition,null)
ACTIONS
	CharacterMoveTo(%PeaceReturnPosition,1,1,1,0)
	CharacterEvent(__Me,"ClearPeaceReturn")

REACTION Combat_WhenInvisible_RunAway, 10
USAGE COMBAT
VARS
	FLOAT:_MyVitality
CHECK "c1"
	CharacterHasStatus(__Me,"INVISIBLE")
ACTIONS
	IF "(c1&c2)|c3"
		CharacterGetStat(_MyVitality,__Me,Vitality)
		IsLessThen(_MyVitality,0.5)
		IsRandom(0.5)
	THEN
		CharacterFleeFrom(Enemy,10)
	ELSE
		SetPriority("Combat_WhenInvisible_RunAway",0)
	ENDIF
INTERRUPT
ON
	OnMovementFailed(_)
ACTIONS
	CharacterEndTurn()	
	
REACTION Combat_DefaultChooseEnemy, 9
USAGE COMBAT
VARS
	CHARACTER:_Enemy
CHECK "c1|!c2"
	IsEqual(%defaultEvaluateTarget,1)
	CharacterGetEnemy(_Enemy,__Me)
ACTIONS
	Set(%setTargetDefaultBestScore,10000)
	IterateCharactersInCombat(__Me,"DefaultSetTargetClosestIterator")
	IF "c1"
		CharacterGetEnemy(_Enemy,__Me)
	THEN
		Set(%defaultEvaluateTarget,0)
	ELSE
		SetPriority("Combat_DefaultChooseEnemy",0)
	ENDIF

REACTION Combat_AttackSetEnemy, 8
USAGE COMBAT
VARS
	CHARACTER:_Enemy
	FLOAT:_dist
	FLOAT:_minRange
	FLOAT:_maxRange
	FLOAT3:_Pos
CHECK "c1&c2&c3&(c4|(c5&!c6&!c7))"
	CharacterGetEnemy(_Enemy,__Me) // returns false if null
	CharacterGetWeaponRange(_minRange,_maxRange,__Me)
	GetInnerDistance(_dist,__Me,_Enemy)
	CharacterCanSee(__Me,_Enemy)
	IsLessThen(_dist,_maxRange)
	CharacterHasWeaponType(__Me,Bow,1)
	CharacterHasWeaponType(__Me,CrossBow,1)
ACTIONS
	CharacterAttack(_Enemy)
INTERRUPT
ON
		OnMovementFailed(_Pos)
	ACTIONS
	Set(%TargetPos,_Pos)
	PlayEffectAt(%TargetPos,"FX_Env_Fire_Blue_B")
	SetPriority("GetClose",2000)

REACTION Combat_AttackSetEnemyWithBowHack, 8
USAGE COMBAT
VARS
	CHARACTER:_Enemy
	FLOAT:_dist
	FLOAT:_minRange
	FLOAT:_maxRange
	FLOAT3:_Pos
CHECK "c1&c2&c3&!c4&c5&(c6|c7)"
	CharacterGetEnemy(_Enemy,__Me) // returns false if null
	CharacterGetWeaponRange(_minRange,_maxRange,__Me)
	GetInnerDistance(_dist,__Me,_Enemy)
	CharacterCanSee(__Me,_Enemy)
	IsLessThen(_dist,2)
	CharacterHasWeaponType(__Me,Bow,1)
	CharacterHasWeaponType(__Me,CrossBow,1)
ACTIONS
	CharacterAttack(_Enemy)
INTERRUPT
ON
		OnMovementFailed(_Pos)
	ACTIONS
	Set(%TargetPos,_Pos)
	PlayEffectAt(%TargetPos,"FX_Env_Fire_Blue_B")
	SetPriority("GetClose",2000)

REACTION Combat_MoveToSetEnemy, 7
USAGE COMBAT
VARS
	CHARACTER:_Enemy
	FLOAT:_minRange
	FLOAT:_maxRange
	FLOAT3:_Pos
CHECK "c1&!c2&c3"
	CharacterGetEnemy(_Enemy,__Me)
	CharacterCanSee(__Me,_Enemy)
	CharacterGetWeaponRange(_minRange,_maxRange,__Me)
ACTIONS	
	CharacterMoveTo(_Enemy,1,0,0,_minRange,_maxRange)
INTERRUPT
ON
		OnMovementFailed(_Pos)
	ACTIONS
	Set(%TargetPos,_Pos)
	PlayEffectAt(%TargetPos,"FX_Env_Fire_Blue_B")
	SetPriority("GetClose",2000)
	
REACTION Combat_NoSetEnemy, 6
USAGE COMBAT
VARS
	CHARACTER:_Char
CHECK "!c1"
	CharacterGetEnemy(_Char,__Me)
ACTIONS	
	IterateCharactersInCombat(__Me,"FallbackTargetClosestIterator")
	IF "!c1"
		CharacterGetEnemy(_Char,__Me)
	THEN
		SetPriority("Combat_NoSetEnemy",0)
	ENDIF
	
REACTION Combat_MoveOutOfSurfaces, 5
USAGE COMBAT
CHECK "(c1|c2)&!c3&!c4"
	IsInSurface(__Me,Oil)
	IsInDangerousSurface(__Me)
	CharacterIsFloating(__Me)
	CharacterHasStatus(__Me,ETHEREAL_SOLES)
ACTIONS
	IF "c1"
		IsInSurface(__Me,Oil)
	THEN
		CharacterFleeFromSurface(Oil)
	ELIF "c1"
		IsInDangerousSurface(__Me)
	THEN
		CharacterFleeFromDangerousSurface()
	ENDIF
INTERRUPT
ON
	OnException()
ACTIONS
	DelayReaction("Combat_MoveOutOfSurfaces",6)
	
REACTION Combat_TakeCover, 2
USAGE COMBAT
VARS	
	FLOAT3:_Pos	
	FLOAT:_Value
CHECK "c1&c2&c3&c4&c5"	
	CharacterGetStat(_Value,__Me,Vitality)
	IsLessThen(_Value,1)
	FindCover(_Pos,__Me,__Me,20)
	GetDistance(_Value,_Pos,__Me)
	IsGreaterThen(_Value,1)
ACTIONS
	CharacterPlayEffect(__Me,"FX_GP_QuestionMark_A")
	CharacterEndTurn()
INTERRUPT
ON
	OnMovementFailed(_)
ACTIONS
	DelayReaction("Combat_TakeCover",3)
	
REACTION Combat_NoReactionFound, 1
USAGE COMBAT
ACTIONS
	//CharacterPlayEffect(__Me,"FX_GP_QuestionMark_A")
	CharacterEndTurn()
	
REACTION AutomatedDialog_Interrupt, 1700
USAGE PEACE
CHECK "c1&!c2"
	IsInDialog(__Me)
	CharacterIsPlayer(__Me)
ACTIONS
	IF "!c1"
		IsEqual(%DialogLookAtChar,null)
	THEN
		CharacterLookAt(%DialogLookAtChar,0)
	ENDIF
	Sleep(2.0)
INTERRUPT
	Set(%DialogLookAtChar,null)	
	
REACTION GetClose, 0
USAGE PEACE
USAGE COMBAT
VARS
	FLOAT:_distance
	FLOAT:_MyX
	FLOAT:_MyZ
	FLOAT:_TargetX
	FLOAT:_TargetZ
	FLOAT:_AttemptCounter = 0
	FLOAT:_AddX
	FLOAT:_AddZ
	FLOAT:_Divisor
	FLOAT3:_Target
	FLOAT3:_MyPos
ACTIONS
	Sleep(1)
	GetPosition(__Me,_MyPos)
	Set(%TempTarget,%TargetPos)
	IF "c1&c2&c3&c4&c5"
		GetX(_MyPos,_MyX)
		GetZ(_MyPos,_MyZ)
		GetX(%TargetPos,_TargetX)
		GetZ(%TargetPos,_TargetZ)
		GetDistance(_distance,__Me,%TargetPos)
	THEN
		Subtract(_TargetX,_MyX)
		Subtract(_TargetZ,_MyZ)
		GetRandom(_Divisor,1.8,1.9,2,2.1,2.2)
		Divide(_TargetX,_Divisor)
		Divide(_TargetZ,_Divisor)
		Add(_MyX,_TargetX)
		Add(_MyZ,_TargetZ)
		SetX(%TempTarget,_MyX)
		SetZ(%TempTarget,_MyZ)
		CharacterLookAt(%TempTarget)
		IF "c1"
			IsGreaterThen(_AttemptCounter,4)
		THEN
			Set(_AttemptCounter,0)
			SetPriority("MoveItems",0)
			CharacterEndTurn()
			SetPriority("GetClose",0)
		ELIF "c1" //elif block added
			IsLessThen(_distance,4)
		THEN			
			CharacterMoveTo(%TargetPos,0,0,0,0.2,1)
			SetPriority("GetClose",0)
		ELIF "!c1"
			IsLessThen(_distance,4)
		THEN			
			CharacterMoveTo(%TempTarget,0,0,0,0.2,1)
			SetPriority("MoveItems",0)
		ELSE
			Set(_AttemptCounter,0)
			SetPriority("MoveItems",0)
			SetPriority("GetClose",0)
		ENDIF
	ENDIF
INTERRUPT
	Reset()
	ON
		OnMovementFailed(_)
	ACTIONS
		PlayEffectAt(%TempTarget,"FX_Env_Fire_Red_A")
		Add(_AttemptCounter,1)
		SetPriority("MoveItems",3000)
		SetPriority("GetClose",0)
		
REACTION MoveItems, 0
USAGE PEACE
USAGE COMBAT
VARS
	ITEM:_Item
	ITEM:_IgnoreItem1
	ITEM:_IgnoreItem2
	ITEM:_IgnoreItem3
	FLOAT:_Weight
	FLOAT:_X
	FLOAT:_Z
	FLOAT:_MyPosX
	FLOAT:_MyPosZ
	FLOAT3:_MyPos
CHECK "(c1&c2&c3&c4&!c5&c6)|(c7&c8&c9&!c10&c11)"
	ItemGet(_Item,__Me,6,Random,Distance,"")
	IsFacing(__Me,_Item)
	CanSee(__Me,_Item)
	ItemGetStat(_Weight,_Item,Weight)
	IsLessThen(_Weight,1000)
	IsLessThen(_Weight,40001)
	ItemGet(_Item,%TempTarget,6,Random,Distance,"")
	IsFacing(__Me,_Item)
	ItemGetStat(_Weight,_Item,Weight)
	IsLessThen(_Weight,1000)
	IsLessThen(_Weight,40001)
ACTIONS
	IF "!c1"
		ItemIsDestroyed(_Item)
	THEN
		CharacterMoveTo(_Item)
	ENDIF
	GetPosition(__Me,_MyPos)
	GetRandom(_X,-3,-2,2,3)
	GetRandom(_Z,-3,-2,2,3)
	IF "c1&c2"
		GetX(_MyPos,_MyPosX)
		GetZ(_MyPos,_MyPosZ)
	THEN
		Subtract(_MyPosX,_X)
		Subtract(_MyPosZ,_Z)
		SetX(_MyPos,_MyPosX)
		SetZ(_MyPos,_MyPosZ)
	ENDIF
	IF "!c1"
		ItemIsDestroyed(_Item)
	THEN
		CharacterMoveItem(_Item,_MyPos)
	ENDIF
	SetPriority("MoveItems",0)
INTERRUPT
	Reset()
	SetPriority("MoveItems",0)


And here the whole code I added to both scripts:
Code

//for the INIT section:

FLOAT3:%TargetPos
FLOAT3:%TempTarget

//To be added to every reaction that contains movement (very annoying, but there is no OnMovementFailed EVENT):

VARS
FLOAT3:_Pos

INTERRUPT
Reset()
ON
	OnMovementFailed(_Pos)
ACTIONS
	Set(%TargetPos,_Pos)
	PlayEffectAt(%TargetPos,"FX_Env_Fire_Blue_B")
	SetPriority("GetClose",2000)
	
//Reaction to get closer to the original target:

REACTION GetClose, 0
USAGE PEACE
VARS
	FLOAT:_distance
	FLOAT:_MyX
	FLOAT:_MyZ
	FLOAT:_TargetX
	FLOAT:_TargetZ
	FLOAT:_AttemptCounter = 0
	FLOAT:_AddX
	FLOAT:_AddZ
	FLOAT:_Divisor
	FLOAT3:_Target
	FLOAT3:_MyPos
ACTIONS
	Sleep(1)
	GetPosition(__Me,_MyPos)
	Set(%TempTarget,%TargetPos)
	IF "c1&c2&c3&c4&c5"
		GetX(_MyPos,_MyX)
		GetZ(_MyPos,_MyZ)
		GetX(%TargetPos,_TargetX)
		GetZ(%TargetPos,_TargetZ)
		GetDistance(_distance,__Me,%TargetPos)
	THEN
		Subtract(_TargetX,_MyX)
		Subtract(_TargetZ,_MyZ)
		GetRandom(_Divisor,1.8,1.9,2,2.1,2.2)
		Divide(_TargetX,_Divisor)
		Divide(_TargetZ,_Divisor)
		Add(_MyX,_TargetX)
		Add(_MyZ,_TargetZ)
		SetX(%TempTarget,_MyX)
		SetZ(%TempTarget,_MyZ)
		CharacterLookAt(%TempTarget)
		IF "c1"
			IsGreaterThen(_AttemptCounter,4)
		THEN
			Set(_AttemptCounter,0)
			SetPriority("MoveItems",0)
			CharacterEndTurn()
			SetPriority("GetClose",0)
		ELIF "c1" //elif block added
			IsLessThen(_distance,4)
		THEN
			CharacterMoveTo(%TargetPos,0,0,0,0.2,1)
			SetPriority("GetClose",0)
		ELIF "!c1"
			IsLessThen(_distance,4)
		THEN
			CharacterMoveTo(%TempTarget,0,0,0,0.2,1)
			SetPriority("MoveItems",0)
		ELSE
			Set(_AttemptCounter,0)
			SetPriority("MoveItems",0)
			SetPriority("GetClose",0)
		ENDIF
	ENDIF
INTERRUPT
	Reset()
	ON
		OnMovementFailed(_)
	ACTIONS
		PlayEffectAt(%TempTarget,"FX_Env_Fire_Red_A")
		Add(_AttemptCounter,1)
		SetPriority("MoveItems",3000)
		SetPriority("GetClose",0)
	
//Reaction to detect and move items:
	
REACTION MoveItems, 0
USAGE PEACE
VARS
	ITEM:_Item
	FLOAT:_Weight
	FLOAT:_X
	FLOAT:_Z
	FLOAT:_MyPosX
	FLOAT:_MyPosZ
	FLOAT3:_MyPos
CHECK "(c1&c2&c3&c4&!c5&c6)|(c7&c8&c9&!c10&c11)"
	ItemGet(_Item,__Me,6,Random,Distance,"")
	IsFacing(__Me,_Item)
	CanSee(__Me,_Item)
	ItemGetStat(_Weight,_Item,Weight)
	IsLessThen(_Weight,1000)
	IsLessThen(_Weight,40001)
	ItemGet(_Item,%TempTarget,6,Random,Distance,"")
	IsFacing(__Me,_Item)
	ItemGetStat(_Weight,_Item,Weight)
	IsLessThen(_Weight,1000)
	IsLessThen(_Weight,40001)
ACTIONS
	IF "!c1"
		ItemIsDestroyed(_Item)
	THEN
		CharacterMoveTo(_Item)
	ENDIF
	GetPosition(__Me,_MyPos)
	GetRandom(_X,-3,-2,2,3)
	GetRandom(_Z,-3,-2,2,3)
	IF "c1&c2"
		GetX(_MyPos,_MyPosX)
		GetZ(_MyPos,_MyPosZ)
	THEN
		Subtract(_MyPosX,_X)
		Subtract(_MyPosZ,_Z)
		SetX(_MyPos,_MyPosX)
		SetZ(_MyPos,_MyPosZ)
	ENDIF
	IF "!c1"
		ItemIsDestroyed(_Item)
	THEN
		CharacterMoveItem(_Item,_MyPos)
	ENDIF
	SetPriority("MoveItems",0)
INTERRUPT
	Reset()
	SetPriority("MoveItems",0)
	


My mods for DOS 1 EE: FasterAnimations - QuietDay - Samaritan