How is MP setting parameters?

What method is Mission Planner using the set parameters? Is it running MAV_CMD_DO_SET_PARAMETER? Or something else? We’re running into a new problem with DroneKit on the solo. The DroneKit API for setting parameters turns out to be very unreliable. Is there more a direct way we can do it, such as MAV_CMD_DO_SET_PARAMETER or however Mission Planner is doing it successfully?

MP uses packet mavlink_param_set_t

MAV_CMD_DO_SET_PARAMETER isn’t even supported in ArduPilot. (And in generally it is terrible, because it relies on knowing the param index, which ArduPilot does not promise indexes won’t change at runtime). As Michael said, always use PARAM_SET