Meh - I *only just* found the .chm file. I've been going off the .html files and the examples. The chm adds a few more bits of info. Two in particular caught my eye.
1) All my raycasting problems can be solved with a "placement API" that apparently exists...
"DP Help CHM" wrote: "The character controller commands supports runtime volume updates. However volumes are directly modified without any extra tests, so it might happen that the resulting volume overlaps some geometry nearby. To avoid this you must first use the already existing “placement API” from Dark Physics, to check that the volume of space you want to occupy is actually empty. Then and only then, you can update the character’s volume."
If anyone can tell me more about this "placement API", I'd love it. I can't find any reference to it other than this one comment.
The alternative (other than raycasting which has already proven to be insufficient for auto-stand) is to use a trigger that follows my player's head around, and prevents him rising if something enters it.
2) Character controllers have a "skin":
"DP Help CHM" wrote: "A small skin is maintained around the character's volume, to avoid numerical issues that would otherwise happen if we let it touch other shapes. The size of this skin is user-defined."
It's some kind of "fudge factor", and explains all sorts of things, like why my rays, if fired from too low in the character controller, would hit an object somewhere within the character; and why I keep falling through the floor. But there's no "Phy get skin width" comand, so I can never know how big it is unless I set it myself with "phy set skin width". So that's what I'll now do.
Since it's just there to reduce jitter, I think I should be fine setting it to anything more than the displacement due to gravity per frame. Which means setting the physics objects larger than the real objects by something like (skin/2), so the average interpenetration is 0.
3) I pause my program completely when people alt-tab away. I should be doing something less drastic, so physics can update itself at least, since otherwise when they tab back, everything goes nuts as physics tries to catch up with itself.
Yet another game programmer