If you want to know more, check out the database entry, but in the meanwhile, here are the basics:

Normally in ZC, the value you enter as an argument in any editor is a single value. That is, if you enter D0 as a value of 00123.00, thn it is a fixed value of 123. if you enter it as 00123.0100, then it is 123.01.

What stdArguments does is provide a set of functions that allows you to place more than one argument value in each slot, provided it is small enough.

Here are the prime functions:

GetHigh/Low: The value above the decimal, and the value below the decimal are treated as two separate values. Thus, D0 as 00123.0450 is treated as the values 123 and 450. Ex: (00123).(0450)

GetHi/Mid/Low splits the entry into three values, with two maxing at 999, and one at 255 (essentially). Thus, the value 00123.0450 becomes the values 12, 230, and 450; ex. (001)(230)(450).

GetFirst/Second/Third/Fourth splits the argument into four components (range 00-99). Thus 00123.0450 becomes 01, 23, 04 and 50; ex. 0(01)(23)(04)(50).

Finally, the function getdigit uses each place, decimal and integer as a single value, ranging from 0-9 on eight values, and 0-1 on the highest (for practical reasons). Thus, 00123.0450 becomes nine values as 0, 0, 1, 2, 3, 0, 4, 5, and 0; ex. (0)(0)(1)(2)(3)(0)(4)(5)(0).

This allows the scripter to use variable assigns for everything, and never use fixed values, wasting no space. If you only need a two-digit value, say 0-30, then why waste nine places of an argument to have this as a flexible value in the editor?

Instead of using an assign to store 30 from the value 00030.00, you can use the DuoDigit function and enter 00000.0030, using the .0030 to become 30, and then use the rest of the value xxxxx.xx30 for other assigns.

That's the idea behind it, in any event.
If you're curious, this spawned out of my frustration with running out of arguments, and having to hard-code values. The original main functions were by Grayswandir and Gleeok, and the two new functions (Duo/Trio) were my additions based on the others.

I have many scripts that had a great deal of duplication, and my goal was to be able to make item and enemy scripts that are generic in nature with all the effects entered and passed as assigns via the D0-D7 data arguments in the editor.

After the first working version, I was able to condense many scripts into single scripts that handled the functions of several, and now I can do so further. My Subweapon script can now store enough values to literally become a base, generic item script. 

the enemy script that I'm working on will use these for enemy number, enemy type, movement, sprite, effects, etc; then the FFC that I am hoping to make could spawn many enemies of various types in one instance, ignoring the normal spawn method entirely. 

In each argument you could set enemy HP, enemy number, and still have attributes to spare for eight enemies at a time, or spawn 24 enemies by enemy number calls from one FFC (eight arguments with three values each).


The only tedious part is remembering what portions of each argument do what function, and I included a framework for how to handle this with the header and demo script. Tri-Digit arguments overlap a decimal point, so you would pass 12345.6789 as the three values (123)(456)(789); 45.6 is converted into 456 in the process.

'ven't any idea on how useful this will be to other people but a couple other members have already considered using it to solve problems. I hope this clarifies the purpose of the header for you, and that you may consider using it at some point to prove its viability. It opens up many new windows to use editor values instead of hard-coding things.