# Database ## Situation One thing that a good game master emulator / oracle / solo engine will do is add complications to a scene. This often looks something like "An NPC suddenly acts!" or "A plot thread advances / closes." This makes for unexpected and interesting situations. And it necessitates keeping a list of NPCs and threads. ## Task I needed to create a database. A plain text file is probably mostly okay, but I want to be able to easily select a random entry, and to update entries with notes, etc. Maybe have a 'status' column for 'missing, active, dead' etc. ## Action So of course I made some recfiles. Check them out in `/db`. ## Results I can quite easily select a random NPC now. ``` recsel -P name -m 1 db/npc.rec ``` I would like to write a script to quickly append a note to a record. One nice feature of records is that you can have repeated fields. That is, it's perfectly fine to have many `note:` fields. When querying, you'll just get them all as a list. So updating via appending new `note` fields ought to be a cinch. In the meantime, sometimes my playing/writing is figuring out the tangled web of motivations. And a lot of that discovery comes from just opening up my recfile in an editor and jamming. Then I can go get my narrative on afterwards.