hextun Posted May 15 Author Posted May 15 (edited) 1 hour ago, Fraying9981 said: hey @hextun was wondering why this script creates bloat when set to timer = every 4 minutes. = after playing for ~20 minutes i get ~ 400 suspended stacks per resaver and papyrus engine stops working. Also, i noticed that this script tends to fire up several times in parallel according to the logs Reveal hidden contents ; ============================================================================= ; _dom_persona_read.sltscript ; ============================================================================= ; PURPOSE: Timer-driven in SL Triggers MCM (you set the interval, e.g. 2 minutes). Same ; scan/cast flow as _dom_persona_read_hourly_v1 copy.sltscript: bare ; util_scan_cell_npcs (whole cell), actor_infaction == false, ; spell_cast, cap $MAX_TARGETS. After cast: female or futa (gender 1/2), if ; DOMVirginOral/Anal/Vaginal rank == 4, roll and set DOMTrain* (csv buckets). ; Bump $SCRIPT_VERSION (v2l, v2m, …) on edits. ; ; NOTE: Disable any other SL Triggers rule that runs _dom_persona_read_hourly_v1.sltscript ; (not the "copy" reference file) — duplicate runs still cast/train; use one timer rule. ; ; TRIGGER: SL Triggers timer (interval not read by this script — set in MCM only). ; ============================================================================= ; ----------------------------------------------------------------------------- ; USER-EDITABLE CONFIG ; ----------------------------------------------------------------------------- set $SCRIPT_VERSION "v2m" ; $MAX_TARGETS : maximum casts per trigger run set $MAX_TARGETS 5 deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=INIT script enter Persona Read timer fired" deb_msg "[DOM-PR] " $SCRIPT_VERSION " CONFIG MAX_TARGETS=" $MAX_TARGETS " (cast cap per run)" msg_notify "[DOM-PR] " $SCRIPT_VERSION " Persona Read triggered" ; ----------------------------------------------------------------------------- ; RESOLVE FORMS (editor-ID lookup) ; ----------------------------------------------------------------------------- set $facetSmartness resultfrom form_getbyid "DOMFacetSmartness" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMFacetSmartness -> facetSmartness form (none=missing mod)" set $personaSpell resultfrom form_getbyid "DOMPersonaReadSpell" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMPersonaReadSpell -> personaSpell form (none=missing mod)" set $domVirginAnal resultfrom form_getbyid "DOMVirginAnal" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMVirginAnal -> virginAnal faction (train gate later)" set $domVirginVaginal resultfrom form_getbyid "DOMVirginVaginal" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMVirginVaginal -> virginVaginal faction" set $domVirginOral resultfrom form_getbyid "DOMVirginOral" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMVirginOral -> virginOral faction" set $domTrainAnal resultfrom form_getbyid "DOMTrainAnal" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMTrainAnal -> trainAnal faction" set $domTrainVaginal resultfrom form_getbyid "DOMTrainVaginal" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMTrainVaginal -> trainVaginal faction" set $domTrainOral resultfrom form_getbyid "DOMTrainOral" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMTrainOral -> trainOral faction" if $facetSmartness == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " ABORT STEP=FORM editor=DOMFacetSmartness result=none (install DOM / facet mod)" msg_notify "[DOM-PR] " $SCRIPT_VERSION " Faction DOMFacetSmartness not found" return endif if $personaSpell == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " ABORT STEP=FORM editor=DOMPersonaReadSpell result=none" msg_notify "[DOM-PR] " $SCRIPT_VERSION " Spell DOMPersonaReadSpell not found" return endif if $domVirginAnal == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " WARN STEP=FORM editor=DOMVirginAnal missing -> SKIP train anal branch (actor_getfactionrank DOMVirginAnal)" endif if $domVirginVaginal == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " WARN STEP=FORM editor=DOMVirginVaginal missing -> SKIP train vaginal branch" endif if $domVirginOral == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " WARN STEP=FORM editor=DOMVirginOral missing -> SKIP train oral branch" endif if $domTrainAnal == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " WARN STEP=FORM editor=DOMTrainAnal missing -> SKIP set rank anal" endif if $domTrainVaginal == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " WARN STEP=FORM editor=DOMTrainVaginal missing -> SKIP set rank vaginal" endif if $domTrainOral == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " WARN STEP=FORM editor=DOMTrainOral missing -> SKIP set rank oral" endif ; ----------------------------------------------------------------------------- ; SCAN NEARBY NPCS (official pattern: no args = player center, whole cell, no keyword) ; ----------------------------------------------------------------------------- deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=SCAN util_scan_cell_npcs (no args) center=player default radius=whole cell dead=ignored" set $nearby resultfrom util_scan_cell_npcs set $count resultfrom listcount $nearby deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=SCAN result listCount=$count variable=nearby (Form[] NPC refs)" if $count == 0 deb_msg "[DOM-PR] " $SCRIPT_VERSION " EXIT STEP=SCAN listCount=0 no NPC refs -> return" return endif ; ----------------------------------------------------------------------------- ; ITERATE AND CAST (same gate as v1 copy: resultfrom + == true / == false) ; ----------------------------------------------------------------------------- set $i 0 set $cast 0 deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=LOOP begin while i<listCount i=0 castSoFar=0 cap=MAX_TARGETS" while $i < $count if $cast >= $MAX_TARGETS deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=LOOP halt castSoFar=" $cast " >= MAX_TARGETS=" $MAX_TARGETS " -> goto done (no more casts this run)" goto [done] endif deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=LOOP body iter index i=" $i " listCount=" $count " castSoFar=" $cast " (next=nearby ref)" set $npc $nearby[$i] set $isValid resultfrom actor_isvalid $npc deb_msg "[DOM-PR] " $SCRIPT_VERSION " CHECK actor_isvalid nearby[i=" $i "] -> isValid=" $isValid " (true=Actor ref)" if $isValid == true set $isPlayer resultfrom actor_isplayer $npc deb_msg "[DOM-PR] " $SCRIPT_VERSION " CHECK actor_isplayer nearby[i=" $i "] -> isPlayer=" $isPlayer " (true=skip player not NPC)" if $isPlayer == false set $npcName resultfrom actor_name $npc deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=LOOP actor identity i=" $i " name=" $npcName " (next=actor_infaction DOMFacetSmartness)" deb_msg "[DOM-PR] " $SCRIPT_VERSION " CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=" $npcName set $inFaction resultfrom actor_infaction $npc $facetSmartness deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_infaction DOMFacetSmartness name=" $npcName " inFaction=" $inFaction " (false=not yet smartness -> CAST spell)" if $inFaction == false deb_msg "[DOM-PR] " $SCRIPT_VERSION " ACTION spell_cast spell=DOMPersonaReadSpell target=" $npcName " (persona read)" spell_cast $personaSpell $npc inc $cast 1 deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT cast count castSoFar=" $cast " after spell_cast" ; female (1) or futa (2): train ranks if virgin faction rank == 4 deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=train actor_getgender name=" $npcName actor_getgender $npc set $gender $$ deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_getgender name=" $npcName " gender=" $gender " (1=female 2=futa 0=male)" set $doVirginTrain false if $gender == 1 set $doVirginTrain true endif if $gender == 2 set $doVirginTrain true endif if $doVirginTrain == true deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=train enter virgin rank reads for name=" $npcName " (rank 4 = train gate per lane; form none = lane skipped entirely)" if $domVirginOral != none set $vrOral resultfrom actor_getfactionrank $npc $domVirginOral deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_getfactionrank faction=DOMVirginOral name=" $npcName " rank=" $vrOral endif if $domVirginAnal != none set $vrAnal resultfrom actor_getfactionrank $npc $domVirginAnal deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_getfactionrank faction=DOMVirginAnal name=" $npcName " rank=" $vrAnal endif if $domVirginVaginal != none set $vrVag resultfrom actor_getfactionrank $npc $domVirginVaginal deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_getfactionrank faction=DOMVirginVaginal name=" $npcName " rank=" $vrVag endif if $domVirginOral != none if $domTrainOral != none if $vrOral == 4 deb_msg "[DOM-PR] " $SCRIPT_VERSION " ACTION gosub roll oral DOMVirginOral rank==4 name=" $npcName gosub sub_roll_train_oral actor_setfactionrank $npc $domTrainOral $trainRank deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_setfactionrank faction=DOMTrainOral name=" $npcName " trainRank=" $trainRank else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train oral DOMVirginOral rank=" $vrOral " (need 4) name=" $npcName endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train oral DOMTrainOral form missing name=" $npcName endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train oral DOMVirginOral form missing name=" $npcName endif if $domVirginAnal != none if $domTrainAnal != none if $vrAnal == 4 deb_msg "[DOM-PR] " $SCRIPT_VERSION " ACTION gosub roll anal DOMVirginAnal rank==4 name=" $npcName gosub sub_roll_train_anal actor_setfactionrank $npc $domTrainAnal $trainRank deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_setfactionrank faction=DOMTrainAnal name=" $npcName " trainRank=" $trainRank else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train anal DOMVirginAnal rank=" $vrAnal " (need 4) name=" $npcName endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train anal DOMTrainAnal form missing name=" $npcName endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train anal DOMVirginAnal form missing name=" $npcName endif if $domVirginVaginal != none if $domTrainVaginal != none if $vrVag == 4 deb_msg "[DOM-PR] " $SCRIPT_VERSION " ACTION gosub roll vaginal DOMVirginVaginal rank==4 name=" $npcName gosub sub_roll_train_vaginal actor_setfactionrank $npc $domTrainVaginal $trainRank deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_setfactionrank faction=DOMTrainVaginal name=" $npcName " trainRank=" $trainRank else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train vaginal DOMVirginVaginal rank=" $vrVag " (need 4) name=" $npcName endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train vaginal DOMTrainVaginal form missing name=" $npcName endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train vaginal DOMVirginVaginal form missing name=" $npcName endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train branch gender=" $gender " name=" $npcName " (only female=1 or futa=2 get virgin train rolls)" endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=" $npcName endif else set $plName resultfrom actor_name $npc deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP player ref actor_isplayer=true index i=" $i " name=" $plName " (not an NPC target)" endif else typeid $npc set $badTypeid $$ form_dogetter $npc GetFormID set $badFormid $$ actor_name $npc set $badName $$ deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP invalid ref index i=" $i " actor_isvalid=false typeid=" $badTypeid " GetFormID=" $badFormid " name=" $badName endif deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=LOOP end iteration i=" $i " advancing i++" inc $i 1 endwhile [done] deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=done label castSoFar=" $cast " (persona casts this run)" if $cast > 0 msg_notify "[DOM-PR] " $SCRIPT_VERSION " Read " $cast " mind(s)" else deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT castSoFar=0 (no DOMPersonaReadSpell cast this run; NPCs skipped facet/player/invalid or list empty returned earlier)" endif return ; ----------------------------------------------------------------------------- ; SUBROUTINES: rnd 0-99 -> train rank (sskillsdistribution.csv oral/anal/vaginal) ; ----------------------------------------------------------------------------- beginsub sub_roll_train_anal set $r resultfrom rnd_int 0 99 deb_msg "[DOM-PR] " $SCRIPT_VERSION " SUB=sub_roll_train_anal rnd_int 0-99 -> r=" $r " (next=map r to DOMTrainAnal rank bucket)" if $r < 70 set $trainRank 0 elseif $r < 86 set $trainRank 10 elseif $r < 94 set $trainRank 30 elseif $r < 97 set $trainRank 50 elseif $r < 99 set $trainRank 70 else set $trainRank 90 endif deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT sub_roll_train_anal trainRank=" $trainRank " (actor_setfactionrank DOMTrainAnal by caller)" endsub beginsub sub_roll_train_vaginal set $r resultfrom rnd_int 0 99 deb_msg "[DOM-PR] " $SCRIPT_VERSION " SUB=sub_roll_train_vaginal rnd_int 0-99 -> r=" $r " (next=map r to DOMTrainVaginal rank bucket)" if $r < 22 set $trainRank 0 elseif $r < 57 set $trainRank 10 elseif $r < 77 set $trainRank 30 elseif $r < 87 set $trainRank 50 elseif $r < 95 set $trainRank 70 else set $trainRank 90 endif deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT sub_roll_train_vaginal trainRank=" $trainRank " (actor_setfactionrank DOMTrainVaginal by caller)" endsub beginsub sub_roll_train_oral set $r resultfrom rnd_int 0 99 deb_msg "[DOM-PR] " $SCRIPT_VERSION " SUB=sub_roll_train_oral rnd_int 0-99 -> r=" $r " (next=map r to DOMTrainOral rank bucket)" if $r < 30 set $trainRank 0 elseif $r < 65 set $trainRank 10 elseif $r < 85 set $trainRank 30 elseif $r < 95 set $trainRank 50 elseif $r < 99 set $trainRank 70 else set $trainRank 90 endif deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT sub_roll_train_oral trainRank=" $trainRank " (actor_setfactionrank DOMTrainOral by caller)" endsub log for a previous but similar version with a blacklist Reveal hidden contents can you analyze whats going on??? @SKSE/Plugins/sl_triggers/commands/_dom_persona_read.sltscript here is the log: --- [2026-05-14 16:14:41.233] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=INIT script enter Persona Read timer fired [2026-05-14 16:14:41.382] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=INIT RACE_BLACKLIST built listCount=$RACE_BL_COUNT (next=msg_notify user) [2026-05-14 16:14:41.582] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CONFIG MAX_TARGETS=5 (cast cap per run) [2026-05-14 16:14:41.881] [log] [info] [sl_triggers.cpp:751] SLTR:(_dom_persona_read.sltscript)[45]: [DOM-PR] v2l Persona Read triggered [2026-05-14 16:14:42.331] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMFacetSmartness -> facetSmartness form (none=missing mod) [2026-05-14 16:14:42.731] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMPersonaReadSpell -> personaSpell form (none=missing mod) [2026-05-14 16:14:43.262] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMVirginAnal -> virginAnal faction (train gate later) [2026-05-14 16:14:43.710] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMVirginVaginal -> virginVaginal faction [2026-05-14 16:14:44.084] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMVirginOral -> virginOral faction [2026-05-14 16:14:44.485] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMTrainAnal -> trainAnal faction [2026-05-14 16:14:44.909] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMTrainVaginal -> trainVaginal faction [2026-05-14 16:14:45.335] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMTrainOral -> trainOral faction [2026-05-14 16:14:47.033] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=SCAN util_scan_cell_npcs (no args) center=player default radius=whole cell dead=ignored [2026-05-14 16:14:47.857] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=SCAN result listCount=$count variable=nearby (Form[] NPC refs) [2026-05-14 16:14:48.506] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP begin while i<listCount i=0 castSoFar=0 cap=MAX_TARGETS [2026-05-14 16:14:49.130] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP body iter index i=0 listCount=11 castSoFar=0 (next=nearby ref) [2026-05-14 16:14:50.044] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isvalid nearby -> isValid=1 (true=Actor ref) [2026-05-14 16:14:50.669] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isplayer nearby -> isPlayer=False (true=skip player not NPC) [2026-05-14 16:14:51.618] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP actor identity i=0 name=Achmack actor_race=Redguard (next=RACE_BLACKLIST compare) [2026-05-14 16:14:51.818] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=blacklist begin while j<RACE_BL_COUNT compare actor_race to list entry [2026-05-14 16:15:27.481] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=blacklist end isBlacklisted=False name=Achmack (true=skip creature race) [2026-05-14 16:15:27.830] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Achmack [2026-05-14 16:15:28.505] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l RESULT actor_infaction DOMFacetSmartness name=Achmack inFaction=False (false=not yet smartness -> CAST spell) [2026-05-14 16:15:28.779] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l ACTION spell_cast spell=DOMPersonaReadSpell target=Achmack (persona read) [2026-05-14 16:15:29.379] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l RESULT cast count castSoFar=1 after spell_cast [2026-05-14 16:15:29.579] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=train actor_getgender name=Achmack [2026-05-14 16:15:32.026] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l RESULT actor_getgender name=Achmack gender=0 (1=female 2=futa 0=male) [2026-05-14 16:15:34.549] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l SKIP train branch gender=0 name=Achmack (only female=1 or futa=2 get virgin train rolls) [2026-05-14 16:15:35.274] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP end iteration i=0 advancing i++ [2026-05-14 16:15:36.048] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP body iter index i=1 listCount=11 castSoFar=1 (next=nearby ref) [2026-05-14 16:15:36.897] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isvalid nearby[i=1] -> isValid=1 (true=Actor ref) [2026-05-14 16:15:37.496] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isplayer nearby[i=1] -> isPlayer=False (true=skip player not NPC) [2026-05-14 16:15:38.545] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP actor identity i=1 name=Owyn the Officer actor_race=Redguard (next=RACE_BLACKLIST compare) [2026-05-14 16:15:38.720] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=blacklist begin while j<RACE_BL_COUNT compare actor_race to list entry [2026-05-14 16:15:43.315] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-14 16:15:43.415] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(838.778015) [2026-05-14 16:16:14.499] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=blacklist end isBlacklisted=False name=Owyn the Officer (true=skip creature race) [2026-05-14 16:16:14.849] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Owyn the Officer [2026-05-14 16:16:15.474] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l RESULT actor_infaction DOMFacetSmartness name=Owyn the Officer inFaction=False (false=not yet smartness -> CAST spell) [2026-05-14 16:16:15.773] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l ACTION spell_cast spell=DOMPersonaReadSpell target=Owyn the Officer (persona read) [2026-05-14 16:16:16.373] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l RESULT cast count castSoFar=2 after spell_cast [2026-05-14 16:16:16.548] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=train actor_getgender name=Owyn the Officer [2026-05-14 16:16:17.097] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l RESULT actor_getgender name=Owyn the Officer gender=0 (1=female 2=futa 0=male) [2026-05-14 16:16:24.196] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l SKIP train branch gender=0 name=Owyn the Officer (only female=1 or futa=2 get virgin train rolls) [2026-05-14 16:16:24.970] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP end iteration i=1 advancing i++ [2026-05-14 16:16:25.745] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP body iter index i=2 listCount=11 castSoFar=2 (next=nearby ref) [2026-05-14 16:16:26.792] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isvalid nearby[i=2] -> isValid=0 (true=Actor ref) [2026-05-14 16:16:30.788] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l SKIP invalid ref index i=2 actor_isvalid=false typeid=5 GetFormID=185746470 name=Dog [2026-05-14 16:16:31.016] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP end iteration i=2 advancing i++ [2026-05-14 16:16:31.762] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP body iter index i=3 listCount=11 castSoFar=2 (next=nearby ref) [2026-05-14 16:16:32.611] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isvalid nearby[i=3] -> isValid=0 (true=Actor ref) [2026-05-14 16:16:39.669] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l SKIP invalid ref index i=3 actor_isvalid=false typeid=5 GetFormID=185070340 name=Hallin [2026-05-14 16:16:39.870] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP end iteration i=3 advancing i++ [2026-05-14 16:16:40.646] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP body iter index i=4 listCount=11 castSoFar=2 (next=nearby ref) [2026-05-14 16:16:41.568] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isvalid nearby[i=4] -> isValid=1 (true=Actor ref) [2026-05-14 16:16:42.242] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isplayer nearby[i=4] -> isPlayer=TRUE (true=skip player not NPC) [2026-05-14 16:16:45.766] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l SKIP player ref actor_isplayer=true index i=4 name=Dominus (not an NPC target) [2026-05-14 16:16:46.338] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP end iteration i=4 advancing i++ [2026-05-14 16:16:47.087] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP body iter index i=5 listCount=11 castSoFar=2 (next=nearby ref) [2026-05-14 16:16:48.036] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isvalid nearby[i=5] -> isValid=0 (true=Actor ref) [2026-05-14 16:16:52.132] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l SKIP invalid ref index i=5 actor_isvalid=false typeid=5 GetFormID=185732270 name=Fasahr [2026-05-14 16:16:52.382] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP end iteration i=5 advancing i++ [2026-05-14 16:16:53.057] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP body iter index i=6 listCount=11 castSoFar=2 (next=nearby ref) [2026-05-14 16:16:53.381] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-14 16:16:53.456] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(901.475037) [2026-05-14 16:16:54.055] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isvalid nearby[i=6] -> isValid=1 (true=Actor ref) [2026-05-14 16:16:54.655] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isplayer nearby[i=6] -> isPlayer=False (true=skip player not NPC) [2026-05-14 16:16:55.729] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP actor identity i=6 name=Thadgeir actor_race=nord (next=RACE_BLACKLIST compare) [2026-05-14 16:16:55.928] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=blacklist begin while j<RACE_BL_COUNT compare actor_race to list entry [2026-05-14 16:17:31.818] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=blacklist end isBlacklisted=False name=Thadgeir (true=skip creature race) [2026-05-14 16:17:32.167] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Thadgeir [2026-05-14 16:17:32.867] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l RESULT actor_infaction DOMFacetSmartness name=Thadgeir inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-14 16:17:35.189] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Thadgeir [2026-05-14 16:17:35.839] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP end iteration i=6 advancing i++ [2026-05-14 16:17:36.588] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP body iter index i=7 listCount=11 castSoFar=2 (next=nearby ref) [2026-05-14 16:17:37.437] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isvalid nearby[i=7] -> isValid=0 (true=Actor ref) [2026-05-14 16:17:41.533] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l SKIP invalid ref index i=7 actor_isvalid=false typeid=5 GetFormID=185746468 name=Dog [2026-05-14 16:17:41.733] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP end iteration i=7 advancing i++ [2026-05-14 16:17:42.557] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP body iter index i=8 listCount=11 castSoFar=2 (next=nearby ref) [2026-05-14 16:17:43.481] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isvalid nearby[i=8] -> isValid=0 (true=Actor ref) [2026-05-14 16:17:47.652] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l SKIP invalid ref index i=8 actor_isvalid=false typeid=5 GetFormID=185030552 name=Alusannah the wise [2026-05-14 16:17:47.927] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP end iteration i=8 advancing i++ [2026-05-14 16:17:48.676] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP body iter index i=9 listCount=11 castSoFar=2 (next=nearby ref) [2026-05-14 16:17:49.600] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isvalid nearby[i=9] -> isValid=0 (true=Actor ref) [2026-05-14 16:17:53.646] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l SKIP invalid ref index i=9 actor_isvalid=false typeid=5 GetFormID=185746553 name=Joramah [2026-05-14 16:17:53.871] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP end iteration i=9 advancing i++ [2026-05-14 16:17:54.620] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP body iter index i=10 listCount=11 castSoFar=2 (next=nearby ref) [2026-05-14 16:17:55.565] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isvalid nearby[i=10] -> isValid=0 (true=Actor ref) [2026-05-14 16:17:58.138] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-14 16:17:58.212] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(963.686035) [2026-05-14 16:17:59.761] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l SKIP invalid ref index i=10 actor_isvalid=false typeid=5 GetFormID=185746469 name=Dog [2026-05-14 16:18:00.060] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP end iteration i=10 advancing i++ [2026-05-14 16:18:04.166] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=done label castSoFar=2 (persona casts this run) [2026-05-14 16:18:04.490] [log] [info] [sl_triggers.cpp:751] SLTR:(_dom_persona_read.sltscript)[266]: [DOM-PR] v2l Read 2 mind(s) [2026-05-14 16:54:37.515] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-14 16:54:37.590] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(3159.522217) [2026-05-14 16:54:39.283] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=INIT script enter Persona Read timer fired [2026-05-14 16:54:39.434] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=INIT RACE_BLACKLIST built listCount=$RACE_BL_COUNT (next=msg_notify user) [2026-05-14 16:54:39.683] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CONFIG MAX_TARGETS=5 (cast cap per run) [2026-05-14 16:54:39.858] [log] [info] [sl_triggers.cpp:751] SLTR:(_dom_persona_read.sltscript)[45]: [DOM-PR] v2l Persona Read triggered [2026-05-14 16:54:40.333] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMFacetSmartness -> facetSmartness form (none=missing mod) [2026-05-14 16:54:40.707] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMPersonaReadSpell -> personaSpell form (none=missing mod) [2026-05-14 16:54:41.157] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMVirginAnal -> virginAnal faction (train gate later) [2026-05-14 16:54:41.582] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMVirginVaginal -> virginVaginal faction [2026-05-14 16:54:42.031] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMVirginOral -> virginOral faction [2026-05-14 16:54:42.493] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMTrainAnal -> trainAnal faction [2026-05-14 16:54:42.868] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMTrainVaginal -> trainVaginal faction [2026-05-14 16:54:43.342] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=FORM form_getbyid editor=DOMTrainOral -> trainOral faction [2026-05-14 16:54:45.039] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=SCAN util_scan_cell_npcs (no args) center=player default radius=whole cell dead=ignored [2026-05-14 16:54:46.040] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=SCAN result listCount=$count variable=nearby (Form[] NPC refs) [2026-05-14 16:54:46.639] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP begin while i<listCount i=0 castSoFar=0 cap=MAX_TARGETS [2026-05-14 16:54:47.263] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP body iter index i=0 listCount=3 castSoFar=0 (next=nearby ref) [2026-05-14 16:54:48.212] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isvalid nearby -> isValid=1 (true=Actor ref) [2026-05-14 16:54:48.787] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isplayer nearby -> isPlayer=TRUE (true=skip player not NPC) [2026-05-14 16:54:52.209] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l SKIP player ref actor_isplayer=true index i=0 name=Dominus (not an NPC target) [2026-05-14 16:54:52.683] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP end iteration i=0 advancing i++ [2026-05-14 16:54:53.381] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP body iter index i=1 listCount=3 castSoFar=0 (next=nearby ref) [2026-05-14 16:54:55.201] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isvalid nearby[i=1] -> isValid=0 (true=Actor ref) [2026-05-14 16:54:59.421] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l SKIP invalid ref index i=1 actor_isvalid=false typeid=5 GetFormID=185762386 name=Cyrus [2026-05-14 16:54:59.620] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP end iteration i=1 advancing i++ [2026-05-14 16:55:00.394] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP body iter index i=2 listCount=3 castSoFar=0 (next=nearby ref) [2026-05-14 16:55:01.465] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isvalid nearby[i=2] -> isValid=1 (true=Actor ref) [2026-05-14 16:55:02.189] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l CHECK actor_isplayer nearby[i=2] -> isPlayer=False (true=skip player not NPC) [2026-05-14 16:55:03.163] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=LOOP actor identity i=2 name=Thadgeir actor_race=nord (next=RACE_BLACKLIST compare) [2026-05-14 16:55:03.362] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2l STEP=blacklist begin while j<RACE_BL_COUNT compare actor_race to list entry Ew. This sounds like a nasty bug. What version are you using? And do you have an sl-triggers.log output with some debug flags enabled? Also, do you happen to have other timer-based scripts and if so, can you summarize their setup (i.e. how long each is set to wait)? Edited May 16 by hextun
Fraying9981 Posted May 16 Posted May 16 9 minutes ago, hextun said: Ew. This sounds like a nasty bug. What version are you using? And do you have an sl-triggers.log output with some debug flags enabled? Also, do you happen to have other timer-based scripts and if so, can you summarize their setup (i.e. how long each is set to wait)? thanks. 978 i'll try to regenerate a log. which options should i tick for debug? Core? this is my only timer based script
hextun Posted May 16 Author Posted May 16 29 minutes ago, Fraying9981 said: thanks. 978 i'll try to regenerate a log. which options should i tick for debug? Core? this is my only timer based script req'd: Core Timer optional: Core Another odd question: how many times have you *loaded* this game? So... you started the save, new character. You play for a few hours and create 10 saves (don't laugh). You shut down. You come back to it a day later and start again. That's *one* load. You play another few hours; 10 more saves. You quit and start the next day. That's *two* loads. Approximate if you don't mind since specificity is unlikely: 1-5, 6-10, 11-15, etc. Also, I'm reviewing my code surrounding this event. It may be overcomplicated and thus, problematic. Erroneous. Buggy.
hextun Posted May 16 Author Posted May 16 (edited) 12 hours ago, Fraying9981 said: thanks. 978 i'll try to regenerate a log. which options should i tick for debug? Core? this is my only timer based script Removed the custom .pex for download (saw 0 downloads anyway, so it shouldn't have impacted anyone). Edited May 16 by hextun
hextun Posted May 16 Author Posted May 16 (edited) Scratch that. Here is a preview of 0.981. I've further updated the Timer event logic; no longer using the JSON for persistence (since that means separate characters could impact each other). I did, however, go back to juggling arrays, but 2 instead of 3 and using simpler logic to manage things. @Fraying9981, please try it out and let me know how it goes. Anyone else: sure, have a go. Eventually I'll post it properly. EDIT: Removed the download link as an official v0.981 version download is now available from the main page as normal Edited June 1 by hextun Removed download link
Fraying9981 Posted May 29 Posted May 29 (edited) On 5/16/2026 at 8:23 AM, hextun said: Scratch that. Here is a preview of 0.981. I've further updated the Timer event logic; no longer using the JSON for persistence (since that means separate characters could impact each other). I did, however, go back to juggling arrays, but 2 instead of 3 and using simpler logic to manage things. @Fraying9981, please try it out and let me know how it goes. Anyone else: sure, have a go. Eventually I'll post it properly. SLTriggersRedux-0.981.zip 1.15 MB · 4 downloads ok so I've done some testing. Here is the report Spoiler Resaver logs: good news: no stack frame error at all on multiple saves and locations! Testing methodology: 4 locations 3 indoor 1 outdoor 1 indoor had 10+ profiles to generate (script is too slow to do all of them but at least no bloat according to resaver) i saved in each location after a few minutes core and core timer debug activated, see logs below Script I used with timer 2 minutes: Spoiler ; ============================================================================= ; _dom_persona_read.sltscript ; ============================================================================= ; PURPOSE: Timer-driven in SL Triggers MCM (you set the interval, e.g. 2 minutes). Same ; scan/cast flow as _dom_persona_read_hourly_v1 copy.sltscript: bare ; util_scan_cell_npcs (whole cell), actor_infaction == false, ; spell_cast, cap $MAX_TARGETS. After cast: female or futa (gender 1/2), if ; DOMVirginOral/Anal/Vaginal rank == 4, roll and set DOMTrain* (csv buckets). ; Bump $SCRIPT_VERSION (v2l, v2m, …) on edits. ; ; NOTE: Disable any other SL Triggers rule that runs _dom_persona_read_hourly_v1.sltscript ; (not the "copy" reference file) — duplicate runs still cast/train; use one timer rule. ; ; TRIGGER: SL Triggers timer (interval not read by this script — set in MCM only). ; ============================================================================= ; ----------------------------------------------------------------------------- ; USER-EDITABLE CONFIG ; ----------------------------------------------------------------------------- set $SCRIPT_VERSION "v2m" ; $MAX_TARGETS : maximum casts per trigger run set $MAX_TARGETS 5 deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=INIT script enter Persona Read timer fired" deb_msg "[DOM-PR] " $SCRIPT_VERSION " CONFIG MAX_TARGETS=" $MAX_TARGETS " (cast cap per run)" msg_notify "[DOM-PR] " $SCRIPT_VERSION " Persona Read triggered" ; ----------------------------------------------------------------------------- ; RESOLVE FORMS (editor-ID lookup) ; ----------------------------------------------------------------------------- set $facetSmartness resultfrom form_getbyid "DOMFacetSmartness" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMFacetSmartness -> facetSmartness form (none=missing mod)" set $personaSpell resultfrom form_getbyid "DOMPersonaReadSpell" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMPersonaReadSpell -> personaSpell form (none=missing mod)" set $domVirginAnal resultfrom form_getbyid "DOMVirginAnal" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMVirginAnal -> virginAnal faction (train gate later)" set $domVirginVaginal resultfrom form_getbyid "DOMVirginVaginal" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMVirginVaginal -> virginVaginal faction" set $domVirginOral resultfrom form_getbyid "DOMVirginOral" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMVirginOral -> virginOral faction" set $domTrainAnal resultfrom form_getbyid "DOMTrainAnal" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMTrainAnal -> trainAnal faction" set $domTrainVaginal resultfrom form_getbyid "DOMTrainVaginal" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMTrainVaginal -> trainVaginal faction" set $domTrainOral resultfrom form_getbyid "DOMTrainOral" deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=FORM form_getbyid editor=DOMTrainOral -> trainOral faction" if $facetSmartness == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " ABORT STEP=FORM editor=DOMFacetSmartness result=none (install DOM / facet mod)" msg_notify "[DOM-PR] " $SCRIPT_VERSION " Faction DOMFacetSmartness not found" return endif if $personaSpell == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " ABORT STEP=FORM editor=DOMPersonaReadSpell result=none" msg_notify "[DOM-PR] " $SCRIPT_VERSION " Spell DOMPersonaReadSpell not found" return endif if $domVirginAnal == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " WARN STEP=FORM editor=DOMVirginAnal missing -> SKIP train anal branch (actor_getfactionrank DOMVirginAnal)" endif if $domVirginVaginal == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " WARN STEP=FORM editor=DOMVirginVaginal missing -> SKIP train vaginal branch" endif if $domVirginOral == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " WARN STEP=FORM editor=DOMVirginOral missing -> SKIP train oral branch" endif if $domTrainAnal == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " WARN STEP=FORM editor=DOMTrainAnal missing -> SKIP set rank anal" endif if $domTrainVaginal == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " WARN STEP=FORM editor=DOMTrainVaginal missing -> SKIP set rank vaginal" endif if $domTrainOral == none deb_msg "[DOM-PR] " $SCRIPT_VERSION " WARN STEP=FORM editor=DOMTrainOral missing -> SKIP set rank oral" endif ; ----------------------------------------------------------------------------- ; SCAN NEARBY NPCS (official pattern: no args = player center, whole cell, no keyword) ; ----------------------------------------------------------------------------- deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=SCAN util_scan_cell_npcs (no args) center=player default radius=whole cell dead=ignored" set $nearby resultfrom util_scan_cell_npcs set $count resultfrom listcount $nearby deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=SCAN result listCount=$count variable=nearby (Form[] NPC refs)" if $count == 0 deb_msg "[DOM-PR] " $SCRIPT_VERSION " EXIT STEP=SCAN listCount=0 no NPC refs -> return" return endif ; ----------------------------------------------------------------------------- ; ITERATE AND CAST (same gate as v1 copy: resultfrom + == true / == false) ; ----------------------------------------------------------------------------- set $i 0 set $cast 0 deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=LOOP begin while i<listCount i=0 castSoFar=0 cap=MAX_TARGETS" while $i < $count if $cast >= $MAX_TARGETS deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=LOOP halt castSoFar=" $cast " >= MAX_TARGETS=" $MAX_TARGETS " -> goto done (no more casts this run)" goto [done] endif deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=LOOP body iter index i=" $i " listCount=" $count " castSoFar=" $cast " (next=nearby ref)" set $npc $nearby[$i] set $isValid resultfrom actor_isvalid $npc deb_msg "[DOM-PR] " $SCRIPT_VERSION " CHECK actor_isvalid nearby[i=" $i "] -> isValid=" $isValid " (true=Actor ref)" if $isValid == true set $isPlayer resultfrom actor_isplayer $npc deb_msg "[DOM-PR] " $SCRIPT_VERSION " CHECK actor_isplayer nearby[i=" $i "] -> isPlayer=" $isPlayer " (true=skip player not NPC)" if $isPlayer == false set $npcName resultfrom actor_name $npc deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=LOOP actor identity i=" $i " name=" $npcName " (next=actor_infaction DOMFacetSmartness)" deb_msg "[DOM-PR] " $SCRIPT_VERSION " CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=" $npcName set $inFaction resultfrom actor_infaction $npc $facetSmartness deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_infaction DOMFacetSmartness name=" $npcName " inFaction=" $inFaction " (false=not yet smartness -> CAST spell)" if $inFaction == false deb_msg "[DOM-PR] " $SCRIPT_VERSION " ACTION spell_cast spell=DOMPersonaReadSpell target=" $npcName " (persona read)" spell_cast $personaSpell $npc inc $cast 1 deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT cast count castSoFar=" $cast " after spell_cast" ; female (1) or futa (2): train ranks if virgin faction rank == 4 deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=train actor_getgender name=" $npcName actor_getgender $npc set $gender $$ deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_getgender name=" $npcName " gender=" $gender " (1=female 2=futa 0=male)" set $doVirginTrain false if $gender == 1 set $doVirginTrain true endif if $gender == 2 set $doVirginTrain true endif if $doVirginTrain == true deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=train enter virgin rank reads for name=" $npcName " (rank 4 = train gate per lane; form none = lane skipped entirely)" if $domVirginOral != none set $vrOral resultfrom actor_getfactionrank $npc $domVirginOral deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_getfactionrank faction=DOMVirginOral name=" $npcName " rank=" $vrOral endif if $domVirginAnal != none set $vrAnal resultfrom actor_getfactionrank $npc $domVirginAnal deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_getfactionrank faction=DOMVirginAnal name=" $npcName " rank=" $vrAnal endif if $domVirginVaginal != none set $vrVag resultfrom actor_getfactionrank $npc $domVirginVaginal deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_getfactionrank faction=DOMVirginVaginal name=" $npcName " rank=" $vrVag endif if $domVirginOral != none if $domTrainOral != none if $vrOral == 4 deb_msg "[DOM-PR] " $SCRIPT_VERSION " ACTION gosub roll oral DOMVirginOral rank==4 name=" $npcName gosub sub_roll_train_oral actor_setfactionrank $npc $domTrainOral $trainRank deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_setfactionrank faction=DOMTrainOral name=" $npcName " trainRank=" $trainRank else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train oral DOMVirginOral rank=" $vrOral " (need 4) name=" $npcName endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train oral DOMTrainOral form missing name=" $npcName endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train oral DOMVirginOral form missing name=" $npcName endif if $domVirginAnal != none if $domTrainAnal != none if $vrAnal == 4 deb_msg "[DOM-PR] " $SCRIPT_VERSION " ACTION gosub roll anal DOMVirginAnal rank==4 name=" $npcName gosub sub_roll_train_anal actor_setfactionrank $npc $domTrainAnal $trainRank deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_setfactionrank faction=DOMTrainAnal name=" $npcName " trainRank=" $trainRank else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train anal DOMVirginAnal rank=" $vrAnal " (need 4) name=" $npcName endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train anal DOMTrainAnal form missing name=" $npcName endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train anal DOMVirginAnal form missing name=" $npcName endif if $domVirginVaginal != none if $domTrainVaginal != none if $vrVag == 4 deb_msg "[DOM-PR] " $SCRIPT_VERSION " ACTION gosub roll vaginal DOMVirginVaginal rank==4 name=" $npcName gosub sub_roll_train_vaginal actor_setfactionrank $npc $domTrainVaginal $trainRank deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT actor_setfactionrank faction=DOMTrainVaginal name=" $npcName " trainRank=" $trainRank else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train vaginal DOMVirginVaginal rank=" $vrVag " (need 4) name=" $npcName endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train vaginal DOMTrainVaginal form missing name=" $npcName endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train vaginal DOMVirginVaginal form missing name=" $npcName endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP train branch gender=" $gender " name=" $npcName " (only female=1 or futa=2 get virgin train rolls)" endif else deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=" $npcName endif else set $plName resultfrom actor_name $npc deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP player ref actor_isplayer=true index i=" $i " name=" $plName " (not an NPC target)" endif else typeid $npc set $badTypeid $$ form_dogetter $npc GetFormID set $badFormid $$ actor_name $npc set $badName $$ deb_msg "[DOM-PR] " $SCRIPT_VERSION " SKIP invalid ref index i=" $i " actor_isvalid=false typeid=" $badTypeid " GetFormID=" $badFormid " name=" $badName endif deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=LOOP end iteration i=" $i " advancing i++" inc $i 1 endwhile [done] deb_msg "[DOM-PR] " $SCRIPT_VERSION " STEP=done label castSoFar=" $cast " (persona casts this run)" if $cast > 0 msg_notify "[DOM-PR] " $SCRIPT_VERSION " Read " $cast " mind(s)" else deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT castSoFar=0 (no DOMPersonaReadSpell cast this run; NPCs skipped facet/player/invalid or list empty returned earlier)" endif return ; ----------------------------------------------------------------------------- ; SUBROUTINES: rnd 0-99 -> train rank (sskillsdistribution.csv oral/anal/vaginal) ; ----------------------------------------------------------------------------- beginsub sub_roll_train_anal set $r resultfrom rnd_int 0 99 deb_msg "[DOM-PR] " $SCRIPT_VERSION " SUB=sub_roll_train_anal rnd_int 0-99 -> r=" $r " (next=map r to DOMTrainAnal rank bucket)" if $r < 70 set $trainRank 0 elseif $r < 86 set $trainRank 10 elseif $r < 94 set $trainRank 30 elseif $r < 97 set $trainRank 50 elseif $r < 99 set $trainRank 70 else set $trainRank 90 endif deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT sub_roll_train_anal trainRank=" $trainRank " (actor_setfactionrank DOMTrainAnal by caller)" endsub beginsub sub_roll_train_vaginal set $r resultfrom rnd_int 0 99 deb_msg "[DOM-PR] " $SCRIPT_VERSION " SUB=sub_roll_train_vaginal rnd_int 0-99 -> r=" $r " (next=map r to DOMTrainVaginal rank bucket)" if $r < 22 set $trainRank 0 elseif $r < 57 set $trainRank 10 elseif $r < 77 set $trainRank 30 elseif $r < 87 set $trainRank 50 elseif $r < 95 set $trainRank 70 else set $trainRank 90 endif deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT sub_roll_train_vaginal trainRank=" $trainRank " (actor_setfactionrank DOMTrainVaginal by caller)" endsub beginsub sub_roll_train_oral set $r resultfrom rnd_int 0 99 deb_msg "[DOM-PR] " $SCRIPT_VERSION " SUB=sub_roll_train_oral rnd_int 0-99 -> r=" $r " (next=map r to DOMTrainOral rank bucket)" if $r < 30 set $trainRank 0 elseif $r < 65 set $trainRank 10 elseif $r < 85 set $trainRank 30 elseif $r < 95 set $trainRank 50 elseif $r < 99 set $trainRank 70 else set $trainRank 90 endif deb_msg "[DOM-PR] " $SCRIPT_VERSION " RESULT sub_roll_train_oral trainRank=" $trainRank " (actor_setfactionrank DOMTrainOral by caller)" endsub Log sl-triggers.log Spoiler [2026-05-29 08:58:59.768] [log] [info] [skse_events.cpp:314] CombatEvent sink initialized, enabled(false) [2026-05-29 08:58:59.768] [log] [info] [skse_events.cpp:315] EquipEvent sink initialized, enabled(false) [2026-05-29 08:58:59.768] [log] [info] [skse_events.cpp:316] HitEvent sink initialized, enabled(false) [2026-05-29 08:58:59.768] [log] [info] [skse_events.cpp:318] HarvestedEvent sink initialized, enabled(false) [2026-05-29 08:58:59.768] [log] [info] [skse_events.cpp:319] SoulsTrapped sink initialized, enabled(false) [2026-05-29 08:58:59.768] [log] [debug] [Trampoline.cpp:225] Default Trampoline => 0B / 64B (00.00%) [2026-05-29 08:58:59.768] [log] [debug] [Trampoline.cpp:225] Default Trampoline => 14B / 64B (21.88%) [2026-05-29 09:03:30.227] [log] [info] [engine.cpp:241] PrecacheLibraries starting [2026-05-29 09:03:30.234] [log] [info] [engine.cpp:143] adding (raydonn-skyrimnet-libraries.json/raydonn_skyrimnet/raydonn-skyrimnet/10000) [2026-05-29 09:03:30.235] [log] [info] [engine.cpp:143] adding (sl_triggersCmdLibAdultGeneral-libraries.json/sl_triggersCmdLibOSLAroused/sl_triggersCmdLibAdultGeneral/-1000) [2026-05-29 09:03:30.235] [log] [info] [engine.cpp:143] adding (sl_triggersCmdLibAdultGeneral-libraries.json/sl_triggersCmdLibPW/sl_triggersCmdLibAdultGeneral/-1000) [2026-05-29 09:03:30.235] [log] [info] [engine.cpp:143] adding (sl_triggersCmdLibAdultGeneral-libraries.json/sl_triggersCmdLibSLIF/sl_triggersCmdLibAdultGeneral/-1000) [2026-05-29 09:03:30.235] [log] [info] [engine.cpp:143] adding (sl_triggersCmdLibAdultGeneral-libraries.json/sl_triggersCmdLibTNG/sl_triggersCmdLibAdultGeneral/-1000) [2026-05-29 09:03:30.235] [log] [info] [engine.cpp:143] adding (sl_triggersCmdLibBase-libraries.json/sl_triggersCmdLibBase/sl_triggersCmdLibBase/11000) [2026-05-29 09:03:30.235] [log] [info] [engine.cpp:143] adding (sl_triggersCmdLibBase-libraries.json/sl_triggersCmdLibNFF/sl_triggersCmdLibBase/10000) [2026-05-29 09:03:30.235] [log] [info] [engine.cpp:143] adding (sl_triggersCmdLibBase-libraries.json/sl_triggersCmdLibOBody/sl_triggersCmdLibBase/10000) [2026-05-29 09:03:30.235] [log] [info] [engine.cpp:143] adding (sl_triggersCmdLibBase-libraries.json/sl_triggersCmdLibRacemenuNIO/sl_triggersCmdLibBase/10000) [2026-05-29 09:03:30.235] [log] [info] [engine.cpp:143] adding (sl_triggersCmdLibSexLabDependent-libraries.json/sl_triggersCmdLibSexLabDependent/sl_triggersCmdLibSexLabDependent/-1000) [2026-05-29 09:03:30.235] [log] [info] [engine.cpp:143] adding (sl_triggersExtensionCore-libraries.json/sl_triggersCmdLibCore/sl_triggersExtensionCore/10000) [2026-05-29 09:03:30.235] [log] [info] [engine.cpp:143] adding (sl_triggersExtensionSexLab-libraries.json/sl_triggersCmdLibSexLab/sl_triggersExtensionSexLab/-500) [2026-05-29 09:03:30.235] [log] [info] [engine.cpp:167] 13 libraries available, processing [2026-05-29 09:03:30.264] [log] [info] [engine.cpp:246] PrecacheLibraries completed [2026-05-29 09:03:30.265] [log] [info] [core.h:274] Script pool initialized: 30 spells, 30 magic effects [2026-05-29 09:04:22.683] [log] [info] [skse_events.cpp:413] sl-triggers starting session 1657377887 [2026-05-29 09:04:23.780] [log] [info] [sl_triggers.cpp:1095] SetExtensionEnabled: FunctionLibrary[ExtKey(sl_triggersExtensionSexLab) CmdLib(sl_triggersCmdLibSexLab) Pri(-500) Enabled(true)] [2026-05-29 09:04:23.780] [log] [info] [engine.cpp:167] 13 libraries available, processing [2026-05-29 09:04:26.629] [log] [info] [sl_triggers.cpp:1095] SetExtensionEnabled: FunctionLibrary[ExtKey(sl_triggersExtensionCore) CmdLib(sl_triggersCmdLibCore) Pri(10000) Enabled(true)] [2026-05-29 09:04:26.629] [log] [info] [engine.cpp:167] 13 libraries available, processing [2026-05-29 09:04:28.316] [log] [info] [sl_triggers.cpp:1109] SwimHooks processing enabled(false) [2026-05-29 09:04:28.391] [log] [info] [sl_triggers.cpp:1141] SoulsTrapped sink enabled(false) [2026-05-29 09:04:28.441] [log] [info] [sl_triggers.cpp:1119] EquipEvent sink enabled(false) [2026-05-29 09:04:28.515] [log] [info] [sl_triggers.cpp:1114] CombatEvent sink enabled(false) [2026-05-29 09:04:28.565] [log] [info] [sl_triggers.cpp:1124] HitEvent sink enabled(false) [2026-05-29 09:04:28.640] [log] [info] [sl_triggers.cpp:1136] HarvestedEvent sink enabled(false) [2026-05-29 09:04:28.716] [log] [info] [sl_triggers.cpp:751] ConsoleUtil Extended found, using that [2026-05-29 09:07:12.238] [log] [debug] [sl_triggers.cpp:743] Core.SLTReady [2026-05-29 09:07:12.263] [log] [debug] [sl_triggers.cpp:743] Core.PopulatePerk [2026-05-29 09:07:12.313] [log] [debug] [sl_triggers.cpp:743] Core.ClearKeystates [2026-05-29 09:07:12.363] [log] [debug] [sl_triggers.cpp:743] Core.RefreshData [2026-05-29 09:07:12.703] [log] [debug] [sl_triggers.cpp:743] Core.RegisterEvents [2026-05-29 09:07:12.883] [log] [info] [sl_triggers.cpp:1109] SwimHooks processing enabled(false) [2026-05-29 09:07:12.933] [log] [info] [sl_triggers.cpp:1141] SoulsTrapped sink enabled(false) [2026-05-29 09:07:12.983] [log] [info] [sl_triggers.cpp:1119] EquipEvent sink enabled(false) [2026-05-29 09:07:13.058] [log] [info] [sl_triggers.cpp:1114] CombatEvent sink enabled(false) [2026-05-29 09:07:13.108] [log] [info] [sl_triggers.cpp:1124] HitEvent sink enabled(false) [2026-05-29 09:07:13.158] [log] [info] [sl_triggers.cpp:1136] HarvestedEvent sink enabled(false) [2026-05-29 09:09:01.614] [log] [info] [sl_triggers.cpp:59] Successfully deleted: Data\SKSE\Plugins\sl_triggers\extensions\sl_triggersExtensionAdultGeneral\trigger001.json [2026-05-29 09:10:09.559] [log] [debug] [sl_triggers.cpp:743] Core.SLTReady [2026-05-29 09:10:09.584] [log] [debug] [sl_triggers.cpp:743] Core.PopulatePerk [2026-05-29 09:10:09.634] [log] [debug] [sl_triggers.cpp:743] Core.ClearKeystates [2026-05-29 09:10:09.684] [log] [debug] [sl_triggers.cpp:743] Core.RefreshData [2026-05-29 09:10:09.734] [log] [debug] [sl_triggers.cpp:743] Core.RegisterEvents [2026-05-29 09:10:09.983] [log] [info] [sl_triggers.cpp:1109] SwimHooks processing enabled(false) [2026-05-29 09:10:10.058] [log] [info] [sl_triggers.cpp:1141] SoulsTrapped sink enabled(false) [2026-05-29 09:10:10.484] [log] [info] [sl_triggers.cpp:1119] EquipEvent sink enabled(false) [2026-05-29 09:10:10.583] [log] [info] [sl_triggers.cpp:1114] CombatEvent sink enabled(false) [2026-05-29 09:10:10.634] [log] [info] [sl_triggers.cpp:1124] HitEvent sink enabled(false) [2026-05-29 09:10:10.684] [log] [info] [sl_triggers.cpp:1136] HarvestedEvent sink enabled(false) [2026-05-29 09:10:22.871] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-29 09:10:22.971] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(637.965027) [2026-05-29 09:10:23.096] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: running trigger (../sl_triggers/extensions/sl_triggersextensioncore/trigger006.json) [2026-05-29 09:10:23.122] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_CHANCE [2026-05-29 09:10:23.146] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_ARMED [2026-05-29 09:10:23.196] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_CLOTHED [2026-05-29 09:10:23.221] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_WEAPON_DRAWN [2026-05-29 09:10:23.246] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_DEEPLOCATION [2026-05-29 09:10:23.270] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) running SLTScript/1() [2026-05-29 09:10:23.296] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) running SLTScript/1(_dom_persona_read) [2026-05-29 09:10:23.346] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: exiting [2026-05-29 09:10:23.922] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=INIT script enter Persona Read timer fired [2026-05-29 09:10:24.197] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CONFIG MAX_TARGETS=5 (cast cap per run) [2026-05-29 09:10:24.445] [log] [info] [sl_triggers.cpp:751] SLTR:(_dom_persona_read.sltscript)[26]: [DOM-PR] v2m Persona Read triggered [2026-05-29 09:10:24.895] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMFacetSmartness -> facetSmartness form (none=missing mod) [2026-05-29 09:10:25.269] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMPersonaReadSpell -> personaSpell form (none=missing mod) [2026-05-29 09:10:28.152] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginAnal -> virginAnal faction (train gate later) [2026-05-29 09:10:28.552] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginVaginal -> virginVaginal faction [2026-05-29 09:10:28.926] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginOral -> virginOral faction [2026-05-29 09:10:29.577] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainAnal -> trainAnal faction [2026-05-29 09:10:30.077] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainVaginal -> trainVaginal faction [2026-05-29 09:10:30.578] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainOral -> trainOral faction [2026-05-29 09:10:32.401] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=SCAN util_scan_cell_npcs (no args) center=player default radius=whole cell dead=ignored [2026-05-29 09:10:33.300] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=SCAN result listCount=$count variable=nearby (Form[] NPC refs) [2026-05-29 09:10:33.950] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP begin while i<listCount i=0 castSoFar=0 cap=MAX_TARGETS [2026-05-29 09:10:34.575] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=0 listCount=7 castSoFar=0 (next=nearby ref) [2026-05-29 09:10:35.497] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby -> isValid=1 (true=Actor ref) [2026-05-29 09:10:36.147] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:10:36.796] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=0 name=Siddgeir (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:10:36.996] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Siddgeir [2026-05-29 09:10:37.724] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Siddgeir inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-29 09:10:40.142] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Siddgeir [2026-05-29 09:10:40.739] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=0 advancing i++ [2026-05-29 09:11:43.539] [log] [debug] [sl_triggers.cpp:743] Core.HandleLocationChanged: akOldLoc([Location <FalkreathJarlsLonghouseLocation (000200C9)>]) akNewLoc([Location <FalkreathLocation (00018A49)>]) [2026-05-29 09:11:46.360] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=1 listCount=7 castSoFar=0 (next=nearby ref) [2026-05-29 09:11:48.278] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=1] -> isValid=0 (true=Actor ref) [2026-05-29 09:11:55.348] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=1 actor_isvalid=false typeid=5 GetFormID=-16761421 name=Bard [2026-05-29 09:11:55.597] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=1 advancing i++ [2026-05-29 09:11:56.967] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=2 listCount=7 castSoFar=0 (next=nearby ref) [2026-05-29 09:11:57.899] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=2] -> isValid=0 (true=Actor ref) [2026-05-29 09:12:01.835] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=2 actor_isvalid=false typeid=5 GetFormID=490855 name=Legate Skulnar [2026-05-29 09:12:02.058] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=2 advancing i++ [2026-05-29 09:12:02.813] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=3 listCount=7 castSoFar=0 (next=nearby ref) [2026-05-29 09:12:03.921] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=3] -> isValid=0 (true=Actor ref) [2026-05-29 09:12:08.030] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=3 actor_isvalid=false typeid=5 GetFormID=-32503402 name=Jonzo [2026-05-29 09:12:08.315] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=3 advancing i++ [2026-05-29 09:12:09.143] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=4 listCount=7 castSoFar=0 (next=nearby ref) [2026-05-29 09:12:10.385] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=4] -> isValid=1 (true=Actor ref) [2026-05-29 09:12:11.137] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=4] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:12:11.885] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=4 name=Lenore (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:12:12.089] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Lenore [2026-05-29 09:12:12.773] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Lenore inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-29 09:12:15.247] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Lenore [2026-05-29 09:12:15.819] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=4 advancing i++ [2026-05-29 09:12:16.543] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=5 listCount=7 castSoFar=0 (next=nearby ref) [2026-05-29 09:12:17.294] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=5] -> isValid=0 (true=Actor ref) [2026-05-29 09:12:22.271] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=5 actor_isvalid=false typeid=5 GetFormID=50352662 name=Rayya [2026-05-29 09:12:22.597] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=5 advancing i++ [2026-05-29 09:12:23.296] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=6 listCount=7 castSoFar=0 (next=nearby ref) [2026-05-29 09:12:24.319] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=6] -> isValid=1 (true=Actor ref) [2026-05-29 09:12:25.070] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=6] -> isPlayer=TRUE (true=skip player not NPC) [2026-05-29 09:12:28.498] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP player ref actor_isplayer=true index i=6 name=Dominus (not an NPC target) [2026-05-29 09:12:29.022] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=6 advancing i++ [2026-05-29 09:12:32.104] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-29 09:12:32.193] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(701.117004) [2026-05-29 09:12:32.334] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: exiting [2026-05-29 09:12:33.156] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=done label castSoFar=0 (persona casts this run) [2026-05-29 09:12:33.473] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT castSoFar=0 (no DOMPersonaReadSpell cast this run; NPCs skipped facet/player/invalid or list empty returned earlier) [2026-05-29 09:13:34.021] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-29 09:13:34.096] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(761.170044) [2026-05-29 09:13:34.194] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: running trigger (../sl_triggers/extensions/sl_triggersextensioncore/trigger006.json) [2026-05-29 09:13:34.220] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_CHANCE [2026-05-29 09:13:34.247] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_ARMED [2026-05-29 09:13:34.270] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_CLOTHED [2026-05-29 09:13:34.295] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_WEAPON_DRAWN [2026-05-29 09:13:34.320] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_DEEPLOCATION [2026-05-29 09:13:34.370] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) running SLTScript/1() [2026-05-29 09:13:34.395] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) running SLTScript/1(_dom_persona_read) [2026-05-29 09:13:34.444] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: exiting [2026-05-29 09:13:35.019] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=INIT script enter Persona Read timer fired [2026-05-29 09:13:35.218] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CONFIG MAX_TARGETS=5 (cast cap per run) [2026-05-29 09:13:35.468] [log] [info] [sl_triggers.cpp:751] SLTR:(_dom_persona_read.sltscript)[26]: [DOM-PR] v2m Persona Read triggered [2026-05-29 09:13:35.872] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMFacetSmartness -> facetSmartness form (none=missing mod) [2026-05-29 09:13:36.277] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMPersonaReadSpell -> personaSpell form (none=missing mod) [2026-05-29 09:13:36.674] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginAnal -> virginAnal faction (train gate later) [2026-05-29 09:13:37.098] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginVaginal -> virginVaginal faction [2026-05-29 09:13:37.473] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginOral -> virginOral faction [2026-05-29 09:13:37.974] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainAnal -> trainAnal faction [2026-05-29 09:13:38.482] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainVaginal -> trainVaginal faction [2026-05-29 09:13:38.906] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainOral -> trainOral faction [2026-05-29 09:13:40.685] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=SCAN util_scan_cell_npcs (no args) center=player default radius=whole cell dead=ignored [2026-05-29 09:13:41.961] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=SCAN result listCount=$count variable=nearby (Form[] NPC refs) [2026-05-29 09:13:42.582] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP begin while i<listCount i=0 castSoFar=0 cap=MAX_TARGETS [2026-05-29 09:13:43.181] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=0 listCount=27 castSoFar=0 (next=nearby ref) [2026-05-29 09:13:43.906] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby -> isValid=0 (true=Actor ref) [2026-05-29 09:13:47.685] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=0 actor_isvalid=false typeid=5 GetFormID=349780 name=Stormcloak Soldier [2026-05-29 09:13:47.887] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=0 advancing i++ [2026-05-29 09:13:48.638] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=1 listCount=27 castSoFar=0 (next=nearby ref) [2026-05-29 09:13:49.587] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=1] -> isValid=0 (true=Actor ref) [2026-05-29 09:13:53.637] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=1 actor_isvalid=false typeid=5 GetFormID=-16762819 name=Dark Elf [2026-05-29 09:13:53.912] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=1 advancing i++ [2026-05-29 09:13:54.685] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=2 listCount=27 castSoFar=0 (next=nearby ref) [2026-05-29 09:13:55.509] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=2] -> isValid=1 (true=Actor ref) [2026-05-29 09:13:56.133] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=2] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:13:56.883] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=2 name=Asgoke Free-eye (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:13:57.058] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Asgoke Free-eye [2026-05-29 09:13:57.707] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Asgoke Free-eye inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-29 09:14:00.104] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Asgoke Free-eye [2026-05-29 09:14:00.847] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=2 advancing i++ [2026-05-29 09:14:01.550] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=3 listCount=27 castSoFar=0 (next=nearby ref) [2026-05-29 09:14:02.496] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=3] -> isValid=1 (true=Actor ref) [2026-05-29 09:14:03.196] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=3] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:14:03.846] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=3 name=Falkreath Guard (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:14:04.021] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Falkreath Guard [2026-05-29 09:14:04.704] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Falkreath Guard inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:14:05.078] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target=Falkreath Guard (persona read) [2026-05-29 09:14:05.586] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=1 after spell_cast [2026-05-29 09:14:05.882] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name=Falkreath Guard [2026-05-29 09:14:06.335] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name=Falkreath Guard gender=0 (1=female 2=futa 0=male) [2026-05-29 09:14:08.970] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name=Falkreath Guard (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:14:09.695] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=3 advancing i++ [2026-05-29 09:14:10.520] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=4 listCount=27 castSoFar=1 (next=nearby ref) [2026-05-29 09:14:11.271] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=4] -> isValid=0 (true=Actor ref) [2026-05-29 09:14:15.048] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=4 actor_isvalid=false typeid=5 GetFormID=202646700 name=Florentus [2026-05-29 09:14:15.374] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=4 advancing i++ [2026-05-29 09:14:16.102] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=5 listCount=27 castSoFar=1 (next=nearby ref) [2026-05-29 09:14:17.091] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=5] -> isValid=1 (true=Actor ref) [2026-05-29 09:14:17.824] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=5] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:14:18.597] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=5 name=Cyrodilic Minotaur (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:14:18.792] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Cyrodilic Minotaur [2026-05-29 09:14:19.581] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Cyrodilic Minotaur inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-29 09:14:22.525] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Cyrodilic Minotaur [2026-05-29 09:14:23.232] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=5 advancing i++ [2026-05-29 09:14:23.956] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=6 listCount=27 castSoFar=1 (next=nearby ref) [2026-05-29 09:14:25.405] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=6] -> isValid=1 (true=Actor ref) [2026-05-29 09:14:26.087] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=6] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:14:26.818] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=6 name=Lod (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:14:27.092] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Lod [2026-05-29 09:14:27.742] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Lod inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:14:28.069] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target=Lod (persona read) [2026-05-29 09:14:28.721] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=2 after spell_cast [2026-05-29 09:14:29.058] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name=Lod [2026-05-29 09:14:29.577] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name=Lod gender=0 (1=female 2=futa 0=male) [2026-05-29 09:14:32.438] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name=Lod (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:14:33.436] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=6 advancing i++ [2026-05-29 09:14:34.291] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=7 listCount=27 castSoFar=2 (next=nearby ref) [2026-05-29 09:14:35.167] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=7] -> isValid=0 (true=Actor ref) [2026-05-29 09:14:36.330] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-29 09:14:36.431] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(821.234009) [2026-05-29 09:14:36.556] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: exiting [2026-05-29 09:14:38.931] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=7 actor_isvalid=false typeid=5 GetFormID=104481 name=Kust [2026-05-29 09:14:39.130] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=7 advancing i++ [2026-05-29 09:14:39.930] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=8 listCount=27 castSoFar=2 (next=nearby ref) [2026-05-29 09:14:40.830] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=8] -> isValid=1 (true=Actor ref) [2026-05-29 09:14:41.479] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=8] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:14:42.153] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=8 name=Falkreath Guard (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:14:42.378] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Falkreath Guard [2026-05-29 09:14:43.028] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Falkreath Guard inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:14:43.334] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target=Falkreath Guard (persona read) [2026-05-29 09:14:44.003] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=3 after spell_cast [2026-05-29 09:14:44.293] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name=Falkreath Guard [2026-05-29 09:14:44.771] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name=Falkreath Guard gender=0 (1=female 2=futa 0=male) [2026-05-29 09:14:47.529] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name=Falkreath Guard (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:14:48.370] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=8 advancing i++ [2026-05-29 09:14:49.195] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=9 listCount=27 castSoFar=3 (next=nearby ref) [2026-05-29 09:14:50.084] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=9] -> isValid=1 (true=Actor ref) [2026-05-29 09:14:50.707] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=9] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:14:51.373] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=9 name=Adventurer (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:14:51.544] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Adventurer [2026-05-29 09:14:52.140] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Adventurer inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:14:57.695] [log] [debug] [sl_triggers.cpp:743] Core.HandleLocationChanged: akOldLoc([Location <FalkreathLocation (00018A49)>]) akNewLoc([Location <FalkreathDeadMansDrinkLocation (0005CA26)>]) [2026-05-29 09:14:58.232] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target=Adventurer (persona read) [2026-05-29 09:14:59.807] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=4 after spell_cast [2026-05-29 09:15:00.172] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name=Adventurer [2026-05-29 09:15:01.403] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name=Adventurer gender=0 (1=female 2=futa 0=male) [2026-05-29 09:15:06.017] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name=Adventurer (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:15:07.095] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=9 advancing i++ [2026-05-29 09:15:07.845] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=10 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:15:08.669] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=10] -> isValid=0 (true=Actor ref) [2026-05-29 09:15:12.668] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=10 actor_isvalid=false typeid=5 GetFormID=490856 name=Thorygg Sun-Killer [2026-05-29 09:15:12.869] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=10 advancing i++ [2026-05-29 09:15:13.645] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=11 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:15:14.567] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=11] -> isValid=1 (true=Actor ref) [2026-05-29 09:15:15.302] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=11] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:15:16.102] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=11 name=Lenore (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:15:16.329] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Lenore [2026-05-29 09:15:17.003] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Lenore inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-29 09:15:19.599] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Lenore [2026-05-29 09:15:20.274] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=11 advancing i++ [2026-05-29 09:15:20.998] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=12 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:15:21.958] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=12] -> isValid=0 (true=Actor ref) [2026-05-29 09:15:25.892] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=12 actor_isvalid=false typeid=5 GetFormID=202124665 name=Brakh [2026-05-29 09:15:26.192] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=12 advancing i++ [2026-05-29 09:15:27.015] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=13 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:15:27.738] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=13] -> isValid=0 (true=Actor ref) [2026-05-29 09:15:31.410] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=13 actor_isvalid=false typeid=5 GetFormID=202646727 name=Sellsword [2026-05-29 09:15:31.711] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=13 advancing i++ [2026-05-29 09:15:32.859] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=14 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:15:33.658] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=14] -> isValid=0 (true=Actor ref) [2026-05-29 09:15:37.382] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=14 actor_isvalid=false typeid=5 GetFormID=202646725 name=Sellsword [2026-05-29 09:15:37.614] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=14 advancing i++ [2026-05-29 09:15:38.362] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=15 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:15:39.311] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=15] -> isValid=0 (true=Actor ref) [2026-05-29 09:15:43.098] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=15 actor_isvalid=false typeid=5 GetFormID=-16762809 name=Orc [2026-05-29 09:15:43.446] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=15 advancing i++ [2026-05-29 09:15:43.946] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-29 09:15:44.022] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(881.700012) [2026-05-29 09:15:44.197] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: running trigger (../sl_triggers/extensions/sl_triggersextensioncore/trigger006.json) [2026-05-29 09:15:44.221] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_CHANCE [2026-05-29 09:15:44.247] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_ARMED [2026-05-29 09:15:44.270] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_CLOTHED [2026-05-29 09:15:44.322] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_WEAPON_DRAWN [2026-05-29 09:15:44.322] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=16 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:15:44.370] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_DEEPLOCATION [2026-05-29 09:15:44.395] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) running SLTScript/1() [2026-05-29 09:15:44.420] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) running SLTScript/1(_dom_persona_read) [2026-05-29 09:15:44.470] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: exiting [2026-05-29 09:15:45.071] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=INIT script enter Persona Read timer fired [2026-05-29 09:15:45.345] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=16] -> isValid=0 (true=Actor ref) [2026-05-29 09:15:45.371] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CONFIG MAX_TARGETS=5 (cast cap per run) [2026-05-29 09:15:45.645] [log] [info] [sl_triggers.cpp:751] SLTR:(_dom_persona_read.sltscript)[26]: [DOM-PR] v2m Persona Read triggered [2026-05-29 09:15:46.294] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMFacetSmartness -> facetSmartness form (none=missing mod) [2026-05-29 09:15:46.943] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMPersonaReadSpell -> personaSpell form (none=missing mod) [2026-05-29 09:15:47.618] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginAnal -> virginAnal faction (train gate later) [2026-05-29 09:15:48.468] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginVaginal -> virginVaginal faction [2026-05-29 09:15:49.093] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginOral -> virginOral faction [2026-05-29 09:15:49.917] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainAnal -> trainAnal faction [2026-05-29 09:15:50.515] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainVaginal -> trainVaginal faction [2026-05-29 09:15:50.942] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainOral -> trainOral faction [2026-05-29 09:15:51.165] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=16 actor_isvalid=false typeid=5 GetFormID=349774 name=Falkreath Guard [2026-05-29 09:15:51.489] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=16 advancing i++ [2026-05-29 09:15:52.867] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=17 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:15:54.016] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=SCAN util_scan_cell_npcs (no args) center=player default radius=whole cell dead=ignored [2026-05-29 09:15:54.217] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=17] -> isValid=1 (true=Actor ref) [2026-05-29 09:15:54.963] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=17] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:15:55.490] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=SCAN result listCount=$count variable=nearby (Form[] NPC refs) [2026-05-29 09:15:55.938] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=17 name=Runil (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:15:56.289] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Runil [2026-05-29 09:15:56.490] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP begin while i<listCount i=0 castSoFar=0 cap=MAX_TARGETS [2026-05-29 09:15:57.211] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Runil inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-29 09:15:57.336] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=0 listCount=19 castSoFar=0 (next=nearby ref) [2026-05-29 09:15:58.692] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby -> isValid=1 (true=Actor ref) [2026-05-29 09:15:59.843] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:16:00.987] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=0 name=Kust (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:16:01.188] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Runil [2026-05-29 09:16:01.439] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Kust [2026-05-29 09:16:02.062] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=17 advancing i++ [2026-05-29 09:16:02.712] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Kust inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-29 09:16:03.086] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=18 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:16:04.588] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=18] -> isValid=0 (true=Actor ref) [2026-05-29 09:16:07.260] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Kust [2026-05-29 09:16:08.433] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=0 advancing i++ [2026-05-29 09:16:09.707] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=1 listCount=19 castSoFar=0 (next=nearby ref) [2026-05-29 09:16:10.956] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=1] -> isValid=0 (true=Actor ref) [2026-05-29 09:16:11.555] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=18 actor_isvalid=false typeid=5 GetFormID=202646729 name=Sellsword [2026-05-29 09:16:12.030] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=18 advancing i++ [2026-05-29 09:16:13.277] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=19 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:16:14.501] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=19] -> isValid=0 (true=Actor ref) [2026-05-29 09:16:18.023] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=1 actor_isvalid=false typeid=5 GetFormID=154205065 name=Anerchel [2026-05-29 09:16:18.398] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=1 advancing i++ [2026-05-29 09:16:19.671] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=2 listCount=19 castSoFar=0 (next=nearby ref) [2026-05-29 09:16:20.495] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=19 actor_isvalid=false typeid=5 GetFormID=-16760040 name=Thief [2026-05-29 09:16:20.745] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=19 advancing i++ [2026-05-29 09:16:20.770] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=2] -> isValid=0 (true=Actor ref) [2026-05-29 09:16:21.798] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=20 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:16:22.918] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=20] -> isValid=0 (true=Actor ref) [2026-05-29 09:16:27.214] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=2 actor_isvalid=false typeid=5 GetFormID=-16762289 name=Adventurer [2026-05-29 09:16:27.688] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=2 advancing i++ [2026-05-29 09:16:28.937] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=3 listCount=19 castSoFar=0 (next=nearby ref) [2026-05-29 09:16:29.886] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=20 actor_isvalid=false typeid=5 GetFormID=-16760044 name=IMPERIAL [2026-05-29 09:16:30.089] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=20 advancing i++ [2026-05-29 09:16:30.461] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=3] -> isValid=1 (true=Actor ref) [2026-05-29 09:16:31.310] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=21 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:16:31.460] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=3] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:16:32.462] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=21] -> isValid=0 (true=Actor ref) [2026-05-29 09:16:32.610] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=3 name=Moraya the Cocksucker (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:16:32.854] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Moraya the Cocksucker [2026-05-29 09:16:34.007] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Moraya the Cocksucker inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:16:34.430] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target=Moraya the Cocksucker (persona read) [2026-05-29 09:16:35.453] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=1 after spell_cast [2026-05-29 09:16:35.704] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name=Moraya the Cocksucker [2026-05-29 09:16:36.402] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name=Moraya the Cocksucker gender=1 (1=female 2=futa 0=male) [2026-05-29 09:16:38.125] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train enter virgin rank reads for name=Moraya the Cocksucker (rank 4 = train gate per lane; form none = lane skipped entirely) [2026-05-29 09:16:39.149] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getfactionrank faction=DOMVirginOral name=Moraya the Cocksucker rank=-2 [2026-05-29 09:16:39.374] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=21 actor_isvalid=false typeid=5 GetFormID=202646721 name=Sellsword [2026-05-29 09:16:39.823] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=21 advancing i++ [2026-05-29 09:16:40.272] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getfactionrank faction=DOMVirginAnal name=Moraya the Cocksucker rank=-2 [2026-05-29 09:16:41.074] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=22 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:16:41.597] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getfactionrank faction=DOMVirginVaginal name=Moraya the Cocksucker rank=-2 [2026-05-29 09:16:42.495] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=22] -> isValid=1 (true=Actor ref) [2026-05-29 09:16:42.646] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train oral DOMVirginOral rank=-2 (need 4) name=Moraya the Cocksucker [2026-05-29 09:16:43.519] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=22] -> isPlayer=TRUE (true=skip player not NPC) [2026-05-29 09:16:44.669] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train anal DOMVirginAnal rank=-2 (need 4) name=Moraya the Cocksucker [2026-05-29 09:16:46.466] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-29 09:16:46.542] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(941.761047) [2026-05-29 09:16:46.566] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train vaginal DOMVirginVaginal rank=-2 (need 4) name=Moraya the Cocksucker [2026-05-29 09:16:46.667] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: exiting [2026-05-29 09:16:48.640] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=3 advancing i++ [2026-05-29 09:16:48.889] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP player ref actor_isplayer=true index i=22 name=Dominus (not an NPC target) [2026-05-29 09:16:49.913] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=22 advancing i++ [2026-05-29 09:16:50.013] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=4 listCount=19 castSoFar=1 (next=nearby ref) [2026-05-29 09:16:51.187] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=4] -> isValid=1 (true=Actor ref) [2026-05-29 09:16:51.387] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=23 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:16:52.186] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=4] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:16:52.537] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=23] -> isValid=0 (true=Actor ref) [2026-05-29 09:16:53.334] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=4 name=Haesmar Pine-Heart (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:16:53.735] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Haesmar Pine-Heart [2026-05-29 09:16:55.059] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Haesmar Pine-Heart inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-29 09:16:58.806] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=23 actor_isvalid=false typeid=5 GetFormID=349779 name=Stormcloak Soldier [2026-05-29 09:16:59.130] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=23 advancing i++ [2026-05-29 09:17:00.129] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=24 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:17:00.154] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Haesmar Pine-Heart [2026-05-29 09:17:01.153] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=4 advancing i++ [2026-05-29 09:17:01.601] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=24] -> isValid=0 (true=Actor ref) [2026-05-29 09:17:02.426] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=5 listCount=19 castSoFar=1 (next=nearby ref) [2026-05-29 09:17:04.024] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=5] -> isValid=1 (true=Actor ref) [2026-05-29 09:17:05.348] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=5] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:17:06.896] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=5 name=Shura the Whore (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:17:07.172] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Shura the Whore [2026-05-29 09:17:07.945] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=24 actor_isvalid=false typeid=5 GetFormID=1074864 name=chicken [2026-05-29 09:17:08.045] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Shura the Whore inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:17:08.445] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target=Shura the Whore (persona read) [2026-05-29 09:17:08.495] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=24 advancing i++ [2026-05-29 09:17:09.419] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=25 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:17:09.519] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=2 after spell_cast [2026-05-29 09:17:09.769] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name=Shura the Whore [2026-05-29 09:17:10.393] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name=Shura the Whore gender=1 (1=female 2=futa 0=male) [2026-05-29 09:17:10.743] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=25] -> isValid=0 (true=Actor ref) [2026-05-29 09:17:11.867] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train enter virgin rank reads for name=Shura the Whore (rank 4 = train gate per lane; form none = lane skipped entirely) [2026-05-29 09:17:13.241] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getfactionrank faction=DOMVirginOral name=Shura the Whore rank=-2 [2026-05-29 09:17:14.788] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getfactionrank faction=DOMVirginAnal name=Shura the Whore rank=-2 [2026-05-29 09:17:16.088] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getfactionrank faction=DOMVirginVaginal name=Shura the Whore rank=-2 [2026-05-29 09:17:16.463] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=25 actor_isvalid=false typeid=5 GetFormID=267514 name=Goat [2026-05-29 09:17:16.787] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=25 advancing i++ [2026-05-29 09:17:17.687] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train oral DOMVirginOral rank=-2 (need 4) name=Shura the Whore [2026-05-29 09:17:18.036] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=26 listCount=27 castSoFar=4 (next=nearby ref) [2026-05-29 09:17:19.235] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train anal DOMVirginAnal rank=-2 (need 4) name=Shura the Whore [2026-05-29 09:17:19.411] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=26] -> isValid=0 (true=Actor ref) [2026-05-29 09:17:21.058] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train vaginal DOMVirginVaginal rank=-2 (need 4) name=Shura the Whore [2026-05-29 09:17:22.981] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=5 advancing i++ [2026-05-29 09:17:24.330] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=6 listCount=19 castSoFar=2 (next=nearby ref) [2026-05-29 09:17:25.415] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=6] -> isValid=0 (true=Actor ref) [2026-05-29 09:17:26.003] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=26 actor_isvalid=false typeid=5 GetFormID=349771 name=Falkreath Guard [2026-05-29 09:17:26.377] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=26 advancing i++ [2026-05-29 09:17:32.579] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=6 actor_isvalid=false typeid=5 GetFormID=-33359551 name=Bjar Ice-Vein [2026-05-29 09:17:32.604] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=done label castSoFar=4 (persona casts this run) [2026-05-29 09:17:32.804] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=6 advancing i++ [2026-05-29 09:17:33.145] [log] [info] [sl_triggers.cpp:751] SLTR:(_dom_persona_read.sltscript)[227]: [DOM-PR] v2m Read 4 mind(s) [2026-05-29 09:17:33.895] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=7 listCount=19 castSoFar=2 (next=nearby ref) [2026-05-29 09:17:34.882] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=7] -> isValid=1 (true=Actor ref) [2026-05-29 09:17:35.630] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=7] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:17:36.312] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=7 name=Mathies (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:17:36.535] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Mathies [2026-05-29 09:17:37.234] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Mathies inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-29 09:17:40.130] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Mathies [2026-05-29 09:17:40.781] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=7 advancing i++ [2026-05-29 09:17:41.529] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=8 listCount=19 castSoFar=2 (next=nearby ref) [2026-05-29 09:17:42.453] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=8] -> isValid=1 (true=Actor ref) [2026-05-29 09:17:43.052] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=8] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:17:43.776] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=8 name=Runil (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:17:44.027] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Runil [2026-05-29 09:17:44.651] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Runil inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-29 09:17:47.177] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Runil [2026-05-29 09:17:47.851] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=8 advancing i++ [2026-05-29 09:17:48.598] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=9 listCount=19 castSoFar=2 (next=nearby ref) [2026-05-29 09:17:49.085] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-29 09:17:49.159] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(1001.822021) [2026-05-29 09:17:49.284] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: running trigger (../sl_triggers/extensions/sl_triggersextensioncore/trigger006.json) [2026-05-29 09:17:49.310] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_CHANCE [2026-05-29 09:17:49.335] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_ARMED [2026-05-29 09:17:49.360] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_CLOTHED [2026-05-29 09:17:49.386] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_WEAPON_DRAWN [2026-05-29 09:17:49.410] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_DEEPLOCATION [2026-05-29 09:17:49.460] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) running SLTScript/1() [2026-05-29 09:17:49.485] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) running SLTScript/1(_dom_persona_read) [2026-05-29 09:17:49.535] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: exiting [2026-05-29 09:17:49.685] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=9] -> isValid=1 (true=Actor ref) [2026-05-29 09:17:50.358] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=INIT script enter Persona Read timer fired [2026-05-29 09:17:50.608] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=9] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:17:50.658] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CONFIG MAX_TARGETS=5 (cast cap per run) [2026-05-29 09:17:50.883] [log] [info] [sl_triggers.cpp:751] SLTR:(_dom_persona_read.sltscript)[26]: [DOM-PR] v2m Persona Read triggered [2026-05-29 09:17:51.482] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMFacetSmartness -> facetSmartness form (none=missing mod) [2026-05-29 09:17:51.858] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=9 name=Asgoke Free-eye (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:17:54.635] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Asgoke Free-eye [2026-05-29 09:17:54.734] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMPersonaReadSpell -> personaSpell form (none=missing mod) [2026-05-29 09:17:55.234] [log] [debug] [sl_triggers.cpp:743] Core.HandleOnKeyDown: starting [2026-05-29 09:17:55.459] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginAnal -> virginAnal faction (train gate later) [2026-05-29 09:17:55.574] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Asgoke Free-eye inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-29 09:18:22.705] [log] [debug] [sl_triggers.cpp:743] Core.HandleLocationChanged: akOldLoc([Location <FalkreathDeadMansDrinkLocation (0005CA26)>]) akNewLoc([Location <aaaCJWInteriorLocation (EF048CB6)>]) [2026-05-29 09:18:24.002] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginVaginal -> virginVaginal faction [2026-05-29 09:18:24.808] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginOral -> virginOral faction [2026-05-29 09:18:25.658] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainAnal -> trainAnal faction [2026-05-29 09:18:26.532] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainVaginal -> trainVaginal faction [2026-05-29 09:18:27.312] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainOral -> trainOral faction [2026-05-29 09:18:28.064] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Asgoke Free-eye [2026-05-29 09:18:29.015] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=9 advancing i++ [2026-05-29 09:18:30.112] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=SCAN util_scan_cell_npcs (no args) center=player default radius=whole cell dead=ignored [2026-05-29 09:18:30.391] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=10 listCount=19 castSoFar=2 (next=nearby ref) [2026-05-29 09:18:31.164] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=SCAN result listCount=$count variable=nearby (Form[] NPC refs) [2026-05-29 09:18:31.593] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=10] -> isValid=1 (true=Actor ref) [2026-05-29 09:18:32.140] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP begin while i<listCount i=0 castSoFar=0 cap=MAX_TARGETS [2026-05-29 09:18:33.026] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=10] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:18:33.100] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=0 listCount=14 castSoFar=0 (next=nearby ref) [2026-05-29 09:18:34.061] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=10 name=Lenore (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:18:34.332] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Lenore [2026-05-29 09:18:34.433] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby -> isValid=1 (true=Actor ref) [2026-05-29 09:18:35.534] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:18:35.739] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Lenore inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-29 09:18:36.660] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=0 name= (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:18:36.923] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor= [2026-05-29 09:18:37.996] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name= inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:18:38.777] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target= (persona read) [2026-05-29 09:18:39.563] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=1 after spell_cast [2026-05-29 09:18:40.048] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name= [2026-05-29 09:18:40.164] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Lenore [2026-05-29 09:18:40.894] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name= gender=0 (1=female 2=futa 0=male) [2026-05-29 09:18:41.123] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=10 advancing i++ [2026-05-29 09:18:42.320] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=11 listCount=19 castSoFar=2 (next=nearby ref) [2026-05-29 09:18:43.775] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=11] -> isValid=0 (true=Actor ref) [2026-05-29 09:18:45.288] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name= (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:18:46.396] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=0 advancing i++ [2026-05-29 09:18:47.757] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=1 listCount=14 castSoFar=1 (next=nearby ref) [2026-05-29 09:18:49.263] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=1] -> isValid=1 (true=Actor ref) [2026-05-29 09:18:50.313] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=1] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:18:50.988] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=11 actor_isvalid=false typeid=5 GetFormID=-33378259 name=Stellan Hagen [2026-05-29 09:18:51.211] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=1 name=Daighre (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:18:51.311] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=11 advancing i++ [2026-05-29 09:18:51.536] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Daighre [2026-05-29 09:18:52.516] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Daighre inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:18:52.895] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=12 listCount=19 castSoFar=2 (next=nearby ref) [2026-05-29 09:18:52.945] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target=Daighre (persona read) [2026-05-29 09:18:53.745] [log] [debug] [sl_triggers.cpp:743] Core.HandleOnKeyDown: starting [2026-05-29 09:18:53.893] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=2 after spell_cast [2026-05-29 09:18:54.174] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name=Daighre [2026-05-29 09:18:54.200] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=12] -> isValid=0 (true=Actor ref) [2026-05-29 09:19:21.509] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name=Daighre gender=1 (1=female 2=futa 0=male) [2026-05-29 09:19:22.883] [log] [debug] [sl_triggers.cpp:743] Core.HandleOnKeyDown: starting [2026-05-29 09:19:23.308] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train enter virgin rank reads for name=Daighre (rank 4 = train gate per lane; form none = lane skipped entirely) [2026-05-29 09:19:25.530] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getfactionrank faction=DOMVirginOral name=Daighre rank=0 [2026-05-29 09:19:26.130] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=12 actor_isvalid=false typeid=5 GetFormID=-33355755 name=Lufani the Slut [2026-05-29 09:19:26.530] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=12 advancing i++ [2026-05-29 09:19:26.854] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getfactionrank faction=DOMVirginAnal name=Daighre rank=0 [2026-05-29 09:19:27.903] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=13 listCount=19 castSoFar=2 (next=nearby ref) [2026-05-29 09:19:28.053] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getfactionrank faction=DOMVirginVaginal name=Daighre rank=0 [2026-05-29 09:19:29.202] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=13] -> isValid=0 (true=Actor ref) [2026-05-29 09:19:29.376] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train oral DOMVirginOral rank=0 (need 4) name=Daighre [2026-05-29 09:19:31.278] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train anal DOMVirginAnal rank=0 (need 4) name=Daighre [2026-05-29 09:19:33.323] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train vaginal DOMVirginVaginal rank=0 (need 4) name=Daighre [2026-05-29 09:19:35.471] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=1 advancing i++ [2026-05-29 09:19:35.870] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=13 actor_isvalid=false typeid=5 GetFormID=154205067 name=Tuula [2026-05-29 09:19:36.246] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=13 advancing i++ [2026-05-29 09:19:36.745] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=2 listCount=14 castSoFar=2 (next=nearby ref) [2026-05-29 09:19:37.519] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=14 listCount=19 castSoFar=2 (next=nearby ref) [2026-05-29 09:19:38.418] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=2] -> isValid=1 (true=Actor ref) [2026-05-29 09:19:39.267] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=2] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:19:39.368] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=14] -> isValid=0 (true=Actor ref) [2026-05-29 09:19:40.417] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=2 name= (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:19:40.717] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor= [2026-05-29 09:19:41.690] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name= inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:19:42.216] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target= (persona read) [2026-05-29 09:19:43.115] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=3 after spell_cast [2026-05-29 09:19:43.414] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name= [2026-05-29 09:19:44.140] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name= gender=0 (1=female 2=futa 0=male) [2026-05-29 09:19:46.045] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=14 actor_isvalid=false typeid=5 GetFormID=1023412519 name=Regrr Fenrensson [2026-05-29 09:19:46.622] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=14 advancing i++ [2026-05-29 09:19:47.944] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name= (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:19:48.043] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=15 listCount=19 castSoFar=2 (next=nearby ref) [2026-05-29 09:19:49.043] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=2 advancing i++ [2026-05-29 09:19:49.142] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-29 09:19:49.217] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(1101.831055) [2026-05-29 09:19:49.367] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: exiting [2026-05-29 09:19:49.392] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=15] -> isValid=1 (true=Actor ref) [2026-05-29 09:19:50.366] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=3 listCount=14 castSoFar=3 (next=nearby ref) [2026-05-29 09:19:50.715] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=15] -> isPlayer=TRUE (true=skip player not NPC) [2026-05-29 09:19:51.772] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=3] -> isValid=1 (true=Actor ref) [2026-05-29 09:19:53.162] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=3] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:19:54.418] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=3 name= (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:19:54.643] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor= [2026-05-29 09:19:55.692] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name= inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:19:56.216] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP player ref actor_isplayer=true index i=15 name=Dominus (not an NPC target) [2026-05-29 09:19:56.316] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target= (persona read) [2026-05-29 09:19:57.065] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=15 advancing i++ [2026-05-29 09:19:57.490] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=4 after spell_cast [2026-05-29 09:19:57.865] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name= [2026-05-29 09:19:58.164] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=16 listCount=19 castSoFar=2 (next=nearby ref) [2026-05-29 09:19:58.539] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name= gender=0 (1=female 2=futa 0=male) [2026-05-29 09:19:59.664] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=16] -> isValid=0 (true=Actor ref) [2026-05-29 09:20:02.986] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name= (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:20:04.085] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=3 advancing i++ [2026-05-29 09:20:05.582] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=4 listCount=14 castSoFar=4 (next=nearby ref) [2026-05-29 09:20:06.557] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=16 actor_isvalid=false typeid=5 GetFormID=468583 name=Delacourt [2026-05-29 09:20:06.782] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=4] -> isValid=1 (true=Actor ref) [2026-05-29 09:20:07.006] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=16 advancing i++ [2026-05-29 09:20:07.956] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=4] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:20:08.056] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=17 listCount=19 castSoFar=2 (next=nearby ref) [2026-05-29 09:20:08.980] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=17] -> isValid=0 (true=Actor ref) [2026-05-29 09:20:09.179] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=4 name= (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:20:09.829] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor= [2026-05-29 09:20:10.833] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name= inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:20:11.382] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target= (persona read) [2026-05-29 09:20:12.306] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=5 after spell_cast [2026-05-29 09:20:12.681] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name= [2026-05-29 09:20:13.355] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name= gender=0 (1=female 2=futa 0=male) [2026-05-29 09:20:15.878] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=17 actor_isvalid=false typeid=5 GetFormID=-33358714 name=Lory [2026-05-29 09:20:16.203] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=17 advancing i++ [2026-05-29 09:20:17.661] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name= (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:20:17.685] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=18 listCount=19 castSoFar=2 (next=nearby ref) [2026-05-29 09:20:18.825] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=4 advancing i++ [2026-05-29 09:20:18.924] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=18] -> isValid=0 (true=Actor ref) [2026-05-29 09:20:19.846] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP halt castSoFar=5 >= MAX_TARGETS=5 -> goto done (no more casts this run) [2026-05-29 09:20:20.320] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=done label castSoFar=5 (persona casts this run) [2026-05-29 09:20:20.845] [log] [info] [sl_triggers.cpp:751] SLTR:(_dom_persona_read.sltscript)[227]: [DOM-PR] v2m Read 5 mind(s) [2026-05-29 09:20:23.742] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP invalid ref index i=18 actor_isvalid=false typeid=5 GetFormID=-33355764 name=Jenna the Whore [2026-05-29 09:20:24.017] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=18 advancing i++ [2026-05-29 09:20:27.523] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=done label castSoFar=2 (persona casts this run) [2026-05-29 09:20:29.829] [log] [info] [sl_triggers.cpp:751] SLTR:(_dom_persona_read.sltscript)[227]: [DOM-PR] v2m Read 2 mind(s) [2026-05-29 09:21:36.111] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-29 09:21:36.187] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(1204.764038) [2026-05-29 09:21:36.311] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: running trigger (../sl_triggers/extensions/sl_triggersextensioncore/trigger006.json) [2026-05-29 09:21:36.337] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_CHANCE [2026-05-29 09:21:36.361] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_ARMED [2026-05-29 09:21:36.387] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_CLOTHED [2026-05-29 09:21:36.411] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_WEAPON_DRAWN [2026-05-29 09:21:36.435] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_DEEPLOCATION [2026-05-29 09:21:36.461] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) running SLTScript/1() [2026-05-29 09:21:36.489] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) running SLTScript/1(_dom_persona_read) [2026-05-29 09:21:36.536] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: exiting [2026-05-29 09:21:37.087] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=INIT script enter Persona Read timer fired [2026-05-29 09:21:37.287] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CONFIG MAX_TARGETS=5 (cast cap per run) [2026-05-29 09:21:37.511] [log] [info] [sl_triggers.cpp:751] SLTR:(_dom_persona_read.sltscript)[26]: [DOM-PR] v2m Persona Read triggered [2026-05-29 09:21:37.935] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMFacetSmartness -> facetSmartness form (none=missing mod) [2026-05-29 09:21:38.309] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMPersonaReadSpell -> personaSpell form (none=missing mod) [2026-05-29 09:21:38.685] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginAnal -> virginAnal faction (train gate later) [2026-05-29 09:21:39.058] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginVaginal -> virginVaginal faction [2026-05-29 09:21:39.434] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginOral -> virginOral faction [2026-05-29 09:21:39.857] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainAnal -> trainAnal faction [2026-05-29 09:21:40.207] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainVaginal -> trainVaginal faction [2026-05-29 09:21:40.608] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainOral -> trainOral faction [2026-05-29 09:21:42.455] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=SCAN util_scan_cell_npcs (no args) center=player default radius=whole cell dead=ignored [2026-05-29 09:21:43.429] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=SCAN result listCount=$count variable=nearby (Form[] NPC refs) [2026-05-29 09:21:44.003] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP begin while i<listCount i=0 castSoFar=0 cap=MAX_TARGETS [2026-05-29 09:21:44.578] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=0 listCount=14 castSoFar=0 (next=nearby ref) [2026-05-29 09:21:45.501] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby -> isValid=1 (true=Actor ref) [2026-05-29 09:21:46.200] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:21:46.925] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=0 name= (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:21:47.149] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor= [2026-05-29 09:21:47.774] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name= inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:21:48.099] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target= (persona read) [2026-05-29 09:21:48.748] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=1 after spell_cast [2026-05-29 09:21:49.000] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name= [2026-05-29 09:21:49.499] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name= gender=0 (1=female 2=futa 0=male) [2026-05-29 09:21:52.144] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name= (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:21:52.894] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=0 advancing i++ [2026-05-29 09:21:53.618] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=1 listCount=14 castSoFar=1 (next=nearby ref) [2026-05-29 09:21:54.543] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=1] -> isValid=1 (true=Actor ref) [2026-05-29 09:21:55.292] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=1] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:21:55.942] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=1 name=Daighre (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:21:56.166] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Daighre [2026-05-29 09:21:56.790] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Daighre inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-29 09:21:59.612] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Daighre [2026-05-29 09:22:00.264] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=1 advancing i++ [2026-05-29 09:22:01.062] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=2 listCount=14 castSoFar=1 (next=nearby ref) [2026-05-29 09:22:01.910] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=2] -> isValid=1 (true=Actor ref) [2026-05-29 09:22:02.510] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=2] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:22:03.285] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=2 name= (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:22:03.485] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor= [2026-05-29 09:22:04.158] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name= inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:22:04.484] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target= (persona read) [2026-05-29 09:22:05.058] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=2 after spell_cast [2026-05-29 09:22:05.235] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name= [2026-05-29 09:22:05.732] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name= gender=0 (1=female 2=futa 0=male) [2026-05-29 09:22:08.344] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name= (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:22:09.093] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=2 advancing i++ [2026-05-29 09:22:09.892] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=3 listCount=14 castSoFar=2 (next=nearby ref) [2026-05-29 09:22:10.792] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=3] -> isValid=1 (true=Actor ref) [2026-05-29 09:22:11.390] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=3] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:22:12.190] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=3 name= (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:22:12.414] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor= [2026-05-29 09:22:13.040] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name= inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:22:13.314] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target= (persona read) [2026-05-29 09:22:13.863] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=3 after spell_cast [2026-05-29 09:22:14.188] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name= [2026-05-29 09:22:14.687] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name= gender=0 (1=female 2=futa 0=male) [2026-05-29 09:22:17.361] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name= (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:22:18.085] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=3 advancing i++ [2026-05-29 09:22:18.884] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=4 listCount=14 castSoFar=3 (next=nearby ref) [2026-05-29 09:22:19.758] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=4] -> isValid=1 (true=Actor ref) [2026-05-29 09:22:20.382] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=4] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:22:21.058] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=4 name= (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:22:21.282] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor= [2026-05-29 09:22:21.912] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name= inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:22:22.236] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target= (persona read) [2026-05-29 09:22:22.810] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=4 after spell_cast [2026-05-29 09:22:23.035] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name= [2026-05-29 09:22:23.535] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name= gender=0 (1=female 2=futa 0=male) [2026-05-29 09:22:26.082] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name= (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:22:26.780] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=4 advancing i++ [2026-05-29 09:22:27.529] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=5 listCount=14 castSoFar=4 (next=nearby ref) [2026-05-29 09:22:28.849] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=5] -> isValid=1 (true=Actor ref) [2026-05-29 09:22:29.549] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=5] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:22:30.374] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=5 name=Viania (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:22:30.648] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Viania [2026-05-29 09:22:31.372] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Viania inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:22:31.648] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target=Viania (persona read) [2026-05-29 09:22:32.318] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=5 after spell_cast [2026-05-29 09:22:32.593] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name=Viania [2026-05-29 09:22:33.091] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name=Viania gender=1 (1=female 2=futa 0=male) [2026-05-29 09:22:33.941] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train enter virgin rank reads for name=Viania (rank 4 = train gate per lane; form none = lane skipped entirely) [2026-05-29 09:22:34.782] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getfactionrank faction=DOMVirginOral name=Viania rank=-2 [2026-05-29 09:22:35.577] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getfactionrank faction=DOMVirginAnal name=Viania rank=-2 [2026-05-29 09:22:36.369] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getfactionrank faction=DOMVirginVaginal name=Viania rank=-2 [2026-05-29 09:22:37.193] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train oral DOMVirginOral rank=-2 (need 4) name=Viania [2026-05-29 09:22:38.267] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train anal DOMVirginAnal rank=-2 (need 4) name=Viania [2026-05-29 09:22:39.341] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-29 09:22:39.391] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train vaginal DOMVirginVaginal rank=-2 (need 4) name=Viania [2026-05-29 09:22:39.416] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(1265.425049) [2026-05-29 09:22:39.566] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: exiting [2026-05-29 09:22:40.515] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=5 advancing i++ [2026-05-29 09:22:41.140] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP halt castSoFar=5 >= MAX_TARGETS=5 -> goto done (no more casts this run) [2026-05-29 09:22:41.340] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=done label castSoFar=5 (persona casts this run) [2026-05-29 09:22:41.739] [log] [info] [sl_triggers.cpp:751] SLTR:(_dom_persona_read.sltscript)[227]: [DOM-PR] v2m Read 5 mind(s) [2026-05-29 09:23:44.780] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-29 09:23:44.854] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(1328.295044) [2026-05-29 09:23:44.955] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: running trigger (../sl_triggers/extensions/sl_triggersextensioncore/trigger006.json) [2026-05-29 09:23:44.980] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_CHANCE [2026-05-29 09:23:45.005] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_ARMED [2026-05-29 09:23:45.030] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_CLOTHED [2026-05-29 09:23:45.054] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_WEAPON_DRAWN [2026-05-29 09:23:45.080] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_DEEPLOCATION [2026-05-29 09:23:45.104] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) running SLTScript/1() [2026-05-29 09:23:45.129] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) running SLTScript/1(_dom_persona_read) [2026-05-29 09:23:45.180] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: exiting [2026-05-29 09:23:45.730] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=INIT script enter Persona Read timer fired [2026-05-29 09:23:45.953] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CONFIG MAX_TARGETS=5 (cast cap per run) [2026-05-29 09:23:46.179] [log] [info] [sl_triggers.cpp:751] SLTR:(_dom_persona_read.sltscript)[26]: [DOM-PR] v2m Persona Read triggered [2026-05-29 09:23:46.603] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMFacetSmartness -> facetSmartness form (none=missing mod) [2026-05-29 09:23:46.978] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMPersonaReadSpell -> personaSpell form (none=missing mod) [2026-05-29 09:23:47.378] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginAnal -> virginAnal faction (train gate later) [2026-05-29 09:23:47.752] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginVaginal -> virginVaginal faction [2026-05-29 09:23:48.178] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginOral -> virginOral faction [2026-05-29 09:23:48.652] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainAnal -> trainAnal faction [2026-05-29 09:23:49.076] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainVaginal -> trainVaginal faction [2026-05-29 09:23:49.449] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainOral -> trainOral faction [2026-05-29 09:23:51.147] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=SCAN util_scan_cell_npcs (no args) center=player default radius=whole cell dead=ignored [2026-05-29 09:23:52.072] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=SCAN result listCount=$count variable=nearby (Form[] NPC refs) [2026-05-29 09:23:52.646] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP begin while i<listCount i=0 castSoFar=0 cap=MAX_TARGETS [2026-05-29 09:23:53.296] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=0 listCount=14 castSoFar=0 (next=nearby ref) [2026-05-29 09:23:54.270] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby -> isValid=1 (true=Actor ref) [2026-05-29 09:23:54.919] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:23:55.568] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=0 name= (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:23:55.768] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor= [2026-05-29 09:23:56.392] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name= inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:23:56.692] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target= (persona read) [2026-05-29 09:23:57.317] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=1 after spell_cast [2026-05-29 09:23:57.541] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name= [2026-05-29 09:23:57.991] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name= gender=0 (1=female 2=futa 0=male) [2026-05-29 09:24:00.638] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name= (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:24:01.412] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=0 advancing i++ [2026-05-29 09:24:02.187] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=1 listCount=14 castSoFar=1 (next=nearby ref) [2026-05-29 09:24:03.061] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=1] -> isValid=1 (true=Actor ref) [2026-05-29 09:24:03.661] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=1] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:24:04.310] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=1 name=Daighre (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:24:04.609] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Daighre [2026-05-29 09:24:05.284] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Daighre inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-29 09:24:08.181] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Daighre [2026-05-29 09:24:08.830] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=1 advancing i++ [2026-05-29 09:24:09.630] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=2 listCount=14 castSoFar=1 (next=nearby ref) [2026-05-29 09:24:10.528] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=2] -> isValid=1 (true=Actor ref) [2026-05-29 09:24:11.253] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=2] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:24:11.952] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=2 name= (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:24:12.177] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor= [2026-05-29 09:24:12.858] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name= inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:24:13.216] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target= (persona read) [2026-05-29 09:24:15.037] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=2 after spell_cast [2026-05-29 09:24:15.237] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name= [2026-05-29 09:24:15.712] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name= gender=0 (1=female 2=futa 0=male) [2026-05-29 09:24:18.359] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name= (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:24:19.109] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=2 advancing i++ [2026-05-29 09:24:19.833] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=3 listCount=14 castSoFar=2 (next=nearby ref) [2026-05-29 09:24:20.757] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=3] -> isValid=1 (true=Actor ref) [2026-05-29 09:24:21.431] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=3] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:24:22.156] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=3 name= (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:24:22.380] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor= [2026-05-29 09:24:23.029] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name= inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:24:23.329] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target= (persona read) [2026-05-29 09:24:23.929] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=3 after spell_cast [2026-05-29 09:24:24.104] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name= [2026-05-29 09:24:24.578] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name= gender=0 (1=female 2=futa 0=male) [2026-05-29 09:24:27.200] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name= (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:24:27.950] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=3 advancing i++ [2026-05-29 09:24:28.699] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=4 listCount=14 castSoFar=3 (next=nearby ref) [2026-05-29 09:24:29.623] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=4] -> isValid=1 (true=Actor ref) [2026-05-29 09:24:30.272] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=4] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:24:30.972] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=4 name= (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:24:31.147] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor= [2026-05-29 09:24:31.896] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name= inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:24:32.246] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target= (persona read) [2026-05-29 09:24:32.871] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=4 after spell_cast [2026-05-29 09:24:33.170] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name= [2026-05-29 09:24:33.644] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name= gender=0 (1=female 2=futa 0=male) [2026-05-29 09:24:36.242] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name= (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:24:37.041] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=4 advancing i++ [2026-05-29 09:24:37.716] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=5 listCount=14 castSoFar=4 (next=nearby ref) [2026-05-29 09:24:39.090] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=5] -> isValid=1 (true=Actor ref) [2026-05-29 09:24:39.688] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=5] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:24:40.363] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=5 name=Viania (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:24:40.638] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor=Viania [2026-05-29 09:24:41.262] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name=Viania inFaction=TRUE (false=not yet smartness -> CAST spell) [2026-05-29 09:24:43.685] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP persona DOMFacetSmartness actor_infaction=true already has facet name=Viania [2026-05-29 09:24:44.335] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=5 advancing i++ [2026-05-29 09:24:45.083] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=6 listCount=14 castSoFar=4 (next=nearby ref) [2026-05-29 09:24:46.033] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby[i=6] -> isValid=1 (true=Actor ref) [2026-05-29 09:24:46.782] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby[i=6] -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:24:47.209] [log] [debug] [sl_triggers.cpp:743] Core.HandleOnKeyDown: starting [2026-05-29 09:24:47.404] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=6 name= (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:25:57.098] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor= [2026-05-29 09:25:57.846] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_infaction DOMFacetSmartness name= inFaction=False (false=not yet smartness -> CAST spell) [2026-05-29 09:25:58.095] [log] [debug] [sl_triggers.cpp:743] Core.OnUpdate [2026-05-29 09:25:58.170] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: starting at nowtime(1456.679077) [2026-05-29 09:25:58.221] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m ACTION spell_cast spell=DOMPersonaReadSpell target= (persona read) [2026-05-29 09:25:58.346] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: running trigger (../sl_triggers/extensions/sl_triggersextensioncore/trigger006.json) [2026-05-29 09:25:58.370] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_CHANCE [2026-05-29 09:25:58.395] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_ARMED [2026-05-29 09:25:58.420] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_CLOTHED [2026-05-29 09:25:58.445] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_IS_WEAPON_DRAWN [2026-05-29 09:25:58.470] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) from ATTR_DEEPLOCATION [2026-05-29 09:25:58.495] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) running SLTScript/1() [2026-05-29 09:25:58.570] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: doRun(TRUE) running SLTScript/1(_dom_persona_read) [2026-05-29 09:25:58.645] [log] [debug] [sl_triggers.cpp:743] Core.HandleTimers: exiting [2026-05-29 09:25:59.020] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT cast count castSoFar=5 after spell_cast [2026-05-29 09:25:59.494] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=train actor_getgender name= [2026-05-29 09:25:59.494] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=INIT script enter Persona Read timer fired [2026-05-29 09:25:59.818] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CONFIG MAX_TARGETS=5 (cast cap per run) [2026-05-29 09:26:00.043] [log] [info] [sl_triggers.cpp:751] SLTR:(_dom_persona_read.sltscript)[26]: [DOM-PR] v2m Persona Read triggered [2026-05-29 09:26:00.268] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m RESULT actor_getgender name= gender=0 (1=female 2=futa 0=male) [2026-05-29 09:26:00.642] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMFacetSmartness -> facetSmartness form (none=missing mod) [2026-05-29 09:26:01.585] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMPersonaReadSpell -> personaSpell form (none=missing mod) [2026-05-29 09:26:02.084] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginAnal -> virginAnal faction (train gate later) [2026-05-29 09:26:02.659] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginVaginal -> virginVaginal faction [2026-05-29 09:26:03.558] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMVirginOral -> virginOral faction [2026-05-29 09:26:04.209] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainAnal -> trainAnal faction [2026-05-29 09:26:04.832] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m SKIP train branch gender=0 name= (only female=1 or futa=2 get virgin train rolls) [2026-05-29 09:26:04.932] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainVaginal -> trainVaginal faction [2026-05-29 09:26:05.781] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=FORM form_getbyid editor=DOMTrainOral -> trainOral faction [2026-05-29 09:26:06.030] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP end iteration i=6 advancing i++ [2026-05-29 09:26:07.029] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP halt castSoFar=5 >= MAX_TARGETS=5 -> goto done (no more casts this run) [2026-05-29 09:26:07.354] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=done label castSoFar=5 (persona casts this run) [2026-05-29 09:26:07.979] [log] [info] [sl_triggers.cpp:751] SLTR:(_dom_persona_read.sltscript)[227]: [DOM-PR] v2m Read 5 mind(s) [2026-05-29 09:26:08.678] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=SCAN util_scan_cell_npcs (no args) center=player default radius=whole cell dead=ignored [2026-05-29 09:26:09.627] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=SCAN result listCount=$count variable=nearby (Form[] NPC refs) [2026-05-29 09:26:10.227] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP begin while i<listCount i=0 castSoFar=0 cap=MAX_TARGETS [2026-05-29 09:26:10.851] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP body iter index i=0 listCount=14 castSoFar=0 (next=nearby ref) [2026-05-29 09:26:11.775] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isvalid nearby -> isValid=1 (true=Actor ref) [2026-05-29 09:26:12.374] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_isplayer nearby -> isPlayer=False (true=skip player not NPC) [2026-05-29 09:26:16.065] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m STEP=LOOP actor identity i=0 name= (next=actor_infaction DOMFacetSmartness) [2026-05-29 09:26:16.265] [log] [debug] [sl_triggers.cpp:743] DebMsg> [DOM-PR] v2m CHECK actor_infaction faction=DOMFacetSmartness (facetSmartness form) actor= [2026-05-29 09:26:20.429] [log] [debug] [fact_finder.cpp:173] Metrics on quit: counter_ProcessEvent_EquipEvent = 599 counter_ProcessEvent_HitEvent = 71 counter_ProcessEvent_CombatEvent = 4 counter_ProcessEvent_HarvestedEvent = 0 counter_ProcessEvent_SoulsTrapped = 0 counter_PollFacts_Swimming = 0 counter_SendEventAll_PlayerSwimEvent = 0 counter_SendEventAll_PlayerWaterEvent = 0 counter_SendEventAll_PlayerCombatStateChanged = 0 counter_SendEventAll_PlayerEquipEvent = 0 counter_SendEventAll_PlayerHitEvent = 0 counter_SendEventAll_Harvesting = 0 counter_SendEventAll_SoulTrapped = 0 counter_DelayedFunction_HandlePlayerCombatStatusChange = 0 On 5/15/2026 at 8:40 PM, hextun said: Another odd question: how many times have you *loaded* this game? So... you started the save, new character. You play for a few hours and create 10 saves (don't laugh). You shut down. You come back to it a day later and start again. That's *one* load. You play another few hours; 10 more saves. You quit and start the next day. That's *two* loads. Approximate if you don't mind since specificity is unlikely: 1-5, 6-10, 11-15, etc. i have 1000 saves on this one. but as soon as i get the stack frame error in resaver i reload an older save/remove the problematic mod so it's quite clean. edit: i also noticed the timer triggers occur as soon as a save is reloaded. not sure it's a great idea given the heavy stress of papyrus when you reload a save. instead if the timer is let's say 4 minutes, why not just wait the 4 minutes before running it for the first time? Edited May 30 by Fraying9981
hextun Posted May 31 Author Posted May 31 On 5/29/2026 at 8:35 AM, Fraying9981 said: ok so I've done some testing. Here is the report Hide contents Resaver logs: good news: no stack frame error at all on multiple saves and locations! Testing methodology: 4 locations 3 indoor 1 outdoor 1 indoor had 10+ profiles to generate (script is too slow to do all of them but at least no bloat according to resaver) i saved in each location after a few minutes core and core timer debug activated, see logs below Script I used with timer 2 minutes: i have 1000 saves on this one. but as soon as i get the stack frame error in resaver i reload an older save/remove the problematic mod so it's quite clean. edit: i also noticed the timer triggers occur as soon as a save is reloaded. not sure it's a great idea given the heavy stress of papyrus when you reload a save. instead if the timer is let's say 4 minutes, why not just wait the 4 minutes before running it for the first time? So first, let me just say I'm a huge fan... Seriously, much appreciation from me. As for the timer scripts firing immediately on load, I'll double check if they are actually running directly on load due to poor design or intentional design. Intended design - I now track "time remaining", so if it's a 4 minute timer, each minute I deduct 60 seconds from time remaining and when it goes to zero or less, I run the script and push time remaining back to 4 minutes. Importantly, I remember how much time was remaining between sessions. So if only 1 minute is left on your 4 minute timer when you saved, on load it should fire within the first 60 seconds. I had assumed most would want this because if you, for example, had a very long timer, like on the order of 30 minutes, it is conceivable that if you saved and reloaded within multiple 30 minute spans your timer script would be starved. It would actually be easier to simply start timers fresh on each load. Poor design - Given my intent, I do *not* want all the timer scripts to just fire automatically at T0 before queuing up to wait. So if that is what is happening, or if the existing time remaining is not being properly honored on a load, then that's a bug. I'll investigate. Anyone have input on whether "time remaining" should be retained across loads?
Fraying9981 Posted May 31 Posted May 31 1 hour ago, hextun said: Importantly, I remember how much time was remaining between sessions. So if only 1 minute is left on your 4 minute timer when you saved, on load it should fire within the first 60 seconds. I had assumed most would want this because if you, for example, had a very long timer, like on the order of 30 minutes, it is conceivable that if you saved and reloaded within multiple 30 minute spans your timer script would be starved. It would actually be easier to simply start timers fresh on each load. Poor design - Given my intent, I do *not* want all the timer scripts to just fire automatically at T0 before queuing up to wait. So if that is what is happening, or if the existing time remaining is not being properly honored on a load, then that's a bug. that makes sense! then the timer firing on load is just a coincidence. okay, then I would suggest to keep things as is Will continue to test, I haven't tested on 30 min+ session yet
Mushano Posted May 31 Posted May 31 On 4/10/2026 at 1:48 PM, hextun said: For SexLab: - sslThreadController has .IsAggressive(Actor) and .isVictim(Actor) - when checking if the Actor's role (i.e. "Role") is aggressive or the victim, I call the function directly on the actor being considered (e.g. the actor who climaxed for the "Separate Orgasm" trigger) - when checking the "Partner Role", I loop through the other actors and count how many aggressive or victim responses are true; then, based on which relationship you are checking for (e.g. "Partner Role: Aggressive"), if that count is non-zero there were one or more partners with that role and the test passes For OStim: - OMetadata has .HasActorTag() which can be checked for the "dominant" tag - I loop and count how many have the "dominant" tag; if no one does, the scene has no dominance, so tests for either "Aggressive" as well as "Victim" result in failures (no one is either) - then for the "Partner Role" I do more or less the same as with SexLab, albeit with the dominance check as well Just a question, since I was trying to do this recently I couldn't find a way, but currently there is no function to check if the scene is aggressive or not, right? Trying to create a trigger that only runs if a scene is consensual. I know the MCM lets you set roles (aggressor, victim, not part of the scene, any), but I don’t see a way to explicitly filter for "not aggressive" or "consensual" in the script. There isn't anything like a simple sl_isaggressive command that I can use in the sltscript yet, is there?
hextun Posted June 1 Author Posted June 1 Okay, v0.981 is officially posted. Inspired by Mushano's request, I added a late addition: new command: sl_is_aggressive <Actor, optional, defaults to current target>. Returns bool: true if actor's current scene is aggressive, false otherwise. @Mushano: added sl_is_aggressive; see docs for more details but should work with no parameters to reference the currently targeted actor, or you can specify an actor e.g. sl_is_aggressive $system.player @Fraying9981: This contains the same functionality as you have already grabbed, so unless you want sl_is_aggressive, you don't need to update. Note: THIS DOES NOT INDICATE WHETHER THE ACTOR IS AN AGGRESSOR AND I REALLY OUGHT TO HAVE NAMED IT "SL_IS_SCENE_AGGRESSIVE" AND NOW LIVE IN A POOL OF REGRET! ALSO I SHOULD NOT SHOUT AS IT IS RUDE!
hextun Posted June 1 Author Posted June 1 *sigh* shipped version of sl_is_aggressive is failing FYI: Previously, several versions ago, I was hosting the mod on github against my personal account alongside all my other projects. I reorganized to use a separate account. I did not, however, update the build environment, which is still using the original repo. This means that I am adding an extra step when doing builds that involves ... ugh... manually copying changes over. Yes, I know, there are better ways. I got lazy because how often do I have a lot of files to touch and I didn't want to muck with existing build setup. Unfortunately that means sometimes things like this *waves hand around* happen. I'll be posting an update to fix the issue soon.
Fraying9981 Posted June 2 Posted June 2 7 hours ago, hextun said: Okay, v0.981 is officially posted. Inspired by Mushano's request, I added a late addition: new command: sl_is_aggressive <Actor, optional, defaults to current target>. Returns bool: true if actor's current scene is aggressive, false otherwise. @Mushano: added sl_is_aggressive; see docs for more details but should work with no parameters to reference the currently targeted actor, or you can specify an actor e.g. sl_is_aggressive $system.player @Fraying9981: This contains the same functionality as you have already grabbed, so unless you want sl_is_aggressive, you don't need to update. Note: THIS DOES NOT INDICATE WHETHER THE ACTOR IS AN AGGRESSOR AND I REALLY OUGHT TO HAVE NAMED IT "SL_IS_SCENE_AGGRESSIVE" AND NOW LIVE IN A POOL OF REGRET! ALSO I SHOULD NOT SHOUT AS IT IS RUDE! now im confused lol 😁 what does it do then if it doesn't detect whether a NPC is an aggressor? That would be useful actually, to handle the consensual/nonconsensual logic directly inside the code instead of via the MCM which adds an additional step to development + doubles the number of files in certain cases.
hextun Posted June 2 Author Posted June 2 10 minutes ago, Fraying9981 said: now im confused lol 😁 what does it do then if it doesn't detect whether a NPC is an aggressor? That would be useful actually, to handle the consensual/nonconsensual logic directly inside the code instead of via the MCM which adds an additional step to development + doubles the number of files in certain cases. sl_is_aggressive: true if the scene the targeted actor is currently in is marked "aggressive" i.e. any actors are victims or aggressors if no targeted actor is provided (first parameter; optional), defaults to the actor targeted by the script (i.e. $system.self) So, suppose you hook up the following script: set $scene_is_aggressive resultfrom sl_is_aggressive set $actor_name resultfrom actor_name $system.self msg_console $"Scene with actor :{$actor_name}: is_aggressive:{$scene_is_aggressive}:" To "SexLab Start" with no parameters. This means it will run the script once for each actor at the start of a scene i.e. 3-way, 3 copies of the script run, each with $system.self pointing to that actor. Now, assuming the actors in the scene are: JimBob, MarySue If the scene is non-consensual, let's say MarySue did NOT get JimBob's consent i.e. MarySue-aggressor/JimBob-victim, i.e. aggressive, i.e. *any* actor in the scene is an aggressor/victim, you will get: Scene with actor :JimBob: is_aggressive:TRUE: Scene with actor :MarySue: is_aggressive:TRUE: If not, if nobody in the scene is an aggressor/victim, i.e. it is consensual, you will get: Scene with actor :JimBob: is_aggressive:FALSE: Scene with actor :MarySue: is_aggressive:FALSE: The reason I said it ought to have been named "sl_is_scene_aggressive" is exactly that; because it is returning whether the scene that actor is in is aggressive, and not whether a specific actor is *being* aggressive (i.e. an aggressor). For that, you would want something like "sl_is_actor_aggressor" and "sl_is_actor_victim", which would then return true if the specified actor (or $system.self if not specified) is as indicated, an aggressor or a victim. Would return false in fully consensual scenes (because *nobody* is an aggressor *or* a victim, they are all there consensually). Think it would be worthwhile or nah?
Fraying9981 Posted June 2 Posted June 2 4 minutes ago, hextun said: sl_is_aggressive: true if the scene the targeted actor is currently in is marked "aggressive" i.e. any actors are victims or aggressors if no targeted actor is provided (first parameter; optional), defaults to the actor targeted by the script (i.e. $system.self) So, suppose you hook up the following script: set $scene_is_aggressive resultfrom sl_is_aggressive set $actor_name resultfrom actor_name $system.self msg_console $"Scene with actor :{$actor_name}: is_aggressive:{$scene_is_aggressive}:" To "SexLab Start" with no parameters. This means it will run the script once for each actor at the start of a scene i.e. 3-way, 3 copies of the script run, each with $system.self pointing to that actor. Now, assuming the actors in the scene are: JimBob, MarySue If the scene is non-consensual, let's say MarySue did NOT get JimBob's consent i.e. MarySue-aggressor/JimBob-victim, i.e. aggressive, i.e. *any* actor in the scene is an aggressor/victim, you will get: Scene with actor :JimBob: is_aggressive:TRUE: Scene with actor :MarySue: is_aggressive:TRUE: If not, if nobody in the scene is an aggressor/victim, i.e. it is consensual, you will get: Scene with actor :JimBob: is_aggressive:FALSE: Scene with actor :MarySue: is_aggressive:FALSE: The reason I said it ought to have been named "sl_is_scene_aggressive" is exactly that; because it is returning whether the scene that actor is in is aggressive, and not whether a specific actor is *being* aggressive (i.e. an aggressor). For that, you would want something like "sl_is_actor_aggressor" and "sl_is_actor_victim", which would then return true if the specified actor (or $system.self if not specified) is as indicated, an aggressor or a victim. Would return false in fully consensual scenes (because *nobody* is an aggressor *or* a victim, they are all there consensually). Think it would be worthwhile or nah? got it! thanks for the clarification. yes i think it would be worth while. because at the moment i have 2 versions of the same script, and 2 triggers: one for consensual and one for non consensual. its a bit of a mess in my file system so would be helpful!
hextun Posted June 2 Author Posted June 2 So... I don't think the aggressor/victim/submissive code is working for SLP+. At least not as I would expect it to. Perusing said code clearly hints at things like victim status equating to submissive status, and IsConsent() referring to "Aggressive" context and such, but in practice I'm not seeing it actually do what is intended. For example, attempting to use the legacy "SexLabThread.IsAggressive" property (which is actually from the sslThreadModel script) does not appear to resolve appropriately; testing on the Masterstroke list, which seems reasonably well curated with regard to converted SLP+ animations, never appears to return "true" for such scenes. Moreover, the SexLabThread.IsConsent() function wraps around HasContext("Aggressive") which never returns true even for scenes/threads tagged with "Aggressive", so I'm not sure what to make of that. SexLabThread.HasTag("Aggressive") works correctly, and I can replace my attempts at using IsConsent()/IsAggressive with this. However, that leads to the next problem; SexLabThread.IsSubmissive(Actor) returns true for anyone in a scene when the scene is tagged "Aggressive" with clear intent of there being aggressors/victims. As a result, in the next update, I'm going to modify SLP+ aggression handling as follows: Scene aggressive result - Old: use either IsConsent() or IsAggressive - New: use HasTag("Aggressive") Actor aggressor result - Old: use IsAggressor() - New: use !IsVictim() ; IsAggressor() was not returning expected values Actor victim result - Old: use IsVictim() - New: use IsVictim() ; i.e. no change The assumption being that in a scene flagged "Aggressive" if you are not a victim, you are an aggressor. No innocent bystanders. This appears to be giving the expected results in my testing. As an aside, if you *have* been getting expected results on SLP+ I would love to know which modlist/SLP+ version you are using.
hextun Posted June 2 Author Posted June 2 2 minutes ago, hextun said: So... I don't think the aggressor/victim/submissive code is working for SLP+. At least not as I would expect it to. Perusing said code clearly hints at things like victim status equating to submissive status, and IsConsent() referring to "Aggressive" context and such, but in practice I'm not seeing it actually do what is intended. For example, attempting to use the legacy "SexLabThread.IsAggressive" property (which is actually from the sslThreadModel script) does not appear to resolve appropriately; testing on the Masterstroke list, which seems reasonably well curated with regard to converted SLP+ animations, never appears to return "true" for such scenes. Moreover, the SexLabThread.IsConsent() function wraps around HasContext("Aggressive") which never returns true even for scenes/threads tagged with "Aggressive", so I'm not sure what to make of that. SexLabThread.HasTag("Aggressive") works correctly, and I can replace my attempts at using IsConsent()/IsAggressive with this. However, that leads to the next problem; SexLabThread.IsSubmissive(Actor) returns true for anyone in a scene when the scene is tagged "Aggressive" with clear intent of there being aggressors/victims. As a result, in the next update, I'm going to modify SLP+ aggression handling as follows: Scene aggressive result - Old: use either IsConsent() or IsAggressive - New: use HasTag("Aggressive") Actor aggressor result - Old: use IsAggressor() - New: use !IsVictim() ; IsAggressor() was not returning expected values Actor victim result - Old: use IsVictim() - New: use IsVictim() ; i.e. no change The assumption being that in a scene flagged "Aggressive" if you are not a victim, you are an aggressor. No innocent bystanders. This appears to be giving the expected results in my testing. As an aside, if you *have* been getting expected results on SLP+ I would love to know which modlist/SLP+ version you are using. Note that this problem extends to the trigger filter handling i.e. in the MCM, specifying a "Partner: Aggressor" filter.
hextun Posted June 2 Author Posted June 2 v0.983 has been dropped like something that is culturally relevant and related to being dropped in modern context... *cough* The changelog: Spoiler Savegame compatible Reminder: Note that logging output is all sent to <My Documents>\My Games\Skyrim Special Edition\SKSE\sl-triggers.log (or whichever folder you have your SKSE logs directed to) enhancement: new commands: sl_is_actor_aggressor: return true if target actor (defaults to $system.self) is an aggressor in current SexLab scene; false otherwise (incl. consensual scenes) sl_is_actor_submissive: return true if target actor (defaults to $system.self) is a submissive in current SexLab scene; false otherwise (incl. consensual scenes) sl_is_scene_aggressive: return true if the scene that target actor (defaults to $system.self) is in is aggressive (has aggressors/submissives); false otherwise deprecated: sl_is_aggressive: still exists but is a wrapper for sl_is_scene_aggressive bugfix: fixed handling for SexLab P+ scene/actor aggressor/victim status Scene aggressive result Old: use either SexLabThread.IsConsent() or SexLabThread.IsAggressive New: use sslThreadController.HasTag("Aggressive") Actor aggressor result Old: use IsAggressor(Actor) New: use !IsVictim(Actor) ; IsAggressor(Actor) was not returning expected values Actor victim result Old: use IsVictim(Actor) New: use IsVictim(Actor) ; i.e. no change update: added "Aggressive" tag to sl_startsex call in the following SLTScripts: SL Aggressive Sex With Player - Anal.sltscript SL Aggressive Sex With Player - Oral.sltscript SL Aggressive Sex With Player - Vaginal.sltscript The 'splanation: I renamed "sl_is_aggressive" to "sl_is_scene_aggressive", but kept a (non-documented) mapping for sl_is_aggressive for the select few who might have perhaps started using it. I recommend updating your scripts because "sl_is_aggressive" is deprecated. I added "sl_is_actor_aggressor" and "sl_is_actor_submissive" which work as you would expect. SexLab P+ detection of aggression/victim state has been updated as indicated. Should be correct now. Added the "Aggressive" tag to the associated SLTScripts. I think they were technically working anyway because of specifying the player as the victim explicitly, but now the tag should ensure appropriate operation. 1
Fraying9981 Posted June 2 Posted June 2 54 minutes ago, hextun said: v0.983 has been dropped like something that is culturally relevant and related to being dropped in modern context... *cough* The changelog: Hide contents Savegame compatible Reminder: Note that logging output is all sent to <My Documents>\My Games\Skyrim Special Edition\SKSE\sl-triggers.log (or whichever folder you have your SKSE logs directed to) enhancement: new commands: sl_is_actor_aggressor: return true if target actor (defaults to $system.self) is an aggressor in current SexLab scene; false otherwise (incl. consensual scenes) sl_is_actor_submissive: return true if target actor (defaults to $system.self) is a submissive in current SexLab scene; false otherwise (incl. consensual scenes) sl_is_scene_aggressive: return true if the scene that target actor (defaults to $system.self) is in is aggressive (has aggressors/submissives); false otherwise deprecated: sl_is_aggressive: still exists but is a wrapper for sl_is_scene_aggressive bugfix: fixed handling for SexLab P+ scene/actor aggressor/victim status Scene aggressive result Old: use either SexLabThread.IsConsent() or SexLabThread.IsAggressive New: use sslThreadController.HasTag("Aggressive") Actor aggressor result Old: use IsAggressor(Actor) New: use !IsVictim(Actor) ; IsAggressor(Actor) was not returning expected values Actor victim result Old: use IsVictim(Actor) New: use IsVictim(Actor) ; i.e. no change update: added "Aggressive" tag to sl_startsex call in the following SLTScripts: SL Aggressive Sex With Player - Anal.sltscript SL Aggressive Sex With Player - Oral.sltscript SL Aggressive Sex With Player - Vaginal.sltscript The 'splanation: I renamed "sl_is_aggressive" to "sl_is_scene_aggressive", but kept a (non-documented) mapping for sl_is_aggressive for the select few who might have perhaps started using it. I recommend updating your scripts because "sl_is_aggressive" is deprecated. I added "sl_is_actor_aggressor" and "sl_is_actor_submissive" which work as you would expect. SexLab P+ detection of aggression/victim state has been updated as indicated. Should be correct now. Added the "Aggressive" tag to the associated SLTScripts. I think they were technically working anyway because of specifying the player as the victim explicitly, but now the tag should ensure appropriate operation. awesome! will try it out. this will save on script # and hopefully on execution.
Mushano Posted June 2 Posted June 2 9 hours ago, hextun said: v0.983 has been dropped like something that is culturally relevant and related to being dropped in modern context... *cough* The changelog: Reveal hidden contents Savegame compatible Reminder: Note that logging output is all sent to <My Documents>\My Games\Skyrim Special Edition\SKSE\sl-triggers.log (or whichever folder you have your SKSE logs directed to) enhancement: new commands: sl_is_actor_aggressor: return true if target actor (defaults to $system.self) is an aggressor in current SexLab scene; false otherwise (incl. consensual scenes) sl_is_actor_submissive: return true if target actor (defaults to $system.self) is a submissive in current SexLab scene; false otherwise (incl. consensual scenes) sl_is_scene_aggressive: return true if the scene that target actor (defaults to $system.self) is in is aggressive (has aggressors/submissives); false otherwise deprecated: sl_is_aggressive: still exists but is a wrapper for sl_is_scene_aggressive bugfix: fixed handling for SexLab P+ scene/actor aggressor/victim status Scene aggressive result Old: use either SexLabThread.IsConsent() or SexLabThread.IsAggressive New: use sslThreadController.HasTag("Aggressive") Actor aggressor result Old: use IsAggressor(Actor) New: use !IsVictim(Actor) ; IsAggressor(Actor) was not returning expected values Actor victim result Old: use IsVictim(Actor) New: use IsVictim(Actor) ; i.e. no change update: added "Aggressive" tag to sl_startsex call in the following SLTScripts: SL Aggressive Sex With Player - Anal.sltscript SL Aggressive Sex With Player - Oral.sltscript SL Aggressive Sex With Player - Vaginal.sltscript The 'splanation: I renamed "sl_is_aggressive" to "sl_is_scene_aggressive", but kept a (non-documented) mapping for sl_is_aggressive for the select few who might have perhaps started using it. I recommend updating your scripts because "sl_is_aggressive" is deprecated. I added "sl_is_actor_aggressor" and "sl_is_actor_submissive" which work as you would expect. SexLab P+ detection of aggression/victim state has been updated as indicated. Should be correct now. Added the "Aggressive" tag to the associated SLTScripts. I think they were technically working anyway because of specifying the player as the victim explicitly, but now the tag should ensure appropriate operation. *Cough* Thanks so much for the update. I hope I didn't cause you undue stress and hardship, since it seems you were going crazy to get this in. 🫠
hextun Posted June 3 Author Posted June 3 2 hours ago, Mushano said: *Cough* Thanks so much for the update. I hope I didn't cause you undue stress and hardship, since it seems you were going crazy to get this in. 🫠 Ah, no worries. Frankly it is helpful to have a target. I have skills and some ideas but at this point the things I *have* thought of doing are all on the ambitious and/or "ugh, yeah, I should probably get to that" part of the spectrum. Whereas knowing about low hanging fruit that makes someone happy is an easy win. as for the struggle, the naming convention issue is entirely on me for not having given it enough thought. In fact as I go through the SLP+ code I am coming to understand there may be a distinction between "victim" and "submissive" that I am not properly respecting. But for now I think how I am handling it is working. and as for the general issue with my handling of aggressor/victim/submissive status for SLP+, that just happened to become exposed while testing the update, meaning the problem was there the whole time I just hadn't noticed it before. Honestly I appreciate when folks give me ideas and suggestions even if I don't always act on them. If nothing else it makes the effort seem a bit more worthwhile.
hextun Posted June 3 Author Posted June 3 Okay... I'm ponderin' util_waitforkbd/sl_waitforkbd/ostim_waitforkbd do the following: - accept a set of scan codes to wait for - loops in a 0.5 second wait - each 0.5 seconds, checks if a key was pressed from those provided or if the scene has ended (for the sl_ and ostim_ variants) - returns the scan code of the key pressed (or -1 on end of scene for sl_ and ostim_ variants) I'm thinking of introducing util_/sl_/ostim_ variants for _waitforkbd_withtimeout: - required new first argument: seconds before timeout - list of scan codes - loops in a tighter loop (maybe 0.25 seconds) - each period (0.25 seconds?), checks if key was pressed or if scene has ended (for sl_ and ostim_) OR if timeout reached - returns scan code of key pressed or -1 on scene end (for ostim_ and sl_ variants) OR -2 if timeout reached This would let you only wait for so long before moving on. But... this was brought about because I want to emulate a QTE (QuickTime Event). You know, where you have a short period of time to press a specific key from a set of possible keys with consequences for success and failure? Like, say, a mini-game where the player's orgasm is locked until they get 5 successes? So this would be something like: util_/sl_/ostim_ variants for _pseudo_qte: - takes arg1: timeout in seconds - takes arg2: string message to display via uilib_notification (i.e. to let the player know which key it is waiting for) - takes arg3: expected dx scan code for the target key (only one allowed) - takes arg4-n: keys to register for - need to register for multiple keys because pressing the wrong key should terminate early, yes? - optionally, only registers for one key (i.e. no arg4-n) ; this does not penalize for pressing the wrong key, only for not pressing the right one in time - loops in a very tight loop (maybe 0.1 seconds) - each loop (0.1 seconds), checks if key was pressed or if scene ended (for sl_ and ostim variants) or if timeout reached - returns scan code of key pressed (on success), -1 for scene end, -2 for timeout - possibly a -3 for wrong key pressed if the arg4-n option is used The arg4-n option would introduce more of a performance hit even though it's the option that is more featureful. I'm leaning toward *not* doing the arg4-n option. So for example, the following script uses a mocked up concept of sl_pseudo_qte. You would hook it up to SexLab Start, targeting the Player. It would: - disable orgasms for the player - give you a 1 second window to press either left or right arrow, randomly chosen each loop - keep looping until you succeeded 5 more times than you failed - if you succeed, orgasms would then be enabled - otherwise they would remain disabled for the duration of the scene sl_disableorgasm $system.player true set $successes 0 set $required 5 [startwaiting] ; 203 - arrow left; 205 - arrow right set $target_key resultfrom rnd_list 203 205 if $target_key == 203 set $qte_msg "Struggle for your cummies! Arrow Left!" else set $qte_msg "Struggle for your cummies! Arrow Right!" endif ; sl_pseudo_qte would use a UILIB notification to display $qte_msg set $a_key resultfrom sl_pseudo_qte 1.0 $qte_msg $target_key if $a_key == -1 ; scene ended uilib_shownotification "You lost out on cummies! wah-waaaahhh" return elseif $a_key == -2 ; timeout inc $successes -1 ; subtract, this is just an example, but yes you could go negative else ; this version assumes only one key was registered, so you pressed it, congratulations inc $successes endif if $successes < $required [startwaiting] uilib_shownotification "You have earned cummies!" sl_disableorgasm $system.player false Thoughts?
Mushano Posted June 7 Posted June 7 On 6/3/2026 at 7:59 PM, hextun said: Okay... I'm ponderin' util_waitforkbd/sl_waitforkbd/ostim_waitforkbd do the following: - accept a set of scan codes to wait for - loops in a 0.5 second wait - each 0.5 seconds, checks if a key was pressed from those provided or if the scene has ended (for the sl_ and ostim_ variants) - returns the scan code of the key pressed (or -1 on end of scene for sl_ and ostim_ variants) I'm thinking of introducing util_/sl_/ostim_ variants for _waitforkbd_withtimeout: - required new first argument: seconds before timeout - list of scan codes - loops in a tighter loop (maybe 0.25 seconds) - each period (0.25 seconds?), checks if key was pressed or if scene has ended (for sl_ and ostim_) OR if timeout reached - returns scan code of key pressed or -1 on scene end (for ostim_ and sl_ variants) OR -2 if timeout reached This would let you only wait for so long before moving on. But... this was brought about because I want to emulate a QTE (QuickTime Event). You know, where you have a short period of time to press a specific key from a set of possible keys with consequences for success and failure? Like, say, a mini-game where the player's orgasm is locked until they get 5 successes? So this would be something like: util_/sl_/ostim_ variants for _pseudo_qte: - takes arg1: timeout in seconds - takes arg2: string message to display via uilib_notification (i.e. to let the player know which key it is waiting for) - takes arg3: expected dx scan code for the target key (only one allowed) - takes arg4-n: keys to register for - need to register for multiple keys because pressing the wrong key should terminate early, yes? - optionally, only registers for one key (i.e. no arg4-n) ; this does not penalize for pressing the wrong key, only for not pressing the right one in time - loops in a very tight loop (maybe 0.1 seconds) - each loop (0.1 seconds), checks if key was pressed or if scene ended (for sl_ and ostim variants) or if timeout reached - returns scan code of key pressed (on success), -1 for scene end, -2 for timeout - possibly a -3 for wrong key pressed if the arg4-n option is used The arg4-n option would introduce more of a performance hit even though it's the option that is more featureful. I'm leaning toward *not* doing the arg4-n option. So for example, the following script uses a mocked up concept of sl_pseudo_qte. You would hook it up to SexLab Start, targeting the Player. It would: - disable orgasms for the player - give you a 1 second window to press either left or right arrow, randomly chosen each loop - keep looping until you succeeded 5 more times than you failed - if you succeed, orgasms would then be enabled - otherwise they would remain disabled for the duration of the scene sl_disableorgasm $system.player true set $successes 0 set $required 5 [startwaiting] ; 203 - arrow left; 205 - arrow right set $target_key resultfrom rnd_list 203 205 if $target_key == 203 set $qte_msg "Struggle for your cummies! Arrow Left!" else set $qte_msg "Struggle for your cummies! Arrow Right!" endif ; sl_pseudo_qte would use a UILIB notification to display $qte_msg set $a_key resultfrom sl_pseudo_qte 1.0 $qte_msg $target_key if $a_key == -1 ; scene ended uilib_shownotification "You lost out on cummies! wah-waaaahhh" return elseif $a_key == -2 ; timeout inc $successes -1 ; subtract, this is just an example, but yes you could go negative else ; this version assumes only one key was registered, so you pressed it, congratulations inc $successes endif if $successes < $required [startwaiting] uilib_shownotification "You have earned cummies!" sl_disableorgasm $system.player false Thoughts? I mean, more options are always better. I can't think of a use for the button inputs yet, but I'm sure there could be something. Maybe if there was a way to get distance from player to NPC that's in a sex scene or some such, then there could be a "encourage" key, "break it up" key, "replace NPC with player" key that we could script.
Mushano Posted June 8 Posted June 8 (edited) On 6/2/2026 at 7:59 AM, hextun said: v0.983 has been dropped like something that is culturally relevant and related to being dropped in modern context... *cough* The changelog: Hide contents Savegame compatible Reminder: Note that logging output is all sent to <My Documents>\My Games\Skyrim Special Edition\SKSE\sl-triggers.log (or whichever folder you have your SKSE logs directed to) enhancement: new commands: sl_is_actor_aggressor: return true if target actor (defaults to $system.self) is an aggressor in current SexLab scene; false otherwise (incl. consensual scenes) sl_is_actor_submissive: return true if target actor (defaults to $system.self) is a submissive in current SexLab scene; false otherwise (incl. consensual scenes) sl_is_scene_aggressive: return true if the scene that target actor (defaults to $system.self) is in is aggressive (has aggressors/submissives); false otherwise deprecated: sl_is_aggressive: still exists but is a wrapper for sl_is_scene_aggressive bugfix: fixed handling for SexLab P+ scene/actor aggressor/victim status Scene aggressive result Old: use either SexLabThread.IsConsent() or SexLabThread.IsAggressive New: use sslThreadController.HasTag("Aggressive") Actor aggressor result Old: use IsAggressor(Actor) New: use !IsVictim(Actor) ; IsAggressor(Actor) was not returning expected values Actor victim result Old: use IsVictim(Actor) New: use IsVictim(Actor) ; i.e. no change update: added "Aggressive" tag to sl_startsex call in the following SLTScripts: SL Aggressive Sex With Player - Anal.sltscript SL Aggressive Sex With Player - Oral.sltscript SL Aggressive Sex With Player - Vaginal.sltscript The 'splanation: I renamed "sl_is_aggressive" to "sl_is_scene_aggressive", but kept a (non-documented) mapping for sl_is_aggressive for the select few who might have perhaps started using it. I recommend updating your scripts because "sl_is_aggressive" is deprecated. I added "sl_is_actor_aggressor" and "sl_is_actor_submissive" which work as you would expect. SexLab P+ detection of aggression/victim state has been updated as indicated. Should be correct now. Added the "Aggressive" tag to the associated SLTScripts. I think they were technically working anyway because of specifying the player as the victim explicitly, but now the tag should ensure appropriate operation. Hmm... I'm not sure if it is fixed in P+? I'm getting false every time a scene starts, even if it's aggressive. In fact, it might have broken the old detection system because a bunch of my sltscripts are no longer firing if I set it under 'aggressive' or 'victim' in the MCM menu. Edit: It might not even be that. Tried switching around from 978, and 980. Even those are no longer working properly. Maybe the saved game is just borked. Edited June 8 by Mushano
hextun Posted June 8 Author Posted June 8 7 hours ago, Mushano said: Hmm... I'm not sure if it is fixed in P+? I'm getting false every time a scene starts, even if it's aggressive. In fact, it might have broken the old detection system because a bunch of my sltscripts are no longer firing if I set it under 'aggressive' or 'victim' in the MCM menu. Edit: It might not even be that. Tried switching around from 978, and 980. Even those are no longer working properly. Maybe the saved game is just borked. Before going to "save is borked" instead of "hextun made a booboo", given that I *did* elect to move *away* from actual API calls because in *my* testbed the API calls were not working, I'd like to collect a little info if you don't mind. Hmm.. is this a purely custom modlist, a pre-made modlist (e.g. from wabbajack), or a customized pre-made modlist (e.g. from wabbajack, but with your own tweaks)? I'm curious to match it against my own testbed for SLP+ (Masterstroke) Do you have an older save you could load, verify things are working (since you did feel confident things were working at one point), and then try 980 again? Are you willing to do unpaid testing? Side note/PSA: In the LL text editor (i.e. where I am typing right now), if you enter a smiley (like colon-right parens, i.e. ":)" ), but do not hit enter or space after the parens, your arrow keys will stop allowing navigation in the text editor until you do so? Like, start typing, then enter the ":)" but without the quotes. Then, before you hit enter or space (thus letting the editor convert it to the icon), try using your arrow keys. You can't! This surprised me. Enjoy!
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now