Ha ha! That is excellent! Thank you it works perfectly. What a beautiful effect. I was only updating skill41. I am new to GS, so let me see if I get this straight.

VertexShaderConstant[41]=<vecSkill41>;

So c41 now points to skill41. So when you use c41.x later does that just offset the pointer to point to skill42? And why set skill43 and 44 to 0? I don't see how they are used in the shader.

Also, when you say you override the skills for the following variables:
activate_dist
direction
wave_speed
skew_value
wave_size
crests_per_unit

does that correspond to skill1-6?

Thank you for all of your patient and generous help!