Jump to content

ASF - Furniture Lite (Addon)


Recommended Posts

Posted
11 hours ago, kaxat said:

@jerryrhp I created the ASF Allure — Player power with usecases like yours in mind. It allows you to attract Initiators to the player when you deem the player to be available. Rather than waiting on ASF to update her status.

 

I am using it myself when entering bondage furniture. It is much better than waiting. Download the latest version of ASF core to test it out. Be sure to toggle the Add Spells option in the MCM to get the new Lesser Power in your spells menu.

 

I also created the ASF Allure — Random power for similar needs. If you walk into an area and want to see available initiators have sex with other actors that are in bondage furniture then casting this power will speed the process up. It also removes the need for Easy Random Sex to be enabled. Which can help with performance if you wish to only trigger scenes manually.

 

I tried to get the new spell to work and received the message "could not start Sexlab Thread"

Posted

@jerryrhp That is an indication that SexLab is refusing to start with the chosen actors. Check your logs and SexLab will say why. 

 

A common cause is that the actor still has the SexLabAnimatingFaction attached to them from a previous scene. One way to fix this is to open the console. Click on the problematic actor. And type RemoveFac SexLabAnimatingFaction

 

It is always safe to remove an actor from that faction if they are not part of an ongoing scene. The only reason they get put into that faction is to prevent scenes from starting with them.

Posted
12 minutes ago, kaxat said:

@jerryrhp That is an indication that SexLab is refusing to start with the chosen actors. Check your logs and SexLab will say why. 

 

A common cause is that the actor still has the SexLabAnimatingFaction attached to them from a previous scene. One way to fix this is to open the console. Click on the problematic actor. And type RemoveFac SexLabAnimatingFaction

 

It is always safe to remove an actor from that faction if they are not part of an ongoing scene. The only reason they get put into that faction is to prevent scenes from starting with them.

 

not work

Posted

@jerryrhp What do your logs say? When SexLab refuses to start it adds a log entry saying why. For example here is what it said in your old logs:

 

[02/07/2026 - 01:17:26PM] SEXLAB - NOTICE: ValidateActor(Tirwin) -- FALSE -- They appear to already be animating
[02/07/2026 - 01:17:26PM] Info: SEXLAB - FATAL - Thread[1] AddActor(Tirwin) - AddActor(Tirwin) -- Failed to add actor -- They are not a valid target for animation

 

Knowing the error that SexLab is generating will help you diagnose. Just FYI this is all SexLab itself. Not related to ASF.

Posted (edited)
8 minutes ago, jerryrhp said:

I tested it using the random spell and it gives the message "no potential initiators or recipient in the area"

 

Oh that is a different issue. That means that literally no one in the area is configured to have sex with ASF. You need an SPID file or similar to tell ASF who can have sex with who. If you have not installed such a file then no one can have sex. I previously linked you to such a file.

  

On 2/6/2026 at 6:45 PM, kaxat said:

@jerryrhp I have attached an example SPID file that should accomplish that. Install it like any other mod.

ASF_Addon_InitiatorsEveryone.zip 1.21 kB · 23 downloads

 

Be sure SPID is working. If it is not working it cannot distribute the keyword ASF_Initiator_Included to actors. Without that keyword no potential initiators will be found.

Edited by kaxat
Posted

TY for the update! CTD's are gone on my end and I have not recreated the issue with the new setup.

 

The new player spell hasn't worked for me ether for some reason "could not start Sexlab Thread".   I attached a log for actor failing to initiate with player. 

- Ticking the player spells box while locked in zaz furniture seems to instantly start a scene for me even though casting isn't working.

 

Furniture is acting a bit odd but no log errors in the quick tests. I posed my load order just to confirm what's active. I've been turning ddng integration on and off trying to see if it will work.

 

Super excited its working now. 

 

ModOrganizer_PfNzE9Bva5.png

papyruschoped.txt

Posted

@lovelylove125 Glad to hear it.

 

Unfortunately your "choped" log file was chopped a little too much. It does not contain a "Failed to add actor" error. 

 

I noticed the Allure Player spell can generate the wrong error message when no Initiators are available. It will say "Could not start Sexlab Thread". Which is accurate. But I meant to be more specific. I will fix that in a future version. For now you will have to read the log files to see if no Initiator was found, or if SexLab refused to animate an actor. Only applies to Allure Player.

 

I might start logging all SexLab refusal errors into the console. That would be an easy place to find them for people who do not normally do logs.

Posted

I've been having some difficulty understanding how the mod works or getting it to work... I'll send a list of what I already have installed, but when my PC is on a piece of furniture, for example Cruz X, and has a female follower, the follower gets close and starts kissing the PC that's on the furniture, but no scene starts... I don't know if this is correct, or if it should start a scene.

image.png.c58e32faeab94c567b1562c9306f0369.png

  • 3 weeks later...
Posted

@kaxat I bumped into a whole lot of Stack Dumps today. I haven't seen this behavior before - it might just be an inconsistent vector for issues. Ostensibly ASF Furniture Lite spawned 160 or so instances of itself, marked by:

RegisterThreadHook([ASF_FL_SslThreadHook <alias PlayerAlias on quest ASF_Furniture_Lite (FE141800)>]) index: 0

 

Papyrus.0.log

Posted

@Nuascura Thank you for the logs. They indicate that FL is caught in an Init() loop. It initializes itself and then reinitializes during the Init(). I could explain one possible way that could happen. The quest calls quest Reset(); Start() when updating from < v2. But at some point in my playthrough that same code would have run on my save. And yet it did not get caught in a loop. Puzzling. I wonder if one of the performance mods that alters the Papyrus VM can alter behavior here. That is one of the few ways I could explain you getting caught in a loop and me not. The script already had safe guards to prevent Init() from running simultaneously. In theory those safeguards are getting reset in your case and the stack dives one level deeper instead.

 

I turned the current version into a global variable that can not get reset with the quest. So now update scripts run at most once per save. In theory that solves your problem. I just wish I understood why your behavior is different than mine. Could you test with the attached? If it works I will upload to the main page. It is admittedly untested. No time to playtest yet.

 

@jerryrhp This is about the simplest mod you can find. Install and you are done. No MCM to configure. No options. Plug and play. Difficult to describe that as "laborious". Once installed it does one thing: When non-ASF mods start a sex scene with an actor that is occupying ASF-preferred furniture, this will attempt to center the scene on that furniture and play a relevant animation. This behavior is identical to when ASF starts a sex scene with an actor occupying preferred furniture. You might call it a furniture framework, that only kicks in if an actor is in furniture while the scene is starting.

 

When you describe this as "laborious" I suspect one of two things is happening: either you do not understand what this mod does, or you had difficulty setting up one of the parent mods such as ASF.

 

This mod does not start sex scenes. You need other mods for that. When another mod starts a sex scene this mod kicks in. And tries to center the scene on furniture that one of the participants is using. But it can fail to center. For example if 3 people attempt to animate and one of them is in an Xcross this mod will ignore the scene and let it center on a different location. Because there are no 3 person animations for an Xcross. Also other mods might tell actors to exit furniture before starting the scene. Meaning the scene will not center on furniture. There are other possible reasons including you may have encountered a bug in this mod. It should have centered but it did not.

 

In your case I believe you were attempting to use ASF to start sex scenes. Which means you do not even need this mod installed.

 

@lovelylove125 With the ASF v2.0.4 RC update to the parent framework you will get a more descriptive error if the player can not be added to a thread.

ASF_Addon_FurnitureLite_v2-0-2.zip

Posted (edited)
51 minutes ago, kaxat said:

Could you test with the attached? If it works I will upload to the main page. It is admittedly untested. No time to playtest yet.

 

The issue as logged above occurred on new game, after character creation. So I ran three test runs. No stack dumps.

 

I should note that I also don't really understand how this issue occurred.

 

With that said, I had been using your latest RC for ASF together with this Furniture Lite addon. I've also been heavily testing my own mods for issues by creating new characters for each test run. For each run, I always check the log for errors from my own mods. There was never anything as overtly obvious as that repetitive stack of "stack dumps".

 

Having said that, there are two other things I can note: 1) OnInit events are already kinda sensitive, and your 2.0.1 Init sequence is relatively heavy considering the checks you do make, even if typically a non-issue and even if not considering what wouldn't run within your IF statements; and 2) I did recently update SkyUI to 6.7.

 

I have one partially wild hypothesis. MCM Helper is currently built for SkyUI 5.2, which is why you can see the many log errors related to SKI_Main. Papyrus Tweaks NG is a crucial mod for most users since it helps scripts get past NONE objects that aren't properly guarded against by mod authors; if script objects retrieve NONE types for property fills, the retrieving end would typically 'black out' without Papyrus Tweaks and so terminate its script instance. It may be possible that this fix from papyrus tweaks requires relatively large milliseconds of buffer for each process of NONE objects. When SKI_ConfigMenu attempts to retrieve too many non-existent properties from SKI_Main, perhaps the VM bugged out and caused your script to duplicate its instances. The issue cascaded from that point because scripts are not considered "initialized" until the OnInit event completes its thread.

Edited by Nuascura
Posted

@kaxat

The logging functions on 2.0.4 seems to have stopped working on both the user/asf and the papyrus option. Deleted my asf log files and tried to turn back on 2.0.3 and asf0.log was created but save was unopenable. I attached the papyrus log if it may be help.

 

log1.txt context female pc was in zaz pillory, Severio Pelagia teleported to pc before instantly turning away. Array errors seems to be from arousal mod's GetAllActors() return variable.  

 

When actor is successful in starting scene with female pc in pillory. The pillory goes invisible/despawn (ddng patch not installed) and an incorrect animation gets called as it forces pc to be in the dominant position in the animation.  Furniture does reenable after scene and pc returns to correct state.  

log1.txt

Posted
On 3/10/2026 at 7:02 AM, jerryrhp said:

I've been having some difficulty understanding how the mod works or getting it to work... I'll send a list of what I already have installed, but when my PC is on a piece of furniture, for example Cruz X, and has a female follower, the follower gets close and starts kissing the PC that's on the furniture, but no scene starts... I don't know if this is correct, or if it should start a scene.

 

That sounds like the mod Interactive BDSM may be interfering or taking over the ai of your follower. That mod has a single kissing animation it uses and does not start a sexlab scene. Might need to check load order.

Posted

@lovelylove125 I appreciate the report. That is a known issue. Here is a fix:

 

On 3/23/2026 at 6:46 PM, kaxat said:

@lazycai That might be my mistake. Try downloading the attached file and putting inside of the mod\Scripts folder. It will ask if you want to replace the existing file. Say yes. Do you get log files now?

 

ASF_MCM.pex 41.29 kB · 2 downloads

 

I wish I had already published a fix to the front page of that mod.  I am working on version 2.1 for that mod that introduces an animation precaching system and limited Futa + improved creature support. It is a bit complicated and holding off a full release. I should release a small v2.0.5 hotfix for now.

 

@Nuascura Would you mind elaborating on what you view as heavy in the InitMod() function. Perhaps I have missed something. It seemed extremely light to me. Like you said let us ignore the version update code that only runs once. If one of these function calls has a higher performance impact than I realize I would like to know about it.

 

Function InitMod()
	GotoState("InitializingMod")

	String LogMessage = "InitMod()"

	UnregisterForAllModEvents()

	if ASF_API.GetVersionInt() < 10100
		Debug.MessageBox("Furniture Lite requires version 2 or newer of ASF. You currently have " + ASF_API.GetVersionStr() + " installed. Please update in order to use Furniture Lite.")
		return
	endif

	if ASF_FL_Version.GetValueInt() < GetVersionInt()
		; version update code...
	endif

	RegisterForModEvent("HookAnimationStart", "OnAnimationStart")

	Log_Enabled = API.ASF_Settings.Logging_Enabled
	Log_VerbosityThreshold = API.ASF_Settings.Logging_Verbosity

	if Log_VerbosityThreshold >= 70
		Log(LogMessage)
	endif

	GotoState("")
EndFunction

 

 

Are you saying the patch 2.0.2 of this mod fixed the issue for you in your three tests? I want to be sure I understand.

 

As always I enjoy your feedback and appreciate you including some of my mods in your detailed tests.

Posted (edited)

@kaxat

 

In your script snippet above:

1. GetValueInt() can be shortened to GetValue() as int due to the alleged measurable difference: https://ck.uesp.net/wiki/GetValueInt_-_GlobalVariable

 

In your 2.0.1 script:

1. The GetVersion() sequence is relatively heavy considering you follow this procedure (compared to filling a local prop, ex. bool myB = false) :

  • Int[] Function GetVersion() fills an array
  • Int Function GetVersionInt() copies that array into a local property
  • Int Function GetVersionInt() returns a math expression to InitMod()

2. You're referencing a local property through another script object through a second script object, if nothing in the sequence is global, ex: API (ASF_API) -> ASF_Settings -> Logging_Verbosity. This inherently needs a little time; if the script object(s) are instantiated in a correct sequence (ex. object 1 is instantiated before object 2 in a sequence calls something in obj 1), then there won't be log errors, although obj 2 will still have to wait for obj 1 to finish any active threads or complete post-instantiation initialization.

 

Nothing above necessarily means you have to change it. I'm only saying "heavy" in the strictly technical sense of 'taking time' rather than 'high performance impact', haha. 

 

I still only understand as much as you of why there were stack dumps in the first place. This all may be only one contributing factor among other factors, as I mentioned. I can try to do more 'A/B testing' between 2.0.1 and 2.0.2 when I get more time.

Edited by Nuascura
Posted

@kaxat I did three tests for each possible combination:
1. Furniture Lite 2.0.1

2. Furniture Lite 2.0.2

3. MCM Helper 1.5.0

4. MCM Helper 1.5.0 w/ my patch

 

For whatever reason, only Furniture Lite 2.0.1 ever created stack dumps in my tests. Besides that...

 

It is more likely than not for Furniture Lite 2.0.1 to create stack dumps in presence of a script object bulk retrieving objects of a NONE property type. So only the combination of FL 2.0.1 with Unpatched MCM Helper 1.5.0 causes issues. No issues from testing with FL 2.0.1 and Patched MCM Helper 1.5.0. Also, no issues from testing with FL 2.0.2 and Unpatched MCM Helper 1.5.0

 

So I'd say 2.0.2 has safer operations and is the better option to use, assuming no functions were compromised.

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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