Note: I was wrong, the following speculation about stress and memory is incorrect. See https://www.reddit.com/r/dwarffortress/comments/il1i4z/so_looks_like_toady_shot_down_the_recently/. I'm preserving this so people can see I made a mistake and understand what that mistake was. See also
https://www.reddit.com/r/dwarffortress/comments/il1i4z/so_looks_like_toady_shot_down_the_recently/g3p7b8a?utm_source=share&utm_medium=web2x&context=3 if you want to read some more up-to-date speculation about the logical consequences of how memory seems to work.
I just saw the Reddit stress thread here: https://www.reddit.com/r/dwarffortress/comments/hjt112/i_think_ive_figured_out_the_stress_spiral_thoughts/
TL;DR Equal strength long-term memories cannot overwrite eachother. If a dwarf has 5 traumatic memories of +1 and 3 good memories of -1, nothing will change and that dwarf will always slowly succumb to stress without micromanagement.
That's not okay and explains why some of my dwarves just crash. Would be best to have some n% chance of overwriting equal strength memories so that no dwarf is irredeemable, and no dwarf is 100% happy 100% of their life.
EDIT: As someone who has personally lived through the trauma of being homeless with an injury and lack of income, even I have been able to see some stabilisation in my mood - even with the trauma still present in my memory and hurting to this day.
Hello, I'm the author of that stress investigation thread. Basically, yeah, the problem is that
certain memories are permanent since equal strength memories cannot overwrite each other. (see
https://dwarffortresswiki.org/index.php/DF2014:Memories)
I went into more detail in the thread, but the consequence is that the current system devolves into a race to shove eight -1 divisor happy memories into fresh migrants and children before they accumulate eight +1 divisor stressful memories. If you accomplish that, then nothing can touch their source of happiness and they'll be immune to stress forever; if you fail and they split 5 unhappy/3 happy permanent memories, they'll trend downwards forever since note even an infinite stream of -1 divisor happy thoughts can repair their irremovable and constantly recurring source of stress; and if you fail such that a dwarf is filled with 8 unhappy permanent memories (i.e. a fresh migrant gets rained on, attacked, sees corpses, et cetera on the way into your fort), then they're a lost cause.
As far as I can tell, this logic explains basically all of the observed problems with the stress system: unmet needs don't actually cause all that much stress despite their blaring importance on the thoughts screen (as demonstrated by
http://www.bay12forums.com/smf/index.php?topic=174931.msg8049126#msg8049126, where an experimental fort that never met any of its dwarves' needs never had any problems with stress - unmet needs don't generate +1 divisor stressful thoughts that can become permanent sources of stress); dwarves being immune to stress in older versions (back when euphoria from drinking was a -1 divisor thought or thereabouts, and a dwarf could therefore rapidly perma-fill up their long term memory with untouchable stress relief - fixing this is probably why euphoria no longer has any effect on stress, according to
https://dwarffortresswiki.org/index.php/DF2014:Emotion); and of course dwarves being consumed by stress in more recent versions of the game no matter what you do (
because it's already too late for them by the time you act, they're filled with trauma that will literally never fade).
Fixing this is simple though:
Give equal strength memories a small chance to overwrite each other. I'm not sure what the exact percentage chance should be - maybe 20%? - but it should be benchmarked around completely changing a dwarf from eight -1s to eight +1s or vice versa over ~5 years of unrelenting pleasure/torture. That way, a dwarf with eight +1 memories can still be saved, and a dwarf with eight -1 memories can still be doomed if your fort falls apart and their life turns into a living nightmare.
People have had some other suggestions of course. u/Orange-of-Cthullu on the subreddit suggests 2/4/6/8 of a dwarf's long term memory slots should be permanent, depending on their personality as shaped by their culture, so that the slate can never be fully wiped clean no matter what you do. u/QuantGadzooks suggests just having the intensity of memories inherently fade over time so more recent, more intense memories will take their place. And finally, I've come up with a system more closely modeled on what I've seen of real world mental health and therapy - namely that awful memories overwrite happy memories of equal strength, but awful memories reduce in intensity when you talk about them.
[Mechanics wise perhaps they'd only reduce when talking to the 'therapist' nobles (Mayor, Priest, High Priest, any future ones), or talking to dwarves with good Consoler skill, or talking to any dwarf (though ones with better Consoler skill would obviously do better). So for example that +1 'Shaken' memory of being seriously wounded becomes a +2 'Hopelessness' memory when you talk to a therapist enough, and is eventually overwritten by a -1 'Love' memory of gaining a sibling if you live in a safe and caring fortress where no new trauma occurs.
The goal would be to show a realistic process of healing from trauma - you talk to others about the darkest moments of your life, they no longer feel quite as awful, and eventually new experiences show you that the old ones don’t define you. Hopefully this sort of message would be helpful to people - an even more realistic system would include random relapses, but even without that this basic system should be both realistic and helpful. People
can change for the better or worse, no matter what happened in their past. It just takes time.]
As for what players can do now... one option is to work around it.
Prevent migrants and children from being exposed to any +1 divisor causing thoughts, like death and corpses (see
https://dwarffortresswiki.org/index.php/DF2014:Emotion &
https://dwarffortresswiki.org/index.php/DF2014:Stress to work out which ones). Then, when they're immune to stress and memory change, feel free to send them to the corpse hauling teams. It's not at all intuitive (migrants are generally far more expendable than long term citizens), and can lead to a weird fort (all the old dwarves should be ushered away to die, grandma and grandpa should just mysteriously disappear when children are involved) but it is how it currently works.
Another option is to paper over it.
Mod all the +1 divisor emotions to be +2, so that only pleasant memories can become permanent. You wouldn't have to micromanage fresh dwarves to control the positive/negative split of their memories, but run the downside of all your citizens eventually becoming immune to stress and no longer generating any FUN when you mess up.
The final option might be to rely on the tools the game already has to deal with this, albeit from the most unexpected of places. I'm talking about
military training. A lot of people report seeing massive improvements in the stress levels of their dwarves after training them in the military or modding dwarves to have some natural levels in
Discipline. The skill, as far as I can tell, reduces the intensity of negative thoughts from witnessing death and corpses and the like, and is rapidly developed under military training. So I speculate that a +1 divisor Horror memory may become a +4 Alarm memory with sufficient Discipline - the memory doesn't change, but the reaction to it does, and that makes the memory less intense and potentially overwrite-able. It works for dwarves witnessing fresh corpses, so perhaps it works for dwarves remembering corpses? It won't work for emotions not affected by Discipline though, if there are any... Ambusher skill seems to be the one controlling a dwarf's reaction to being rained on, so perhaps developing that is the key to saving dwarves in constant rage over memories of rain.
Anyways, hopefully those interim solutions will only be necessary for a short while. I
think I've identified the crux of the problem, and some easy solutions, even though all this started with reading a DF wiki article and idly speculating about the implications of one sentence ("After a year in one of the short-term slots, a memory will then be moved to the long-term memory slots if it is stronger than the ones there..."). Hopefully the problem really is that simple, and the system will work as intended once that's resolved. If anyone wants to test this out and perform proper Science (or !!SCIENCE!!) instead of mere theorizing though, be my guest.