Phys properties:


BSL Variables:

phys_vfaframes - how far into the animation it'll look. Default: 15
phys_vfascale - scale the resulting vector. Default: 1
phys_vfaclamp - set maximum length of the resulting vector. Default: 3
vfa stands for Velocities From Animation. Pls don't judge me for abbreviations )

phys_pushscale - pushing of existing ragdolls scale. Default: 5
phys_pushclamp - pushing of existing ragdolls clamp. Default: 10
phys_mu - value for friction. 0 - infinite friction. Default: 0
phys_slip - "force-dependent-slip". Actually does look more natural than setting non-infinite mu, but maybe i just didn't pick the right value for it. Default: 0.04
phys_bounce - bouncienes, doesn't look very good on higher values. Default: 0.1
phys_bonedensity - density of the body parts. Mass is determined by the size of the bounding box and density for every part. Default: 1
phys_ragdollinsidewall - same as daodan.ini setting. Allow or prevent ragdolls from initiating insade walls. 0 or 1. Default: 1


BSL functions:

phys_seterp - ODE's error reduction parameter. How much error it'll try to fix in a single pass. Default: 0.4 (should be between 0 and 1)
phys_setcfm - ODE's Constraint Force Mixing parameter. Default: 0.001
These two are tricky. In practice the higher the CFM the more leaniant it is for joints to go outside the limits and ERP is how hard it's trying to push them back into the limits.
If CFM is high and ERP is low you can easily have ragdolls folding into a ball )
I've concindered setting cfm to 0.01 and also upping erp to 0.9. I liked the resulting softness, but now i feel that it was a bit too springy.

phys_setgravity - just gravity Default: -0.5
phys_setdamping - percentge of the speed object will lose when threshold is reached Default: 0.2
phys_setdampingth - threshold above which objects will start to lose speed Default: 25


Phys obj functions:

phys_obj_init [max objects] - enables the system and allocates memory for the specified amount of objects. Arbitrary upper limit is 256
phys_obj_nuke - destroys all objects and frees the memory allocated for them

phys_obj_add [object name] [M3GM name] [density] [shape:box/ball] [scale]
phys_obj_remove [object name]
phys_obj_exists [object name] - returns 0/1

phys_obj_pos [object name] [X/coord to return] [Y] [Z] - sets object position if 3 numbers after name specified or if second argument is x/y/z returns current position at this axis
phys_obj_dir [object name] [X/Y/Z direction] [X/Y/Z coord to return] - returns specified coordinate of specified direction of the model. E.g. phys_obj_dir("bp1","y","y") will return 1 if the top of the model is facing directly up.
phys_obj_vel [object name] [X] [Y] [Z] [magnitude] [push:0-set velocity directly/1-push with specified force] - set velocity or push the object
phys_obj_rot [object name] [axis] [degrees] - rotate object on x/y/z axis by degrees