Is there a way to set a payment id as a regular message instead of random characters? What format does it have to follow?
It is just hex characters, so you can use a tool like this to convert it to ascii.
The payment ID is arbitrary. If you want to use text, you are free to do so. A common use is to use a hash or some data, or some random number, which is why most look random, but they do not have to be. Indeed, some are definitely text looking. You are limited to 256 bits, however (64 characters in normal ASCII encoding).