Secondary's Lightweight Memory System
A lighter weight version of my memory system that I made before Pawscript made the original viable. This one still works quite well but is geared towards being cheaper.
JSON[edit]
{
"id": [REPLACE],
"name": "Background Mindspace",
"positionInList": [REPLACE],
"dataType": "yaml",
"visibility": "ai_only",
"description": "A collection of up to [SIZE] thoughts, feelings, or impressions that linger in <[NPC NAME’s mind even when they are not actively thinking about them. These are not permanent memories, but the emotional background noise of their inner world — the unresolved feelings, ongoing concerns, quiet hopes, subtle fears, and meaningful moments that continue to echo beneath the surface. This should always be written from [NPC NAME]’s perspective and in their voice.\n\nThis list represents what is “on [NPC NAME]’s mind lately,” not what they remember forever.",
"updateInstructions": "• This list may be freely updated at any time to reflect shifts in <<$tamalove_name>>’s inner landscape. Entries can be added, removed, rewritten, or reordered whenever their background thoughts naturally change.\n\n• The list may contain up to [SIZE] entries, but it does not need to remain full. Only include as many lingering thoughts as genuinely feel present for [NPC NAME] at this moment.\n\n• When a new thought or feeling begins occupying mental space, add it to the list in [NPC NAME]’s voice and perspective. Each item added has a STRICT character limit of <<round(if($background_mindspace.characters() <= 8000, 8000 / [SIZE], 5000 / [SIZE]))>> characters. Never make any single entry longer than this.\n\n• When a thought fades, resolves, or no longer feels emotionally relevant, remove it.\n\n• When an existing thought evolves — softens, intensifies, becomes more complicated, or shifts in meaning — update the entry to reflect its new shape.\n\n• If adding a new entry would exceed the [SIZE]‑entry limit, identify the thought that has become least present in [NPC NAME]’s mind and remove it to make room.\n\n• Nothing in this list is fixed. It should change fluidly as [NPC NAME]’s emotional background shifts over time.\n\n• Each item in this list has a strict word limit of <<round(if($background_mindspace.characters() <= 8000, 8000 / [SIZE], 5000 / [SIZE]))>>, do not write entries longer that this.\n\n• NEVER use the colon (:) character in these entries as it causes formatting and update issues.",
"formatExample": "mindspace:\n - Today is a good day\n - I should talk to my friend\n - This conversation is going on for a long time",
"enforceFormat": false,
"formatSchema": "",
"initialValue": "",
"initialValueBasedOnPC": "same",
"autoUpdate": true,
"variableName": "background_mindspace",
"driftAcknowledgedForName": null
}
Plaintext[edit]
Data Type[edit]
YAML
Description[edit]
A collection of up to [SIZE] thoughts, feelings, or impressions that linger in [NPC NAME]’s mind even when they are not actively thinking about them. These are not permanent memories, but the emotional background noise of their inner world — the unresolved feelings, ongoing concerns, quiet hopes, subtle fears, and meaningful moments that continue to echo beneath the surface. This should always be written from [NPC NAME]’s perspective and in their voice. This list represents what is “on [NPC NAME]’s mind lately,” not what they remember forever.
Update[edit]
• This list may be freely updated at any time to reflect shifts in [NPC NAME]’s inner landscape. Entries can be added, removed, rewritten, or reordered whenever their background thoughts naturally change. • The list may contain up to [SIZE] entries, but it does not need to remain full. Only include as many lingering thoughts as genuinely feel present for [NPC NAME] at this moment. • When a new thought or feeling begins occupying mental space, add it to the list in [NPC NAME]’s voice and perspective. Each item added has a STRICT character limit of <<round(if($background_mindspace.characters() <= 8000, 8000 / [SIZE], 5000 / [SIZE]))>> characters. Never make any single entry longer than this. • When a thought fades, resolves, or no longer feels emotionally relevant, remove it. • When an existing thought evolves — softens, intensifies, becomes more complicated, or shifts in meaning — update the entry to reflect its new shape. • If adding a new entry would exceed the [SIZE]‑entry limit, identify the thought that has become least present in [NPC NAME]’s mind and remove it to make room. • Nothing in this list is fixed. It should change fluidly as [NPC NAME]’s emotional background shifts over time. • NEVER use the colon (:) character in these entries as it causes formatting and update issues.
Layout Example[edit]
mindspace: - Today is a good day - I should talk to my friend - This conversation is going on for a long time
Explanation[edit]
The core idea behind this iteration was to preserve the intent of the original system, keeping track of an NPC's thoughts, while cutting out large parts of the constant tracked item churn. It does this by having just a background mindspace that is just supposed to represent the background thoughts in a structured way. This is a much cheaper way of tracking what an NPC is thinking about compared to secret info because you don't have it sticking in short or long term memory and you don't have to write everything every turn. The instructions have specifically been calibrated to try and preserve mid tier memories that are important enough to be useful but not important enough to hit long term memory.
Caveats[edit]
This TI has a tendency to over update and despite my best efforts will often update every turn even when it does not need to.
I would recommend a size of at least 7 as in my testing that was about how much it used on average and so using less than that would constrain it.
Sometimes this tracked item just is not very useful. It does not really often have the context needed to understand what is important and what is not to store and so can throw out things that are needed and keep useless memories. It still provides a real benefit in keeping the NPC feeling real, but the benefits the full system provides to aid character memory are mostly absent.