Harlowe utility for saving and loading game progress to encrypted file
It's a GUI for non-linear text games available at:
It's a macro based scripting language made from Javascript, used inside Twine.
NOTE: Twine (GUI) will mark these macros as incorrect, beacuse they are not its native macros - don't worry, they'll work.
(savetofile: String, String)
macroThis macro pulls your save data from cookies - the last time when you used (save-game:)
and downloads it as an encrypted file. It's important to use (save-game:)
or checking with (saved-games:)
before using this macro.
my_save
(load-game:)
or (save-game:)
macro.
(savetofiledirect: String, String)
macroThis macro works similar to (savetofile:)
, but it pulls your save data directly from Twine, meaning it doesn't need already saved game. Note, that it doesn't overwrite your cookies, so if you want to save your progress here as well, you should use (save-game:)
accordingly.
(load-game:)
or (save-game:)
macro.my_save
(readfromfile: String [, ...String])
macroThis macro takes save file and loads it. Simple, right? But, there are few options...
Configurables are specified at the top of the file.
cheatPassage
(string) if specified instead of saying "Cheater!" (when it detects modifying save file) it goes to specified passagemaxFileSize
max save file size specified in kilobytes, in most cases 512 is more than enoughextension
file extension - default is sav
binKey
key for the last (3rd) and weakest from of the encryption - integer from 2 to **10*** - higher number - bigger file
Utility uses a few types of encryption. All keys (except binKey) are taken from story's ifid. It means, that different stories are automatically incompatible.
^
operator
Story statistics
while having your story opened inside Twineifid
attribute of tw-storydata
element
All issues are reported by built-in Twine dialog boxes and JS console :)
It uses checksum to determine i file was modified. Also, it checks if ifid is correct (however wrong ifid is reported as file from different game - not cheating)