According to the OSC spec, OSC addresses cannot contain spaces.
VRChat parameters can, but VRChat correctly substitutes any spaces with underscores in any related OSC addresses in the avatar's config file. (e.g. the address for a parameter named
cube toggle
would be
/avatar/parameters/cube_toggle
)
However, although OSC addresses with spaces in them are out of spec, VRChat still receives/processes messages sent to these addresses like normal.
Because VRChat still supports this, but automatically remaps these parameter names to contain underscores instead of spaces, this can become a bit of a rabbit hole to debug: Users send the message, can verify it arrives fine in VRChat through VRChat's OSC Debug view, but are then left to wonder why their parameter doesn't change value.
To reduce some of the confusion I would suggest to:
  1. Block any OSC messages on addresses that do not meet the OSC spec.
  2. Document the behaviour of VRChat sanitizing the parameter name in the
    /avatar/parameters/:parameter
    OSC addresses.