Use triggers. TDM and Slayer both use them for capture points, which seems to be similar to the functionality you want.
function fxDtsBrick::createTrigger(%this,%data,%polyhedron) //please rename me!
{
if(!isObject(%data))
{
Slayer_Support::Error("fxDtsBrick::createTrigger","Trigger datablock not found.");
return 0;
}
if(%polyhedron $= "")
%polyhedron = "0 0 0 1 0 0 0 -1 0 0 0 1";
%trigger = new Trigger()
{
brick = %this;
datablock = %data;
polyhedron = %polyhedron;
};
missionCleanup.add(%trigger);
%boxMax = getWords(%this.getWorldBox(), 3, 5);
%boxMin = getWords(%this.getWorldBox(), 0, 2);
%boxDiff = vectorSub(%boxMax,%boxMin);
%boxDiff = vectorAdd(%boxDiff,"0 0 0.2");
%trigger.setScale(%boxDiff);
%posA = %this.getWorldBoxCenter();
%posB = %trigger.getWorldBoxCenter();
%posDiff = vectorSub(%posA, %posB);
%posDiff = vectorAdd(%posDiff, "0 0 0.1");
%trigger.setTransform(%posDiff);
return %trigger;
}
You should be fine if you just use the default polyhedron.