code/datums/memory/memory_design.md
Memories are events that happen to spacemen that are stored in their mind. They are then turned into generated stories that spessmen can engrave into walls, tattoo onto limbs, changelings can absorb people and read memories, etc. One thing i'd keep in mind is that stories are not memories. Memories persist and can be turned into stories of different types (engravings, tats) but stories are simply the output strings of memories. Here's a quick step by step guide on adding a memory. It's purposefully been made to be pretty easy! I'm going to be explaining memories with the surgery memory, it's a great example of a memory. For the define file
this define is used in the proc for adding a memory to someone.
this define is going to be the name of the surgery used, it's passed to the memory through the proc. See the next step for a more in-depth explanation. For the memory json Keys are in the memory defines, and are also sent by the memory proc. The only one that is not sent by the specific memory is Note that the memory key consists of the memory define, and then:
Here's an in-codebase example of a memory.
First argument is the memory type, basically what is happening. It is a define equal to the memory json key with all the flavor text. Second argument is the elements in the memory. You will almost always have a Third argument is the story value, or how good of a memory it is. We make really easy memories or roundstart memories like account info worth very little so they show up less often, to offset the fact that they are easy Fourth argument are some memory flags, these can be used to cut story generation out where it doesn't make sense (gibbing not sending moods, roundstart memories not sending location, etc)
|