When stuck, check the manual:
https://www.construct.net/en/make-games/manuals/construct-3/plugin-reference/nw-js
You can't read files like that. Use NWJS.ReadFile expression:
Dictionary load from JSON string NWJS.ReadFile(path_to_the_file)
But first you probably need to check if the file exists using NWJS Path Exists condition.
And definitely don't do this on every tick!
Thanks for the response. Using your feedback I've changed the code to this:
(Main Menu)
(Options)
(Game)
However, it still isnt working as I hoped. Looking at Debug Layout shows that the dictionary adds/changes the keys sucessfully, but the json file itself looks like this and isnt working to save/load the options:
Also, I am uploading to Steam if that changes anything. The dictionary doesnt even seem to work at all in steam, and the json file still doesnt update.