Here's a portion of the config and script. Any ideas on what to change?
config:
attached-trigger
{
trigger_track_0_start
{
att "a.trigger05"
radius 3
track "track_0"
}
trigger_track_0_fill1
{
att "a.trigger04"
radius 5
track "track_0"
}
trigger_track_0_center
{
att "a.trigger03"
radius 2
track "track_0"
}
trigger_track_0_fill2
{
att "a.trigger02"
radius 5
track "track_0"
}
trigger_track_0_end
{
att "a.trigger01"
radius 3
track "track_0"
}
}
script:
bool TriggerSupportsMassStoppedLoad(Vehicle vehicle, string triggerName)
{
//Interface.Log("**** " + GetName()+"

"+vehicle.GetName()+",'"+triggerName+"')");
string[] tok=Str.Tokens(triggerName,"_");
if (tok[0] + tok[1] != "triggertrack") return false; // Trigger not used for loading operation
bool vtotrack = (vehicle.GetRelationToTrack(me,"track_" + tok[2]) == Vehicle.DIRECTION_FORWARD);
bool vtotrain = vehicle.GetDirectionRelativeToTrain();
bool ttotrack = (vtotrack and vtotrain) or (!vtotrack and !vtotrain);
Vehicle[] vehicles=vehicle.GetMyTrain().GetVehicles();
// Calculate index of the car at the center of the train
int stopCar = vehicles.size() / 2; // 1->0, 2->1, 3->1, 4->2, 5->2 ...
if ((vehicles[stopCar] == vehicle) and (tok[3] == "center"))
{
//Interface.Log("**** " + GetName()+"

"+vehicle.GetName()+",'"+triggerName+"') STOP");
return true; // center car at center trigger => stop train & load
}
if (ttotrack and (tok[3] == "end"))
{
//Interface.Log("**** " + GetName()+"

"+vehicle.GetName()+",'"+triggerName+"') STOP");
return true; // train travelling in direction of track reaching end of track => stop train & load
}
if (!ttotrack and (tok[3] == "start"))
{
//Interface.Log("**** " + GetName()+"

"+vehicle.GetName()+",'"+triggerName+"') STOP");
return true; // train travelling against direction of track reaching start of track => stop train & load
}
if (vehicle.GetMyTrain().IsStopped())
return true; // train has stopped at platform => load
return false; // default => do nothing
}