Just came across this:
I've recently figured out a simple way to create a slab and write whatever I want on it. The information is not lost when you save the world. Many players who are familiar with gm-editor should know how to do that, so this little manual for those who don't:
Requirements:
- dfhack r3 or newer
- createitem script
- gui/gm-editor script
What you need to do:
- Use createitem script to create a slab. (go to your adventurer's status and type in dfhack console: "createitem SLAB <material>", for example: "createitem SLAB GRANITE" without the quotes, of course.
- Select created slab and call gm-editor, by typing "gui/gm-editor" (i advice you to create a shortcut). You must see a list of item's properties:
- To make custom text appear on the slab select description field and type whatever you want. Slabs description will change to somethig like this
This is a granite slab.
The slab reads: "In memory of UristMcDragonSlayer, the greatest of all dwarves"
- engraving_type field controls slab's name and appearance in game: -1 is default, 0 - memorial, 1-24 - different shop signs
- quality and wear may also be changed for roleplay purposes.
And had a couple ideas to add to Masterwork:
A) You already have written objects as created goods. Suppose you either added a job to the scriptorium (or modified a pre-existing one) where ink and a journal were required ingredients, but where a slab made of paper (or out of "journal", or "scroll" or "book", ect...) used heuristics linked to the title selection to scan legends mode for a section of a specific length that is then "printed" onto the slab as part of its description. The best part is, all world-gen books would be accessible once world gen was complete, allowing this little program to modify their descriptions with the added data, and any new books, essays, ect... would be able to trip this program once more, allowing our Players to actually "read" books that our dwarves and players come across in either Fortress or Adventurer mode. If you can figure out a way to add screenshots into this, you can add "maps" to your set of printed materials which could possibly use the various mapped assets in Legends mode too. (I mean, there's already the ability to send maps of various cities in Legends mode to the DF folder, likewise the various "print map" functions that are used to produce Isoworld maps. The info is already there, waiting to be used.
B) Empty journals are already something that an adventurer can carry around with them, but suppose one of the "x" jobs included the ability to add something into the journal? The skill for "reading" and "writing" would be required (possibly conflated into the "scribe" skill-set?), but the action could be "sketch the surrounding area" (ie: "reveal", take screenshot from stonesense, "unreveal", place the screenshot into the journal folder), "chart my journey" (adventurer map with a dotted line from the last position you either charted or rested at, saved and placed into the journal folder), or "write in the journal" (Command prompt with a key-logger that counts the number of keystrokes and uses the writing "skill" level to determine both how much time has passed and whether an adventurer gains writing skill as well. It could be as simple as dividing the number of keystrokes by the level of skill, then dividing the difference by some arbitrary-to-be-determined number to get the amount of time that has passed writing in the journal - you could set it up to work with the "rest so and so hours" function, for instance. Anyway, whatever has been written in the journal is put in the journal folder and when the action "read the journal" is chosen, that folder then has all the information to be accessed, page by page.
Come to think of it, either option would work by sticking the various media (pictures and texts) into a sub-folder for each book and journal, to be accessed by choosing to "read" it. If the sub-folders were set to be accessed by both title and date of "publication", I doubt there'd be any mix-ups of information from one text to another.