Jump to content

Noob papyrus log debug query on sink of scrubbing [solved] thx Traison


Recommended Posts

Posted (edited)

I came across some warning in the payprus.log regarding sink of scrubbing https://www.nexusmods.com/skyrimspecialedition/mods/92844?tab=posts&BH=2

 

[01/23/2026 - 07:35:43PM] warning: Property HELMET_KEYWORD on script BasinActivator attached to  (00083307) cannot be initialized because the script no longer contains that property
[01/23/2026 - 07:35:43PM] warning: Property XMarker on script BasinActivator attached to  (000D64C7) cannot be initialized because the script no longer contains that property

 

So the script no longer contains that property? I have checked the .esp, it contains the two aforementioned properties:

 

VMAD → ScriptName = BasinActivator

  • HELMET_KEYWORD → points to ArmorHelmet [KYWD:0006C0EE]

  • XMarker → points to XMarker [STAT:0000003B]

 

Spoiler

2026-01-2320_27_42-SSEEdit4.1_5f.thumb.jpg.e56ab0dd4c2b1cee21c42328b0dee096.jpg

 

 

However, when I look at the script, it doesn't mention those, thus the warning? Am I reading this right? -> Script changed, .esp did not?

 

Spoiler

Scriptname BasinActivator extends ObjectReference

import Game
import Utility

Message Property CleanYourselfMessage Auto
Message Property GroomedMessage Auto
Message Property CleanedMessage Auto
Spell Property CleanSpell Auto
Actor Property PlayerRef Auto
Idle Property CleanedIdle Auto
Sound Property CleanSound Auto

ObjectReference BasinMarker
Armor StoredEquippedHelmet = None

Bool IsGrooming = False
String RACE_MENU = "RaceSex Menu"

Event OnActivate(ObjectReference akActionRef)
    bool isDnBInstalled = IsPluginInstalled("Dirt and Blood - Dynamic Visuals.esp")
    bool isKICInstalled = IsPluginInstalled("Keep It Clean.esp")
    bool isPlayer = akActionRef == PlayerRef

    self.RegisterForMenu(RACE_MENU)

    If isPlayer
        Int Button = CleanYourselfMessage.Show()

        If Button != 2
            HandleHelmet()
        EndIf

        If Button == 0
            IsGrooming = True
            ShowRaceMenu()
        ElseIf Button == 1            
            If isDnBInstalled
                CleanYourselfDirtAndBlood()
            EndIf
        
            If isKICInstalled
                CleanYourselfKeepItClean()
            EndIf

            If !isKICInstalled && !isDnBInstalled
                CleanYourself()
            EndIf

            ShowCleanedMessage(isKICInstalled)
            EquipHelmetBackOn()
        ElseIf Button == 2
            Return
        EndIf
    EndIf
EndEvent

Event OnMenuClose(String menuName)
    If menuName == RACE_MENU && IsGrooming
        IsGrooming = False
        GroomedMessage.Show()

        EquipHelmetBackOn()

        self.UnregisterForMenu(menuName)
    EndIf
EndEvent

Function HandleHelmet()
    Armor HeadGear = playerRef.GetEquippedArmorInSlot(30) ; check head slot
    Armor HoodGear = playerRef.GetEquippedArmorInSlot(31) ; check hair slot

    If HeadGear
        StoredEquippedHelmet = HeadGear
        PlayerRef.UnequipItem(HeadGear)
    ElseIf HoodGear
        StoredEquippedHelmet = HoodGear
        PlayerRef.UnequipItem(HoodGear)
    EndIf
EndFunction

Function EquipHelmetBackOn()
    If StoredEquippedHelmet
        Wait(0.2)
        PlayerRef.EquipItem(StoredEquippedHelmet)
        StoredEquippedHelmet = None
    EndIf
EndFunction

Function ShowCleanedMessage(bool isKICInstalled)
    If isKICInstalled
        Message CleanedMsgKIC = GetFormFromFile(0x05113425, "Keep It Clean.esp") as Message
        CleanedMsgKIC.Show()
    Else
        CleanedMessage.Show()
    EndIf
EndFunction

Function CleanTriggered()
    Wait(0.1)
    Debug.SendAnimationEvent(PlayerRef, "IdleCannibalFeedStanding")
    CleanSound.Play(self)
    Wait(5.0)
    PlayerRef.PlayIdle(CleanedIdle)
EndFunction

Function CleanYourself()
    CleanTriggered()
    CleanSpell.Cast(PlayerRef, PlayerRef)
    ClearTempEffects()
EndFunction

Function CleanYourselfDirtAndBlood()
    PlayerRef.DispelSpell(CleanSpell)
    CleanTriggered()

    Spell Dirty_Spell_Dirt1 = GetFormFromFile(0x01000806, "Dirt and Blood - Dynamic Visuals.esp") as Spell
    Spell Dirty_Spell_Dirt2 = GetFormFromFile(0x01000807, "Dirt and Blood - Dynamic Visuals.esp") as Spell
    Spell Dirty_Spell_Dirt3 = GetFormFromFile(0x01000808, "Dirt and Blood - Dynamic Visuals.esp") as Spell
    Spell Dirty_Spell_Dirt4 = GetFormFromFile(0x01000838, "Dirt and Blood - Dynamic Visuals.esp") as Spell
    Spell Dirty_Spell_Blood1 = GetFormFromFile(0x01000809, "Dirt and Blood - Dynamic Visuals.esp") as Spell
    Spell Dirty_Spell_Blood2 = GetFormFromFile(0x0100080A, "Dirt and Blood - Dynamic Visuals.esp") as Spell
    Spell Dirty_Spell_Blood3 = GetFormFromFile(0x0100080B, "Dirt and Blood - Dynamic Visuals.esp") as Spell
    Spell Dirty_Spell_Blood4 = GetFormFromFile(0x01000839, "Dirt and Blood - Dynamic Visuals.esp") as Spell

    ; Just remove any spell possible
    PlayerRef.RemoveSpell(Dirty_Spell_Dirt2)
    PlayerRef.RemoveSpell(Dirty_Spell_Dirt3)
    PlayerRef.RemoveSpell(Dirty_Spell_Dirt4)
    PlayerRef.RemoveSpell(Dirty_Spell_Blood1)
    PlayerRef.RemoveSpell(Dirty_Spell_Blood2)
    PlayerRef.RemoveSpell(Dirty_Spell_Blood3)
    PlayerRef.RemoveSpell(Dirty_Spell_Blood4)

    ; Add the "Slightly Dirty" effect to the player
    PlayerRef.AddSpell(Dirty_Spell_Dirt1)
EndFunction

Function CleanYourselfKeepItClean()
    PlayerRef.DispelSpell(CleanSpell)
    ClearEffectsKIC()

    Spell CleanSpell_KIC = GetFormFromFile(0x0511054D, "Keep It Clean.esp") as Spell
    GlobalVariable LastWashed = GetFormFromFile(0x050EA4EE, "Keep It Clean.esp") as GlobalVariable
    GlobalVariable DirtyTimeVar = GetFormFromFile(0x05253785, "Keep It Clean.esp") as GlobalVariable

    LastWashed.SetValue(GetCurrentGameTime())
    DirtyTimeVar.SetValue(0)

    PlayerRef.AddSpell(CleanSpell_KIC, False)
EndFunction

Function ClearEffectsKIC()
    FormList BathEffectsKIC = GetFormFromFile(0x05101B4D, "Keep It Clean.esp") as Formlist

    int CurrentEffect = 0

    While (CurrentEffect < BathEffectsKIC.GetSize())
        Spell SpellInList = BathEffectsKIC.GetAt(CurrentEffect) As Spell
        PlayerRef.RemoveSpell(SpellInList)
        CurrentEffect += 1
    EndWhile
EndFunction

 

 

Edited by plutocene
Posted
1 hour ago, plutocene said:

Script changed, .esp did not?

 

Answered your own question.

 

Remove the entries from the esp if you want to fix the error.

Posted (edited)
6 minutes ago, traison said:

 

Answered your own question.

 

Remove the entries from the esp if you want to fix the error.

 

I was asking for clarification/confirmation of my assessment ;) Thanks.

Edited by plutocene
  • plutocene changed the title to Noob papyrus log debug query on sink of scrubbing [solved] thx Traison

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...