Jump to content

Recommended Posts

Posted

Does anybody know if it is possible for a male to show erection while body slot 33 is equipped? I am trying to edit some blowjob animations so the female just takes her hat and glasses off, and the male remains clothed. The female stuff works fine but the only way i can get male to show erection is by unequipping slot 33. Thanks ...

Posted
On 8/6/2025 at 12:55 AM, Evi1Panda said:

1.60 Beta 4. It is in doc file at least.

I FINALLY discovered the problem after going through all my mods. Turns out RSE_II was the problem. Don't know why but with it gone violate and all other mods work properly now. 

Posted
7 hours ago, dosfox said:

Does anybody know if it is possible for a male to show erection while body slot 33 is equipped? I am trying to edit some blowjob animations so the female just takes her hat and glasses off, and the male remains clothed. The female stuff works fine but the only way i can get male to show erection is by unequipping slot 33. Thanks ...

It can be implemented using papyrus.

Posted
36 minutes ago, Evi1Panda said:

It can be implemented using papyrus.

 

Oh, that's beyond my skillset. I'm just exploring how far animations can be altered within the limits of altering the original xml files. Thanks for the reply.

 

BTW, thank you very much for this last round of updates. I know you are busy (i'm keeping an eager eye on your Diverse Bodies mod!) but you solved a series of complex compatibility problems and published updates in record time. Thanks for explaining your progress, and thanks for patiently answering our questions. Legend. 

Posted (edited)
13 hours ago, ahemtomatobasil said:

Panda, which version of Violate are you using? 

 

I have a last version that works well with NAF.

Edited by SquareBun
Posted (edited)

AAF_MainQuestScript.psc

Spoiler
;####################################################################################################################
;################################## ALL EVENTS AND FUNCTIONS BELOW IS REMOVED #######################################
;####################################################################################################################
;*removed functions saved just for compability with old mods, often it does and returns not that things that you're
; expected. AVOID TO USE IT.

Bool Function exitPowerArmor(Actor akActor)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented exitPowerArmor function!\nSENT ARG1 : " + akActor);
	endif
	return False
EndFunction

Bool Function getBlockedStatus(Actor akActor)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented getBlockedStatus function!\nSENT ARG1 : " + akActor);
	endif
	return False
EndFunction

Bool Function isValidActor(Actor akActor)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented isValidActor function!\nSENT ARG1 : " + akActor);
	endif
	return True
EndFunction

Bool Function isAvailableActor(Actor akActor)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented isAvailableActor function!\nSENT ARG1 : " + akActor);
	endif
	return True
EndFunction

FormList Function GetActorTypeList()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented GetActorTypeList function!");
	endif
	return none;
EndFunction

int Function GetVersion() ;dummy
	return 171;
EndFunction

String Function GetBuild() ;dummy
	return "Beta";
EndFunction



;####################################################################################################################

Function EveryTime_Initialization()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented EveryTime_Initialization function!");
	endif
EndFunction

Function OneTime_Initialization()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OneTime_Initialization function!");
	endif
EndFunction

Event FollowersScript.CompanionChange(FollowersScript akSender, Var[] akArgs)
EndEvent

Event OnMenuOpenCloseEvent(string asMenuName, bool abOpening)
EndEvent

Event ObjectReference.OnCellLoad(ObjectReference akSender)
EndEvent

Event OnKeyUp(int keyCode, float time)
EndEvent

Event OnHit(ObjectReference akTarget, ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, \
  bool abSneakAttack, bool abBashAttack, bool abHitBlocked, string apMaterial)
EndEvent

Event OnDistanceGreaterThan(ObjectReference akObj1, ObjectReference akObj2, float afDistance)
EndEvent

Function OnLoadComplete(bool success, string menuName, string sourceVar, string destVar, string assetPath)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnLoadComplete function!\nSENT ARG1 : " + success + ", ARG2 : " + menuName + ", ARG3 : " + sourceVar + ", ARG4 : " + destVar + ", ARG5 : " + assetPath);
	endif
EndFunction

Event Actor.OnCombatStateChanged(Actor akSender, Actor akTarget, int aeCombatState)
EndEvent

;
; CALLS FROM FLASH:
;

Function OnDataLoaded(Var[] kWatchForms, Var[] kWatchSources, Var[] sourceCheckArray, Var[] inputKeyCodes, Var[] gameSettings, Var[] aTypeForms, Var[] aTypeSources, Var[] aKeywordsUsed)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnDataLoaded function!\nSENT ARG1 : " + kWatchForms + ", ARG2 : " + kWatchSources + ", ARG3 : " + sourceCheckArray + ", ARG4 : " + inputKeyCodes + ", ARG5 : " + gameSettings + ", ARG6 : " + aTypeForms + ", ARG7 : " + aTypeSources + ", ARG8 : " + aKeywordsUsed);
	endif
EndFunction

Function registerProtectedEquipment(Var[] protectedEquipmentFormID)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented registerProtectedEquipment function!\nSENT ARG1 : " + protectedEquipmentFormID);
	endif
EndFunction

Var Function getActiveCompanions()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented getActiveCompanions function!");
	endif
	return none;
EndFunction

Function OnPerformanceTest()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnPerformanceTest function!");
	endif
EndFunction

Function OnDisplayMessage(string asMessageBoxText)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnDisplayMessage function!\nSENT ARG1 : " + asMessageBoxText);
	endif
EndFunction

Function OnGetClothesData(int actorFormID)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnGetClothesData function!\nSENT ARG1 : " + actorFormID);
	endif
EndFunction

Function OnLookAt(int actorFormID, int focusFormID, Bool beIntense)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnLookAt function!\nSENT ARG1 : " + actorFormID + ", ARG2 : " + focusFormID + ", ARG3 : " + beIntense);
	endif
EndFunction

Function OnWalkTo(Int actorFormID, Float x, Float y, Float z, Float a, Bool usePackages = True, Bool skipWalk = False, Bool keepPowerArmor = False)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnWalkTo function!\nSENT ARG1 : " + actorFormID + ", ARG2 : " + x + ", ARG3 : " + y + ", ARG4 : " + z + ", ARG5 : " + a + ", ARG6 : " + usePackages + ", ARG7 : " + skipWalk + ", ARG8 : " + keepPowerArmor);
	endif
EndFunction

Function applyWalkQuest(Actor targetActor, ObjectReference walkMarker, Bool usePackages = True, Bool skipWalk = False)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented applyWalkQuest function!\nSENT ARG1 : " + targetActor + ", ARG2 : " + walkMarker + ", ARG3 : " + usePackages + ", ARG4 : " + skipWalk);
	endif
EndFunction

; Putting walk events in the wrong section just because it is easier to work with next to OnWalkTo above.
;

Function OnWalkComplete(Actor akActor)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnWalkComplete function!\nSENT ARG1 : " + akActor);
	endif
EndFunction

Function OnPlayerWalkComplete()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnWalkComplete function!");
	endif
EndFunction

Function reportWalkComplete(Actor akActor, Bool success, Bool invalidActor = False)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented reportWalkComplete function!\nSENT ARG1 : " + akActor + ", ARG2 : " + success + ", ARG3 : " + invalidActor);
	endif
EndFunction

Function OnGetCoordinates(Int objectFormID)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnGetCoordinates function!\nSENT ARG1 : " + objectFormID);
	endif
EndFunction

Function copyEquipmentItem(Actor a, Actor b, int slot)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented copyEquipmentItem function!\nSENT ARG1 : " + a + ", ARG2 : " + b + ", ARG3 : " + slot);
	endif
EndFunction

Function copyClothes(Actor a, Actor b)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented copyClothes function!\nSENT ARG1 : " + a + ", ARG2 : " + b);
	endif
EndFunction

Function copyWatchedKeywords(Actor targetActor)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented copyWatchedKeywords function!\nSENT ARG1 : " + targetActor);
	endif
EndFunction

Function copyOverlays(Actor a, Actor b)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented copyOverlays function!\nSENT ARG1 : " + a + ", ARG2 : " + b);
	endif
EndFunction

Function copySkinOverride(Actor a, Actor b)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented copySkinOverride function!\nSENT ARG1 : " + a + ", ARG2 : " + b);
	endif
EndFunction

Function copyMorphs(Actor a, Actor b)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented copyMorphs function!\nSENT ARG1 : " + a + ", ARG2 : " + b);
	endif
EndFunction

Function copyMFG(Actor a, Actor b)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented copyMFG function!\nSENT ARG1 : " + a + ", ARG2 : " + b);
	endif
EndFunction

Function OnUpdateCoordinates(Int actorFormID, Float x, Float y, Float z, Float a)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnUpdateCoordinates function!\nSENT ARG1 : " + actorFormID + ", ARG2 : " + x + ", ARG3 : " + y + ", ARG4 : " + z + ", ARG5 : " + a);
	endif
EndFunction

;Function OnUpdateActorValues(Int actorFormID, Var[] actorValueFormID, Var[] actorValueSource, Var[] statValue)
;EndFunction

Function OnLoadActorValues(Int actorFormID, Var[] actorValueFormID, Var[] actorValueSource)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnLoadActorValues function!\nSENT ARG1 : " + actorFormID + ", ARG2 : " + actorValueFormID + ", ARG3 : " + actorValueSource);
	endif
EndFunction

Function addActiveActor(Actor targetActor)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented addActiveActor function!\nSENT ARG1 : " + targetActor);
	endif
EndFunction

Function OnLockActor(Var[] lockParameters)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnLockActor function!\nSENT ARG1 : " + lockParameters);
	endif
EndFunction

Function DoLockActor(Var[] lockParameters)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented DoLockActor function!\nSENT ARG1 : " + lockParameters);
	endif
EndFunction

Function resetActiveActors()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented resetActiveActors function!");
	endif
EndFunction

Function BlockPlayerActions()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented BlockPlayerActions function!");
	endif
EndFunction

Function UnBlockPlayerActions()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented UnBlockPlayerActions function!");
	endif
EndFunction

Function removeTemporaryItems(Int actorFormID)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented removeTemporaryItems function!\nSENT ARG1 : " + actorFormID);
	endif
EndFunction

Function OnUnlockActor(Var[] unlockParameters)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnUnlockActor function!\nSENT ARG1 : " + unlockParameters);
	endif
EndFunction

Function reEquipAll(Actor targetActor)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented reEquipAll function!\nSENT ARG1 : " + targetActor);
	endif
EndFunction

Function reEquip(Actor targetActor, Armor targetArmor)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented reEquip function!\nSENT ARG1 : " + targetActor + ", ARG2 : " + targetArmor);
	endif
EndFunction

Function OnAttackExit(Var[] args)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnAttackExit function!\nSENT ARG1 : " + args);
	endif
EndFunction

Function OnTrace(String inputString, int aiSeverity = 0)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnTrace function!\nSENT ARG1 : " + inputString + ", ARG2 : " + aiSeverity);
	endif
EndFunction

Function registerInput(int[] inputKeyCodes)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented registerInput function!\nSENT ARG1 : " + inputKeyCodes);
	endif
EndFunction

Function sendEvent(string eventType, Var[] eventData = None)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented sendEvent function!\nSENT ARG1 : " + eventType + ", ARG2 : " + eventData);
	endif
EndFunction

Var[] Function makeLocationData(ObjectReference target, Bool includeDistance = False)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented makeLocationData function!\nSENT ARG1 : " + target + ", ARG2 : " + includeDistance);
	endif
	return none;
EndFunction

Function populateAttractionQualities()
	if mesDebug
		PrintLog("WARNING : some mod requested for not populateAttractionQualities ClearBanner function!");
	endif
EndFunction

Struct AttractionQuality
	String id
	Float minimum
	Float maximum
	ActorValue aValue
EndStruct

AttractionQuality Function makeAttractionQuality(String id, ActorValue aValue, Float minimum = 1.0, Float maximum = 10.0)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented makeAttractionQuality function!\nSENT ARG1 : " + id + ", ARG2 : " + aValue + ", ARG3 : " + minimum + ", ARG4 : " + maximum);
	endif
	return none;
EndFunction

Function generateAttractionValues(Actor targetActor)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented generateAttractionValues function!\nSENT ARG1 : " + targetActor);
	endif
EndFunction

Float Function getAttraction(Actor actorA, Actor actorB)
	PrintLog("WARNING : some mod requested for not implemented getAttraction function!\nSENT ARG1 : " + actorA + ", ARG2 : " + actorB)
	return 0;
EndFunction

Var[] Function getAttractionProfile(Actor targetActor)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented getAttractionProfile function!\nSENT ARG1 : " + targetActor);
	endif
	return none;
EndFunction

Var[] Function getAttractionQualities(Actor targetActor)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented getAttractionQualities function!\nSENT ARG1 : " + targetActor);
	endif
	return none;
EndFunction

Var[] Function makeActorData(Actor targetActor, Bool includeDistance = False)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented makeActorData function!\nSENT ARG1 : " + targetActor + ", ARG2 : " + includeDistance);
	endif
	return none;
EndFunction

Function OnLoadActorData(int requestID, int actorFormID)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnLoadActorData function!\nSENT ARG1 : " + requestID + ", ARG2 : " + actorFormID);
	endif
EndFunction

Function OnLoadMultipleActorData(int requestID, Var[] actorFormID)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnLoadMultipleActorData function!\nSENT ARG1 : " + requestID + ", ARG2 : " + actorFormID);
	endif
EndFunction

Function OnGetLocationData(int requestID, int scanLocation, Var[] furnitureForms, Var[] furnitureSources, Var[] actorGroup, Bool quickScan = False, Float scanRadius = -1.0)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnGetLocationData function!\nSENT ARG1 : " + requestID + ", ARG2 : " + scanLocation + ", ARG3 : " + furnitureForms + ", ARG4 : " + furnitureSources + ", ARG5 : " + actorGroup + ", ARG6 : " + quickScan + ", ARG7 : " + scanRadius);
	endif
EndFunction

Bool Function isValidLocation(ObjectReference targetLocation, Var[] actorGroup)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented isValidLocation function!\nSENT ARG1 : " + targetLocation + ", ARG2 : " + actorGroup);
	endif
	return false;
EndFunction

Function applyISM(int ISMForm, String ISMSource, Float impactStrength)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented applyISM function!\nSENT ARG1 : " + ISMForm + ", ARG2 : " + ISMSource + ", ARG3 : " + impactStrength);
	endif
EndFunction


Function registerConditionKeywords(Var[] aKeywordsUsed)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented registerConditionKeywords function!\nSENT ARG1 : " + aKeywordsUsed);
	endif
EndFunction

Function registerKeywordWatch(Var[] kWatchForms, Var[] kWatchSources)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented registerKeywordWatch function!\nSENT ARG1 : " + kWatchForms + ", ARG2 : " + kWatchSources);
	endif
EndFunction

Actor[] Function performActorScan(Float areaMultiplier = 1.0)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented performActorScan function!\nSENT ARG1 : " + areaMultiplier);
	endif
EndFunction

Var[] Function processActors(Actor[] kActorArray)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented processActors function!\nSENT ARG1 : " + kActorArray);
	endif
	return none;
EndFunction

Function OnStartWizard()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnStartWizard function!");
	endif
EndFunction

Function OnStartCompanionWizard()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnStartCompanionWizard function!");
	endif
EndFunction

Function OnSetCompanions(Var[] actorFormIDs, Bool value)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnSetCompanions function!\nSENT ARG1 : " + actorFormIDs + ", ARG2 : " + value);
	endif
EndFunction

Function lookAt(Int actorFormID)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented lookAt function!\nSENT ARG1 : " + actorFormID);
	endif
EndFunction

Var[] Function getClothesData(Actor[] actors)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented getClothesData function!\nSENT ARG1 : " + actors);
	endif
	return none;
EndFunction

Var[] Function getActorClothes(Actor a)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented getClothesData function!\nSENT ARG1 : " + a);
	endif
	return none;
EndFunction

Function applyEquipByForm(Int actorFormID, Int equipmentForm, String source)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented applyEquipByForm function!\nSENT ARG1 : " + actorFormID + ", ARG2 : " + equipmentForm + ", ARG3 : " + source);
	endif
EndFunction

Function applyUnEquipByForm(Int actorFormID, Int equipmentForm, String source)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented applyUnEquipByForm function!\nSENT ARG1 : " + actorFormID + ", ARG2 : " + equipmentForm + ", ARG3 : " + source);
	endif
EndFunction

Bool Function checkEquipmentValidity(Form equipment)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented checkEquipmentValidity function!\nSENT ARG1 : " + equipment);
	endif
	return false;
EndFunction

Function setGameID(String newID)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented setGameID function!\nSENT ARG1 : " + newID);
	endif
EndFunction

Function saveGAME_DATA(String value)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented saveGAME_DATA function!\nSENT ARG1 : " + value);
	endif
EndFunction

String Function getGAME_DATA()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented getGAME_DATA function!");
	endif
	return "";
EndFunction

Function OnNudgeActors(Var[] actorID, Float xChange, Float yChange, Float aChange, Float zChange)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented OnNudgeActors function!\nSENT ARG1 : " + actorID + ", ARG2 : " + xChange + ", ARG3 : " + yChange + ", ARG4 : " + aChange + ", ARG5 : " + zChange);
	endif
EndFunction

Function playObjectAnimation()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented playObjectAnimation function!");
	endif
EndFunction

Function initAnimation(Var[] target, Var[] idleForm, Var[] idleSource, Var[] initParams, Var[] x, Var[] y, Var[] z, Var[] a)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented initAnimation function!\nSENT ARG1 : " + target + ", ARG2 : " + idleForm + ", ARG3 : " + idleSource + ", ARG4 : " + initParams + ", ARG5 : " + x + ", ARG6 : " + y + ", ARG7 : " + z + ", ARG8 : " + a);
	endif
EndFunction

Function startMultipleIdles(Var[] target, Var[] idleForm, Var[] idleSource, Bool isPlayerInvolved = True, Bool doAnimationReset = False)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented startMultipleIdles function!\nSENT ARG1 : " + target + ", ARG2 : " + idleForm + ", ARG3 : " + idleSource + ", ARG4 : " + isPlayerInvolved + ", ARG5 : " + doAnimationReset);
	endif
EndFunction

Function removeExpression(int actorFormID)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented removeExpression function!\nSENT ARG1 : " + actorFormID);
	endif
EndFunction

Function changeExpression(int actorFormID, int keywordFormID)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented changeExpression function!\nSENT ARG1 : " + actorFormID + ", ARG2 : " + keywordFormID);
	endif
EndFunction

Function alterExpression(int keywordFormID)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented alterExpression function!\nSENT ARG1 : " + keywordFormID);
	endif
EndFunction

Function getMFGTarget()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented getMFGTarget function!");
	endif
EndFunction

Function sayTopic(int actorFormID, int keywordFormID, int topicFormID, int voiceTypeFormID)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented sayTopic function!\nSENT ARG1 : " + actorFormID + ", ARG2 : " + keywordFormID + ", ARG3 : " + topicFormID + ", ARG4 : " + voiceTypeFormID);
	endif
EndFunction

Function removeOverlays(int actorFormID, Var[] UID)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented removeOverlays function!\nSENT ARG1 : " + actorFormID + ", ARG2 : " + UID);
	endif
EndFunction

Function doLocationAnimation(int locationFormID, String animationID)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented doLocationAnimation function!\nSENT ARG1 : " + locationFormID + ", ARG2 : " + animationID);
	endif
EndFunction

Function addOverlays(int actorFormID, Var[] templates)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented addOverlays function!\nSENT ARG1 : " + actorFormID + ", ARG2 : " + templates);
	endif
EndFunction

Function updateEquipment(Var[] actorFormID, Var[] equipment, Var[] isEquip)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented updateEquipment function!\nSENT ARG1 : " + actorFormID + ", ARG2 : " + equipment + ", ARG3 : " + isEquip);
	endif
EndFunction

Function updateMorphs(Var[] actorFormID, Var[] isFemale, Var[] morph, Var[] value, Bool updateArmor = False)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented updateMorphs function!\nSENT ARG1 : " + actorFormID + ", ARG2 : " + isFemale + ", ARG3 : " + morph + ", ARG4 : " + value + ", ARG5 : " + updateArmor);
	endif
EndFunction

Function updatePhysics(Var[] actorFormID, Var[] physics, Var[] value)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented updatePhysics function!\nSENT ARG1 : " + actorFormID + ", ARG2 : " + physics + ", ARG3 : " + value);
	endif
EndFunction

Function reverseTrace(String traceText)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented reverseTrace function!\nSENT ARGS : " + traceText);
	endif
EndFunction

Actor[] Function getActorArrayFromFormIDArray(Var formIDVar)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented getActorArrayFromFormIDArray function!\nSENT ARGS : " + formIDVar);
	endif
	return none;
EndFunction

Var[] Function processFurnitureList(Var[] akArgs)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented processFurnitureList function!\nSENT ARGS : " + akArgs);
	endif
	return none
EndFunction

Var[] Function processStatArguments(Var[] akArgs)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented processStatArguments function!\nSENT ARGS : " + akArgs);
	endif
	return none;
EndFunction

Var[] Function processActorDataArguments(Var[] akArgs)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented processActorDataArguments function!\nSENT ARGS : " + akArgs);
	endif
	return none;
EndFunction

Function startQuickScene()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented startQuickScene function!");
	endif
EndFunction

Function returnToPowerArmor(Actor targetActor)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented returnToPowerArmor function!\nSENT ARGS : " + targetActor);
	endif
EndFunction

Bool Function getAPIDebugOn()
	return false;
EndFunction

Float Function getDefaultSceneDuration()
	return mcmSettings_defaultDuration;
EndFunction

Bool Function getDefaultIgnoreCombat()
	return mcmSettings_defaultIgnoreCombat;
EndFunction

String Function getSWFPath()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented getSWFPath function!");
	endif
	return "";
EndFunction

String Function getGameID()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented getGameID function!");
	endif
	return ""
EndFunction

Var Function GetProtectedEquipmentKeywords()
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented GetProtectedEquipmentKeywords function!");
	endif
	return None
EndFunction

Var[] Function processOnAAFReady(Var[] akArgs)
	if mesDebug
		PrintLog("WARNING : some mod requested for not implemented processOnAAFReady function!");
	endif
	return None
EndFunction

 

 

Look, if anyone wants to help with improving compatibility with different mods - you can participate in implementing features from AAF that are not available now.
Many of these features can be implemented directly only on papyrus and work quite well.
If you need some new feature for papyrus for implementation - let me know what the point of this feature is and I will try to add it.

 

p.s. This is not the most recent version of AAF, probably something changed there, so there may be more functions to be implemented. I don't follow the development of AAF, and I doubt that at the moment there is a need to add something different than what is already implemented. I've shared my point many times - an animation framework should run animations, not do everything. For all sorts of calculations of attractiveness and other do not understand what should be other mods.

Edited by Evi1Panda
Posted
55 minutes ago, Evi1Panda said:

... if anyone wants to help with improving compatibility with different mods - you can participate in implementing features from AAF that are not available now. ...

 

These options are already available in AAF .ini, and would be useful as NAFbridge MCM settings:

  • reequip_delay                = 10        ; Length of delay before reEquipping actors after animations complete in seconds (-1 to disable delay)
  • stopmorph_delay          = 10         ; Length of delay before applying the stopMorph to actors after animations complete in seconds (-1 to disable delay)
  • walk_timeout                 = 30         ; After this number of seconds, consider the walking phase failed and skip to animation. -1 to disable.

These options are not available in AAF .ini, but would be also be very useful in the NAFbridge MCM:

  • unequip_delay               = 10        ; Length of delay before unEquipping actors before animations begin in seconds (-1 to disable delay)
  • startmorph_delay          = 10        ; Length of delay before applying the startMorph to actors before animations begin in seconds (-1 to disable delay)
  • A hotkey assignment for "Stop all active animations"

 

Posted (edited)
22 minutes ago, dosfox said:

 

These options are already available in AAF .ini, and would be useful as NAFbridge MCM settings:

  • reequip_delay                = 10        ; Length of delay before reEquipping actors after animations complete in seconds (-1 to disable delay)
  • stopmorph_delay          = 10         ; Length of delay before applying the stopMorph to actors after animations complete in seconds (-1 to disable delay)
  • walk_timeout                 = 30         ; After this number of seconds, consider the walking phase failed and skip to animation. -1 to disable.

These options are not available in AAF .ini, but would be also be very useful in the NAFbridge MCM:

  • unequip_delay               = 10        ; Length of delay before unEquipping actors before animations begin in seconds (-1 to disable delay)
  • startmorph_delay          = 10        ; Length of delay before applying the startMorph to actors before animations begin in seconds (-1 to disable delay)
  • A hotkey assignment for "Stop all active animations"

 

 

I implemented walk_timeout a long time ago, I don't remember if you can change timeout value, I think I set it to 10 seconds - it doesn't make much sense to wait any longer.

 

A hotkey assignment for “Stop all active animations” - the key to stop all animations is also very long time ago in MCM in debug (I do not remember what it is called, but you wrote about you've been used it). I don't see any point in making it as a hotkey, but it can be generally done using MCM menu tools pretty easily if someone really needs it.

 

reequip_delay, unequip_delay, stopmorph_delay, startmorph_delay - can you explain cases in which this could be useful?

Edited by Evi1Panda
Posted
3 minutes ago, Evi1Panda said:

A hotkey assignment for “Stop all active animations” - the key to stop all animations is also very long time ago in msm in debug (I do not remember what it is called, but you wrote about you've been used it). I don't see any point in making it as a hotkey, but it's generally done with vanilla MCM menu tools pretty easily if someone really needs it.

 

If there are active Autonomy-generated animations when you leave a location by fast travel, NPCs engaged in those animations will often be unequipped when you return to that location. I usually turn Autonomy off by hotkey before fast-travelling, but turning all active scenes off through MCM or NAF GUI takes SO many keystrokes. A hotkey would be really nice.

 

14 minutes ago, Evi1Panda said:

reequip_delay, unequip_delay, stopmorph_delay, startmorph_delay - can you explain cases in which this could be useful?

 

Especially when SKIP WALK is ON and actors teleport to the location, a small delay while NPCs "prepare" for the scene smooths the transition. I used to use that setting with AAF and it looked much better than a sex scene just blipping into existence.

 

23 minutes ago, Evi1Panda said:

I implemented walk_timeout a long time ago, I don't remember if you can change timeout value,

 

It is just ON/OFF setting.

Posted

Is it possible to implement a hotkey in MCM with the function of interrupting all active animations? So as not to enter the NAF interface every time...

Posted

Hey @Evi1Panda,

Since you are working on the AAF api, could you perhaps look at this?
 

Spoiler

aaf_UNATTACHEDINSTANCE.jpg.dc749f84cb50e9f24f8f3c948acdbf65.jpg

 

aaf_UNATTACHEDINSTANCE2.jpg.1bf21389f16e9d81b04ae81edbf358a1.jpg

 

I check my save files regularly, and this Unattached Instance occurs in every playthrough. Unattached instances are very rare in my installation but this one persists. If deleted it will recur in the next save file.

 

The mods associated with the instance are Autonomy, Commonwealth Moisturizer, MSWL and AAF_API itself. All these mods are working except MSWL.

 

Are the above mods making calls to AAF that your version doesn't recognise?

 

Posted (edited)
On 8/14/2025 at 2:24 PM, dosfox said:

Hey @Evi1Panda,

Since you are working on the AAF api, could you perhaps look at this?
 

  Reveal hidden contents

aaf_UNATTACHEDINSTANCE.jpg.dc749f84cb50e9f24f8f3c948acdbf65.jpg

 

aaf_UNATTACHEDINSTANCE2.jpg.1bf21389f16e9d81b04ae81edbf358a1.jpg

 

I check my save files regularly, and this Unattached Instance occurs in every playthrough. Unattached instances are very rare in my installation but this one persists. If deleted it will recur in the next save file.

 

The mods associated with the instance are Autonomy, Commonwealth Moisturizer, MSWL and AAF_API itself. All these mods are working except MSWL.

 

Are the above mods making calls to AAF that your version doesn't recognise?

 

InputEnableLayer is a class that is used to control the input methods available to the player. As for this behavior - I can't say for sure, probably some specifics of implementation.

 

I am using an some of old version of MSWL (maybe it wasn't update and I am using last, it is probably 1.2.1 ver). I am pretty sure it works fine for me. Apart from the fact that it's basically dumb in general and takes quite a while to start up - obviously related to the execution of scripting algorithms. In fact, you have to stand still after sleeping for some time for the mod to work and start the scene. If you run away immediately after sleeping, nothing happens.

Edited by Evi1Panda
Posted
16 hours ago, Evi1Panda said:

... I can't say for sure, probably some specifics of implementation ...

 

I only brought up this issue because it doesn't occur with the vanilla AAF installation. Unattached script instances are not considered a critical error in FO4, but as i said Unattached script instances are extremely rare in my game, and are usually resolved by going back to the previous clean save, not by deleting them.

 

There is very little information to be found about Unattached scripts in FO4. They are meant to occur in the vanilla game, but i can't say i've ever seen  that.  The only ones i've seen are related to installed mods. However there are warnings that unattached scripts may hog resources and slow the game, that's why i brought it to your attention.

 

16 hours ago, Evi1Panda said:

... I am using an some of old version of MSWL ... Apart from the fact that it's basically dumb in general and takes quite a while to start up - obviously related to the execution of scripting algorithms. In fact, you have to stand still after sleeping for some time for the mod to work and start the scene. If you run away immediately after sleeping, nothing happens.

 

For me MSWL works perfectly several times, then stops working altogether. I am using MSWL v.1.2.1, your mod Patch Companion Ivy & MSWL and usually have at least one other vanilla or Thuggyverse companion. Several playthroughs ago i experimented  with uninstall MSWL > clean save > reinstall MSWL, but the result was always the same - MSWL functioning with Ivy several times, then not working at all. I've given up on it for the time being ...

 

Posted

@Evi1Panda

Just another thought about AAF functions that are not currently implemented in NAFbridge - the AAF F11 key (Player character has sex with target NPC). Could this be implemented in such a way that the animation be called to occur on the furniture the PC or target NPC is currently using?  That would almost make MSWL redundant for me, and be a lot of immersive fun otherwise ... 😋

Posted

Until AAF fixes there code ANY form of NAF will cause AAF to display an error, not allow you to play fallout 4. FORCING you to actually uninstall anything NAF, Yes If you are wondering it would Indeed make AAF actual spyware under the sub definition Infostealer, the recipient? the mod. I Don't have to remind people AAF is playing a dangerous, frankly illegal game of FAFO Information has been sent to the admins on site. Sorry for the rant but people should know the truth, included is the error you get when you use naf.

Infostealer:Scan devices for specific data, like passwords and communication data, and transmit it to the attacker. 

Screenshot 2025-08-19 173452.png

Posted
4 hours ago, boldfugur said:

it would Indeed make AAF actual spyware under the sub definition Infostealer, the recipient? the mod. I Don't have to remind people AAF is playing a dangerous, frankly illegal game of FAFO

Totally wrong. See FAQ

Posted

People who incorporate routines into their mods to search user folders for mods that directly compete with their own mod and then make it difficult for the user to use the software are, in my opinion, criminal scum. These people should no longer be allowed a platform on Loverslab, Nexus, etc.

What the hell does this self-absorbed asshole care about what mods I have installed?!

Posted
1 hour ago, Andy14 said:

What the hell does this self-absorbed asshole care about what mods I have installed?!

Simply a narcissist in their death throws desperately trying to maintain control. But in true narcissistic fashion has ripped off their cloak of deception and exposed their true selves. All the while blaming everyone else for their immoral and often times criminal actions.

Posted
3 hours ago, Andy14 said:

People who incorporate routines into their mods to search user folders for mods that directly compete with their own mod and then make it difficult for the user to use the software are, in my opinion, criminal scum. These people should no longer be allowed a platform on Loverslab, Nexus, etc.

What the hell does this self-absorbed asshole care about what mods I have installed?!

im still waiting to hear back from mods about this. The issue was raised in the "official" aaf discord But its now being memed on, ignored.  

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...