TYPE_FPVALUE // FPValue*, variant value TYPE_VALUE // MAXScript Value*
TYPE_FPVALUE can be used to pass a variant data type, containing one of the types of data that FPValue can hold. This allows a function to be defined that can accept many types of values for a TYPE_FPVALUE parameter, the function can determine the type from the 'type' field in the FPValue passed. MAXScript supports TYPE_PFVALUE parameters and return values and will convert back-and-forth between the MAXScript types that correspond to the various FPValue types. TYPE_FPVALUE also supports TYPE_FPVAUE_BV and TYPE_FPVALUE_BR variants. MAXScript arrays will attempt to convert themselves into TYPE_XXX_TAB FPValues if the array elements are all of the same type, for example all integers generate a TYPE_INT_TAB, all scene nodes generate a TYPE_INODE_TAB, etc. If the array contains mixed value types or types not in the following list, a TYPE_FPVALUE_TAB will be generated, containing an FPValue* variant value for each element in the array. Supported homogeneous types are:
TYPE_INT_TAB TYPE_FLOAT_TAB TYPE_TIMEVALUE_TAB TYPE_STRING_TAB TYPE_NAME_TAB TYPE_POINT3_TAB TYPE_POINT2_TAB TYPE_INODE_TAB TYPE_REFTARG_TAB (allother ReferenceTarget*s, modifiers, mtls, ctlrs, etc.)
TYPE_VALUE is basically a fallback to be used in situations where MAXScript values of types not covered by FPValue types need to be passed into a published function. The called function is responsible for using the MAXScript SDK to convert to and from the Value* in TYPE_VALUE values.