I am preparing a really simple driven car prac for my 3D students. I need to create a space for their character (babushka doll for now) to sit 'in' a little car's cabin (open at the top) - so that when the car collides with other objects in the scene the character gets flung out. I am proto-ing with some simple blocks for now. I can't use concave objects for dynamic phys interactions so i need to set up a collection of objects (for the sides of the cabin) acting as a single entity but with their own collision boxes. I've tried pXent_setgroup(entity, 2); but this seems to just instantiate a single bounding box over the group of objects. Now I am using pXent_addshape(); but it just seems to make the added shapes passable...

Is there a way to get the extra blocks to be individually collidable?

I am using 3DGS 8.45

here is a code snippet of whot I am using:

function main()
{
ENTITY* car = ent_create("base.mdl",vector(0,0,100),NULL);
pXent_settype(car,PH_RIGID,PH_BOX);

ENTITY* cabinFrontShape = ent_create("front.mdl",vector(0,0,0),NULL);
ENTITY* cabinBackShape = ent_create("back.mdl",vector(0,0,0),NULL);
pXent_addshape(car,cabinFrontShape,PH_BOX);
pXent_addshape(car,cabinBackShape,PH_BOX);

ENTITY* FLwheel = ent_create("wheelObj.mdl",vector(15,25,100),NULL);
ENTITY* FRwheel = ent_create("wheelObj.mdl",vector(15,-25,100),NULL);
ENTITY* RLwheel = ent_create("wheelObj.mdl",vector(-15,25,100),NULL);
ENTITY* RRwheel = ent_create("wheelObj.mdl",vector(-15,-25,100),NULL);

pXcon_add ( PH_WHEEL, FLwheel, car, 0 );
pXcon_add ( PH_WHEEL, FRwheel, car, 0 );
pXcon_add ( PH_WHEEL, RLwheel, car, 0 );
pXcon_add ( PH_WHEEL, RRwheel, car, 0 );

ENTITY* Dummy = ent_create("babushka02.mdl",vector(3,0,125),NULL);
pXent_settype ( Dummy, PH_RIGID, PH_BOX);

while(1)
{
var speed=0;
if(key_w)
{
speed+=1; // speed for car
}

pXcon_setwheel (FLwheel,0,0,0);
pXcon_setwheel (FRwheel,0,0,0);
pXcon_setwheel (RLwheel,0,speed,0);
pXcon_setwheel (RRwheel,0,speed,0);
pXent_addvelcentral(car,vector(speed,0,0)); // adds initial speed to body of car