Jump to content

Devious Devices Framework Development/Beta


Kimy

Recommended Posts

Posted
6 minutes ago, GreatCroco said:

Getting any C++ stuff running is more chore than pleasure and more often than not just a few shell commands.

 

I'm not sure any sane person would consider setting up VS to be a pleasure.

Posted
25 minutes ago, GreatCroco said:

That sadly doesn't help me one bit, as your code is entirely in Papyrus. That was not what I was looking for.

The source code for SL+s dll is closed as I cant trust a certain group of people to not plunder it for my own disadvantage

If you want to know how exactly a native function is defined in the Cpp side you can take a look here:

https://github.com/Scrabx3/Acheron-SKSE/blob/master/src/Papyrus/Functions.h

 

Also my apologies for underestimating you like that :)

 

Posted
50 minutes ago, Scrab said:

Also on a side note, I may argue that going hands on with the "SE exclusive port" before Kimy actually has given any statement to any of this is a little bit rushed

 

You dont even know if Kimy wants to give up on maintainin the SE thread or if they already have someone already in mind for it. It would be kind of unfortunate to invest all this work and get hopes up now just to be told off because Kimys plans dont align with yours

Well on the Fallout 4 version I kind of made a shadow version of DD. Unofficially it is abandoned for a few years now and in the thread quite a few optimisations where posted by different users but it was a pain in the ass to get them all combined for players. So I took it upon myself to migrate all these changes, make them compatible with each other and added a few extra's to it. And removed a dead framework that causes issues. Another user has now taken over the project to further optimize it and when they release the next build I want to propose that as the new version to upload. As now all new players are redirected to my last upload post in the thread.

 

I'm going to make an assumption that Kimy has not used SE very much if at all, but I can be completely wrong on this point of course. Whatever the case I would like to suggest we stick together to make a testcase "real" SE version to at least see what it can do if we get all the bells and whistles going. I can see that getting uploaded as a beta version and it could then come down to a system we currently have with DD that users submit code and it get's merged by the "Kimy-Git" and compiled into 1 upload. It's not like SE has a completely different code behind it. It's just that some things work a bit different if we convert to beter/newer frameworks like OAR over FNIS etc.  This would at least fix the current "patchfest" situation no matter the outcome of the current discussion. All SE players would benefit from that action alone.

 

It could be quite a challenge to get everything working but when the bulk is implemented in a team effort (and more so making use of existing knowledge) it's a matter of maintaining it and adding smaller new features/fixes. Which is a lot smaller to process. This might also make one of the proposed "dual-version" outcomes way less intensive to implement.

Posted (edited)
39 minutes ago, Scrab said:

If you want to know how exactly a native function is defined in the Cpp side you can take a look here:

I know how to define a native Papyrus function, both with raw SKSE from back in the LE days when we didn't have nice tooling and with CommonLibSSE-NG, where it's really just "vm->RegisterFunction("FunctionName", "PapyrusScriptName", p_fn);" My question was how you'd interact with native SexLab code, as I had assumed you had some sort of native plugin for SLp+. Maybe should've worded that better, my bad.

 

I a perfect world DD would migrate to the "Fully Dynamic Game Engine" (dumb name as it's not an engine), which would allow stuff like dynamic config files (like JUtils just better), custom console commands, or the creation of Papyrus script objects in C++, and therefore stateful Papyrus->Native calls. But we don't live in a perfect world.

But before I would've made that suggestion I'd have implemented a test plugin first; or more realistically ported Jaxonz positioner, seeing as I use it more than once every game session and the Payurus code is painfully slow, even with PapyrusTweaks.

 

 

Edited by GreatCroco
Posted (edited)
13 minutes ago, GreatCroco said:

My question was how you'd interact with native SexLab code, as I had assumed you had some sort of native plugin for SLp+.

Though the front end/papyrus

 

In cases where my dll would require something that SL offers on the papyrus side I simply reimplement it. Nothing in SLs dll is overly complicated, and Ashal offered me the source code for the creature stuff so It wasnt difficult too implement that either :)

Unless I still misunderstand, ayah

 

13 minutes ago, GreatCroco said:

or the creation of Papyrus script objects in C++

The last time someone tried to make Papyrus objects at runtime they ran into issues with memory, something about the objects not being saved correctly causing them to glitch out or just be deleted

Edited by Scrab
Posted (edited)
1 hour ago, ponzipyramid said:

I'm not sure any sane person would consider setting up VS to be a pleasure.

Funnily enough. MSVC is pretty decent to set-up. It's when you leave the MS ecosystem and use gcc, CLion, CMake, etc. when it gets dumb.

 

1 hour ago, naaitsab said:

Whatever the case I would like to suggest we stick together to make a testcase "real" SE version to at least see what it can do if we get all the bells and whistles going.

That would also be my suggestion. Take the current SE version, update the SKSE plugin (done easily enough), replace DAR merge patches, etc. Then let that run as a beta for a while an see how it goes.

 

  

32 minutes ago, Scrab said:

In cases where my dll would require something that SL offers on the papyrus side I simply reimplement it. Nothing in SLs dll is overly complicated [...]

Yeah, I'd have guessed nothing is really that complicate. But if working in the industry has taught me one thing: If you don't have to reimplement stuff, don't do it. Or you'll work a whole year on a simple A* implementation because your client has so much red tape that you could wrap every house in Solitude twice.

  

32 minutes ago, Scrab said:

The last time someone tried to make Papyrus objects at runtime they ran into issues with memory, something about the objects not being saved correctly causing them to glitch out or just be deleted

Might be, VMs can be a bitch sometimes. That's why I said I would've tried it out first. No point in doing all the work and then seeing it all blow up.

Edited by GreatCroco
Posted

hi the box binders are turning all of my character invisible when i equip them. i am using the CBBE body. i built everything in body slide so no idea what to issue is.

Posted
10 hours ago, natybs said:

hi the box binders are turning all of my character invisible when i equip them. i am using the CBBE body. i built everything in body slide so no idea what to issue is.

 

Then you need to check if your bodyslide settings are right. There's a section on the troubleshooting post for how to troubleshoot bodyslide to make sure it's going to the right place. Follow that.

 

Not sure why you're posting in here instead of staying in the SE thread and waiting for a response. You were in the right thread to start with.

Posted (edited)

Got an idea to share, after venturing thru the source code to find how the alternate animation application process goes.

There's a zadboundcombatscript's function EvaluateAA which picked the correct FNIS set,
 

Spoiler

If !HasCompatibleDevice(akActor)
        libs.log("EvaluateAA: Reverting to unbound AA")        
        ClearAA(akActor)
        ResetExternalAA(akActor)
        RemoveBCPerks(akActor)
    Else
        libs.log("EvaluateAA: Applying animSet = " + animSet + ", animState = " + animState)
        ClearAA(akActor)
        ApplyBCPerks(akActor)
        int animState = GetSecondaryAAState(akActor)
        int animSet = SelectAnimationSet(akActor)
if animState == 1
            FNIS_aa.SetAnimGroup(akActor, "_h2heqp", HBC_h2heqp, animSet, "DeviousDevices", Config.LogMessages)
            <...a million of those...>

 

it first calls for ClearAA to reset the FNIS animations to the standard set (which has a Debug.SendAnimationEvent(akTarget, "IdleForceDefaultState") but only for if akActor != libs.PlayerRef, i.e. not the player, if i understand how it works?),

Spoiler

Function ClearAA(actor akActor)
;This function forcibly reverts animations to the vanilla state
;On its own it is used in transitions between different animation sets
;In order to revert to animations from compatible AA mods, remember to use ResetExteralAA() afterwards
    
    FNIS_aa.SetAnimGroup(akActor, "_h2heqp", 0, 0, "DeviousDevices", Config.LogMessages)
<...>
    akActor.SetAnimationVariableInt("FNIS_abc_h2h_LocomotionPose", 0)
    if akActor != libs.PlayerRef && !akActor.isDead()
        akActor.EvaluatePackage()
        Debug.SendAnimationEvent(akActor, "IdleForceDefaultState")

    EndIf
EndFunction

 

and then EvaluateAA sets the abc_, hbc_ or pon_ prefix for movements.

 

Nowhere in evaluateAA is there a Debug.SendAnimationEvent(akTarget, "IdleForceDefaultState"), so the player's idle doesn't get updated here after equipping the device.

 

This function is being used by zadlibs.

Spoiler

Event StartBoundEffects(Actor akTarget)
<...>
    if akTarget != PlayerRef
        BoundCombat.EvaluateAA(akTarget)

        ;BoundCombat.Apply_NPC_ABC(akTarget)
        return
    EndIf
    Log("OnEffectStart(): Bound Effects")            
    PlayBoundIdle()
    RegisterForSingleUpdate(8.0)
    if aktarget == PlayerRef
        UpdateControls()
    Endif
EndEvent

 

EvaluateAA isn't being used for the player here, but for NPC's (akTarget != PlayerRef), the player character gets the PlayBoundIdle() instead

 

Spoiler

Function PlayBoundIdle()
    BoundCombat.EvaluateAA(PlayerRef)

    if !IsAnimating(PlayerRef) && !PlayerRef.IsInFaction(SexLabAnimatingFaction)
        ApplyBoundAnim(PlayerRef)
    EndIf
EndFunction


Still no IdleForceDefaultState?

I'd assume FNIS used to send it itself somewhere after the application of AA, but I didn't go thru it's sources closely yet.

 

This seems... kinda convoluted?

 

My proposition for the DAR version is to either:
 

Spoiler

Function EvaluateAA(actor akActor)
 

   libs.log("EvaluateAA(" + akActor + ")")
    if !libs.IsAnimating(akActor)
        Debug.SendAnimationEvent(akActor, "IdleForceDefaultState")
    EndIf


    libs.UpdateControls()


    If !HasCompatibleDevice(akActor)
        libs.log("EvaluateAA: Reverting to unbound AA")        
        ClearAA(akActor)
        RemoveBCPerks(akActor)
    Else
        ApplyBCPerks(akActor)    
    endif
EndFunction

 

Function ClearAA(actor akActor)
    if akActor != libs.PlayerRef && !akActor.isDead()
    akActor.EvaluatePackage()
        if !libs.IsAnimating(akActor)
        Debug.SendAnimationEvent(akActor, "IdleForceDefaultState")
        EndIf
    EndIf
EndFunction


or simply move the Debug.SendAnimationEvent(akActor, "IdleForceDefaultState") into zadlib's StartBoundEffects.

 

The StopBoundEffect hasn't got a problem calling it, and the idles refresh momentarily after you unequip stuff:

 

Spoiler

Event StopBoundEffects(Actor akTarget)
    Log("OnEffectFinish(): Bound Effects")        
    Debug.SendAnimationEvent(akTarget, "IdleForceDefaultState")    
    if aktarget == PlayerRef
        UnregisterForUpdate()
        UpdateControls()            
    EndIf    
    BoundCombat.EvaluateAA(akTarget)    
EndEvent

 

and leave evaluateAA for the combat perks at best, or - even better, leave it as a legacy function and just move everything into StartBoundEffect?

 

Can anybody who's actually understands this take a look and tell me why this is a bad idea?


P.S. Speaking of, is there a reason why in PlayBoundIdle() the evaluateAA isn't hidden behind a !IsAnimating(PlayerRef) check?

P.P.S. Is there a person on this planet who ACTUALLY uses both FNIS Sexy Move and DAR at the same time this day and age, or can I do away with the ResetExternalAA function too? ?

 

Edited by krzp
Posted

On the topic of LE to SE\AE - I will leave here my opinion (which won't change anything anyway lol)

While I can understand that some thing on technical level are better in SE (like engine capabilities etc.), but for me, as for a regular player, SE is worse in most ways than LE, and here's my reasoning:

1 - LE is done in development, it does not receive patches, so game won't accidentally break in case of a sudden patch, and while I was playing SE, few unneeded-for-gameplay patches got released (I believe they fixed something in CC store) which completely broke SKSE and a few mods, so I had to wait around a week to play again, when mod authors released compatible patch for new update

2 - Manual mod installation is much easier in LE. Yes, I know what most sane people use any type of mod manager, but it's very difficult to come to it after many years of installing mods manually. I have tried... with very much patience from nice people who helped me understand at least basics of how to use it... but it's way too complex for me.

3 - Some things in general I can't understand and fully accept in SE.

3.1 - One of these - is very long fade-out from black screen when loading a game, when I can't do anything, but enemies are already active for several seconds, which is most important while playing higher difficulties and do save-load tactics, have to load and immediately open console to wait through that stupid inability to do anything ingame while enemies can land several hits on you. 

3.2 - Other thing - is that some genius decided that "Esc" button should lead to quest log instead of save\load\config screen. Yes, there's mod "fixing" it, but the mod isn't completely stable so sometimes it still opens quest log on "Esc"

3.3 - Overall performance. My LE modpack has pretty stable performance, dropping a few FPS only when something HEAVY happens (like first loading a heavy modded stuff, e.g. Angeli's DD Addon, because of it's huge textures), while SE with just a few mods works way worse, it's MUCH more resource-intense, so if I would want to do a serious playthrough with mods - I would have to accept being constantly below even 30FPS . That again, is my personal issue, but I can run some modern games better than SE with a few mods (literally a few, less than 20 already noticeably drop performance) in terms of FPS.

 

That are my main reasons why I keep LE as my main installation. If DD at any point will become SE-exclusive - that would be incredibly sad for me, even though I understand that it might be better overall.

DD was actually one of reasons I even started playing Skyrim many years ago (and probably the most important one too).

 

But anyway, good luck in further development, no matter what way you will choose.

Posted (edited)

1. That's what AdressLibrary and disabling updated on Steam are for. If you missed that there are multiple tools to backpatch your SE version. Normal SE updates also don't break mods that use AdressLibrary (that's the whole point of it). What you probably refer to is the upgrade to AE, that was released at some point. That version of the game was compiled with a newer version of MSVC and therefore the address layout changed, which made AdressLibrary useless. The only other thing I can think of was that weird CC fix and JP translation, that broke AddrLib by changing the layout of the base classes. But that's really rare and I vividly remember how much worse it was in LE. That said it is a good idea to disable Skyrim updates, it always was.

2. Manual Mod installation hasn't changed between LE and SE, not a bit. You should use a ModManager, either MO2 or Vortex, because that helps a ton if you ever go more than two mods and therefore have to deal with conflicts. At some point it becomes even a necessity, e.g. when dealing with multiple NPC replacers.

3.1. I don't know what you mean exactly, as I don't have that. As soon as my SE has finished loading I'm in the game.

3.2. I don't know what mod you're using, but the easiest is StayAtTheSystemPage, that mod is absolutely stable. The alternative is QUI, which is also stable and has some other neat features (it's what I'm using)

3.3. a) How much time did you invest in getting it stable b) How many mods do you have?
       If your SE version performs worse than LE, you frankly did something wrong. I can run about three times more mods on SE than on LE (currently at 1.2k mods compared to the previous 450) without problems and my frames only drop to 30FPS (usually more) when I have 70+ NPCs in a single cell. Granted most are (4k) textures, but I my load order also has 468 plugins. And the stuff I had to do to make it stable? Nothing. It took me a week to sort out the conflicts between textures. But beyond that I just ran LOOT, Nemesis and Bodyslide.

Edited by GreatCroco
Posted
38 minutes ago, Xenoramos said:

1 - LE is done in development, it does not receive patches, so game won't accidentally break in case of a sudden patch, and while I was playing SE, few unneeded-for-gameplay patches got released (I believe they fixed something in CC store) which completely broke SKSE and a few mods, so I had to wait around a week to play again, when mod authors released compatible patch for new update

1.5.97 SE is done in development too, AE is "bleeding edge". ?

 

Posted
17 minutes ago, krzp said:

1.5.97 SE is done in development too, AE is "bleeding edge". ?

 

1.5.97 isn't available to 'press "Install" and start installing mods', one have to do some inconvenient stuff to get that version. There isn't any "legacy" version on steam available for it sadly

Posted
1 hour ago, krzp said:

1.5.97 SE is done in development too, AE is "bleeding edge". ?

 

 

Good luck downloading LAL for it, though. The mod author is a bit of a prick and hates the idea of supporting anything but the newest version

Posted
2 hours ago, Xenoramos said:

one have to do some inconvenient stuff to get that version.

You can use this, it's barely a few clicks after installation ?

 

However, if you do want to upgrade at some point, I wholeheartedly recommend doing it using the latest AE version, I'm currently preparing to move from 1.5 to 1.6 and there's literally one small mod I haven't seen a direct replacement for yet, everything else is either AE-compliant or has a direct replacement - and I have 50 different SKSE plugins, so I've looked at fair number of them.

 

41 minutes ago, thedarkone1234 said:

Good luck downloading LAL for it, though. The mod author is a bit of a prick and hates the idea of supporting anything but the newest version

The first link after you google "ASLAL for 1.5.97" brings you here. So while I understand that this is an inconvenience having to search for it, but specifically using outdated software is a personal choice, so it's natural to expect to deal with some hoops to jump through while doing that.

 

And for alternate starts, why use mods made by "pricks" when there exists a great alternative made by none other than @Scrab, and a number of other ones. ?

Posted

The LAL plugin for DD is probably one of the things that should get a conversion to Alternate Perspective ASAP, because frankly it's superior in almost all cases and avoid some stupid Arthmoor shenanigans.

If you do any other than the vanilla start and then do the Chloe quest, you need to traverse the cave as normal until you get to the spider, and then traverse the entire cave back (or use the backport Athmoor put in, because "cheating") and enter the cave from the rear end and collect your Riverwood companion. That's just a stupid decision.

Posted
On 6/28/2023 at 6:21 AM, GreatCroco said:

The LAL plugin for DD is probably one of the things that should get a conversion to Alternate Perspective

There isn't a LAL plugin for DD. Certain mods that use DD might have LAL starts, but the framework itself doesn't.

Posted
On 6/28/2023 at 6:21 AM, GreatCroco said:

you need to traverse the cave as normal until you get to the spider, and then traverse the entire cave back (or use the backport Athmoor put in, because "cheating") and enter the cave from the rear end and collect your Riverwood companion. That's just a stupid decision.

 

I agree. Someone did figure out a workaround for it, and there's a patch to get rid of the forced teleport out of the caves up with all the other patches.

 

But I would also love to have the princess start for AP too. I wasn't able to figure it out myself and I tried. Or even a alternate start agnostic mod, where you go somewhere, get conked on the head or drink something (like trappings of fate) and wake up as a prisoner. then the princess start proceeds as normal. That way, people using realm of lorkhan could use that start too.

Posted
7 minutes ago, zarantha said:

I wasn't able to figure it out myself and I tried.

I've tried as well, but recompiling DCL is a major pain - it fails without Aradia, Captured dreams, all that jazz.

 

I used to just "setstage dcur_hq" after starting out on a unrelated start with AP, which isn't terribly... immersive ?

But the quest worked for me without ASLAL, so maybe someone with more creation kit experience can just create a sort of a bridge for the other mods, some new alternate start quest that starts up the dcl delivery refused quest?

Posted (edited)

imho, but this is slightly off topic, it would be best to move the Princess Start out of LAL and into a proper quest. Auto start it silently (like the Dragonborn questline) at the level that is set in DCL when more than normal trap events start to happen. Then anybody could configure it to start when they want, maybe also add a chance, but that's not necessary. 

With that you're not bound to any alternate start mod. The alternative (heh!) could be what Trappings of Fate does, but I kind of like the surprise factor of triggering a trap and then starting the Cursed Loot quest line.

 

  

1 hour ago, krzp said:

But the quest worked for me without ASLAL, so maybe someone with more creation kit experience can just create a sort of a bridge for the other mods, some new alternate start quest that starts up the dcl delivery refused quest?

IIRC the Alternate start just starts the quest when you use the bed, so any mod that does the same should be able to provide that start.

Edited by GreatCroco
Posted
1 hour ago, GreatCroco said:

but I kind of like the surprise factor of triggering a trap and then starting the Cursed Loot quest line.

One second you're going about your day blasting draugrs, and suddenly you are collecting 78 loafs of bread for 3 hours with no fast travel, no off ramps, and the speed penalty of -80%? I'd smash my head into my screen ? (or, you know, just reload, but that's missing all the excitement of smashing heads into screens)

 

That's an option, sure, but I still think it might be a good idea to separate the starting quest and the actual "saving private chloe" quest line.

Still, though, I totally agree that the starting quest needs more love and recognition, i'd argue it's one of the better ones in the whole quest line.

 

1 hour ago, GreatCroco said:

IIRC the Alternate start just starts the quest when you use the bed, so any mod that does the same should be able to provide that start.

While Alternate perspective has a neat instruction set on converting LAL quests into it's own framework, but maybe the easier path is just to create a separate simple bridge start to place you somewhere in the world near rifen, call "startquest dcur_hq_delivery" and shutdown to let DCL proceed as if it's been called through LAL? No patches for DCL are needed that way.

Posted
On 6/28/2023 at 8:32 AM, Xenoramos said:

On the topic of LE to SE\AE - I will leave here my opinion (which won't change anything anyway lol)

While I can understand that some thing on technical level are better in SE (like engine capabilities etc.), but for me, as for a regular player, SE is worse in most ways than LE, and here's my reasoning:

1 - LE is done in development, it does not receive patches, so game won't accidentally break in case of a sudden patch, and while I was playing SE, few unneeded-for-gameplay patches got released (I believe they fixed something in CC store) which completely broke SKSE and a few mods, so I had to wait around a week to play again, when mod authors released compatible patch for new update

2 - Manual mod installation is much easier in LE. Yes, I know what most sane people use any type of mod manager, but it's very difficult to come to it after many years of installing mods manually. I have tried... with very much patience from nice people who helped me understand at least basics of how to use it... but it's way too complex for me.

3 - Some things in general I can't understand and fully accept in SE.

3.1 - One of these - is very long fade-out from black screen when loading a game, when I can't do anything, but enemies are already active for several seconds, which is most important while playing higher difficulties and do save-load tactics, have to load and immediately open console to wait through that stupid inability to do anything ingame while enemies can land several hits on you. 

3.2 - Other thing - is that some genius decided that "Esc" button should lead to quest log instead of save\load\config screen. Yes, there's mod "fixing" it, but the mod isn't completely stable so sometimes it still opens quest log on "Esc"

3.3 - Overall performance. My LE modpack has pretty stable performance, dropping a few FPS only when something HEAVY happens (like first loading a heavy modded stuff, e.g. Angeli's DD Addon, because of it's huge textures), while SE with just a few mods works way worse, it's MUCH more resource-intense, so if I would want to do a serious playthrough with mods - I would have to accept being constantly below even 30FPS . That again, is my personal issue, but I can run some modern games better than SE with a few mods (literally a few, less than 20 already noticeably drop performance) in terms of FPS.

 

That are my main reasons why I keep LE as my main installation. If DD at any point will become SE-exclusive - that would be incredibly sad for me, even though I understand that it might be better overall.

DD was actually one of reasons I even started playing Skyrim many years ago (and probably the most important one too).

 

But anyway, good luck in further development, no matter what way you will choose.

I agree with all of the above, which is why I still prefer LE to SE. its crazy that SE is 64 bit yet performs worse than LE. I couldnt imagine running SE with all the mods I have in LE, and I also do manual install and tweaking in tes5edit where needed to ensure stability.

Posted
6 hours ago, Maddac said:

I agree with all of the above, which is why I still prefer LE to SE. its crazy that SE is 64 bit yet performs worse than LE. I couldnt imagine running SE with all the mods I have in LE, and I also do manual install and tweaking in tes5edit where needed to ensure stability.

It's a very stubborn misconception that 64-bit is some kind of magic trick to make everything twice as fast. It isn't. It only allows a program to natively use more system recourses so in theory it can run faster and more stable as it has to swap less. A bit like removing a restrictor on a bike, without swapping the engine it's still the same engine but it can output more power.

 

SE also ships with a lot more graphical ENB like stuff, which impact the performance out of the box. But I'm quite curious what PC's you both are running as on my rig SE runs a lot better in FPS and more important way better 0.1% lows (stuttering etc). 

Posted
3 hours ago, naaitsab said:

It's a very stubborn misconception that 64-bit is some kind of magic trick to make everything twice as fast. It isn't. It only allows a program to natively use more system recourses so in theory it can run faster and more stable as it has to swap less. A bit like removing a restrictor on a bike, without swapping the engine it's still the same engine but it can output more power.

 

SE also ships with a lot more graphical ENB like stuff, which impact the performance out of the box. But I'm quite curious what PC's you both are running as on my rig SE runs a lot better in FPS and more important way better 0.1% lows (stuttering etc). 

Obviously I don't have any kind of high-end hardware, considering how expensive the hardware is.

Spoiler

Actually my hardware is around minimal requirements for Resident Evil 4 remake

https://store.steampowered.com/app/2050650

But my hardware still theoretically should be enough to play SE without heavy mods with good performance, but in fact even pure vanilla game with 0 mods runs lower than 60FPS, which, added to other things I mentioned, is making SE much worse personal experience than LE

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...