Ah, I was kind of afraid that would be the answer. Indeed, although setting a fixed bone mostly works, like you said if any objects intersect they will push each other around and generally murder anyone in the area.
Maybe Lost Alpha can support this kind of thing better.
I don't think its possible. The only truly static object is one placed on map as static object and then the map compiled, AFAIK. I say this because many times we tried to spawn big things to block passages instead of always compiling a map when changes are made, but alas it never fully works, sometimes the object starts bouncing around even.
No, although I did experiment with various ph_mass values in the object's ltx file. Setting it really high didn't make it any harder to push from underneath, just a lot more prone to killing you on contact. Not sure if doing it from the SDK would be any different.
Also for anyone curious, the whole point of this is constructing procedural environments. Besides the aforementioned issues it's going pretty well! Screenshot of the progress so far: http://i.imgur.com/cPJGBQH.jpg
Update! I found that you can use packet_utils to set the "fixed_bones" parameter with a list of the object's bones, which will make it more or less glued in place. The only problem is that if you're clever you can still move it by crouching underneath, standing up and hopping a bunch. Eventually it will just float up to accommodate you.
So, this method is not quite perfect. If there's no other way about it then I think I can just work with this, but if anyone knows of a better solution, please let me know.
Is there any way to create an object that still has collision (ie you can walk on it), but isn't affected by gravity or other forces? The catch is that it can't be baked into the level, it has to be spawnable via script in a dynamic position. I've tried a bunch of classes that seemed relevant but none of them have satisfied both conditions.