I use Google Drive to sync a folder with script between several computers. Some of these scripts include a construction like this:
property address : ""
[do something]
set address to newAddress
When I execute this in Script Editor, on the second run it uses the value for address set in the previous run, as expected but when executed from Script Menu, the value is empty on the second run.
This problem is unique for scripts that are synced using Google Drive. If I copy them to a local directory the value is preserved between runs independently of if I run them using Script Editor or Script Menu.
Before Catalonia (I believe), property values used to get saved in the script.
Since Catalina, because of security changes, scripts now get compiled with hash keys. Since hash keys are dependent on the file not changing, scripts could no longer save property values between runs. You had to come up with your own way of saving and restoring values yourself, if you needed this functionality. (Like saving out to a preference file)
Running from script menu actually starts ‘osascript’ for each run, whereas ‘Script Editor’ keeps the script in memory between runs, so it can retain the property values between runs. Once you quite ‘Script Editor’ it flushes the values. Before Catalina it would have saved them out to disk.