Persistents Structure

The Persistents struct provides methods to collect, create, and test persistent global variables.

Methods:

persistents.show [ to:<stream> ]

Displays a list of persistent globals and their value.

The optional <stream> argument can be a filestream, stringstream, or windowstream, which the method sends its output to. Available in 3ds Max 2019 and higher.

persistents.remove <var_name>

Removes the named persistent global from the persistent global pool. The variable remains as a global variable and retains its value.

persistents.removeAll()

Removes all persistent globals from the persistent global pool. The variables remain as global variables and retain their value.

SCRIPT:

   a= "Hello world"
   persistent global a
   persistent global b=box()
   persistents.show()
   persistents.remove #a
   persistents.removeall()
   a
   b

SCRIPT:

   "Hello world"
   OK
   $Box:Box002 @ [0.000000,0.000000,0.000000]
   a: "Hello world"
   b: $Box:Box002 @ [0.000000,0.000000,0.000000]
   OK
   OK
   OK
   "Hello world"
   $Box:Box002 @ [0.000000,0.000000,0.000000]
persistents.gather()      

This method returns an array of all persistent global variable names as <name> values.

Available in 3ds Max 2008 and higher. Previously, available in the Avguard Extensions.

persistents.make <global var name>   

This method makes the specified global variable name persistent.

The name specified must be a global variable's name, otherwise a runtime error is thrown. See globalVars structure.

Available in 3ds Max 2008 and higher. Previously, available in the Avguard Extensions.

persistents.isPersistent <global var name> 

Returns true , if the specified global variable name is persistent, false if it is not persistent.

Available in 3ds Max 2008 and higher. Previously, available in the Avguard Extensions.

EXAMPLE

   global aVar  --define a global variable
   --> OK  --done!
   persistents.isPersistent #aVar --is it persistent?
   --> false  --it is not!
   persistents.make #aVar --make the existing global persistent
   --> OK  --done!
   persistents.isPersistent #aVar --see if it is persistent now
   --> true  --now it is!
   persistent global aNewPV --declare a variable as persistent global
   --> undefined  --done, variable has a value of undefined
   persistents.isPersistent #aNewPV --then see if it is persistent
   --> true  --it is!
   persistents.isPersistent #anUndeclaredVar --check an undeclared var.
   --> false  --it is not persistent