They're stored in an sqlite database: extensions.json has the id of the extension, and the path to the sqlite database is something like:
"/home/USERANAME/.mozilla/firefox/PROFILE-ID.default/storage/default/moz-extension+++210603c8-7803-408e-a983-066a8d0a43fb^addonId=%7B13fc6545-ada2-42bb-9faf-98940d531666%7D/idb/61413404gyreekansoem.sqlite" The userscript is wrapped in a json-style wrapper (the format is binary, not actual json) together with all its metadata. If the script contains non-ascii characters it is actually stored as utf-16 (or maybe UCS-2) bytes. This binary-json-ish lump is then compressed with snappy and stored as a binary blob of data in the sqlite database. (This is true in firefox 52 or so, I've not looked at 57). -- You received this message because you are subscribed to the Google Groups "greasemonkey-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to greasemonkey-users+unsubscr...@googlegroups.com. To post to this group, send email to firstname.lastname@example.org. Visit this group at https://groups.google.com/group/greasemonkey-users. For more options, visit https://groups.google.com/d/optout.