VERY briefly (crazy busy today)…
When you assign the shader prop you are mapping some channels to a specific Surface property. You can’t edit those real-time (the mappings). When you construct the ship, the same place you assign channels->surface props, you are setting the birth/default values for those channels.
So -
setShaderChannels(NewShipType, 0, 1.0, 1.0, 1.1, 0.25);
setShaderChannels(NewShipType, 2, 1.1, 0.25);
-- These both set channel 2 & 3 to 1.1, 0.25 respectively
-- one just starts at 0, also settings 0 & 1 to 1.0
-- You can have 32 channels total, set to whatever you want.
-- Don't forget, NAV_LIGHTS can also bind to channels
-- for example NL for birth, NL for red alert, NL for near death, etc.
addShaderProp(NewShipType, "SOB_surfGlow", 2, 2);
If you look at the defaults for SOB_surfGlow, you’ll see that they can be a few things, but most often (except when a thruster surface), they are 1.1, 0.25 (the .surf declares the default when mapping, the .prog uses them, which I believe resets them (I should confirm that!) - and in the case of ships, material props are sob_share_materials.imp
Now, elsewhere in code you can call SobGroup_SetShaderValues as you have been, and get some results (I tested this a fair bit…) - but your call is a bit wasteful:
SobGroup_SetShaderValues(CustomGroup,17,1,"*",2, 0.0, 0.0)
Is better, skip setting 0 and 1.