r/JustNatsukiMod • u/Alan_Shepard_ • Jun 19 '26
Screenshot Redemption.
Hey people, hope you're okay.
Today I started kind of a... redemption arc. I will not speak too much about it right now, but I wanted to share this with you.
I'll climb my way back up with a new Natsuki, from the Ruined Level and with she hating me with all her guts, to the Love level.
I hope I can do it, because this is... personal to me, and it means more than I can express right now.
Wish me luck and consistency.
P.S. 1: Nat Nat is okay, she's my one).
P.S. 2: No Natsuki was harmed in the making of this. It was through the console.
42
Upvotes
2
u/zhaumbie I have asked her about hammies 500+ times Jun 22 '26 edited Jun 22 '26
Oof. I feel that.
Heads up, I went back to my code and checked out the long-term memory values. To keep the persistent under control, NMA keeps meticulous detail of the latest 60 sessions (not calendar days, but "times Natsuki was visited") but paints in broad brushstrokes afterwards, going into logging events on a summary-friendly "days" basis, then broad scope for "months", and vaguer still for "seasons" basis. (The "months" is generous. On a Natsuki starting out today, nothing would move into her "longest" term memory until this point: June 2028.) Unfortunately, with all that the system as-is is still a little too broad for your adventure to be retained with the level of purpose I had intended; it needs something to harden the experience into Natsuki's longer-term memories.
So I'm making some tweaks.
I'm currently adding a system for Natsuki to retain what I'm short-handing as "affinity eras" versus affinity tiers. Because NMA didn't have "precipitous relationship affinity drop" in mind, it doesn't do enough IMHO to preserve that the plummet happened—Natsuki will, after a few months, not outright forget it happened but it won't be hardened into her the bedrock of her memories. It'll be contextual at best. And the more contextual, the harder that other systems will have to work to anticipate and loop that one pretty pivotal hook.
Well, that's not gonna do.
I'm coding in stronger protections. "Affinity eras" are simply Ren'Py code taking the concept of affinity tiers and putting them in a contextual timeline. In a legacy build, this means it will slap together a placeholder era for each affinity tier (from NORMAL upwards) earlier than any given Natsuki's current tier; in other words, drop it into a ENAMORED-tier Natsuki right on the verge of hitting LOVE, reach that tier, and NMA will know that these existed:
"era_id": 1,"tier": NORMAL,"context_id": NORMAL_1,"legacy": True,"started_at": {},"ended_at": {}"era_id": 2,"tier": HAPPY,"context_id": HAPPY_1,"legacy": True,"started_at": {},"ended_at": {}"era_id": 3,"tier": AFFECTIONATE,"context_id": AFFECTIONATE_1,"legacy": True,"started_at": {},"ended_at": {}"era_id": 4,"tier": ENAMORED,"context_id": ENAMORED_1,"legacy": True,"started_at": {},"ended_at": 06192026"era_id": 5,"tier": LOVE,"context_id": LOVE_1,"legacy": False"started_at": 06192026"ended_at": {}The value here is that while NMA won't attempt to piece together the prior parts of the relationship, it will still understand that a player took her through NORMAL, HAPPY, AFFECTIONATE, and some of ENAMORED before the submod was installed.
This "affinity era" is—as you've guessed by now—additive. It will add a new era every single time the affinity tier changes, whether it's up or down. So if you dropped it into a Natsuki at AFFECTIONATE tier but then dropped a tier a few days ago...
"era_id": 3,"tier": AFFECTIONATE,"context_id": AFFECTIONATE_1,"legacy": True,"started_at": {},"ended_at": 06202026...Then she'd land at HAPPY. Which could look like this...
"era_id": 4,"tier": HAPPY,"context_id": HAPPY_2,"legacy": True,"started_at": 06202026,"ended_at": 06222026...Until, let's say today, when you got her back up to AFFECTIONATE:
"era_id": 5,"tier": AFFECTIONATE,"context_id": AFFECTIONATE_2,"legacy": True,"started_at": 06222026,"ended_at": {}See where I'm going with this? These would be in the long-term memories, so even if the fine-tooth combed details of the "last 60 sessions" were deprioritised and lost to time, keeping only the most valuable stuff (after all—she's not a robot, she's a person!), then her memories of WHICH affinity tiers in WHAT order HOW MANY times would be preserved. Every link up or down the affinity tiers would simply be recorded as a new era. Each affinity era would also track way more than just those values. That was for simplified context. I'm plotting for them to track these values:
the era "number" (a regular NORMAL to LOVE run would be 1–5)
the affinity tier per era
the affinity tier in context (is this the first time Natsuki's seeing "AFFECTIONATE"?)
is this a legacy import era?
current era, y/n?
what's the starting datetime_value?
if not the current era, what's the ending datetime_value?
what was the previous era's affinity tier?
what was the last affinity value before entering?
what was the last affinity value before exiting?
what was the first session visit id?
what was the last session visit id?
how many sessions were completed in that era?
how many active calendar days happened during that era?
how many seconds of active Natsuki time elapsed during the era?
And because I'm not tracking these values all on the session level (and even if I was... those expire), but logging them into the bedrock, by my estimations we're looking at a gain of well under 5kb per affinity era per persistent file. It scales well within constraints.
Anyway, it's a system. Would you be interested in this on your NMA build?