It looks like there's no way of setting the client variable from the server side. You'll have to go for the different colorset method.
I don't think that's going to work for my purpose. I'm working on an item which places bricks whose color corresponds to the player's selected paint color. I want to give hosts the option of picking a default color so that the server isn't filled with red bricks (or whatever
colorId == 1 happens to be) because someone didn't bother to read the tool's instructions/controls. During development, I've already seen multiple people completely ignore the help command that I have provided, despite it being right in front of their face. So I am quite certain this will be a problem.
I wouldn't want the hosts only option to be to change the colorset. For one thing, that's not something everyone readily knows how to do. Secondly, it feels a bit intrusive and over-complicates what would should otherwise be a simple add-on installation. I'm thinking maybe I will just make it so bricks conform to the host's specified default color for the tool until the player actually equips their paint can. So after player executes
serverCmdUseSprayCan(%client, %colorId),
%client.currentColor will be used to determine the brick color.
Although, I suppose I could make a separate add-on which allows a host to switch the first color out with another color in the colorset. I can't see why this wouldn't be possible.