Homeworld Effects Manual: setScaleDist()
setScaleDist(float value)
Adds uncertainty of value to object's scale.
value can be an integer constant, a floating-point constant, or a floating-point variable. Using an integer variable will not cause a crash, but has the same effect as setScaleDist(0), which is not very useful.
setScaleDist() acts on differently on different types of objects:
Effects: Other effects usually call setDefaults() before creating anything, so setScaleDist() in the calling file will have no effect. It is possible to have a file that does not call setDefaults() at the beginning and thus depends on the calling file for some attributes, but such files are risky. If the calling file does not provide what the file is expecting, it may produce garbage.
Meshes: The uncertainty is in multiples of the mesh's original size. If the mesh is 100m long, scale is 4, and value is 2, the mesh will be somewhere between 200m and 600m.
Sprites: setScaleDist() adds an uncertainty of value meters to the size of a sprite.
Circles: setScaleDist() adds an uncertainty of value meters to the size of a sprite.
Lines: value is the variation of the line width, in pixels. This does not change as the distance to the camera changes. It also looks different based on the resolution of the screen. I don't recommend using anything but setScale(1) or setScale(2) for lines, so I see little use for setScaleDist() with lines.
Points: setScaleDist() is essentially useless for points. Pint sizes are limited to 1, 2, or 3 pixels across, so adding variation within these limits is hardly worth the effort.