Many functions that accept string arguments will also accept format arguments (in the style of [[http://www.lua.org/pil/20.html|string.format]].
In fact, in these cases, the function is just passing its arguments along to string.format, so it will work exactly the same.
say("Hey %s, I have %d items!", ch.name, #mob.items)
mdo ("poke %s", ch.name)