Calculation fields (with hard-coded expressions) can survive.
Auto-enter calculated values for global (stored) fields will "survive" even the deletion of all records. A new record would need to be created to "populate" them, but you can test for values and if empty, create a record.
Keep in mind that these are "default" values for normal global field and if allowed access each user can 'overwrite' in a given session, like normal global storage fields.
In addition to the two excellent suggestions above, Matt Petrowsky has demonstrated a technique whereby the values are stored within a text object on a layout and there is a script triggered on layout enter that grabs the contents of the text object and uses the Evaluate() function on them.
So it's still "static" variables if you like, scripted on file open, but they're stored in the layouts rather than in the scripts within the file.
I can create static variables by setting up a script to run when the database is opened, but those are static variables defined in a script.
No record data survives cloning. You can off course script your own deletion of records and spare the ones that you need to survive.
But variables are always session specific with different scopes for different types of variables (global, local, calc,...) and can't be defined to survive sessions.
JMHO, I dislike this method (storing in an object on the layout), as it can be difficult to find where the values exist. "Stored" in scripts & defined fields is so much easier on the debugger (the carbon-based one!)
But it is another valid option! Thanks, Daniel.
Another option is to set up an import script that pulls the data from the previous version. You clone the file, then open it and run the import script to get the default data.
I do like Beverly's auto-enter option though, simpler but still "hard codes" the data so the down side is you have to redefine the auto-enter calc should you need to modify these "default" values that you want in your clone, not that this is hard to do however.
JMHO, I dislike this method (storing in an object on the layout), as it can be difficult to find where the values exist.